+
    i                      a  0 t $ R t^ RIHt ^ RIHt ^ RIt^ RIt^ RIt^ RI	t	^ RI	H
t
 ^ RI	Ht ^ RI	Ht ^ RI	Ht ^ RI	Ht ^ R	I	Ht ^ R
I	Ht ^ RI	Ht ^ RI	Ht ^ RI	Ht ^ RI	Ht ^ RI	Ht ^ RIt^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RIH t  ^RI!H"t" ^RI!H#t# ^RI!H$t$ ^RI!H%t% ^RI!H&t& ^RIH't' ^RIH(t( ^RIH)t) ^RIH*t+ ^R IH,t, ^R!IH-t- ^RIHt ^R"I-H.t. ^R#I-H/t/ ^R$I0H1t1 ^R%I2H3t3 ^R&I2H4t4 ^R'I2H5t5 ]	P&                  '       d   ^R(I6H7t7 ^R)I6H8t8 ^R*IH9t9 ^R+IH:t: ^R,IH;t; ^R-I<H=t= ^R.I>H?t? ^R/I@HAtA ^R0IBHCtC ^R1IBHDtD ^R2IEHFtF ^R3IGHHtH ^R4IIHJtJ ^R5IKHLtL ^R6IKHMtM ^R7I0HNtN ^R8I0HOtO ^R9IPHQtQ ^R:IRHStS ^R;ITHUtU ^R<I2HVtV ^R=I2HWtW ^R>I2HXtX ^R?I2HYtY ]! R@]
RA7      tZ]! RB]
RA7      t[ ! RC RD]%]Z,          4      t\]]]RERFRGRH3,          t^]! RI]
RA7      t_]P                  ! 4       taRJ]bRK&    ! RL RM]$]_,          ]#]\]_,          4      tc ! RN RO]c]Z,          ]]Z,          4      td ! RP RQ]\]Z,          4      te ! RR RS]\]Z,          4      tf ! RT RU]f]Z,          ]]Z,          4      tgR# )VzDescriptor properties are more "auxiliary" properties
that exist as configurational elements, but don't participate
as actively in the load/persist ORM loop.

)annotations)is_dataclassN)Any)Callable)Dict)List)NoReturn)Optional)Sequence)Tuple)Type)TYPE_CHECKING)TypeVar)Union)
attributes)util)_DeclarativeMapped)LoaderCallableStatus)Mapped)PassiveFlag)SQLORMOperations)_AttributeOptions)_IntrospectsAnnotations)_MapsColumns)MapperProperty)PropComparator)	_none_set)de_stringify_annotation)event)exc)schema)sql
expression)	operators)BindParameter)get_args)
is_fwd_ref)	is_pep593)_InstanceDict)_RegistryType)History)InstrumentedAttribute)QueryableAttribute)ORMCompileState)_ClassScanMapperConfig)Mapper)ColumnProperty)MappedColumn)InstanceState)
Connection)Row)_DMLColumnArgument)	_InfoType)
ClauseList)ColumnElement)OperatorType)Column)Select)_AnnotationScanType)CallableReference)DescriptorReference)RODescriptorReference_T)bound_PTc                  z    ] tR t^[t$ RtRtR]R&   RtRtR]R&   R R	 lt	]
P                  3R
 R lltR R ltRtR# )DescriptorPropertyzK:class:`.MapperProperty` which proxies access to a
user-defined descriptor.NOptional[str]docFzDescriptorReference[Any]
descriptorc                   V ^8  d   QhRR/#    returnz!Sequence[QueryableAttribute[Any]] )formats   "ڈC:\Users\petid\OneDrive\Desktop\Maestro\MAESTRO CLAUDE\MAESTRO\maestro-backend\venv\Lib\site-packages\sqlalchemy\orm\descriptor_props.py__annotate__DescriptorProperty.__annotate__f   s     
 
(I 
    c                	    \        R 4      h)z?This MapperProperty does not implement column loader strategiesNotImplementedErrorselfs   &rO   _column_strategy_attrs)DescriptorProperty._column_strategy_attrsf   s    !M
 	
rR   c               (    V ^8  d   QhRRRRRRRR/# 	rK   stateInstanceState[Any]dict_r)   passiver   rL   r+   rM   )rN   s   "rO   rP   rQ   k   s2     $ $!$ $ 	$
 
$rR   c                	    \        4       hNrT   )rW   r\   r^   r_   s   &&&&rO   get_historyDescriptorProperty.get_historyk   s     "##rR   c                    V ^8  d   QhRRRR/# rK   mapperMapper[Any]rL   NonerM   )rN   s   "rO   rP   rQ   s   s     2H 2H{ 2Ht 2HrR   c           	     	  a aa S o ! V3R  lR\         P                  4      pS P                  fK   \        SP                  S P
                  R4      pSP                  S P
                  V4      '       d   VS n        S P                  f.   R V 3R llpR V 3R llpR V 3R llp\        WdVR	7      S n        \         P                  ! S P                  4      ! S P                  P                  S P
                  S P                  VV 3R
 lS P                  S R7      pV! S P
                  4      Vn        SP                  P                  S P
                  V4       R# )c                  x   < ] tR t^vtRtRtRt]R V 3R ll4       tR R lt	]
P                  3R V 3R llltR	tR
# )7DescriptorProperty.instrument_class.<locals>._ProxyImplFTc                   V ^8  d   QhRR/# rK   rL   boolrM   )rN   s   "rO   rP   DDescriptorProperty.instrument_class.<locals>._ProxyImpl.__annotate__|   s     ) )d )rR   c                	   < SP                   # ra   )uses_objectsrW   props   &rO   rq   DDescriptorProperty.instrument_class.<locals>._ProxyImpl.uses_objects{   s    (((rR   c                   V ^8  d   QhRR/# )rK   keystrrM   )rN   s   "rO   rP   ro      s      C rR   c                	    Wn         R # ra   rv   )rW   rv   s   &&rO   __init__@DescriptorProperty.instrument_class.<locals>._ProxyImpl.__init__   s    rR   c               (    V ^8  d   QhRRRRRRRR/# r[   rM   )rN   s   "rO   rP   ro      s2     ? ?)? %? %	?
 ?rR   c                	(   < SP                  WV4      # ra   )rb   )rW   r\   r^   r_   rs   s   &&&&rO   rb   CDescriptorProperty.instrument_class.<locals>._ProxyImpl.get_history   s     ''g>>rR   ry   N)__name__
__module____qualname____firstlineno__accepts_scalar_loaderload_on_unexpire
collectionpropertyrq   rz   r   PASSIVE_OFFrb   __static_attributes__)rs   s   rO   
_ProxyImplrk   v   s@    $)!#J) ) (3'>'>	? ?rR   r   Nc               $    V ^8  d   QhRRRRRR/# )rK   objr   valuerL   rh   rM   )rN   s   "rO   rP   9DescriptorProperty.instrument_class.<locals>.__annotate__   s!     / /# /c /d /rR   c                6   < \        V SP                  V4       R # ra   )setattrname)r   r   rW   s   &&rO   fset1DescriptorProperty.instrument_class.<locals>.fset   s    TYY.rR   c                    V ^8  d   QhRRRR/# )rK   r   r   rL   rh   rM   )rN   s   "rO   rP   r      s     ( (# ($ (rR   c                4   < \        V SP                  4       R # ra   )delattrr   r   rW   s   &rO   fdel1DescriptorProperty.instrument_class.<locals>.fdel   s    TYY'rR   c                    V ^8  d   QhRRRR/# )rK   r   r   rL   rM   )rN   s   "rO   rP   r      s     / /# /# /rR   c                0   < \        V SP                  4      # ra   )getattrr   r   s   &rO   fget1DescriptorProperty.instrument_class.<locals>.fget   s    sDII..rR   )r   r   r   c                 &   < SP                  S 4      # ra   )_comparator_factory)rf   rW   s   rO   <lambda>5DescriptorProperty.instrument_class.<locals>.<lambda>   s    D,,V4rR   )rG   original_property)r   AttributeImplrH   r   class_rv   _is_userland_descriptorr   create_proxied_attributeparentrG   implclass_managerinstrument_attribute)	rW   rf   r   descr   r   r   
proxy_attrrs   s	   ff      @rO   instrument_class#DescriptorProperty.instrument_classs   s    	?11 	?( ??"6==$((D9D--dhh=="&??"/ /( (/ / 'D$GDO88IKKHHOO4"

 %TXX.
