MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / __init__

Method __init__

lib/sqlalchemy/sql/elements.py:4742–4779  ·  view source on GitHub ↗
(
        self,
        name: Optional[str],
        element: _ColumnExpressionArgument[_T],
        type_: Optional[_TypeEngineArgument[_T]] = None,
    )

Source from the content-addressed store, hash-verified

4740 name: str
4741
4742 def __init__(
4743 self,
4744 name: Optional[str],
4745 element: _ColumnExpressionArgument[_T],
4746 type_: Optional[_TypeEngineArgument[_T]] = None,
4747 ):
4748 orig_element = element
4749 element = coercions.expect(
4750 roles.ExpressionElementRole,
4751 element,
4752 apply_propagate_attrs=self,
4753 )
4754 while isinstance(element, Label):
4755 # TODO: this is only covered in test_text.py, but nothing
4756 # fails if it's removed. determine rationale
4757 element = element.element
4758
4759 if name:
4760 self.name = name
4761 else:
4762 self.name = _anonymous_label.safe_construct(
4763 id(self), getattr(element, "name", "anon")
4764 )
4765 if isinstance(orig_element, Label):
4766 # TODO: no coverage for this block, again would be in
4767 # test_text.py where the resolve_label concept is important
4768 self._resolve_label = orig_element._label
4769
4770 self.key = self._tq_label = self._tq_key_label = self.name
4771 self._element = element
4772
4773 self.type = (
4774 type_api.to_instance(type_)
4775 if type_ is not None
4776 else self._element.type
4777 )
4778
4779 self._proxies = [element]
4780
4781 def __reduce__(self):
4782 return self.__class__, (self.name, self._element, self.type)

Callers

nothing calls this directly

Calls 1

safe_constructMethod · 0.80

Tested by

no test coverage detected