Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/modelcluster/__pycache__/fields.cpython-310.pyc

113 lines
17 KiB
Plaintext
Raw Normal View History

2024-08-27 20:33:44 +02:00
o
<00><><EFBFBD>f<EFBFBD>T<00>@s<>ddlmZddlmZddlmZmZmZddlm Z ddl
m Z m Z ddl mZddl
mZmZddlmZdd lmZd
d <0B>ZGd d <0A>d e<0F>ZGdd<0F>de <0B>Zdd<11>ZGdd<13>de<10>ZGdd<15>de <0C>ZdS)<17>)<01>unicode_literals)<01>checks)<03>IntegrityError<6F> connections<6E>router)<01>CASCADE)<02>
ForeignKey<EFBFBD>ManyToManyField)<01>cached_property)<02>ReverseManyToOneDescriptor<6F>ManyToManyDescriptor)<01>sort_by_fields)<01> FakeQuerySetcs<<00><03><00><00><04>j<01><01>j<02><02>jj}G<00><00><01><02><03>fdd<02>d|<02>}|S)aG
Create a DeferringRelatedManager class that wraps an ordinary RelatedManager
with 'deferring' behaviour: any updates to the object set (via e.g. add() or clear())
are written to a holding area rather than committed to the database immediately.
Writing to the database is deferred until the model is saved.
cs<>eZdZ<02><00>fdd<02>Ze<04>fdd<04><08>Zdd<06>Zdd<08>Z<07>fd d
<EFBFBD>Z<08><04>fd d <0C>Z d d<0E>Z
d"<22><00>fdd<11> Z <0B>fdd<13>Z <0C><03>fdd<15>Z dd<17>Z<0E>fdd<19>Zdd<1B>Zd#<23><03><04>fdd<1F> Z<11><01>fd d!<21>Z<12>ZS)$zIcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManagercst<00><00><01><00>|_||_dS<00>N)<04>super<65>__init__<5F>model<65>instance<63><02>selfr)<02> __class__<5F> rel_model<65><00>U/home/amir/Desktop/saburlyweb/env/lib/python3.10/site-packages/modelcluster/fields.pyrs

zRcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.__init__cs<00>t|jdi<00>vS)N<>_cluster_related_objects)<02>getattrr<00>r<00><01> relation_namerr<00> is_deferring$s<06>zVcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.is_deferringcS<00>.z|jjWStyi}||j_|YSwr<00>rr<00>AttributeError<6F>r<00>cluster_related_objectsrrr<00>_get_cluster_related_objects*<00>
 <02>zfcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager._get_cluster_related_objectscSs|<00><00>Sr)<01>get_live_querysetrrrr<00>get_live_query_set4sz\create_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_live_query_setcs<00>|j<00><01><01>S<00>zb
return the original manager's queryset, which reflects the live database
)r<00> get_querysetr<00><01>original_manager_clsrrr'9<00>z[create_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_live_querysetc sRz|jj<01>}Wnttfy"|jjdurg}n|<00><05>YSYnwt<06>j|<01>S)<02><>
return the current object set with any updates applied,
wrapped up in a FakeQuerySet if it doesn't match the database state
N)rrr"<00>KeyError<6F>pkr'r<00> related_model<65>r<00>results)<02>relatedrrrr*?s  <04><02> zVcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_querysetcSs |<01><00><00><01>Sr)<02>_next_is_sticky<6B>all<6C>r<00>querysetrrr<00>_apply_rel_filtersOs z\create_deferring_foreign_related_manager.<locals>.DeferringRelatedManager._apply_rel_filtersNc s<>|dur|jptj|j|dd<02>}t<04><00><05><00>|<03>}<02>j}<04>j<08>t <09>fdd<04>|D<00><01>}d<05>j
|i}|j di|<06><01>}|D]}|||<08>} t |<08>j
| <09>q;<3B><02> <0A>}
||<04>d|
dfS)Nr<00>rc3s<00>|] }<01>|<01>|fVqdSrr)<02>.0<EFBFBD>inst<73><01> instance_attrrr<00> <genexpr>^s<02>zrcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_prefetch_queryset.<locals>.<genexpr><3E>%s__inFr)<0E>_dbr<00> db_for_readrrr*<00>using<6E>get_local_related_value<75>get_foreign_related_value<75>dict<63>name<6D>filter<65>setattr<74>related_query_name) r<00> instancesr8<00>db<64> rel_obj_attr<74>instances_dict<63>query<72>qs<71>rel_objr<00>
cache_name)r<00> rel_fieldr=r<00>get_prefetch_querysetWs z_create_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_prefetch_querysetcsR|<00><00>}z|<01>}W|Sty(|jjdurg}nt|<00><05><00>}||<01><Y|Sw)<02>,
return the mutable list that forms the current in-memory state of
this relation. If there is no such list (i.e. the manager is returning
querysets from the live database instead), one is created, populating it
with the live database state
N)r%r/rr0<00>listr'<00>rr$<00> object_listrrr<00>get_object_listjs
 <0C>  