11$((JGrR   rH   )r   r   r   r   __doc__rG   __annotations__rq   _links_to_entityrX   r   r   rb   r   r   rM   rR   rO   rE   rE   [   sE      CL((
  +66	$2H 2HrR   rE   z
Column[_T]zMappedColumn[_T]zInstrumentedAttribute[_T]z
Mapped[_T]_CCzFweakref.WeakKeyDictionary[Type[Any], Callable[[Any], Tuple[Any, ...]]]_composite_gettersc                  ~  a  ] tR t^t$ RtR]R&   R]R&   R]R&   R]R	&   RCRR
RRRRRR
R	R
RR
/R V 3R lllltR V 3R lltR R ltR R lt	]
! 4       tR R lt]P                  ! R4      R R l4       tR R lt]P                  ! R4      ]P                  ! R 4      R! R" l4       4       t]P$                  R# R$ l4       t]P$                  ]P                  ! R%4      R& R' l4       4       tR( R) lt]P,                  ]P                  ! R%4      R* R+ l4       4       t]R, R- l4       t]R. R/ l4       t]P                  ! R%4      R0 R1 l4       tR2 R3 lt]P$                  R4 R5 l4       tR6 R7 lt]P@                  3R8 R9 llt!R: R; lt" ! R< R=]#PH                  ]%,          4      t& ! R> R?]'](,          4      t)R@ RA lt*RBt+V ;t,# )DCompositePropertyzDefines a "composite" mapped attribute, representing a collection
of columns as one attribute.

:class:`.CompositeProperty` is constructed using the :func:`.composite`
function.

.. seealso::

    :ref:`mapper_composite`

z$Union[Type[_CC], Callable[..., _CC]]composite_classz#Tuple[_CompositeAttrType[Any], ...]attrsz=CallableReference[Optional[Callable[[_CC], Tuple[Any, ...]]]]_generated_composite_accessorzType[Comparator[_CC]]comparator_factoryNattribute_optionsactive_historyFdeferredgroupinfoc               <    V ^8  d   QhRRRRRRRRR	RR
RRRRRRR/	# )rK   _class_or_attrzCUnion[None, Type[_CC], Callable[..., _CC], _CompositeAttrType[Any]]r   z_CompositeAttrType[Any]r   Optional[_AttributeOptions]r   rn   r   r   rF   r   zOptional[Type[Comparator[_CC]]]r   Optional[_InfoType]kwargsr   rM   )rN   s   "rO   rP   CompositeProperty.__annotate__   sf     & &
&
 (& 7& & & & <& "& &rR   c               	  < \         S
V `  VR 7       \        V\        \        \
        P                  34      '       d   V3V,           V n        RV n        MWn        Wn        W0n	        W@n
        WPn        Ve   TMV P                  P                  V n        RV n        Ve   V P                   P#                  V4       \$        P&                  ! V 4       V P)                  4        V P+                  4        R# )r   N)superrz   
isinstancer   rw   r!   r9   r   r   r   r   r   	__class__
Comparatorr   r   r   updater   set_creation_order_create_descriptor_init_accessor)rW   r   r   r   r   r   r   r   r   r   r   s   &&$$$$$$*,rO   rz   CompositeProperty.__init__   s     	+<=nvsC4E4E&FGG(*U2DJ#'D #1 J, 
 "- ** 	
 .2*IIT"%!rR   c                    V ^8  d   QhRRRR/# re   rM   )rN   s   "rO   rP   r      s     % %{ %t %rR   c                	F   < \         SV `  V4       V P                  4        R # ra   )r   r   _setup_event_handlers)rW   rf   r   s   &&rO   r   "CompositeProperty.instrument_class   s     (""$rR   c                    V ^8  d   QhRRRR/# )rK   r   r   rL   zTuple[Any, ...]rM   )rN   s   "rO   rP   r      s     " "S "_ "rR   c                	    V P                   '       d   V P                  V4      #  VP                  pV! 4       #   \         d5   p\        P                  ! R T P
                  P                   R24      ThRp?ii ; i)zComposite class zX is not a dataclass and does not define a __composite_values__() method; can't get stateN)r   __composite_values__AttributeErrorsa_excInvalidRequestErrorr   r   )rW   r   accessoraes   &&  rO   _composite_values_from_instance1CompositeProperty._composite_values_from_instance   s    ---55e<<	" 55  z! " 00&t';';'D'D&E F/ / 	s   8 A7/A22A7c                   V ^8  d   QhRR/# rK   rL   rh   rM   )rN   s   "rO   rP   r     s     + + +rR   c                &    V P                  4        R# )zgInitialization which occurs after the :class:`.Composite`
has been associated with its parent mapper.

