MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / Grouping

Class Grouping

lib/sqlalchemy/sql/elements.py:4378–4454  ·  view source on GitHub ↗

Represent a grouping within a column expression

Source from the content-addressed store, hash-verified

4376
4377
4378class Grouping(GroupedElement, ColumnElement[_T]):
4379 """Represent a grouping within a column expression"""
4380
4381 _traverse_internals: _TraverseInternalsType = [
4382 ("element", InternalTraversal.dp_clauseelement),
4383 ("type", InternalTraversal.dp_type),
4384 ]
4385
4386 _cache_key_traversal = [
4387 ("element", InternalTraversal.dp_clauseelement),
4388 ]
4389
4390 element: Union[
4391 AbstractTextClause,
4392 ClauseList,
4393 ColumnElement[_T],
4394 CompilerColumnElement,
4395 ]
4396
4397 def __init__(
4398 self,
4399 element: Union[
4400 AbstractTextClause,
4401 ClauseList,
4402 ColumnElement[_T],
4403 CompilerColumnElement,
4404 ],
4405 ):
4406 self.element = element
4407
4408 # nulltype assignment issue
4409 self.type = getattr(element, "type", type_api.NULLTYPE) # type: ignore
4410 self._propagate_attrs = element._propagate_attrs
4411
4412 def _with_binary_element_type(self, type_):
4413 return self.__class__(self.element._with_binary_element_type(type_))
4414
4415 def _ungroup(self) -> ColumnElement[_T]:
4416 assert isinstance(self.element, ColumnElement)
4417 return self.element._ungroup()
4418
4419 @util.memoized_property
4420 def _is_implicitly_boolean(self):
4421 return self.element._is_implicitly_boolean
4422
4423 @util.non_memoized_property
4424 def _tq_label(self) -> Optional[str]:
4425 return (
4426 getattr(self.element, "_tq_label", None) or self._anon_name_label
4427 )
4428
4429 @util.non_memoized_property
4430 def _proxies(self) -> List[ColumnElement[Any]]:
4431 if isinstance(self.element, ColumnElement):
4432 return [self.element]
4433 else:
4434 return []
4435

Callers 13

test_clone_anon_labelMethod · 0.90
self_groupMethod · 0.85
self_groupMethod · 0.85
self_groupMethod · 0.85
self_groupMethod · 0.85
self_groupMethod · 0.85
self_groupMethod · 0.85
self_groupMethod · 0.85
__init__Method · 0.85
self_groupMethod · 0.85

Calls

no outgoing calls

Tested by 3

test_clone_anon_labelMethod · 0.72