<02>zYcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.get_object_listcs<>|<00><00>}|D])}d}t|<02>D]\}}||kr|||<d}nq|s&|<02>|<03>t|<03>jj|j<06>q<06>jjrCt |<02>dkrEt
|<02>jj<08>dSdSdS)<05>{
Add the passed items to the stored object set, but do not commit them
to the database
FT<46>N) rY<00> enumerate<74>appendrI<00>fieldrGr<00>_meta<74>ordering<6E>lenr <00>r<00> new_items<6D>items<6D>target<65> item_matched<65>i<>item)rr4rr<00>add~s<02>
<08>zMcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.addc<00>&|<00><00>}<02>fdd<02>|D<00>|dd<03><dS)<04><>
Remove the passed items from the stored object set, but do not commit the change
to the database
c<00>g|]}|<01>vr|<01>qSrr<00>r;rh<00><01>items_to_removerr<00>
<listcomp><3E><00>zdcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.remove.<locals>.<listcomp>N<>rY<00>rrordrrnr<00>remove<76><00>zPcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.removecs&|<00><00>}<02>jdi|<01><01>}|<02>|<03>|S)Nr)rYr1r])r<00>kwargsrd<00>new_item)r4rr<00>create<74>s
zPcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.createcS<00>|<00>g<00>dS<00>zU
Clear the stored object set, without affecting the database
N<><01>setrrrr<00>clear<61>r-zOcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.clearTFcsZt|<01>}|<00><01>}|D] }t|<05>jj|j<05>q
<EFBFBD>jjr't|<01>dkr't |<01>jj<07>||<04><dS)Nr[)
rVr%rIr^rGrr_r`rar )r<00>objs<6A>bulkr}r$<00>obj)rr4rrrr|<00>s zMcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.setc s<>|jjdur td<02><00><01>z|jj<03>}Wn ttfy YdSw<00>|j<00>}t|<02><07><00>}|D]
}||vr8|<04><08>q.|D] }|j |dd<04>q;|jj<03>=dS)z<>
Apply any changes made to the stored object set to the database.
Any objects removed from the initial set will be deleted entirely
from the database.
N<>-Cannot commit relation %r on an unsaved modelF)r)
rr0rrr"r/rVr*<00>deleteri)r<00> final_items<6D>original_manager<65>
live_itemsrh)r,rrr<00>commit<69>s  <02>
 <02>zPcreate_deferring_foreign_related_manager.<locals>.DeferringRelatedManager.commitr<00>TF)<14>__name__<5F>
__module__<EFBFBD> __qualname__r<00>propertyrr%r(r'r*r9rTrYrirtrxr}r|r<><00> __classcell__r<00>r,rSrr4r<00>rr<00>DeferringRelatedManagers"
 
r<>)<05>get_accessor_namer^r1<00>_default_managerr)r4r,<00>
superclassr<EFBFBD>rr<>r<00>(create_deferring_foreign_related_managersGr<47>c@<00>*eZdZddd<03>Zdd<05>Zedd<07><00>ZdS) <09>ChildObjectsDescriptorNcC<00>|dur|S|<00>|<01>Sr<00><01>child_object_manager_cls<6C>rr<00> instance_typerrr<00>__get__<5F><00>
zChildObjectsDescriptor.__get__cC<00>|<00>|<01>}|<03>|<02>dSr<00>r<>r|<00>rr<00>value<75>managerrrr<00>__set__<5F><00>
zChildObjectsDescriptor.__set__cCst|j|j<02>Sr)r<><00>rel<65>related_manager_clsrrrrr<><00>sz/ChildObjectsDescriptor.child_object_manager_clsr<00>r<>r<>r<>r<>r<>r
r<>rrrrr<><00><00>

r<>cs,eZdZeZ<04>fdd<02>Z<05>fdd<04>Z<06>ZS)<05> ParentalKeycs"|<02>dt<01>t<02>j|i|<02><01>dS)N<> on_delete)<04>
setdefaultrrr)r<00>argsrvr<>rrr<00>s zParentalKey.__init__c s<>ddlm}t<02>jd i|<01><01>}t|jjt<07>r8t|jj|<02>s8|<03> t
j ddj |jjj jd|jjjd<06>|dd<08><04>|j<05><10>d krK|<03> t
j d
d |d d<08><04>|S)Nr)<01>ClusterableModelz9ParentalKey must point to a subclass of ClusterableModel.zHChange {model_name} into a ClusterableModel or use a ForeignKey instead.<2E>.)<01>
model_namezmodelcluster.E001)<03>hintr<74><00>id<69>+z5related_name='+' is not allowed on ParentalKey fieldsz-Either change it to a valid name or remove itzmodelcluster.E002r)<11>modelcluster.modelsr<73>r<00>check<63>
isinstance<EFBFBD> remote_fieldr<00>type<70>
issubclassr]r<00>Error<6F>formatr_<00> app_labelr<6C>r<>)rrvr<><00>errorsr<73>rrr<><00>s. <04><04><04> <04><04> zParentalKey.check)r<>r<>r<>r<><00>related_accessor_classrr<>r<>rrr<>rr<><00>s r<>csR|j}|j<01>|<02><02><00>|<02><03><00>|j<04><02>jj}|j<07>G<00><00><01><02><03><04>fdd<02>d|<03>}|S)Ncs<>eZdZd<1E><00><03>fdd<03> Z<03>fdd<05>Zdd<07>Zdd <09>Z<06><03>fd
d <0B>Zd<1E><00><02><05>fd d <0A> Zdd<0F>Z <09>fdd<11>Z
<EFBFBD>fdd<13>Z dd<15>Z d<1F><03>fdd<19> Z dd<1B>Z<0E>fdd<1D>Z<0F>ZS) zRcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManagerNcs t<00><00><01><00>|_<02>|_||_dSr)rrr<00>throughrr)rr<00> rel_throughrrr+s

z[create_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.__init__cs
<00>|j<00>Srr:rr+rr<00>get_original_manager1s
zgcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_original_managercSs |<00><00><00><01>Sr))r<>r*rrrrr'4s zdcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_live_querysetcSr rr!r#rrrr%:r&zocreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager._get_cluster_related_objectsc sPz|jj<01>}Wnttfy"|jjr|<00><05>YS<00>j<06><07>YSwt<08>|<01>S)r.) rrr"r/r0r'<00>objects<74>nonerr2<00>rrrrr*Ds <02>
z_create_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_querysetcs<>|dur t<00><00><01>}|j|dd<02>|<02>|jp|j<04>}d<03>|i}|<02><05>jd i|<03><01>}|jj<08> <09><07><01><01>j
jj <0B>t |j <00><00>jj<0F>|j<10><02>fdd<05><08>jD<00>d<06>}|<02>fdd<08><08><00>fd d<08>d
<EFBFBD>d
fS) Nrr:r@cs*i|]}d|jd<01><01><00><01>|j<01>f<00>qS)<02>_prefetch_related_val_%sz%s.%s)<02>attname<6D>column<6D>r;<00>f)<02>
join_table<EFBFBD>qnrr<00>
<dictcomp>fs
<08><06>z|create_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_prefetch_queryset.<locals>.<dictcomp>)<01>selectcst<00>fdd<02><08>jD<00><01>S)Nc3s <00>|] }t<00>d|j<00>VqdS)r<>N)rr<>r<><00><01>resultrrr?ls
<02><0E>
<EFBFBD><EFBFBD><EFBFBD>create_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_prefetch_queryset.<locals>.<lambda>.<locals>.<genexpr>)<02>tuple<6C>local_related_fieldsr<73>)<01>fkr<6B>r<00><lambda>ls <08>zzcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_prefetch_queryset.<locals>.<lambda>cst<00><01>fdd<02><08>jD<00><01>S)Nc3s$<00>|] }|<01>t<01>|j<02><02><00>VqdSr)<03>get_db_prep_valuerr<>r<>)<02>
connectionr<rrr?ps
<02><12>
<EFBFBD>r<EFBFBD>)r<><00>foreign_related_fields<64>r<)r<>r<>r<>rr<>ps<08>Fr)rr*<00>
_add_hintsrCrAr5rHr<>r_<00> get_fieldr<00>db_tablerrL<00>ops<70>
quote_name<EFBFBD>extrar<61>)rrKr8rO)r<00>query_field_namer<00>source_field_name)r<>r<>r<>r<>rrTUs(
 


<EFBFBD>
 <04>zhcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_prefetch_querysetcSs|<01><00>Sr)r5r7rrrr9yszecreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager._apply_rel_filterscs@|<00><00>}z|<01>}W|Styt|<00><03><00>}||<01><Y|Sw)rU)r%r/rVr'rWrrrrY}s
 <0C> 
<02>zbcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.get_object_listcs<>|<00><00>}|D]+}|jdurtd|<00><01>d}t|<02>D]\}}||kr)|||<d}nq|s1|<02>|<03>q<06>jjrEt|<02>dkrGt|<02>jj<06>dSdSdS)rZNzb"%r" needs to have a primary key value before it can be added to a parental many-to-many relation.FTr[) rYr0<00>
ValueErrorr\r]r_r`rar rb)rrrri<00>s&
<06><02>
<02><08>zVcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.addcSryrzr{rrrrr}<00>r-zXcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.clearTFcsft|<01>}|rt|d<00><00>s|<00><02>}|<04>|<01>dS|<00><04>}<05>jjr-t|<01>dkr-t|<01>jj<06>||<05><dS)Nrr[) rVr<>r<>r|r%r_r`rar )rr~rr}r<>r$r<>rrr|<00>s
 zVcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.setcrj)rkcrlrrrmrnrrrp<00>rqzmcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.remove.<locals>.<listcomp>Nrrrsrrnrrt<00>ruzYcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.removec s<>|jjs
td<01><00><01>z|jj<03><00>Wn ttfyYdSw|<00><06>}t|<01><08><00><01><01>fdd<04><08>D<00>}<02>fdd<04><08>D<00>}|rB|j |<02>|rI|j
|<03>|jj<03>=dS)zZ
Apply any changes made to the stored object set to the database.
r<>Ncrlrrrm)r<>rrrp<00>rqzmcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.commit.<locals>.<listcomp>crlrrrm)r<>rrrp<00>rq) rr0rrr"r/r<>rVr*rtri)rr<>ro<00> items_to_addr)r<>r<>rr<><00>s  <02> 

zYcreate_deferring_forward_many_to_many_manager.<locals>.DeferringManyRelatedManager.commitrr<>)r<>r<>r<>rr<>r'r%r*rTr9rYrir}r|rtr<>r<>r<00>r,r<>rr<>rr<>r<>r<00>DeferringManyRelatedManager*s 
$  
r<EFBFBD>)r^rGrJ<00>m2m_field_namerr<>rr<>)r<>r,rSr<>r<>rr<>r<00>-create_deferring_forward_many_to_many_manager!sBr<42>c@r<>) <09>ParentalManyToManyDescriptorNcCr<>rr<>r<>rrrr<><00>r<>z$ParentalManyToManyDescriptor.__get__cCr<>rr<>r<>rrrr<><00>r<>z$ParentalManyToManyDescriptor.__set__cCs|j}t||j<02>Sr)r<>r<>r<>)rr<>rrrr<><00>s z5ParentalManyToManyDescriptor.child_object_manager_clsrr<>rrrrr<><00>r<>r<>cs,eZdZeZdZ<05>fdd<03>Zdd<05>Z<07>ZS)<06>ParentalManyToManyFieldTc s0t<00>j||fi|<03><01>t||j|<00>|j<05><01>dSr)r<00>contribute_to_classrIrGr<>r<>)r<00>clsrGrvr<>rrr<>sz+ParentalManyToManyField.contribute_to_classcCst||j<01><02><02>Sr)rr<>r6)rr<>rrr<00>value_from_object sz)ParentalManyToManyField.value_from_object) r<>r<>r<>r<>r<><00>_need_commit_after_assignmentr<74>r<>r<>rrr<>rr<>s
  r<>N)<1B>
__future__r<00> django.corer<00> django.dbrrr<00>django.db.modelsr<00>django.db.models.fields.relatedrr <00>django.utils.functionalr
r r <00>modelcluster.utilsr <00>modelcluster.querysetrr<>r<>r<>r<>r<>r<>rrrr<00><module>s"     W*N