Ë
    r™ãjte ã                  óª  — d Z ddlmZ ddl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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.m0Z0 dd'l.m1Z1 dd(l.m2Z2 dd)l.m3Z3 dd*l.m4Z4 dd+l.m5Z5 dd,l6m7Z7 dd-l8m9Z9 dd.l8m:Z: dd/l8m;Z; dd0l<m=Z= dd1l<m>Z> dd2l<m?Z@ dd3l<mAZA dd4l<mBZB d5dlmZ d5d6lm<Z< d5d7lCmDZD d5d8lEmFZF d5d9lGmHZH d5d:lImJZJ d5d;lImKZK d5d<lImLZL d5d=l<mMZM d5d>lNmOZO d5d?lNmPZP d5d@lNmQZQ er*ddAl"mRZR ddBl"mSZS ddCl'mTZT ddDlUmVZV ddEl mWZW d5dFlXmYZY d5dGlZm[Z[  edHe¬I«      Z\ee]ef   Z^eeedJf   ee]ef   f   Z_ G dK„ dLee#   «      Z` G dM„ dNe`e#   e«      Za	 	 	 	 dndO„ZbdodP„ZcdpdQ„Zd	 dq	 	 	 	 	 	 	 drdR„ZedsdS„Zf e<jÎ                  dT«      dtdU„«       Zh	 	 	 	 	 	 	 	 dudV„Zi G dW„ dX«      Zj G dY„ dZej«      Zk G d[„ d\ek«      Zl G d]„ d^e«      Zm G d_„ d`ej«      Zn G da„ dbeken«      Zo G dc„ dden«      Zp e<jÎ                  dT«      	 	 	 	 	 	 dvde„«       Zq G df„ dgeo«      Zr	 	 	 	 	 	 	 	 dwdh„Zsdxdi„Ztdydj„Zudkeu_v        	 	 	 	 dzdl„Zwd{dm„Zxy)|z(Internal implementation for declarative.é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)Úget_args)ÚIterable)ÚList)ÚMapping)Ú
NamedTuple)ÚNoReturn)ÚOptional)ÚProtocol)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú
attributes)Úclsregistry)Úexc)Úinstrumentation)Ú	mapperlib)Ú_O)Úattr_is_internal_proxy)ÚInstrumentedAttribute)ÚQueryableAttribute)Ú_is_mapped_class)Ú_is_unmapped_container)ÚInspectionAttr)ÚCompositeProperty)ÚSynonymProperty)Ú_AttributeOptions)Ú_DataclassArguments)Ú_DCAttributeOptions)Ú_IntrospectsAnnotations)Ú_MappedAttribute)Ú_MapsColumns)ÚMapperProperty)ÚMapper)ÚColumnProperty)ÚMappedColumn)ÚUnmappedColumn)Ú_extract_mapped_subtype)Ú_is_mapped_annotation)Ú_metadata_for_cls)Úclass_mapper)Úde_stringify_annotationé   )Úutil)Ú
expression)ÚTypedColumns)Ú_NoArg)ÚColumn)ÚMetaData)ÚTable)Útopological)Ú_AnnotationScanType)Ú
is_fwd_ref)Ú
is_literal)Ú
_ClassDict)Ú_RegistryType)ÚMapped)Údeclared_attr)ÚClassManager)ÚNamedColumn)Ú
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__rG   Ú	__table__c                 ó   — y ©N© )ÚselfÚkws     úc/var/www/html/python-recuperauto-other/env/lib/python3.12/site-packages/sqlalchemy/orm/decl_base.pyÚ__call__zMappedClassProtocol.__call__i   ó   � ó    N)rU   r   Úreturnr   )rM   Ú
__module__Ú__qualname__Ú__doc__Ú__annotations__rW   rS   rY   rV   rK   rK   ^   s   … ñð ƒMØÓØÓä,rY   rK   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``.r;   ÚmetadatarL   Ú__tablename__Ú_MapperKwArgsÚ__mapper_args__úOptional[_TableArgsType]Ú__table_args__úOptional[_DataclassArguments]Ú_sa_apply_dc_transformsc                 ó   — y rR   rS   ©rT   s    rV   Ú__declare_first__z*_DeclMappedClassProtocol.__declare_first__v   rX   rY   c                 ó   — y rR   rS   rj   s    rV   Ú__declare_last__z)_DeclMappedClassProtocol.__declare_last__x   rX   rY   N©rZ   ÚNone)rM   r[   r\   r]   r^   rk   rm   rS   rY   rV   r`   r`   l   s)   … Ù@àÓØÓØ"Ó"Ø,Ó,à:Ó:ã,ä+rY   r`   c                óˆ   — t         j                  | «      rt         j                  | «      S t        | «      rt	        | d¬«      S y )NF)Ú	configure)Ú_DeferredDeclarativeConfigÚhas_clsÚconfig_for_clsr    r3   ©Úclss    rV   Ú_declared_mapping_inforw   {   s;   € ô "×)Ñ)¨#Ô.Ü)×8Ñ8¸Ó=Ð=ä	˜#Ô	Ü˜C¨5Ô1Ð1àrY   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)rr   rs   Ú_get_immediate_cls_attrr    ru   s    rV   Ú_is_supercls_for_inheritsr}   ˆ   s<   € ô "×)Ñ)¨#Ô.Ü*ØÐ-°dô
ð 
ð 	
ô 
˜#Ô	ØàrY   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_)rv   Úbase_ÚsupÚ
clsmanagers       rV   r„   r„   ž   sl   € Ø
Œf�}Øð ‡|�|×Ñ˜¨Ô.Ø—]‘]ò 	ˆEÜ4°UÓ;ˆCØ‰Ø’
ð	ð
 ä*¨3Ó/ˆ
áØ×$Ñ$Ð$àˆJrY   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ƒ   )rv   Úattrnamer{   ÚbaseÚ_is_classical_inheritss        rV   r|   r|   ´   s›   € ð  �~Ò%Ð%Ð%ä�cœ6Ô"Øà�3—<‘<ÑÜ�s˜HÓ%Ð%à—‘˜A˜B�ò ˆÜ!6°tÓ!<ÀDÐ!HÐà�t—}‘}Ò$Ø�C‰Ká*0�˜Ÿ™Ó&°dÚ.ô ˜4 Ó*Ò*ðð rY   c                ó\   — | j                   D ]  }t        j                  |«      }|sŒ|c S  y rR   )r�   r   Úopt_manager_of_class)rv   r�   Úmanagers      rV   r…   r…   Û   s9   € ð
 —‘ò ˆÜ.8×.MÑ.MØó/
ˆò ØŠNðð rY   zsqlalchemy.orm.decl_apic                ó‚   — t         j                  j                  j                  }t	        | |t         j
                  f«      S rR   )r6   Ú	preloadedÚorm_decl_apiÚ_declared_attr_commonÚ
isinstanceÚclassproperty)Úobjr—   s     rV   Ú_is_declarative_propsr›   é   s1   € ä ŸN™N×7Ñ7×MÑMÐä�cÐ1´4×3EÑ3EÐFÓGÐGrY   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Œ   r6   Úwarn)rš   Únamerv   s      rV   Ú_check_declared_props_nocascader    ð   s8   € ô ˜SÔ!Ü�3˜ eÔ,Ü�IŠIò .2²3ð8ôð
 àrY   c                  ó˜   — e Zd ZU dZdZded<   ded<   dd„Ze	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 	 	 dd	„«       Z	e	 	 	 	 	 	 	 	 	 	 dd
„«       Z
y)Ú_ORMClassConfiguratorz²Object that configures a class that's potentially going to be
    mapped, and/or turned into an ORM dataclass.

    This is the base class for all the configurator objects.

    )rv   Ú	classnameÚ__weakref__ú	Type[Any]rv   rL   r£   c                óf   — t        j                  |t        d«      | _        |j                  | _        y )NÚcls_)r6   Úassert_arg_typeÚtyperv   rM   r£   )rT   r§   s     rV   Ú__init__z_ORMClassConfigurator.__init__  s#   € Ü×'Ñ'¨¬d°FÓ;ˆŒØŸ™ˆ�rY   c                óH  — t        j                  |«      }|r'|j                  |u rt        j                  d|›d�«      ‚|j
                  j                  dd«      st        |t        «      ry t        |dd¬«      xs t        |d«      }|rt        |||«      S t        |||«      S )	NúClass z, already has been instrumented declarativelyr   Fry   Trz   Ú_sa_decl_prepare)r   r’   r†   r   ÚInvalidRequestErrorr�   r‚   r‹   r8   r|   Úhasattrrr   Ú_DeclarativeMapperConfig)rv   Úregistryr§   Údict_r“   Ú	defer_maps         rV   Ú_as_declarativez%_ORMClassConfigurator._as_declarative  s±   € ô ×1Ñ1°$Ó7ˆÙ�w—~‘~¨Ñ-Ü×)Ñ)Ø˜˜Ð LÐMóð ð �=‰=×Ñ˜^¨UÔ3´zØ”,ô8
ð ä+ØÐ.°tô
ò /ä�TÐ-Ó.ð 	ñ Ü-¨h¸¸eÓDÐDä+¨H°d¸EÓBÐBrY   c                ó   — t        ||«      S rR   )Ú_UnmappedDataclassConfig)rv   r§   r²   s      rV   Ú_as_unmapped_dataclassz,_ORMClassConfigurator._as_unmapped_dataclass*  s   € ô (¨¨eÓ4Ð4rY   c                óJ   — t        ||||«       t        d|«      j                  S )NzMappedClassProtocol[_O])Ú_ImperativeMapperConfigr   rO   )rv   r±   r§   ÚtableÚ	mapper_kws        rV   Ú_mapperz_ORMClassConfigurator._mapper0  s&   € ô 	  ¨$°°yÔAÜÐ-¨tÓ4×?Ñ?Ð?rY   N)r§   r¥   )r±   rB   r§   r¥   r²   rA   rZ   zOptional[_MapperConfig])r§   r¥   r²   rA   rZ   r¶   )
r±   rB   r§   úType[_O]rº   úOptional[FromClause]r»   rc   rZ   rN   )rM   r[   r\   r]   Ú	__slots__r^   rª   Úclassmethodr´   r·   r¼   rS   rY   rV   r¢   r¢   ÿ   sÎ   … ñð 4€Ià	ƒNØƒNó'ð ðCØ$ðCØ,5ðCØ>HðCà	 òCó ðCð2 ð5Øð5Ø%/ð5à	!ò5ó ð5ð
 ð@àð@ð ð@ð $ð	@ð
 !ð@ð 
ò@ó ñ@rY   r¢   c                  ób   ‡ — e Zd ZU dZdZdZded<   ded<   	 	 	 	 dˆ fd„Zdd	„Zdd
„Z	dd„Z
ˆ xZS )Ú_MapperConfigzConfigurator that configures a class that's potentially going to be
    mapped, and optionally turned into a dataclass as well.)Ú
propertiesÚdeclared_attr_regFz_util.OrderedDict[str, Union[Sequence[NamedColumn[Any]], NamedColumn[Any], MapperProperty[Any]]]rÃ   zDict[declared_attr[Any], Any]rÄ   c                óÀ   •— t         ‰| �  |«       t        j                  «       | _        i | _        t        j                  | j                  d|| |j                  ¬«       y )NF)Úfinalizer±   Údeclarative_scanÚinit_method)
Úsuperrª   r6   ÚOrderedDictrÃ   rÄ   r   Úregister_classrv   Úconstructor)rT   r±   r§   Ú	__class__s      €rV   rª   z_MapperConfig.__init__O  sQ   ø€ ô
 	‰Ñ˜ÔÜ×*Ñ*Ó,ˆŒØ!#ˆÔä×&Ñ&Ø�H‰HØØØ!Ø ×,Ñ,ö	
rY   c                óh   — t        j                  | j                  «      }|j                  ||«       |S rR   )r   Úmanager_of_classrv   Úinstall_member)rT   rŽ   Úvaluer“   s       rV   Úset_cls_attributez_MapperConfig.set_cls_attribute`  s+   € Ü!×2Ñ2°4·8±8Ó<ˆØ×Ñ˜x¨Ô/ØˆrY   c                ó   — t        «       ‚rR   ©ÚNotImplementedError©rT   r»   s     rV   Úmapz_MapperConfig.mape  ó   € Ü!Ó#Ð#rY   c                ó&   — | j                  |«       y rR   )r×   rÖ   s     rV   Ú_early_mappingz_MapperConfig._early_mappingh  s   € Ø�‰�ÕrY   )r±   rB   r§   r¥   )rŽ   rL   rÑ   rH   rZ   rH   ©r»   rc   rZ   zMapper[Any]©r»   rc   rZ   ro   )rM   r[   r\   r]   r¿   Úis_declarativer^   rª   rÒ   r×   rÚ   Ú__classcell__©rÍ   s   @rV   rÂ   rÂ   <  sN   ø… ñ?ð€Ið
 €Nðó ð 5Ó4ð