N)_setup_arguments_on_columnsrV   s   &rO   do_initCompositeProperty.do_init  s    
 	((*rR   c                   V ^8  d   QhRR/# r   rM   )rN   s   "rO   rP   r     s     H5 H5D H5rR   c                f   a a R V 3R lloR VV 3R llpR VV 3R llp\        SW4      S n        R# )zdCreate the Python descriptor that will serve as
the access point on instances of the mapped class.

c                    V ^8  d   QhRRRR/# )rK   instancer   rL   rM   )rN   s   "rO   rP   :CompositeProperty._create_descriptor.<locals>.__annotate__  s     	- 	-3 	-3 	-rR   c                0  < \         P                  ! V 4      p\         P                  ! V 4      pSP                  V9  d   SP                   Uu. uF  p\        W4      NK  	  ppSP                  V9  d   VP                  f   \        P                  ! V4      '       gZ   SP                  ! V!  VSP                  &   VP                  P                  P                  VSP                  SP                  .4       VP                  SP                  R 4      # u upi ra   )r   instance_dictinstance_staterv   _attribute_keysr   r   
issupersetr   managerdispatchrefresh_COMPOSITE_FGETget)r   r^   r\   rv   valuesrW   s   &    rO   r   2CompositeProperty._create_descriptor.<locals>.fget  s    ,,X6E--h7Exxu$
 7;6J6J6JsGH*6J   885(II)1E1Ef1M1M&*&:&:F&CE$((OMM**22t33dhhZ 99TXXt,,#s   Dc               $    V ^8  d   QhRRRRRR/# )rK   r   r   r   rL   rh   rM   )rN   s   "rO   rP   r   6  s!     	2 	23 	2s 	2t 	2rR   c                r  < \         P                  ! V 4      p\         P                  ! V 4      pVP                  S	P                  ,          pVP
                  P                  '       d
   S! V 4      pM*VP                  S	P                  \        P                  4      pVP
                  P                   F  pV! W1WTP                  4      pK  	  WS	P                  &   Vf"   S	P                   F  p\        WR 4       K  	  R # \        S	P                  S	P                  V4      4       F  w  rq\        WV4       K  	  R # ra   )r   r   r   r   rv   r   _active_historyr   r   NO_VALUEsetr   r   r   zipr   )
r   r   r^   r\   attrpreviousfnrv   r   rW   s
   &&      rO   r   2CompositeProperty._create_descriptor.<locals>.fset6  s    ,,X6E--h7E==*D}},,,> 99TXX/C/L/LMmm''599= (#$((O}//CH40 0 #&((88?#JC H51	#rR   c                    V ^8  d   QhRRRR/# )rK   r   r   rL   rh   rM   )rN   s   "rO   rP   r   M  s     	- 	-3 	-4 	-rR   c                4  < \         P                  ! V 4      p\         P                  ! V 4      pVP                  SP                  ,          pVP
                  P                  '       d&   S! V 4      pVP                  SP                  R 4       M*VP                  SP                  \        P                  4      pVP                  SP                  ,          pVP
                  P                  WVP                  4       SP                   F  p\        WR 4       K  	  R # ra   )r   r   r   r   rv   r   r   popr   r   remover   r   r   )r   r\   r^   r   r   rv   r   rW   s   &     rO   r   2CompositeProperty._create_descriptor.<locals>.fdelM  s    --h7E,,X6E==*D}},,,>		$((D) 99TXX/C/L/LM==*DMM  $))<++t, ,rR   N)r   rH   )rW   r   r   r   s   f  @rO   r   $CompositeProperty._create_descriptor  s1    	- 	-6	2 	2.	- 	-  #44rR   sqlalchemy.orm.propertiesc               @    V ^8  d   QhRRRRRRRRR	R
RRRRRRRRRR/
# )rK   	decl_scanr/   registryr*   cls	Type[Any]originating_modulerF   rv   rw   mapped_containerzOptional[Type[Mapped[Any]]]
annotationzOptional[_AnnotationScanType]extracted_mapped_annotationis_dataclass_fieldrn   rL   rh   rM   )rN   s   "rO   rP   r   `  so     9 9)9  9 	9
 *9 9 69 29 &C9 !9 
9rR   c
                	J   \         P                  P                  P                  p
V P                  f   Vf   V P                  WS4       Tp\        V4      '       d   \        V4      ^ ,          pV'       d   V P                  f   \        V\        4      '       g   \        VRR7      '       dY   VfG   \        VR4      '       d   VP                  M
\        V4      p\        P                  ! RV RV R24      h\        W;VRR7      pWn        \!        V P                  4      '       d   V P#                  WW4V4       MZV P$                   FJ  p\        W\&        P(                  34      '       g   K&  VP*                  e   K6  \        P                  ! R4      h	  V P-                  4        R # )	NT)check_generic__forward_arg__zCan't use forward ref z9 for composite class argument; set up the type as Mapped[])include_genericzIComposite class column arguments must be named unless a dataclass is used)r   	preloadedorm_propertiesr2   r   _raise_for_requiredr(   r&   r   rw   r'   hasattrr  r   ArgumentErrorr   r   _setup_for_dataclassr   r    r;   r   r   )rW   r  r	  r
  r  rv   r  r  r  r  r2   argumentstr_argr   s   &&&&&&&&&&    rO   declarative_scan"CompositeProperty.declarative_scan_  sx    ~~44AA  (+3$$S..X)!,H,,4(C((J- - &- #8->?? !00 ] 
 !..0
 ;EELIQP  3#5t $, ,,--%%Sc 

tFMM%BCC		) ..5  # 	rR   c                   V ^8  d   QhRR/# r   rM   )rN   s   "rO   rP   r     s       rR   c                	  a \        V P                  4      '       d   \        V P                  R 4      '       g   \        P                  ! V P                  4      p\
        P                  ! VP                  P                  4        Uu. uF  q"P                  NK  	  up!  o\        VP                  4      ^8X  d   V3R lV n        MSV n        V P                  e   \        V P                  \        4      '       dy   V P                  \        9  db   V P                  e    V P                  \        V P                  &   R# \        V P                  R 4      '       d   R \        V P                  &   R# R# R# R# R# u upi )r   c                   < S! V 4      3# ra   rM   )r   getters   &rO   r   2CompositeProperty._init_accessor.<locals>.<lambda>  s    &+rR   Nc                "    V P                  4       # ra   r   )r   s   &rO   r   r$    s     8 8 :rR   )r   r   r  inspect	signatureoperator
