id]}dZddlZddlZddlmZddlmZddlmZddlmZdd lm Z dd l m Z ddl mZ dd l m Z dd l mZdd l mZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddlmZddl mZdxa a!dZ"dZ#dZ$d(dZ%dZ&dZ'Gdd e(Z)Gd!d"e)Z*d#Z+d$Z,d%Z-d&e-_.d'Z/dS))z(Internal implementation for declarative.N)instrumentation) clsregistry)event)exc)util) class_mapper)mapper) mapperlib)synonym)QueryableAttribute)_is_mapped_class)InspectionAttr)MapperProperty)ColumnProperty)CompositeProperty)Column)Table) expression) topologicalct|rt|St|rt |dSdS)NF) configure)_DeferredMapperConfighas_clsconfig_for_clsrr clss T/opt/cloudlinux/venv/lib/python3.11/site-packages/sqlalchemy/ext/declarative/base.py_declared_mapping_infor %sT$$S))$33C888 #  C51111tc|turdSt|ddr!|jD]}t|}||cSdSt |}||S|S)N __abstract__Tstrict)object_get_immediate_cls_attr __bases__"_resolve_for_abstract_or_classical"_dive_for_classically_mapped_class)rsup classicals rr)r)0s} f}}tsN4@@@ =  C4S99C 46s;;   Jr!ct|drdStj|}||S|jD]}t |}||cSdS)N_decl_class_registry)hasattrrmanager_of_classr(r*)rmanagerr+r s rr*r*Csp s*++t.s33G =  C7<?sN4@@@Y66666r!ct|tr.t|ddrtjd|d|ddSdS)N _cascadingFz1@declared_attr.cascading is not supported on the z attribute on class z5. This attribute invokes for subclasses in any case.T) isinstancer?r6r warn)objnamers r_check_declared_props_nocascaderKs_#())  3 e , ,  II.2TT3338    tur!cleZdZedZdZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdS)r@ct|ddpt|d}|rt}nt}||||dS)N_sa_decl_prepare_nocascadeTr$_sa_decl_prepare)r'r/rr@)rcls_rBrC defer_mapcfg_clss rrAz_MapperConfig.setup_mappingsd+ .t   / T- . .   $+GG#Gi'''''r!c||_t||_||_d|_t j|_t|_ i|_ | i|j_ | tj t#j|j|j|||||tjdS#tjwxYwN)rdictrCrBpersist_selectabler OrderedDict propertiessetdeclared_columns column_copies_setup_declared_events_sa_declared_attr_reg_scan_attributesr _CONFIGURE_MUTEXacquirer add_class_extract_mappable_attributes_extract_declared_columns _setup_table_setup_inheritance_early_mappingrelease)selfrPrBrCs r__init__z_MapperConfig.__init__s<%[[ ""&*,, # ##%%% *,& "**,,, 1  !$.$( ; ; ;  - - / / /  * * , , ,        # # % % %    ! ! !  & . . 0 0 0 0 0I & . . 0 0 0 0s /BE E2c.|dSrT)maprhs rrfz_MapperConfig._early_mappings  r!ctjdr%tjtdfd}tjdr'tjtdfd}dSdS)N__declare_last__after_configuredc:jdSrT)rrnrlsrroz>_MapperConfig._setup_declared_events..after_configureds))+++++r!__declare_first__before_configuredc:jdSrT)rrqrlsrrrz?_MapperConfig._setup_declared_events..before_configureds**,,,,,r!)r'rr listens_forr )rhrorrs` rr\z$_MapperConfig._setup_declared_eventss "48-? @ @ ,  v'9 : : , , , ,; : , #48-@ A A -  v': ; ; - - - -< ; - - - - -r!c N|j|j}|j}d}dx}}d}jD]}|uo#t |duot |dd }|s|ur||t|D]y\} } | dkrt| | } |s |r| rfd})| dkrt| | } |s |r| rj }N| dkrct| | } |sO|r| rKj }t|tttdfst!jd|urd}|rr(| j r!t| j!t.s| j"} | x|| <|| <t| t,t.fr| j# | j$| _#b|%|| | {|r|sd}||_&||_'||_(dS)NrNTr$__mapper_args__c,tjSrT)rUrvrsrmapper_args_fnz6_MapperConfig._scan_attributes..mapper_args_fns#'(;#<#< cannot be processed due to @declared_attr.cascading; skippingzJUse of sqlalchemy.util.classproperty on declarative classes is deprecated.))rrCr[r4r r'_produce_column_copiesvarsitemsrKryrzrGtuplerUtyper ArgumentErrorr?r rH__name__rrInvalidRequestErrorr>rF__get__setattrwarn_deprecatedr6r_is_internal_proxyoriginal_property descriptordoc__doc___warn_for_decl_attributes table_args tablenamerx)rhrCr[rxrinherited_table_argsrr8 class_mappedrJrI check_decl oldclasspropretrs @rr^z_MapperConfig._scan_attributessih * ,00 ) K| H| HDC*400</6t   2DOO++D111!$ZZ--//p Hp H c,,,!@T3""J*=<=:======_,,!@T3""J%6l6j6$'$5 ---!@T3""J& 8| 8z 8%(%7 )&d4jj(A  #&"3!0## s??370!LH!#'899 $}}}dddDDD### ?__"#v..?H #C88<H!5< $C):;;5H'1#t7I'J'J +)C)C#u}}!% 37$$%=!"!"!"'*kk#s&;&;)")"5'*n?BBE$K-*<&sV^,DEE2 #&)kCG 66tT3GGGap Hd    J$",r!ctt|tjrtjd|d|ddSdS)Nr|r}zk appears to be a non-schema 'sqlalchemy.sql.column()' object; this won't be part of the declarative mapping)rGr ColumnClauser rH)rhrkeycs rrz'_MapperConfig._warn_for_decl_attributescsU a0 1 1  II33       r!c|j}|j}|j}t|D]\}}t |t rt|||ur-|jrtj d||vrUd|vr|j p||dj vs;| x||<}|j|_t||||||<dS)NzvColumns with foreign keys to other columns must be declared as @declared_attr callables on declarative mixin classes. __table__)rrCr[rrrGrr6 foreign_keysrrrJrcopy_creation_orderr)rhr8rrCr[rJrIcopy_s rr~z$_MapperConfig._produce_column_copieslsh * d))++ ( (ID##v&& (3%%S00% (19 &&5(()TeK.@.BBB14;M#&,/,?E)Cu---"'E$K) ( (r!c|j}|j}|j}t|dd}t |D]}|dvr||}t |t rIt |tr#|jrtj d|jzt||}nNt |tr9|j |ur0|j|kr%t|j}t!|||t |t"rNt%|dkr;t |dt&t(frtj d|zt |t&t(fsV|d s?|||||||st!||||d krt1jd t5j||}|||<dS) NrNTr$)rryrvzUse 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?__metadatazdAttribute name 'metadata' is reserved for the MetaData instance when using a declarative base class.)rrCrXr'listrGr?r<rFr rHr6rclass_rr rrlenrr startswithpoprrrr_deferred_relationship)rhrrC our_stuff late_mappedkvalueprops rrbz*_MapperConfig._extract_mappable_attributess?h O - -d   e: : AEEE!HE%!233 'e]338HI $x( Q5"455 'L++INN  **Q&&&5%(( JJ!OOuQx&.)ABB$ BDEF '?@@ ||D))/IIaLLL2235AAA&/Q...j-. 5c5AADIaLLu: : r!c |jfd|j}tjt }t D] \}}t|ttfr|j D]x}t|tra|j Zt||t|ts ||j|||yt|trSt||||j|||||jkr|= |D][\}}t%|dkrCt'jd|jd|ddt/|d\dS) Nc|jSrTr)rrs rz9_MapperConfig._extract_declared_columns..sy~'Er!rrz On class z, Column object z7 named directly multiple times, only one will be used: z, z$. Consider using orm.synonym instead)rXsortrZ collections defaultdictrYrrrGrrcolumnsrtable_undefer_column_namerJaddrrr rHrBjoinsorted) rhrZname_to_prop_keyrrcolrJkeysrs @rrcz'_MapperConfig._extract_declared_columnssO  EEEEFFF 0&23779??,,-- ' 'FC!n.?@AA '922C!#v..2393D,S#666)!->??@,SX6::3???(,,S111 2 Av&& '$S!,,, (,,S111 $$Q''' !%<<!#*0022  JD$4yy1}} ~~~tttdiit .E.E.E.E H  r!c|j}|j}|j}|j}|j}t |dx}|_d}t |drtj|j }nt}d|vr|di} }|r]t|tr|} nEt|tr0t|dtr|dd|d} }n|}|d} | rd | d <|||jgt|t|zRi| x|_}nD|j}|r;|D]8} |j| st'jd | jz9||_dS) Nc|jSrTr)rs rrz,_MapperConfig._setup_table..s A,=r!r __table_cls__rr __autoload__Tautoloadz8Can't add additional column %r when specifying __table__)rrrrCrZrr/r unbound_method_to_callablerrrGrUrgetrrrcontains_columnrrr local_table) rhrrrrCrZr table_clsargstable_kwrrs rrdz_MapperConfig._setup_tableshN _  039 "="=4 4 4  40 3 ( ( 78IJJIII e # #$!#Rh.!*d33.#-#J66.%jnd;;.-7"-=z"~(DD#-D 99^440+/HZ((1 L),--d ;))) )) ME )A 722155!/356U; !r!c |j}|j}|j}|j}g}|jD]K}t |}|t | 't|dds||L|r;t|dkrtj d|d||d|_ nd|_ |.|j 't|dstj d |z|j rt |j }|j}|j } ||rtjd |D]}|j|jvrC|j|j|ur%tjd |d |d |j|jd|jrtjd||| | |ur| |dSdSdS)NrNTr$rzClass z has multiple mapped bases: r __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.zColumn 'r}z! conflicts with existing column ''zDCan't place primary key columns on an inherited class with no table.)rrrrZr(r)r r'appendrrrinheritsrVrrJr primary_key append_column_refresh_for_new_column) rhrrrrZrrinherited_mapperinherited_tableinherited_persist_selectables rrez _MapperConfig._setup_inheritance's h_ 0 # #A2155Ay%"9/### """  !8}}q  --@CXXN%QKDMM DM M %+C@@&)&(+,  ]! P5dmDD .:O+;+N (}+) *PPAv!222*,QV499$!// !qq###'8'@'@'@B }!/3$11!4444@8OO4LLQOOOC! P! P }PPr!cd |j}|jr|}ni}dD],}||vr&||}|j||||<-d|vs Jd|jr |j|d<|jr|ddst |j j}d|vrct fd|jD j pdx|d<}| d |j Dt|D]Y\}}t|t js | jvr0 j|}t|t&r|g|jz||<Z|} || d <| |_dS) N)version_id_colpolymorphic_onrz=Can't specify 'inherits' explicitly with declarative mappingsconcreteFexclude_propertiesc0g|]}|jv |jSr)_columntopropertyr).0rrs r z;_MapperConfig._prepare_mapper_arguments..s4$4$FFFFFFr!rcg|] }|j Srr)rrs rrz;_MapperConfig._prepare_mapper_arguments..s:::qQU:::r!rX)rXrxr[rrr rrYrunionrdifference_updaterZrrrGr ColumnElement_propsrrr mapper_args) rhrXrrvrrrpresult_mapper_argsrs @r_prepare_mapper_argumentsz'_MapperConfig._prepare_mapper_argumentsrs'_   --//KKK6 > >AKN!%!3!7!71!=!= A k ) ) ) J * ) ) = 4&*mK # =" :U!C!C" : 6dmDD .:O#;66IL!0!2JJ %(;ArBB C 014F#44::D$9:::z//1122 : :3!#z'?@@(///(/2A!!^44:*- (9 1 (--//+5<(-r!c|t|jdrtj|jj}nt }||j|jfi|jx|j_ }|j` |S)N__mapper_cls__) rr/rr rrr rr __mapper__r])rh mapper_clsmp_s rrkz_MapperConfig.maps &&((( 48- . . 8'JJ J$.J Hd&% % *.*:% %  c H * r!N)r __module__ __qualname__ classmethodrArirfr\r^rr~rbrcrdrerrkrr!rr@r@s ( ([ ("1"1"1H - - -K-K-K-Z(((6D D D L%%%N1!1!1!fIPIPIPV:.:.:.x     r!r@ceZdZejZdZedZej dZe dZ e dZ e dZ e dZe d d Zfd ZxZS) rcdSrTrrls rrfz$_DeferredMapperConfig._early_mappings r!c*|SrT)_clsrls rrz_DeferredMapperConfig.clssyy{{r!cbtj||j|_||j|j<dSrT)weakrefref_remove_config_clsr_configs)rhrs rrz_DeferredMapperConfig.clss,K(?@@ #' di   r!c<|j|ddSrT)rr)rrs rrz(_DeferredMapperConfig._remove_config_clss  d#####r!cbt|totj||jvSrT)rGrrrrrrs rrz_DeferredMapperConfig.has_clss*&$''OGK,?,?3<,OOr!ct|dr|tj|dtj|z)N_sa_raise_deferred_configzOClass %s has a deferred mapping on it. It is not yet usable as a mapped class.)msg)r/rorm_excUnmappedClassError_safe_cls_namers rraise_unmapped_for_clsz,_DeferredMapperConfig.raise_unmapped_for_clss] 66 7 7 /  , , . . .( (*1*@*H*HI    r!c@|jtj|SrT)rrrrs rrz$_DeferredMapperConfig.config_for_clss|GK//00r!Tc@fdd|jDD}|s|Std|Dg}D])|fdjD*t t j||S)Nc>g|]\}}|t||SrT)r3)rmrPbase_clss rrz:_DeferredMapperConfig.classes_for_base..s<   4JtX$>$> r!c g|] }||jf Srrrr s rrz:_DeferredMapperConfig.classes_for_base..sFFF1QJFFFr!c3(K|] }|j|fVdSrTrr s r z9_DeferredMapperConfig.classes_for_base..s(AA1QUAJAAAAAAr!c3@K|]}|v|fVdSrTr)rr  all_m_by_clsm_clss rrz9_DeferredMapperConfig.classes_for_base..sI|++h'e)<=++++r!)rvaluesrUextendr(rrr)rr rclasses_for_basetuplesrrs ` @@rrz&_DeferredMapperConfig.classes_for_bases    FF 0C0C0E0EFFF     $# #AA0@AAAAA !  E MM %     K$V-=>>???r!c|j|jdtt|SrT)rrrsuperrrk)rh __class__s rrkz_DeferredMapperConfig.maps: $)T****D1155777r!)T)rrrr rWrrfpropertyrsetterrrrrrrrk __classcell__)rs@rrrs"t!!H   X Z((Z($$[$PP[P  [ 11[1@@@[@*888888888r!rcd|jvrt|trGt|||j||j||dSt|trm|j D]H}t|tr1|j *t|||j|I|j||dSt|tr0|j|tj ||dSt|trO|j|krDt!|j}|j|tj ||dSt"||||jdSt"|||dS)zadd 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. rN)r5rGrrrrr add_propertyrrrrrrrrr r __setattr___expire_memoizations)rrrrs r_add_attributer ss|## eV $ $ 2 e , , , M ' ' . . . N ' 'U 3 3 3 3 3 ~ . . 2} 5 5c6**5sy/@(c222M//444 N ' 'U 3 3 3 3 3 ~ . . 2 N ' '[7UCC     1 2 2 2uyC7G7GEI&&E N ' '[7UCC        S#u - - - N / / 1 1 1 1 1 c5)))))r!cld|jvr||jvr|jjsz|j|}t|tt t tfrtdt |||j dSt ||dS)Nrz?aaO  a#### $$r!ricB|j||_|j ||_dSdSrT)rrJ)rcolumns rrrPs, z  { r!)F)0rrrsqlalchemy.ormrrrrr ormr rr r r orm.attributesrorm.baserrorm.interfacesrorm.propertiesrrschemarrsqlrrr<r?r r)r*r'rDrKr&r@rr r%r)rrrr!rr5s/.******!!!!!!000000((((((&&&&&&,,,,,,,,,,,,//////%)( !&(D 7 7 7   gggggFgggT?8?8?8?8?8M?8?8?8D"*"*"*J###*$$$&%/!r!