Ë
    V.jN ã                  ót  — d Z ddlmZ ddlZddlZddlZddlmZ ddlmZ ddlm	Z	 ddlm
Z
 ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlm Z  ddlm!Z! ddlm"Z" ddlm#Z# ddl$m%Z% ddl$m&Z& dd l'm(Z( dd!l'm)Z) dd"l*m+Z+ dd#l*m,Z, dd$l*m-Z- dd%l*m.Z. dd&l*m/Z/ dd'l*m0Z0 dd(l1m2Z2 dd)l3m4Z4 dd*l3m5Z5 dd+l6m7Z7 dd,l6m8Z8 dd-l6m9Z9 dd.l6m:Z: d/d0lm;Z; d/dlmZ d/d1lm6Z6 d/d2l<m=Z= d/d3l>m?Z? d/d4l@mAZA d/d5l@mBZB d/d6l6mCZC d/d7lDmEZE d/d8lDmFZF d/d9lDmGZG d/d:lDmHZH d/d;lDmIZI d/d<lDmJZJ er0dd=lmKZK dd>lmLZL dd?l$mMZM dd@lNmOZO ddAlmPZP d/dBlQmRZR d/dCl@mSZS d/dDlTmUZU  edEe¬F«      ZVeeWef   ZXeeedGf   e
eWef   f   ZY G dH„ dIeHe    «      ZZ G dJ„ dKeZe    eH«      Z[ G dL„ dMeI«      Z\	 	 	 	 dhdN„Z]didO„Z^djdP„Z_	 dk	 	 	 	 	 	 	 dldQ„Z`dmdR„Za	 	 	 	 	 	 	 	 dndS„Zb	 	 	 	 	 	 	 	 	 	 dodT„Zc e6jÈ                  dU«      dpdV„«       Ze	 	 	 	 	 	 	 	 dqdW„Zf G dX„ dY«      Zg G dZ„ d[eg«      Zh G d\„ d]e«      Zi G d^„ d_eg«      Zj e6jÈ                  dU«      	 	 	 	 	 	 drd`„«       Zk G da„ dbej«      Zl	 	 	 	 	 	 	 	 dsdc„Zmdtdd„Zndude„Zodfeo_p        dvdg„Zqy)wz(Internal implementation for declarative.é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)ÚIterable)ÚList)ÚMapping)Ú
NamedTuple)ÚNoReturn)ÚOptional)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Úclsregistry)Úexc)Úinstrumentation)Ú	mapperlib)Ú_O)Úattr_is_internal_proxy)ÚInstrumentedAttribute)ÚQueryableAttribute)Ú_is_mapped_class)ÚInspectionAttr)ÚCompositeProperty)ÚSynonymProperty)Ú_AttributeOptions)Ú_DCAttributeOptions)Ú_IntrospectsAnnotations)Ú_MappedAttribute)Ú_MapsColumns)ÚMapperProperty)ÚMapper)ÚColumnProperty)ÚMappedColumn)Ú_extract_mapped_subtype)Ú_is_mapped_annotation)Úclass_mapper)Úde_stringify_annotationé   )Úevent)Úutil)Ú
expression)Ú_NoArg)ÚColumn)ÚTable)Útopological)Ú_AnnotationScanType)Ú
is_fwd_ref)Ú
is_literal)ÚProtocol)Ú	TypedDict)Útyping_get_args)Ú
_ClassDict)Ú_RegistryType)ÚMapped)Údeclared_attr)ÚClassManager)ÚNamedColumn)ÚMetaData)Ú
FromClauseÚ_T)Úbound.c                  ó8   — e Zd ZU dZded<   ded<   ded<   d
d„Zy	)ÚMappedClassProtocolzªA protocol representing a SQLAlchemy mapped class.

    The protocol is generic on the type of class, use
    ``MappedClassProtocol[Any]`` to allow any mapped class.
    ÚstrÚ__name__ú
Mapper[_O]Ú
__mapper__rD   Ú	__table__c                 ó   — y ©N© )ÚselfÚkws     úZC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\sqlalchemy/orm/decl_base.pyÚ__call__zMappedClassProtocol.__call__e   ó   € ¨ó    N)rR   r   Úreturnr   )rJ   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rT   rP   rV   rS   rH   rH   Z   s   … ñð ƒMØÓØÓä,rV   rH   c                  óT   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dd„Zdd„Zy)Ú_DeclMappedClassProtocolz:Internal more detailed version of ``MappedClassProtocol``.rC   ÚmetadatarI   Ú__tablename__Ú_MapperKwArgsÚ__mapper_args__úOptional[_TableArgsType]Ú__table_args__úOptional[_DataclassArguments]Ú_sa_apply_dc_transformsc                 ó   — y rO   rP   ©rQ   s    rS   Ú__declare_first__z*_DeclMappedClassProtocol.__declare_first__q   rU   rV   c                 ó   — y rO   rP   rg   s    rS   Ú__declare_last__z)_DeclMappedClassProtocol.__declare_last__s   s   € ¨rV   N©rW   ÚNone)rJ   rX   rY   rZ   r[   rh   rj   rP   rV   rS   r]   r]   h   s)   … Ù@ØÓØÓØ"Ó"Ø,Ó,à:Ó:ã,ä+rV   r]   c                  ó^   — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded<   d	ed
<   y)Ú_DataclassArgumentszUnion[_NoArg, bool]ÚinitÚreprÚeqÚorderÚunsafe_hashÚ
match_argsÚkw_onlyz'Union[_NoArg, Callable[..., Type[Any]]]Údataclass_callableN©rJ   rX   rY   r[   rP   rV   rS   rn   rn   v   s2   … Ø
ÓØ
ÓØÓØÓØ$Ó$Ø#Ó#Ø Ó Ø?Ô?rV   rn   c                óˆ   — t         j                  | «      rt         j                  | «      S t        | «      rt	        | d¬«      S y )NF)Ú	configure)Ú_DeferredMapperConfigÚhas_clsÚconfig_for_clsr   r-   ©Úclss    rS   Ú_declared_mapping_infor   �   s;   € ô ×$Ñ$ SÔ)Ü$×3Ñ3°CÓ8Ð8ä	˜#Ô	Ü˜C¨5Ô1Ð1àrV   c                ód   — t         j                  | «      rt        | dd¬«       S t        | «      ryy)a‰  return True if this class will be used as a superclass to set in
    'inherits'.

    This includes deferred mapper configs that aren't mapped yet, however does
    not include classes with _sa_decl_prepare_nocascade (e.g.
    ``AbstractConcreteBase``); these concrete-only classes are not set up as
    "inherits" until after mappers are configured using
    mapper._set_concrete_base()

    Ú_sa_decl_prepare_nocascadeT©ÚstrictF)rz   r{   Ú_get_immediate_cls_attrr   r}   s    rS   Ú_is_supercls_for_inheritsr…   Ž   s<   € ô ×$Ñ$ SÔ)Ü*ØÐ-°dô
ð 
ð 	
ô 
˜#Ô	ØàrV   c                óÈ   — | t         u ry | j                  j                  dd«      r#| j                  D ]  }t	        |«      }|€Œ|c S  y t        | «      }|r|j                  S | S )NÚ__abstract__F)ÚobjectÚ__dict__ÚgetÚ	__bases__Ú"_resolve_for_abstract_or_classicalÚ_dive_for_cls_managerÚclass_)r~   Úbase_ÚsupÚ
clsmanagers       rS   rŒ   rŒ   ¤   sg   € Ø
Œf�}Øð ‡|�|×Ñ˜¨Ô.Ø—]”]ˆEÜ4°UÓ;ˆCØ‰Ø’
ð #ð
 ä*¨3Ó/ˆ
áØ×$Ñ$Ð$àˆJrV   c                ó  — |dk7  sJ ‚t        | t        «      sy|| j                  v rt        | |«      S | j                  dd D ]E  }t        |«      du}||j                  v sŒ|| u s|r|| j                  v sŒ4n	 |rŒ9t        ||«      c S  y)a¯  return an attribute of the class that is either present directly
    on the class, e.g. not on a superclass, or is from a superclass but
    this superclass is a non-mapped mixin, that is, not a descendant of
    the declarative base and is also not classically mapped.

    This is used to detect attributes that indicate something about
    a mapped class independently from any mapped classes that it may
    inherit from.

    r‡   Nr   )Ú
issubclassrˆ   r‰   ÚgetattrÚ__mro__r�   r‹   )r~   Úattrnamerƒ   ÚbaseÚ_is_classical_inheritss        rS   r„   r„   º   s–   € ð  �~Ò%Ð%Ð%ä�cœ6Ô"Øà�3—<‘<ÑÜ�s˜HÓ%Ð%à—‘˜A˜B“ˆÜ!6°tÓ!<ÀDÐ!HÐà�t—}‘}Ò$Ø�C‰Ká*0�˜Ÿ™Ó&°dÚ.ô ˜4 Ó*Ò*ð  ð rV   c                ó\   — | j                   D ]  }t        j                  |«      }|sŒ|c S  y rO   )r•   r   Úopt_manager_of_class)r~   r—   Úmanagers      rS   r�   r�   á   s4   € ð
 —”ˆÜ.8×.MÑ.MØó/
ˆò ØŠNð ð rV   c                ó4   — t         j                  | ||d i «      S rO   )Ú_MapperConfigÚsetup_mapping)Úregistryr~   Údict_s      rS   Ú_as_declarativer¡   ï   s   € ô
 ×&Ñ& x°°e¸TÀ2ÓFÐFrV   c                óJ   — t        | |||«       t        d|«      j                  S )NzMappedClassProtocol[_O])Ú_ImperativeMapperConfigr   rL   )rŸ   r~   ÚtableÚ	mapper_kws       rS   Ú_mapperr¦   ÷   s&   € ô ˜H c¨5°)Ô<ÜÐ)¨3Ó/×:Ñ:Ð:rV   zsqlalchemy.orm.decl_apic                ó‚   — t         j                  j                  j                  }t	        | |t         j
                  f«      S rO   )r1   Ú	preloadedÚorm_decl_apiÚ_declared_attr_commonÚ
isinstanceÚclassproperty)Úobjrª   s     rS   Ú_is_declarative_propsr®     s1   € ä ŸN™N×7Ñ7×MÑMÐä�cÐ1´4×3EÑ3EÐFÓGÐGrV   c                ón   — t        | «      r*t        | dd«      rt        j                  d|›d|›d�«       yy)NÚ
_cascadingFz1@declared_attr.cascading is not supported on the z attribute on class z5.  This attribute invokes for subclasses in any case.T)r®   r”   r1   Úwarn)r­   Únamer~   s      rS   Ú_check_declared_props_nocascader³     s8   € ô ˜SÔ!Ü�3˜ eÔ,Ü�IŠIò .2²3ð8ôð
 àrV   c                  ó’   — e Zd ZU dZded<   ded<   ded<   ded	<   e	 	 	 	 	 	 	 	 	 	 	 	 dd