attrgetter
parametersr   r   lenr   r   typer   )rW   insppr#  s   &  @rO   r    CompositeProperty._init_accessor  s2   ,,--g  "87
 7
 $$T%9%9:D(("&//"8"8":;":Q&&":;F 4??#q(5O25;2   ,4//66$$,>>11=66 #4#7#78 --/EFF: #4#7#78 G ? 7 - <s   E5zsqlalchemy.orm.decl_basec               0    V ^8  d   QhRRRRRRRRR	R
RR/# )rK   r  r/   r	  r*   r
  r  r  rF   rv   rw   rL   rh   rM   )rN   s   "rO   rP   r     sN     'A 'A)'A  'A 	'A
 *'A 'A 
'ArR   c                	F   \         P                  P                  P                  p\         P                  P                  p\
        P                  ! V P                  4      p\        P                  ! VP                  P                  4       V P                  4       EF  w  rV	fZ   \        P                  ! R\        V P                  4       RV P                  P                    R\        VP                  4       24      hV
f"   V! 4       p
V ;P                  V
3,          un        \#        W4      '       d.   V
P%                  VVVVVV	P&                  V	P(                  4       K  \#        V
\*        P,                  4      '       g   K  VP/                  V	P&                  V
4       EK  	  R # )Nznumber of composite attributes z3 exceeds that of the number of attributes in class  )r   r  r  r2   orm_decl_baser'  r(  r   	itertoolszip_longestr+  r   r   r   r  r,  r   r   declarative_scan_for_compositer   r  r    r;   _undefer_column_name)rW   r  r	  r
  r  rv   r2   	decl_baser.  paramr   s   &&&&&&     rO   r  &CompositeProperty._setup_for_dataclass  sA    ~~44AANN00	  !5!56$00OO""$djj
KE }**54::' (A++445Qs4??7K6LN  |#~

tg%
$--33&JJ$$ D&--00..uzz4@5
rR   c                   V ^8  d   QhRR/# rJ   rM   )rN   s   "rO   rP   r     s     N N&G NrR   c                	    V P                    Uu. uF-  p\        V P                  P                  VP                  4      NK/  	  up# u upi ra   )propsr   r   r   rv   rr   s   & rO   _comparable_elements&CompositeProperty._comparable_elements  s3    BF**M*$**DHH5*MMMs   3Azorm.propertiesc                   V ^8  d   QhRR/# )rK   rL   zSequence[MapperProperty[Any]]rM   )rN   s   "rO   rP   r     s      4 rR   c                	   . p\         P                  P                  P                  pV P                   EF  p\        V\        4      '       d   V P                  P                  VR R7      pM\        V\        P                  4      '       d   V P                  P                  V,          pMh\        W24      '       d)   V P                  P                  VP                  ,          pM/\        V\        P                  4      '       d   VP                  pMRp\        V\         4      '       g   \"        P$                  ! RV: 24      hVP'                  V4       EK"  	  V# )F)_configure_mappersNzYComposite expects Column objects or mapped attributes/attribute names as arguments, got: )r   r  r  r2   r   r   rw   r   get_propertyr    r;   _columntopropertycolumnr   r,   r   r   r   r  append)rW   r>  r2   r   rs   s   &    rO   r>  CompositeProperty.props  s    ~~44AAJJD$$${{///OD&--00{{44T:D//{{44T[[AD*"B"BCC}}dN33**EEIHN 
 LL% & rR   c                   V ^8  d   QhRR/# rJ   rM   )rN   s   "rO   rP   r      s     ) )(I )rR   c                	    V P                   # ra   )r?  rV   s   &rO   rX   (CompositeProperty._column_strategy_attrs   s    (((rR   c                   V ^8  d   QhRR/# )rK   rL   zSequence[Column[Any]]rM   )rN   s   "rO   rP   r     s     
 
. 
rR   c                	   \         P                  P                  P                  pV P                   Uu. uFF  p\        V\        P                  V34      '       g   K'  \        W!4      '       d   VP                  MTNKH  	  up# u upi ra   )	r   r  r  r2   r   r   r    r;   rF  )rW   r2   as   &  rO   columnsCompositeProperty.columns  sl     ~~44AA ZZ
!fmm\:; ;
133AHH:
 	
 
s   $B#Bc                   V ^8  d   QhRR/# )rK   rL   zOptional[MapperProperty[_CC]]rM   )rN   s   "rO   rP   r     s      +H rR   c                	    V # ra   rM   rV   s   &rO   mapper_property_to_assign+CompositeProperty.mapper_property_to_assign  s    rR   c                   V ^8  d   QhRR/# )rK   rL   z$List[Tuple[schema.Column[Any], int]]rM   )rN   s   "rO   rP   r     s     A A#G ArR   c                	f    V P                    Uu. uF  qP                  e   K  V^ 3NK  	  up# u upi ra   )rO  table)rW   cs   & rO   columns_to_assign#CompositeProperty.columns_to_assign  s(     $@1A@@@s   ..c                   V ^8  d   QhRR/# r   rM   )rN   s   "rO   rP   r     s     % %T %rR   c                6   \         P                  P                  P                  pV P                   Fd  p\        W!4      '       g   K  TpV P                  Vn        V P                  '       d   V P                  Vn        RVn        V P                  Vn	        Kf  	  R# )zgPropagate configuration arguments made on this composite
to the target columns, for those that apply.

N))r   T)
instrumentT)
r   r  r  r1   r>  r   r   r   strategy_keyr   )rW   r1   rs   cprops   &   rO   r   -CompositeProperty._setup_arguments_on_columns  so     66EEJJDd33#'#6#6E }}}!%%O"**EK rR   c                   V ^8  d   QhRR/# r   rM   )rN   s   "rO   rP   r   )  s     [G [Gt [GrR   c                  a a R V3R llpR VV 3R llpR V 3R lloR V 3R llpR	 V 3R
 llp\         P                  ! S P                  RVRR7       \         P                  ! S P                  RVRR7       \         P                  ! S P                  RVRRR7       \         P                  ! S P                  RVRRR7       \         P                  ! S P                  RVRRR7       S P                  P                  S P                  ,          pVP
                  VP                  n        S P                  VP                  P
                  n        R# )z>Establish events that populate/expire the composite attribute.c               $    V ^8  d   QhRRRRRR/# )rK   r\   r]   contextr.   rL   rh   rM   )rN   s   "rO   rP   =CompositeProperty._setup_event_handlers.<locals>.__annotate__,  s)     	J 	J%	J0?	J	JrR   c                   < S! WR RR7       R # )NF
