Here's an excerpted (and slightly simplified for consumption here) usage of
float.is_integer() from the top of a function which does some
convolution/filtering in a geophysics application. I've mostly seen it used
in guard clauses in this way to reject either illegal numeric arguments
directly, or particular combinations of arguments as in this case:

def filter_convolve(x, y, xf, yf, stride=1, padding=1):
    x_out = (x - xf + 2*padding) / stride + 1
    y_out = (y - yf + 2*padding) / stride + 1

    if not (x_out.is_integer() and y_out.is_integer()):
        raise ValueError("Invalid convolution filter_convolve({x},
{y}, {xf}, {yf}, {stride}, {padding})"
                         .format(x=x, y=y, xf=xf, yf=yf,
stride=stride, padding=padding))
    x_out = int(x_out)
    y_out = int(y_out)

    # ...

Of course, there are other ways to do this check, but the approach here is
obvious and easy to comprehend.
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to