§ <ˆjK9ãóž—dZddlmZddlmZddlmZddlmZddlmZddlmZddlm Z dd lm Z dd l m Z d dlmZd d lmZd d lm Z ejej d ¬¦«Gd„de j¦«¦«¦«ZGd„dej¦«ZGd„de¦«ZGd„dee ¦«Zd„ZGd„de¦«ZdS)z‚Dynamic collection API. Dynamic collections act like Query() objects for read operations and support basic add/delete mutation. é)Ú attributes)Úexc)Ú interfaces)Ú object_mapper)Úobject_session)Ú properties)Ú strategies)Úutil)ÚQueryé)ÚlogÚdynamic)Úlazycó—eZdZd„ZdS)Ú DynaLoaderc ó`—d|_|jstjd|jz¦«‚|jjt jt jfvrtj d|jz¦«tj |j|dt|jj|jj|jj¬¦«dS)NTztOn relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False.z¬On relationship %s, 'dynamic' loaders cannot be used with many-to-one/one-to-one relationships and/or uselist=False. This warning will be an exception in a future release.)Ú useobjectÚ impl_classÚ target_mapperÚorder_byÚ query_class)Úis_class_levelÚuselistrÚInvalidRequestErrorÚparent_propertyÚ directionrÚ ONETOMANYÚ MANYTOMANYr Úwarnr Ú_register_attributeÚDynamicAttributeImplÚmapperrr)Úselfr"s úM/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/orm/dynamic.pyÚinit_class_attributezDynaLoader.init_class_attribute s×€Ø"ˆÔØŒ|ð ÝÔ)ð!à#'Ô#7ñ8ñôð ð Ô !Ô +Ý Ô Ý Ô !ð4 ð ð õ ŒIð"ð%)Ô$8ñ9ñ ô ð õ Ô&Ø Ô Ø ØÝ+ØÔ.Ô5ØÔ)Ô2ØÔ,Ô8ð ñ ô ð ð ð óN)Ú__name__Ú __module__Ú __qualname__r%©r&r$rrs#€€€€€ð ð ð ð ð r&rcóZ‡—eZdZdZdZdZdZdZ dˆfd„ Ze j fd„Z de j fd„Z ejd„¦«Zejd„¦«Z dd „Z dd „Zd „Zde j dddfd „Zd „Zd„Ze j fd„Ze j fd„Ze j fd„Ze j fd„Ze j fd„Ze j fd„ZˆxZS)r!TFNc óü•—tt|¦«j||||fi|¤Ž||_||_|st |_dSt| ¦«vr ||_dSt|¦«|_dS©N) Úsuperr!Ú__init__rrÚ AppenderQueryrÚ AppenderMixinÚmroÚmixin_user_query) r#Úclass_ÚkeyÚ typecallableÚdispatchrrrÚkwÚ __class__s €r$r/zDynamicAttributeImpl.__init__Es�ø€ð 3�Õ" DÑ)Ô)Ô2Ø �C˜ xð ð Ø35ð ð ð ð+ˆÔØ ˆŒ Øð =Ý,ˆDÔ Ð Ð Ý ˜kŸošoÑ/Ô/Ð /Ð /Ø*ˆDÔ Ð Ð å/° Ñ<Ô<ˆDÔ Ð Ð r&có–—|tjzs%| |tj¦«jS| ||¦«Sr-)rÚSQL_OKÚ_get_collection_historyÚPASSIVE_NO_INITIALIZEÚ added_itemsr)r#ÚstateÚdict_Úpassives r$ÚgetzDynamicAttributeImpl.get\sM€Ø�Ô*Ñ*ð 1Ø×/Ò/Ø•zÔ7ñôäð ð×#Ò# D¨%Ñ0Ô0Ð 0r&có�—|tjzs| ||¦«jS| ||¦«}|jSr-)rr;r<r>Úadded_plus_unchanged)r#r?r@Ú user_datarAÚhistorys r$Úget_collectionz#DynamicAttributeImpl.get_collectiondsK€ð�Ô*Ñ*ð 0Ø×/Ò/°°wÑ?Ô?ÔKÐ Kà×2Ò2°5¸'ÑBÔBˆGØÔ/Ð /r&có@—tj|tj¦«Sr-)rÚEventÚ OP_APPEND©r#s r$Ú _append_tokenz"DynamicAttributeImpl._append_tokenqó€åÔ ¥jÔ&:Ñ;Ô;Ð;r&có@—tj|tj¦«Sr-)rrIÚ OP_REMOVErKs r$Ú _remove_tokenz"DynamicAttributeImpl._remove_tokenurMr&có—|€| ||¦«}| |¦«|jjD]}||||p|j¦«}Œ|jr-|�-| tj|¦«|d¦«dSdSdS©NT) Ú_modified_eventÚ add_addedr7ÚappendrLÚ trackparentÚ sethasparentrÚinstance_state©r#r?r@ÚvalueÚ initiatorÚcollection_historyÚfns r$Úfire_append_eventz&DynamicAttributeImpl.fire_append_eventys³€ð Ð %Ø!%×!5Ò!5°e¸UÑ!CÔ!CÐ à×$Ò$ UÑ+Ô+Ð+à”-Ô&ð Fð FˆBØ�B�u˜e YÐ%D°$Ô2DÑEÔEˆEˆEà Ô ð M Ð 1Ø × Ò �jÔ7¸Ñ>Ô>ÀÀtÑ LÔ LÐ LÐ LÐ Lð Mð MÐ 1Ð 1r&có —|€| ||¦«}| |¦«|jr+|�)| t j|¦«|d¦«|jjD]}||||p|j¦«ŒdS)NF) rSÚ add_removedrVrWrrXr7ÚremoverPrYs r$Úfire_remove_eventz&DynamicAttributeImpl.fire_remove_event‡s¥€ð Ð %Ø!%×!5Ò!5°e¸UÑ!CÔ!CÐ à×&Ò& uÑ-Ô-Ð-à Ô ð N Ð 1Ø × Ò �jÔ7¸Ñ>Ô>ÀÀuÑ MÔ MÐ Mà”-Ô&ð >ð >ˆBØ ˆBˆu�e˜YÐ<¨$Ô*<Ñ =Ô =Ð =Ð =ð >ð >r&cóÒ—|j|jvrt||¦«|j|j<| ||tj¦«d||j<|j|jSrR)r5Úcommitted_stateÚCollectionHistoryrSrÚ NEVER_SET)r#r?r@s r$rSz$DynamicAttributeImpl._modified_event•sc€à Œ8˜5Ô0Ð 0Ð 0Ý.?ÀÀeÑ.LÔ.LˆEÔ ! $¤(Ñ +à ×Ò˜e T­:Ô+?Ñ@Ô@Ð@ðˆˆdŒh‰ØÔ$ T¤XÔ.Ð.r&c ó`—|r|j|jurdS|r|€dS|} t| ¦«} |jr(tj| ||¦«¦«} | ||¦«} |js| j} n|  | j¦«} tj} |   | ¦«}| | ¦«  |¦«}|   |¦«}| D] }||vr|  |||d| ¬¦«Œ!|D]}|  |||d| ¬¦«ŒdS)N)r\) Ú parent_tokenÚlistÚ has_identityr Ú IdentitySetrBrSr>ÚunionÚ intersectionÚ differencer^rb)r#r?r@rZr[rAÚ check_oldÚpopÚ_adaptÚiterableÚ new_valuesÚold_collectionr\ÚidsetÚ constantsÚ additionsÚremovalsÚmembers r$ÚsetzDynamicAttributeImpl.set¡s’€ð ð ˜Ô/°4Ô3DÐDÐDØ ˆFà ð �5�=Ø ˆFàˆÝ˜(‘^”^ˆ Ø Ô ð FÝ!Ô-¨d¯hªh°u¸eÑ.DÔ.DÑEÔEˆNà!×1Ò1°%¸Ñ?Ô?ÐØÔ!ð Ø/Ô;ˆNˆNà+×1Ò1Ø"Ô.ñôˆNõÔ ˆØ"×/Ò/° Ñ;Ô;ˆ Ø�E˜*Ñ%Ô%×0Ò0°Ñ;Ô;ˆ Ø!×,Ò,¨YÑ7Ô7ˆà ð ð ˆFؘÐ"Ð"Ø×&Ò&ØØØØØ'9ð 'ñôðøðð ð ˆFØ × "Ò "ØØØØØ#5ð #ñ ô ð ð ð ð r&có—t¦«‚r-©ÚNotImplementedError)r#ÚargsÚkwargss r$ÚdeletezDynamicAttributeImpl.delete×s€Ý!Ñ#Ô#Ð#r&có —td¦«‚)Nz7Dynamic attributes don't support collection population.r|)r#r?r@rZs r$Úset_committed_valuez(DynamicAttributeImpl.set_committed_valueÚs€Ý!Ø Hñ ô ð r&cóV—| ||¦«}| ¦«Sr-)r<Ú as_history©r#r?r@rAÚcs r$Ú get_historyz DynamicAttributeImpl.get_historyßs%€Ø × (Ò (¨°Ñ 8Ô 8ˆØ�|Š|‰~Œ~Ðr&cóP—| ||¦«}d„|jD¦«S)Ncó:—g|]}tj|¦«|f‘ŒSr*)rrX)Ú.0Úxs r$ú z8DynamicAttributeImpl.get_all_pending..çs(€ÐGÐGÐG°a•Ô*¨1Ñ-Ô-¨qÐ1ÐGÐGÐGr&)r<Ú all_itemsr…s r$Úget_all_pendingz$DynamicAttributeImpl.get_all_pendingãs/€ð × (Ò (¨°Ñ 8Ô 8ˆØGÐG¸1¼;ÐGÑGÔGÐGr&có¸—|j|jvr|j|j}nt||¦«}|jr!|tjzrt|||¬¦«S|S)N)Úapply_to)r5rdrerjrÚINIT_OK)r#r?rAr†s r$r<z,DynamicAttributeImpl._get_collection_historyésf€Ø Œ8�uÔ,Ð ,Ð ,ØÔ% d¤hÔ/ˆAˆAå! $¨Ñ.Ô.ˆAà Ô ð  7­ZÔ-?Ñ#?ð Ý$ T¨5¸1Ð=Ñ=Ô=Ð =àˆHr&cóB—||ur| ||||¦«dSdSr-)r^©r#r?r@rZr[rAs r$rUzDynamicAttributeImpl.appendôó7€ð ˜DÐ Ð Ø × "Ò " 5¨%°¸ Ñ BÔ BÐ BÐ BÐ Bð !Ð r&cóB—||ur| ||||¦«dSdSr-)rbr“s r$razDynamicAttributeImpl.removeúr”r&có:—| |||||¬¦«dS)N)rA)rar“s r$rpzDynamicAttributeImpl.pops&€ð � Š �E˜5 %¨¸Gˆ ÑDÔDÐDÐDÐDr&r-)r'r(r)Ú uses_objectsÚdefault_accepts_scalar_loaderÚsupports_populationÚ collectionrr/rÚ PASSIVE_OFFrBr=rGr Úmemoized_propertyrLrPr^rbrSrzr€r‚r‡rŽr<rUrarpÚ __classcell__©r9s@r$r!r!>s&ø€€€€€Ø€LØ$)Ð!ØÐØ€JØ€Gðð=ð=ð=ð=ð=ð=ð.)3Ô(>ð1ð1ð1ð1ðØÔ0ð 0ð 0ð 0ð 0ð Ôð<ð<ñÔð<ð Ôð<ð<ñÔð<ðBFð Mð Mð Mð MðBFð >ð >ð >ð >ð /ð /ð /ð"ØÔ&ØØ Øð4ð4ð4ð4ðl$ð$ð$ð ð ð ð 1;Ô0Fððððð %/Ô$DðHðHðHðHð 6@Ô5Kð ð ð ð ð7AÔ6LðCðCðCðCð7AÔ6LðCðCðCðCð7AÔ6LðEðEðEðEðEðEðEðEr&r!cón‡—eZdZdZˆfd„Zd„Zeed„¦«Zd„Zd„Zd„Z d d„Z d „Z d „Z d „Z ˆxZS) r1Nc󨕗tt|¦« |jd¦«| ¦«x|_}||_t|¦«}|j|jj }|j �|j j |j f|_ | |d¬¦«|_|jjr|jj|_dSdS)NF)Úalias_secondary)r.r1r/rÚobjÚinstanceÚattrrÚ_propsr5Ú secondaryr"Ú selectableÚ _from_objÚ _with_parentÚ _criterionrÚ _order_by)r#r¤r?r£r"Úpropr9s €r$r/zAppenderMixin.__init__ s¼ø€Ý �m˜TÑ"Ô"×+Ò+¨DÔ,>ÀÑEÔEÐEØ#(§9¢9¡;¤;Ð.ˆŒ ˜ØˆŒ å˜xÑ(Ô(ˆØŒ}˜TœYœ]Ô+ˆà Œ>Ð %ð#œkÔ4°d´nÐEˆDŒNà×+Ò+¨HÀeÐ+ÑLÔLˆŒà Œ9Ô ð 0Ø!œYÔ/ˆDŒNˆNˆNð 0ð 0r&có¾—t|j¦«}|�+|jr$|jr|j|vr| ¦«t j|j¦«sdS|Sr-)rr£Ú autoflushÚflushÚorm_utilrj©r#Úsesss r$ÚsessionzAppenderMixin.sessionsf€Ý˜dœmÑ,Ô,ˆà Ð Ø”ð à”ð ð”  Ð%Ð%à �JŠJ‰LŒLˆLÝÔ$ T¤]Ñ3Ô3ð Ø�4àˆKr&có—dSr-r*)Úsr‹s r$úzAppenderMixin.-s€¨T€r&cóô—|j}|€Nt|j t j|j¦«tj¦«j¦«St|  |¦«¦«Sr-) r³Úiterr¤r<rrXr£r=r>Ú_cloner±s r$Ú__iter__zAppenderMixin.__iter__/sl€ØŒ|ˆØ ˆ<ÝØ” ×1Ò1ÝÔ-¨d¬mÑ<Ô<ÝÔ4ñôôñ ôð õ˜Ÿ š  DÑ)Ô)Ñ*Ô*Ð *r&có—|j}|€O|j tj|j¦«tj¦« |¦«S| |¦«  |¦«Sr-) r³r¤r<rrXr£r=Úindexedr¹Ú __getitem__)r#Úindexr²s r$r½zAppenderMixin.__getitem__;sm€ØŒ|ˆØ ˆ<Ø”9×4Ò4ÝÔ)¨$¬-Ñ8Ô8ÝÔ0ñô÷Šg�e‰nŒnð ð —;’;˜tÑ$Ô$×0Ò0°Ñ7Ô7Ð 7r&cóþ—|j}|€Nt|j t j|j¦«tj¦«j¦«S|  |¦«  ¦«Sr-) r³Úlenr¤r<rrXr£r=r>r¹Úcountr±s r$rÁzAppenderMixin.countEsp€ØŒ|ˆØ ˆ<ÝØ” ×1Ò1ÝÔ-¨d¬mÑ<Ô<ÝÔ4ñôôñ ôð ð—;’;˜tÑ$Ô$×*Ò*Ñ,Ô,Ð ,r&có€—|j}|€Ht|¦«}|€7tjdt j|¦«›d|jj›d�¦«‚|jr"| |jj |¬¦«}n|  |jj ¦«}|j |_ |j |_ |j |_ |S)NzParent instance zh is not bound to a Session, and no contextual session is established; lazy load operation of attribute 'z' cannot proceed)r³)r£rÚorm_excÚDetachedInstanceErrorr°Ú instance_strr¤r5rrÚqueryrªr¨r«)r#r²r£rÆs r$r¹zAppenderMixin._cloneQsÀð”=ˆØ ˆ<Ý! (Ñ+Ô+ˆD؈|ÝÔ3Ð3õ Ô,¨XÑ6Ô6Ð6Ð6¸¼ ¼ ¸ ¸ ðGñôðð Ô ð 8Ø×$Ò$ T¤YÔ%<ÀdÐ$ÑKÔKˆEˆEà—J’J˜tœyÔ6Ñ7Ô7ˆEàœ?ˆÔØœ.ˆŒØœ.ˆŒàˆ r&có¦—|D]M}|j tj|j¦«tj|j¦«|d¦«ŒNdSr-©r¤rUrrXr£Ú instance_dict)r#ÚiteratorÚitems r$ÚextendzAppenderMixin.extendks`€Øð ð ˆDØ ŒI× Ò ÝÔ)¨$¬-Ñ8Ô8ÝÔ(¨¬Ñ7Ô7ØØñ  ô ð ð ð ð r&cóœ—|j tj|j¦«tj|j¦«|d¦«dSr-rÈ©r#rËs r$rUzAppenderMixin.appendtóL€Ø Œ ×ÒÝ Ô % d¤mÑ 4Ô 4Ý Ô $ T¤]Ñ 3Ô 3Ø Ø ñ  ô ð ð ð r&cóœ—|j tj|j¦«tj|j¦«|d¦«dSr-)r¤rarrXr£rÉrÎs r$razAppenderMixin.remove|rÏr&r-)r'r(r)rr/r³Úpropertyrºr½rÁr¹rÌrUrar�ržs@r$r1r1sÑø€€€€€Ø€Kð0ð0ð0ð0ð0ð, ð ð ðˆh�wÐ 1Ð 1Ñ2Ô2€Gð +ð +ð +ð8ð8ð8ð -ð -ð -ððððð4ððð ð ð ð ð ð ð ð ð ð r&r1có—eZdZdZdS)r0zBA dynamic query that supports basic collection storage operations.N)r'r(r)Ú__doc__r*r&r$r0r0…s€€€€€ØLÐLÐLÐLr&r0cóJ—d|jz}t|t|fd|i¦«S)zAReturn a new class with AppenderQuery functionality layered over.ÚAppenderr)r'Útyper1)ÚclsÚnames r$r3r3‰s*€à ˜œ Ñ $€DÝ �•} cÐ*¨]¸CÐ,@Ñ AÔ AÐAr&có^—eZdZdZd d„Zed„¦«Zed„¦«Zd„Zd„Z d„Z d „Z dS) rezDOverrides AttributeHistory to receive append/remove events directly.Ncób—|r]t||¦« d¦«}tj|¦«|_|j|_|j|_d|_dStj¦«|_tj¦«|_tj¦«|_d|_dS)NFT)r0r®r ÚOrderedIdentitySetÚunchanged_itemsr>Ú deleted_itemsÚ_reconcile_collection)r#r¤r?r�Úcolls r$r/zCollectionHistory.__init__’sŸ€Ø ð /Ý   uÑ-Ô-×7Ò7¸Ñ>Ô>ˆDÝ#'Ô#:¸4Ñ#@Ô#@ˆDÔ Ø'Ô3ˆDÔ Ø!)Ô!7ˆDÔ Ø)-ˆDÔ &Ð &Ð &å!%Ô!8Ñ!:Ô!:ˆDÔ Ý#Ô6Ñ8Ô8ˆDÔ Ý#'Ô#:Ñ#<Ô#<ˆDÔ Ø).ˆDÔ &Ð &Ð &r&cóZ—t|j |j¦«¦«Sr-)rir>rlrÜrKs r$rDz&CollectionHistory.added_plus_unchangedŸs$€å�DÔ$×*Ò*¨4Ô+?Ñ@Ô@ÑAÔAÐAr&cóŠ—t|j |j¦« |j¦«¦«Sr-)rir>rlrÜrÝrKs r$r�zCollectionHistory.all_items£sA€åØ Ô × "Ò " 4Ô#7Ñ 8Ô 8× >Ò >ØÔ"ñ ô ñ ô ð r&cóf—|jrY|j |j¦«}|j |j¦«}|j |¦«}n|j|j|j}}}t jt|¦«t|¦«t|¦«¦«Sr-) rÞr>rnrÜrÝrmrÚHistoryri)r#ÚaddedÚdeletedÚ unchangeds r$r„zCollectionHistory.as_history«s�€Ø Ô %ð ØÔ$×/Ò/°Ô0DÑEÔEˆEØÔ(×5Ò5°dÔ6JÑKÔKˆGØÔ,×7Ò7¸Ñ@Ô@ˆIˆIðÔ ØÔ$ØÔ"ð&�9ˆEõ Ô!¥$ u¡+¤+­t°I©¬ÅÀWÁ Ä ÑNÔNÐNr&có6—t|j¦«|Sr-)rir>)r#r¾s r$r¼zCollectionHistory.indexed¸s€Ý�DÔ$Ñ%Ô% eÔ,Ð,r&có:—|j |¦«dSr-)r>Úadd©r#rZs r$rTzCollectionHistory.add_added»s€Ø Ô×Ò˜UÑ#Ô#Ð#Ð#Ð#r&có„—||jvr|j |¦«dS|j |¦«dSr-)r>rarÝrérês r$r`zCollectionHistory.add_removed¾sJ€Ø �DÔ$Ð $Ð $Ø Ô × #Ò # EÑ *Ô *Ð *Ð *Ð *à Ô × "Ò " 5Ñ )Ô )Ð )Ð )Ð )r&r-) r'r(r)rÓr/rÑrDr�r„r¼rTr`r*r&r$rere�s¦€€€€€ØNÐNð /ð /ð /ð /ððBðBñ„XðBðð ð ñ„Xð ð Oð Oð Oð-ð-ð-ð$ð$ð$ð*ð*ð*ð*ð*r&reN)rÓÚrrrÃrrrrr r r°rÆr r Ú class_loggerÚRelationshipPropertyÚ strategy_forÚAbstractRelationshipLoaderrÚ AttributeImplr!Úobjectr1r0r3rer*r&r$úrós0ððððÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐØÐÐÐÐÐðÔØ Ô ×-Ò-°9Ð-Ñ=Ô=ð ð ð ð ð �Ô6ñ ô ñ>Ô=ñÔð ð>EEðEEðEEðEEðEE˜:Ô3ñEEôEEðEEðP| ð| ð| ð| ð| �Fñ| ô| ð| ð~MðMðMðMðM�M 5ñMôMðMðBðBðBð 3*ð3*ð3*ð3*ð3*˜ñ3*ô3*ð3*ð3*ð3*r&