„«       Z	 	 	 	 	 	 dd„Zdd„Zddd„Z	dd„Z
y)r�   )r~   Ú	classnameÚ
propertiesÚdeclared_attr_regÚ__weakref__ú	Type[Any]r~   rI   rµ   z_util.OrderedDict[str, Union[Sequence[NamedColumn[Any]], NamedColumn[Any], MapperProperty[Any]]]r¶   zDict[declared_attr[Any], Any]r·   c                ó0  — t        j                  | «      }|r'|j                  |u rt        j                  d| ›d�«      ‚|j
                  j                  dd«      ry t        |dd¬«      xs t        |d«      }|rt        |||||«      S t        |||||«      S )	NúClass z, already has been instrumented declarativelyr‡   Fr�   Tr‚   Ú_sa_decl_prepare)r   rš   rŽ   r   ÚInvalidRequestErrorr‰   rŠ   r„   Úhasattrrz   Ú_ClassScanMapperConfig)r~   rŸ   Úcls_r    r¤   r¥   r›   Ú	defer_maps           rS   rž   z_MapperConfig.setup_mapping*  s·   € ô ×1Ñ1°#Ó6ˆÙ�w—~‘~¨Ñ-Ü×)Ñ)Ø˜˜ÐKÐLóð ð �=‰=×Ñ˜^¨UÔ3Øä+ØÐ.°tô
ò /ä�TÐ-Ó.ð 	ñ Ü(Ø˜$  u¨ióð ô *Ø˜$  u¨ióð rV   c                óÆ  — t        j                  |t        d«      | _        |j                  | _        t        j                  «       | _        i | _        |j                  dd«      s/t        j                  | j                  d|| |j                  ¬«       y t        j                  | j                  «      }|r|j                  s"t!        j"                  d| j                  z  «      ‚y )NrÀ   Únon_primaryF)ÚfinalizerŸ   Údeclarative_scanÚinit_methodztClass %s has no primary mapper configured.  Configure a primary mapper first before setting up a non primary Mapper.)r1   Úassert_arg_typeÚtyper~   rJ   rµ   ÚOrderedDictr¶   r·   rŠ   r   Úregister_classÚconstructorr   rš   Ú	is_mappedr   r½   )rQ   rŸ   rÀ   r¥   r›   s        rS   Ú__init__z_MapperConfig.__init__I  s¼   € ô ×'Ñ'¨¬d°FÓ;ˆŒØŸ™ˆŒÜ×*Ñ*Ó,ˆŒØ!#ˆÔà�}‰}˜]¨EÔ2Ü×*Ñ*Ø—‘ØØ!Ø!%Ø$×0Ñ0öô !×5Ñ5°d·h±hÓ?ˆGÙ '×"3Ò"3Ü×-Ñ-ðà $§¡ñ)óð ð #4rV   c                óh   — t        j                  | j                  «      }|j                  ||«       |S rO   )r   Úmanager_of_classr~   Úinstall_member)rQ   r–   Úvaluer›   s       rS   Úset_cls_attributez_MapperConfig.set_cls_attributee  s+   € Ü!×2Ñ2°4·8±8Ó<ˆØ×Ñ˜x¨Ô/ØˆrV   c                ó   — t        «       ‚rO   )ÚNotImplementedError©rQ   r¥   s     rS   Úmapz_MapperConfig.mapj  s   € Ü!Ó#Ð#rV   c                ó&   — | j                  |«       y rO   )rÖ   rÕ   s     rS   Ú_early_mappingz_MapperConfig._early_mappingm  s   € Ø�‰�ÕrV   N)rŸ   r>   rÀ   úType[_O]r    r=   r¤   úOptional[FromClause]r¥   r`   rW   úOptional[_MapperConfig])rŸ   r>   rÀ   r¹   r¥   r`   )r–   rI   rÑ   rE   rW   rE   ).©r¥   r`   rW   zMapper[Any]©r¥   r`   rW   rl   )rJ   rX   rY   Ú	__slots__r[   Úclassmethodrž   rÍ   rÒ   rÖ   rØ   rP   rV   rS   r�   r�     s£   … ð€Ið 
ƒNØƒNðó ð 5Ó4àðàðð ðð ð	ð
 $ðð !ðð 
!òó ðð<àðð ðð !ó	ó8ô
$ôrV   r�   c                  ó\   ‡ — e Zd ZdZ	 	 	 	 	 	 	 	 dˆ fd„Zej                  fdd„Zdd„Zˆ xZ	S )r£   )Úlocal_tableÚinheritsc                ór  •— t         ‰| �  |||«       | j                  d|«      | _        t        j
                  5  |j                  dd«      s5t        j                  | j                  | j                  |j                  «       | j                  |«       | j                  |«       d d d «       y # 1 sw Y   y xY w)NrM   rÃ   F)ÚsuperrÍ   rÒ   rá   r   Ú_CONFIGURE_MUTEXrŠ   r   Ú	add_classrµ   r~   Ú_class_registryÚ_setup_inheritancerØ   )rQ   rŸ   rÀ   r¤   r¥   Ú	__class__s        €rS   rÍ   z _ImperativeMapperConfig.__init__t  s�   ø€ ô 	‰Ñ˜ 4¨Ô3à×1Ñ1°+¸uÓEˆÔä×'Ó'Ø—=‘= °Ô6Ü×%Ñ%Ø—N‘N D§H¡H¨h×.FÑ.Fôð ×#Ñ# IÔ.à×Ñ 	Ô*÷ (×'Ñ'ús   ºA*B-Â-B6c                ój   — t         }| j                  d || j                  | j                  fi |¤Ž«      S )NrL   )r(   rÒ   r~   rá   ©rQ   r¥   Ú
mapper_clss      rS   rÖ   z_ImperativeMapperConfig.map‰  s6   € Üˆ
à×%Ñ%ØÙ�t—x‘x ×!1Ñ!1Ñ?°YÑ?ó
ð 	
rV   c                ó€  — | j                   }|j                  dd «      }|€{g }|j                  D ]2  }t        |«      }|€Œt	        |«      sŒ||vsŒ"|j                  |«       Œ4 |rRt        |«      dkD  rt        j                  d|›d|›�«      ‚|d   }|| _        y t        |t        «      r|j                  }|| _        y )Nrâ   r   r»   ú has multiple mapped bases: r   )r~   rŠ   r‹   rŒ   r…   ÚappendÚlenr   r½   r«   r(   rŽ   râ   )rQ   r¥   r~   râ   Úinherits_searchr�   Úcs          rS   rè   z*_ImperativeMapperConfig._setup_inheritance‘  sÅ   € Ø�h‰hˆà—=‘= ¨TÓ2ˆàÐð !ˆOØŸœ�Ü6°uÓ=�Ø�9Øä,¨QÕ/°A¸_Ò4LØ#×*Ñ*¨1Õ-ð 'ñ Ü�Ó'¨!Ò+Ü×1Ò1â¡ð1óð ð +¨1Ñ-�ð !ˆ�ô ˜¤&Ô)Ø—‘ˆHà ˆ�rV   )rŸ   r>   rÀ   rÙ   r¤   rÚ   r¥   r`   rÜ   rÝ   )
rJ   rX   rY   rÞ   rÍ   r1   Ú
EMPTY_DICTrÖ   rè   Ú__classcell__©ré   s   @rS   r£   r£   q  sF   ø„ Ø+€Ið+àð+ð ð+ð $ð	+ð
 !õ+ð* .2¯_©_ô 
