This constitutes an API change, so we have to continue to support `setno` as a value. One way to handle this is to go to the (admittedly obnoxious) syntax of:
```
def __init__(fname, **kwargs):
```
And then do something like:
```
if 'setno' in kwargs:
    if 'condition' in kwargs:
        raise ValueError('cannot define both...')
    warnings.warn('deprecation...')
    kwargs['condition'] = kwargs.pop('setno')
```
And then proceed to use `kwargs['condition']`.