§
<ˆj—1 ã ó¦ — d Z ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z dd lm
Z
dd
lmZ ddlmZ dgZ
e
j G d
„ de¦ « ¦ « ZdS )z|MapperProperty implementations.
This is a private module which defines the behavior of individual ORM-
mapped attributes.
é )Úabsolute_importé )Ú
attributes)ÚPropComparator)ÚStrategizedProperty)Ú_orm_full_deannotateé )Úlog)Úutil©Ú
expressionÚColumnPropertyc ó ‡ — e Zd ZdZdZdZ ej d¬¦ « ˆ fd„¦ « Z ej dd¦ « d „ ¦ « Z
d
„ Zed„ ¦ « Z
d„ Zˆ fd
„Zd„ Zej fd„Zd„ Z G d„ dej e¦ « Zd„ Zˆ xZS )r z�Describes an object attribute that corresponds to a table column.
Public constructor is the :func:`_orm.column_property` function.
Úcolumn)Ú
_orig_columnsÚcolumnsÚgroupÚdeferredÚ
instrumentÚcomparator_factoryÚ
descriptorÚ extensionÚactive_historyÚexpire_on_flushÚinfoÚdocÚstrategy_keyÚ_creation_orderÚ_is_polymorphic_discriminatorÚ_mapped_by_synonymÚ_deferred_column_loader)z0.7zÃ:class:`.AttributeExtension` is deprecated in favor of the :class:`.AttributeEvents` listener interface. The :paramref:`.column_property.extension` parameter will be removed in a future release.)r c
óF •— t t | ¦ « ¦ « d„ |D ¦ « | _ d„ |D ¦ « | _ | dd¦ « | _ | dd¦ « | _ | dd¦ « | _ | d | j j
¦ « | _ | d
d¦ « | _ | dd¦ « | _
| dd¦ « | _ | d
d¦ « | _ d|v r| d¦ « | _ d|v r| d¦ « | _ n:t% | j ¦ « D ]}t' |dd¦ « }|� || _ nŒd| _ |rPt) | j j ›dd t/ | ¦ « ¦ « ¦ « ›�¦ « ‚t3 j | ¦ « d| j fd| j ff| _ dS )a·
Provide a column-level property for use with a mapping.
Column-based properties can normally be applied to the mapper's
``properties`` dictionary using the :class:`_schema.Column`
element directly.
Use this function when the given column is not directly present within
the mapper's selectable; examples include SQL expressions, functions,
and scalar SELECT queries.
The :func:`_orm.column_property` function returns an instance of
:class:`.ColumnProperty`.
Columns that aren't present in the mapper's selectable won't be
persisted by the mapper and are effectively "read-only" attributes.
:param \*cols:
list of Column objects to be mapped.
:param active_history=False:
When ``True``, indicates that the "previous" value for a
scalar attribute should be loaded when replaced, if not
already loaded. Normally, history tracking logic for
simple non-primary-key scalar values only needs to be
aware of the "new" value in order to perform a flush. This
flag is available for applications that make use of
:func:`.attributes.get_history` or :meth:`.Session.is_modified`
which also need to know
the "previous" value of the attribute.
:param comparator_factory: a class which extends
:class:`.ColumnProperty.Comparator` which provides custom SQL
clause generation for comparison operations.
:param group:
a group name for this property when marked as deferred.
:param deferred:
when True, the column property is "deferred", meaning that
it does not load immediately, and is instead loaded when the
attribute is first accessed on an instance. See also
:func:`~sqlalchemy.orm.deferred`.
:param doc:
optional string that will be applied as the doc on the
class-bound descriptor.
:param expire_on_flush=True:
Disable expiry on flush. A column_property() which refers
to a SQL expression (and not a single table-bound column)
is considered to be a "read only" property; populating it
has no effect on the state of data, and it can only return
database state. For this reason a column_property()'s value
is expired whenever the parent object is involved in a
flush, that is, has any kind of "dirty" state within a flush.
Setting this parameter to ``False`` will have the effect of
leaving any existing value present after the flush proceeds.
Note however that the :class:`.Session` with default expiration
settings still expires
all attributes after a :meth:`.Session.commit` call, however.
:param info: Optional data dictionary which will be populated into the
:attr:`.MapperProperty.info` attribute of this object.
:param extension:
an :class:`.AttributeExtension` instance, or list of extensions,
which will be prepended to the list of attribute listeners for the
resulting descriptor placed on the class.
.. seealso::
:ref:`column_property_options` - to map columns while including
mapping options
:ref:`mapper_column_property_sql_expressions` - to map SQL
expressions
c ó6 — g | ]}t j |¦ « ‘ŒS © )r
Ú_labeled©Ú.0Úcs úP/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/orm/properties.pyú