is_refreshrM   )r\   rd  _load_refresh_handlers   &&rO   load_handler=CompositeProperty._setup_event_handlers.<locals>.load_handler,  s     "%$5IrR   c               (    V ^8  d   QhRRRRRRRR/# )	rK   r\   r]   rd  r.   to_loadOptional[Sequence[str]]rL   rh   rM   )rN   s   "rO   rP   re  1  s6     
	P 
	P%
	P$
	P -
	P 	
	PrR   c                   < V'       d<   SP                   0P                  SP                  4      P                  V4      '       d   S! WVR R7       R# R# )Trg  N)rv   unionr   intersection)r\   rd  rm  ri  rW   s   &&&rO   refresh_handler@CompositeProperty._setup_event_handlers.<locals>.refresh_handler1  sD     
  !5!56l7#$ &eg$O$rR   c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )rK   r\   r]   rd  r.   rm  rn  rh  rn   rL   rh   rM   )rN   s   "rO   rP   re  =  s:     	 	%	$	 -	 		
 	rR   c                F  < V P                   pV'       d   VSP                  J d   SP                  V9   d   R # SP                   F  pWT9  g   K   R # 	  SP                  ! SP                   Uu. uF  q`P                   V,          NK  	  up!  VSP                  &   R # u upi ra   )dictr   rv   r   r   )r\   rd  rm  rh  r^   krv   rW   s   &&&&   rO   ri  FCompositeProperty._setup_event_handlers.<locals>._load_refresh_handler=  s     JJE 'T-A-A"A((e#
 ))> * #22-1-A-AB-Ac**S//-ABE$((OBs   /Bc               $    V ^8  d   QhRRRRRR/# )rK   r\   r]   keysrn  rL   rh   rM   )rN   s   "rO   rP   re  ^  s$     	/ 	/%	/-D	/	/rR   c                   < Ve+   \        SP                  4      P                  V4      '       d)   V P                  P	                  SP
                  R 4       R # R # ra   )r   r   rq  rv  r  rv   )r\   rz  rW   s   &&rO   expire_handler?CompositeProperty._setup_event_handlers.<locals>.expire_handler^  sA     |s4#7#78EEdKK

txx.  LrR   c               (    V ^8  d   QhRRRRRRRR/# )	rK   rf   rg   
connectionr4   r\   r]   rL   rh   rM   )rN   s   "rO   rP   re  d  s0     	+ 	+	+"	+ &	+ 		+rR   c                T   < VP                   P                  SP                  R4       R# )zAfter an insert or update, some columns may be expired due
to server side defaults, or re-populated due to client side
defaults.  Pop out the composite value here so that it
recreates.

N)rv  r  rv   )rf   r  r\   rW   s   &&&rO   insert_update_handlerFCompositeProperty._setup_event_handlers.<locals>.insert_update_handlerd  s     JJNN488T*rR   after_insertT)rawafter_updateload)r  	propagater   expireN)	r   listenr   r   rv   r   r   r   r   )rW   rj  rr  r|  r  r   ri  s   f     @rO   r   'CompositeProperty._setup_event_handlers)  s   	J 	J

	P 
	P	 	B	/ 	/	+ 	+ 	KK)>D	
 	KK)>D	
 	KK44	
 	KKO	
 	KK>tt	
 [[..txx8
#-#6#6
 373F3F
  0rR   c                   V ^8  d   QhRR/# )rK   rL   Sequence[str]rM   )rN   s   "rO   rP   r     s     1 1 1rR   c                	V    V P                    Uu. uF  qP                  NK  	  up# u upi ra   )r>  rv   rr   s   & rO   r   !CompositeProperty._attribute_keys  s     %)ZZ0ZTZ000s   &c                   V ^8  d   QhRR/# )rK   rL   z Callable[[Dict[str, Any]], None]rM   )rN   s   "rO   rP   r     s      	)rR   c                	   a aa S P                   '       d   S P                   oMR  R loS P                   Uu. uF  qP                  NK  	  upoR VVV 3R llpV# u upi )c                    V ^8  d   QhRRRR/# )rK   valr   rL   z
Tuple[Any]rM   )rN   s   "rO   rP   QCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.__annotate__  s     2 2 2
 2rR   c                "    V P                  4       # ra   r&  )r  s   &rO   
get_valuesOCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.get_values  s    //11rR   c                    V ^8  d   QhRRRR/# )rK   	dest_dictzDict[str, Any]rL   rh   rM   )rN   s   "rO   rP   r    s     	 	 	4 	rR   c           
        < T P                  \        SS! V P                  SP                  4      4      4       UUu/ uF  w  rWbK	  	  upp4       R # u uppi ra   )r   r   r  rv   )r  rv   r  r   r  rW   s   &  rO   populateMCompositeProperty._populate_composite_bulk_save_mappings_fn.<locals>.populate  sW     %(z)--*AB%% H%s   A
)r   r>  rv   )rW   rs   r  r   r  s   f  @@rO   )_populate_composite_bulk_save_mappings_fn;CompositeProperty._populate_composite_bulk_save_mappings_fn  sS     ---;;J2 '+jj1jdj1	 	  2s   Ac               (    V ^8  d   QhRRRRRRRR/# r[   rM   )rN   s   "rO   rP   r     s8     #N #N!#N #N 	#N
 
#NrR   c                   . p. pRpV P                    F  pVP                  pVP                  V,          P                  P	                  W4      p	V	P                  4       '       d   RpV	P                  4       p
V
'       d   VP                  V
4       MVP                  R4       V	P                  '       d   VP                  V	P                  4       K  VP                  R4       K  	  V'       d7   \        P                  ! V P                  ! V!  .RV P                  ! V!  .4      # \        P                  ! RV P                  ! V!  .R4      # )z>Provided for userland code that uses attributes.get_history().FTNrM   )r>  rv   r   r   rb   has_changesnon_deletedextendrG  deletedr   r+   r   )rW   r\   r^   r_   addedr  has_historyrs   rv   histr  s   &&&&       rO   rb   CompositeProperty.get_history  s    JJD((C==%**66uDD!!"**,K[)T"|||t||,t$   %%%%u-.%%w/0  %%b4+?+?+G*H"MMrR   c                    V ^8  d   QhRRRR/# )rK   rf   rg   rL   zComposite.Comparator[_CC]rM   )rN   s   "rO   rP   r     s     5 5!5	"5rR   c                	$    V P                  W4      # ra   )r   )rW   rf   s   &&rO   r   %CompositeProperty._comparator_factory  s     &&t44rR   c                  :   a  ] tR tRtR V 3R lltR R ltRtV ;t# )!CompositeProperty.CompositeBundlei  c                    V ^8  d   QhRRRR/# )rK   	property_zComposite[_T]exprr8   rM   )rN   s   "rO   rP   .CompositeProperty.CompositeBundle.__annotate__  s     	3 	3$	3 	3rR   c                	L   < Wn         \        SV `  ! VP                  .VO5!   R # ra   )r   r   rz   rv   )rW   r  r  r   s   &&&rO   rz   *CompositeProperty.CompositeBundle.__init__  s     
 &MGY]]2T2rR   c               (    V ^8  d   QhRRRRRRRR/# )	rK   queryzSelect[Any]procsz#Sequence[Callable[[Row[Any]], Any]]labelsr  rL   zCallable[[Row[Any]], Any]rM   )rN   s   "rO   rP   r    s2     	 		 7	 "		
 '	rR   c                	   a a R  VV 3R llpV# )c                    V ^8  d   QhRRRR/# )rK   rowzRow[Any]rL   r   rM   )rN   s   "rO   rP   LCompositeProperty.CompositeBundle.create_row_processor.<locals>.__annotate__  s      ( s rR   c                l   < SP                   P                  ! S Uu. uF
  q! V 4      NK  	  up!  # u upi ra   )r   r   )r  procr  rW   s   & rO   r  DCompositeProperty.CompositeBundle.create_row_processor.<locals>.proc  s3    }}44,12EDd3iE2 2s   1rM   )rW   r  r  r  r  s   f&f& rO   create_row_processor6CompositeProperty.CompositeBundle.create_row_processor  s     
 KrR   )r   )r   r   r   r   rz   r  r   __classcell__r   s   @rO   CompositeBundler    s    	3 	3	 	rR   r  c                     ] tR tRt$ RtRtR]R&   ]P                  R R l4       t	R R	 lt
]P                  R
 R l4       tR R lt]P                  R R l4       tR R ltR R ltR R ltR R ltR R ltR R ltR R ltRtR# )CompositeProperty.Comparatori  ao  Produce boolean, comparison, and other operators for
