def fill_binop(left, right, fill_value):
<EOL>if fill_value is not None:<EOL><INDENT>left_mask = isna(left)<EOL>right_mask = isna(right)<EOL>left = left.copy()<EOL>right = right.copy()<EOL>mask = left_mask ^ right_mask<EOL>left[left_mask & mask] = fill_value<EOL>right[right_mask & mask] = fill_value<EOL><DEDENT>return left, right<EOL>
If a non-None fill_value is given, replace null entries in left and right
with this value, but only in positions where _one_ of left/right is null,
not both.

Parameters
----------
left : array-like
right : array-like
fill_value : object

Returns
-------
left : array-like
right : array-like

Notes
-----
Makes copies if fill_value is not None