÷!rV   r£   c                  óT   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   ded<   y)Ú_CollectedAnnotationr7   Úraw_annotationzOptional[Type[Mapped[Any]]]Úmapped_containerzUnion[_AnnotationScanType, str]Úextracted_mapped_annotationÚboolÚis_dataclassr   Ú
attr_valuerI   Úoriginating_moduler¹   Úoriginating_classNrw   rP   rV   rS   r÷   r÷   ¯  s+   … Ø'Ó'Ø1Ó1Ø!@Ó@ØÓØƒOØÓØ Ô rV   r÷   c                  ó`  ‡ — e Zd ZU dZdZded<   ded<   ded<   d	ed
<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded <   ded!<   d"ed#<   	 ded$<   	 	 	 	 	 	 	 	 	 	 	 d;ˆ fd%„Zd<d&„Z	 	 	 	 d=d'„Zh d(£Z	 e
j                  d)«      Z	 	 	 	 d>d*„Zd<d+„Zd<d,„Ze	 	 	 	 d?d-„«       Ze	 	 	 	 	 	 	 	 d@d.„«       ZedAd/„«       Z	 	 	 	 	 	 	 	 	 	 	 	 dBd0„Z	 	 	 	 	 	 	 	 dCd1„Z	 	 	 	 	 	 	 	 	 	 dDd2„Zd<d3„Zd<d4„ZdEdFd5„ZdGd6„ZdHd7„ZdHd8„ZdHd9„Zej>                  fdId:„Z ˆ xZ!S )Jr¿   )rŸ   Úclsdict_viewÚcollected_attributesÚcollected_annotationsrá   Úpersist_selectableÚdeclared_columnsÚcolumn_orderingÚcolumn_copiesÚ
table_argsÚ	tablenameÚmapper_argsÚmapper_args_fnÚtable_fnrâ   ÚsingleÚallow_dataclass_fieldsÚdataclass_setup_argumentsÚis_dataclass_prior_to_mappingÚallow_unmapped_annotationsFr>   rŸ   r=   r  zDict[str, _CollectedAnnotation]r  úDict[str, Any]r  rÚ   rá   r  zutil.OrderedSet[Column[Any]]r  zDict[Column[Any], int]r  zRDict[Union[MappedColumn[Any], Column[Any]], Union[MappedColumn[Any], Column[Any]]]r  zOptional[str]r	  úMapping[str, Any]r
  rb   r  z&Optional[Callable[[], Dict[str, Any]]]r  úOptional[Type[Any]]râ   rû   r  r  r  rd   r  r  c                ó@  •— |rt        j                  |«      nt         j                  | _        t        ‰	| �  |||«       || _        d | _        i | _        i | _	        t        j                  «       | _        i | _        i | _        d| _        t        | j                   dd «      x| _        }t        | j                   dd«      xs t%        | j"                  «      | _        t)        j*                  |«      x| _        }t/        |d«      }|r|r|rt1        j2                  d«      ‚t%        |xr |«      | _        | j7                  «        | j9                  «        | j;                  «        t<        j>                  5  tA        jB                  | jD                  | j                   |jF                  «       | jI                  |«       | jK                  «        | jM                  «        | jO                  |«       | jQ                  |«       | jS                  |«       d d d «       y # 1 sw Y   y xY w)NFre   Ú__allow_unmapped__Ú__sa_dataclass_metadata_key__z‘SQLAlchemy mapped dataclasses can't consume mapping information from dataclass.Field() objects if the immediate class is not already a dataclass.)*r1   Úimmutabledictró   r  rä   rÍ   rŸ   r  r  r  Ú
OrderedSetr  r  r  r  r”   r~   r  rû   r  Údataclassesrü   r  r„   r   r½   r  Ú_setup_declared_eventsÚ_scan_attributesÚ_setup_dataclasses_transformsr   rå   r   ræ   rµ   rç   Ú_setup_inheriting_mapperÚ_extract_mappable_attributesÚ_extract_declared_columnsÚ_setup_tableÚ_setup_inheriting_columnsrØ   )
rQ   rŸ   rÀ   r    r¤   r¥   ÚdcaÚcldÚsdkré   s
            €rS   rÍ   z_ClassScanMapperConfig.__init__ù  sÜ  ø€ ñ */ŒD×Ñ˜uÔ%´D·O±Oð 	Ôô 	‰Ñ˜ 4¨Ô3Ø ˆŒØ"&ˆÔà$&ˆÔ!Ø%'ˆÔ"Ü $§¡Ó 1ˆÔØ!ˆÔØˆÔØˆŒÜ/6Ø�H‰HÐ/°ó0
ð 	
ˆÔ&¨ô +2Ø�H‰HÐ*¨Eó+
ò +2ä�$×0Ñ0Ó1ð 	Ô'ô 4?×3KÑ3KØó4
ð 	
ˆÔ*¨Sô & dÐ,KÓLˆñ ‘s¡Ü×)Ñ)ð4óð ô '+¨3ª;°3Ó&7ˆÔ#à×#Ñ#Ô%à×ÑÔà×*Ñ*Ô,ä×'Ó'Ü×!Ñ!Ø—‘ §¡¨(×*BÑ*Bôð ×)Ñ)¨)Ô4à×-Ñ-Ô/à×*Ñ*Ô,à×Ñ˜eÔ$à×*Ñ*¨9Ô5à×Ñ 	Ô*÷ (×'Ñ'ús   Å1BHÈHc                óì   ‡ — t        ‰ j                  d«      r#t        j                  t        d«      dˆ fd„«       }t        ‰ j                  d«      r$t        j                  t        d«      dˆ fd„«       }y y )Nrj   Úafter_configuredc                 óN   •— t        d‰ j                  «      j                  «        y ©Nú_DeclMappedClassProtocol[Any])r   r~   rj   rg   s   €rS   r'  zG_ClassScanMapperConfig._setup_declared_events.<locals>.after_configuredI  s   ø€ äØ3°T·X±Xóç"Ñ"Õ$rV   rh   Úbefore_configuredc                 óN   •— t        d‰ j                  «      j                  «        y r)  )r   r~   rh   rg   s   €rS   r+  zH_ClassScanMapperConfig._setup_declared_events.<locals>.before_configuredQ  s   ø€ äØ3°T·X±Xóç#Ñ#Õ%rV   rk   )r„   r~   r0   Úlistens_forr(   )rQ   r'  r+  s   `  rS   r  z-_ClassScanMapperConfig._setup_declared_eventsF  si   ø€ Ü" 4§8¡8Ð-?Ô@ä×ÑœvÐ'9Ó:ô%ó ;ð%ô
 # 4§8¡8Ð-@ÔAä×ÑœvÐ':Ó;ô&ó <ñ&ð BrV   c                ó¶  ‡‡‡‡— | j                   rt        ‰d«      }nd}|sdˆfd„}|S t        j                  ‰«      D �ci c]*  }||j                  v r|j
                  |j                  |   “Œ, c}Št        j                  ‰«      D �ci c]*  }||j                  v r|j
                  |j                  |   “Œ, c}Št        «       Šdˆˆˆˆfd„}|S c c}w c c}w )z‘Produce a function that checks if a class has overridden an
        attribute, taking SQLAlchemy-enabled dataclass fields into account.

        r  Nc                ó"   •— t        ‰| |«      |uS rO   )r”   )Úkeyr­   r~   s     €rS   Úattribute_is_overriddenzR_ClassScanMapperConfig._cls_attr_override_checker.<locals>.attribute_is_overriddenh  s   ø€ Ü˜s C¨Ó-°SÐ8Ð8rV   c                ó   •— t        |«      r|j                  }‰j                  | ‰«      }t        |«      r|j                  }||u ry|‰ury‰j                  | ‰«      }t        ‰| |«      }||u ry|‰urt	        |t
        «      ry||u ry|‰uryy)NFT)r®   ÚfgetrŠ   r”   r«   r   )r0  r­   ÚretÚ	all_fieldÚabsentÚall_datacls_fieldsr~   Úlocal_datacls_fieldss       €€€€rS   r1  zR_ClassScanMapperConfig._cls_attr_override_checker.<locals>.attribute_is_overriddeny  s¯   ø€ Ü(¨Ô-ØŸ(™(�Cð +×.Ñ.¨s°FÓ;�Ü(¨Ô-ØŸ(™(�Cà˜#‘:Ø Ø Ñ&Øà.×2Ñ2°3¸Ó?�	ä˜c 3¨Ó,�à˜#‘:Ø ð
 ˜fÑ$¬ØÔ.ô*ð  à Ñ#Ø Ø fÑ,Øð rV   )r0  rI   r­   r   rW   rû   )r  r„   r1   Údataclass_fieldsr^   r²   Úlocal_dataclass_fieldsrˆ   )rQ   r~   Úsa_dataclass_metadata_keyr1  Úfr6  r7  r8  s    `   @@@rS   Ú_cls_attr_override_checkerz1_ClassScanMapperConfig._cls_attr_override_checkerW  sô   û€ ð ×&Ò&Ü(?ØÐ4ó)Ñ%ð )-Ð%á(õ9ðr 'Ð&ôg ×.Ñ.¨sÔ3ó"á3�AØ,°·
±
Ñ:ð —‘˜Ÿ
™
Ð#<Ñ=Ñ=Ø3ñ"Ðô ×4Ñ4°SÔ9ó$á9�AØ,°·
±
Ñ:ð —‘˜Ÿ
™
Ð#<Ñ=Ñ=Ø9ñ$Ð ô “XˆF÷&ð &ðP 'Ð&ùòk"ùò
$s   Á/CÂ
/C>   rM   r_   rc   ra   z^(?:_sa_|__)c                óø  ‡‡‡	‡
‡‡— t        j                  |«      Št        |«      Š| j                  }| j                  }t        j
                  t        ‰«      t        ‰«      «      D �cg c]  }|j                  |«      r||v r|‘Œ c}Š| j                  rt        |d«      ŠndŠ‰s	 	 dˆˆˆfd„}|S t        j                  |«      D �ci c]  }|j                  |“Œ c}Š	‰Š
	 	 dˆˆˆ	ˆ
