class documentation

Extends ClauseAdapter with extra utility functions. Key aspects of ColumnAdapter include: * Expressions that are adapted are stored in a persistent .columns collection; so that an expression E adapted into an expression E1, will return the same object E1 when adapted a second time. This is important in particular for things like Label objects that are anonymized, so that the ColumnAdapter can be used to present a consistent "adapted" view of things. * Exclusion of items from the persistent collection based on include/exclude rules, but also independent of hash identity. This because "annotated" items all have the same hash identity as their parent. * "wrapping" capability is added, so that the replacement of an expression E can proceed through a series of adapters. This differs from the visitor's "chaining" feature in that the resulting object is passed through all replacing functions unconditionally, rather than stopping at the first one that returns non-None. * An adapt_required option, used by eager loading to indicate that We don't trust a result row column that is not translated. This is to prevent a column from being interpreted as that of the child row in a self-referential scenario, see inheritance/test_basic.py->EagerTargetingTest.test_adapt_stringency

Method __init__ Undocumented
Method adapt_check_present Undocumented
Method chain 'Chain' an additional ExternalTraversal onto this ExternalTraversal
Method traverse Traverse and visit the given expression structure.
Method wrap Undocumented
Class Variable __slots__ Undocumented
Instance Variable adapt_required Undocumented
Instance Variable allow_label_resolve Undocumented
Instance Variable columns Undocumented
Property visitor_iterator Iterate through this visitor and each 'chained' visitor.
Class _IncludeExcludeMapping Undocumented
Method _locate_col Undocumented
Instance Variable _wrap Undocumented

Inherited from ClauseAdapter:

Method replace Receive pre-copied elements during a cloning traversal.
Instance Variable __traverse_options__ Undocumented
Instance Variable adapt_from_selectables Undocumented
Instance Variable adapt_on_names Undocumented
Instance Variable equivalents Undocumented
Instance Variable exclude_fn Undocumented
Instance Variable include_fn Undocumented
Instance Variable selectable Undocumented
Method _corresponding_column Undocumented

Inherited from CloningExternalTraversal (via ClauseAdapter, ReplacingExternalTraversal):

Method copy_and_process Apply cloned traversal to the given list of elements, and return the new list.

Inherited from ExternalTraversal (via ClauseAdapter, ReplacingExternalTraversal, CloningExternalTraversal):

Method iterate Traverse the given expression structure, returning an iterator of all elements.
Method traverse_single Undocumented
Method _memoized_attr__visitor_dict Undocumented
Class Variable _next Undocumented

Inherited from MemoizedSlots (via ClauseAdapter, ReplacingExternalTraversal, CloningExternalTraversal, ExternalTraversal):

Method __getattr__ Undocumented
Method _fallback_getattr Undocumented
def __init__(self, selectable: Selectable, equivalents: Optional[_EquivalentColumnMap] = None, adapt_required: bool = False, include_fn: Optional[Callable[[ClauseElement], bool]] = None, exclude_fn: Optional[Callable[[ClauseElement], bool]] = None, adapt_on_names: bool = False, allow_label_resolve: bool = True, anonymize_labels: bool = False, adapt_from_selectables: Optional[AbstractSet[FromClause]] = None): (source)
def adapt_check_present(self, col: ColumnElement[Any]) -> Optional[ColumnElement[Any]]: (source)

Undocumented

def chain(self, visitor: ExternalTraversal) -> ColumnAdapter: (source)

'Chain' an additional ExternalTraversal onto this ExternalTraversal The chained visitor will receive all visit events after this one.

@overload
def traverse(self, obj: Literal[None]):
@overload
def traverse(self, obj: _ET) -> _ET:
(source)

Traverse and visit the given expression structure.

def wrap(self, adapter): (source)

Undocumented

adapt_required = (source)

Undocumented

allow_label_resolve = (source)

Undocumented

Undocumented

Iterate through this visitor and each 'chained' visitor.

def _locate_col(self, col: ColumnElement[Any]) -> Optional[ColumnElement[Any]]: (source)

Undocumented

Undocumented