compare: Union[_NoArg, bool] = _NoArg.NO_ARG,
kw_only: Union[_NoArg, bool] = _NoArg.NO_ARG,
hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG, # noqa: A002
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
) -> AssociationProxy[Any]:
r"""Return a Python property implementing a view of a target
attribute which references an attribute on members of the
.. versionadded:: 2.0.36
+ :param dataclass_metadata: Specific to
+ :ref:`orm_declarative_native_dataclasses`, supplies metadata
+ to be attached to the generated dataclass field.
+
+ .. versionadded:: 2.0.42
+
:param info: optional, will be assigned to
:attr:`.AssociationProxy.info` if present.
cascade_scalar_deletes=cascade_scalar_deletes,
create_on_none_assignment=create_on_none_assignment,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
)
from typing import Callable
from typing import Collection
from typing import Iterable
+from typing import Mapping
from typing import NoReturn
from typing import Optional
from typing import overload
system: bool = False,
comment: Optional[str] = None,
sort_order: Union[_NoArg, int] = _NoArg.NO_ARG,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
**kw: Any,
) -> MappedColumn[Any]:
r"""declare a new ORM-mapped :class:`_schema.Column` construct
.. versionadded:: 2.0.36
+ :param dataclass_metadata: Specific to
+ :ref:`orm_declarative_native_dataclasses`, supplies metadata
+ to be attached to the generated dataclass field.
+
+ .. versionadded:: 2.0.42
+
:param \**kw: All remaining keyword arguments are passed through to the
constructor for the :class:`_schema.Column`.
autoincrement=autoincrement,
insert_default=insert_default,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
doc=doc,
key=key,
expire_on_flush: bool = True,
info: Optional[_InfoType] = None,
doc: Optional[str] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
) -> MappedSQLExpression[_T]:
r"""Provide a column-level property for use with a mapping.
.. versionadded:: 2.0.36
+ :param dataclass_metadata: Specific to
+ :ref:`orm_declarative_native_dataclasses`, supplies metadata
+ to be attached to the generated dataclass field.
+
+ .. versionadded:: 2.0.42
+
"""
return MappedSQLExpression(
column,
compare,
kw_only,
hash,
+ dataclass_metadata,
),
group=group,
deferred=deferred,
hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG, # noqa: A002
info: Optional[_InfoType] = None,
doc: Optional[str] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
**__kw: Any,
) -> Composite[Any]: ...
hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG, # noqa: A002
info: Optional[_InfoType] = None,
doc: Optional[str] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
**__kw: Any,
) -> Composite[Any]:
r"""Return a composite column-based property for use with a Mapper.
class.
.. versionadded:: 2.0.36
+
+ :param dataclass_metadata: Specific to
+ :ref:`orm_declarative_native_dataclasses`, supplies metadata
+ to be attached to the generated dataclass field.
+
+ .. versionadded:: 2.0.42
+
"""
if __kw:
raise _no_kw()
_class_or_attr,
*attrs,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
group=group,
deferred=deferred,
info: Optional[_InfoType] = None,
omit_join: Literal[None, False] = None,
sync_backref: Optional[bool] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
**kw: Any,
) -> _RelationshipDeclared[Any]:
"""Provide a relationship between two mapped classes.
class.
.. versionadded:: 2.0.36
+
+ :param dataclass_metadata: Specific to
+ :ref:`orm_declarative_native_dataclasses`, supplies metadata
+ to be attached to the generated dataclass field.
+
+ .. versionadded:: 2.0.42
+
"""
return _RelationshipDeclared(
cascade=cascade,
viewonly=viewonly,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
lazy=lazy,
passive_deletes=passive_deletes,
hash: Union[_NoArg, bool, None] = _NoArg.NO_ARG, # noqa: A002
info: Optional[_InfoType] = None,
doc: Optional[str] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
) -> Synonym[Any]:
"""Denote an attribute name as a synonym to a mapped property,
in that the attribute will mirror the value and expression behavior
descriptor=descriptor,
comparator_factory=comparator_factory,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
doc=doc,
info=info,
expire_on_flush: bool = True,
info: Optional[_InfoType] = None,
doc: Optional[str] = None,
+ dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None] = _NoArg.NO_ARG,
) -> MappedSQLExpression[_T]:
r"""Indicate a column-based mapped attribute that by default will
not load unless accessed.
column,
*additional_columns,
attribute_options=_AttributeOptions(
- init, repr, default, default_factory, compare, kw_only, hash
+ init,
+ repr,
+ default,
+ default_factory,
+ compare,
+ kw_only,
+ hash,
+ dataclass_metadata,
),
group=group,
deferred=True,
compare,
_NoArg.NO_ARG,
_NoArg.NO_ARG,
+ _NoArg.NO_ARG,
),
expire_on_flush=expire_on_flush,
info=info,
from typing import Generic
from typing import Iterator
from typing import List
+from typing import Mapping
from typing import NamedTuple
from typing import NoReturn
from typing import Optional
dataclasses_compare: Union[_NoArg, bool]
dataclasses_kw_only: Union[_NoArg, bool]
dataclasses_hash: Union[_NoArg, bool, None]
+ dataclasses_dataclass_metadata: Union[_NoArg, Mapping[Any, Any], None]
def _as_dataclass_field(
self, key: str, dataclass_setup_arguments: _DataclassArguments
kw["kw_only"] = self.dataclasses_kw_only
if self.dataclasses_hash is not _NoArg.NO_ARG:
kw["hash"] = self.dataclasses_hash
+ if self.dataclasses_dataclass_metadata is not _NoArg.NO_ARG:
+ kw["metadata"] = self.dataclasses_dataclass_metadata
if "default" in kw and callable(kw["default"]):
# callable defaults are ambiguous. deprecate them in favour of
key: str,
annotation: _AnnotationScanType,
mapped_container: Optional[Any],
- elem: _T,
+ elem: Any,
dataclass_setup_arguments: _DataclassArguments,
) -> Union[
Tuple[str, _AnnotationScanType],
_NoArg.NO_ARG,
_NoArg.NO_ARG,
_NoArg.NO_ARG,
+ _NoArg.NO_ARG,
)
_DEFAULT_READONLY_ATTRIBUTE_OPTIONS = _AttributeOptions(
_NoArg.NO_ARG,
_NoArg.NO_ARG,
_NoArg.NO_ARG,
+ _NoArg.NO_ARG,
)