ˆˆfd„}|S c c}w c c}w )z¸produce a function to iterate the "attributes" of a class
        which we want to consider for mapping, adjusting for SQLAlchemy fields
        embedded in dataclass fields.

        r  Nc                 ó   •— ˆ ˆfd„‰D «       S )Nc              3  óf   •K  — | ](  }|‰j                  |«      ‰j                  |«      d f–— Œ* y­w)FN©rŠ   )Ú.0r²   Úcls_annotationsÚcls_varss     €€rS   Ú	<genexpr>z`_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_class.<locals>.<genexpr>Ï  s?   øè ø€ ð ñ !&˜ð Ø Ÿ™ TÓ*Ø'×+Ñ+¨DÓ1Øô	ñ !&ùs   ƒ.1rP   )rC  rD  Únamess   €€€rS   Úlocal_attributes_for_classzM_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_classÌ  s   ø€ ôñ !&óð rV   c               3  ó,  •K  — ‰D ]Š  } ‰j                  | d «      }|rN‰|j                  v r@|j                  t        |j                  ‰«      ‰j                  |j                  «      df–— Œe| ‰j                  | «      ‰j                  | «      df–— ŒŒ y ­w)NTF)rŠ   r^   r²   Ú_as_dc_declaredattr)r²   ÚfieldrC  rD  r9  Úfixed_sa_dataclass_metadata_keyrF  r;  s     €€€€€€rS   rG  zM_ClassScanMapperConfig._cls_attr_resolver.<locals>.local_attributes_for_classà  sš   øè ø€ ó "�DØ,×0Ñ0°°tÓ<�EÙÐ!:¸e¿n¹nÑ!LØ#Ÿj™jÔ*=Ø!ŸN™NÐ,Kó+à*×.Ñ.¨u¯z©zÓ:¸DðAó Að # H§L¡L°Ó$6¸×8KÑ8KØ ó9à ð!ó !ñ "ùs   ƒBB)rW   z$Iterable[Tuple[str, Any, Any, bool]])r1   Úget_annotationsÚvarsÚ_include_dundersÚ_match_exclude_dundersÚmerge_lists_w_orderingÚlistÚmatchr  r„   r:  r²   )rQ   r~   rN  rO  ÚnrG  rJ  rC  rD  r9  rK  rF  r;  s          @@@@@@rS   Ú_cls_attr_resolverz)_ClassScanMapperConfig._cls_attr_resolver¬  s&  ý€ ô ×.Ñ.¨sÓ3ˆä˜“9ˆà×0Ñ0ÐØ!%×!<Ñ!<Ðô ×0Ñ0Ü�X“¤ _Ó 5ôó
ñ�ð *×/Ñ/°Ô2°aÐ;KÑ6Kò	 ðñ
ˆð ×&Ò&Ü7NØÐ4ó8Ñ%ð )-Ð%á(ðØ4÷ðD *Ð)ô' 04×/JÑ/JÈ3Ô/Oó Ù/O e�—
‘
˜EÑ!Ð/Oñ Ðð /HÐ+ð!Ø4÷!ò !ð *Ð)ùòg
ùò> s   Á)C2Ã
C7c                ód	  ‡— | j                   }t        d|«      Š| j                  }| j                  }| j                  }| j
                  }d }d x}}d }	d }
d|v }| j                  | j                   «      }g }|j                  D ]V  }||uxr t        |«      }| j                  |«      }|s||ur| j                  ||||«      }ni }|j                  ||||f«       ŒX |D �]¯  \  }}}}|j                  |«        |«       D �]‹  \  }}}}||v rÐ|dk(  rt        |||«      }|rŒ"|r|sŒ'dˆfd„}|}Œ0|dk(  r"t        |||«      }|
rŒE|r|sŒJ‰j                  }
ŒW|dk(  rt        |||«      }|sŒl|	rŒodˆfd„}|}	Œx|dk(  r^t        |||«      }|rŒ�|r|sŒ’‰j                  }t!        |t"        t$        t'        d «      f«      st)        j*                  d«      ‚||usŒØd	}ŒÛJ ‚|rEt-        |«      r8|j.                  s,t1        j2                  d|j4                  ›d|›d|›d|›d�	«       �Œ$||u�r·t!        |t6        t8        f«      r�ŒAt!        |t:        «      rt)        j<                  d«      ‚t-        |«      �r9|€J ‚|j>                  rJ||v rt1        j2                  d|›d|›d�«       |jA                  ||«      x||<   x||<   }tC        |||«       n‡|r.tE        ||d «      }t!        |tF        «      s|jI                  «       }ntE        ||«      }t!        |tF        «      r1tK        |«      r&t!        |jL                  t:        «      s|jN                  }|x||<   ||<   t!        |t6        t:        f«      r|jP                  €|jR                  |_(        | jU                  ||jW                  «       |d	|«       �Œ«tY        |||«      r|s||v s ||d «      sJ ‚�ŒË| j[                  |||«       �Œà|rM||vs||   |urB |||«      rJ ‚t-        |«      r|jI                  «       }|||<   | jU                  |||d
|«       �Œ/| jU                  |||d |«      }|d uxr |j\                  d u}|�|j^                  n|}|€|s|r|�|n	t9        «       ||<   �Œ�||v s�Œ‡|||<   �ŒŽ �Œ² |r|
sd }|| _0        |
| _1        || _2        |	| _3        y )Nr*  rM   ra   c                 ó.   •— t        ‰ j                  «      S rO   )Údictra   ©Úcls_as_Decls   €rS   Ú_mapper_args_fnz@_ClassScanMapperConfig._scan_attributes.<locals>._mapper_args_fnA  s   ø€ Ü'+¨K×,GÑ,GÓ'HÐ HrV   r_   c                 ó   •— ‰ j                   S rO   )rM   rX  s   €rS   Ú	_table_fnz:_ClassScanMapperConfig._scan_attributes.<locals>._table_fnW  s   ø€ Ø'2×'<Ñ'<Ð <rV   rc   z3__table_args__ value must be a tuple, dict, or NoneTFz*Regular (i.e. not __special__) attribute 'Ú.z(' uses @declared_attr, but owning class z& is mapped - not applying to subclass zÂMapper properties (i.e. deferred,column_property(), relationship(), etc.) must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:úAttribute 'ú' on class z> cannot be processed due to @declared_attr.cascading; skipping)rW   r  )rW   rD   )4r~   r   r  r  r  rN  r=  r•   r…   rT  Ú_produce_column_copiesrï   Úupdater³   r_   rc   r«   ÚtuplerW  rÈ   r   ÚArgumentErrorr®   Ú_quietr1   r±   rJ   r4   r*   r'   r½   r°   Ú__get__Úsetattrr”   r   r3  r   Úoriginal_propertyÚ
descriptorÚdocrZ   Ú_collect_annotationÚ_collect_return_annotationr,   Ú_warn_for_decl_attributesrù   rý   r  r	  r  r  )rQ   r~   r  r  r  rN  r  r  Úinherited_table_argsr  r	  Úfixed_tabler1  Úbasesr—   Úclass_mappedrG  Úlocally_collected_columnsr²   r­   Ú
annotationÚis_dataclass_fieldÚ
check_declrZ  r\  r4  Úcollected_annotationrÌ   Úgenerated_objrY  s                                @rS   r  z'_ClassScanMapperConfig._scan_attributesð  s~  ø€ Ø�h‰hˆäÐ:¸CÓ@ˆà×(Ñ(ˆØ#×8Ñ8ÐØ×*Ñ*ˆØ×0Ñ0ÐØˆØ,0Ð0ˆ
Ð)ØˆØˆ	Ø! \Ð1ˆà"&×"AÑ"AÀ$Ç(Á(Ó"KÐàˆà—K”KˆDð   s˜?ÒNÔ/HÈÓ/NˆLà)-×)@Ñ)@ÀÓ)FÐ&á D°¡OØ,0×,GÑ,GØ.Ø+ØØó	-Ñ)ð -/Ð)à�L‰LàØ Ø.Ø-ð	õð+  ôF ñ
ØØØ&Ø%ð !×'Ñ'Ð(AÔBñ ,×-ñØØØØ"àÐ+Ñ+ØÐ0Ò0Ü%DØ  só&˜
ò  .Ù ,²
õIð .=™Nà Ò0Ü%DØ  só&˜
ò  )±,Â*Ø(3×(AÑ(A™IØ Ò,Ü%DØ  só&˜
ò &ªhõ=ð (1™HàÐ!1Ò1Ü%DØ  só&˜
ò  *±<Â:Ø)4×)CÑ)C˜JÜ#-Ø *¬U´D¼$¸t»*Ð,Eô$ô '*×&7Ñ&7ð%4ó'"ð !"ð  $¨3šØ7;Ñ 4ð
 %˜uÙ!Ü,¨SÔ1¸#¿*º*ÜŸ	š	ð
  $Ÿ}›}ªd²Dº#ð	?ôñ Ø ’_ô " #¬´Ð'=Ô>á Ü# C¬Ô8Ü!×5Ñ5ð=óð ô /¨sÕ3ð  #˜Ð.˜àŸ>š>Ø# |Ñ3ô !%§	¢	ò 37ºð%=ô!"ð !$§¡¨C°Ó 5ð6Ð0°Ñ6ð 6¸ÀsÑ9KØ #ä# C¨¨sÕ3á1ô
 '.¨c°4¸Ó&> ô
 (2°#´~Ô'FØ*-¯(©(«*¡Cô '.¨c°4Ó&8 ô !+¨3´Ô ?Ü$:¸3Ô$?Ü(2Ø$'×$9Ñ$9¼>ô)"ð '*§n¡n ð !$ðÐ0°Ñ6¸ÀsÑ9Kô
 ' s¬V´^Ð,DÔEØ #§¡ à&)§k¡k˜CœGà×0Ñ0Ø Ø×:Ñ:Ó<Ø Ø Øöô /¨z¸3ÀÔEñ  +à $Ð(<Ñ <Ù#:¸4ÀÔ#Fðð!Gñ !ð ×6Ñ6°t¸TÀ3ÖGÙ'Ø Ñ,°¸TÑ0BÈ#Ñ0Mñ  7°t¸SÔAÐAÐAä,¨SÔ1Ø!Ÿh™h›j˜à14Ð(¨Ñ.Ø×,Ñ,Ø˜j¨$°°söð ,0×+CÑ+CØ˜j¨$°°có,Ð(ð -°DÐ8ò NØ0×AÑAÈÐMð ð 0Ð;ð -×7Ò7à ð "ð
 �{©;¹9ð  -Ð8ñ *ä!-£ð -¨TÓ2ð
  Ó-Ø58Ð,¨TÓ2ò} .ð ñ`  ©	ØˆJà$ˆŒØ"ˆŒØ,ˆÔØ ˆ�rV   c                ór  ‡ ‡‡— ‰ j                   }|sy d‰ j                  j                  v r#t        j                  d‰ j                  › d�«      ‚d‰ j                  j                  v r#t        j                  d‰ j                  › d�«      ‚t        j                  t        «      Š	 	 	 	 	 	 dˆ ˆfd„Št        j                  ‰ j                  «      }|€J ‚ˆˆ fd„‰ j                  j                  «       D «       D ���cg c]F  \  }}}t        j                  |||‰ j                  j                  |t         j"                  «      «      ‘ŒH }}}}‰rZ‰j                  «       D ]G  \  }}t%        j&                  d‰ j                  › d	d
j)                  d„ |D «       «      › d|› d�dd¬«       ŒI i }	i }
|D ]7  }t+        |«      dk(  r|\  }}nt+        |«      dk(  r|\  }}}||
|<   nJ ‚||	|<   Œ9 |
j                  «       D ]  \  }}t-        ‰ j                  ||«       Œ ‰ j/                  |‰ j                  |	«       y c c}}}w )NÚ__dataclass_fields__r»   zý is already a dataclass; ensure that base classes / decorator styles of establishing dataclasses are not being mixed. This can happen if a class that inherits from 'MappedAsDataclass', even indirectly, is been mapped with '@registry.mapped_as_dataclass'rM   zk already defines a '__table__'. ORM Annotated Dataclasses do not support a pre-existing '__table__' elementc                óf   •— |‰j                   ur"d|j                  vr‰|   j                  | «       y)Nrx  T)r~   r‰   rï   )r0  rÿ   rQ   Úwarn_for_non_dc_attrss     €€rS   Ú_allow_dataclass_fieldzT_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>._allow_dataclass_field:  s7   ø€ ð "¨¯©Ñ1Ø*Ð2C×2LÑ2LÑLà%Ð&7Ñ8×?Ñ?ÀÔDàrV   c              3  ó®   •K  — | ]L  \  }\  }}}}}}} ‰	||«      r6|‰
j                   vst        ‰
j                   |   t        «      s||r|n||f–— ŒN y ­wrO   )r  r«   r   )rB  r0  Úraw_annorù   Úmapped_annoÚis_dcrý   rþ   rÿ   r{  rQ   s            €€rS   rE  zG_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>.<genexpr>O  s   øè ø€ ð 0ñ 8ñ�Cñ ØØ$ØØØØ&Ø%á)¨#Ð/@ÔAà˜t×8Ñ8Ñ8ô &Ø×1Ñ1°#Ñ6Ô8Jôð/ Ù#.‘K°HØ$ôñ 8ùs   ƒAAzWhen transforming z to a dataclass, attribute(s) ú, c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrO   ©rp   )rB  r0  s     rS   rE  zG_ClassScanMapperConfig._setup_dataclasses_transforms.<locals>.<genexpr>w  s   è ø€ Ð C±l¨s¤ c§±lùó   ‚z originates from superclass a  , which is not a dataclass.  This usage is deprecated and will raise an error in SQLAlchemy 2.1.  When declaring SQLAlchemy Declarative Dataclasses, ensure that all mixin classes and other superclasses which include attributes are also a subclass of MappedAsDataclass.z2.0Údcmx©Úcoder/   é   )r0  rI   rÿ   r¹   rW   rû   )r  r~   r‰   r   r½   ÚcollectionsÚdefaultdictrQ  r   rÏ   r  Úitemsr"   Ú!_get_arguments_for_make_dataclassr  rŠ   r3   ÚNO_ARGr1   Úwarn_deprecatedÚjoinrð   rf  Ú_apply_dataclasses_to_any_class)rQ   r  r›   r0  Úannorù   Ú
field_listrÿ   Únon_dc_attrsr   ÚdefaultsÚitemr²   ÚtpÚspecÚkÚvr{  rz  s   `                @@rS   r  z4_ClassScanMapperConfig._setup_dataclasses_transforms  si  ú€ Ø$(×$BÑ$BÐ!Ù(Øð " T§X¡X×%6Ñ%6Ñ6Ü×)Ñ)Ø˜Ÿ™˜
ð #2ð 2óð ð ˜$Ÿ(™(×+Ñ+Ñ+Ü×)Ñ)Ø˜Ÿ™˜
ð #&ð &óð ô !,× 7Ñ 7¼Ó =Ðð		Øð		Ø)2ð		àö		ô "×2Ñ2°4·8±8Ó<ˆØÐ"Ð"Ð"ô0ð ×/Ñ/×5Ñ5Ô7ô0õ%
ñ0Ñ+��TÐ+ô ×?Ñ?ØØØ Ø×)Ñ)×-Ñ-¨c´6·=±=ÓAõ	ð0ð 	ò %
ñN !ð '×,Ñ,Ö.ñØ!Øä×$Ñ$Ø(¨¯©¨
ð 3$à—y‘yÑ C±lÓ CÓCÐDð E2à(Ð)ð *5ð		6ð Øöð /ð  ˆØˆÛˆDÜ�4‹y˜AŠ~Ø‘�‘bÜ�T“˜a’Ø!%‘��b˜$Ø!%�˜’à�uØ "ˆK˜Òð ð —N‘NÖ$‰DˆAˆqÜ�D—H‘H˜a Õ#ð %ð 	×,Ñ,Ø% t§x¡x°õ	
ùôU%
s   Ã:AH2c                óð   — t        j                  |«      }i }|j                  «       D ]K  \  }}t        |||«      r4t	        |||j
                  |t        d «      ddd¬«      }|sŒ<|\  }}|||<   ŒG|||<   ŒM |S )NF©Úrequiredrs  Úexpect_mapped)r1   rL  rŠ  r,   r+   rX   rÈ   )	r~   ÚklassrC  Únew_annor²   rr  Ú	extractedÚinnerÚ_s	            rS   Ú(_update_annotations_for_non_mapped_classz?_ClassScanMapperConfig._update_annotations_for_non_mapped_class–  s�   € ô ×.Ñ.¨uÓ5ˆàˆØ /× 5Ñ 5Ö 7ÑˆD�*Ü$ Z°¸Ô>Ü3ØØØ×$Ñ$ØÜ˜“JØ"Ø',Ø"'ô	�	ò Ø(‘H�E˜1Ø%*�H˜T’Nà!+�˜’ð! !8ð" ˆrV   c           
     ó  — | j                  |«       |d   }|t        j                  u rt        j                  }|rt        |dd «      }t        d|«      |_        nd }	  ||fi |j                  «       D ��ci c]  \  }}|t        j                  ur|dk7  r||“Œ! c}}¤Ž 	 |r|€|`y ||_        y y c c}}w # t        t        f$ r.}t        j                  d|j                  ›d|›d�d¬«      |‚d }~ww xY w# |r|€|`w ||_        w w xY w)	Nrv   r[   r  zAPython dataclasses error encountered when creating dataclass for z: zN. Please refer to Python dataclasses documentation for additional information.Údcter…  )Ú_assert_dc_argumentsr3   rŒ  r  Ú	dataclassr”   r   r[   rŠ  Ú	TypeErrorÚ