:class:`.Composite` attributes.

See the example in :ref:`composite_operations` for an overview
of usage , as well as the documentation for :class:`.PropComparator`.

.. seealso::

    :class:`.PropComparator`

    :class:`.ColumnOperators`

    :ref:`types_operators`

    :attr:`.TypeEngine.comparator_factory`

Nz%RODescriptorReference[Composite[_PT]]rs   c                   V ^8  d   QhRR/# )rK   rL   r8   rM   )rN   s   "rO   rP   )CompositeProperty.Comparator.__annotate__  s     	 	Z 	rR   c                	B    \         P                  ! V P                  R R/ # )r   F)r#   r8   r?  rV   s   &rO   clauses$CompositeProperty.Comparator.clauses  s&    (("77 rR   c                   V ^8  d   QhRR/# rK   rL   z&CompositeProperty.CompositeBundle[_PT]rM   )rN   s   "rO   rP   r    s     	# 	#(N 	#rR   c                	    V P                   # ra   r"   rV   s   &rO   __clause_element__/CompositeProperty.Comparator.__clause_element__  s    ??"rR   c                   V ^8  d   QhRR/# r  rM   )rN   s   "rO   rP   r    s     	I 	I F 	IrR   c                	    V P                   P                  R V P                  RV P                  RV P                  P                  /4      p\
        P                  V P                  V4      # )parententityparentmapper	proxy_key)r  	_annotate_parententityrs   rv   r   r  )rW   r  s   & rO   r#   'CompositeProperty.Comparator.expression  sW    ll,,"D$6$6"D$6$6G %44TYYHHrR   c                    V ^8  d   QhRRRR/# )rK   r   r   rL   z(Sequence[Tuple[_DMLColumnArgument, Any]]rM   )rN   s   "rO   rP   r    s      	@ 	@	@5	@rR   c                	   \        V\        4      '       d   VP                  pVf'   V P                  P                   Uu. uF  pR NK  	  ppM\        V P                  P
                  \        4      '       dB   \        WP                  P
                  4      '       d   V P                  P                  V4      pM(\        P                  ! RV P                  : RV: 24      h\        \        V P                  V4      4      # u upi )Nz!Can't UPDATE composite attribute z to )r   r%   r   rs   r   r   r-  r   r   r  listr   r?  )rW   r   rv   r   s   &&  rO   _bulk_update_tuples0CompositeProperty.Comparator._bulk_update_tuples  s     %// }*.))*C*CD*C3$*CDDII55t<<yy00B B BB **yy%) 
 D55v>?? Es   C?c                   V ^8  d   QhRR/# rJ   rM   )rN   s   "rO   rP   r  )  s     	6 	6*K 	6rR   c                	    V P                   '       dO   V P                  P                   Uu. uF-  p\        V P                   P                  VP
                  4      NK/  	  up# V P                  P                  # u upi ra   )_adapt_to_entityrs   r?  r   entityrv   rr   s   & rO   r?  1CompositeProperty.Comparator._comparable_elements(  sh    $$$ !%		 > > > D1188$((C > 
 yy555s   3A7c                    V ^8  d   QhRRRR/# rK   otherr   rL   ColumnElement[bool]rM   )rN   s   "rO   rP   r  2       	6 	6 	6(; 	6rR   c                	B    V P                  \        P                  V4      # ra   )_comparer$   eqrW   r  s   &&rO   __eq__#CompositeProperty.Comparator.__eq__2      ==u55rR   c                    V ^8  d   QhRRRR/# r  rM   )rN   s   "rO   rP   r  5  r  rR   c                	B    V P                  \        P                  V4      # ra   )r  r$   ner  s   &&rO   __ne__#CompositeProperty.Comparator.__ne__5  r  rR   c                    V ^8  d   QhRRRR/# r  rM   )rN   s   "rO   rP   r  8  r  rR   c                	B    V P                  \        P                  V4      # ra   )r  r$   ltr  s   &&rO   __lt__#CompositeProperty.Comparator.__lt__8  r  rR   c                    V ^8  d   QhRRRR/# r  rM   )rN   s   "rO   rP   r  ;  r  rR   c                	B    V P                  \        P                  V4      # ra   )r  r$   gtr  s   &&rO   __gt__#CompositeProperty.Comparator.__gt__;  r  rR   c                    V ^8  d   QhRRRR/# r  rM   )rN   s   "rO   rP   r  >  r  rR   c                	B    V P                  \        P                  V4      # ra   )r  r$   ler  s   &&rO   __le__#CompositeProperty.Comparator.__le__>  r  rR   c                    V ^8  d   QhRRRR/# r  rM   )rN   s   "rO   rP   r  A  r  rR   c                	B    V P                  \        P                  V4      # ra   )r  r$   ger  s   &&rO   __ge__#CompositeProperty.Comparator.__ge__A  r  rR   c               $    V ^8  d   QhRRRRRR/# )rK   r)  r:   r  r   rL   r  rM   )rN   s   "rO   rP   r  K  s$     	* 	*(	*14	* 	*rR   c                	   Vf)   R .\        V P                  P                  4      ,          pMV P                  P                  V4      p\	        V P                  P                  V4       UUu. uF  w  rEV! WE4      NK  	  pppV P
                  '       d0   V P                  f   Q hV Uu. uF  qpP                  V4      NK  	  pp\        P                  ! V!  # u uppi u upi ra   )	r,  rs   r?  r   r   r  adapterr!   and_)rW   r)  r  r   rN  bcomparisonsxs   &&&     rO   r  %CompositeProperty.Comparator._compareK  s     }#dii&D&D"EEBB5I  		 > >GGDA G   $$$||///8CD1||AD88[)) Es   +C'CrM   )r   r   r   r   r   __hash__r   r   memoized_propertyr  r  r#   r  r?  r  r  r  r  r  r  r  r   rM   rR   rO   r   r    s    	& 33				 
 	
	# 
			I 
 	I	@0 
			6 
 	6	6	6	6	6	6	6	* 	*rR   r   c                   V ^8  d   QhRR/# )rK   rL   rw   rM   )rN   s   "rO   rP   r   \  s     A A ArR   c                	    \        V P                  P                  P                  4      R ,           V P                  ,           # ).)rw   r   r   r   rv   rV   s   &rO   __str__CompositeProperty.__str__\  s+    4;;%%../#5@@rR   )r   r   r   r   r   r   rH   r   ra   )-r   r   r   r   r   r   rz   r   r   r   objectr   r   r   preload_moduler  r   r  r  r?  r>  rX   non_memoized_propertyrO  r   rS  rY  r   r   r   r  r   r   rb   r   orm_utilBundlerA   r  r   rC   r   r  r   r  r  s   @rO   r   r      s+   
 :9..$  .-& :>&  %& &  $& ?C& %)& &P% %"+ hOH5T 