àð
ð õ
ó"ó
$÷rY   rÂ   c                  ó`   ‡ — e Zd ZdZdZ	 	 	 	 	 	 	 	 dˆ fd„Zej                  fdd„Zdd„Z	ˆ xZ
S )	r¹   z?Configurator that configures a class for an imperative mapping.)Úlocal_tableÚinheritsc                óL  •— t         ‰| �  ||«       | j                  d|«      | _        t        j
                  5  t        j                  | j                  | j                  |j                  «       | j                  |«       | j                  |«       d d d «       y # 1 sw Y   y xY w)NrP   )rÉ   rª   rÒ   rá   r   Ú_CONFIGURE_MUTEXr   Ú
_add_classr£   rv   Ú_class_registryÚ_setup_inheritancerÚ   )rT   r±   r§   rº   r»   rÍ   s        €rV   rª   z _ImperativeMapperConfig.__init__q  sˆ   ø€ ô 	‰Ñ˜ 4Ô(à×1Ñ1°+¸uÓEˆÔä×'Ñ'ñ 	+Ü×"Ñ"Ø—‘ §¡¨(×*BÑ*Bôð ×#Ñ# IÔ.à×Ñ 	Ô*÷	+÷ 	+ñ 	+ús   ¹ABÂB#c                ój   — t         }| j                  d || j                  | j                  fi |¤Ž«      S )NrO   )r,   rÒ   rv   rá   ©rT   r»   Ú
mapper_clss      rV   r×   z_ImperativeMapperConfig.map…  s6   € Üˆ
à×%Ñ%ØÙ�t—x‘x ×!1Ñ!1Ñ?°YÑ?ó
ð 	
rY   c                ó  — | j                   }d }g }|j                  D ]2  }t        |«      }|€Œt        |«      sŒ||vsŒ"|j	                  |«       Œ4 |r.t        |«      dkD  rt        j                  d|›d|›�«      ‚|d   }|| _        y )Nr   r¬   ú has multiple mapped bases: r   )	rv   rƒ   r„   r}   ÚappendÚlenr   r®   râ   )rT   r»   rv   râ   Úinherits_searchr‡   Úcs          rV   rç   z*_ImperativeMapperConfig._setup_inheritance�  s›   € Ø�h‰hˆàˆØˆð —]‘]ò 	*ˆEÜ2°5Ó9ˆAØˆyØä(¨Õ+°¸Ò0HØ×&Ñ& qÕ)ð	*ñ Ü�?Ó# aÒ'Ü×-Ò-â™Oð-óð ð ' qÑ)ˆHà ˆ�rY   )r±   rB   r§   r½   rº   r¾   r»   rc   rÛ   rÜ   )rM   r[   r\   r]   r¿   rª   r6   Ú
EMPTY_DICTr×   rç   rÞ   rß   s   @rV   r¹   r¹   l  sI   ø„ ÙIà+€Ið+àð+ð ð+ð $ð	+ð
 !õ+ð( .2¯_©_ô 
÷!rY   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)Ú_CollectedAnnotationr>   Úraw_annotationzOptional[Type[Mapped[Any]]]Úmapped_containerzUnion[_AnnotationScanType, str]Úextracted_mapped_annotationÚboolÚis_dataclassr   Ú
attr_valuerL   Úoriginating_moduler¥   Úoriginating_classN)rM   r[   r\   r^   rS   rY   rV   ró   ró   ¨  s+   … Ø'Ó'Ø1Ó1Ø!@Ó@ØÓØƒOØÓØ Ô rY   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<   	 h d£Z ej                  d«      Z	dd„Z
ddœ	 	 	 	 	 dd„Z	 	 	 	 	 	 	 	 	 	 	 	 dd„Zedd„«       Z	 	 	 	 dd„Z	 	 	 	 dd„Zy) Ú_ClassScanAbstractConfigzÑAbstract base for a configurator that configures a class for a
    declarative mapping, or an unmapped ORM dataclass.

    Defines scanning of pep-484 annotations as well as ORM dataclass
    applicators

    rS   rA   Úclsdict_viewzDict[str, _CollectedAnnotation]Úcollected_annotationsúDict[str, Any]Úcollected_attributesr÷   Úis_dataclass_prior_to_mappingÚallow_unmapped_annotationsrg   Údataclass_setup_argumentsÚallow_dataclass_fields>   rP   rb   rf   rd   z^(?:_sa_|__)c                ó   — t        «       ‚rR   rÔ   rj   s    rV   Ú_scan_attributesz)_ClassScanAbstractConfig._scan_attributesÞ  rØ   rY   F)Úrevertc               óö	  ‡ ‡‡‡— ‰ 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„Šˆˆ fd„‰ j                  j                  «       D «       D ���cg c]I  \  }}}t        j                  ‰ |||‰ j                  j                  |t        j                  «      ||«      ‘ŒK }}}}‰rX‰j                  «       D ]E  \  }}	t        j                  d‰ j                  › d	d
j!                  d„ |	D «       «      › d|› d�d¬«      ‚ |rW‰ j                  j                  j                  «       D �
�ci c]'  \  }
}t"        j$                  j'                  |
«      s|
|“Œ) }}
}nd }t#        j(                  ‰ j                  «      j                  «       D ��ci c]8  \  }}|‰ j                  vs"t+        ‰ j                  |   j,                  «      s||“Œ: }}}i Ši }|D ]G  }t/        |«      dk(  r|\  }
}nt/        |«      dk(  r|\  }
}}|||
<   nJ ‚|j                  |
|«      ‰|
<   ŒI |j                  «       D ]  \  }}t1        ‰ j                  ||«       Œ ‰ j3                  |«       |d   }|t        j                  u rt4        j6                  }t9        j:                  ˆfd„|«      D �ci c]  }|||   “Œ
 }}|‰z  }||z  }t#        j<                  ‰ j                  |«      }	  |‰ j                  fi |j                  «       D ��ci c]  \  }}|t        j                  ur|dvr||“Œ  c}}¤Ž ‰ j                  j>                   	 |r_|r]|j                  «       D ]J  \  }}|‰ j                  j                  v rtG        ‰ j                  |«       t1        ‰ j                  ||«       ŒL  |«        y c c}}}w c c}}
w c c}}w c c}w c c}}w # t@        tB        f$ r8}t        j                  d‰ j                  jD                  ›d|›d�d¬«      |‚d }~ww xY w# |r_|r]|j                  «       D ]J  \  }}|‰ j                  j                  v rtG        ‰ j                  |«       t1        ‰ j                  ||«       ŒL  |«        w xY 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'rP   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)Nr
  T)rv   r�   rí   )Úkeyrû   Úraise_for_non_dc_attrsrT   s     €€rV   Ú_allow_dataclass_fieldzV_ClassScanAbstractConfig._setup_dataclasses_transforms.<locals>._allow_dataclass_fieldÿ  s7   ø€ ð "¨¯©Ñ1Ø*Ð2C×2LÑ2LÑLà&Ð'8Ñ9×@Ñ@ÀÔEàrY   c              3  ó¼   •K  — | ]S  \  }\  }}}}}}}t        |«      s; ‰	||«      r2|‰
j                  vst        ‰
j                  |   t        «      s|||f–— ŒU y ­wrR   )r!   r  r˜   r   )Ú.0r  Úraw_annorõ   Úmapped_annoÚis_dcrù   rú   rû   r  rT   s            €€rV   ú	<genexpr>zI_ClassScanAbstractConfig._setup_dataclasses_transforms.<locals>.<genexpr>  s   øè ø€ ò 0ñ�Cñ ØØ$ØØØØ&Ø%ä-Ð.>Ô?Ù*¨3Ð0AÔBà˜t×8Ñ8Ñ8ô &Ø×1Ñ1°#Ñ6Ô8Jôð1 ØØ$ôñ0ùs   ƒAAzWhen transforming z to a dataclass, attribute(s) ú, c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrR   ©Úrepr)r  r  s     rV   r  zI_ClassScanAbstractConfig._setup_dataclasses_transforms.<locals>.<genexpr><  s   è ø€ Ò C¨s¤ c§Ñ Cùó   ‚z originates from superclass zø, which is not a dataclass.  When declaring SQLAlchemy Declarative Dataclasses, ensure that all mixin classes and other superclasses which include attributes are also a subclass of MappedAsDataclass or make use of the @unmapped_dataclass decorator.Údcmx)Úcoder5   é   Údataclass_callablec                ó   •— | ‰vS rR   rS   )ÚkÚswap_annotationss    €rV   ú<lambda>zH_ClassScanAbstractConfig._setup_dataclasses_transforms.<locals>.<lambda>‡  s   ø€ ˜!Ð#3Ð3€ rY   )r  zAPython dataclasses error encountered when creating dataclass for z: zN. Please refer to Python dataclasses documentation for additional information.Údcte)r  rL   rû   r¥   rZ   r÷   )$r  rv   r�   r   r®   ÚcollectionsÚdefaultdictÚlistrÿ   Úitemsr%   Ú!_get_arguments_for_make_dataclassr  r‚   r9   ÚNO_ARGÚjoinr6   Ú
dunders_reÚmatchÚget_annotationsr!   rõ   rî   ÚsetattrÚ_assert_dc_argumentsÚdataclassesÚ	dataclassÚ	itertoolsÚ	takewhileÚrestore_annotationsr]   Ú	TypeErrorÚ
ValueErrorrM   Údelattr)rT   Úenable_descriptor_defaultsr  r  r  Úannorõ   Ú
field_listrû   Únon_dc_attrsrŸ   rÑ   Úrevert_dictr  ÚvÚorig_annotationsÚdefaultsÚitemÚtpÚspecr  Únew_annotationsÚrestore_annoÚexr  r  r   s   `                       @@@rV   Ú_setup_dataclasses_transformsz6_ClassScanAbstractConfig._setup_dataclasses_transformsá  sM  û€ ð %)×$BÑ$BÐ!Ù(Øð " T§X¡X×%6Ñ%6Ñ6Ü×)Ñ)Ø˜Ÿ™˜
ð #2ð 2óð ð ˜$Ÿ(™(×+Ñ+Ñ+Ü×)Ñ)Ø˜Ÿ™˜
ð #&ð &óð ô "-×!8Ñ!8¼Ó!>Ðð		Øð		Ø)2ð		àö		ô*0ð ×/Ñ/×5Ñ5Ó7ô0÷)
ð )
ñ ,��TÐ+ô ×?Ñ?ØØØØ Ø×)Ñ)×-Ñ-¨c´6·=±=ÓAØ)Ø*õð)
ˆ
ò )
ñT "ð (×-Ñ-Ó/òñ Ø!Øä×-Ñ-Ø(¨¯©¨
ð 3$à—y‘yÑ C°lÔ CÓCÐDð E2à(Ð)ð *5ð		6ð  ôð ð	ñ$ ð $(§8¡8×#4Ñ#4×#:Ñ#:Ó#<÷á�D˜%Ü—‘×,Ñ,¨TÔ2ð �e‘ðˆKò ð ˆKô ×,Ñ,¨T¯X©XÓ6×<Ñ<Ó>÷
á��1Ø˜×2Ñ2Ñ2Ü)Ø×*Ñ*¨1Ñ-×>Ñ>ôð ˆq‰Dð
Ðñ 
ð ÐØˆàò 	DˆDÜ�4‹y˜AŠ~Ø‘�‘bÜ�T“˜a’Ø!%‘��b˜$Ø!%�˜’à�uð
 &6×%9Ñ%9¸$ÀÓ%CÐ˜TÒ"ð	Dð —N‘NÓ$ò 	$‰DˆAˆqÜ�D—H‘H˜a Õ#ð	$ð 	×!Ñ!Ð";Ô<à6Ð7KÑLÐØ¤§¡Ñ.Ü!,×!6Ñ!6Ðô ×(Ñ(Û3Ð5Eóö
àð Ð Ñ"Ñ"ð
ˆð 
ð 	Ð+Ñ+ˆð 	Ð+Ñ+ˆô ×/Ñ/°·±¸/ÓJˆð.	ÙØ—‘ñð !:× ?Ñ ?Ó A÷á˜˜1Ø¤§¡Ñ-ØÐ!8Ñ8ð �q‘Dóòð: �H‰H×Óñ ™+ð (×-Ñ-Ó/ò ,‘D�A�qØ˜DŸH™H×-Ñ-Ñ-Ü §¡¨!Ô,Ü˜DŸH™H a¨Õ+ð,ñ
 �Nùôs)
ùóFùó
ùòX
ùó(øô œ:Ð&ò 	Ü×)Ñ)ð!Ø!%§¡×!2Ñ!2Ð 5°RØ�&ð <ð<ð ôð ðûð	ûñ. ™+ð (×-Ñ-Ó/ò ,‘D�A�qØ˜DŸH™H×-Ñ-Ñ-Ü §¡¨!Ô,Ü˜DŸH™H a¨Õ+ð,ñ
 �NúsV   ÃAP&Æ-,P-È=P3Ì!P9Í"Q Í=#P>Î Q Î&R Ð>Q ÑRÑ3RÒRÒR ÒA*S8c                óø  — || j                   v r| j                   |   S |€y | j                  }| j                  }|€:t        |t        j
                  «      }| xr | xr |d u xs t        |t        «      }d}t        || j                  |j                  |t        |«      d||xr | ¬«      }	|	€y |	\  }
}|€št        |
«      s�t        |
«      D ]�  }t        |dd¬«      r#t        | j                  ||j                  d¬«      }t        |t        «      sŒE|j!                  «       }t#        |«      sŒat        |t$        «      sŒr|j'                  «       }Œƒ t)        |||
|||j                  |«      x| j                   |<   }|S )NF©ÚrequiredÚis_dataclass_fieldÚexpect_mappedT)Úcheck_genericÚcheck_for_plain_string)Úinclude_generic)rÿ   r  r  r˜   r/  ÚFieldr)   r0   rv   r[   r©   r@   r   r?   r4   r(   Úfound_in_pep593_annotatedr!   r.   Ú_as_unmapped_columnró   )rT   rŸ   rô   rû   rJ  rù   rø   Úallow_unmappedrI  Ú	extractedrö   rõ   ÚelemÚcas                 rV   Ú_collect_annotationz,_ClassScanAbstractConfig._collect_annotationÅ  sÃ  € ð �4×-Ñ-Ñ-Ø×-Ñ-¨dÑ3Ð3àÐ!Øà×9Ñ9ˆØ×8Ñ8ˆàÐ Ü!+¨J¼×8IÑ8IÓ!JÐà&Ð&ò Ø&Ð&òð  $Ð&ò @Ü! *Ô.>Ó?ð ð #ÐÜ+ØØ�H‰HØ×(Ñ(ØÜ�ÓØØ1Ø'Ò<°Ð,<ô	
ˆ	ð Ðàà8AÑ5Ð#Ð%5àÐ¤jÐ1LÔ&MÜ Ð!<Ó=ò F�ÜØ¨ÀTõô 3ØŸ™ØØ)×4Ñ4Ø(,ô	�Dô ˜dÔ$;Õ<Ø!%×!?Ñ!?Ó!A�Jô
 .Ð.>Õ?ÄJØ"¤LõEð &0×%CÑ%CÓ%E™
ð+Fô. 1EØØØ'ØØØ×(Ñ(Øó1
ð 	
ˆ×"Ñ" 4Ñ(¨2ð ˆ	rY   c                ó¸   — h d£}t        |«      j                  |«      }|r:dj                  d„ t        |«      D «       «      }t	        j
                  d|› d�«      ‚y )N>   ÚeqÚinitr  ÚorderÚkw_onlyÚ
