@classmethod
def construct(cls, field, op, other):
    """
        Create a Condition on a field

        Parameters
        ----------
        field : str
            Name of the field to constrain
        op : str
            Operator, such as 'eq', 'lt', or 'contains'
        other : object
            The value to constrain the field with

        Returns
        -------
        condition : :class:`.Condition`

        """
    c = cls()
    if other is None:
        if op == 'eq':
            c.fields[field] = 'null', True
        elif op == 'ne':
            c.fields[field] = 'null', False
        else:
            raise ValueError('Cannot filter %s None' % op)
    elif op == 'eq':
        c.eq_fields[field] = other
    else:
        c.fields[field] = op, other
    return c