ValueErrorr   r½   rJ   )	r~   r  r�  Úuse_annotationsrv   Úrestoredr—  r˜  Úexs	            rS   r�  z6_ClassScanMapperConfig._apply_dataclasses_to_any_class°  sO  € ð 	× Ñ Ð!:Ô;à6Ð7KÑLÐØ¤§¡Ñ.Ü!,×!6Ñ!6Ðñ ô
 ˜uÐ&7¸Ó>ˆHÜ$(Ð)9¸?Ó$KˆEÕ!àˆHð	5ÙØñð !:× ?Ñ ?Ô Aôá A™˜˜1Ø¤§¡Ñ-°!Ð7KÒ2Kð �q‘DØ Aòóñ* ØÐ#ØÑ-à,4�EÕ)ð	 ùó'øô œ:Ð&ò 	Ü×)Ñ)ð!Ø!&§¡Ð 2°"Ø�&ð <ð<ð ôð ðûð	ûñ ØÐ#ØÑ-à,4�EÕ)ð	 ús6   ÁB6 Á5$B0ÂB6 Â0B6 Â6C3Ã)C.Ã.C3Ã3C6 Ã6Dc                ó¸   — h d£}t        |«      j                  |«      }|r:dj                  d„ t        |«      D «       «      }t	        j
                  d|› d�«      ‚y )N>   rq   ro   rp   rr   ru   rt   rs   rv   r€  c              3  ó"   K  — | ]  }|›–— Œ	 y ­wrO   rP   )rB  Úargs     rS   rE  z>_ClassScanMapperConfig._assert_dc_arguments.<locals>.<genexpr>ó  s   è ø€ ÐJÑ2I¨3˜s˜g›JÑ2Iùs   ‚zDataclass argument(s) z are not accepted)ÚsetÚ
differencerŽ  Úsortedr   rc  )r~   Ú	argumentsÚallowedÚdisallowed_argsÚmsgs        rS   r¥  z+_ClassScanMapperConfig._assert_dc_argumentså  s`   € ò	
ˆô ˜i›.×3Ñ3°GÓ<ˆÙØ—)‘)ÑJ´&¸Ô2IÓJÓJˆCÜ×#Ñ#Ø(¨¨Ð->Ð?óð ð rV   c                óÂ  — || j                   v r| j                   |   S |€y | j                  }| j                  }|€;t        |t        j
                  «      }| xr | xr |d u xs t        |t        «      }nd}d}t        || j                  |j                  |t        |«      d||xr | ¬«      }	|	€y |	\  }
}|€|t        |
«      sqt        |
«      D ]c  }t        |t        «      st        |d¬«      r#t        | j                  ||j                  d¬«      }t        |t         «      sŒT|j#                  «       }Œe t%        |||
|||j                  |«      x| j                   |<   }|S )NFrš  T)Úcheck_generic)Úinclude_generic)r  r  r  r«   r  ÚFieldr%   r+   r~   rX   rÈ   r9   r<   rI   r8   r.   r$   Úfound_in_pep593_annotatedr÷   )rQ   r²   rø   rÿ   rœ  rý   rü   Úallow_unmappedrs  rŸ  rú   rù   ÚelemÚcas                 rS   rj  z*_ClassScanMapperConfig._collect_annotationø  s¥  € ð �4×-Ñ-Ñ-Ø×-Ñ-¨dÑ3Ð3àÐ!Øà×9Ñ9ˆØ×8Ñ8ˆàÐ Ü!+¨J¼×8IÑ8IÓ!JÐà&Ð&ò Ø&Ð&òð  $Ð&ò @Ü! *Ô.>Ó?ñ ð "'Ðà"ÐÜ+ØØ�H‰HØ×(Ñ(ØÜ�ÓØØ1Ø'ò !Ø Ð ô

ˆ	ð Ðàà8AÑ5Ð#Ð%5àÐ¤jÐ1LÔ&MÜ'Ð(CÖD�Ü˜d¤CÔ(¬JØ¨õ-ô 3ØŸ™ØØ)×4Ñ4Ø(,ô	�Dô ˜dÔ$;Õ<Ø!%×!?Ñ!?Ó!A‘Jð Eô 1EØØØ'ØØØ×(Ñ(Øó1
ð 	
ˆ×"Ñ" 4Ñ(¨2ð ˆ	rV   c                ór   — t        |t        j                  «      rt        j                  d|› d|› d�«       y y )Nr^  r_  zë appears to be a non-schema SQLAlchemy expression object; this won't be part of the declarative mapping. To map arbitrary expressions, use ``column_property()`` or a similar function such as ``deferred()``, ``query_expression()`` etc. )r«   r2   ÚColumnElementr1   r±   )rQ   r~   r0  rò   s       rS   rl  z0_ClassScanMapperConfig._warn_for_decl_attributesD  s<   € ô �aœ×1Ñ1Ô2Ü�I‰IØ˜c˜U +¨c¨Uð 3/ð /õð 3rV   c                ó  — | j                   }| j                  }i }| j                  } |«       D �]S  \  }	}
}}|s]|
€[t        |||«      rN ||	|
«      rŒ$| j	                  |	||d|
«      }|�|j
                  n|
}
|
€
t        «       }
|
||	<   t        ||	|
«       Œht        |
t        t        f«      sŒ ||	|
«      rŒ‰| j	                  |	||d|
«      }|�|j
                  n|
}
|	|vsŒ³d|v r!t        |
dd «      xs |	|d   j                  v rŒØ|
j                  rI|
j                  D ]:  }|j                  €Œ|j                  j                  �Œ't        j                   d«      ‚ |
j#                  «       x||
<   }|||	<   t        ||	|«       �ŒV |S )NTrM   r²   z®Columns with foreign keys to non-table-bound columns must be declared as @declared_attr callables on declarative mixin classes.  For dataclass field() objects, use a lambda:.)r~   r  r  r,   rj  rý   r*   rf  r«   r4   r”   rò   Úforeign_keysÚ_table_columnr¤   r   r½   Ú_copy)rQ   Úattributes_for_classr1  rn  rÿ   r~   r    Úlocally_collected_attributesr  r²   r­   rr  rü   ru  ÚfkÚcopy_s                   rS   r`  z-_ClassScanMapperConfig._produce_column_copiesQ  sÜ  € ð �h‰hˆØ×!Ñ!ˆØ')Ð$Ø×*Ñ*ˆñ 4H×3IÑ/ˆD�#�z <áØ�KÜ)¨*°cÐ;LÔMñ +¨4°Ô5ð à'+×'?Ñ'?Ø˜*Ð&7¸¸só(Ð$ð
 ,Ð7ð )×3Ò3àð ð
 �;Ü&›.�Cà58Ð,¨TÑ2Ü˜˜T 3Õ'ä˜C¤&¬,Ð!7Õ8Ù*¨4°Ô5ð
 à'+×'?Ñ'?Ø˜*Ð&7¸¸só(Ð$ð
 ,Ð7ð )×3Ò3àð ð ˜uÒ$Ø 5Ñ(Ü   f¨dÓ3Ò;°tØ˜[Ñ)×+Ñ+ò,ð ×'Ò'Ø"%×"2Ô"2˜Bà "× 0Ñ 0Ñ <Ø$&×$4Ñ$4×$:Ñ$:Ñ$Bä&)×&=Ñ&=ð%Fó'"ð !"ð #3ð 25·±³Ð<�M #Ñ&¨à9>Ð0°Ñ6Ü˜C  uÖ-ðO 4JðR ,Ð+rV   c                óV  — | j                   }| j                  }| j                  }| j                  }t	        |dd¬«      }| j
                  }|xs | j                  }t        | j                  «      }t        |«      D �]û  }	|	|v rŒ	||	   }