459 69v6 
45	34'A 5 6'AR 
N N 
	)* + 2) 
	)*
 +  
   A A 
)*% +%&[G~ 
1 18  +66	#NJ5
(//"- ,v*^C( v*pA ArR   r   c                      ] tR tRtRtRtRtR# )	Compositei`  a7  Declarative-compatible front-end for the :class:`.CompositeProperty`
class.

Public constructor is the :func:`_orm.composite` function.

.. versionchanged:: 2.0 Added :class:`_orm.Composite` as a Declarative
   compatible subclass of :class:`_orm.CompositeProperty`.

.. seealso::

    :ref:`mapper_composite`

TrM   Nr   r   r   r   r   inherit_cacher   rM   rR   rO   r  r  `  s     MrR   r  c                  >   a  ] tR tRtRtR R ltR V 3R lltRtV ;t# )ConcreteInheritedPropertyis  a  A 'do nothing' :class:`.MapperProperty` that disables
an attribute on a concrete subclass that is only present
on the inherited mapper, not the concrete classes' mapper.

Cases where this occurs include:

* When the superclass mapper is mapped against a
  "polymorphic union", which includes all attributes from
  all subclasses.
* When a relationship() is configured on an inherited mapper,
  but not on the subclass mapper.  Concrete mappers require
  that relationship() is configured explicitly on each
  subclass.

c                    V ^8  d   QhRRRR/# )rK   rf   rg   rL   zType[PropComparator[_T]]rM   )rN   s   "rO   rP   &ConcreteInheritedProperty.__annotate__  s     . .!.	!.rR   c                	    R pV P                   P                  4        F=  pVP                  V P                  ,          p\	        VRR 4      f   K1  VP
                  p M	  Vf   Q hV! XV4      # )Nr   )r   iterate_to_root_propsrv   r   r   )rW   rf   comparator_callablemr/  s   &&   rO   r   -ConcreteInheritedProperty._comparator_factory  sm     #,,.A"Aq.5A&'&:&:#	 /
 #..."1f--rR   c                   V ^8  d   QhRR/# r   rM   )rN   s   "rO   rP   r!    s     5 5$ 5rR   c                	n   <a a \         SS `  4        R  V 3R llo ! V V3R lR4      pV! 4       S n        R# )c                   V ^8  d   QhRR/# )rK   rL   r   rM   )rN   s   "rO   rP   8ConcreteInheritedProperty.__init__.<locals>.__annotate__  s     	 	h 	rR   c            	     p   < \        R S P                  : RS P                  : RS P                  : R24      h)z	Concrete z does not implement attribute z9 at the instance level.  Add this property explicitly to r  )r   r   rv   rV   s   rO   warn0ConcreteInheritedProperty.__init__.<locals>.warn  s*      ;;$++7 rR   c                  P   < ] tR tRtR V3R lltR V3R lltR V V3R lltRtR	# )
DConcreteInheritedProperty.__init__.<locals>.NoninheritedConcretePropi  c               (    V ^8  d   QhRRRRRRRR/# )rK   sr   r   r   rL   r   rM   )rN   s   "rO   rP   QConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__annotate__  s(      3 S   rR   c                	   < S! 4        R # ra   rM   )r2  r   r   r-  s   &&&rO   __set__LConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__set__      rR   c               $    V ^8  d   QhRRRRRR/# )rK   r2  r   r   rL   r   rM   )rN   s   "rO   rP   r3    s!      c   rR   c                	   < S! 4        R # ra   rM   )r2  r   r-  s   &&rO   
__delete__OConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__delete__  r7  rR   c               (    V ^8  d   QhRRRRRRRR/# )rK   r2  r   r   ownerrL   rM   )rN   s   "rO   rP   r3    s(      3 S   rR   c                	6   < Vf   SP                   # S! 4        R # ra   r   )r2  r   r=  rW   r-  s   &&&rO   __get__LConcreteInheritedProperty.__init__.<locals>.NoninheritedConcreteProp.__get__  s    ;??*rR   rM   N)r   r   r   r   r5  r:  r?  r   )rW   r-  s   rO   NoninheritedConcretePropr0    s!       rR   rA  N)r   rz   rH   )rW   rA  r-  r   s   f @rO   rz   "ConcreteInheritedProperty.__init__  s.    	 	
	 
	 34rR   r   )	r   r   r   r   r   r   rz   r   r  r  s   @rO   r  r  s  s     .5 5rR   r  c                    a  ] tR tRt$ RtR]R&   RR V 3R lllt]'       g   ]R R l4       t	]
P                  R	 R
 l4       tR R ltR R lt]P                   3R R llt]
P$                  ! R4      R R l4       tRtV ;t# )SynonymPropertyi  a  Denote an attribute name as a synonym to a mapped property,
in that the attribute will mirror the value and expression behavior
of another attribute.

:class:`.Synonym` is constructed using the :func:`_orm.synonym`
function.

.. seealso::

    :ref:`synonyms` - Overview of synonyms