match_argsÚunsafe_hashr  r  c              3  ó"   K  — | ]  }|›–— Œ	 y ­wrR   rS   )r  Úargs     rV   r  z@_ClassScanAbstractConfig._assert_dc_arguments.<locals>.<genexpr>#  s   è ø€ ÒJ¨3˜s˜g›JÑJùs   ‚zDataclass argument(s) z are not accepted)ÚsetÚ
differencer)  Úsortedr   ÚArgumentError)rv   Ú	argumentsÚallowedÚdisallowed_argsÚmsgs        rV   r.  z-_ClassScanAbstractConfig._assert_dc_arguments  s`   € ò	
ˆô ˜i›.×3Ñ3°GÓ<ˆÙØ—)‘)ÑJ´&¸Ó2IÔJÓJˆCÜ×#Ñ#Ø(¨¨Ð->Ð?óð ð rY   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.

        Ú__sa_dataclass_metadata_key__Nc                ó"   •— t        ‰| |«      |uS rR   )rŒ   )r  rš   rv   s     €rV   Úattribute_is_overriddenzT_ClassScanAbstractConfig._cls_attr_override_checker.<locals>.attribute_is_overridden9  s   ø€ Ü˜s C¨Ó-°SÐ8Ð8rY   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   )r  rš   ÚretÚ	all_fieldÚabsentÚall_datacls_fieldsrv   Úlocal_datacls_fieldss       €€€€rV   rj  zT_ClassScanAbstractConfig._cls_attr_override_checker.<locals>.attribute_is_overriddenJ  s¯   ø€ Ü(¨Ô-ØŸ(™(�Cð +×.Ñ.¨s°FÓ;�Ü(¨Ô-ØŸ(™(�Cà˜#‘:Ø Ø Ñ&Øà.×2Ñ2°3¸Ó?�	ä˜c 3¨Ó,�à˜#‘:Ø ð
 ˜fÑ$¬ØÔ.ô*ð  à Ñ#Ø Ø fÑ,Øð rY   )r  rL   rš   r   rZ   r÷   )r  r|   r6   Údataclass_fieldsra   rŸ   Úlocal_dataclass_fieldsr€   )rT   rv   Úsa_dataclass_metadata_keyrj  Úfro  rp  rq  s    `   @@@rV   Ú_cls_attr_override_checkerz3_ClassScanAbstractConfig._cls_attr_override_checker(  sê   û€ ð ×&Ò&Ü(?ØÐ4ó)Ñ%ð )-Ð%á(õ9ðr 'Ð&ôg ×.Ñ.¨sÓ3ö"àØ,°·
±
Ñ:ð —‘˜Ÿ
™
Ð#<Ñ=Ñ=ò"Ðô ×4Ñ4°SÓ9ö$àØ,°·
±
Ñ:ð —‘˜Ÿ
™
Ð#<Ñ=Ñ=ò$Ð ô “XˆF÷&ð &ðP 'Ð&ùòk"ùò
$s   Á/CÂ
/C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.

        rh  Nc                 ó   •— ˆ ˆfd„‰D «       S )Nc              3  óf   •K  — | ](  }|‰j                  |«      ‰j                  |«      d f–— Œ* y­w)FN©r‚   )r  rŸ   Úcls_annotationsÚcls_varss     €€rV   r  zb_ClassScanAbstractConfig._cls_attr_resolver.<locals>.local_attributes_for_class.<locals>.<genexpr>—  s=   øè ø€ ò ð ð Ø Ÿ™ TÓ*Ø'×+Ñ+¨DÓ1Øô	ñùs   ƒ.1rS   )r{  r|  Únamess   €€€rV   Úlocal_attributes_for_classzO_ClassScanAbstractConfig._cls_attr_resolver.<locals>.local_attributes_for_class”  s   ø€ ôð !&ôð rY   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‚   ra   rŸ   Ú_as_dc_declaredattr)rŸ   Úfieldr{  r|  rr  Úfixed_sa_dataclass_metadata_keyr}  rt  s     €€€€€€rV   r~  zO_ClassScanAbstractConfig._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)rZ   z$Iterable[Tuple[str, Any, Any, bool]])r6   r,  ÚvarsÚ_include_dundersÚ_match_exclude_dundersÚmerge_lists_w_orderingr%  r+  r  r|   rs  rŸ   )rT   rv   r„  r…  Únr~  r�  r{  r|  rr  r‚  r}  rt  s          @@@@@@rV   Ú_cls_attr_resolverz+_ClassScanAbstractConfig._cls_attr_resolvert  s  ý€ ô ×.Ñ.¨sÓ3ˆä˜“9ˆà×0Ñ0ÐØ!%×!<Ñ!<Ðô ×0Ñ0Ü�X“¤ _Ó 5óö