t        |
«      r;|
j                  r"t        j                  d| j                   z  «       t        ||	«      }
nOt        |
t         «      r?|
j"                  |ur1|
j$                  |	k7  r"t'        |
j$                  «      }
t)        ||	|
«       t        |
t*        «      r@t-        |
«      dk(  r2t        |
d   t.        t0        f«      rt        j                  d|	z  «       Œó|rt        |
t2        j4                  «      r�Œt        |
t.        t6        f«      s5|j9                  |	«       | j;                  ||	|
«       |st)        ||	|
«       �Œ\|	dv rt=        j>                  d	|	› d
�«      ‚t        |
t.        «      r(tA        |	| jB                  jE                  |
|
«      «       �nFt        |
tF        «      rS| jH                  jE                  |	d«      \  }}}}}}}|€|�|r%	 |
jK                  | | jL                  |||	||||«	       n|sJ ‚t        |
t6        «      rÓ|
jR                  r‘|s�t        |
tT        «      rg d¢}ng d¢}|D �ch c]-  }t        |
jV                  d|› �«      tX        jZ                  ur|’Œ/ }}t=        jP                  d|	› d|› ddj]                  t_        d„ |D «       «      «      › d�«      ‚t        |
tT        t`        f«      s |j9                  |	«       t)        ||	|
«       �Œ÷|
||	<   �Œþ y # tN        $ r}t=        jP                  d|› d�«      |‚d }~ww xY wc c}w )Nr�   Tr‚   z�Use of @declared_attr.cascading only applies to Declarative 'mixin' and 'abstract' classes.  Currently, this flag is ignored on mapped class %sr   r   z‘Ignoring declarative-like tuple value of attribute '%s': possibly a copy-and-paste error with a comma accidentally placed at the end of the line?)r^   zAttribute name 'z-' is reserved when using the Declarative API.)NNNFNNNz7Could not resolve all types within mapped annotation: "zU".  Ensure all types are written correctly and are imported within the module in use.)ro   Údefault_factoryrp   Údefault)ro   rÉ  rp   Údataclasses_r^  r_  z# includes dataclasses argument(s): r€  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrO   r‚  )rB  Úas     rS   rE  zF_ClassScanMapperConfig._extract_mappable_attributes.<locals>.<genexpr>V  s   è ø€ Ð/FÁ¸A´°Q·Áùrƒ  zF but class does not specify SQLAlchemy native dataclass configuration.)1r~   r  r¶   rN  r„   r  r  rû   r  rQ  r®   r°   r1   r±   r”   r«   r   rŽ   r0  r!   rf  rb  rð   r4   r%   r  r¹  r#   Úpoprl  r   r½   Ú_undefer_column_namer  rŠ   r$   r  rÅ   rŸ   Ú	NameErrorrc  Ú_has_dataclass_argumentsr'   Ú_attribute_optionsr3   rŒ  rŽ  r±  r&   )rQ   r~   r  Ú	our_stuffrN  Úlate_mappedr  Úexpect_annotations_wo_mappedÚlook_for_dataclass_thingsr—  rÑ   rr  rù   rú   rü   rý   rþ   rÿ   ÚneÚargnamesrÍ  Úargss                         rS   r  z3_ClassScanMapperConfig._extract_mappable_attributes«  sö  € Ø�h‰hˆØ#×8Ñ8Ðà—O‘Oˆ	à×0Ñ0Ðä-ØÐ-°dô
ˆð &*×%DÑ%DÐ"à&ÒL¨$×*LÑ*Lð 	%ô %)¨×)GÑ)GÓ$HÐ!äÐ*×+ˆAØÐ$Ñ$Øà(¨Ñ+ˆEä$ UÔ+ð ×#Ò#Ü—I‘Iðð  $Ÿx™xñ(ôô    Q›‘ô ˜5Ô"4Ô5Ø—L‘L¨Ñ+Ø—I‘I ’Nô (¨¯	©	Ó2�Ü˜˜Q Ô&ô ˜5¤%Ô(Ü˜“J !’OÜ˜u Q™x¬&Ô2BÐ)CÔDä—	‘	ðBàDEñFôð
 Ù*¬zØ”{×(Ñ(ô0ñ
 Ü ¬Ô0CÐ'DÔEð
 %×(Ñ(¨Ô+Ø×.Ñ.¨s°A°uÔ=Ù"Ü˜C  EÔ*Ùð �mÑ#Ü×-Ñ-Ø& q cð *'ð 'óð ô ˜E¤6Ô*Ü$Ø�t×)Ñ)×-Ñ-¨e°UÓ;öô ˜eÔ%<Ô=ð ×2Ñ2×6Ñ6ØÐFóñØ"Ø(Ø3Ø$Ø"Ø*Ø)ð )Ð4Ø%Ð-ñ
 6ð&Ø!×2Ñ2Ø $Ø $§¡Ø #Ø 2Ø !Ø 0Ø *Ø ;Ø ,õ
ñ.  <Ð;Ð;ä˜eÔ%8Ô9à×6Ò6Ù 9ä% e¬^Ô<ò(™Hò (K˜Hñ &.ó á%- Ü&Ø %× 8Ñ 8¸LÈÈÐ:Ló ô $*§=¡=ñ 1ò Ø%-ð ð  ô "×/Ñ/Ø)¨!¨¨K¸°uð =8à#Ÿy™y¬Ñ/FÁÓ/FÓ)FÓGÐHð IIðIóð ô & e¬n¼lÐ-KÔLð -×0Ñ0°Ô3ô    Q¨Ô.Ù à ˆI�a‹Lña ,øô^  )ò &Ü"%×"3Ñ"3ð#0Ø0:¨|ð <Eð!Fó#ð
 $&ð&ûð&üò: s   É'#M;Ë
2N&Í;	N#ÎNÎN#c                ó„  — | j                   }| j                  }| j                  }t        j                  t
        «      }t        |j                  «       «      D ]ÿ  \  }}t        |t        «      rˆ|j                  }|r|||<   n||= |j                  D ]a  \  }}	t        |t        «      s||j                     j                  |«       |j                  |«       |	||<   |�ŒM||j                  k7  sŒ]|||<   Œc Œžt        |t         «      sŒ¯|j                  €J ‚||j                     j                  |«       |j                  |«       ||j                  k(  sŒü||= �Œ |j                  «       D ]U  \  }
}t#        |«      dkD  sŒt%        j&                  d| j(                  ›d|
›ddj+                  t-        |«      «      ›d�«       ŒW y )Nr   z	On class z, Column object z7 named directly multiple times, only one will be used: r€  z$. Consider using orm.synonym instead)r¶   r  r  rˆ  r‰  r¯  rQ  rŠ  r«   r&   Úmapper_property_to_assignÚcolumns_to_assignr    r²   Úaddr0  r4   rð   r1   r±   rµ   rŽ  r±  )rQ   rÓ  r  r  Úname_to_prop_keyr0  rò   Úmp_to_assignÚcolÚ
sort_orderr²   Úkeyss               rS   r   z0_ClassScanMapperConfig._extract_declared_columnsp  s�  € Ø—O‘Oˆ	ð  ×0Ñ0ÐØ×.Ñ.ˆÜ&×2Ñ2´3Ó7Ðä˜9Ÿ?™?Ó,Ö-‰FˆC�Ü˜!œ\Ô*Ø ×:Ñ:�ÙØ%1�I˜c’Nð " #˜à'(×':Ô':‘O�C˜Ü% aÔ):Ô;Ø(¨¯©Ñ2×6Ñ6°sÔ;Ø$×(Ñ(¨Ô-ð ,6�O CÑ(ð $Ñ+°°s·w±w³Ø),˜	 #šñ! (;ô" ˜AœvÕ&ð —v‘vÐ)Ð)Ð)Ø  §¡Ñ(×,Ñ,¨SÔ1Ø ×$Ñ$ QÔ'ð ˜!Ÿ%™%“<Ø! #šðO .ðR +×0Ñ0Ö2‰JˆD�$Ü�4‹y˜1‹}Ü—	’	ð
 —~“~¢t¨d¯i©i¼¸t»Õ.Eð	Hõñ 3rV   c           	     ó$  ‡— | j                   }t        d|«      }| j                  }| j                  }| j                  }| j
                  }| j                  Št        j                  |«      }| j                  �€d|v�r|�€	t        |d«      r5t        t        t           t        j                  |j                  «      «      }	nt        }	|��@d}
i }|rCt!        |t"        «      r|}n0t!        |t$        «      r t!        |d   t"        «      r|dd |d   }}
n|}
|j'                  d«      }|r||d<   |j'                  d	«      }|rd
|d<   t)        |ˆfd„¬«      }| j+                  d |	|| j-                  |«      g|¢|
¢­i |¤Ž«      }|| _        y |€9| j                  r!| j+                  d| j                  «       «      }n|j.                  }|rD|D ]?  }|j0                  j3                  |«      rŒt5        j6                  d|j8                  z  «      ‚ || _        y )NúMappedClassProtocol[Any]rM   Ú__table_cls__rP   éÿÿÿÿr   Ú__autoload_with__Úautoload_withÚ__autoload__TÚautoloadc                ó(   •— ‰j                  | d«      S )Nr   rA  )rò   r  s    €rS   Ú<lambda>z5_ClassScanMapperConfig._setup_table.<locals>.<lambda>Û  s   ø€  /×"5Ñ"5°a¸Ô";rV   )r0  z8Can't add additional column %r when specifying __table__)r~   r   r	  r  r  r  r  r   rÏ   r  r¾   r   r5   r1   Úunbound_method_to_callablerå  r«   rW  rb  rŠ   r±  rÒ   Ú_metadata_for_clsrM   rò   Úcontains_columnr   rc  r0  rá   )rQ   r¤   r~   rY  r	  r  r  r  r›   Ú	table_clsrÙ  Útable_kwrè  rê  Úsorted_columnsrò   r  s                   @rS   r!  z#_ClassScanMapperConfig._setup_table«  s#  ø€ Ø�h‰hˆÜÐ5°sÓ;ˆà—N‘Nˆ	Ø—_‘_ˆ
Ø×(Ñ(ˆØ×0Ñ0ÐØ×.Ñ.ˆä×-Ñ-¨cÓ2ˆð �M‰MÑ!Ø <Ò/Ø‘ä�s˜OÔ,Ü Üœ‘KÜ×3Ñ3°C×4EÑ4EÓFó‘	ô
 "�	àÑ$Ø(*�Ø+-�áÜ! *¬dÔ3Ø#-™Ü# J´Ô6Ü% j°¡n´dÔ;Ø-7¸¸"Ð-=¸zÈ"¹~ (™Dà#-˜Dà ,× 0Ñ 0Ð1DÓ E�Ù Ø0=�H˜_Ñ-à'×+Ñ+¨NÓ;�ÙØ+/�H˜ZÑ(ä!'Ø$Û;ô"�ð ×.Ñ.ØÙØ!Ø×.Ñ.¨wÓ7ðð (ðð ò	ð
 #ñó	�ð4 !ˆÕð ˆ}Ø—=’=Ø ×2Ñ2Ø# T§]¡]£_ó‘Eð (×1Ñ1�EÙÛ)�AØ Ÿ7™7×2Ñ2°1Õ5Ü!×/Ñ/ð3Ø56·U±Uñ;óð ð *ð !ˆÕrV   c                ód   — t        | j                  dd «      }|�|S |j                  j                  S )Nr^   )r”   r~   rŸ   r^   )rQ   r›   Úmetas      rS   rî  z(_ClassScanMapperConfig._metadata_for_clsù  s1   € Ü#*¨4¯8©8°ZÀÓ#FˆØÐØˆKà×#Ñ#×,Ñ,Ð,rV   c                ó¼  — | j                   }|j                  dd «      }|€tg }|j                  D ]2  }t        |«      }|€Œt	        |«      sŒ||vsŒ"|j                  |«       Œ4 |rKt        |«      dkD  rt        j                  d|›d|›�«      ‚|d   }nt        |t        «      r|j                  }|| _        | j                  }d|vr| j                  €d| _        y y y )Nrâ   r   r»   rî   r   rM   T)r~   rŠ   r‹   rŒ   r…   rï   rð   r   r½   r«   r(   rŽ   râ   r  r	  r  )rQ   r¥   r~   râ   rñ   r�   rò   r  s           rS   r  z/_ClassScanMapperConfig._setup_inheriting_mapper   sæ   € Ø�h‰hˆà—=‘= ¨TÓ2ˆàÐð !ˆOØŸœ�Ü6°uÓ=�Ø�9Øä,¨QÕ/°A¸_Ò4LØ#×*Ñ*¨1Õ-ð 'ñ Ü�Ó'¨!Ò+Ü×1Ò1â¡ð1óð ð +¨1Ñ-‘Ü˜¤&Ô)Ø—‘ˆHà ˆŒà×(Ñ(ˆØ˜lÑ*¨t¯~©~Ð/EØˆD�Kð 0FÐ*rV   c           
     óÄ  — | j                   }| j                  }| j                  }| j                  }|€0| j                  €$t        |d«      st        j                  d|z  «      ‚| j                  �rqt        | j                  «      }|€J ‚|j                   }|j                  }|�€<|rt        j                  d«      ‚|r@t        |t        «      s0t        j                  d| j                  › d| j                  › d�«      ‚|D ]Ý  }	|€J ‚|	j                  |j                  v r\|j                  |	j                     |	u rŒ;t        j                  d|	› d|j                  › d	|j                  |	j                     › d
�«      ‚|	j                   rt        j                  d«      ‚t"        rt        |t        «      sJ ‚|j%                  |	«       |€ŒÈ||usŒÍ|j'                  |	«       Œß y y y )NÚ__no_table__zwClass %r does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.z?Can't place __table_args__ on an inherited class with no table.z9Can't declare columns on single-table-inherited subclass z; superclass z is not mapped to a TablezColumn 'r_  z! conflicts with existing column 'zs'.  If using Declarative, consider using the use_existing_column parameter of mapped_column() to resolve conflicts.zDCan't place primary key columns on an inherited class with no table.)rá   r~   r  r  râ   r„   r   r½   r   r  rc  r«   r5   r²   rò   rJ   Úprimary_keyr   Úappend_columnÚ_refresh_for_new_column)
rQ   r¥   r¤   r~   r  r  Úinherited_mapper_or_configÚinherited_tableÚinherited_persist_selectablerà  s
             rS   r"  z0_ClassScanMapperConfig._setup_inheriting_columns!  s  € Ø× Ñ ˆØ�h‰hˆØ—_‘_ˆ
Ø×0Ñ0Ðð ˆMØ—‘Ð%Ü+¨C°Ô@ä×)Ñ)ð&à(+ñ,óð ð
 �]‹]Ü)?ÀÇÁÓ)NÐ&Ø-Ð9Ð9Ð9Ø8×DÑDˆOà*×=Ñ=ð )ð ‰}ñ Ü×+Ñ+ð)óð ñ $¬J°ÌÔ,NÜ×+Ñ+ð$Ø$(§H¡H :¨]¸4¿=¹=¸/ð J3ð3óð ó ,�CØ*Ð6Ð6Ð6Ø—x‘x ?×#4Ñ#4Ñ4Ø*×,Ñ,¨S¯X©XÑ6¸#Ñ=Ø$Ü!×/Ñ/Ø& s e¨;°s·|±|°nð E à /× 1Ñ 1°#·(±(Ñ ;Ð<ð =4ð4óð ð —’Ü!×/Ñ/ð3óð õ
 %Ü)¨/¼5ÔAÐAÐAà#×1Ñ1°#Ô6à4Ñ@Ø8ÀÒOà4×LÑLØõñ7 ,ð# ð rV   c                ór  — | j                   }| j                  r| j                  «       }ni }|r|j                  |«       d|v rt        |«      }|j                  |d   «       dD ]+  }||v sŒ||   }| j                  j                  ||«      ||<   Œ- d|v rCt        j                  |d   «      D �cg c]  }| j                  j                  ||«      ‘Œ  c}|d<   d|v rJ|d   }t        |t        «      r|j                  }|| j                  urt        j                  d|d   z  «      ‚| j                  r| j                  |d<   | j                  �r>|j                  dd«      �s+t        | j                  d«      }|j                  }d|vr‡|j                   D �	ch c]  }	|	|j"                  vr|	j$                  ’Œ c}	j'                  |j(                  xs d	«      x|d<   }
|
j+                  | j,                  D �	cg c]  }	|	j$                  ‘Œ c}	«       t/        |j1                  «       «      D ]b  \  }}t        |t2        j4                  «      sŒ!||j6                  v sŒ0|j6                  |   }t        |t8        «      sŒP|g|j:                  z   ||<   Œd |j=                  «       }||d<   || _        y c c}w c c}	w c c}	w )
Nr¶   )Úversion_id_colÚpolymorphic_onrø  râ   z:mapper inherits argument given for non-inheriting class %sÚconcreteFÚexclude_propertiesrP   ) r¶   r  ra  rW  r  rŠ   r1   Úto_listr«   r(   rŽ   râ   r   r½   r-   rá   rò   Ú_columntopropertyr0  Úunionr  Údifference_updater  rQ  rŠ  r2   r¿  Ú_propsr)   ÚcolumnsÚcopyr
  )rQ   r¥   r¶   r
  r—  r˜  Úinherits_argÚinherited_mapperrü  rò   r  rà  ÚpÚresult_mapper_argss                 rS   Ú_prepare_mapper_argumentsz0_ClassScanMapperConfig._prepare_mapper_argumentsi  sÆ  € Ø—_‘_ˆ
à×ÒØ×-Ñ-Ó/‰KàˆKáØ×Ñ˜yÔ)à˜;Ñ&Ü˜jÓ)ˆJØ×Ñ˜k¨,Ñ7Ô8ó 6ˆAØ�KÒØ ‘N�Ø!%×!3Ñ!3×!7Ñ!7¸¸1Ó!=�˜A’ð 6ð
 ˜KÑ'ô Ÿ™ k°-Ñ&@ÔAó*áA�Að ×"Ñ"×&Ñ& q¨!Õ,ØAñ*ˆK˜Ñ&ð
 ˜Ñ$Ø& zÑ2ˆLÜ˜,¬Ô/Ø+×2Ñ2�à 4§=¡=Ñ0Ü×-Ñ-ðØ"-¨jÑ"9ñ;óð ð
 �=Š=Ø&*§m¡mˆK˜
Ñ#à�=‹= §¡°¸UÕ!Cô  ,¨D¯M©M¸5ÓAÐØ.×:Ñ:ˆOð $¨;Ñ6ð -×.Ò.óJá.˜ØÐ 0× BÑ BÑBð —E“EØ.ñJ÷ ‘%Ð(×;Ñ;ÒA¸rÓBð	C�Ð0Ñ1Ð4Fð
 #×4Ñ4Ø$(×$9Ò$9Ó:Ñ$9˜q�Q—U“UÐ$9Ñ:ôô ˜z×/Ñ/Ó1Ö2‘��3Ü! #¤z×'?Ñ'?Ô@ØØÐ(×/Ñ/Ò/Ø(×/Ñ/°Ñ2�AÜ! !¤^Õ4ð *-¨°·	±	Ñ(9˜
 1šð 3ð )×-Ñ-Ó/ÐØ+5Ð˜<Ñ(Ø-ˆÕùòq*ùò<Jùò ;s   Â0#J*Æ!J/Ç5J4c                ó4  — | j                  |«       t        | j                  d«      r4t        dt	        j
                  | j                  j                  «      «      }nt        }| j                  d || j                  | j                  fi | j                  ¤Ž«      S )NÚ__mapper_cls__zType[Mapper[Any]]rL   )r  r¾   r~   r   r1   rí  r  r(   rÒ   rá   r
  rë   s      rS   rÖ   z_ClassScanMapperConfig.mapº  sƒ   € Ø×&Ñ& yÔ1Ü�4—8‘8Ð-Ô.ÜØ#Ü×/Ñ/Ø—H‘H×+Ñ+óó‰Jô  ˆJà×%Ñ%ØÙ�t—x‘x ×!1Ñ!1ÑF°T×5EÑ5EÑFó
ð 	
rV   )
rŸ   r>   rÀ   rÙ   r    r=   r¤   rÚ   r¥   r`   rk   )r~   rÙ   rW   úCallable[[str, Any], bool])r~   r¹   rW   ú2Callable[[], Iterable[Tuple[str, Any, Any, bool]]])r�  rÙ   rW   ú!Mapping[str, _AnnotationScanType])r  rn   r�  rÙ   r©  r  rW   rl   )r²  rn   rW   rl   )r²   rI   rø   r7   rÿ   r¹   rœ  zOptional[bool]rý   r   rW   zOptional[_CollectedAnnotation])r~   r¹   r0  rI   rò   r   rW   rl   )
rÄ  r  r1  r  rn  rû   rÿ   r¹   rW   z0Dict[str, Union[Column[Any], MappedColumn[Any]]]rO   )r¤   rÚ   rW   rl   )r›   zClassManager[Any]rW   rC   rÝ   rÜ   )"rJ   rX   rY   rÞ   Úis_deferredr[   rÍ   r  r=  rN  ÚreÚcompilerO  rT  r  r  rß   r¢  r�  r¥  rj  rl  r`  r  r   r!  rî  r  r"  r  r1   ró   rÖ   rô   rõ   s   @rS   r¿   r¿   ¹  s�  ø… ð€Ið. €KØÓØÓØ:Ó:Ø(Ó(Ø%Ó%Ø,Ó,Ø2Ó2Ø+Ó+ðó ð ÓØ"Ó"Ø(Ó(Ø:Ó:Ø!Ó!ØƒLà#'Ó'Ø $Ó$à<Ó<ðð !Ó ððK+àðK+ð ðK+ð ð	K+ð
 $ðK+ð !õK+óZ&ð"J'ØðJ'à	#óJ'òXÐð (˜RŸZ™Z¨Ó8ÐðB*ØðB*à	;óB*óHl!ó\	v
ðp ðØðà	*òó ðð2 ð25à#6ð25ð ð25ð ;ð	25ð
 
ò25ó ð25ðh òó ðð$JàðJð ,ðJð %ð	Jð
 &ðJð ðJð 
(óJðXØðØ#&ðØ+.ðà	óðX,ð
ðX,ð
 "<ðX,ð ðX,ð %ðX,ð 
:óX,ótC!óJ9ôvL!ó\-óóBFóPO.ðb .2¯_©_÷ 
ð 
rV   r¿   c                ó¨   — t         j                  j                  }| |   }t        |«      r't	        ||j
                  «      s|j                  |«      S |S rO   )r1   r¨   r©   Úcallabler«   r@   )Úfield_metadatar;  Údecl_apir­   s       rS   rI  rI  Ì  sJ   € ô �~‰~×*Ñ*€HØ
Ð2Ñ
3€CÜ�„}œZ¨¨X×-CÑ-CÔDØ×%Ñ% cÓ*Ð*àˆ
rV   c                  ó  ‡ — e Zd ZU ded<   dZ ej                  «       Zded<   dd„Ze	dd„«       Z
e
j                  dd„«       Z
edd	„«       Zedd
„«       Zedd„«       Zedd„«       Ze	 d	 	 	 	 	 dd„«       Zej$                  fdˆ fd„Zˆ xZS )rz   úweakref.ref[Type[Any]]Ú_clsTz?util.OrderedDict[weakref.ref[Type[Any]], _DeferredMapperConfig]Ú_configsc                 ó   — y rO   rP   rÕ   s     rS   rØ   z$_DeferredMapperConfig._early_mappingä  s   € ØrV   c                ó"   — | j                  «       S rO   )r  rg   s    rS   r~   z_DeferredMapperConfig.clsè  s   € à�y‰y‹{ÐrV   c                ó€   — t        j                  || j                  «      | _        | | j                  | j                  <   y rO   )ÚweakrefÚrefÚ_remove_config_clsr  r  )rQ   rŽ   s     rS   r~   z_DeferredMapperConfig.clsì  s,   € ä—K‘K ¨×(?Ñ(?Ó@ˆŒ	Ø#'ˆ�‰�d—i‘iÒ rV   c                ó<   — | j                   j                  |d «       y rO   )r  rÎ  )r~   r#  s     rS   r$  z(_DeferredMapperConfig._remove_config_clsñ  s   € à�‰×Ñ˜˜dÕ#rV   c                óh   — t        |t        «      xr! t        j                  |«      | j                  v S rO   )r«   rÈ   r"  r#  r  ©r~   rŽ   s     rS   r{   z_DeferredMapperConfig.has_clsõ  s(   € ô ˜&¤$Ó'ÒO¬G¯K©K¸Ó,?À3Ç<Á<Ð,OÐOrV   c                ó–   — t        |d«      r|j                  «        t        j                  |dt        j                  |«      › d�¬«      ‚)NÚ_sa_raise_deferred_configr»   zG has a deferred mapping on it.  It is not yet usable as a mapped class.)rµ  )r¾   r)  Úorm_excÚUnmappedClassErrorÚ_safe_cls_namer'  s     rS   Úraise_unmapped_for_clsz,_DeferredMapperConfig.raise_unmapped_for_clsú  sN   € ä�6Ð6Ô7Ø×,Ñ,Ô.ä×(Ñ(Øàœ×/Ñ/°Ó7Ð8ð 9Jð Jô
ð 	
rV   c                óF   — | j                   t        j                  |«         S rO   )r  r"  r#  r'  s     rS   r|   z$_DeferredMapperConfig.config_for_cls  s   € à�|‰|œGŸK™K¨Ó/Ñ0Ð0rV   c                ó¦  ‡‡— | j                   j                  «       D �cg c]  }||j                  f‘Œ c}D ��cg c]  \  }}|�t        ||«      r|‘Œ }}}|s|S |D �ci c]  }|j                  |“Œ c}Šg }‰D ]'  Š|j	                  ˆˆfd„‰j
                  D «       «       Œ) t        t        j                  ||«      «      S c c}w c c}}w c c}w )Nc              3  ó:   •K  — | ]  }|‰v r‰|   ‰‰   f–— Œ y ­wrO   rP   )rB  Úbase_clsÚall_m_by_clsÚm_clss     €€rS   rE  z9_DeferredMapperConfig.classes_for_base.<locals>.<genexpr>  s0   øè ø€ ð á /�HØ˜|Ñ+ð ˜hÑ'¨°eÑ)<Ô=Ù /ùs   ƒ)	r  Úvaluesr~   r“   Úextendr‹   rQ  r6   Úsort)	r~   r1  r6  ÚmrÀ   Úclasses_for_baseÚtuplesr2  r3  s	          @@rS   r8  z&_DeferredMapperConfig.classes_for_base  sÞ   ù€ ð 14·±×0CÑ0CÔ0EÓFÑ0E¨1˜Q §¡šJÐ0EÒFô
