L iFtdZddlmZddlZddlZddlZddlmZddlmZddlm Z ddlm Z ddlm Z dd lm Z dd lm Z dd lmZdd lmZdd lmZddlmZddlmZddlmZddlmZddlmZddlmZddlZddlmZddlmZddlmZddlmZddlmZddlm Z ddlm!Z!ddlm"Z"ddlm#Z#ddl$m%Z%ddl$m&Z&dd l'm(Z(dd!l'm)Z)dd"l*m+Z+dd#l*m,Z,dd$l*m-Z-dd%l*m.Z.dd&l*m/Z/dd'l*m0Z0dd(l1m2Z2dd)l3m4Z4dd*l3m5Z5dd+l6m7Z7dd,l6m8Z8dd-l6m9Z9dd.l6m:Z:d/d0lm;Z;d/dlmZd/d1lm6Z6d/d2lm?Z?d/d4l@mAZAd/d5l@mBZBd/d6l6mCZCd/d7lDmEZEd/d8lDmFZFd/d9lDmGZGd/d:lDmHZHd/d;lDmIZId/dlmLZLdd?l$mMZMdd@lNmOZOddAlmPZPd/dBlQmRZRd/dCl@mSZSd/dDlTmUZUedEeFZVe eWefZXeeedGfe eWeffZYGdHdIeIe ZZGdJdKeZe eIZ[GdLdMeJZ\ dhdNZ]didOZ^djdPZ_ dk dldQZ`dmdRZa dndSZb dodTZce6jdUdpdVZe dqdWZfGdXdYZgGdZd[egZhGd\d]eZiGd^d_egZje6jdU drd`ZkGdadbejZl dsdcZmdtddZndudeZodfeo_pdvdgZqy)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)get_args) is_fwd_ref) is_literal)Protocol) TypedDict) _ClassDict) _RegistryType)Mapped) declared_attr) ClassManager) NamedColumn)MetaData) FromClause_T)bound.c8eZdZUdZded<ded<ded<d dZy ) MappedClassProtocolzA 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 yN)selfkws ^/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sqlalchemy/orm/decl_base.py__call__zMappedClassProtocol.__call__eN)rRrreturnr)rJ __module__ __qualname____doc____annotations__rTrPrVrSrHrHZs M,rVrHcTeZdZUdZded<ded<ded<ded <d ed <dd Zdd Zy)_DeclMappedClassProtocolz:Internal more detailed version of ``MappedClassProtocol``.rCmetadatarI __tablename__ _MapperKwArgs__mapper_args__Optional[_TableArgsType]__table_args__Optional[_DataclassArguments]_sa_apply_dc_transformscyrOrPrQs rS__declare_first__z*_DeclMappedClassProtocol.__declare_first__rrUrVcyrOrPrgs rS__declare_last__z)_DeclMappedClassProtocol.__declare_last__trUrVNrWNone)rJrXrYrZr[rhrjrPrVrSr]r]hs)@"",,::,+rVr]c^eZdZUded<ded<ded<ded<ded<ded<ded<d ed <y ) _DataclassArgumentszUnion[_NoArg, bool]initrepreqorder unsafe_hash match_argskw_onlyz'Union[_NoArg, Callable[..., Type[Any]]]dataclass_callableNrJrXrYr[rPrVrSrnrnws2   $$##  ??rVrnctj|rtj|St|r t |dSy)NF) configure)_DeferredMapperConfighas_clsconfig_for_clsrr-clss rS_declared_mapping_infors;$$S)$33C88 # C511rVcdtj|rt|dd St|ryy)areturn 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_nocascadeTstrictF)rzr{_get_immediate_cls_attrrr}s rS_is_supercls_for_inheritsrs<$$S)* -d    # rVc|tury|jjddr#|jD]}t |}||cSyt |}|r |j S|S)N __abstract__F)object__dict__get __bases__"_resolve_for_abstract_or_classical_dive_for_cls_managerclass_)r~base_sup clsmanagers rSrrsl f} ||.]] E4U;C   *3/ $$ $JrVc|dk7sJt|tsy||jvr t||S|jddD]E}t |du}||jvs||us|r||j vs4n |r9t||cSy)areturn 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. rNr) issubclassrrgetattr__mro__rr)r~attrnamerbase_is_classical_inheritss rSrrs ~ %% % c6 "3<<sH%% AB !6t!rType[_O]rr=rOptional[FromClause]rr`rWOptional[_MapperConfig])rr>rrrr`)rrIrrErWrE).rr`rWz Mapper[Any]rr`rWrl) rJrXrY __slots__r[ classmethodrrrrrrPrVrSrrsI NN 54  $  !  !<! 8 $rVrc\eZdZdZ dfd Zej fddZddZxZ S)r) local_tableinheritscrt|||||jd||_tj 5|j dds5tj|j|j|j|j||j|dddy#1swYyxYw)NrMrF)superrrrr_CONFIGURE_MUTEXrr add_classrr~_class_registry_setup_inheritancer)rQrrrr __class__s rSrz _ImperativeMapperConfig.__init__us 4311+uE  ' ' +==6%%NNDHHh.F.F  # #I .    * + + +s A*B--B6cjt}|jd||j|jfi|S)NrL)r(rr~rrQr mapper_clss rSrz_ImperativeMapperConfig.maps6 %%  txx!1!1 ?Y ?  rVc|j}|jdd}|{g}|jD]2}t|}|t |s||vs"|j |4|rRt |dkDrtjd|d||d}||_ yt|tr |j}||_ y)Nrrr has multiple mapped bases: r) r~rrrrappendlenrrrr(rr)rQrr~rinherits_searchrcs rSrz*_ImperativeMapperConfig._setup_inheritanceshh==T2  !O .6u=9,Q/A_4L#**1-  .'!+111+1-! & )H  rV)rr>rrrrrr`rr) rJrXrYrrr1 EMPTY_DICTrr __classcell__rs@rSrrrsF+I+++$ + ! +*.2__ !rVrcTeZdZUded<ded<ded<ded<d ed <d ed <d ed<y)_CollectedAnnotationr7raw_annotationzOptional[Type[Mapped[Any]]]mapped_containerzUnion[_AnnotationScanType, str]extracted_mapped_annotationbool is_dataclassr attr_valuerIoriginating_moduleroriginating_classNrwrPrVrSrrs+''11!@@O  rVrc`eZdZUdZdZded<ded<ded<d ed <d ed <d ed <ded<ded<ded<ded<ded<ded<ded<ded<ded<ded <ded!<d"ed#< ded$< d;fd% Zdd*Z dfdId:Z xZ!S)Jr)r clsdict_viewcollected_attributescollected_annotationsrpersist_selectabledeclared_columnscolumn_ordering column_copies table_args tablename mapper_argsmapper_args_fntable_fnrsingleallow_dataclass_fieldsdataclass_setup_argumentsis_dataclass_prior_to_mappingallow_unmapped_annotationsFr>rr=rzDict[str, _CollectedAnnotation]rDict[str, Any]rrrrzutil.OrderedSet[Column[Any]]rzDict[Column[Any], int]rzRDict[Union[MappedColumn[Any], Column[Any]], Union[MappedColumn[Any], Column[Any]]]rz Optional[str]r Mapping[str, Any]r rbrz&Optional[Callable[[], Dict[str, Any]]]r Optional[Type[Any]]rrr rrrdrrc@|rtj|ntj|_t ||||||_d|_i|_i|_ tj|_ i|_ i|_ d|_t|j ddx|_}t|j ddxst%|j"|_t)j*|x|_}t/|d}|r|r|rt1j2dt%|xr||_|j7|j9|j;t<j>5tAjB|jD|j |jF|jI||jK|jM|jO||jQ||jS|dddy#1swYyxYw)NFre__allow_unmapped____sa_dataclass_metadata_key__zSQLAlchemy mapped dataclasses can't consume mapping information from dataclass.Field() objects if the immediate class is not already a dataclass.)*r1 immutabledictrrrrrrrr OrderedSetrrrr rr~rrr dataclassesrrrrrr_setup_declared_events_scan_attributes_setup_dataclasses_transformsrrrrrr_setup_inheriting_mapper_extract_mappable_attributes_extract_declared_columns _setup_table_setup_inheriting_columnsr) rQrrrrrdcacldsdkrs rSrz_ClassScanMapperConfig.__init__s*/D  u %DOO  43  "&$&!%'" $ 1! /6 HH/0  &+2 HH*E+ +2 $00 1 '4?3K3K 4  *S&d,KLs))4 '+3;3&7# ##%  **,  ' ' +  ! !(*B*B   ) )) 4  - - /  * * ,   e $  * *9 5    * + + +s 1BHHctjdr#tjtddfd }tjdr$tjtddfd }yy)Nrjafter_configuredcNtdjjyN_DeclMappedClassProtocol[Any])rr~rjrgsrSr'zG_ClassScanMapperConfig._setup_declared_events..after_configuredJs3TXX""$rVrhbefore_configuredcNtdjjyr))rr~rhrgsrSr+zH_ClassScanMapperConfig._setup_declared_events..before_configuredRs3TXX##%rVrk)rr~r0 listens_forr()rQr'r+s` rSrz-_ClassScanMapperConfig._setup_declared_eventsGsi "488-? @   v'9 : %; % #488-@ A   v': ; &< & BrVc|jr td}nd}|sdfd }|StjDcic]*}||jvr|j |j|,c}tj Dcic]*}||jvr|j |j|,c}tdfd }|Scc}wcc}w)zProduce a function that checks if a class has overridden an attribute, taking SQLAlchemy-enabled dataclass fields into account. rNc"t|||uSrO)r)keyrr~s rSattribute_is_overriddenzR_ClassScanMapperConfig._cls_attr_override_checker..attribute_is_overriddenissC-S88rVc t|r |j}j|}t|r |j}||ury|uryj|}t||}||ury|urt |t ry||ury|uryy)NFT)rfgetrrrr)r0rret all_fieldabsentall_datacls_fieldsr~local_datacls_fieldss rSr1zR_ClassScanMapperConfig._cls_attr_override_checker..attribute_is_overriddenzs(-((C +..sF;(-((C#: &.223? c3,#: f$.* # f,rV)r0rIrrrWr)rrr1dataclass_fieldsr^rlocal_dataclass_fieldsr)rQr~sa_dataclass_metadata_keyr1fr6r7r8s ` @@@rS_cls_attr_override_checkerz1_ClassScanMapperConfig._cls_attr_override_checkerXs  & &(?4) %)- %( 9r'&g..s3", : #<==" 44S9$, : #<==$ XF& & P'&k" $s /C /C>rMr_rcraz ^(?:_sa_|__)c tj|t||j}|j}tj t t Dcgc]}|j|r||vr|c} |jr t|d nd s d fd }|Stj|Dcic]}|j|c} d fd }|Scc}wcc}w)zproduce a function to iterate the "attributes" of a class which we want to consider for mapping, adjusting for SQLAlchemy fields embedded in dataclass fields. rNcfdDS)Nc3fK|](}|j|j|df*yw)FNr).0rcls_annotationscls_varss rS z`_ClassScanMapperConfig._cls_attr_resolver..local_attributes_for_class..s=  T*'++D1 s.1rP)rCrDnamessrSlocal_attributes_for_classzM_ClassScanMapperConfig._cls_attr_resolver..local_attributes_for_classs!&rVc3,KD]}j|d}|rN|jvr@|jt|jj|jdfe|j|j|dfyw)NTF)rr^r_as_dc_declaredattr)rfieldrCrDr9fixed_sa_dataclass_metadata_keyrFr;s rSrGzM_ClassScanMapperConfig._cls_attr_resolver..local_attributes_for_classs" !D,00t s )C2 C7c d |j}td||j}|j}|j}|j }d}dx}}d} d} d|v} |j |j} g} |jD]V}||uxr t|}|j|}|s||ur|j|| | |}ni}| j||||fX| D]\}}}}|j||D]\}}}}||vr|dk(rt|||}|r"|r|s'dfd }|}0|dk(r"t|||}| rE|r|sJj} W|dk(rt|||}|sl| rodfd }|} x|dk(r^t|||}|r|r|sj}t!|t"t$t'dfst)j*d||usd }J|rEt-|r8|j.s,t1j2d |j4d |d |d|d $||urt!|t6t8frAt!|t:rt)j<dt-|r9|J|j>rJ||vrt1j2d|d|d|jA||x||<x||<}tC|||n|r.tE||d}t!|tFs|jI}n tE||}t!|tFr1tK|r&t!|jLt:s |jN}|x||<||<t!|t6t:fr|jP|jR|_(|jU||jW|d |tY|||r| s||vs | |dsJ|j[||||rM||vs|||urB| ||rJt-|r|jI}|||<|jU|||d |/|jU|||d|}|duxr|j\du}| |j^n|}|| s|r||n t9||<||vs|||<|r| sd}||_0| |_1||_2| |_3y)Nr*rMrac.tjSrO)dictra cls_as_DeclsrS_mapper_args_fnz@_ClassScanMapperConfig._scan_attributes.._mapper_args_fnBs'+K,G,G'H HrVr_cjSrO)rMrXsrS _table_fnz:_ClassScanMapperConfig._scan_attributes.._table_fnXs'2'<'< cannot be processed due to @declared_attr.cascading; skipping)rWr)rWrD)4r~rrrrrNr=rrrT_produce_column_copiesrupdaterr_rcrtuplerWrr ArgumentErrorr_quietr1rrJr4r*r'rr__get__setattrrrr3roriginal_property descriptordocrZ_collect_annotation_collect_return_annotationr,_warn_for_decl_attributesrrrr r r )rQr~rrrrNr rinherited_table_argsr r  fixed_tabler1basesr class_mappedrGlocally_collected_columnsrr annotationis_dataclass_field check_declrZr\r4collected_annotationr generated_objrYs @rSrz'_ClassScanMapperConfig._scan_attributesshh:C@ (( #88** 00,00 ) !\1 "&"A"A$(("KKK D s?N/H/NL)-)@)@)F &DO,0,G,G.+ -)-/) LL .-  + F o 9   & % ! ' '(A B,- c 9"++00%Ds&  . , I.=N0%Ds&  ),*(3(A(AI,%Ds& &h=(1H!11%Ds&  *<:)4)C)CJ#- *UD$t*,E$'*&7&7%4'"!" $37; 4 %u!,S1#** $}}dD# ?_"# '=> #C8!55=/s3 #.>>#|3!% 37%=!"!$ C 56066s9K ##Cs31 '.c4&> (2#~'F*-((*C'.c4&8!+3 ?$:3$?(2$'$9$9>)"'*nn!$06s9K 'sV^,DE #&)kkCG00 ::<   /z3E + $(< <#:4#F!G! 66tT3G' , T0B#0M 7tSAAA,S1!hhj14(.,,j$s,0+C+Cj$c,(-D8N0AAM 0;-77 " {;9 -8*!--T2 -58,T2Gc 9o 9j J$",  rVcrj}|sydjjvr#tjdjddjjvr#tjdjdt j t dfd tjj}|JfdjjDDcgc]F\}}}tj|||jj|t j"H}}}}rZjD]G\}}t%j&djd d j)d |Dd |d ddIi} i} |D]7} t+| dk(r| \} } nt+| dk(r | \} } }|| | <nJ| | | <9| jD]\}}t-j||j/|j| ycc}}}w)N__dataclass_fields__rz 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'rMzk already defines a '__table__'. ORM Annotated Dataclasses do not support a pre-existing '__table__' elementcf|jur"d|jvr|j|y)NrxT)r~rr)r0rrQwarn_for_non_dc_attrss rS_allow_dataclass_fieldzT_ClassScanMapperConfig._setup_dataclasses_transforms.._allow_dataclass_field;s7"1*2C2L2LL%&78??DrVc3K|]L\}\}}}}}}} ||r6| jvst j|ts ||r|n||fNywrO)rrr) rBr0raw_annor mapped_annois_dcrrrr{rQs rSrEzG_ClassScanMapperConfig._setup_dataclasses_transforms..Psz0 C$&%)#/@At888&11#68J/#.KH$0sAAzWhen transforming z to a dataclass, attribute(s) , c32K|]}t|ywrOrp)rBr0s rSrEzG_ClassScanMapperConfig._setup_dataclasses_transforms..xs Csc Cz 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.z2.0dcmxcoder/)r0rIrrrWr)rr~rrr collections defaultdictrQrrritemsr"!_get_arguments_for_make_dataclassrrr3NO_ARGr1warn_deprecatedjoinrrf_apply_dataclasses_to_any_class)rQrrr0annor field_listr non_dc_attrsrdefaultsitemrtpspeckvr{rzs` @@rSrz4_ClassScanMapperConfig._setup_dataclasses_transformssw$($B$B!(  "TXX%6%6 6)) #22  $((++ +)) #&&  !, 7 7 =  )2   "22488<"""0//5570% % ,T+  ? ? ))--c6==A  % % N !',,. !$$( 3$yy Cl CCDE2()*5 6   &  #D4yA~bTa!%b$!%u "K  #NN$ $DAq DHHa # $ ,, %txx U% s:A H2c tj|}i}|jD]K\}}t|||r4t |||j |t dddd}|s<|\}}|||<G|||<M|S)NFrequiredrs expect_mapped)r1rLrr,r+rXr) r~klassrCnew_annorrr extractedinner_s rS(_update_annotations_for_non_mapped_classz?_ClassScanMapperConfig._update_annotations_for_non_mapped_classs..u5 / 5 5 7 , D*$Z>3$$J"',"'  (HE1%*HTN!+! ,"rVc |j||d}|tjurtj}|rt |dd}t d||_nd} ||fi|jDcic]\}}|tjur|dk7r||!c}} |r ||`y||_yycc}}w#ttf$r.}tjd|jd|dd|d}~wwxYw#|r ||`w||_wwxYw) Nrvr[rzAPython dataclasses error encountered when creating dataclass for z: zN. Please refer to Python dataclasses documentation for additional information.dcter)_assert_dc_argumentsr3rr dataclassrrr[r TypeError ValueErrorrrrJ) r~rruse_annotationsrvrestoredrrexs rSrz6_ClassScanMapperConfig._apply_dataclasses_to_any_classsJ   !:;67KL  .!,!6!6   u&7>H$()9?$KE !H 5  !: ? ? A1 -!7K2KqD *#-,4E) ' :& ))!!& 2"&<<     #-,4E) s6B65$B0B60B66C3)C..C33C66Dchd}t|j|}|r:djdt|D}t j d|dy)N>rqrorprrrurtrsrvrc3"K|]}| ywrOrP)rBargs rSrEz>_ClassScanMapperConfig._assert_dc_arguments..sJ3sgJJs zDataclass argument(s) z are not accepted)set differencersortedrrc)r~ argumentsalloweddisallowed_argsmsgs rSrz+_ClassScanMapperConfig._assert_dc_argumentss`  i.33G< ))J&2IJJC##(->?  rVc ||jvr|j|S|y|j}|j}|:t|tj }| xr| xr|duxst|t }d}t||j|j|t|d||xr| } | y| \} } |mt| sbt| D]T} t| ddr#t|j| |jd} t| tsE| j!}Vt#|| | |||j|x|j|<} | S)NFrT) check_genericcheck_for_plain_string)include_generic)rrrrrFieldr%r+r~rXrr:r8r9r.r$found_in_pep593_annotatedr)rQrrrrrrallow_unmappedrsrrrelemcas rSrjz*_ClassScanMapperConfig._collect_annotations 4-- ---d3 3  !99 88  !+J 8I8I!J &&&&$&@!*.>? #+  HH  ( (   1'< ,<    8A5#%5  j1L&M !<= BT3)44(, Dd$;06Cu-OG .R,+rVcV|j}|j}|j}|j}t |dd}|j }|xs |j }t|j}t|D]} | |vr || } t| r;| jr"tjd|jzt|| } nOt| t r?| j"|ur1| j$| k7r"t'| j$} t)|| | t| t*r@t-| dk(r2t| dt.t0frtjd| z|rt| t2j4rt| t.t6fs5|j9| |j;|| | |s t)|| | \| dvrt=j>d | d t| t.r(tA| |jBjE| | nFt| tFrS|jHjE| d \} } } }}}}| | |r% | jK||jL||| | | | | n|sJt| t6r| jTr|st| tVrgd}ngd}|Dchc]-}t| jXd|tZj\ur|/}}t=j^d| d|ddjatcd|Ddt| tVtdfs |j9| t)|| | | || <y#tN$r}tQjRd | d |d}~wwxYwcc}w)NrTrzUse of @declared_attr.cascading only applies to Declarative 'mixin' and 'abstract' classes. Currently, this flag is ignored on mapped class %srrzIgnoring 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^zAttribute 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.)rodefault_factoryrpdefaultdataclass_metadata)rorrpr dataclasses_r^r_z# includes dataclasses argument(s): rc32K|]}t|ywrOr)rBas rSrEzF_ClassScanMapperConfig._extract_mappable_attributes..Ys/FAQ/FrzF but class does not specify SQLAlchemy native dataclass configuration.)3r~rrrNrrrrrrQrrr1rrrrrr0r!rfrbrr4r%rrr#poprlrr_undefer_column_namerrr$rrr NameErrororm_excMappedAnnotationError_has_dataclass_argumentsr'_attribute_optionsr3rrcrrr&)rQr~r our_stuffrN late_mappedrexpect_annotations_wo_mappedlook_for_dataclass_thingsrrrrrrrrrrneargnamesrargss rSrz3_ClassScanMapperConfig._extract_mappable_attributesshh#88OO 00- -d &*%D%D" & L$*L*L %%))G)G$H!*+v !A$$(+E$U+##II $xx( Q5"45LL+IIN( 2Q&5%(J!OuQx&2B)CD BDEF *z{((0 0C'DE %((+..sAu="CE* m#--&qc*''E6*$t))--eU;e%<=2266F"(3$"*))4%- 6&!22 $ $ # 2 ! 0 * ; , . <;;e%8966 9%e^<(H(H&.  !& % 8 8L:L $*== 1  "//)!Ku=8#yy/F/F)FGHIII&enl-KL -003 Q.  IaLmv !^ )&")"?"?#00:|z5_ClassScanMapperConfig._setup_table..s/"5"5a";rV)r0z8Can't add additional column %r when specifying __table__)r~rr rrrrrrr rrr5r1unbound_method_to_callablerrrWrbrrr_metadata_for_clsrMrcontains_columnrrcr0r)rQrr~rYr rrrr table_clsrtable_kwrrsorted_columnsrrs @rSr!z#_ClassScanMapperConfig._setup_tables(hh5s; NN __ (( 00..--c2 MM !</ sO, K33C4E4EF " $(*+-!*d3#-#J6%jnd;-7"-=z"~(D#-D , 0 01D E  0=H_-'++N;+/HZ(!'$;"..!..w7(  #  4!}== 22#T]]_E(11E)A 772215!//356UU;!rVcdt|jdd}||S|jjS)Nr^)rr~rr^)rQrmetas rSrz(_ClassScanMapperConfig._metadata_for_clss1#*488Z#F  K##,, ,rVc|j}|jdd}|tg}|jD]2}t|}|t |s||vs"|j |4|rKt |dkDrtjd|d||d}nt|tr |j}||_ |j}d|vr|jd|_yyy)NrrrrrrMT)r~rrrrrrrrrr(rrrr r )rQrr~rrrrrs rSrz/_ClassScanMapperConfig._setup_inheriting_mappershh==T2  !O .6u=9,Q/A_4L#**1-  .'!+111+1- & )H  (( l *t~~/EDK0F *rVc |j}|j}|j}|j}|0|j$t |dst jd|z|jrqt|j}|J|j}|j}|<|rt jd|r@t|ts0t jd|jd|jd|D]} |J| j|jvr\|j| j| ur;t jd| d|jd |j| jd | j rt jd t"rt|tsJ|j%| |||us|j'| yyy) 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 TablezColumn '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.)rr~rrrrrrrrrcrr5rrrJ primary_keyr append_column_refresh_for_new_column) rQrrr~rrinherited_mapper_or_configinherited_tableinherited_persist_selectablers rSr"z0_ClassScanMapperConfig._setup_inheriting_columns$s   hh__ 00 M %+C@))&(+,  ]])? )N &-9 998DDO*== )}++) $J,N++$$(HH:]4==/J33 ,C*666xx?#4#44*,,SXX6#=$!//&se;s||nE / 1 1#(( ;<=44!//3 %)/5AAA#11#64@8O4LL7#rVcr|j}|jr|j}ni}|r|j|d|vrt|}|j|ddD]+}||vs||}|jj ||||<-d|vrCt j|dDcgc]}|jj || c}|d<d|vrJ|d}t|tr |j}||jurtjd|dz|jr|j|d<|jr>|j dds+t|jd}|j}d|vr|j D chc]} | |j"vr | j$c} j'|j(xsd x|d<} | j+|j,D cgc]} | j$c} t/|j1D]b\}} t| t2j4s!||j6vs0|j6|} t| t8sP| g| j:z||<d|j=} || d<| |_ycc}wcc} wcc} w) Nr)version_id_colpolymorphic_onrrz:mapper inherits argument given for non-inheriting class %sconcreteFexclude_propertiesrP) rr rarWrrr1to_listrr(rrrrr-rr_columntopropertyr0unionrdifference_updaterrQrr2r_propsr)columnscopyr )rQrrr rr inherits_arginherited_mapperrrrrpresult_mapper_argss rS_prepare_mapper_argumentsz0_ClassScanMapperConfig._prepare_mapper_argumentsls__   --/KK    y ) ; &j)J   k,7 86 >AKN!%!3!3!7!71!= A > K 'k-&@A*""&&q!,*K &  $&z2L,/+22 4==0--"-j"9; ==&*mmK # ==U!C ,DMM5A .::O $;6-..J 0 B BBEEJ%(;;ArB C 014F #44$($9$9:qQUU:z//12 :3!#z'?'?@(///(//2A!!^4*- (9 1  :)--/+5<(-q*<J ;s0#J*!J/5J4c4|j|t|jdr4tdt j |jj }nt}|jd||j|jfi|jS)N__mapper_cls__zType[Mapper[Any]]rL) rrr~rr1rrr(rrr rs rSrz_ClassScanMapperConfig.maps &&y1 488- .#//HH++J J%%  txx!1!1 FT5E5E F  rV) rr>rrrr=rrrr`rk)r~rrWCallable[[str, Any], bool])r~rrW2Callable[[], Iterable[Tuple[str, Any, Any, bool]]])rrrW!Mapping[str, _AnnotationScanType])rrnrrrrrWrl)rrnrWrl) rrIrr7rrrzOptional[bool]rrrWzOptional[_CollectedAnnotation])r~rr0rIrrrWrl) rrr1rrnrrrrWz0Dict[str, Union[Column[Any], MappedColumn[Any]]]rO)rrrWrl)rzClassManager[Any]rWrCrr)"rJrXrYr is_deferredr[rrr=rNrecompilerOrTrrrrrrrjrlr`rr r!rrr"rr1rrrrs@rSrrsI.K::((%%,,22++""((::!! L#'' $$<< ! K+K+K+ K+ $ K+ ! K+Z&"J'J' #J'X(RZZ8B*B* ;B*Hl!\ v p *225#62525; 25  2525h$FF,F% F & F  F (FP  #& +.   X, X, "< X,  X,%X, :X,tI!V9vL!\-BFPO.b.2__  rVrctjj}||}t|r't ||j s|j |S|SrO)r1rrcallablerr@)field_metadatar;decl_apirs rSrIrIsJ~~**H 2 3C}ZX-C-CD%%c** rVceZdZUded<dZej Zded<ddZe ddZ e jddZ e dd Z e dd Ze dd Ze dd Ze d dd Zej$fdfd ZxZS)rzweakref.ref[Type[Any]]_clsTz?util.OrderedDict[weakref.ref[Type[Any]], _DeferredMapperConfig]_configscyrOrPrs rSrz$_DeferredMapperConfig._early_mappings rVc"|jSrO)r!rgs rSr~z_DeferredMapperConfig.clssyy{rVctj||j|_||j|j<yrO)weakrefref_remove_config_clsr!r")rQrs rSr~z_DeferredMapperConfig.clss,KK(?(?@ #' dii rVc<|jj|dyrO)r"r)r~r's rSr(z(_DeferredMapperConfig._remove_config_clss d#rVcht|txr!tj||jvSrO)rrr&r'r"r~rs rSr{z_DeferredMapperConfig.has_clss(&$'OGKK,?3<<,OOrVct|dr|jtj|dtj|d)N_sa_raise_deferred_configrzG has a deferred mapping on it. It is not yet usable as a mapped class.)r)rr-rUnmappedClassError_safe_cls_namer+s rSraise_unmapped_for_clsz,_DeferredMapperConfig.raise_unmapped_for_clssN 66 7  , , .(( //789JJ  rVcF|jtj|SrO)r"r&r'r+s rSr|z$_DeferredMapperConfig.config_for_cls s||GKK/00rVc|jjDcgc]}||jfc}Dcgc]\}}|t||r|}}}|s|S|Dcic]}|j|c}g}D]'|j fdj D)t tj||Scc}wcc}}wcc}w)Nc3:K|]}|vr |fywrOrP)rBbase_cls all_m_by_clsm_clss rSrEz9_DeferredMapperConfig.classes_for_base..s0|+h'e)<=s) r"valuesr~rextendrrQr6sort) r~r4r9mrclasses_for_basetuplesr5r6s @@rSr;z&_DeferredMapperConfig.classes_for_base s 14 0C0C0EF1QJF 4JtX$>   # #*:;Qq; LN! E MM %   K$$V-=>??!G ._table_or_raise7sC",,.||#))=bkk_M;; rVT)replace_existingN)rBrrWr5)rrrr4rrrL add_propertyr&rrr'rr0r!r __setattr___expire_memoizations)r~r0r mapped_clsrCmprrs rS_add_attributerJ*ss||#4c:   eV $ e , J ' 5 5 6   ! ! . .sE : | ,00B11 AQ$S#. +99$:))66sC@  A%%223; ~ .  ! ! . .sE : 1 2uyyC7G$EII.E  ! ! . .sE :   S#u -  ! ! 6 6 8 c5)rVcd|jvr||jvrtd|jjsu|j|}t |t t ttfr tdtj||td|jjytj||y)NrLrz?O  a# $rVrcR|j||_|j||_yyrO)r0r)r0columns rSrrs) zz  {{ rV)r~rrWz3Optional[Union[_DeferredMapperConfig, Mapper[Any]]])r~rrWr)r~rrWr)F)r~rrrIrrrWz Optional[Any])r~rrWzOptional[ClassManager[_O]])rr>r~rrr=rWr) rr>r~rrrrr`rWrK)rrrWr)rrrrIr~rrWr)rrr;rIrWr)r~rr0rIrzMapperProperty[Any]rWrl)r~rr0rIrWrl)rQrrPrrWrl)r0rIrSz Column[Any]rWrl)rrZ __future__rrrrtypingrrrrrr r r r r rrrrrrr&rrrrrr_typingrrrrrrrdescriptor_propsr r! interfacesr"r#r$r%r&r'mapperr(rr)r*r1r+r,r-r.r0sqlr2sql.baser3 sql.schemar4r5r6 util.typingr7r8r9r:r;r<r=r>r?rr@rA sql.elementsrBrCsql.selectablerDrErIr`_TableArgsTyperHr]rnrrrrrrrpreload_modulerrrrrrrIrzrJrNrQrJrrPrVrSrcs/"  +-*" /-)+/($&&$)')-"$$"##&'-*%+ TS! uS#XS#X67 -(2, - ,226 ,@)@   8 ,.38$ $!$+/$$N GG"+G4>GG;; ; ; ;  ;./H0H    &   WWt;!m;!|!:!R ]R j0./ % BE  0 I&2I&X1* 1*1*%81* 1*h#0$&%/!rV