class documentation

A wrapper object that is injected into the ``__globals__`` and ``__closure__`` of a Python function. When the function is instrumented with :class:`.PyWrapper` objects, it is then invoked just once in order to set up the wrappers. We look through all the :class:`.PyWrapper` objects we made to find the ones that generated a :class:`.BindParameter` object, e.g. the expression system interpreted something as a literal. Those positions in the globals/closure are then ones that we will look at, each time a new lambda comes in that refers to the same ``__code__`` object. In this way, we keep a single version of the SQL expression that this lambda produced, without calling upon the Python function that created it more than once, unless its other closure variables have changed. The expression is then transformed to have the new bound values embedded into it.

Method __bool__ Undocumented
Method __call__ Undocumented
Method __getattribute__ Undocumented
Method __getitem__ Implement the [] operator.
Method __init__ Undocumented
Method __iter__ Undocumented
Method operate Operate on an argument.
Method reverse_operate Reverse operate on an argument.
Instance Variable fn Undocumented
Instance Variable track_bound_values Undocumented
Method _add_getter Undocumented
Method _extract_bound_parameters Undocumented
Method _py_wrapper_literal Undocumented
Instance Variable _bind_paths Undocumented
Instance Variable _closure_index Undocumented
Instance Variable _getter Undocumented
Instance Variable _has_param Undocumented
Instance Variable _name Undocumented
Instance Variable _param Undocumented
Instance Variable _to_evaluate Undocumented

Inherited from ColumnOperators:

Method __add__ Implement the ``+`` operator.
Method __contains__ Undocumented
Method __eq__ Implement the ``==`` operator.
Method __floordiv__ Implement the ``//`` operator.
Method __ge__ Implement the ``>=`` operator.
Method __gt__ Implement the ``>`` operator.
Method __le__ Implement the ``<=`` operator.
Method __lshift__ implement the << operator.
Method __lt__ Implement the ``<`` operator.
Method __mod__ Implement the ``%`` operator.
Method __mul__ Implement the ``*`` operator.
Method __ne__ Implement the ``!=`` operator.
Method __neg__ Implement the ``-`` operator.
Method __radd__ Implement the ``+`` operator in reverse.
Method __rfloordiv__ Implement the ``//`` operator in reverse.
Method __rmod__ Implement the ``%`` operator in reverse.
Method __rmul__ Implement the ``*`` operator in reverse.
Method __rshift__ implement the >> operator.
Method __rsub__ Implement the ``-`` operator in reverse.
Method __rtruediv__ Implement the ``/`` operator in reverse.
Method __sub__ Implement the ``-`` operator.
Method __truediv__ Implement the ``/`` operator.
Method all_ Produce an :func:`_expression.all_` clause against the parent object.
Method any_ Produce an :func:`_expression.any_` clause against the parent object.
Method asc Produce a :func:`_expression.asc` clause against the parent object.
Method between Produce a :func:`_expression.between` clause against the parent object, given the lower and upper range.
Method bitwise_and Produce a bitwise AND operation, typically via the ``&`` operator.
Method bitwise_lshift Produce a bitwise LSHIFT operation, typically via the ``<<`` operator.
Method bitwise_not Produce a bitwise NOT operation, typically via the ``~`` operator.
Method bitwise_or Produce a bitwise OR operation, typically via the ``|`` operator.
Method bitwise_rshift Produce a bitwise RSHIFT operation, typically via the ``>>`` operator.
Method bitwise_xor Produce a bitwise XOR operation, typically via the ``^`` operator, or ``#`` for PostgreSQL.
Method collate Produce a :func:`_expression.collate` clause against the parent object, given the collation string.
Method concat Implement the 'concat' operator.
Method contains Implement the 'contains' operator.
Method desc Produce a :func:`_expression.desc` clause against the parent object.
Method distinct Produce a :func:`_expression.distinct` clause against the parent object.
Method endswith Implement the 'endswith' operator.
Method icontains Implement the ``icontains`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.contains`.
Method iendswith Implement the ``iendswith`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.endswith`.
Method ilike Implement the ``ilike`` operator, e.g. case insensitive LIKE.
Method in_ Implement the ``in`` operator.
Method is_ Implement the ``IS`` operator.
Method is_distinct_from Implement the ``IS DISTINCT FROM`` operator.
Method is_not Implement the ``IS NOT`` operator.
Method is_not_distinct_from Implement the ``IS NOT DISTINCT FROM`` operator.
Method isnot Undocumented
Method isnot_distinct_from Undocumented
Method istartswith Implement the ``istartswith`` operator, e.g. case insensitive version of :meth:`.ColumnOperators.startswith`.
Method like Implement the ``like`` operator.
Method match Implements a database-specific 'match' operator.
Method not_ilike implement the ``NOT ILIKE`` operator.
Method not_in implement the ``NOT IN`` operator.
Method not_like implement the ``NOT LIKE`` operator.
Method notilike Undocumented
Method notin_ Undocumented
Method notlike Undocumented
Method nulls_first Produce a :func:`_expression.nulls_first` clause against the parent object.
Method nulls_last Produce a :func:`_expression.nulls_last` clause against the parent object.
Method nullsfirst Undocumented
Method nullslast Undocumented
Method regexp_match Implements a database-specific 'regexp match' operator.
Method regexp_replace Implements a database-specific 'regexp replace' operator.
Method startswith Implement the ``startswith`` operator.
Class Variable __slots__ Undocumented
Class Variable timetuple Hack, allows datetime objects to be compared on the LHS.
Method _rconcat Implement an 'rconcat' operator.

Inherited from Operators (via ColumnOperators):

Method __and__ Implement the ``&`` operator.
Method __invert__ Implement the ``~`` operator.
Method __or__ Implement the ``|`` operator.
Method bool_op Return a custom boolean operator.
Method op Produce a generic operator function.
def __bool__(self): (source)

Undocumented

def __call__(self, *arg, **kw): (source)

Undocumented

def __getattribute__(self, key): (source)

Undocumented

def __getitem__(self, key): (source)

Implement the [] operator. This can be used by some database-specific types such as PostgreSQL ARRAY and HSTORE.

def __init__(self, fn, name, to_evaluate, closure_index=None, getter=None, track_bound_values=True): (source)

Undocumented

def __iter__(self): (source)

Undocumented

def operate(self, op, *other, **kwargs): (source)

Operate on an argument. This is the lowest level of operation, raises :class:`NotImplementedError` by default. Overriding this on a subclass can allow common behavior to be applied to all operations. For example, overriding :class:`.ColumnOperators` to apply ``func.lower()`` to the left and right side:: class MyComparator(ColumnOperators): def operate(self, op, other, **kwargs): return op(func.lower(self), func.lower(other), **kwargs) :param op: Operator callable. :param \*other: the 'other' side of the operation. Will be a single scalar for most operations. :param \**kwargs: modifiers. These may be passed by special operators such as :meth:`ColumnOperators.contains`.

def reverse_operate(self, op, other, **kwargs): (source)

Reverse operate on an argument. Usage is the same as :meth:`operate`.

Undocumented

track_bound_values = (source)

Undocumented

def _add_getter(self, key, getter_fn): (source)

Undocumented

def _extract_bound_parameters(self, starting_point, result_list): (source)

Undocumented

def _py_wrapper_literal(self, expr=None, operator=None, **kw): (source)

Undocumented

_bind_paths: dict = (source)

Undocumented

_closure_index = (source)

Undocumented

Undocumented

_has_param: bool = (source)

Undocumented

Undocumented

Undocumented

_to_evaluate = (source)

Undocumented