áF‘��4ØÐ¤J¨t°XÔ$>ò ØFð 	ñ 
ñ Ø#Ð#á*:Ó;Ñ*: Q˜Ÿ™˜q™Ð*:Ñ;ˆàLNˆÛ!ˆEØ�M‰Mô à %§¢óõ ð "ô ”K×$Ñ$ VÐ-=Ó>Ó?Ð?ùò! Gùó
ùò <s   ŸCºCÁCc                ón   •— | j                   j                  | j                  d «       t        ‰| �  |«      S rO   )r  rÎ  r  rä   rÖ   )rQ   r¥   ré   s     €rS   rÖ   z_DeferredMapperConfig.map#  s*   ø€ Ø�‰×Ñ˜$Ÿ)™) TÔ*Ü‰w‰{˜9Ó%Ð%rV   rÝ   )rW   r¹   )rŽ   r¹   rW   rl   )r#  r  rW   rl   )rŽ   r¹   rW   rû   )rŽ   r¹   rW   r   )rŽ   r¹   rW   rz   )T)r1  r¹   r6  rû   rW   zList[_DeferredMapperConfig]rÜ   )rJ   rX   rY   r[   r  r1   rÉ   r  rØ   Úpropertyr~   Úsetterrß   r$  r{   r-  r|   r8  ró   rÖ   rô   rõ   s   @rS   rz   rz   Û  s÷   ø… Ø
 Ó à€Kð 	ˆ×ÑÓð ð ó óð òó ðð 	‡Z�Zò(ó ð(ð ò$ó ð$ð òPó ðPð ò

ó ð

ð ò1ó ð1ð à/3ð@Ø ð@Ø(,ð@à	$ò@ó ð@ð. .2¯_©_÷ &ò &rV   rz   c                óœ  — d| j                   v �r¦t        d| «      }dd„}t        |t        «      rBt	        ||«        ||«      j                  |d¬«       |j                  j                  ||«       yt        |t        «      rƒ|j                  }|j                  D ]I  \  }}t	        ||«        ||«      j                  |d¬«       |rŒ.|j                  j                  ||«       ŒK |rÍ|j                  j                  ||«       yt        |t        «      r|j                  j                  ||«       yt        |t        «      rA|j                  |k7  r2t        |j                  «      }|j                  j                  ||«       yt        j!                  | ||«       |j                  j#                  «        yyt        j!                  | ||«       y)z¹add an attribute to an existing declarative class.

    This runs through the logic to determine MapperProperty,
    adds it to the Mapper, adds a column to the mapped Table, etc.

    rL   rä  c                ó”   — t        | j                  t        «      r| j                  S t        j                  d| j
                  ›d�«      ‚)Nz+Cannot add a new attribute to mapped class z) because it's not mapped against a table.)r«   rM   r5   r   r½   rJ   )Úmcs    rS   Ú_table_or_raisez'_add_attribute.<locals>._table_or_raise5  sC   € Ü˜"Ÿ,™,¬Ô.Ø—|‘|Ð#Ü×)Ñ)Ø=¸b¿k¹k¸_ð M;ð ;óð rV   T)Úreplace_existingN)r?  rä  rW   r5   )r‰   r   r«   r4   rÏ  rù  rL   Úadd_propertyr&   rÛ  rÜ  r'   r   r0  r!   rÈ   Ú__setattr__Ú_expire_memoizations)r~   r0  rÑ   Ú
