class documentation

class PyWrapper(ColumnOperators):

View In Hierarchy

A wrapper object that is injected into the __globals__ and __closure__ of a Python function.

When the function is instrumented with .PyWrapper objects, it is then invoked just once in order to set up the wrappers. We look through all the .PyWrapper objects we made to find the ones that generated a .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 __clause​_element__ Undocumented
Method __getattribute__ Undocumented
Method __getitem__ Implement the [] operator.
Method __init__ Undocumented
Method __iter__ Undocumented
Method __nonzero__ Undocumented
Method ​_add​_getter Undocumented
Method ​_extract​_bound​_parameters Undocumented
Method operate Operate on an argument.
Method reverse​_operate Reverse operate on an argument.
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
Instance Variable fn Undocumented
Instance Variable track​_bound​_values Undocumented

Inherited from ColumnOperators:

Method __add__ Implement the + operator.
Method __contains__ Undocumented
Method __div__ Implement the / operator.
Method __eq__ 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 __rdiv__ 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 _expression.all_ clause against the parent object.
Method any​_ Produce an _expression.any_ clause against the parent object.
Method asc Produce a _expression.asc clause against the parent object.
Method between Produce a _expression.between clause against the parent object, given the lower and upper range.
Method collate Produce a _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 _expression.desc clause against the parent object.
Method distinct Produce a _expression.distinct clause against the parent object.
Method endswith Implement the 'endswith' operator.
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 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 nulls​_first Produce a _expression.nulls_first clause against the parent object.
Method nulls​_last Produce a _expression.nulls_last clause against the parent object.
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.

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):

Undocumented

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

Undocumented

def __clause_element__(self):

Undocumented

def __getattribute__(self, key):

Undocumented

def __getitem__(self, key):

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):

Undocumented

def __iter__(self):

Undocumented

def __nonzero__(self):

Undocumented

def _add_getter(self, key, getter_fn):

Undocumented

def _extract_bound_parameters(self, starting_point, result_list):

Undocumented

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

Operate on an argument.

This is the lowest level of operation, raises NotImplementedError by default.

Overriding this on a subclass can allow common behavior to be applied to all operations. For example, overriding .ColumnOperators to apply func.lower() to the left and right side:

class MyComparator(ColumnOperators):
    def operate(self, op, other):
        return op(func.lower(self), func.lower(other))
Parameters
opOperator callable.
*otherthe 'other' side of the operation. Will be a single scalar for most operations.
**kwargsmodifiers. These may be passed by special operators such as ColumnOperators.contains.
def reverse_operate(self, op, other, **kwargs):

Reverse operate on an argument.

Usage is the same as operate.

_bind_paths: dict =

Undocumented

_closure_index =

Undocumented

_getter =

Undocumented

_has_param: bool =

Undocumented

_name =

Undocumented

_param =

Undocumented

_to_evaluate =

Undocumented

fn =

Undocumented

track_bound_values =

Undocumented