§ <ˆjÄ5ãó`—dZddlmZddlZddlmZddlmZddlmZdd lm Z ej e ¦«Z d „Z d Zd ZGd „de¦«ZGd„de¦«Ze¦«e_Gd„de¦«ZGd„de¦«ZGd„de¦«ZGd„de¦«ZGd„dee¦«ZdS)z@Path tracking utilities, representing mapper graph traversals. é)ÚchainNé)Ú class_mapperé)Úexc)Ú inspection)Úutilcó6—t |¦«S©N)Ú PathRegistryÚ deserialize©Úpaths úS/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/orm/path_registry.pyÚ_unreduce_pathrs€Ý × #Ò # DÑ )Ô )Ð)óÚ*Ú _sa_defaultcó$—eZdZdZdZdZdZd„Zd„Zd„Z d„Z dd „Z d „Z e d „¦«Zd „Zd „Zd„Zd„Zed„¦«Zed„¦«Zed„¦«Zed„¦«Zd„Zed„¦«Zed„¦«Zed„¦«Zd„Zd„Zd„ZdS)r aÜRepresent query load paths and registry functions. Basically represents structures like: (, "orders", , "items", ) These structures are generated by things like query options (joinedload(), subqueryload(), etc.) and are used to compose keys stored in the query._attributes dictionary for various options. They are then re-composed at query compile/result row time as the query is formed and as rows are fetched, where they again serve to compose keys to look up options in the context.attributes dictionary, which is copied from query._attributes. The path structure has a limited amount of caching, where each "root" ultimately pulls from a fixed registry associated with the first mapper, that also contains elements for each of its property keys. However paths longer than two elements, which are the exception rather than the rule, are generated on an as-needed basis. ©Fcó–— |duo|j|jkS#t$r(tjdt |¦«z¦«YdSwxYw)Nú1Comparison of PathRegistry to %r is not supportedF©rÚAttributeErrorr ÚwarnÚtype©ÚselfÚothers rÚ__eq__zPathRegistry.__eq__>si€ð Ø Ð$Ð@¨¬°e´jÒ)@Ð @øÝð ð ð Ý ŒIØCݘ‘;”;ñ ñ ô ð ð�5�5ð  øøøó‚–.AÁAcó–— |dup|j|jkS#t$r(tjdt |¦«z¦«YdSwxYw)NrTrrs rÚ__ne__zPathRegistry.__ne__Hsh€ð ؘD�=Ð; D¤I°´Ò$;Ð ;øÝð ð ð Ý ŒIØCݘ‘;”;ñ ñ ô ð ð�4�4ð  øøør!cóX—t d|||¦«||||jf<dS)Nzset '%s' on path '%s' to '%s')ÚlogÚdebugÚ natural_path©rÚ attributesÚkeyÚvalues rÚsetzPathRegistry.setRs3€Ý � Š Ð1°3¸¸eÑDÔDÐDØ/4ˆ �C˜Ô*Ð+Ñ,Ð,Ð,rcóz—t d|||¦«| ||jf|¦«dS)Nz$setdefault '%s' on path '%s' to '%s')r%r&Ú setdefaultr'r(s rr.zPathRegistry.setdefaultVs?€Ý � Š Ð8¸#¸tÀUÑKÔKÐKØ×Ò˜s DÔ$5Ð6¸Ñ>Ô>Ð>Ð>Ð>rNcó0—||jf}||vr||S|Sr )r'r(s rÚgetzPathRegistry.getZs)€Ø�DÔ%Ð&ˆØ �*РРؘc”?Ð "àˆLrcó*—t|j¦«Sr ©Úlenr©rs rÚ__len__zPathRegistry.__len__as€Ý�4”9‰~Œ~Ðrcó*—t|j¦«Sr r2r4s rÚlengthzPathRegistry.lengthds€å�4”9‰~Œ~Ðrc#ó„K—|j}tdt|¦«d¦«D]}||||dzfV—ŒdS)Nrrr)rÚranger3)rrÚis rÚpairszPathRegistry.pairshsXèè€ØŒyˆÝ�q�#˜d™)œ) QÑ'Ô'ð 'ð 'ˆAØ�q”'˜4  A¡œ;Ð&Ð &Ð &Ð &Ð &ð 'ð 'rc󪇗ˆfd„tdt‰j¦«d¦«D¦«D]!}|jr| |¦«rdSŒ"dS)Ncó*•—g|]}‰j|‘ŒSrr)Ú.0r:rs €rú z0PathRegistry.contains_mapper..nsø€ÐNÐNÐN¨Q˜DœI aœLÐNÐNÐNrrrTF)r9r3rÚ is_mapperÚisa)rÚmapperÚ path_mappers` rÚcontains_mapperzPathRegistry.contains_mappermseø€ØNÐNÐNÐNµ%¸½3¸t¼y¹>¼>È1Ñ2MÔ2MÐNÑNÔNð ð ˆKØÔ$𠨯ª¸Ñ)@Ô)@ð Ø�t�tøà�5rcó—||jf|vSr r)rr)r*s rÚcontainszPathRegistry.containsts€Ø�T”YР:Ð-Ð-rcó:—t| ¦«ffSr )rÚ serializer4s rÚ __reduce__zPathRegistry.__reduce__ws€Ý §¢Ñ 0Ô 0Ð2Ð2Ð2rc óú‡—ttd„ˆfd„tdt‰¦«d¦«D¦«D¦«ˆfd„tdt‰¦«d¦«D¦«dgz¦«¦«S)Ncó—g|] }|j‘Œ Sr)Úclass_)r>Úms rr?z0PathRegistry._serialize_path..~s€ÐMÐMÐM˜a�”ÐMÐMÐMrcó •—g|] }‰|‘Œ Srr©r>r:rs €rr?z0PathRegistry._serialize_path..~sø€Ð#LÐ#LÐ#L° D¨¤GÐ#LÐ#LÐ#Lrrrcó*•—g|]}‰|j‘ŒSr)r*rOs €rr?z0PathRegistry._serialize_path..sø€Ð=Ð=Ð= ��a””Ð=Ð=Ð=rr)ÚlistÚzipr9r3)Úclsrs `rÚ_serialize_pathzPathRegistry._serialize_pathzsŠø€åÝ ØMÐMÐ#LÐ#LÐ#LÐ#LµU¸1½cÀ$¹i¼iÈÑ5KÔ5KÐ#LÑ#LÔ#LÐMÑMÔMØ=Ð=Ð=Ð=¥e¨A­s°4©y¬y¸!Ñ&<Ô&<Ð=Ñ=Ô=ÀÀÑFñ ô ñ ô ð rcón—ttd„|D¦«Ž¦«}|r|d€ |dd…}|S)Ncón—g|]2\}}t|¦«|�t|¦«j|ndf‘Œ3Sr )rÚattrs)r>Úmclsr*s rr?z2PathRegistry._deserialize_path..‡s[€ðððñ"˜˜cõ % TÑ*Ô*à˜?õ% TÑ*Ô*Ô0°Ô5Ð5à!ð ðððréÿÿÿÿr)Útupler©rSrÚps rÚ_deserialize_pathzPathRegistry._deserialize_pathƒs[€å Ý ððð&*ðñôð ñ ô ˆð ð ��2”�Ø�!�B�$”ˆA؈rcó^‡‡—ˆfd„ˆfd„| ¦«D¦«D¦«S)NcóN•—g|]!\\}}}|‰ |¦«f|f‘Œ"Sr)rT©r>r*rr+rSs €rr?z7PathRegistry.serialize_context_dict..˜sIø€ð ð ð á"‘ ��d˜Uð�3×&Ò& tÑ,Ô,Ð -¨uÐ 5ð ð ð rcó\•—g|](\}}t|t¦«r|d‰v¯$||f‘Œ)S)r)Ú isinstancerZ)r>ÚkÚvÚtokenss €rr?z7PathRegistry.serialize_context_dict..šsJø€ð'ð'ð'á�A�qݘa¥Ñ'Ô'ð'ð-.¨a¬D°F¨N¨Nð�A�à,:¨N¨Nr)Úitems)rSÚdict_res` `rÚserialize_context_dictz#PathRegistry.serialize_context_dict–sZøø€ð ð ð ð ð'ð'ð'ð'à!ŸKšK™MœMð'ñ'ô'ð ñ ô ð rcóD‡—tjˆfd„|D¦«¦«S)Nc3óp•K—|]0\\}}}|t‰ |¦«¦«f|fV—Œ1dSr )rZr]r`s €rú z8PathRegistry.deserialize_context_dict..£s_øèè€ð ð á"‘ ��d˜Uð•5˜×.Ò.¨tÑ4Ô4Ñ5Ô5Ð 6¸Ð >ð ð ð ð ð ð r)r Ú OrderedDict)rSÚ serializeds` rÚdeserialize_context_dictz%PathRegistry.deserialize_context_dict¡s>ø€åÔð ð ð ð à&0ð ñ ô ñ ô ð rcó:—|j}| |¦«Sr )rrT)rrs rrHzPathRegistry.serialize¨s€ØŒyˆØ×#Ò# DÑ)Ô)Ð)rcó^—|€dS| |¦«}| |¦«Sr )r]Úcoercer[s rr zPathRegistry.deserialize¬s/€à ˆ<Ø�4Ø × !Ò ! $Ñ 'Ô 'ˆØ�zŠz˜!‰}Œ}Ðrcód—|jrt|j|¦«St|j|¦«Sr )r@ÚCachingEntityRegistryÚrootÚSlotsEntityRegistry)rSrBs rÚ per_mapperzPathRegistry.per_mapper³s1€à Ô ð 9Ý(¨¬°6Ñ:Ô:Ð :å& s¤x°Ñ8Ô8Ð 8rcó:—tjd„||j¦«S)Ncó—||Sr r©ÚprevÚnexts rúz%PathRegistry.coerce..¼ó €¨d°4¬j€r)r Úreducert)rSÚraws rrqzPathRegistry.coerceºs€åŒ{Ð8Ð8¸#¸s¼xÑHÔHÐHrcóî—| dtz¦«rt||¦«S| dtz¦«rt|j|¦«St jd|z¦«‚)Nú:zinvalid token: %s)ÚendswithÚ_WILDCARD_TOKENÚ TokenRegistryÚ_DEFAULT_TOKENrtrÚ ArgumentError)rÚtokens rr‡zPathRegistry.token¾so€Ø �>Š>˜#¥Ñ/Ñ 0Ô 0ð AÝ   uÑ-Ô-Ð -Ø �^Š^˜C¥.Ñ0Ñ 1Ô 1ð AÝ  ¤¨EÑ2Ô2Ð 2åÔ#Ð$7¸%Ñ$?Ñ@Ô@Ð @rcó:—tjd„|j|¦«S)Ncó—||Sr rrys rr|z&PathRegistry.__add__..Çr}r)r r~rrs rÚ__add__zPathRegistry.__add__Æs€ÝŒ{Ð8Ð8¸%¼*ÀdÑKÔKÐKrcó0—|jj›d|j›d�S)Nú(ú))Ú __class__Ú__name__rr4s rÚ__repr__zPathRegistry.__repr__És€Øœ>Ô2Ð2Ð2°D´I°I°IÐ>Ð>rr )r�Ú __module__Ú __qualname__Ú__doc__Ú __slots__Úis_tokenÚis_rootr r#r,r.r0r5Úpropertyr7r;rDrFrIÚ classmethodrTr]rhrnrHr rvrqr‡rŠr�rrrr r s瀀€€€ððð2€Ià€HØ€Gððððððð5ð5ð5ð?ð?ð?ððððððððððñ„Xðð'ð'ð'ð ððð.ð.ð.ð3ð3ð3ðð ð ñ„[ð ðððñ„[ðð$ð ð ñ„[ð ðð ð ñ„[ð ð *ð*ð*ðððñ„[ðð ð9ð9ñ„[ð9ð ðIðIñ„[ðIðAðAðAðLðLðLð?ð?ð?ð?ð?rr có,—eZdZdZdxZZdZdZdZd„Z dS)Ú RootRegistryzXRoot registry, defers to mappers so that paths are maintained per-root-mapper. rFTcó—|jSr )Ú_path_registry©rÚentitys rÚ __getitem__zRootRegistry.__getitem__Øs €ØÔ$Ð$rN) r�r‘r’r“rr'Ú has_entityÚis_aliased_classr–rŸrrrršršÍsI€€€€€ððð ЀDˆ<Ø€JØÐØ€Gð%ð%ð%ð%ð%rršcó,—eZdZdZd„ZdZdZd„Zd„ZdS)r„©r‡Úparentrr'cób—||_||_|j|fz|_|j|fz|_dSr r£)rr¤r‡s rÚ__init__zTokenRegistry.__init__âs8€ØˆŒ ؈Œ Ø”K 5 (Ñ*ˆŒ Ø"Ô/°5°(Ñ:ˆÔÐÐrFTc#ó’K—|jjsV|jjsJ|jj ¦«D])}t |jj||j¦«V—Œ*dS|jjrR|jjjrA|V—|jjj D])}t |jj||j¦«V—Œ*dS|V—dSr ) r¤r¡r–rBÚiterate_to_rootr„r‡ržÚ_is_with_polymorphicÚ_with_polymorphic_entities)rÚents rÚgenerate_for_superclassesz'TokenRegistry.generate_for_superclassesìsõèè€ØŒ{Ô+ð °D´KÔ4Gð Ø”{Ô)×9Ò9Ñ;Ô;ð Ið I�Ý# D¤KÔ$6°sÔ$;¸T¼ZÑHÔHÐHÐHÐHÐHð Ið Ið ŒKÔ (ð à” Ô"Ô7ð ðˆJˆJˆJØ”{Ô)ÔDð Ið I�Ý# D¤KÔ$6°sÔ$;¸T¼ZÑHÔHÐHÐHÐHÐHð Ið IðˆJˆJˆJˆJˆJrcó—t¦«‚r )ÚNotImplementedErrorr�s rrŸzTokenRegistry.__getitem__ús€Ý!Ñ#Ô#Ð#rN) r�r‘r’r”r¦r r•r¬rŸrrrr„r„ßsR€€€€€Ø;€Ið;ð;ð;ð €Jà€Hð ð ð ð$ð$ð$ð$ð$rr„có�—eZdZdZd„Zd„Zejd„¦«Zejd„¦«Z e d„¦«Z e d„¦«Z d„Z d S) Ú PropRegistryFcóÈ—tj|d¦«}|}|jr|jr|j|jx}}nº|jrf|jr_|j|jvrQ|d |j¦«}|j|}|jr|j|j}d|_nP|}nM|jrF|jr?|j|jur1|j  |j¦«r|j|j}||_ ||_|j |fz|_ |j |fz|_ d|j |j j zf|_|j j|_d|j f|_dS)NrYTÚloader)rÚinspectr¡Ú_use_mapper_pathr¤Úwith_polymorphic_mappersÚ_entity_for_mapperrBÚ is_unnaturalrAÚproprr'Ú_wildcard_tokenÚ_wildcard_path_loader_keyÚ_default_path_loader_keyÚ _loader_key)rr¤r¸ÚinspÚnatural_parentÚsubclass_entitys rr¦zPropRegistry.__init__sˆ€õÔ! &¨¤*Ñ-Ô-ˆØˆàÔ$ð4 8¨Ô(=ð4 8Ø&,¤m°D´KÔ&@Ð @ˆF�^�^à Ô !ð2 8àÔ-ð2 8ð” ˜tÔ<Ð<Ð<à$ Rœj×;Ò;¸D¼KÑHÔHˆOØ”] ?Ô3ˆFð@Œ}ð (Ø!'¤¨Ô/EÔ!F�Ø$(�Ô!Ð!à!'��à Ô !ð 8àÔ%ð 8ð” Ø”;ððà” —’ ¤ Ñ,Ô,ðð$œ]¨4¬;Ô7ˆNàˆŒ ؈Œ Ø”K 4 'Ñ)ˆŒ Ø*Ô7¸4¸'ÑAˆÔð Ø ŒK˜$œ)Ô3Ñ 3ð* ˆÔ&ð)-¬ Ô(JˆÔ%Ø$ d¤iÐ0ˆÔÐÐrcóJ—d d„|jD¦«¦«S)Nz -> c3ó4K—|]}t|¦«V—ŒdSr )Ústr)r>Úelems rrkz'PropRegistry.__str__..Js(èè€Ð;Ð;¨�3˜t™9œ9Ð;Ð;Ð;Ð;Ð;Ð;r)Újoinrr4s rÚ__str__zPropRegistry.__str__Is%€Ø�{Š{Ð;Ð;°´Ð;Ñ;Ô;Ñ;Ô;Ð;rcó,—t|jd¦«S)NrB)Úhasattrr¸r4s rr zPropRegistry.has_entityLs€å�t”y (Ñ+Ô+Ð+rcó—|jjSr )r¸rBr4s rržzPropRegistry.entityPs €àŒyÔÐrcó—|jSr ©ržr4s rrBzPropRegistry.mapperTs €àŒ{Ðrcó—||jSr rÊr4s rÚ entity_pathzPropRegistry.entity_pathXs€à�D”KÔ Ð rcót—t|ttf¦«r |j|St ||¦«Sr )rbÚintÚslicerrur�s rrŸzPropRegistry.__getitem__\s5€Ý �f�s¥E˜lÑ +Ô +ð 5Ø”9˜VÔ$Ð $å& t¨VÑ4Ô4Ð 4rN)r�r‘r’r·r¦rÅr Úmemoized_propertyr ržr—rBrÌrŸrrrr°r°þs¾€€€€€Ø€LðF1ðF1ðF1ðP<ð<ð<ð Ôð,ð,ñÔð,ð Ôð ð ñÔð ðððñ„Xððð!ð!ñ„Xð!ð5ð5ð5ð5ð5rr°cóX—eZdZdZdZd„Zed„¦«Zed„¦«Zd„Z e Z d„Z dS) ÚAbstractEntityRegistryrTcóp—||_||_|j|_||_|j|fz|_|jrq|js|jrc|j |jdj¦«r|j|jfz|_dS|j|jdjfz|_dS|j|_dS)NrY) r*r¤r¡ržrr·rBrAr')rr¤ržs rr¦zAbstractEntityRegistry.__init__hs̀؈ŒØˆŒ Ø &Ô 7ˆÔ؈Œ Ø”K 6 )Ñ+ˆŒ ð Œ;ð *˜DÔ1ð *°VÔ5Hð *ðŒ}× Ò  Ô!4°RÔ!8Ô!?Ñ@Ô@ð Ø$*Ô$7¸6¼=Ð:JÑ$J�Ô!Ð!Ð!à$*Ô$7ØÔ'¨Ô+Ô2ð;ñ%�Ô!Ð!Ð!ð!%¤ ˆDÔ Ð Ð rcó—|Sr rr4s rrÌz"AbstractEntityRegistry.entity_pathˆs€àˆ rcó>—tj|j¦«jSr )rr³ržrBr4s rrBzAbstractEntityRegistry.mapperŒs€åÔ! $¤+Ñ.Ô.Ô5Ð5rcó—dS)NTrr4s rÚ__bool__zAbstractEntityRegistry.__bool__�s€Øˆtrcót—t|ttf¦«r |j|St ||¦«Sr )rbrÎrÏrr°r�s rrŸz"AbstractEntityRegistry.__getitem__•s5€Ý �f�s¥E˜lÑ +Ô +ð .Ø”9˜VÔ$Ð $å  fÑ-Ô-Ð -rN) r�r‘r’r”r r¦r—rÌrBr×Ú __nonzero__rŸrrrrÒrÒcs‰€€€€€Ø€Ià€Jð*ð*ð*ð@ððñ„Xððð6ð6ñ„Xð6ðððð€Kð.ð.ð.ð.ð.rrÒcó—eZdZdZdS)ru)r*r¤r¡ržrr'N)r�r‘r’r”rrrruruœs€€€€€ð€I€I€Irrucó—eZdZd„Zd„ZdS)rscóŠ—t|ttf¦«r |j|St ||¦«Sr )rbrÎrÏrÚdictrŸr�s rrŸz!CachingEntityRegistry.__getitem__®s;€Ý �f�s¥E˜lÑ +Ô +ð 2Ø”9˜VÔ$Ð $å×#Ò# D¨&Ñ1Ô1Ð 1rcó0—t||¦«x||<}|Sr )r°)rr*Úitems rÚ __missing__z!CachingEntityRegistry.__missing__´s€Ý'¨¨cÑ2Ô2Ð2ˆˆS‰ �Dàˆ rN)r�r‘r’rŸràrrrrsrsªs2€€€€€ð2ð2ð2ð ððððrrs)r“Ú itertoolsrÚloggingÚbaserÚrrr Ú getLoggerr�r%rrƒr…Úobjectr ršrtr„r°rÒrurÝrsrrrúrçsúððððÐÐÐÐÐØ€€€àÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐð€gÔ˜Ñ!Ô!€ð*ð*ð*ð€Ø€ðk?ðk?ðk?ðk?ðk?�6ñk?ôk?ðk?ð\ %ð %ð %ð %ð %�<ñ %ô %ð %ð!�L‘N”N€ Ôð$ð$ð$ð$ð$�Lñ$ô$ð$ð>b5ðb5ðb5ðb5ðb5�<ñb5ôb5ðb5ðJ6.ð6.ð6.ð6.ð6.˜\ñ6.ô6.ð6.ðr ð ð ð ð Ð0ñ ô ð ð ð ð ð ð Ð2°Dñ ô ð ð ð r