mapped_clsr@  Úmprà  r¡  s           rS   Ú_add_attributerG  (  sŒ  € ð �s—|‘|Ò#ÜÐ4°cÓ:ˆ
ó	ô �eœVÔ$Ü   eÔ,Ù˜JÓ'×5Ñ5Ø¨ð 6ô ð ×!Ñ!×.Ñ.¨s°EÕ:Ü˜œ|Ô,Ø×0Ñ0ˆBØ×1Ô1‘��QÜ$ S¨#Ô.Ù 
Ó+×9Ñ9Ø¨$ð :ô ò Ø×)Ñ)×6Ñ6°s¸CÕ@ð 2ñ Ø×%Ñ%×2Ñ2°3¸Õ;Ü˜œ~Ô.Ø×!Ñ!×.Ñ.¨s°EÕ:Ü˜Ô1Ô2°u·y±yÀCÒ7Gô $ E§I¡IÓ.ˆEØ×!Ñ!×.Ñ.¨s°EÕ:ä×Ñ˜S # uÔ-Ø×!Ñ!×6Ñ6Õ8ð ô 	×Ñ˜˜c 5Õ)rV   c                ó’  — d| j                   v r£|| j                   v r•t        d| «      j                  j                  su| j                   |   }t	        |t
        t        t        t        f«      rt        d«      ‚t        j                  | |«       t        d| «      j                  j                  «        y t        j                  | |«       y )NrL   rä  z<Can't un-map individual mapped attributes on a mapped class.)r‰   r   rL   Ú_dispose_calledr«   r4   r&   r'   r   rÔ   rÈ   Ú__delattr__rD  )r~   r0  rÑ   s      rS   Ú_del_attributerK  \  s«   € à˜Ÿ™Ñ$Ø�3—<‘<ÑÜØ&¨ó
ç
‰*—_‘_ð%ð —‘˜SÑ!ˆÜØ”FœL¬.Ô:LÐMô
ô &ØNóð ô ×Ñ˜S #Ô&ÜØ*¨Cóç‰j×-Ñ-Õ/ä×Ñ˜˜cÕ"rV   c                ó”   — t        | «      }|D ]8  }t        ||«      st        |›d|j                  ›�«      ‚t	        | |||   «       Œ: y)a=  A simple constructor that allows initialization from kwargs.

    Sets attributes on the constructed instance using the names and
    values in ``kwargs``.

    Only keys that are present as
    attributes of the instance's class are allowed. These could be,
    for example, any mapped columns or relationships.
    z$ is an invalid keyword argument for N)rÈ   r¾   r§  rJ   rf  )rQ   ÚkwargsrÀ   r—  s       rS   Ú_declarative_constructorrN  t  sL   € ô �‹:€DÛˆÜ�t˜QÔÜÚ>?ÀÇÂÐOóð ô 	��a˜ ™Õ#ñ rV   rÍ   c                óR   — |j                   €| |_         |j                  €| |_        y y rO   )r0  r²   )r0  Úcolumns     rS   rÏ  rÏ  Š  s)   € Ø‡z�zÐØˆŒ
Ø‡{�{ÐØˆ�ð rV   )r~   r¹   rW   z3Optional[Union[_DeferredMapperConfig, Mapper[Any]]])r~   r¹   rW   rû   )r~   r¹   rW   r  )F)r~   r¹   r–   rI   rƒ   rû   rW   zOptional[Any])r~   rÙ   rW   zOptional[ClassManager[_O]])rŸ   r>   r~   r¹   r    r=   rW   rÛ   )
rŸ   r>   r~   rÙ   r¤   rÚ   r¥   r`   rW   rK   )r­   r   rW   rû   )r­   r   r²   rI   r~   rÙ   rW   rû   )r  r  r;  rI   rW   r   )r~   r¹   r0  rI   rÑ   zMapperProperty[Any]rW   rl   )r~   r¹   r0  rI   rW   rl   )rQ   r   rM  r   rW   rl   )r0  rI   rP  zColumn[Any]rW   rl   )rrZ   Ú
__future__r   rˆ  r  r  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r"  Ú r   r   r   r*  r   r   Ú_typingr   r   r   r   r—   r   r   Údescriptor_propsr    r!   Ú
interfacesr"   r#   r$   r%   r&   r'   Úmapperr(   r¶   r)   r*   r1   r+   r,   r-   r.   r0   Úsqlr2   Úsql.baser3   Ú
sql.schemar4   r5   r6   Úutil.typingr7   r8   r9   r:   r;   r<   r=   r>   r?   r  r@   rA   Úsql.elementsrB   rC   Úsql.selectablerD   rE   rI   r`   Ú_TableArgsTyperH   r]   rn   r   r…   rŒ   r„   r�   r¡   r¦   Úpreload_moduler®   r³   r�   r£   r÷   r¿   rI  rz   rG  rK  rN  rJ   rÏ  rP   rV   rS   Ú<module>r`     sû  ðñ /å "ã Û Û 	Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý Û å Ý Ý Ý Ý Ý Ý +Ý -Ý *Ý "Ý  Ý /Ý -Ý )Ý +Ý /Ý (Ý $Ý &Ý Ý &Ý $Ý )Ý 'Ý Ý )Ý Ý Ý Ý Ý Ý Ý Ý Ý -Ý $Ý $Ý "Ý #Ý )áÝ#Ý&ÝÝ'Ý-Ý*Ý%Ý+áˆT˜Ô€à˜˜S˜Ñ!€Ø�u˜S #˜X‘¨¨S°#¨X©Ð6Ñ7€ô-˜( 2™,ô -ô,Ð2°2Ñ6¸ô ,ô@˜)ô @ð
Ø	ð
à8ó
óó,ð. 38ð$Ø	ð$Ø!ð$Ø+/ð$àó$óNðGØðGØ"+ðGØ4>ðGàóGð;Øð;à	ð;ð  ð;ð ð	;ð
 ó;ð €×ÑÐ.Ó/òHó 0ðHðØ	ðØðØ&ðà	ó÷Wñ Wôt;!˜mô ;!ô|!˜:ô !ôP
˜]ô P
ðf0 €×ÑÐ.Ó/ðØ%ðØBEðàòó 0ðôJ&Ð2ô J&ðZ1*Ø	ð1*Øð1*Ø%8ð1*à	ó1*óh#ó0$ð& %/Ð Ô !ôrV   