àð *×/Ñ/°Ô2°aÐ;KÑ6Kò	 ò
ˆð ×&Ò&Ü7NØÐ4ó8Ñ%ð )-Ð%á(ðØ4÷ðD *Ð)ô' 04×/JÑ/JÈ3Ó/Oö Ø&+�—
‘
˜EÑ!ò Ðð /HÐ+ð!Ø4÷!ò !ð *Ð)ùòg
ùò> s   Á)C2Ã
C7Nrn   )r7  r÷   r  r÷   rZ   ro   )rŸ   rL   rô   r>   rû   r¥   rJ  zOptional[bool]rù   r   rZ   zOptional[_CollectedAnnotation])rc  r&   rZ   ro   )rv   r½   rZ   úCallable[[str, Any], bool])rv   r¥   rZ   ú2Callable[[], Iterable[Tuple[str, Any, Any, bool]]])rM   r[   r\   r]   r¿   r^   r„  ÚreÚcompiler…  r  rE  rU  rÀ   r.  rv  rˆ  rS   rY   rV   rý   rý   ²  s  … ñð €IàÓØ:Ó:Ø(Ó(à#'Ó'Ø $Ó$à<Ó<ðð !Ó ðòÐð (˜RŸZ™Z¨Ó8Ðó$ð CHñbØ-1ðbØ;?ðbà	óbðHNàðNð ,ðNð %ð	Nð
 &ðNð ðNð 
(óNð` òó ðð$J'ØðJ'à	#óJ'ðXB*ØðB*à	;ôB*rY   rý   c                  óp  ‡ — e Zd ZU dZdZ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*ˆ fd„Zd+d„Z	e
	 	 	 	 d,d„«       Z	 	 	 	 	 	 	 	 d-d „Z	 	 	 	 	 	 	 	 	 	 d.d!„Zd+d"„Zd+d#„Zd/d0d$„Zd1d%„Zd+d&„Zd+d'„Zd2d(„Zej,                  fd3d)„Zˆ xZS )4r°   z9Configurator that will produce a declarative mapped class)r±   rá   Úpersist_selectableÚdeclared_columnsÚunmapped_columnsÚcolumn_orderingÚcolumn_copiesÚ
table_argsÚ	tablenameÚmapper_argsÚmapper_args_fnÚtable_fnrâ   Úsinglerþ   r  rÿ   r  r  r  r  TFrB   r±   r¾   rá   rŽ  zutil.OrderedSet[Column[Any]]r�  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•  re   r“  z&Optional[Callable[[], Dict[str, Any]]]r–  úOptional[Type[Any]]râ   r÷   r˜  c                ój  •— |rt        j                  |«      nt         j                  | _        t        ‰| �  ||«       || _        d | _        i | _        i | _	        t        j                  «       | _        t        j                  «       | _        i | _        i | _        d| _        t!        | j"                  dd «      x| _        }t!        | j"                  dd«      xs t'        | j$                  «      | _        t+        j,                  |«      x| _        }t1        |d«      }|r|r|rt3        j4                  d«      ‚t'        |xr |«      | _        | j9                  «        | j;                  d¬«       t<        j>                  5  tA        jB                  | jD                  | j"                  |jF                  «       | jI                  «        | jK                  «        | jM                  «        | jO                  «        | jQ                  «        | jS                  t         j                  «       d d d «       y # 1 sw Y   y xY w)NFrh   Ú__allow_unmapped__rh  z‘SQLAlchemy mapped dataclasses can't consume mapping information from dataclass.Field() objects if the immediate class is not already a dataclass.T)r7  )*r6   Úimmutabledictrñ   rþ   rÉ   rª   r±   rŽ  r  rÿ   Ú
OrderedSetr�  r�  r‘  r’  r˜  rŒ   rv   r  r÷   r  r/  rø   r  r|   r   r®   r  r  rE  r   rä   r   rå   r£   ræ   Ú_setup_inheriting_mapperÚ_extract_mappable_attributesÚ_extract_declared_columnsÚ_setup_tableÚ_setup_inheriting_columnsrÚ   )rT   r±   r§   r²   ÚdcaÚcldÚsdkrÍ   s          €rV   rª   z!_DeclarativeMapperConfig.__init__ç  sé  ø€ ñ */ŒD×Ñ˜uÔ%´D·O±Oð 	Ôô 	‰Ñ˜ 4Ô(Ø ˆŒØ"&ˆÔà$&ˆÔ!Ø%'ˆÔ"Ü $§¡Ó 1ˆÔÜ $§¡Ó 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ˆÔ#à×ÑÔà×*Ñ*ÀdÐ*ÔKä×'Ñ'ñ 	1Ü×"Ñ"Ø—‘ §¡¨(×*BÑ*Bôð ×)Ñ)Ô+à×-Ñ-Ô/à×*Ñ*Ô,à×ÑÔà×*Ñ*Ô,à×Ñ¤§¡Ô0÷	1÷ 	1ñ 	1ús   Å;B%H)È)H2c                óF	  ‡— | 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}|€|s|r|€J ‚t_        |«      ||<   �Œr||v s�Œx|||<   �Œ �Œ£ |r|
sd }|| _0        |
| _1        || _2        |	| _3        y )Nz_DeclMappedClassProtocol[Any]rP   rd   c                 ó.   •— t        ‰ j                  «      S rR   )Údictrd   ©Úcls_as_Decls   €rV   Ú_mapper_args_fnzB_DeclarativeMapperConfig._scan_attributes.<locals>._mapper_args_fn‚  s   ø€ Ü'+¨K×,GÑ,GÓ'HÐ HrY   rb   c                 ó   •— ‰ j                   S rR   )rP   rª  s   €rV   Ú	_table_fnz<_DeclarativeMapperConfig._scan_attributes.<locals>._table_fn˜  s   ø€ Ø'2×'<Ñ'<Ð <rY   rf   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)rZ   r   )rZ   rG   )4rv   r   rþ   r  r’  r„  rv  r�   r}   rˆ  Ú_produce_column_copiesrí   Úupdater    rb   rf   r˜   Útupler©  r©   r   rb  r›   Ú_quietr6   rž   rM   r:   r.   r+   r®   r�   Ú__get__r-  rŒ   r"   rl  r   Úoriginal_propertyÚ
descriptorÚdocr]   rU  Ú_collect_return_annotationr1   Ú_warn_for_decl_attributesrõ   Ú_mapped_column_for_annotationr“  r”  r–  r—  )rT   rv   rþ   r  r’  r„  r–  r“  Úinherited_table_argsr—  r”  Úfixed_tablerj  Úbasesr�   Úclass_mappedr~  Úlocally_collected_columnsrŸ   rš   Ú
annotationrI  Ú
check_declr¬  r®  rm  Úcollected_annotationÚ	is_mappedr«  s                               @rV   r  z)_DeclarativeMapperConfig._scan_attributes1  sy  ø€ Ø�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 ói	9ñ 
ØØØ&Ø%ð !×'Ñ'Ð(AÔBñ ,Ó-ó]9ñ ØØØØ"àÐ+Ñ+ØÐ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ð ð �{©;¹9Ø3Ð?Ð?Ð?ä9Ð:NÓOð -¨TÓ2ð  Ó-Ø58Ð,¨TÓ2ò{]9ði	9ñ^  ©	ØˆJà$ˆŒØ"ˆŒØ,ˆÔØ ˆ�rY   c                óð   — t        j                  |«      }i }|j                  «       D ]K  \  }}t        |||«      r4t	        |||j
                  |t        d «      ddd¬«      }|sŒ<|\  }}|||<   ŒG|||<   ŒM |S )NFrG  )r6   r,  r&  r1   r0   r[   r©   )	rv   Úklassr{  Únew_annorŸ   rÂ  rR  ÚinnerÚ_s	            rV   Ú(_update_annotations_for_non_mapped_classzA_DeclarativeMapperConfig._update_annotations_for_non_mapped_classY  s•   € ô ×.Ñ.¨uÓ5ˆàˆØ /× 5Ñ 5Ó 7ò 	,ÑˆD�*Ü$ Z°¸Ô>Ü3ØØØ×$Ñ$ØÜ˜“JØ"Ø',Ø"'ô	�	ò Ø(‘H�E˜1Ø%*�H˜T’Nà!+�˜’ð!	,ð" ˆrY   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˜   r7   ÚColumnElementr6   rž   )rT   rv   r  rð   s       rV   r»  z2_DeclarativeMapperConfig._warn_for_decl_attributess  s<   € ô �aœ×1Ñ1Ô2Ü�I‰IØ˜c˜U +¨c¨Uð 3/ð /õð 3rY   c                óô  — | j                   }| j                  }i }| j                  } |«       D �]F  \  }	}
}}|sP|
€Nt        |||«      rA ||	|
«      rŒ$| j	                  |	||d|
«      }|€J ‚t        |«      }|||	<   t        ||	|«       Œ[t        |
t        t        f«      sŒr ||	|
«      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        ||	|«       �ŒI |S )NTrP   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:.)rv   rþ   r’  r1   rU  r¼  r-  r˜   r:   r.   rù   rŒ   rð   Úforeign_keysÚ_table_columnrº   r   r®   Ú_copy)rT   Úattributes_for_classrj  r¾  rû   rv   r²   Úlocally_collected_attributesr’  rŸ   rš   rÂ  rø   rÄ  Ú
mapped_colÚfkÚcopy_s                    rV   r²  z/_DeclarativeMapperConfig._produce_column_copies€  sâ  € ð �h‰hˆØ×!Ñ!ˆð ð 	%ð ×*Ñ*ˆñ 4HÓ3Ió D	.Ñ/ˆD�#�z <áØ�KÜ)¨*°cÐ;LÔMñ +¨4°Ô5ð à'+×'?Ñ'?Ø˜*Ð&7¸¸só(Ð$ð ,Ð7Ð7Ð7Ü:Ø(ó�
ð 6@Ð,¨TÑ2Ü˜˜T :Õ.ä˜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ó'"ð !"ð"ð 25·±³Ð<�M #Ñ&¨à9>Ð0°Ñ6Ü˜C  uÖ-ðID	.ðL ,Ð+rY   c                óþ  — | 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)        ||	|
«       |	dk(  s|	dk(  r4t        |
t*        «      s$ddd	œ}t        j                  d
|	› d||	   › d�«       | j,                  j/                  |	«      }|�|j0                  nd }|€n„t3        |«      r6t        |
t4        «      sit7        j8                  d|j:                  › d|	› d�«      ‚t        |
t4        «      r3t7        j8                  d|j:                  › d|	› d|j:                  › d�«      ‚t        |
t<        «      rAt?        |
«      dk(  r3t        |
d   t@        tB        f«      rt        j                  d|	z  «       �Œä|rt        |
tD        jF                  «      r�Œt        |
t@        tH        f«      s5|jK                  |	«       | jM                  ||	|
«       |st)        ||	|
«       �ŒMt        |
t@        «      r(tO        |	| jP                  j/                  |
|
«      «       �nFt        |
tR        «      rS| j,                  j/                  |	d«      \  }}}}}}}|€|�|r%	 |
jU                  | | jV                  |||	||||«	       n|sJ ‚t        |
tH        «      rÓ|
j^                  r‘|s�t        |
t`        «      rg d¢}ng d¢}|D �ch c]-  }t        |
jb                  d|› �«      td        jf                  ur|’Œ/ }}t7        j8                  d|	› d|› ddji                  tk        d„ |D «       «      «      › d �«      ‚t        |
t`        tl        f«      s |jK                  |	«       t)        ||	|
«       �ŒË|
||	<   �ŒÒ y # tX        $ r}t[        j\                  d|› d�«      |‚d }~ww xY wc c}w )!Nry   Trz   z�Use of @declared_attr.cascading only applies to Declarative 'mixin' and 'abstract' classes.  Currently, this flag is ignored on mapped class %sr±   ra   zMetaData instancezDeclarative class registry)ra   r±   zAttribute name 'z"' should be left reserved for the z  when using a Declarative class.zAttribute "r¯  zn" uses the Unmapped[] annotation, which must be used with unmapped_column() or with no value on the right sidez"" uses unmapped_column() with the zL[] annotation; unmapped_column() must be used with the Unmapped[] annotationr   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?)NNNFNNNz7Could not resolve all types within mapped annotation: "zU".  Ensure all types are written correctly and are imported within the module in use.)rX  Údefault_factoryr  ÚdefaultÚdataclass_metadata)rX  rØ  r  rÚ  Údataclasses_r°  r±  z# includes dataclasses argument(s): r  c              3  ó2   K  — | ]  }t        |«      –— Œ y ­wrR   r  )r  Úas     rV   r  zH_DeclarativeMapperConfig._extract_mappable_attributes.<locals>.<genexpr>¤  s   è ø€ Ò/F¸A´°Q·Ñ/Fùr  zF but class does not specify SQLAlchemy native dataclass configuration.)7rv   r  rÃ   r„  r|   r  r  r÷   r  r%  r›   r�   r6   rž   rŒ   r˜   r   r†   r  r$   r-  r;   rÿ   r‚   rõ   r!   r/   r   rb  rM   r´  rî   r:   r)   r/  rN  r'   Úpopr»  Ú_undefer_column_namer’  r(   rÇ   r±   Ú	NameErrorÚorm_excÚMappedAnnotationErrorÚ_has_dataclass_argumentsr+   Ú_attribute_optionsr9   r(  r)  ra  r*   )rT   rv   r  Ú	our_stuffr„  Úlate_mappedr  Úexpect_annotations_wo_mappedÚlook_for_dataclass_thingsr  rÑ   ÚnounrÄ  Úanno_containerrÂ  rõ   rö   rø   rù   rú   rû   ÚneÚargnamesrÝ  Úargss                            rV   r   z5_DeclarativeMapperConfig._extract_mappable_attributesÙ  sæ  € Ø�h‰hˆØ#×8Ñ8Ðà—O‘Oˆ	à×0Ñ0Ðä-ØÐ-°dô
ˆð &*×%DÑ%DÐ"à&ÒL¨$×*LÑ*Lð 	%ô %)¨×)GÑ)GÓ$HÐ!äÐ*Ó+ó P	!ˆAØÐ$Ñ$Øà(¨Ñ+ˆEä$ UÔ+ð ×#Ò#Ü—I‘Iðð  $Ÿx™xñ(ôô    Q›‘ô ˜5Ô"4Ô5Ø—L‘L¨Ñ+Ø—I‘I ’Nô (¨¯	©	Ó2�Ü˜˜Q Ô&à�JŠØ�Z’¬
°5¼(Ô(Cð !4Ø <ñ�ô —	‘	Ø& q cÐ)KØ˜A‘w�iÐ?ðAôð $(×#=Ñ#=×#AÑ#AÀ!Ó#DÐ ð (Ð3ð %×5Ò5àð ð
 Ð%ØÜ'¨Ô7Ü! %¬Ô8Ü×+Ñ+Ø% c§l¡l ^°1°Q°Cð 8Oð Oóð ô
 ˜E¤>Ô2Ü×'Ñ'Ø! #§,¡, ¨q°°ð 4 Ø .× 7Ñ 7Ð8ð 9!ð!óð ô ˜5¤%Ô(Ü˜“J !’OÜ˜u Q™x¬&Ô2BÐ)CÔDä—	‘	ðBàDEñFôñ
 Ù*¬zØ”{×(Ñ(ô0ñ
 Ü ¬Ô0CÐ'DÔEð
 %×(Ñ(¨Ô+Ø×.Ñ.¨s°A°uÔ=Ù"Ü˜C  EÔ*ÙÜ˜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ò(˜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P	!øôR  )ò &Ü")×"?Ñ"?ð#0Ø0:¨|ð <Eð!Fó#ð
 $&ð&ûð&üòF s   Ì;#QÎ2Q:Ñ	Q7ÑQ2Ñ2Q7c                óˆ  — | j                   }| j                  }| j                  }t        j                  t
        «      }t        |j                  «       «      D �]€  \  }}t        |t        «      �r|j                  }|r|||<   n||= |j                  D ]�  \  }}	t        |t        «      s||j                     j                  |«       |j                  |«       t        |t        «      r| j                   j                  |«       |	||<   |�Œx||j"                  k7  sŒˆt        |t        «      rŒ™|||<   ŒŸ t        |t        «      sŒì|| j$                  j&                  v s�Œt)        | j$                  |«       �Œt        |t*        «      s�Œ0|j                  €J ‚||j                     j                  |«       |j                  |«       ||j"                  k(  s�Œ~||= �Œƒ |j                  «       D ]U  \  }
}t-        |«      dkD  sŒt/        j0                  d| j2                  ›d|
›ddj5                  t7        |«      «      ›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_  r%  r&  r˜   r*   Úmapper_property_to_assignÚcolumns_to_assignr#   rŸ   Úaddr/   r�  r  rv   r�   r6  r:   rî   r6   rž   r£   r)  ra  )rT   rå  r�  r‘  Úname_to_prop_keyr  rð   Úmp_to_assignÚcolÚ
sort_orderrŸ   Úkeyss               rV   r¡  z2_DeclarativeMapperConfig._extract_declared_columns¾  sð  € Ø—O‘Oˆ	ð  ×0Ñ0ÐØ×.Ñ.ˆÜ&×2Ñ2´3Ó7Ðä˜9Ÿ?™?Ó,Ó-ó 5	'‰FˆC�Ü˜!œ\Õ*Ø ×:Ñ:�ÙØ%1�I˜c’Nð " #˜à'(×':Ñ':ò -‘O�C˜Ü% aÔ):Ô;Ø(¨¯©Ñ2×6Ñ6°sÔ;Ø$×(Ñ(¨Ô-ä! !¤^Ô4ð ×-Ñ-×1Ñ1°#Ô6ð ,6�O CÑ(ð %Ñ,Ø 3§7¡7›NÜ *¨1¬nÕ =à),˜	 #šð5-ô8 ˜a¤Õ0°S¸D¿H¹H×<MÑ<MÓ5Mä˜DŸH™H cÖ*Ü˜AœvÖ&ð —v‘vÐ)Ð)Ð)Ø  §¡Ñ(×,Ñ,¨SÔ1Ø ×$Ñ$ QÔ'ð ˜!Ÿ%™%”<Ø! #šðk5	'ðn +×0Ñ0Ó2ò 	‰JˆD�$Ü�4‹y˜1‹}Ü—	’	ð
 —~“~¢t¨d¯i©i¼¸t»Õ.Eð	Hõñ	rY   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]rP   Ú__table_cls__rS   éÿÿÿÿr   Ú__autoload_with__Úautoload_withÚ__autoload__TÚautoloadc                ó(   •— ‰j                  | d«      S )Nr   rz  )rð   r‘  s    €rV   r!  z7_DeclarativeMapperConfig._setup_table.<locals>.<lambda>7  s   ø€  /×"5Ñ"5°a¸Ó";€ rY   )r  z8Can't add additional column %r when specifying __table__)rv   r   r”  r“  rþ   r�  r‘  r   rÏ   r—  r¯   r   r<   r6   Úunbound_method_to_callablerù  r˜   r©  r´  r‚   ra  rÒ   r2   rP   rð   Úcontains_columnr   rb  r  rá   )rT   rº   rv   r«  r”  r“  rþ   r�  r“   Ú	table_clsrí  Útable_kwrü  rþ  Úsorted_columnsrð   r‘  s                   @rV   r¢  z%_DeclarativeMapperConfig._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ñ;óð ðð !ˆÕrY   c                óB   — t        | j                  |j                  «      S rR   )Ú_metadata_for_cls_fnrv   r±   )rT   r“   s     rV   r2   z*_DeclarativeMapperConfig._metadata_for_clsU  s   € Ü# D§H¡H¨g×.>Ñ.>Ó?Ð?rY   c                óœ  — | j                   }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   rP   T)rv   rƒ   r„   r}   rí   rî   r   r®   r˜   r,   r†   râ   rþ   r”  r˜  )rT   rv   râ   rï   r‡   rð   rþ   s          rV   rŸ  z1_DeclarativeMapperConfig._setup_inheriting_mapperX  sà   € Ø�h‰hˆàˆàÐð !ˆOØŸ™ò .�Ü6°uÓ=�Ø�9Øä,¨QÕ/°A¸_Ò4LØ#×*Ñ*¨1Õ-ð.ñ Ü�Ó'¨!Ò+Ü×1Ò1â¡ð1óð ð +¨1Ñ-‘Ü˜¤&Ô)Ø—‘ˆHà ˆŒà×(Ñ(ˆØ˜lÑ*¨t¯~©~Ð/EØˆD�Kð 0FÐ*rY   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á   rv   r“  r�  râ   r|   r   r®   rw   rŽ  rb  r˜   r<   rŸ   rð   rM   Úprimary_keyr   Úappend_columnÚ_refresh_for_new_column)	rT   rº   rv   r“  r�  Úinherited_mapper_or_configÚinherited_tableÚinherited_persist_selectablerô  s	            rV   r£  z2_DeclarativeMapperConfig._setup_inheriting_columnsy  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ð# ð rY   c                óþ  — | 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<                  r:t?        |j                  d«      xs d	«      j'                  | j<                  «      |d<   |jA                  «       }||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_propertiesrS   )"rÃ   r–  r³  r©  r’  r‚   r6   Úto_listr˜   r,   r†   râ   r   r®   r3   rá   rð   Ú_columntopropertyr  Úunionr  Údifference_updater�  r%  r&  r7   rÍ  Ú_propsr-   Úcolumnsr�  r_  Úcopyr•  )rT   r»   rÃ   r•  r  r<  Úinherits_argÚinherited_mapperr  rð   r  rô  ÚpÚresult_mapper_argss                 rV   Ú_prepare_mapper_argumentsz2_DeclarativeMapperConfig._prepare_mapper_argumentsÁ  s  € Ø—_‘_ˆ
à×ÒØ×-Ñ-Ó/‰KàˆKáØ×Ñ˜yÔ)à˜;Ñ&Ü˜jÓ)ˆJØ×Ñ˜k¨,Ñ7Ô8ð 6ò 	>ˆAØ�KÒØ ‘N�Ø!%×!3Ñ!3×!7Ñ!7¸¸1Ó!=�˜A’ð	>ð
 ˜KÑ'ô Ÿ™ k°-Ñ&@ÓAö*àð ×"Ñ"×&Ñ& q¨!Õ,ò*ˆ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Ö:˜q�Q—U“UÒ:ôô ˜z×/Ñ/Ó1Ó2ò :‘��3Ü! #¤z×'?Ñ'?Ô@ØØÐ(×/Ñ/Ò/Ø(×/Ñ/°Ñ2�AÜ! !¤^Õ4ð *-¨°·	±	Ñ(9˜
 1šð:ð × Ò ô 14Ø—‘Ð 4Ó5Ò;¸ó1ç‰e�D×)Ñ)Ó*ð Ð,Ñ-ð )×-Ñ-Ó/ÐØ+5Ð˜<Ñ(Ø-ˆÕùòA*ùò<Jùò ;s   Â0#K0Æ!K5Ç5K: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]]rO   )r   r¯   rv   r   r6   r   r"  r,   rÒ   rá   r•  ré   s      rV   r×   z_DeclarativeMapperConfig.map  sƒ   € Ø×&Ñ& yÔ1Ü�4—8‘8Ð-Ô.ÜØ#Ü×/Ñ/Ø—H‘H×+Ñ+óó‰Jô  ˆJà×%Ñ%ØÙ�t—x‘x ×!1Ñ!1ÑF°T×5EÑ5EÑFó
ð 	
rY   )r±   rB   r§   r½   r²   rA   rn   )rÇ  r½   rZ   z!Mapping[str, _AnnotationScanType])rv   r¥   r  rL   rð   r   rZ   ro   )
rÒ  rŠ  rj  r‰  r¾  r÷   rû   r¥   rZ   z0Dict[str, Union[Column[Any], MappedColumn[Any]]]rR   )rº   r¾   rZ   ro   )r“   zClassManager[Any]rZ   r;   rÜ   rÛ   )rM   r[   r\   r]   r¿   rÝ   Úis_deferredr^   rª   r  rÀ   rË  r»  r²  r   r¡  r¢  r2   rŸ  r£  r   r6   rñ   r×   rÞ   rß   s   @rV   r°   r°   ¹  sb  ø… ÙCð€Ið0 €NØ€KØÓØ%Ó%Ø,Ó,Ø2Ó2Ø2Ó2Ø+Ó+ðó ð ÓØ"Ó"Ø(Ó(Ø:Ó:Ø!Ó!ØƒLðH1àðH1ð ðH1ð õ	H1óTf!ðP	 ðØðà	*òó ðð2ØðØ#&ðØ+.ðà	óðW,ð
ðW,ð
 "<ðW,ð ðW,ð %ðW,ð 
:óW,órc!óJGôRL!ó\@óóBFóPW.ðr .2¯_©_÷ 
ð 
rY   r°   c                  ó8   ‡ — e Zd ZdZdZ	 	 	 	 dˆ fd„Zdd„Zˆ xZS )r¶   z5Configurator that will produce an unmapped dataclass.)rþ   r  rÿ   r  r  r  r  c                óf  •— t         ‰| �  |«       |rt        j                  |«      nt        j                  | _        t        | j                  dd «      | _        t        j                  |«      | _        d| _        d| _        i | _        i | _        | j!                  «        | j#                  dd¬«       y )Nrh   FT)r7  r  )rÉ   rª   r6   r�  rñ   rþ   rŒ   rv   r  r/  rø   r  r  r  r  rÿ   r  rE  )rT   r§   r²   rÍ   s      €rV   rª   z!_UnmappedDataclassConfig.__init__9  s¤   ø€ ô
 	‰Ñ˜Ôá).ŒD×Ñ˜uÔ%´D·O±Oð 	Ôô *1Ø�H‰HÐ/°ó*
ˆÔ&ô .9×-EÑ-EÀdÓ-KˆÔ*Ø&+ˆÔ#Ø*.ˆÔ'Ø$&ˆÔ!Ø%'ˆÔ"à×ÑÔà×*Ñ*Ø',°Tð 	+õ 	
rY   c                óÂ  — | j                   }| j                  }| j                  }| j                  }| j	                  | j                   «      }| j                  |«      } |«       D ]y  \  }}}	}
||v rŒ|
rL||vs||   |urA |||«      rJ ‚t        |«      r|j                  «       }|||<   | j                  ||	|d|«       Œ[| j                  ||	|d |«       ||v sŒu|||<   Œ{ y )NF)	rv   rþ   r  r„  rv  rˆ  r›   rl  rU  )rT   rv   rþ   r  r„  rj  r~  rŸ   rš   rÂ  rI  s              rV   r  z)_UnmappedDataclassConfig._scan_attributesR  s	  € Ø�h‰hˆà×(Ñ(ˆØ#×8Ñ8ÐØ×0Ñ0Ðà"&×"AÑ"AÀ$Ç(Á(Ó"KÐà%)×%<Ñ%<¸SÓ%AÐ"ñ (Ó)ò	5ñ 
ØØØØàÐ'Ñ'ØÙ#Ø˜LÑ(¨L¸Ñ,>ÀcÑ,Iñ 3°4¸Ô=Ð=Ð=ä(¨Ô-ØŸ(™(›*�Cà-0Ð$ TÑ*Ø×(Ñ(¨¨z¸3ÀÀsÕKà×(Ñ(¨¨z¸3ÀÀcÔJØ˜<Ò'Ø14Ð(¨Ò.ñ;	5rY   )r§   r½   r²   rA   rn   )rM   r[   r\   r]   r¿   rª   r  rÞ   rß   s   @rV   r¶   r¶   ,  s)   ø„ Ù?ð€Ið
àð
ð õ
÷2'5rY   r¶   c                ó¨   — t         j                  j                  }| |   }t        |«      r't	        ||j
                  «      s|j                  |«      S |S rR   )r6   r•   r–   Úcallabler˜   rD   )Úfield_metadatart  Údecl_apirš   s       rV   r€  r€  |  sJ   € ô �~‰~×*Ñ*€HØ
Ð2Ñ
3€CÜ�„}œZ¨¨X×-CÑ-CÔDØ×%Ñ% cÓ*Ð*àˆ
rY   c                  ó   ‡ — e Zd ZU dZ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 )rr   zìConfigurator that extends _DeclarativeMapperConfig to add a
    "deferred" step, to allow extensions like AbstractConcreteBase,
    DeferredMapping to partially set up a mapping that is "prepared"
    when table metadata is ready.

    úweakref.ref[Type[Any]]Ú_clsTzDutil.OrderedDict[weakref.ref[Type[Any]], _DeferredDeclarativeConfig]Ú_configsc                 ó   — y rR   rS   rÖ   s     rV   rÚ   z)_DeferredDeclarativeConfig._early_mapping›  s   € ØrY   c                ó"   — | j                  «       S rR   )r-  rj   s    rV   rv   z_DeferredDeclarativeConfig.clsž  s   € à�y‰y‹{ÐrY   c                ó€   — t        j                  || j                  «      | _        | | j                  | j                  <   y rR   )ÚweakrefÚrefÚ_remove_config_clsr-  r.  )rT   r†   s     rV   rv   z_DeferredDeclarativeConfig.cls¢  s,   € ä—K‘K ¨×(?Ñ(?Ó@ˆŒ	Ø#'ˆ�‰�d—i‘iÒ rY   c                ó<   — | j                   j                  |d «       y rR   )r.  rÞ  )rv   r3  s     rV   r4  z-_DeferredDeclarativeConfig._remove_config_cls§  s   € à�‰×Ñ˜˜dÕ#rY   c                óh   — t        |t        «      xr! t        j                  |«      | j                  v S rR   )r˜   r©   r2  r3  r.  ©rv   r†   s     rV   rs   z"_DeferredDeclarativeConfig.has_cls«  s(   € ô ˜&¤$Ó'ÒO¬G¯K©K¸Ó,?À3Ç<Á<Ð,OÐOrY   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.)rf  )r¯   r9  rá  ÚUnmappedClassErrorÚ_safe_cls_namer7  s     rV   Úraise_unmapped_for_clsz1_DeferredDeclarativeConfig.raise_unmapped_for_cls°  sN   € ä�6Ð6Ô7Ø×,Ñ,Ô.ä×(Ñ(Øàœ×/Ñ/°Ó7Ð8ð 9Jð Jô
ð 	
rY   c                óF   — | j                   t        j                  |«         S rR   )r.  r2  r3  r7  s     rV   rt   z)_DeferredDeclarativeConfig.config_for_cls½  s   € à�|‰|œGŸK™K¨Ó/Ñ0Ð0rY   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rR   rS   )r  Úbase_clsÚall_m_by_clsÚm_clss     €€rV   r  z>_DeferredDeclarativeConfig.classes_for_base.<locals>.<genexpr>Ô  s0   øè ø€ ò àØ˜|Ñ+ð ˜hÑ'¨°eÑ)<Ô=ñùs   ƒ)	r.  Úvaluesrv   r‹   Úextendrƒ   r%  r=   Úsort)	rv   r@  rE  Úmr§   Úclasses_for_baseÚtuplesrA  rB  s	          @@rV   rG  z+_DeferredDeclarativeConfig.classes_for_baseÁ  sÜ   ù€ ð 14·±×0CÑ0CÓ0EÖF¨1˜Q §¡šJÒF÷
á��4ØÐ¤J¨t°XÔ$>ò ð
Ðñ 
ñ Ø#Ð#à*:Ö; Q˜Ÿ™˜q™Ò;ˆð ð 	ð "ò 	ˆEØ�M‰Mô à %§¡ôõ ð	ô ”K×$Ñ$ VÐ-=Ó>Ó?Ð?ùò% Gùó
ùò <s   ŸCºCÁCc                ón   •— | j                   j                  | j                  d «       t        ‰| �  |«      S rR   )r.  rÞ  r-  rÉ   r×   )rT   r»   rÍ   s     €rV   r×   z_DeferredDeclarativeConfig.mapÛ  s*   ø€ Ø�‰×Ñ˜$Ÿ)™) TÔ*Ü‰w‰{˜9Ó%Ð%rY   rÜ   )rZ   r¥   )r†   r¥   rZ   ro   )r3  r,  rZ   ro   )r†   r¥   rZ   r÷   )r†   r¥   rZ   r   )r†   r¥   rZ   rr   )T)r@  r¥   rE  r÷   rZ   z List[_DeferredDeclarativeConfig]rÛ   )rM   r[   r\   r]   r^   r#  r6   rÊ   r.  rÚ   Úpropertyrv   ÚsetterrÀ   r4  rs   r<  rt   rG  rñ   r×   rÞ   rß   s   @rV   rr   rr   ‹  sþ   ø… ñð !Ó à€Kð 	ˆ×ÑÓð ð ó óð òó ðð 	‡Z�Zò(ó ð(ð ò$ó ð$ð òPó ðPð ò

ó ð

ð ò1ó ð1ð à/3ð@Ø ð@Ø(,ð@à	)ò@ó ð@ð2 .2¯_©_÷ &ò &rY   rr   c                ó¾  — d| j                   v �r·t        d| «      }dd„}t        |t        «      rBt	        ||«        ||«      j                  |d¬«       |j                  j                  ||«       yt        |t        «      r”|j                  }|j                  D ]Z  \  }}t	        ||«        ||«      j                  |d¬«       |rŒ.t        |t        «      rŒ?|j                  j                  ||«       Œ\ |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.

    rO   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˜   rP   r<   r   r®   rM   )Úmcs    rV   Ú_table_or_raisez'_add_attribute.<locals>._table_or_raiseí  sC   € Ü˜"Ÿ,™,¬Ô.Ø—|‘|Ð#Ü×)Ñ)Ø=¸b¿k¹k¸_ð M;ð ;óð rY   T)Úreplace_existingN)rN  rø  rZ   r<   )r�   r   r˜   r:   rß  r  rO   Úadd_propertyr*   rï  rð  r/   r+   r   r  r$   r©   Ú__setattr__Ú_expire_memoizations)rv   r  rÑ   Ú
mapped_clsrO  Úmprô  rÊ  s           rV   Ú_add_attributerV  à  sœ  € ð �s—|‘|Ò#ÜÐ4°cÓ:ˆ
ó	ô �eœVÔ$Ü   eÔ,Ù˜JÓ'×5Ñ5Ø¨ð 6ô ð ×!Ñ!×.Ñ.¨s°EÕ:Ü˜œ|Ô,Ø×0Ñ0ˆBØ×1Ñ1ò A‘��QÜ$ S¨#Ô.Ù 
Ó+×9Ñ9Ø¨$ð :ô ò ¤*¨U´NÕ"CØ×)Ñ)×6Ñ6°s¸CÕ@ðAñ Ø×%Ñ%×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Õ)rY   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 )NrO   rø  z<Can't un-map individual mapped attributes on a mapped class.)r�   r   rO   Ú_dispose_calledr˜   r:   r*   r+   r   rÕ   r©   Ú__delattr__rS  )rv   r  rÑ   s      rV   Ú_del_attributerZ  	  s«   € à˜Ÿ™Ñ$Ø�3—<‘<ÑÜØ&¨ó
ç
‰*—_‘_ð%ð —‘˜SÑ!ˆÜØ”FœL¬.Ô:LÐMô
ô &ØNóð ô ×Ñ˜S #Ô&ÜØ*¨Cóç‰j×-Ñ-Õ/ä×Ñ˜˜cÕ"rY   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¯   r4  rM   r-  )rT   Úkwargsr§   r  s       rV   Ú_declarative_constructorr]  ,	  sQ   € ô �‹:€DØò $ˆÜ�t˜QÔÜÚ>?ÀÇÂÐOóð ô 	��a˜ ™Õ#ñ$rY   rª   c                ó„   — | j                   �| j                   S t        | j                  «      r
t        «       S t	        «       S )aG  produce the column construct for an annotation with no right side,
    e.g. ``x: Mapped[int]`` or ``x: Unmapped[int]``.

    This is the construct that was located inside of an ``Annotated`` type
    if present, else a blank :class:`.MappedColumn` or
    :class:`.UnmappedColumn` based on the annotation's container type.

    )rù   r!   rõ   r/   r.   )rÄ  s    rV   r¼  r¼  B	  s<   € ð ×&Ñ&Ð2Ø#×.Ñ.Ð.Ü	Ð 4× EÑ EÔ	FÜÓÐä‹~ÐrY   c                óR   — |j                   €| |_         |j                  €| |_        y y rR   )r  rŸ   )r  Úcolumns     rV   rß  rß  V	  s)   € Ø‡z�zÐØˆŒ
Ø‡{�{ÐØˆ�ð rY   )rv   r¥   rZ   z8Optional[Union[_DeferredDeclarativeConfig, Mapper[Any]]])rv   r¥   rZ   r÷   )rv   r¥   rZ   rš  )F)rv   r¥   rŽ   rL   r{   r÷   rZ   zOptional[Any])rv   r½   rZ   zOptional[ClassManager[_O]])rš   r   rZ   r÷   )rš   r   rŸ   rL   rv   r½   rZ   r÷   )r)  r™  rt  rL   rZ   r   )rv   r¥   r  rL   rÑ   zMapperProperty[Any]rZ   ro   )rv   r¥   r  rL   rZ   ro   )rT   r   r\  r   rZ   ro   )rÄ  ró   rZ   zMappedColumn[Any])r  rL   r`  zColumn[Any]rZ   ro   )yr]   Ú
__future__r   r#  r/  r1  r‹  Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r2  Ú r   r   r   rá  r   r   Ú_typingr   r   r   r   r�   r    r!   r"   Údescriptor_propsr#   r$   Ú
interfacesr%   r&   r'   r(   r)   r*   r+   Úmapperr,   rÃ   r-   r.   r/   r6   r0   r1   r2   r  r3   r4   Úsqlr7   Úsql._annotated_colsr8   Úsql.baser9   Ú
sql.schemar:   r;   r<   r=   Úutil.typingr>   r?   r@   rA   rB   rC   r*  rD   rE   Úsql.elementsrF   Úsql.selectablerG   rH   rL   rc   Ú_TableArgsTyperK   r`   rw   r}   r„   r|   r…   Úpreload_moduler›   r    r¢   rÂ   r¹   ró   rý   r°   r¶   r€  rr   rV  rZ  r]  rM   r¼  rß  rS   rY   rV   ú<module>rq     sâ  ðñ /å "ã Û Û Û 	Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý  Ý Ý Û å Ý Ý Ý Ý Ý Ý +Ý -Ý *Ý "Ý (Ý  Ý /Ý -Ý )Ý +Ý +Ý /Ý (Ý $Ý &Ý Ý &Ý $Ý &Ý )Ý 'Ý ;Ý Ý )Ý Ý Ý Ý .Ý Ý Ý !Ý Ý Ý -Ý $Ý $áÝ#Ý&ÝÝ'Ý-Ý*Ý+áˆT˜Ô€à˜˜S˜Ñ!€Ø�u˜S #˜X‘¨¨S°#¨X©Ð6Ñ7€ô-˜( 2™,ô -ô,Ð2°2Ñ6¸ô ,ð
Ø	ð
à=ó
óó,ð. 38ð$Ø	ð$Ø!ð$Ø+/ð$àó$óNð €×ÑÐ.Ó/òHó 0ðHðØ	ðØðØ&ðà	ó÷:@ñ :@ôz-Ð)ô -ô`9!˜mô 9!ôx!˜:ô !ôD*Ð4ô D*ôNp
˜}Ð.Fô p
ôf#M5Ð7ô M5ð` €×ÑÐ.Ó/ðØ%ðØBEðàòó 0ðôR&Ð!9ô R&ðj1*Ø	ð1*Øð1*Ø%8ð1*à	ó1*óh#ó0$ð& %/Ð Ô !ðØ.ðàóô(rY   