"Optional[Type[PropComparator[_T]]]r   c               4    V ^8  d   QhRRRRRRRRR	R
RRRR/# )rK   r   rw   
map_columnzOptional[bool]rH   zOptional[Any]r   rE  r   r   r   r   rG   rF   rM   )rN   s   "rO   rP   SynonymProperty.__annotate__  sP     & && #& "	&
 ?& 7& "& &rR   c                	N  < \         SV `  VR 7       Wn        W n        W0n        W@n        V'       d   Wpn        M3V'       d%   VP                  '       d   VP                  V n        MRV n        V'       d   V P                  P                  V4       \        P                  ! V 4       R# r   )r   rz   r   rG  rH   r   rG   r   r   r   r   r   )	rW   r   rG  rH   r   r   r   rG   r   s	   &&&&&&&&rO   rz   SynonymProperty.__init__  sx     	+<=	$$"4HJ...!))DHDHIIT"%rR   c                   V ^8  d   QhRR/# rm   rM   )rN   s   "rO   rP   rH    s     	L 	L$ 	LrR   c                	~    \        V P                  P                  V P                  4      P                  P
                  # ra   )r   r   r   r   r   rq   rV   s   &rO   rq   SynonymProperty.uses_objects  s)    4;;--tyy9>>KKKrR   c                   V ^8  d   QhRR/# )rK   rL   z/Union[MapperProperty[_T], SQLORMOperations[_T]]rM   )rN   s   "rO   rP   rH    s      	8rR   c                	   \        V P                  P                  V P                  4      p\	        VR 4      '       d!   \        VP                  \        4      '       g   \        V\        P                  4      '       d   VP                  # \        V\        4      '       d   V# \        P                  ! RV P                  P                  P                  : RV P                  : RV: 24      hVP                  # )r   zsynonym() attribute "r  z+" only supports ORM mapped attributes, got )r   r   r   r   r  r   r   r   r   r-   
comparatorr   r   r   r   )rW   r   s   & rO   _proxied_objectSynonymProperty._proxied_object  s     t{{))4995tZ((
MM>1
 1

 $
 = =>>&D"233,, ;;%%..		4A 
 }}rR   c                   V ^8  d   QhRR/# rJ   rM   )rN   s   "rO   rP   rH    s     9 9(I 9rR   c                	X    \        V P                  P                  V P                  4      3# ra   )r   r   r   r   rV   s   &rO   rX   &SynonymProperty._column_strategy_attrs  s     **DII688rR   c                    V ^8  d   QhRRRR/# )rK   rf   rg   rL   zSQLORMOperations[_T]rM   )rN   s   "rO   rP   rH    s     
 
+ 
:N 
rR   c                	    V P                   p\        V\        4      '       d9   V P                  '       d   V P                  W!4      pV# VP                  W!4      pV# V# ra   )rQ  r   r   r   )rW   rf   rs   comps   &&  rO   r   #SynonymProperty._comparator_factory  sY    ##dN++&&&..t< K ..t<KKrR   c               (    V ^8  d   QhRRRRRRRR/# r[   rM   )rN   s   "rO   rP   rH    s8     D D!D D 	D
 
DrR   c                	    \        V P                  P                  V P                  4      pVP                  P                  WVR 7      # ))r_   )r   r   r   r   r   rb   )rW   r\   r^   r_   r   s   &&&& rO   rb   SynonymProperty.get_history  s8     )00B0BDII(Nyy$$U7$CCrR   r  c               $    V ^8  d   QhRRRRRR/# )rK   r   rg   initrn   rL   rh   rM   )rN   s   "rO   rP   rH    s!     # # #D #T #rR   c           
     	   \         P                  P                  pV P                  '       Ed   V P                  VP
                  P                  9  dL   \        P                  ! R V P                  : RVP
                  P                  : RV P                  : R24      hVP
                  P                  V P                  ,          VP                  9   d   VP                  VP
                  P                  V P                  ,          ,          P                  V P                  8X  dO   \        P                  ! RV P                  : RV P                  : RV P                  : RV P                  : 24      hVP                  VP
                  P                  V P                  ,          4      pVP                  V P                  WBRR	7       V P                  Vn        Wn        R
# )zCan't compile synonym 'z': no column on table 'z	' named ''z'Can't call map_column=True for synonym =z4, a ColumnProperty already exists keyed to the name z for column T)r^  	setparentN)r   r  r  rG  rv   persist_selectablerX  r   r  r   descriptionrE  r1   _configure_property_mapped_by_synonymr   )rW   r   r^  
propertiesr/  s   &&&  rO   
set_parentSynonymProperty.set_parent  sT   ^^22
???xxv88:::** 		11==  ))++DHH5++,,,--//9#99
 ** xxDIItxxA  &0%>%>))++DHH5&A &&tyy!$&O#'88A rR   )r   rH   rG   rG  r   r   )NNNNNN)r   r   r   r   r   r   rz   r   r   rq   r   r  rQ  rX   r   r   r   rb   r  rh  r   r  r  s   @rO   rD  rD    s     ;:& &6 		L 
	L 
 ,9
   +66	D 
45# 6#rR   rD  c                      ] tR tRtRtRtRtR# )Synonymi5  a3  Declarative front-end for the :class:`.SynonymProperty` class.

Public constructor is the :func:`_orm.synonym` function.

.. versionchanged:: 2.0 Added :class:`_orm.Synonym` as a Declarative
   compatible subclass for :class:`_orm.SynonymProperty`

.. seealso::

    :ref:`synonyms` - Overview of synonyms

TrM   Nr  rM   rR   rO   rk  rk  5  s     MrR   rk  )h__conditional_annotations__r   
__future__r   dataclassesr   r'  r5  r)  typingr   r   r   r   r   r	   r
   r   r   r   r   r   weakref r   r   r  baser   r   r   r   r   
interfacesr   r   r   r   r   r   r   r   r   r   r    r!   r#   r$   sql.elementsr%   util.typingr&   r'   r(   _typingr)   r*   r+   r,   r-   rd  r.   r9  r/   rf   r0   rg  r1   r2   r\   r3   engine.baser4   
engine.rowr5   sql._typingr6   r7   r8   r9   sql.operatorsr:   
sql.schemar;   sql.selectabler<   r=   r>   r?   r@   rA   rC   rE   rw   _CompositeAttrTyper   WeakKeyDictionaryr   r   r   r  r  rD  rk  )rl  s   @rO   <module>r     s  
 # $                     $ &   " ) / $ & &  )        ( " $ # 
&&#1.(1*($( 0'),,#'1/13Te3JH+ JHZ 	  e3
     
d
A.0B30Gd
AN!"%'9"'= &55 22 6 55pG(, GTob!#5b#9 rR   