srhzM ddlmZddlmZddlmZddlmZddlmZddl m Z ddl Z ddl Z ddl Z ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZ ddlmZn#e$r ddl mZYnwxYw dd lmZ n #e$r dd l!mZ n #e$rdZ YnwxYwYnwxYw ddl"Z"e re j#e"j#kre Z"n #e$re Z"YnwxYw dd l$m%Z%e%j&n #e$rYnwxYw ddl'Z'dd l'm(Z) dd l'm*Z+n #e$rdZ+YnwxYwn#e$rdxZ'Z+YnwxYw dd l,m-Z.e.n #e/$rYnwxYw dd l0m*Z1n #e$rdZ1YnwxYwdZ2 ddl3Z4n #e$r ddl5Z4dZ2n #e$rdZ4YnwxYwYnwxYwdZ6gdZ7 ddlm8Z8n#e$rGddej9Z8YnwxYwej:dZ;e;<e8ej=ddkr$e>Z?e@ZAeBZCejDZDeEZFeGeHeIeJfZKeLddZMnOddlNZN ddlmOZOn#e$r ddl mOZOYnwxYwddlmPZPdZFe@Z?eQZAeRZCe@ZSeTZUeGeHeIeJeVfZKeWeNdZMejXZDd dZYej=dkre j jZZZe j j[Z[ndZZd Z[e"re"j\ej]e@e"j\e j^e@e"j\e je@ej=dkrAd!Z_d"Z`d#Zae"j\e j e_e"jbd$e`e"jbd%eae"j#Zcnd&ZceJd'Zdd(Zed)d*d+d,d-d.d'ZfefZgd/egd0<d1egd2<d3Zhd4Zid5ZjGd6d7ekZlemZneld id8d8d9d9d:d;dd?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVdVdWdXdYdYdZd[d\d\d]d]d^d^d_d_d`d`dadbdcddZoelejpejqejrejsejtejuejvdedfdgdhdi Zweld idjdkdldmdmdmdndndodpdqdqdrdrdsdsdtdtdudvdwdxdydxdzdkdpdpd{d{d|d|d}d{d~dnddZxelddddddddd ZyeldddddZzelddZ{dZ|dZ}dZ~dZdZdZdZdZejdZejdZdZemfdZdZdZdZdZdZdZdZGddemZGddemZGddeZGddemZGddemZGdde jddZdZGddemZdZdZGddemZGddemZGddemZGddemZGddeZGddeZGddemZdZeyjdfdZGddeZGd„demZGdĄdeeZGdƄdeZGdȄdeeZGdʄdeeZGd̄deZGd΄deZGdЄdeZGd҄demZGdԄdemZGdքdeZGd؄deZGdڄdeZGd܄demZGdބdeeZGddeZGddeZdZGddeZGddeZd dZd dZGddeZGddeZGddeZGddeZd dZGddeZeddZGddeZGddeZGddeZGddeZGddeZGddeZȐdZɐdZGddeZGddeZeːdZGd d eZΐd ZGd d eZАdZGddeZҐdZGddeZGddeԦZGddeԦZ֐d dZGdde֦ZGddeeeئZGdde٦ZGdd e٦ZGd!d"e֦ZGd#d$eܦZGd%d&eܦZGd'd(eܦZGd)d*eZGd+d,eZdd.ZGd/d0e/ZGd1d2eZGd3d4eZGd5d6eZGd7d8eZGd9d:eZGd;deZGd?d@eZGdAdBeZGdCdDemZeeeeeeeeeeeedE ZeeZe jdFdGZe jdHdIZe jdJdKZe jdLdMZGdNdOemZGdPdQeejZGdRdSemZGdTdUemZGdVdWeZdXZGdYdZeZGd[d\eZGd]d^eZGd_d`emZGdadbemZGdcddemZGdedfemZGdgdhemZGdidjeZGdkdleZGdmdneZGdodpemZGdqdremZGdsdteZGdudvemZ GdwdxemZ GdydzeZ Gd{d|e Z Gd}d~e Z Gdde ZGdde ZGdde ZGddeZGddeZGddeZGdde ZGddeZGdde ZGdde ZGddeZGddeZGddeZGdde ZGddeeZGddemZGddeZGddeZGdde Z GddeZ!dZ"d dZ#dZ$Gdde Z%Gdde%Z&Gdde%Z'Gdde%Z(dZ)GddeZ*GddeZ+Gdde Z,Gdde Z-Gdde Z.Gdde Z/GddemZ0Gdde Z1GdÄdĐeZ2GdńdƐe1Z3GdDŽdȐe1Z4GdɄdʐe1Z5Gd˄demZ6Gd̈́demZ7GdτdemZ8GdфdҐe8Z9Gdӄde/Z:GdՄd֐e;Z<GdׄdemZ=GdلdeeGdۄdeZ?Gd݄dސe Z@d߄ZAGddemZBGddeBeզZCGddeBZDGddeDeڦZEdZFGddeDeۦZGGddeGZHGddeBZIGddeIeݦZJGddeIeަZKGddeIeߦZLGddeGZMdZNGddeZOGddeOZPGddePZQGddeQZRGddePZSGddeOZTGdde jddZUdZVd ZWdS() bisect_left) bisect_rightcontextmanager)deepcopywraps)isclassN)Mapping)dbapi2)compat) extensions)errors) register_uuidFTz3.17.9)KAnyFieldAsIs AutoField BareField BigAutoField BigBitFieldBigIntegerFieldBinaryUUIDFieldBitField BlobField BooleanFieldCaseCast CharFieldCheckchunkedColumn CompositeKeyContextDatabase DatabaseError DatabaseProxy DataError DateField DateTimeField DecimalFieldDeferredForeignKeyDeferredThroughModel DJANGO_MAP DoesNotExist DoubleFieldDQEXCLUDEDFieldFixedCharField FloatFieldfnForeignKeyField IdentityFieldImproperlyConfiguredIndex IntegerFieldIntegrityErrorInterfaceError InternalErrorIPFieldJOINManyToManyFieldModel ModelIndex MySQLDatabaseNotSupportedErrorOPOperationalErrorPostgresqlDatabasePrimaryKeyFieldprefetch PREFETCH_TYPEProgrammingErrorProxyQualifiedNames SchemaManagerSmallIntegerFieldSelectSQLSqliteDatabaseTable TextField TimeFieldTimestampFieldTuple UUIDFieldValue ValuesListWindow) NullHandlerceZdZdZdS)r\cdSN)selfrecords R/var/lib/jenkins/jobs/Dev/workspace/my-venv/lib/python3.11/site-packages/peewee.pyemitzNullHandler.emits DN)__name__ __module__ __qualname__rdr`rercr\r\s#     rer\peeweez4def reraise(tp, value, tb=None): raise tp, value, tbctj|tjddS)N )sysstdoutwritess rcprint_rrs4  re)Callable)reducec,t|tSr_) isinstancers)cs rcrxs*Q11reprintcB|j|ur|||r_) __traceback__with_traceback)tpvaluetbs rcreraisers)  b ( (&&r** * re) ctj|tjjdS)N)tztzinfo)datetime fromtimestamptimezoneutcreplace)tss rcutcfromtimestamprs3!rh&7&;<<%% 'rectjtjjdS)Nr)rnowrrrr`rercutcnowrs/!X&*++%% 'rec,|dSN ) isoformatds rcdatetime_adapterrs C(8(8!8recjtjtt|dS)N-)rdatemapintsplitrs rc convert_daters"HM3sAGGDMM3J3J$KKrec |d\}}tt|d\}}}|jd}tt|dd\}}} t|dkr;td|d} nd} t j|||||| | S) N r.r:rjz{:0<6.6})rrrlenformatdecoder) trtimeymrt_fullhourminutesecondusecs rcconvert_timestamprsJD$#tzz$//00GAq!TZ%%F#&sF1IOOD,A,A#B#B D&&6{{a:,,VAY-=-=-?-?@@AA$Q1dFFDII Irer timestamprrr)yearmonthdayrrr)%Y-%m-%d %H:%M:%S%Y-%m-%d %H:%M:%S.%f%Y-%m-%d%H:%M:%S %H:%M:%S.%f%H:%Mz%Y-01-01 00:00:00z%Y-%m-01 00:00:00z%Y-%m-%d 00:00:00z%Y-%m-%d %H:00:00z%Y-%m-%d %H:%M:00rz%Y-%m-%d %H:%i:00rz%Y-%m-%d %H:%i:%Srcj|tvsJ|sdSt|t}t||Sr_)__date_parts__format_date_time__sqlite_datetime_formats__getattr lookup_typedatetime_stringdts rc_sqlite_date_partr s@ . ( ( ( (  /+F G GB 2{ # ##rec|tvsJ|sdSt|t}|t|Sr_)__sqlite_date_trunc__rrstrftimers rc_sqlite_date_truncrsI / / / / /  /+F G GB ;;,[9 : ::rec:tj|tdSr_)warningswarnDeprecationWarningrps rc__deprecated__rs M!'(((((rec&eZdZdZdZdZdZdS)attrdictcN ||S#t$rt|wxYwr_)KeyErrorAttributeErrorraattrs rc __getattr__zattrdict.__getattr__s: ':  ' ' ' && & 's $c|||<dSr_r`rarr~s rc __setattr__zattrdict.__setattr__"sUT rec0|||Sr_updaterarhss rc__iadd__zattrdict.__iadd__#sT[[---d{recNt|}|||Sr_)rr)rarrs rc__add__zattrdict.__add__$sA axreN)rfrgrhrrrrr`rercrrs<''' ;:::::GGGGGrerANDORADD+SUB-MUL*DIV/BIN_AND&BIN_OR|XOR#MOD%EQ=LT<LTEz<=GT>GTEz>=NEz!=INNOT_INzNOT INISIS_NOTzIS NOTLIKEILIKEBETWEENREGEXPIREGEXPCONCATz||BITWISE_NEGATION~c8t|tj|Sr_) ExpressionrErlrs rcrxrxPsz!RUA..rec8t|tj|Sr_)r rErr s rcrxrxQsArw22rec8t|tj|Sr_)r rErr s rcrxrxRs*Q!44rec8t|tj|Sr_)r rErr s rcrxrxSs:aA66re) eqltltegtgteneinislikeilikeregexpAUTOINTEGERBIGAUTOBIGINTBLOBBOOLSMALLINTCHARDATEDATETIMEDECIMALDEFAULTDOUBLEREALFLOATINTTEXTTIMEUUIDUUIDBVARCHARz INNER JOINzLEFT OUTER JOINzRIGHT OUTER JOINz FULL JOINzFULL OUTER JOINz CROSS JOINz NATURAL JOINLATERALzLEFT JOIN LATERAL) INNER LEFT_OUTER RIGHT_OUTERFULL FULL_OUTERCROSSNATURALr2 LEFT_LATERALrr)TUPLEDICT NAMED_TUPLE CONSTRUCTORMODEL)WHEREr?z(.)_*([A-Z][a-z]+)z([a-z0-9])_*([A-Z])_metaclass_helper_c(|t|fiSr_) MODEL_BASE)metabases rcwith_metaclassrJs 4 TGR ( ((rec\|}|r|||Sr_)copyr)source overridesmergeds rc merge_dictrPs. [[]]F! i   Mrect|dkr|dSdfd|DS)Nrr.c:g|]}|Sr`join).0part quote_charss rc zquote..s%===TYY{++===re)rrU)pathrXs `rcquoter[sO 4yyA~~Aw||K((( 88======= > >>recJt|ot|tSr_)r issubclassrA)os rcrxrxsWQZZ8Jq%$8$8recL|!t|ttfr|n|fSdSr_)rvlisttupler~s rc ensure_tuplercs/ "54-88FuuuhFrecV|&t|tr|nt|SdSr_)rvNodeEntityrbs rc ensure_entityrgs/ "5$//BuuVE]]Brectd|}td|S)Nz\1_\2)SNAKE_CASE_STEP1subSNAKE_CASE_STEP2lower)rqfirsts rcmake_snake_caserns9  1 - -E   % 0 0 6 6 8 88rec#Kt}dtt|g|zd|iDD](}|d|ur|||d=|V)dS)Nc34K|]}t|VdSr_)r`)rVgs rc zchunked..s@CCa$q''CCCCCCre fillvalue)object izip_longestiterindex)itnmarkergroups rcr r s XXFCC<$r((a$B:@$B$BCCC 9  ekk&))**+ receZdZdZdS)_callable_context_managerc@tfd}|S)NcL5|i|cdddS#1swxYwYdSr_r`argskwargsr5ras rcinnerz1_callable_context_manager.__call__..inners + +r4*6** + + + + + + + + + + + + + + + + + +s rrar5rs`` rc__call__z"_callable_context_manager.__call__9 r + + + + +  + reN)rfrgrhrr`rercr~r~s#rer~cpeZdZdZdZdZdZdZdZedZ edZ d Z fd Z xZ S) rLz; Create a proxy or placeholder for another object. obj _callbacksc>g|_|ddSr_)r initializeras rc__init__zProxy.__init__s! rec>||_|jD] }||dSr_r)rarcallbacks rcrzProxy.initializes3  H HSMMMM  rec:|j||Sr_)rappend)rars rcattach_callbackzProxy.attach_callbacks x(((recfd}|S)Ncf|jtdt|j|i|SNzCannot use uninitialized Proxy.rrr)rarrmethods rcrz Proxy.passthrough..inners;x$%FGGG,748V,,d=f== =rer`rrs` rc passthroughzProxy.passthroughs# > > > > > re __enter____exit__cX|jtdt|j|Srrrs rcrzProxy.__getattr__s+ 8  !BCC Ctx&&&rec||jvrtdtt|||S)NzCannot set attribute on proxy.) __slots__rsuperrLr)rarr~ __class__s rcrzProxy.__setattr__s? t~ % % !ABB BUD!!--dE:::re)rfrgrh__doc__rrrrrrrrr __classcell__rs@rcrLrLs&I  K((I{:&&H''' ;;;;;;;;;rerLcJeZdZdZdZdZdZdZdZdZ e dZ d S) r&zL Proxy implementation specifically for proxying `Database` objects. )rr_Modelc t|Sr_ConnectionContextrs rcconnection_contextz DatabaseProxy.connection_context &&&rec"t|g|Ri|Sr__atomicrarrs rcatomiczDatabaseProxy.atomic t-d---f---rec t|Sr__manualrs rc manual_commitzDatabaseProxy.manual_committ}}rec"t|g|Ri|Sr_ _transactionrs rc transactionzDatabaseProxy.transaction D242226222rec t|Sr_ _savepointrs rc savepointzDatabaseProxy.savepoint$rectds-Gfdd}tdtfd|i_jS)NrceZdZZdS)!DatabaseProxy.Model..MetaNrfrgrhdatabasersrcMetar4rer BaseModelhasattrtyperArrars` rcrAzDatabaseProxy.ModelUtX&& F ' ' ' ' ' ' ' ' ' '{UHvtnEEDK{reN) rfrgrhrrrrrrrpropertyrAr`rercr&r&s0I'''...333    Xrer&ceZdZdS)ModelDescriptorNrfrgrhr`rercrr rercTeZdZdZdZedZdZd dZdZ dZ d Z d Z d S) AliasManager)_counter_current_index_mappingcXd|_d|_g|_|dSNr)rrrpushrs rcrzAliasManager.__init__s)   rec,|j|jdz SNr)rrrs rcmappingzAliasManager.mappings}T01455rech||jvr|xjdz c_d|jz||<|j|S)Nrzt%d)rrrarMs rcaddzAliasManager.adds<  % % MMQ MM 4=0DL|F##reFc|rHtt|jD]&}||j|vr|j||cS'||Sr_)reversedrangerrr)rarM any_depthidxs rcgetzAliasManager.get%sm  6d&9 : :;; 6 6T]3///=-f55550xxrec,||Sr_)rrs rc __getitem__zAliasManager.__getitem__,sxxrec||j|<dSr_)r)rarMaliass rc __setitem__zAliasManager.__setitem__/s$ Vrec|xjdz c_|jt|jkr|jidSdSr)rrrrrs rcrzAliasManager.push2sR q   T]!3!3 3 3 M  $ $ $ $ $ 4 3recZ|jdkrtd|xjdzc_dS)Nrz&Cannot pop() from empty alias manager.)r ValueErrorrs rcpopzAliasManager.pop7s9  ! # #EFF F q reNF) rfrgrhrrrrrrrrrrr`rercrrs:I66X6$$$        %%%%%% !!!!!rerc2eZdZedffd ZddZdZxZS)StateFc Ztt|||||Sr_)rr__new__)clsscope parenthesesrrs rcrz State.__new__?s'UC  ((e[&IIIreNc ||jn|}|r6|jr/|j}||n |r|}n|j}t ||fi|Sr_)rsettingsrLrr)rarrrrs rcrzState.__call__Bsz#m   %dm %}))++H OOF # # # #  %HH}HUK448444rec6|j|Sr_)rr)ra attr_names rcrzState.__getattr__Ps}  +++reNN)rfrgrh SCOPE_NORMALrrrrrs@rcrr=sk'UJJJJJJ 5 5 5 5,,,,,,,rer_State)rrrc,tfd}|S)Nc;ZK|ddi|5|VddddS#1swxYwYdSNrr`r`)rarrs rcrz __scope_context__..innerUs T ( ( ( ( (  JJJ                  s  $$r)rrs` rc__scope_context__rTs-^ Lrec"eZdZdZdZdZdZedZedZ edZ dZ e e Ze eZe eZe eZe eZd Zd Zed Zd Zd ZddZdZdZdZ dS)r#)stack_sql_values alias_managerstatec xg|_g|_g|_t|_t di||_dSNr`)rrrrrrr )rars rcrzContext.__init___s<   )^^&&X&& rec.tdi|jjSr )r#r rrs rcas_newzContext.as_newfs--,---rec8|d|Sr get_sort_keyraitems rccolumn_sort_keyzContext.column_sort_keyisAw##D)))rec|jjSr_)r rrs rcrz Context.scopels zrec|jjSr_)r rrs rcrzContext.parenthesesps z%%rec|jjSr_)r subqueryrs rcrzContext.subqueryts z""rec |r!|d|jkr|d=|j|j|jdi||_|Sr)rrrrr )rarNs rcrzContext.__call__xs`  #w//4:=='" $*%%%TZ,,),,  rec>|jr|d|S)N()rliteralrs rcrzContext.__enter__s$    LL    recz|jr|d|j|_dS)N))rrrrr raexc_typeexc_valexc_tbs rcrzContext.__exit__s6    LL   Z^^%% rec#vK|jdV|jdSr_)rrrrs rc push_aliaszContext.push_aliass? !!!       rect|ttfr||St |r|jj|S|t|Sr_) rvrer#__sql__is_model_metatablesqlrYrars rcr)z Context.sqlsh cD'? + + (;;t$$ $ c]] (9?**400 088E#JJ'' 'rec:|j||Sr_)rr)rakeywords rcrzContext.literals !!! reNTc|r ||}n(|&|jjr|j|}t|tr:|d5||cdddS#1swxYwYnPt |rA|5||cdddS#1swxYwY|jjr"|t|S|j ||r!||jj pdn|S)N converter?) r r/rvrer)r& scope_columnvalue_literalsr_query_val_transformrrparam)rar~r/ add_params rcr~z Context.values  0Ie$$EE  4:#7 J((//E eT " " '%%% ' 'xx ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' e__ ' ""$$ ' 'xx ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' : $ =<< 4U ; ;<< < E"""8AKt||DJ,3444tKs$A::A>A>)C  CCc|j|j|j|j|Sr_)rextendrractxs rcr%zContext.__sql__s5  """ 4<((( recP||Sr_)r)queryranodes rcparsez Context.parsesxx~~##%%%recDd|j|jfS)Nr()rUrrrs rcr;z Context.queryswwty!!4<//reNT)!rfrgrhrrr rrrrrrrr scope_normal SCOPE_SOURCE scope_source SCOPE_VALUES scope_values SCOPE_CTE scope_cte SCOPE_COLUMNr1rrrr#r)rr~r%r>r;r`rercr#r#\sFI'''...***  X &&X&##X#%$\22L$$\22L$$\22L!!),,I$$\22L &&& !!^! (((LLLL2 &&&00000rer#cht|dd}||}nt}||\}}|s|S|jjpd}|dkr|dd}|ttt|zS)N _databaser0%s) rget_sql_contextr#r)r;r r4rrarr3)r;dbr9r)paramsr4s rcquery_to_stringrOs  T * *B ~  ""ii''%..&&((KC  IO "sE ||kk#t$$ s/8899 99rect|ttjtjtjfrd|z}nt|t rB |d}n%#t$r|d}YnwxYwd|z}n.inners5JJLLE F5 *4 * * *6 * * *Lrer`rs` rcrLz Node.copys#      recV||jkr|}||_|S|Sr_)_coercer\)rarer\s rccoercez Node.coerces- dl " "JJLLE#EML recdSNFr`rs rcis_aliasz Node.is_alias surec|Sr_r`rs rcunwrapz Node.unwrap reNT) rfrgrhre__isabstractmethod__r\r% staticmethodrLrfrirkr`rercreresG  """\rerec"eZdZdZdZdZeZdS) ColumnFactoryr=c||_dSr_rrr<s rcrzColumnFactory.__init__  rec,t|j|Sr_)r!r=rs rcrzColumnFactory.__getattr__di&&&reNrfrgrhrrrrr`rercrqrqs6I'''KKKrerqceZdZdZddZdS)_DynamicColumnr`Nc(|t|S|Sr_)rqrainstance instance_types rc__get__z_DynamicColumn.__get__"s   ** * rer_rfrgrhrr~r`rercryrys-IreryceZdZdZddZdS)_ExplicitColumnr`Nc.|td|z|S)NzM%s specifies columns explicitly, and does not support dynamic column lookups.rr{s rcr~z_ExplicitColumn.__get__+s.   *,4566 6 rer_rr`rercrr(s-IrerceZdZdZdZdS)Starc||_dSr_)rMrs rcrz Star.__init__4  recv|t|jdS)Nz.*)r)rMrMrr8s rcr%z Star.__sql__6s,ww~dk2233;;DAAAreNrfrgrhrr%r`rercrr3s7BBBBBrerceZdZeZd fd ZejdZdZ e dZ e j dfdZd dZdd Zd Zd Zd ZxZS)SourceNcdtt|||_dSr_)rrr_alias)rarrs rcrzSource.__init__=s* fd$$&&& rec||_dSr_rranames rcrz Source.aliasA  recH|stdf}t|f|S)Nr)rQrPracolumnss rcselectz Source.selectEs) "3xxkGtgw'''rec t|Sr_)rrs rc__star__zSource.__star__JsDzzrec&t||||Sr_Join)radest join_typeons rcrUz Source.joinNsD$ 2...rec:t||tj|Sr_)rr?r4rarrs rcleft_outer_joinzSource.left_outer_joinQsD$444reFc*t|||||SN) recursiver materializedCTErarrrrs rcctez Source.cteT$4G ,... .rec<|jr|jfS|j|fSr_)rrr8s rcrzSource.get_sort_keyXs' ; "K> !!$'))rec|jtkrV|jr|j|j|<|dt |j||SN AS )rrBrrrr)rfr8s rc apply_aliaszSource.apply_alias]s_ 9 $ ${ 6*.+!$' KK   # #F3+v>>> rec<||_|dSr_)rrrs rcrz_HashableSource.aliasqs!  rec8||_dSr_) _get_hash_hashrs rcrz_HashableSource._update_hashvs^^%% recDt|j|j|jfSr_)hashr_pathrrs rcrz_HashableSource._get_hashysT^TZ=>>>rec|jSr_)rrs rc__hash__z_HashableSource.__hash__|s zrect|tr|j|jkSt|tj|Sr_)rvrrr rErraothers rc__eq__z_HashableSource.__eq__7 e_ - - -:, ,$u---rect|tr|j|jkSt|tj|Sr_)rvrrr rErrs rc__ne__z_HashableSource.__ne__rrecfd}|S)Nc&t||Sr_r rarops rcrz!_HashableSource._e..innersdB,, ,rer`)rrs` rc_ez_HashableSource._es! - - - - - re)rfrgrhrrerLrrrrrrrrEr__lt__r__le__r__gt__r__ge__rrs@rcrrls YY&&&???... ... RYYF RZZF RYYF RZZFFFFFrerc<tfd}|S)Ncb|g|Ri|}|jr||jS|Sr_)rJbind)rarrresultmeths rcrz __bind_database__..innersEd,T,,,V,, > /;;t~.. . rer)rrs` rc__bind_database__rs3 4[[[ Lrecfd}|S)Nc4r||}}t||S)N)rr)rarinvertedrs rcrz__join__..methods)  &%DD%95555rer`)rrrs`` rc__join__rs)666666 MrecbeZdZeejZeejZeej Z eej Z eej ZeejdZeejdZeej dZeej dZeej dZdS) BaseTableTrN)rfrgrhrr?r3__and__r4rr5__sub__r7__or__r8__mul____rand____radd____rsub____ror____rmul__r`rercrrshtz""Ght''Ght'((G Xdo & &Fhtz""Gx T222Hx$777Hx(4888Hht666Gx T222HHHrerc&eZdZdZdZdZdZdS)_BoundTableContextc"||_||_dSr_)r(r)rar(rs rcrz_BoundTableContext.__init__s   rec@tfd}|S)Nc|tjj5|i|cdddS#1swxYwYdSr_)rr(rrs rcrz*_BoundTableContext.__call__..inners#DJ >> + +r4*6** + + + + + + + + + + + + + + + + + +s 155rrs`` rcrz_BoundTableContext.__call__rrec|jj|_|j|j|jj$|jj|j|jSr_)r(rJ_orig_databaserr_modelrs rcrz_BoundTableContext.__enter__sS"j2  &&& :  ( J  " "4= 1 1 1zrec|j|j|jj&|jj|jdSdSr_)r(rrrrs rcrz_BoundTableContext.__exit__sN +,,, :  ( J  " "4#6 7 7 7 7 7 ) (reNrfrgrhrrrrr`rercrrsP!!!88888rerceZdZ d fd ZdZddZddZdZedZ eddZ edd Z edd Z ed Z d ZxZS)rSNc ||_||_||_||_|r||fn|f|_||_||_tt| ||7t|_ |D]!}t||t||"|r'|jr|n|j } t| ||_dSd|_dSNr)rf_columns _primary_key_schemarrrJrrSrrrwsetattrr!r primary_key) rarrrschemarrrJcolumncol_srcrs rcrzTable.__init__s  ' '-:fd^^D7  " eT##%#000  $&&DF! < <ffT6&:&:;;;;  $"m7ddG&w <.s#HHHvdF++HHHre)rrPrs` rcrz Table.selectsC I4= IHHHH$-HHHGtgw'''rec |rC|in|}|jr|n|j}|D]\}}||t||<t |||SNinsertr)rrwitemsrInsert)rar rrsrckeyr~s rcr z Table.insertsp  2!>RRvF-3$$TVC$llnn 2 2 U,1wsC(())d67;;;;rec V|||dS)Nr REPLACEr  on_conflict)rar rrs rcrz Table.replaces(vw77Y'' )rec |rC|in|}|D](\}}|jr|n|j}||t||<)t ||S)Nr)r rrwrUpdate)rarrrr~rs rcrz Table.update sn  2!>RRvF$llnn 2 2 U"m7dd,1wsC(())d6****rec t|Sr_)Deleters rcdeletez Table.deletesd||recB|jtkr!|t|jS|jr|j|j|<|jtkr4||t|jS| |Sr_) rrDr)rfrrrrBrrr8s rcr%z Table.__sql__s 9 $ $7764:.// / ; 2&*kC d # 9 $ $##CGGFDJ,?$@$@AA A$$S)) )re)NNNNNNr_r)rfrgrhrr\rrrrrr rrrr%rrs@rcrSrSs6DH48$$$$$$. & & &2222LLL((( <<<<)))) ++++ * * * * * * *rerSc<eZdZejddffd ZdZdZxZS)rNctt||||_||_||_||_dSr)rrrlhsrr_on)rarrrrrrs rcrz Join.__init__+sD dD"""///"rec||_|Sr_)r)ra predicates rcrzJoin.on2s rec||jd|jz|j|j-|d|j|S)N %s  ON )r)rrrrrr8s rcr%z Join.__sql__6sd #dh-- '&4>) * * #dh--- 8  KK   # #DH - - - re) rfrgrhr?r3rrr%rrs@rcrr*sd+/:$drercLeZdZdfd ZdZejdZdZxZ S)rZNcv||_||_tt||dSr)rrrrZr)ravaluesrrrs rcrzValuesList.__init__As8   j$((u(55555rec^t|jt|j|jfSr_)rridrrrs rcrzValuesList._get_hashFs%T^R %5%5t{CDDDrec||_dSr_)r)ranamess rcrzValuesList.columnsIs  rec|jr|j|j|<|jtks|jtkr||j 5|dtd|j D}dddn #1swxYwY|jtkrz|dt|j||j r3d|j D}|t|n-|t|j||S)NrzVALUES c,g|]}t|Sr`EnclosedNodeListrVrows rcrYz&ValuesList.__sql__..Us4+J+J+J58+C00+J+J+Jrerc,g|]}t|Sr`)rfrVrws rcrYz&ValuesList.__sql__..[sAAAaq AAAre) rrrrBrrrr) CommaNodeListrrfrr.)rar9entitiess rcr%zValuesList.__sql__Ms ; 2&*kC d # 9 $ $ \(A(AS_!4555 M M **M+J+J<@L+J+J+JKKLL M M M M M M M M M M M M M M M yL(( F##''s/@/F(G(GHHH=8AA4=AAAHGG,X66777 GGF3,T233 4 4 4 s ABB!Br) rfrgrhrrrerLrr%rrs@rcrZrZ@s{666666 EEE YYrerZcJeZdZ d fd ZdZdZdZeZdZeZ dZ xZ S) rFNc||_||_||_||_| d|D}||_d|_t t||dS)NcZg|](}t|trt|n|)Sr`rv basestringrfr2s rcrYz CTE.__init__..ksA)))%/q*$=$=Dvayyy1)))rer`r) r_query _recursive _materializedr _cte_listrrr)rarr;rrrrs rcrz CTE.__init__dsy  #)  )) ')))G  c4!!!-----rec |stdt|f|||jj} ||jj}n#t$rYnwxYw|S)NzFselect_from() must specify one or more columns from the CTE to select.) rrPwith_cterr:rJobjectsmodelrrarr;s rc select_fromzCTE.select_fromqs 8788 8))(4..$t{,--  MM$+"344EE    D  sA44 BBc^t|j|jt|jfSr_)rrrr'r:rs rcrz CTE._get_hashs#T^T["T[//BCCCrec||j}t|j||z|j|jSr_r:r\rrr;rrarr\s rc union_allz CTE.union_all3 !!##4; T_dmLLLrec||j}t|j||z|j|jSr_rFrGs rcunionz CTE.unionrIrec|jtkr'|t|jS|5|j|j|<|t|j|jr:|dt|j|d|j r|dn|j dur|d| d5||j dddn #1swxYwYdddn #1swxYwY|S)Nrrz MATERIALIZED FzNOT MATERIALIZED Tr+) rrFr)rfrr#rrrr.r<rAr:r8s rcr%z CTE.__sql__s 9 ! !776$+..// / ^^   % %&*kC d # GGF4;'' ( ( (} F C  $$%5dm%D%DEEE KK   ! 1 O,,,,#u,, /000!!d!33 % % $$$ % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % s7 CE(*E E(E E(E E((E,/E,r) rfrgrhrrCrrHrrKrr%rrs@rcrrcs=A" . . . . . .   DDDMMMGMMMFrerceZdZdZejddZdZdZdZ dZ ddZ e Z ddZ e Zd Zdd ZeejZeejZeejZeejZeejZeejxZZeejZ eejd Z!eejd Z"eejd Z#eejd xZ$Z%eejd Z&eejd Z'eejd Z(dZ)dZ*eej+Z,eej-Z.eej/Z0eej1Z2eej3Z4eej5Z6eej7Z8eej9Z:eej7Z;eej9Z<eej=Z>eej?Z@eej3ZAeejBZCeejDZEeejFZGddZHdZIdZJdZKdZLdZMdZNdZOdZPdZQdZRdZSdS) ColumnBaseNc||_dSr_) _converter)rar/s rcr/zColumnBase.converters #rec*|rt||S|Sr_)Aliasrars rcrzColumnBase.aliass  &u%% % rec|Sr_r`rs rcunaliaszColumnBase.unaliasrlrec"t||Sr_)BindTo)rars rcbind_tozColumnBase.bind_tosdD!!!rec"t||Sr_)r)raas_types rccastzColumnBase.castsD'"""rec&t|||SN) collationnulls)Ascrar^r_s rcasczColumnBase.ascs49E::::rec&t|||Sr])Descras rcdesczColumnBase.descsDIU;;;;rec t|Sr_)Negatedrs rc __invert__zColumnBase.__invert__rreFcfd}|S)z Lightweight factory which returns a method that builds an Expression consisting of the left-hand and right-hand operands, using `op`. cLrt||St||Sr_r)rarinvrs rcrzColumnBase._e..inners/ 1!#r4000dB,, ,rer`)rrkrs`` rcrz ColumnBase._es)  - - - - - - reT)rkcX| tjn tj}t|||Sr_)rErrr rs rcrzColumnBase.__eq__s%kRUUru$C(((recX| tjn tj}t|||Sr_)rErrr rs rcrzColumnBase.__ne__s%+RYY25$C(((recX|r tjn tj}t||dSr_)rErrr )rais_nullrs rcrozColumnBase.is_nulls& ,RUU29$D)))rec|ddks2|ddks|ddkr~|dddddd}tt||zd t d tdd fS||zS) N_rr\z\\z\_z\%Fr.ESCAPE)findrNodeListrYrQ)rarqtemplates rc_escape_like_exprzColumnBase._escape_like_exprs 66#;;!  qvvc{{a//166$<<13D3D $''//U;;CCCOOAhle444H de,,,.// /!|rec t|tr5tdtjt|tjd}n||d}t|tj|S)Nrz%%%s%%rvrer rErrwrrs rccontainszColumnBase.containssg c4  8S")'RY<<>>CC((h77C$#...rect|trt|tjd}n||d}t|tj|S)Nrz%s%%ryrs rc startswithzColumnBase.startswith R c4  6S")S11CC((f55C$#...rect|trtdtj|}n||d}t|tj|S)Nrz%%%sryrs rcendswithzColumnBase.endswithr}rec rt|tjt|t d|fS)Nr)r rErrurQ)ralohis rcbetweenzColumnBase.betweens+$ Hb#e**b5I,J,JKKKrec8t|tj|Sr_StringExpressionrErrs rcconcatzColumnBase.concatsbi555rect|tr=|j|jt d||j|jS||kS)Nz4BETWEEN range must have both a start- and end-point.)rvslicestartstoprrrs rcrzColumnBase.__getitem__s\ dE " " 7z!TY%6 ".///<< DI66 6t|rec>ttd|fS)NDISTINCTrurQrs rcdistinctzColumnBase.distinct&sZ$/000recDt|td|zfS)N COLLATE %srrar^s rccollatezColumnBase.collate)s"s<)#;<<=>>>recdSr r`r8s rcrzColumnBase.get_sort_key,srrer_rrrm)TrfrgrhrPrerLr/rrUrXr[rb__pos__re__neg__rhrrErrrrrrrrrrr__div__ __truediv__r__xor__rrr__rdiv__ __rtruediv__rr__rxor__rrrrrrrrrrr __lshift__r __rshift__r__mod__r__pow__rrrbin_andrbin_orin_rnot_inrrriregexprorwrzr|rrrr__iter__rrrr`rercrNrNsJ Y$$$Y$ """###;;;;G<<<<G    bjjG RYYFbjjGbjjGbjjGBrvJJ&GkbjjGr"&d###Hr"&d###Hr"&d###H bT2222H|r"&d###HbD!!!Gr"&d###H))))))RYYF RZZF RYYF RZZFBEJBEJbkkGbllG 2bg;;D BrxLLEbnnG R ]]F "RU))C R ]]F R ]]FbnnG****   ////// /// LLL666H111???rerNc&eZdZdZdZdZdZdS)r!c"||_||_dSr_)rMr)rarMrs rcrzColumn.__init__1s  recx|jtkr|jfS|j||jfzSr_)rrDrrMrr8s rcrzColumn.get_sort_key5s8 9 $ $I< ;++C00DI<? ?rec8t|j|jfSr_)rrMrrs rcrzColumn.__hash__;sT[$),---recp|jtkr'|t|jS|5||jdt|jcdddS#1swxYwYdSNrR)rrDr)rfrr1rMrr8s rcr%zColumn.__sql__>s 9 $ $776$),,-- -!!## P Pwwt{++33C88<||jSt|j|Sr_)r=rRrSs rcrz Alias.aliasts! =9 E** *rec|jSr_rrrs rcrUz Alias.unaliasz yrecdSr@r`rs rcrizAlias.is_alias}strec|jtkrR||jdt |jS|t |jSr)rrBr)r=rrfrr8s rcr%z Alias.__sql__sd 9 $ $S^^WV__S ,,-- / 776$+..// /rer_)rfrgrhrrwrrrrsetterrrUrir%rrs@rcrRrRcsA!!!X [[++++ 0000000rerRc$eZdZfdZdZxZS)rWcftt||||_dSr_)rrWrr)rar=rrs rcrzBindTo.__init__s, fd$$T*** rec6||jSr_r)r=r8s rcr%zBindTo.__sql__swwty!!!rerfrgrhrr%rrs@rcrWrWsG"""""""rerWceZdZdZdZdS)rgc|jSr_rrrs rcrhzNegated.__invert__rrec\|d|jS)NzNOT )rr)r=r8s rcr%zNegated.__sql__s${{6""&&ty111reNrfrgrhrhr%r`rercrgrgs222222rergc&eZdZdZdZdZdZdS) BitwiseMixinc,||Sr_)rrs rcrzBitwiseMixin.__and__s||E"""rec,||Sr_)rrs rcrzBitwiseMixin.__or__s{{5!!!recP||Sr_)r bin_negatedrs rcrzBitwiseMixin.__sub__s ||E--//000rec t|Sr_)BitwiseNegatedrs rcrhzBitwiseMixin.__invert__sd###reN)rfrgrhrrrrhr`rercrrsP###"""111$$$$$rerceZdZdZdZdS)rc|jSr_rrrs rcrhzBitwiseNegated.__invert__rrec|jjr+|jj|j|j}n|j}|||jSr_)r  operationsrrrr)r=)rar9op_sqls rcr%zBitwiseNegated.__sql__sX 9  Y)--dgtw??FFWF{{6""&&ty111reNrr`rercrrs222222rerceZdZddZdZdS)rYNTcR||_||_|ot|jt|_|jrng|_|jD]a}t|t r|j|2|jt||j`dSdSr_) r~r/rv multi_typesmultir%rerrY)rar~r/unpackrs rcrzValue.__init__s "C 4:{ C C : DDK  D DdD))DK&&t,,,,K&&uT4>'B'BCCCC  D D D Drec|jr'|t|jS||j|jSr_)rr)r.r%r~r/r8s rcr%z Value.__sql__sA : :77+DK8899 9yyT^444rer@rr`rercrYrYs; D D D D55555rerYceZdZdZdS) ValueLiteralsc|d5||jcdddS#1swxYwYdS)NT)r2rr8s rcr%zValueLiterals.__sql__s S % % % & &7749%% & & & & & & & & & & & & & & & & & &s 488Nrfrgrhr%r`rercrr#&&&&&rerc$t|dSNFr)rYrbs rcrrs u % % %%rec$eZdZfdZdZxZS)rcttt||||_d|_dSrh)rrr_castre)rar=r[rs rcrz Cast.__init__s3 dD""4(((  rec|d|jd|jzS)NzCAST(z AS %s))rr)r=rr8s rcr%z Cast.__sql__s8!!TYTZ/00 2rerrs@rcrrsG 2222222rerc4eZdZdfd ZddZdZdZxZS)OrderingNctt||||_||_||_|r(|dvrtd|zdSdS)N)rmlastz9===rec|dkrd\}}n-|dkrd\}}ntdtd|j|ff|S)Nr)rrrm)rrz&unsupported value for nulls= ordering.)rlrrr=ro)rar_ifnullnotnulls rc_null_ordering_casezOrdering._null_ordering_casesu ;;==F " ""OFGG [[]]g % %"OFGGEFF FDDI--//8:GDDDrec|jrL|jjs@|||jd||jd|jz|jr|d|jz|jr)|jjr|d|jz|S)N,  %sz COLLATE %sz NULLS %s) r_r nulls_orderingr)rrr=rr^r8s rcr%zOrdering.__sql__s : Hci6 H GGD,,TZ88 9 9 A A$ G G G  ""54>#9::: > 8 KK 6 7 7 7 : 2#)2 2 KK dj0 1 1 1 rerr_)rfrgrhrrrr%rrs@rcrrsr888888>>>>EEE       rerc&t|d||S)NASCrr=r^r_s rcr`r`s D%E 2 22rec&t|d||S)NDESCrrs rcrdrds D&)U 3 33receZdZddZdZdS)r Fc>||_||_||_||_dSr_)rrrflat)rarrrrs rcrzExpression.__init__ s" rec|j dd}|jx}}t|tr|}t|t r*|jr#|j|d<t|t|d<nd|d<|j j r+|j j |j |j }n|j }|d i|5|j tjkp|j tjk}|rn||jddkr8||j tjkrdndcdddS|j}|9|j tjks|j tjkrt-d }||jd |z|cdddS#1swxYwYdS) NT)rin_exprr/ is_fk_exprr()z0 = 1z1 = 1rSr!r`)rrrvrrkr2redb_valuer6r rrrrErrr r>rrrrrQr))rar9rNr=raw_noderop_inrs rcr%zExpression.__sql__s3(, MdCC ("x h , , %??$$D dE " " *x'7 *%)]Ik "&0&G&GIl # #%)Ik " 9  Y)--dgtw??FFWF S  9    Gru$<29(.>77GLL         (C{25 0 0DGry4H4H&kkS]]WVf_--SXX                  sBG4#BG44G8;G8Nrrr`rercr r  s7 """""rer ceZdZdZdZdS)rc,||Sr_)rrs rcrzStringExpression.__add__8s{{3rec8t|tj|Sr_r)rars rcrzStringExpression.__radd__:sRY555reN)rfrgrhrrr`rercrr7s2   66666rerc,eZdZdZdZdZdZdZdS)rfc(d|D|_dS)Nc>g|]}||ddS)""")r)rVrWs rcrYz#Entity.__init__..@s+GGG$$Gdll3--GGGre)r)rarZs rcrzEntity.__init__?sGG$GGG rec&t|j|gzSr_)rfrrs rcrzEntity.__getattr__BstzTF*++rec*t|jSr_)rarr8s rcrzEntity.get_sort_keyEsTZ   rec\t|jjt|jfSr_)rrrfrarrs rcrzEntity.__hash__Hs$T^,eDJ.?.?@AAArecj|t|j|jjpdS)Nr)rr[rr r8s rcr%zEntity.__sql__Ks){{5SY_-DEEFFFreN)rfrgrhrrrrr%r`rercrfrf>sjHHH,,,!!!BBBGGGGGrerfceZdZddZdZdS)rQNc"||_||_dSr_r)rNrar)rNs rcrz SQL.__init__Ps rec||j|jr"|jD]}||dd|SNF)r5)rr)rNr~rar9r4s rcr%z SQL.__sql__TsQ DH ; 9 9 9 %% 8888 rer_rr`rercrQrQOs7rerQctd|z}|s|Sttdt||fS)Nz CHECK (%s) CONSTRAINT)rQrurf) constraintrchecks rcrr\sD  z) * *E  S&&t e< = ==receZdZedZd dZdZejd dZ ejdZ ejd dZ d d Z d Z dS)Function)sumcountavgr[ array_aggTNc||_||_d|_d|_||_|r$||jvr d|_dS||_dSrh)r arguments_filter _order_by _python_valuerlno_coerce_functionsre)rarr+rf python_values rcrzFunction.__init__fsY " )  "DJJLLD$<<< DLLL!DLLLrecfd}|S)Nc t|fi|Sr_)r%)rrrs rc decoratorz'Function.__getattr__..decoratorrsD$11&11 1rer`)rarr3s ` rcrzFunction.__getattr__qs" 2 2 2 2 2rec||_dSr_)r,)rawheres rcfilterzFunction.filterv  rec||_dSr_r-)raorderings rcorder_byzFunction.order_byz !rec||_dSr_)r.)rafuncs rcr0zFunction.python_value~s!rec t|tr||}|t|}nt||||||d}t|t d|fS)NT) partition_byr;rend frame_typeexclude_inlineOVER)rvr[ WindowAliasrurQ) rar@r;rrArBwindowrCr=s rcoverz Function.overss lF + + "!F  v&&DD|h %3:")4999Ds6{{D1222rec||jt|js|dn|j}|jrIt |}t |dtdt|jf|d<|dt|j5| td|Ddddn #1swxYwY|j r@|d |j d|S) Nr rtORDER BYT) in_functionfunction_arg_countc\g|])}t|tr|nt|d*Sr)rvrerY)rVargs rcrYz$Function.__sql__..sE*%*%*%'sD11HSSuS%7H7H*%*%*%rez FILTER (WHERE r) rrrr+r-r`rurQr3r)r.r,)rar9rs rcr%zFunction.__sql__s DI4>"" ' KK    >D ~ EDzz#T"Xs:%24>%B%B%DEER#dn:M:MNNN ' '(*%*%#*%*%*%&&''' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' < J KK) * * . .t| < < D DS I I I s;-C44C8;C8)TNr_NNNNNNN)rfrgrhsetr/rrrerLr6r;r0rHr%r`rercr%r%cs#JKK " " " "  YY Y""Y" Y"""Y"FJ37 3 3 3 3rer%cleZdZedZedZedZedZdZdZ dZ dfd Z dd Z e jd Ze jd Ze jdZe jddZe jddZeddZeddZdZxZS)r[z CURRENT ROWGROUPTIESz NO OTHERSGROUPSRANGEROWSNFc tt||$t|tst |}|$t|tst |}t ||_t ||_||_||_ |j|j td|pd|_ | |_ ||_ ||_||_dS)Nz(Cannot specify WINDOW end without start.w)rr[rrvrQrcr@r;rrArrrDrB_extends_exclude) rar@r;rrArBextendsrCrrDrs rcrzWindow.__init__s fd$$&&&  Zs%;%; JJE ?:c3#7#7?c((C(66$X..   : $("6GHH Hls  $  rec|pd|_|SNrXrrSs rcrz Window.aliassls  rec(tj|_dSr_)r[rUrBrs rcas_rangezWindow.as_ranges ,rec(tj|_dSr_)r[rVrBrs rcas_rowszWindow.as_rowss +rec(tj|_dSr_)r[rTrBrs rc as_groupszWindow.as_groupss -rec||_dSr_)rYrarGs rcr[zWindow.extendss  rec\t|trt|}||_dSr_)rvr9rQrZ)raframe_exclusions rcrCzWindow.excludes, oz 2 2 3!/22O' recH|tdStd|zS)NzUNBOUNDED FOLLOWINGz %d FOLLOWINGrQrbs rc followingzWindow.following) =,-- ->E)***recH|tdStd|zS)NzUNBOUNDED PRECEDINGz %d PRECEDINGrirbs rc precedingzWindow.precedingrkrec|jtkr6|js/||j|d|d5g}|jj|j}t |trt|j}n$t |trt|}| ||j r6| tdt|j f|jr6| tdt|jf|jQ|jJ|jpd}| td|z|jtd|jfni|j1| t|jpd|jfn1|j*| td |jz|j)| td |jf|t)|dddn #1swxYwY|S) NrTr+z PARTITION BYrJrVz %s BETWEENrz%s UNBOUNDED PRECEDINGEXCLUDE)rrBrDrrrYrvr[rQr9rr@r7r3r;rrArBrZr)ru)rar9partsextframes rcr%zWindow.__sql__s 9 $ $T\ $ KK $ $ $ KK    ST " " " % %E}(mc6**#cj//CCZ00#c((C S!!!  7 ''!$"3446777} 3  OO!$-002333z%$(*>16  u,--JJJH  ' c$/";V< sHI  I$'I$) NNNNNNNNFr_)rfrgrhrQ CURRENT_ROWrRrS NO_OTHERSrTrUrVrrrerLr_rarcr[rCrorjrmr%rrs@rcr[r[s#m$$K CLLE 3v;;DK  IF E DIMDH      * Y''Y' Y&&Y& Y((Y( YY Y(((Y( +++\+ +++\+ $$$$$$$rer[c eZdZdZdZdZdS)rFc||_dSr_)rGres rcrzWindowAlias.__init__rrec||j_|Sr_)rGr)ra window_aliass rcrzWindowAlias.aliass)  recD||jjpdSr])rrGrr8s rcr%zWindowAlias.__sql__"s{{4;-4555reN)rfrgrhrrr%r`rercrFrFsA66666rerFceZdZddZdZdS) _InFunctionTc"||_||_dSr_)r=rK)rar=rKs rcrz_InFunction.__init__'s &rec||j5||jcdddS#1swxYwYdS)NrK)rKr)r=r8s rcr%z_InFunction.__sql__+s ST- . . . & &7749%% & & & & & & & & & & & & & & & & & &s 9==Nrmrr`rercr{r{&s7''''&&&&&rer{ceZdZddZdZdS)rNc0||_||_||_dSr_)rexpression_tuplesdefault)rarrrs rcrz Case.__init__1s"!2 rec Ltdg}|j||j|jD]E\}}|td|tdt |fF|j6|tdt |jf|td|d5|t|cdddS#1swxYwYdS)NCASEWHENTHENELSEENDFr~) rQrrrr7r{rr)ru)rar9clausesexprr~s rcr%z Case.__sql__6sSv;;- > % NN4> * * *1 > >KD% NNCKKKKU););= > > > > < # NNCKKT\)B)BC D D Ds5zz""" SU # # # . .778G,,-- . . . . . . . . . . . . . . . . . .s*"DD Dr_rr`rercrr0s7 . . . . .rerceZdZddZdZdS) ForUpdateNc|durdn|}|dr |dd}d}||_|%t|tt t fs|f}||_||_dS)NTz FOR UPDATEnowaiti) rlr_exprrvr`rPra_of_nowait)rarofrs rcrzForUpdate.__init__Es}#t|||| ::<<  * * 9DF >*R$U1C"D"D>B rec||j|j:|dt |j|jr|d|S)Nz OF z NOWAIT)rrrr)r3rr8s rcr%zForUpdate.__sql__Qsi DJ 8  KK   # #M$($;$; < < < < # KK " " " rerrr`rercrrDs7    rerceZdZddZdZdS)rurFcF||_||_||_|rt|jdkrmt |jdt rO|jdjs?|jdf|_d|jd_dSdSdSdSdS)NrrT)nodesglueparensrrvr rr\)rarrrs rcrzNodeList.__init__[s    &c$*oo** djmZ 0 0+z!}!+*Q---//1DJ!%DJqM     & &******rect|j}|dkr|jr|dn|S||j5t |dz D]<}||j|||j=||j|dz dddn #1swxYwY|S)Nrr r+r)rrrrrr)r)rar9n_nodesis rcr%zNodeList.__sql__fsdj// a<<(, <3;;t$$$ < ST[ ) ) ) - -7Q;'' ' ' 1 &&& DI&&&& GGDJw{+ , , ,  - - - - - - - - - - - - - - -  s A3C  C C N)rFrr`rercruruZs7 & & & &     reruc"t|dS)Nrrurs rcr3r3rs E4  rec$t|ddS)NrTrrs rcr.r.vs E4 & &&rec"eZdZdZdZdZeZdS) _Namespace_namec||_dSr_rrs rcrz_Namespace.__init__|s  rec"t||Sr_)NamespaceAttributers rcrz_Namespace.__getattr__~s!$---reNrwr`rercrrzs6I...KKKrerceZdZdZdZdS)rc"||_||_dSr_) _namespace _attribute)ra namespace attributes rcrzNamespaceAttribute.__init__s##rec||jjdzt |jSr)rrrr)rfrr8s rcr%zNamespaceAttribute.__sql__s8.455VDO,,-- /reNrr`rercrrs2$$$/////rerr1cDeZdZfdZejdZdZxZS)r0c rtt|||_d|_dSrh)rr0rr;_negatedrar;rs rcrz DQ.__init__s/ b$  """  rec |j |_dSr_)rrs rcrhz DQ.__invert__s M) rec@tdi|j}|j|_|Sr )r0r;rr<s rcr\zDQ.clones%DJ   re) rfrgrhrrerLrhr\rrs@rcr0r0sd  Y**Y*rer0c t|Sr_r-)as rcrxrxs#A&&receZdZdZdS)rMc|5||jcdddS#1swxYwYdSr_)r1r)r=r8s rcr%zQualifiedNames.__sql__s      & &7749%% & & & & & & & & & & & & & & & & & &s<AANrr`rercrMrMrrerMct|trF|t|j|jt|j|jSt|trt|S|Sr_) rvr r qualify_namesrrrrrNrMrrs rcrrsu$ ##$~~mDH55tw+DH55tyBB B D* % %$d### KreceZdZ d dZdZdZejdZejd dZ ejdZ ejdZ ejd Z ejd Z dS) OnConflictNc||_||_t||_||_||t dt||_||_||_dS)NzIonly one of "conflict_target" and "conflict_constraint" may be specified.) _action_updaterc _preserve_wherer_conflict_target_conflict_where_conflict_constraint)raactionrpreserver5conflict_targetconflict_whereconflict_constraints rcrzOnConflict.__init__su  %h//  &+>+JGHH H ,_ = =-$7!!!rec8|j||Sr_)r conflict_statementrar9r;s rcget_conflict_statementz!OnConflict.get_conflict_statementsy++D%888rec8|j||Sr_)r conflict_updaters rcget_conflict_updatezOnConflict.get_conflict_updatesy((u555rec||_dSr_)rrs rcrzOnConflict.preserves  rec |r&|r$t|tstd|pi}|r||||_dS)NzGCannot mix data with keyword arguments in the OnConflict update method.)rvdictrrr)ra_datars rcrzOnConflict.updatesg  :V :Jud$;$; :9:: :   ! LL  rech|j |jf|z}ttj||_dSr_rrtoperatorand_ra expressionss rcr5zOnConflict.where/ ; ";.;6KX]K88 rec"d|_||_dSr_rr)ra constraintss rcrzOnConflict.conflict_targets$(! +rech|j |jf|z}ttj||_dSr_)rrtrrrs rcrzOnConflict.conflict_wheres5   +/1K?K%hm[AArec"||_d|_dSr_r)rar"s rcrzOnConflict.conflict_constraints$.! $rerOr_)rfrgrhrrrrerLrrr5rrrr`rercrrsFJ6:%) 8 8 8 8999666 Y!!Y! YY Y99Y9  Y,,Y, YBBYB  Y%%Y%%%rerc>tdfd }|S)Ncf||jn|}|stdjz||g|Ri|S)Nz8Query must be bound to a database in order to call "%s".)rJr<rf)rarrrrs rcrz database_required..innersc%-%54>>8 D "139?"CDD DvdH6t666v666rer_rrs` rcdatabase_requiredrs8 6]]77777]7 LreceZdZejZdfd ZddZfdZe j ddZ e j ddZ e j ddZ e j dd Zd Zd Zd Zed ZdZddZdZdZdZdZdZxZS) BaseQueryNc ||_d|_d|_d|_t t |jdi|dSr )rJ_cursor_wrapper _row_type _constructorrrr)rarJrrs rcrzBaseQuery.__init__sJ"# 'i'11&11111rec||_|Sr_rrs rcrzBaseQuery.bindrrecdtt|}d|_|Sr_)rrr\rrs rcr\zBaseQuery.clones+i&&,,.. $ reTc0|r tjnd|_|Sr_)ROWr>r)raas_dicts rcdictszBaseQuery.dicts s%,6$ rec0|r tjnd|_|Sr_)rr=r)raas_tuples rctupleszBaseQuery.tupless&.8D rec0|r tjnd|_|Sr_)rr?r)ra as_namedtuples rc namedtupleszBaseQuery.namedtupless,9Ct rec>|r tjnd|_||_|Sr_)rr@rrra constructors rcr@zBaseQuery.objectss!,7AT' recF|jp|j}|tjkrt |S|tjkrt |S|tjkrt|S|tj krt||j Std|zNzUnrecognized row type: "%s".) rdefault_row_typerr>DictCursorWrapperr= CursorWrapperr?NamedTupleCursorWrapperr@ObjectCursorWrapperrrracursorrow_types rc_get_cursor_wrapperzBaseQuery._get_cursor_wrapper!s>:T%: sx  $V,, ,  " " (( (  ( (*622 2  ( (&vt/@AA A;hFGG Grectr_r^r8s rcr%zBaseQuery.__sql__/r`rec|jr|j}nt}||Sr_)rJrLr#r>)racontexts rcr)z BaseQuery.sql2s< > n4466GGiiG}}T"""rec,||Sr_)_executers rcexecutezBaseQuery.execute9s}}X&&&rectr_r^rs rcrzBaseQuery._execute=r`recjt||Sr_)rwriteratorrs rcr zBaseQuery.iterator@s(DLL**3355666recl|j,|jstd|dSdS)NzQuery has not been executed.)rrJrrrs rc_ensure_executionzBaseQuery._ensure_executionCs>   '> A !?@@@ LLNNNNN ( 'recR|t|jSr_)r rwrrs rcrzBaseQuery.__iter__Is%    D()))rec|t|tr|j}n|}| |dkr|dznd}|j||jj|SNrr)r rvrrr fill_cache row_cache)rar~rxs rcrzBaseQuery.__getitem__Msw    eU # # JEEE  !&!EAIIE ''...#-e44recR|t|jSr_)r rrrs rc__len__zBaseQuery.__len__Xs%    4'(((rec t|Sr_)rOrs rc__str__zBaseQuery.__str__\st$$$rer_rm)rfrgrhrr>rrrr\rerLrrrr@rr%r)rrrr r rrrrrrs@rcrrsx222222  YY YY YY YY H H H"""###'''"""7777 *** 5 5 5)))%%%%%%%rerc,eZdZdfd ZdZdZxZS)RawQueryNc dtt|jdi|||_||_dSr )rrrr_params)rar)rNrrs rcrzRawQuery.__init__as8&h&00000  rec||j|jr!|jD]}||d|Sr)rrrr~rs rcr%zRawQuery.__sql__fsO DI < 2 2 2 %5 1111 rec||j/||}|||_|jSr_rrrrarrs rcrzRawQuery._executem=   '%%d++F#'#;#;F#C#CD ##rer)rfrgrhrr%rrrs@rcrr`s[ $$$$$$$rerc2eZdZdfd ZejdZejdZejdZejdZ ejdZ ejddZ ejdd Z ejdd Z d Zd ZxZS)QueryNc tt|jdi|||_||_||_||_d|_dSr )rr!rrr-_limit_offsetr=)rar5r;limitoffsetrrs rcrzQuery.__init__usM#eT#--f--- !  rec||_dSr_)r=)racte_lists rcr?zQuery.with_cter<rech|j |jf|z}ttj||_dSr_rrs rcr5z Query.whererrech|j |jf|z}ttj||_dSr_)rrtror_rs rcorwherez Query.orwheres/ ; ";.;6KX\;77 rec||_dSr_r9rar%s rcr;zQuery.order_bys rec,|jpd|zpd|_dSr r9r.s rcorder_by_extendzQuery.order_by_extends>/R69Bdrec||_dSr_)r#rs rcr%z Query.limitrrec||_dSr_)r$rs rcr&z Query.offsetr7rec>|dkr|dz}||_||z|_dSr)r#r$)rapage paginate_bys rcpaginatezQuery.paginates+ !88 AID! k) rec|jr:|dt|j|j|jN|jjrB|j |jjn|j}|d||j-|d|j|S)Nz ORDER BY z LIMIT z OFFSET )r-rr)r3r#r$r  limit_max)rar9r%s rc_apply_orderingzQuery._apply_orderings > 2 gl##c-//000 ; "t|'?'*y':(@+/;+>CI''DKE KK " " & &u - - - < # KK # # ' ' 5 5 5 recN|jrtd|jD}|d5||rdndt |jddddn #1swxYwY|S)Nc3$K|] }|jV dSr_)r;)rVrs rcrrz Query.__sql__..s$EEsCNEEEEEEreFrzWITH RECURSIVE zWITH r)r=anyrGrr)r3)rar9rs rcr%z Query.__sql__s > EEdnEEEEEI..  'yE++gFF#mDN3344'#,,,                 sABB!B)NNNNr_)r3)rfrgrhrrerLr?r5r,r;r0r%r&r7r:r%rrs@rcr!r!tsU Y""Y" Y99Y9  Y88Y8  Y  Y  YCCYC YY YY Y***Y*          rer!c0tfd}|S)Nc2r||}}t||Sr_)CompoundSelectQuery)rarr operations rcrz#__compound_select__..methods&  &%D"4E:::re)r)rBrrs`` rc__compound_select__rCs4;;;;;; MreceZdZedxZZedxZZedxZZ edxZ Z eddZ eddZ eddZeddZdZdS) SelectQuery UNION ALLUNION INTERSECTEXCEPTTrc|stdt|f||j}t |dd||j}|S)Nz/select_from() must specify one or more columns.rA)rrPrrJrr@rArBs rcrCzSelectQuery.select_fromsg PNOO O))$t~&&  4$ ' ' 3MM$*--E reN)rfrgrhrCrHrrKr intersectrexcept_rrrrrrCr`rercrErEs--k:::I((111EF--k:::I++H555Gg"";>>>H!!'D999G"";>>>H""8d;;;H     rerEceZdZdZdZed dZed dZeddZedZ edd Z ed Z ed Z d S) SelectBasecVt|j|jpt|fSr_)rrrr'rs rcrzSelectBase._get_hashs$T^T[%>>rec||j/||}|||_|jSr_rrs rcrzSelectBase._executerrercd||d|}|r|dkr|dn|SdSNrr)r)rarrzrowss rcpeekzSelectBase.peeksD||H%%bqb)  /1ff477$ . / /recb|j|kr||_d|_|||S)N)rz)r#rrT)rarrzs rcrmzSelectBase.firsts4 ;!  DK#'D yyQy'''reFc|r'||S||}|r |s|dn|Sr)rrTr)rarrrr0s rcscalarzSelectBase.scalarsY  /::<<$$X.. .kkmm  **6X6s1vv36rec#rK||D] }|dV dSr)rr)rarr0s rcscalarszSelectBase.scalars sD;;==((22  Ca&LLLL  rec|d}|rdx|_|_ |j@|j9|j2|j+|jdur"| td}n#t$rYnwxYwt|gttdg|S)N_wrappedT1)r;rr#r$_having _group_by_windows _distinct_simple_distinctrrQrrPr5COUNTrW)rar clear_limitr\s rcr'zSelectBase.count s %%j11  0+/ /EL5= }$)@~%%/*A%T11 SXX..    D ugS 2 2344;;HEEEsAB B Bc|td}d|_d|_t |S)Nr\r)rrQr#r$boolrW)rarr\s rcexistszSelectBase.exists s= SXX&&  ELLNN###recjd|_ ||dS#t$rYdSwxYwr)rr IndexErrorrs rcrzSelectBase.get sH# <<))!, ,    DD s $ 22NrFFr) rfrgrhrrrrTrmrWrYr'rfrr`rercrNrNs???$$$ //// (((( 7777  F F F F$$$ rerNc`eZdZfdZedZedZdZdZ fdZ xZ S)rActt|||_||_||_dSr_)rrArrrr)rarrrrs rcrzCompoundSelectQuery.__init__' s9 !4((11333rec|jjSr_)r _returningrs rcrnzCompoundSelectQuery._returning- s x""rect|dftdf|}t |S)Nrr\)rPr%rQrrerW)rarr;s rcrfzCompoundSelectQuery.exists1 sJ 1 '#c((55::8DDELLNN###recf|j|jfSr_)r get_query_keyrrs rc_get_query_keyz"CompoundSelectQuery._get_query_key6 s)&&(($(*@*@*B*BCCrec|jj}|r |tkrdS|tkrdS|tkr0|jjs |jjrdSt|t SdSNFT) r compound_select_parenthesesCSQ_PARENTHESES_NEVERCSQ_PARENTHESES_ALWAYSCSQ_PARENTHESES_UNNESTEDrrKrvrA)rar9subq csq_settings rc _wrap_parensz CompoundSelectQuery._wrap_parens9 si;  =k-BBB5 2 2 24 4 4 4y  CI$9 u "$(;<<< <5 4rec|jtkr||Stt|||jp|jtk}||5|||j }| |d5| |j dddn #1swxYwY| d|j z|5|||j}| |d5| |jdddn #1swxYwYdddn #1swxYwY|5||dddn #1swxYwYdddn #1swxYwY||S)Nr+F)rrr!)rrHrrrAr%rrBr{rrAr)rrr#rrEr:r)rar9 outer_parens lhs_parens rhs_parensrs rcr%zCompoundSelectQuery.__sql__K s 9 $ $$$S)) ) !4((00555|B \(A S\ * * * * ***399J!!j5!II " "!!! " " " " " " " " " " " " " " " KK( ) ) )!! & &!..sDH== %%*u%MM&&GGDH%%%&&&&&&&&&&&&&&& & & & & & & & & & & & & & & &!!## * *$$S))) * * * * * * * * * * * * * * *! * * * * * * * * * * * * * * *&$$$s23G%C  G C GC 4G3E9;E" E9"E& &E9)E& *E9- G9E= =GE= GF:. G:F> >GF> GGG) rfrgrhrrrnrrfrrr{r%rrs@rcrArA& s ##X#$$$DDD===$%%%%%%%%%rerAceZdZ dfd ZfdZejdZeZejdZ e dZ e j dZ ejdZ ejejdfd Zdd Zejd Zd Zejd ZejdZejdZejddZejddZdZddZfdZxZS)rPNc  tt|jdi| t|trt |n|pg|_||_||_||_ d|_ ||_ ||_ | |_ | |_dx|_|_|r$t|t"r||_n||_d|_dSr )rrPrrvrar` _from_listrnr^r]r_ _for_update_for_update_of_for_update_nowait_lateralr`rarer) ra from_listrgroup_byhavingrwindows for_update for_update_ofrlateralrrs rcrzSelect.__init__j s %fd$..v....8E.J.J*4 ??? )1.0 !!  %+"( 155.  *(D)) *(0%%!)#rectt|}|jrt |j|_|Sr_)rrPr\rr`rar\rs rcr\z Select.clone sAfd##))++   6#E$455E  rec||_dSr_rn)rarrs rcrzSelect.columns s !rec>t|j|z|_dSr_)rarnrs rc select_extendzSelect.select_extend s007:rec|jSr_rrs rcselected_columnszSelect.selected_columns s rec||_dSr_rrs rcrzSelect.selected_columns s rec.t||_dSr_)r`rrasourcess rcfrom_z Select.from_ sw--rec|jstd|j}|jt ||||dS)NNo sources to join on.)rrrrr)rarrrrs rcrUz Select.join sX 7566 6""$$ tD$ 2>>?????recD||tj|Sr_rUr?r4rs rcrzSelect.left_outer_join syyt333recg}|D]ittr=jstd|fdjDT|j||_dS)NQCannot pass a table to group_by() that does not have columns explicitly declared.c0g|]}t|Sr`rrVcol_namers rcrYz#Select.group_by.. 9!B!B!B%-")!:!:!B!B!Bre)rvrSrrr7rr^rargroupingrs @rcrzSelect.group_by s ( (F&%(( (2$&1222!B!B!B!B17!B!B!BCCCC''''!recHt|jpd|z}|j|S)z$@Node.copy used from group_by() callr`)rar^r)rar%rs rcgroup_by_extendzSelect.group_by_extend s*-2..7t}h''rech|j |jf|z}ttj||_dSr_)r]rtrrrs rcrz Select.having s/ < #$gennc*4>::;;gclll!!## ? ?,,S+>> ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? N%%%%88NNKK))--mDO.L.LMMMNNNNNNNNNNNNNNN{& I&&**4;777~ M L))--mDN.K.KLLL|' J''++DL999}( J''' dm44555   % % % <y+5$&4555 C    $"2D4G"&"9;;<< >M<G> E.M<<NN) NNNNNNNNNNr_TNNrmr)rfrgrhrr\rerLrrrrrrrr?r3rUrrrrrrGrrrrrr%rrs@rcrPrPi s>>BFJ:>$$$$$$0  Y""Y" F Y;;Y;X    Y((Y( Y#':$@@@Y@ 4444 Y " "Y "(((  Y::Y:  Y%%Y% Y55Y5 Y)))Y) Y   Y 7777F%F%F%F%F%F%F%F%F%rerPcpeZdZd fd Zd dZejdZdZdZ dZ d Z d Z fd Z xZS) _WriteQueryNc z||_||_|rdnd|_tt|jdi|dS)NTFr`)r(rn_return_cursorrrr)rar( returningrrs rcrz_WriteQuery.__init__( sK #&/:ddU)k4  )33F33333reFc*t|||||Srrrs rcrz_WriteQuery.cte. rrec*||_|rdnd|_dSNTF)rnr)rars rcrz_WriteQuery.returning2 s #&/:ddUrec|jrf|5|dt |jdddn #1swxYwY|S)Nz RETURNING )rnrCrr)r3r8s rcapply_returningz_WriteQuery.apply_returning7 s ? O!!## O O M**..}T_/M/MNNN O O O O O O O O O O O O O O O s;A##A'*A'c|jr||}n||}|||Sr_)rnexecute_returningr handle_resultrs rcrz_WriteQuery._execute= sJ ? ,++H55FF%%d++F!!(F333rec||j/||}|||_|jSr_rrs rcrz_WriteQuery.execute_returningD rrec>|jr|S||Sr_)r rows_affectedrs rcrz_WriteQuery.handle_resultJ s&   M%%f---rec8|jj|j|j<dSr_)r(rfrr8s rc_set_table_aliasz_WriteQuery._set_table_aliasO s(, (;$*%%%rectt|||||Sr_)rrr%rrar9rs rcr%z_WriteQuery.__sql__R s< k4  ((--- c""" rer_r)rfrgrhrrrerLrrrrrrr%rrs@rcrr' s444444 .... Y;;Y; 444$$$ ... <<<rercJeZdZdfd ZejdZfdZxZS)rNc ftt|j|fi|||_d|_dSr_)rrrr_from)rar(rrrs rcrzUpdate.__init__\ s:$fd$U55f555  rec||_dSr_)rrs rcrz Update.from_a s  rec tt|||d5|dg}t |j|jD]\}}t|ts=t|tr| |}nQt|d}n?t|tr*t|tr| |}t|tst!|}|t%|t'd|f||jdt-||jrh|d 5|d t-|jdddn #1swxYwY|jrY|5|d |jdddn #1swxYwY||||cdddS#1swxYwYdS) NTr=zUPDATE rFrrz SET r+rr)rrr%rErsortedrr rrvrer2to_valuerYrAr6rrrurQr)r(r3rrCrrAr:r)rar9rkrXrs rcr%zUpdate.__sql__e sN fd##C(((   t  , ," -" - KK " " "Kt|11339LMMM ? ?1!!T** &!!U++3JJqMM!!E2225))&jO.L.L& 1 A!!U++)%a((A""8QC!,<#=#=>>>> c$*ooggc- ,,---z I%%%%88IIKK))--mDJ.G.GHHHIIIIIIIIIIIIIII{ <%%''<<KK **..t{;;;<<<<<<<<<<<<<<<   % % %'',,E" -" -" -" -" -" -" -" -" -" -" -" -" -" -" -" -" -" -s[FK;H# K#H' 'K*H' +K .J7 KJ K J ,KK Kr_) rfrgrhrrerLrr%rrs@rcrr[ ss  YY%-%-%-%-%-%-%-%-%-rerceZdZdZdZdZGddeZdfd ZdZ e j dd Z e j dd Z e j dd Ze j d ZdZdZdZdZdZdZfdZfdZdZxZS)r rrrjceZdZdS)Insert.DefaultValuesExceptionNrr`rercDefaultValuesExceptionr rrerNc tt|j|fi|||_||_||_d|_d|_dSrh)rr r_insertr _on_conflict _query_type _as_rowcount)rar(r rrrrs rcrzInsert.__init__ sT$fd$U55f555  '!rec td)Nz*INSERT queries cannot have a WHERE clause.r^rs rcr5z Insert.where s!"NOOOreTc||_dSr_)r)rars rc as_rowcountzInsert.as_rowcount s(rec6|rtdnd|_dS)NIGNORErr)raignores rcon_conflict_ignorezInsert.on_conflict_ignore s"4:DJx000rec6|rtdnd|_dSNrr)rars rcon_conflict_replacezInsert.on_conflict_replace s"5<FJy111$rec4|s|r t|i|nd|_dSr_rrs rcrzInsert.on_conflict s4=A'V'Z8888"& recr|js|d||jf|S)NError: no data to insert.)rr_generate_insertr8s rc_simple_insertzInsert._simple_insert s<| K--.IJJ J$$dl_c:::reciSr_r`rs rcget_default_datazInsert.get_default_data s recPjjrfdjjDSdS)NcZg|]'}|jjktj|(Sr`)r(rr)rVcolras rcrYz.Insert.get_default_columns.. s>777dj555DJ,,555re)r(rrs`rcget_default_columnszInsert.get_default_columns sI :  77777 8K777 7 7 7rec, t|}|j}|}|s& t|}n##t$r|dwxYwt |ts&|}|tdng}|D]A}t |trt|j |}| |Bt|} t|| z D]} | | t|fd}t!jt|f|}ng} t} |D]Y}t |trt|j |} n|} | | | | Z| }t|fdD]} | | vr| | t}t}i}|D]}||jg}t |t(rp|j|jkr| |j|jr||t |t.r|||||<t3|dd|D}g}|D]=}g}t |t}t7|D]\}\}} |r-||D]} ||}n#t8$rYwxYwt8n||}n[#t8t:f$rG||vr"||}t=|r |}n||vrd}ntd|jzYnwxYwt |t>rt |t@r||vrtC||d }| || t3|?|s|d "d 5tG|cdddS#1swxYwYdS)NzError: no rows to insert.z!Bulk insert must specify columns.c.|Sr_rrr9s rcrxz)Insert._generate_insert.. 8H8H8M8Mrerc.|Sr_rrs rcrxz)Insert._generate_insert.. rrez VALUES cNg|]"}|t|tr|jndf#Sr_)rvr2r )rVrs rcrYz+Insert._generate_insert.. sB### 65(A(AKV__t L###rezMissing value for %s.F)r/rrTr=)$rwrrnext StopIterationrrvr rrr9rr(rrPr itertoolschainrrr2 column_namenullr6r)r.r enumeraterrh callable_rerArYrEr3)rar r9 rows_iterrdefaultsr0accumr column_setr clean_columnsseen column_obj fk_fieldsnullable_columns value_lookupslookupscolumns_converters all_valuesr%is_dictrr/lookupvals ` rcrzInsert._generate_insert sLL -((**( ( O9oo  O O O112MNNN Oc7++ O2244?$%HIII#!))F!&*55=!(V!>>##!### # 8# 8CF g..G*34F*G*G # #&&FIP% '4F&;++F(&)&k"'%$,111TT1#+N#("!f *-PPP))&v.$S>>("%#%%C#333"()@6;)NOOOP"#t,,HC1G1GH1791D1DyGGGC c""""   .v66 7 7 7 7 K--.IJJ J   t  , , 6 677=4455 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6sTA A  M-L75M7 M MM MAN0/N0"R  R R c|t|jd|jSr)r)r.rrrr8s rc _query_insertzInsert._query_insert/ s<%dm4455T\"" $recn|js|dS|j|SNzDEFAULT VALUES)rJrdefault_values_insertr8s rc_default_valueszInsert._default_values5 s5~ 1;;/00 0~33C888recDtt|||5d}|j|j||}||ptdd|j dt|j trU|j sN ||n%#|j$r||YnwxYwtj|_ntt|j t&tfr'||tj|_n,||j |tj|_|jE|j||}|(|d|||cdddS#1swxYwYdS)NINSERTz INTO r)rr r%rErrr)rQrr(rvrr rrrrSIMPLErrErQUERYrMULTIrr)rar9stmtrrs rcr%zInsert.__sql__: s1 fd##C(((      - -D ,(??TJJ c$'#h--((ghc$*oogclll$,00 0 0.'',,,,2...((-----.#)=  DL;*<== 0""3'''#)<  %%dlC888#)<  ,*>>sDII%KK$$((000'',,; - - - - - - - - - - - - - - - - - -s7B(H'C=<H=DHDC)HHHc|j%|jr|jjr|jjf|_ t t ||S#|j$rYdSwxYwr_)rnreturning_clauser(rrr rr)rarrs rcrzInsert._execute[ sw ? "x'@ "z& ##z68DO &&//99 9*    DD s'A A%$A%c|jr|S|jr||S|||jSr_)rrrlast_insert_idrrs rcrzInsert.handle_resultd sJ   M   2))&11 1&&vt/?@@@reNNNrm)rfrgrhrrr Exceptionrrr5rerLrrrrrrrrrrr%rrrrs@rcr r  s F E E11111111""""""PPP Y)))Y) YEEEYE YGGGYG Y((Y(;;; 777 p6p6p6d$$$ 999 -----BAAAAAAArer ceZdZfdZxZS)rc"tt|||d5|d|j|jY|5|d|jdddn #1swxYwY| || |cdddS#1swxYwYdS)NTr= DELETE FROM r) rrr%rErr)r(rrAr:rrs rcr%zDelete.__sql__m sv fd##C(((   t  , , - - KK ' ' + +DJ 7 7 7{&%%''<<KK **..t{;;;<<<<<<<<<<<<<<<   % % %'',, - - - - - - - - - - - - - - - - - -s7A D .C7 DC D C ,DD D)rfrgrhr%rrs@rcrrl s8 - - - - - - - - -rerceZdZ d dZejd dZejdZejd dZdZ dS) r9FNc||_t|tst|n||_||_||_||_||_||_ dSr_) rrvrSrf_table _expressionsr_unique_safe_using)rarr(runiquesafer5usings rcrzIndex.__init__{ sQ +5eU+C+CNfUmmm '    reTc||_dSr_)r,)rar,s rcr/z Index.safe s  rech|j |jf|z}ttj||_dSr_rrs rcr5z Index.where rrec||_dSr_)r-)rar-s rcr0z Index.using s  rec|jrdnd}|d5|||jr|d|jjr_t |jtrE|jj r9t|jj |j }t|jj }nt|j }|j}| ||j)|jjr|d|jz|d |d|j)|jjs|d |jz| t!d |jD|j-|d  |jdddn #1swxYwY|S) NzCREATE UNIQUE INDEX z CREATE INDEX Tr=IF NOT EXISTS z USING %sr"rz USING %s cZg|](}t|trt|n|)Sr`)rvr9rQ)rVrs rcrYz!Index.__sql__.. sA&/&/&/(j99CD t&/&/&/rer)r+rErr,r index_schema_prefixrvr)rSrrfrrfr)r-index_using_precedes_tabler.r*r)rar9 statement index_name table_names rcr%z Index.__sql__ s*.2lO**   t  , ,! 8! 8 KK " " "z . ,---y, )$+u-- )26+2E )#DK$7DD #DK$899 #DJ// ![ GGJ   {&y3' K$+5666 gfooc*oogclll{&y3' K$+5666 GG$&/&/ -&/&/&/00 1 1 1{& I&&**4;777C! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8! 8F sG G;;G?G?)FFNNrmr_) rfrgrhrrerLr/r5r0r%r`rercr9r9z sDI#' YY Y99Y9  YY%%%%%rer9c*eZdZ dfd ZdZxZS)rBFTNc ||_||||}|1|D].}t|trt |dr|j}/t t|||j j |||||dS)N index_type)rr(rr.r/r5r0) r_generate_name_from_fieldsrvr2rr>rrBrr'r() rarAfieldsr.r/r5r0rfieldrs rcrzModelIndex.__init__ s <225&AAD = - -eU++-|0L0L-!,E j$((+# )     recdg}|D]}t|tr.||dEt|tr)t|t s|}t|t r||j|stdtj ddd |}|j }|j r|jn|j}t!d ||fS)NrzJUnable to generate a name for the index, please explicitly specify a name.[^\w]+r(rq)rvr9rrrer2rkrrrerjrUr'legacy_table_namesrr;_truncate_constraint_name)rarAr@rrAclean_field_namesrHprefixs rcr?z%ModelIndex._generate_name_from_fields s 4 4E%,, 4 U[[]]1-....eT**+:eU3K3K+!LLNNEeU++4LL!2333 ;:;; ;F9b#((5//BB{"5J4?(6;L2M)N)NOOOre)FTNNN)rfrgrhrr?rrs@rcrBrB sYEI"&$PPPPPPPrerB@ct||krStj|d}|d|dz d|dd}|S)Nutf-8rCrq)rhashlibmd5encode hexdigest)r"maxlen name_hashs rcrFrF si :K 1 1' : :;;EEGG *=VaZ= 9 9 99RaR==I receZdZfdZxZS)PeeweeExceptionc|r3t|dtr|d|ddc|_}tt|j|dSr)rvr#origrrTr)rarrs rcrzPeeweeException.__init__ sY  0JtAw 22 0"1gtABBxODIt-ot$$-t4444rerfrgrhrrrs@rcrTrT s8555555555rerTceZdZdS)r8Nrr`rercr8r8 rrer8ceZdZdS)r%Nrr`rercr%r% rrer%ceZdZdS)r'Nrr`rercr'r' rrer'ceZdZdS)r;Nrr`rercr;r; rrer;ceZdZdS)r<Nrr`rercr<r< rrer<ceZdZdS)r=Nrr`rercr=r= rrer=ceZdZdS)rDNrr`rercrDrD rrerDceZdZdS)rFNrr`rercrFrF rrerFceZdZdS)rKNrr`rercrKrK rrerKc$eZdZdZdZdZdZdS)ExceptionWrapper exceptionsc||_dSr_rc)rards rcrzExceptionWrapper.__init__ s $recdSr_r`rs rcrzExceptionWrapper.__enter__ rec|dSt6|j|jvr(t|tjr|jd}nd|_d|_g|_g|_dSr@)closedconnr9 transactionsrs rcrz_ConnectionState.reset8 s%  rec>||_d|_g|_g|_dSrh)rrr9rrars rcset_connectionz_ConnectionState.set_connection> s%  re)rfrgrhrrrrrs@rcr}r}3 sV rer}ceZdZdS)_ConnectionLocalNrr`rercrrE rrerceZdZdZdZdZdS) _NoopLockr`c|Sr_r`rs rcrz_NoopLock.__enter__H srecdSr_r`rs rcrz_NoopLock.__exit__I rgreN)rfrgrhrrrr`rercrrF s'I$$$77777rerc*eZdZdZdZdZdZdZdS)rrMc||_dSr_rrarMs rcrzConnectionContext.__init__N s bDGGGrecn|jr|jdSdSr_)rM is_closedconnectrs rcrzConnectionContext.__enter__O s: 7      GOO       rec8|jdSr_)rMclosers rcrzConnectionContext.__exit__R s47==?????rec@tfd}|S)Ncptj5|i|cdddS#1swxYwYdSr_)rrMrs rcrz)ConnectionContext.__call__..innerT s"47++ + +r4*6** + + + + + + + + + + + + + + + + + + +//rrs`` rcrzConnectionContext.__call__S rreN)rfrgrhrrrrrr`rercrrL sLI(((CBBrerceZdZeZiZiZdZdZdZ e Z dZ dZ dZdZdZdZdZdZdZdZ dAdZdZdZd Zd Zd ZdBd Zd ZdZdZdZ dZ!dZ"dZ#dCdZ$dCdZ%dDdZ&dZ'dZ(dZ)dZ*dZ+dDdZ,dZ-dZ.dZ/d Z0d!Z1d"Z2d#Z3d$Z4d%Z5d&Z6d'Z7d(Z8d)Z9d*Z:d+Z;d,ZdDd/Z?dDd0Z@dDd1ZAdDd2ZBdDd3ZCdDd4ZDd5ZEd6ZFd7ZGd8ZHd9ZId:ZJd;ZKd<ZLdEd=ZMdEd>ZNd?ZOePd@ZQdS)Fr$r0rNFTc $tt|j|_tt|j|_|r|j||r|j|||_||_ |r,t|_ tj |_n&t|_ t!|_|rt#d|t#di|_|j|fi|dS)NzPeewee no longer uses the "autorollback" option, as we always run in autocommit-mode now. This changes psycopg2's semantics so that the conn is not left in a transaction-aborted state.a^Peewee no longer uses the "autocommit" option, as the semantics now require it to always be True. Because some database-drivers also use the "autocommit" parameter, you are receiving a warning so you may update your code and remove the parameter, as in the future, specifying autocommit could impact the behavior of the database driver you are using.)rPFIELD field_types _field_typesrEr _operationsr autoconnect thread_safer_state threadingLock_lockr}rrconnect_paramsinit) rarr autorollbackrr autocommitrrs rcrzDatabase.__init__p s&'ud.>??%b$/::  2   $ $[ 1 1 1  0   # #J / / /&&  %*,,DK"))DJJ*,,DK"DJ  J I J J J  ! < = = =! (%%f%%%%%rec |s|||_|j|t | |_dSr_)rrrrrredeferred)rarrs rcrz Database.init sS~~  JJLLL   ""6*** NN* rec|r||}|jj|||Sr_)rrrrr9rrr8s rcrzDatabase.__enter__ sX >>    LLNNNkkmm s###  rec|jj} |||||jjs|dSdS#|jjs|wwxYwr_)rr9rrr)rarr r!r9s rcrzDatabase.__exit__ s|ko!!##  LL7F 3 3 3;?    4;?   s A#A>c t|Sr_rrs rcrzDatabase.connection_context rrectr_r^rs rc_connectzDatabase._connect r`rec|j5|jrtd|jjs|r ddddSt d|jt5|j| |j | |jj | |jj dddn #1swxYwYdddn #1swxYwYdS)N@Error, database must be initialized before opening a connection.FzConnection already opened.T)rrr<rrrFr__exception_wrapper__rrserver_version_set_server_versionr_initialize_connection)ra reuse_if_opens rcrzDatabase.connect s Z > >} E$&DEEE;% E !  > > > > > > > >''CDDD K     & > > **4==??;;;&.,,T[-=>>>++DK,<===  > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >ts;&C?/C?*A2C( C?(C, ,C?/C, 0C??DDcdSr_r`rs rcrzDatabase._initialize_connection  recd|_dSr)rrs rcrzDatabase._set_server_version srec|j5|jrtd|rt d|jj } |r>t5||jj dddn #1swxYwY|j n#|j wxYw|cdddS#1swxYwYdS)Nrz7Attempting to close database while transaction is open.) rrr<in_transactionrFrrr_closerr)rais_opens rcrzDatabase.close s Z  } E$&DEEE""$$ ?&(>???+,,G $6.66 DK$4555666666666666666 !!#### !!####                  sNAC B* B9 B*B B* B B*C*CCCCc.|dSr_)rrs rcrzDatabase._close s rec|jjSr_rrrs rcrzDatabase.is_closed s {!!rec|jj Sr_rrs rcis_connection_usablezDatabase.is_connection_usable s;%%%recj|r||jjSr_)rrrrrs rc connectionzDatabase.connection s, >>    LLNNN{rec|td|r+|jr|nt d|jjS)N,"commit" has been deprecated and is a no-op.z&Error, database connection not opened.)rrrrr<rrr)racommit named_cursors rcrzDatabase.cursor sk   I J J J >>   O O $%MNNN{&&(((rec|tdt||ft5|}|||pddddn #1swxYwY|SNrr`)rloggerdebugrrr)rar)rNrrs rc execute_sqlzDatabase.execute_sql s   I J J J c6]### " . .[[]]F NN3 " - - - . . . . . . . . . . . . . . . s-A..A25A2c |td|jdi|}||\}}|||Sr)rrLr)r;r)rar;rcontext_optionsr9r)rNs rcrzDatabase.execute sd   I J J J"d"55_55ggenn**,, VV,,,rec |j|j|j|j|j|j|j|j|j|j |j |j d S)N) rrr4r[rurrrr7r8r9r) rrr4r[rurrrr7r8r9rrs rcget_context_optionszDatabase.get_context_options sU,*ZZ+/+K"&"9#3/#'#;*.*I"1   rec r|}|r|||jdi|Sr )rr context_class)rarrs rcrLzDatabase.get_sql_context sF**,,  , NN? + + +!t!,,G,,,rectr_r^rarr;s rcrzDatabase.conflict_statement r`rectr_r^rs rcrzDatabase.conflict_update r`rec |jrYtd}td|jD}|j$t |td|jg}n:td}|j}t |trt|}g}|j rx|j D]p}t tdt|fd}t t|td|f}| |q|j r|j D]\} } t | tsgt | trt|j| } t | t"r| | } n!t'| d } nt)| } | t t| td| f||td t+|g} |jr6| tdt)|jft | S) N ON CONFLICTcZg|](}t|trt|n|)Sr`r8rVrs rcrYz6Database._build_on_conflict_update..# sA'9'9'9 *#z::Cs '9'9'9rerBzON CONFLICT ON CONSTRAINTr1rRrrFrz DO UPDATE SET)rrQr.rrurrvr9rfrrgrrr rerr(r2rrYrMr3rr7) rarr;rtargetupdatesrexcluded expressionrrXrps rc_build_on_conflict_updatez"Database._build_on_conflict_update sw  ' (}%%D%'9'9&7'9'9'9::F*6!63w<<#.#>#@AA233D 5F&*-- (   +%/ + +#S__mF6K6K$L),...%}V'<'|jjSr_)rrrrs rcrzDatabase.pop_transactiono s{'++---rec4t|jjSr_)rrrrs rctransaction_depthzDatabase.transaction_depthr s4;+,,,recB|jjr|jjdSdSNrt)rrrs rctop_transactionzDatabase.top_transactionu s) ; # 0;+B/ / 0 0rec"t|g|Ri|Sr_rrs rcrzDatabase.atomicy rrec t|Sr_rrs rcrzDatabase.manual_commit| rrec"t|g|Ri|Sr_rrs rcrzDatabase.transaction rrec t|Sr_rrs rcrzDatabase.savepoint rrec|r|t5|dddddS#1swxYwYdS)NBEGINrrrrrrs rcrzDatabase.begin s >>    LLNNN " + + KKMM ! !' * * * + + + + + + + + + + + + + + + + + +s(A%%A),A)ct5|dddddS#1swxYwYdS)NROLLBACKrrrrs rcrzDatabase.rollback s " . . KKMM ! !* - - - . . . . . . . . . . . . . . . . . .(=AAct5|dddddS#1swxYwYdS)NCOMMITr rs rcrzDatabase.commit s " , , KKMM ! !( + + + , , , , , , , , , , , , , , , , , ,r c#Kt||D]8}|5|D]}|V dddn #1swxYwY9dSr_)r r)raryrzr|rs rc batch_commitzDatabase.batch_commit sR^^  E   CIIII                 s AA A ct|r|}|jj}|jj}|||vS)N)r)r&r'r;r get_tables)rar;rrAs rc table_existszDatabase.table_exists sD J   (E/J['FT__F_;;;;rectr_r^)rars rcrzDatabase.get_tables r`rectr_r^rar(rs rc get_indexeszDatabase.get_indexes r`rectr_r^rs rc get_columnszDatabase.get_columns r`rectr_r^rs rcget_primary_keyszDatabase.get_primary_keys r`rectr_r^rs rcget_foreign_keyszDatabase.get_foreign_keys r`rectr_r^)raseqs rcsequence_existszDatabase.sequence_exists r`rec Dt|D]}|jdi|dSr ) sort_models create_table)ramodelsoptionsrAs rc create_tableszDatabase.create_tables s? (( * *E E  ) ) ) ) ) ) * *rec ^tt|D]}|jdi|dSr )rr! drop_table)rar#rrAs rc drop_tableszDatabase.drop_tables sGk&1122 ' 'E E  & &v & & & & ' 'rectr_r^ra date_part date_fields rc extract_datezDatabase.extract_date r`rectr_r^r*s rc truncate_datezDatabase.truncate_date r`rectr_r^rar,s rc to_timestampzDatabase.to_timestamp r`rectr_r^r1s rcfrom_timestampzDatabase.from_timestamp r`rec4tSr_)r5randomrs rcr6zDatabase.random syy{{rec@|D]}||||dS)N) bind_refs bind_backrefs)r)rar#r8r9rAs rcrz Database.bind s: O OE JJty J N N N N O Orec&t||||Sr__BoundModelsContext)rar#r8r9s rcrzDatabase.bind_ctx s"64MJJJrec|ttdtdS)N0r)rPrrQr5r8s rcget_noop_selectzDatabase.get_noop_select s@wwvxx''C1177CAABBBrectds-Gfdd}tdtfd|i_jS)NrceZdZZdS)Database.Model..MetaNrrsrcrrC rrerrrrs` rcrAzDatabase.Model rre)TFNNNTrrr_TT)Rrfrgrhr#rrrr4r[rrvrurr7r8r9rrsafe_create_indexsafe_drop_index sequencestruncate_tablerrrrrrrrrrrrrrrrrrrLrrrr!rrrrrrrrrrrrrrrrrrrrrrrrrr%r(r-r/r2r4r6rrr@rrAr`rercr$r$[ sMMKJ E EN#8J!&INOIN@E?C!$&$&$&$&L+++'''"""$      """"&&&   ))))----   --- """"""+++Z    ---......555...---000...333   +++ ...,,, <<<<"""""""""""""""""""""""***'''""""""""""""OOOOKKKKCCCXrer$c8fd}fd}t||S)Nc.|Sr_pragmars rcr~z__pragma__..__get__ s{{4   rec0||Sr_rK)rar~rs rc__set__z__pragma__..__set__ s{{4'''re)r)rr~rNs` rc __pragma__rO sE!!!!!((((( GW % %%rec eZdZejejejejejejdZdddZ dZ dZ e Z dZfdZdJfd Zd Zd ZdZdZdZedd fdZedZedZedZedZedZedZedZedZ edZ!edZ"edZ#edZ$e%dZ&e&j'dZ&d Z(d!Z)d"Z*d#Z+dKd$Z,dKd%Z-dLd&Z.dLd'Z/ dMd(Z0dMd)Z1dKd*Z2dKd+Z3dLd,Z4dLd-Z5d.Z6d/Z7d0Z8d1Z9d2Z:d3Z;d4Zd7Z?dLd8Z@d9ZAdLd:ZBd;ZCd<ZDdLd=ZEdLd>ZFdLd?ZGdLd@ZHdLdAZIdLdBZJdCZKdDZLdEZMdFZNdGZOdHZPdIZQxZRS)NrR)rrr!r)r"r/GLOBr)rrTrtFc|dd|_tt|j|g|Ri|i|_i|_i|_i|_g|_ t|_ i|_ | tdd| tdd|jdk|_dS)Npragmasr`r+rj date_trunc)rr)r_pragmasrrRr _aggregates _collations _functions_window_functions_table_functionsrP _extensions _attachedregister_functionrrrr)rarrrrs rcrzSqliteDatabase.__init__ s 9b11 ,nd##,XGGGGGGG!# "55 0+qAAA 1<CCC"1Z?reNr<c D|||_t|jtr+t|j|_|&t dkrt jd||_||_ tt|j |fi|dS)N)r#rz.RETURNING clause requires Sqlite 3.35 or newer) rVrvrr`r __sqlite_version__rrr_timeoutrrRr)rarrStimeoutrrrs rcrzSqliteDatabase.inits  #DM dmT * * 8 !4!4!6!677DM  '!J.. NOOO$4D ! (nd##(< )  " "4 ( ( ( = $   d # # # d### d### T"""  * , ,  ' ' - - -   ."&"7 . .''----   (  ! !$ ' ' ' ' ' ( (rec|}|jD]!\}}|d|d|d"|dS)NzPRAGMA z = ;)rrVrr)rarrrLr~s rcrlzSqliteDatabase._set_pragmas-s[!] @ @MFE NNN> ? ? ? ? rec|}|jD]!\}}|d|d|d"|dS)NATTACH DATABASE "" AS "r)rr]r rr)rarrrrMs rcrkz SqliteDatabase._attach_databases3sg,,.. H HHD" NNNRRRF G G G G recV|d|d|}d|z}|turN|d|pdzz }|rAt|jpd}|||<t||_n|rt d||}|r|dSdS)Nr".z PRAGMA %sz = %srr`z/Cannot specify a permanent pragma without value)SENTINELrrVr`r rrfetchone)rarr~ permanentrr)rSr0s rcrLzSqliteDatabase.pragma9s   %vvss+CC  7ejq) )C 6t}233$ $W]]__ 5 5  PNOO Os##,,..  q6M  re cache_size foreign_keys journal_modejournal_size_limit mmap_size page_sizeread_uncommitted synchronouswal_autocheckpointapplication_id user_version data_versionc|jSr_)rbrs rcrczSqliteDatabase.timeoutVs }rec|j|krdS||_|s|d|dzzdSdS)NzPRAGMA busy_timeout=%d;i)rbrr)rasecondss rcrczSqliteDatabase.timeoutZs` =G # # F ~~ K   6'D.I J J J J J K Krecx|jD]\}\}}|||| dSr_)rWr create_aggregaterarrklass num_paramss rcrmzSqliteDatabase._load_aggregatesesO)-)9)?)?)A)A ; ; %D%5*  ! !$ E : : : : ; ;recp|jD]\}}|||dSr_)rXr create_collation)rarrr5s rcrnzSqliteDatabase._load_collationsisG(..00 , ,HD"  ! !$ + + + + , ,rec||jD]!\}\}}}|rd|ini}|j|||fi|"dS)N deterministic)rYr create_function)rarrr5n_paramsrrs rcrozSqliteDatabase._load_functionsmsk37?3H3H3J3J ? ? /D/2x9FNo}55BF D x > >v > > > > ? ?recx|jD]\}\}}|||| dSr_)rZr create_window_functionrs rcrpz%SqliteDatabase._load_window_functionsrsS)-)?)E)E)G)G A A %D%5*  ' 'j% @ @ @ @ A Arec||f|j|p|j<|s)||dSdSr_)rWrfrlrrmrrarrrs rcregister_aggregatez!SqliteDatabase.register_aggregatevsg.decorator|s  # #E4 < < <Lrer`rarrr3s``` rc aggregatezSqliteDatabase.aggregate{0       recp|jfd}||_||j<|s)||dSdS)NcN|tdzfz}t|S)Nz collate %s)rQru)rrrs rc _collationz5SqliteDatabase.register_collation.._collations+#lT&9":":!<.decorators  # #B - - -Irer`rarr3s`` rcr^zSqliteDatabase.collations*      rec|||f|j|p|j<|s)||dSdSr_)rYrfrror)rar5rrrs rcr^z SqliteDatabase.register_functions\02J /N+ ,~~ 4  !2!2 3 3 3 3 3 4 4recfd}|S)Nc8||Sr_)r^)r5rrrras rcr3z&SqliteDatabase.func..decorators"  " "2tZ G G GIrer`)rarrrr3s```` rcr>zSqliteDatabase.funcs6        rec|p|j}||f|j|<|s)||dSdSr_)rfrlrZrrprrs rcregister_window_functionz'SqliteDatabase.register_window_functionsl-u~++--(-z':t$~~ ;  ' '(9(9 : : : : : ; ;recfd}|S)Nc6||Sr_)rrs rcr3z1SqliteDatabase.window_function..decorators  ) )%z B B BLrer`rs``` rcwindow_functionzSqliteDatabase.window_functionrrec|||_|j||s)||dSdSr_)rr[rrrqr)rarrs rcregister_table_functionz&SqliteDatabase.register_table_functionsd  EJ $$U+++~~ . NN4??,, - - - - - . .recfd}|S)Nc4||Sr_)r)rrras rcr3z0SqliteDatabase.table_function..decorators  ( ( 5 5 5Lrer`rs`` rcrszSqliteDatabase.table_functions*      rec|j|=dSr_)rWrs rcunregister_aggregatez#SqliteDatabase.unregister_aggregate  T " " "rec|j|=dSr_)rXrs rcunregister_collationz#SqliteDatabase.unregister_collationrrec|j|=dSr_)rYrs rcunregister_functionz"SqliteDatabase.unregister_functions OD ! ! !rec|j|=dSr_)rZrs rcunregister_window_functionz)SqliteDatabase.unregister_window_functions  "4 ( ( (rect|jD]\}}|j|krndS|j|dSrt)rr[rr)rarrrs rcunregister_table_functionz(SqliteDatabase.unregister_table_functionsZ#D$9::  JCzT!!"5 !!#&&&trecn|d|jD]}||dSr@)enable_load_extensionr\load_extension)rar extensions rcrrzSqliteDatabase._load_extensionssI ""4((() + +I    * * * * + +rec|j||s@|}|d||dSdSr@)r\rrrrr)rarrs rcrzSqliteDatabase.load_extensionsr Y'''~~ +??$$D  & &t , , ,    * * * * * + +rec:|j|dSr_)r\remove)rars rcunload_extensionzSqliteDatabase.unload_extensions  *****rec||jvr%|j||krdStd|z||j|<|s|d|d|ddS)NFzschema "%s" already attached.rwrxrT)r]rFrr)rafilenamers rcattachzSqliteDatabase.attachs 4> ! !~d#x//u"#BT#IJJ J't~~ P    xxxN O O Otrec||jvrdS|j|=|s|d|zdS)NFzDETACH DATABASE "%s"T)r]rrrs rcdetachzSqliteDatabase.detachsO t~ % %5 N4 ~~ <   3d: ; ; ;trec|js|jS|tjkr, |ddS#tt t f$rYnwxYw|Sr)rrr rrhr TypeErrorrs rcr!zSqliteDatabase.last_insert_idsb$ # # 6= ( ( ay|#)4     s .AAcJ |jS#t$r|jjcYSwxYwr_rrrrs rcrzSqliteDatabase.rows_affected; *? " * * *=) ) ) ) *  ""cB|rd|znd}||dS)NzBEGIN %srr)ra lock_typer9s rcrzSqliteDatabase.begins0.7DJ**W  #####rect5|jjcdddS#1swxYwYdSr_)rrrrrs rcrzSqliteDatabase.commits " - -;#**,, - - - - - - - - - - - - - - - - - - 377ct5|jjcdddS#1swxYwYdSr_)rrrrrs rcrzSqliteDatabase.rollbacks " / /;#,,.. / / / / / / / / / / / / / / / / / /rcx|pd}|d|zd}d|DS)Nmainz>SELECT name FROM "%s".sqlite_master WHERE type=? ORDER BY name)r(cg|]\}|Sr`r`r/s rcrYz-SqliteDatabase.get_tables..s222222rerfetchall)rarrs rcrzSqliteDatabase.get_tables sR!6!!#9;A#BCMOO22 1 12222recPd|pdz}d||dDS)NzCSELECT name, sql FROM "%s".sqlite_master WHERE type=? ORDER BY namerc g|] }t| Sr`r{r/s rcrYz,SqliteDatabase.get_views..sOOOs c"OOOre)viewr)rarr)s rc get_viewszSqliteDatabase.get_viewss:#)#3V5OOd.>.>sI.N.NOOOOrec^ |pd}d|z}||df}t| t |d|dd}|D]:}|d}t |ddk}|r |;i t D]?}|d|d |d}d |D |<@  fd t DS) NrzVSELECT name, sql FROM "%s".sqlite_master WHERE tbl_name = ? AND type = ? ORDER BY namerxPRAGMA "z".index_list("")rrjz".index_info("cg|] }|d S)rjr`r/s rcrYz.SqliteDatabase.get_indexes..+s(M(M(MCQ(M(M(Mrec Rg|]#}t||||v$Sr`ru)rVr index_columns index_to_sqlr(unique_indexess rcrYz.SqliteDatabase.get_indexes..-sS... T"d#&   ...re)rrrrPrrr) rar(rr;rr0r is_uniquer:rrrs ` @@@rcrzSqliteDatabase.get_indexess!6ADJK!!%%)9::FOO--.. !!!#)66555#233??$$ ) )Cq6DCF q(I )""4(((  .. N NJ%%%'-vvzzz';<.9sW,,,qtQqTqt8T!A$ZZ!MM,,,rerrar(rrs ` rcrzSqliteDatabase.get_columns6si!!!#)#3V#3#3UUU#<==,,,,**,,, ,rec|d|pdd|d}dtd|DS)Nrrrrcg|] }|d Srir`r/s rcrYz3SqliteDatabase.get_primary_keys..?sMMM3AMMMrec|dSrr`)r s rcrxz1SqliteDatabase.get_primary_keys..?s 1R5rerr6rrs rcrzSqliteDatabase.get_primary_keys<s]!!!#)#3V#3#3UUU#<==MM&&//:K:K"L"LMMMMrec|d|pddd}fd|DS)Nrrz".foreign_key_list("rcXg|]&}t|d|d|d'S)rrjr;rxrVr0r(s rcrYz3SqliteDatabase.get_foreign_keys..DC...#3q63q63q65AA...rerrs ` rcrzSqliteDatabase.get_foreign_keysAsi!!!#)#3V#3#3UUU#<==....!??,,... .rectjSr_)rgBinaryrs rcget_binary_typezSqliteDatabase.get_binary_typeGs ~rec|jr|jnd}|r-|dvr+td|jzSdSdS)Nr()nothingrz INSERT OR %s)rrlrQupperrarr;rs rcrz!SqliteDatabase.conflict_statementJsk0;0CK$**,,,  Ef$999~ (;(A(A(C(CCDD D E E99rec|jdkrrrrrrrrrlrQr)raocr;rs rcrzSqliteDatabase.conflict_updateOs=   + +  bj")R5H') * * ,677 7(*z9!!###r  f$=== F Y  /00 0 @BL @*++ + $ @DEE E$ @?@@ @--b%888recFt||tSN)r0)r5r+rr*s rcr-zSqliteDatabase.extract_dateks||Iz|DDDrecFt||tSr)r5rTsimple_date_timer*s rcr/zSqliteDatabase.truncate_datens$}}Y *:<< rrrrsrrrrrrrrrrrr!rrrrrrrrrrrrrr-r/r2r4rrs@rcrRrR s:) +I KJI'NN @ @ @ @ @ = = = = = =      (((   !)E$ L))J:n--L:n--L#$899 ;''I ;''I!z"455*]++K#$899Z 011N:n--L:n--L X ^KK^K;;;,,,??? AAA5555  5555 ;=(,4444  ;;;;  .... $$$$$$###***+++ ++++++   *** $$$$---///3333 PPPP ....B,,,, NNNN .... EEE 9998EEE<<<===4444444rerRc eZdZdddddddddd Zd d d Zd ZeZdZdZ dZ dZ dZ d(fd Z dZdZdZd)dZdZd)dZd)dZd)dZd)dZd)dZd)dZd)dZdZdZd Zd!Zd"Zd#Zd$Z d%Z!d&Z"d'Z#xZ$S)*rGSERIAL BIGSERIALBYTEABOOLEAN TIMESTAMPNUMERICDOUBLE PRECISIONr/) rrr r!r%r&r)r/r0rz~*)rrrKTFNc t||_||_||_tt|j|fi|dSr_)_register_unicode _encoding_isolation_levelrrGr)rarregister_unicodeencodingrfrrs rcrzPostgresqlDatabase.initsF!1! /, $'',X@@@@@@@recDttd|j}|jdr|d|jn|d|jtjdi|}|jr>tj tj |tj tj ||j r||j |jr||jd|_|S)NzPostgres driver not installed!z postgresql://dsndbnameTr`)psycopg2r8rrLrr| setdefaultrr pg_extensions register_typeUNICODE UNICODEARRAYrset_client_encodingrset_isolation_levelr)rarNrs rcrzPostgresqlDatabase._connects  &'GHH H$))++ = # #O 4 4 7   eT] 3 3 3 3   h 6 6 6))&))  ! J  ' (=t D D D  ' (BD I I I > 5  $ $T^ 4 4 4   <  $ $T%: ; ; ; recF|j|_|jdkr d|_dSdS)NiaT)rrErs rcrz&PostgresqlDatabase._set_server_versions1"1  % ' '%)D " " " ( 'recz|jjrdS|jj}|tjkSrh)rrrget_transaction_statusr TRANSACTION_STATUS_INERROR)ra txn_statuss rcrz'PostgresqlDatabase.is_connection_usables: ;  5 [%<<>> MDDDrec |tjkr|n |ddS#tttf$rYdSwxYwr)r rrhrrrs rcr!z!PostgresqlDatabase.last_insert_idsN '6=8866fQil JHi0    DD s "==cJ |jS#t$r|jjcYSwxYwr_rrs rcrz PostgresqlDatabase.rows_affectedrrc|r||rd|z}nd}t5||ddddS#1swxYwYdS)Nz$BEGIN TRANSACTION ISOLATION LEVEL %srr)rarfrs rcrzPostgresqlDatabase.begins >>    LLNNN  9OKDDD " ( ( KKMM ! !$ ' ' ' ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s(A//A36A3ctd}|||pdf}d|DS)NzSSELECT tablename FROM pg_catalog.pg_tables WHERE schemaname = %s ORDER BY tablenamepubliccg|]\}|Sr`r`rVr(s rcrYz1PostgresqlDatabase.get_tables..s666&%666rerrarr;rs rcrzPostgresqlDatabase.get_tablessD<!!%&*??66FOO$5$56666rectd}|||pdf}d|DS)Nz\SELECT viewname, definition FROM pg_catalog.pg_views WHERE schemaname = %s ORDER BY viewnamer/cZg|](\}}t||d)S)z ;)r{strip)rV view_namer)s rcrYz0PostgresqlDatabase.get_views..sB;;;$YY &(9(9::;;;rerr2s rcrzPostgresqlDatabase.get_viewssQ;!!%&*??;;(.(9(9;;; ;rec~d}||d|pdf}fd|DS)Na SELECT i.relname, idxs.indexdef, idx.indisunique, array_to_string(ARRAY( SELECT pg_get_indexdef(idx.indexrelid, k + 1, TRUE) FROM generate_subscripts(idx.indkey, 1) AS k ORDER BY k), ',') FROM pg_catalog.pg_class AS t INNER JOIN pg_catalog.pg_index AS idx ON t.oid = idx.indrelid INNER JOIN pg_catalog.pg_class AS i ON idx.indexrelid = i.oid INNER JOIN pg_catalog.pg_indexes AS idxs ON (idxs.tablename = t.relname AND idxs.indexname = i.relname) WHERE t.relname = %s AND t.relkind = %s AND idxs.schemaname = %s ORDER BY idx.indisunique DESC, i.relname;r r/c g|]@\}}}}t||d|d|AS)z ;,)rurstripr)rVrr)rrr(s rcrYz2PostgresqlDatabase.get_indexes..sdHHH1D#y'dCJJt$4$4gmmC6H6H'00HHHrerrar(rr;rs ` rcrzPostgresqlDatabase.get_indexessj 9!!%%f6H)IJJHHHH5;__5F5FHHH Hrecd}|||pdf}t||fd|DS)Nz SELECT column_name, is_nullable, data_type, column_default FROM information_schema.columns WHERE table_name = %s AND table_schema = %s ORDER BY ordinal_positionr/c Ng|]!\}}}}t|||dk|v|"SYESrvrVrrrdfpksr(s rcrYz2PostgresqlDatabase.get_columns..K===&D$BtR UBOO===rerrPrr)rar(rr;rrCs ` @rcrzPostgresqlDatabase.get_columnss) !!%%1C8)DEE$''v6677=====*0//*;*;=== =rec|d}d}|||||pdf}d|DS)Na SELECT kc.column_name FROM information_schema.table_constraints AS tc INNER JOIN information_schema.key_column_usage AS kc ON ( tc.table_name = kc.table_name AND tc.table_schema = kc.table_schema AND tc.constraint_name = kc.constraint_name) WHERE tc.constraint_type = %s AND tc.table_name = %s AND tc.table_schema = %s PRIMARY KEYr/cg|]\}|Sr`r`)rVpks rcrYz7PostgresqlDatabase.get_primary_keys.. s000sr000rer)rar(rr;ctypers rcrz#PostgresqlDatabase.get_primary_keyssO (!!%%8J()KLL00foo//0000rec|d}|||pdf}fd|DS)Na% SELECT DISTINCT kcu.column_name, ccu.table_name, ccu.column_name FROM information_schema.table_constraints AS tc JOIN information_schema.key_column_usage AS kcu ON (tc.constraint_name = kcu.constraint_name AND tc.constraint_schema = kcu.constraint_schema AND tc.table_name = kcu.table_name AND tc.table_schema = kcu.table_schema) JOIN information_schema.constraint_column_usage AS ccu ON (ccu.constraint_name = tc.constraint_name AND ccu.constraint_schema = tc.constraint_schema) WHERE tc.constraint_type = 'FOREIGN KEY' AND tc.table_name = %s AND tc.table_schema = %sr/cXg|]&}t|d|d|d'S)rrrjrrs rcrYz7PostgresqlDatabase.get_foreign_keys..rrer)rar(rr)rs ` rcrz#PostgresqlDatabase.get_foreign_keys s`( !!#v/A'BCC....!??,,... .rec~|d|f}t|dS)Nz SELECT COUNT(*) FROM pg_class, pg_namespace WHERE relkind='S' AND pg_class.relnamespace = pg_namespace.oid AND relname=%sr)rrer|)rasequenceress rcrz"PostgresqlDatabase.sequence_exists"s@ "%-; 00 CLLNN1%&&&rectjSr_)rrrs rcrz"PostgresqlDatabase.get_binary_type*s recdSr_r`rs rcrz%PostgresqlDatabase.conflict_statement-rec|jr|jnd}|dvrytdg}|jr1|t d|jD|tdt |S|r|dkrtd|js|j std|js|j std | ||S) Nr()rrrcZg|](}t|trt|n|)Sr`r8rs rcrYz6PostgresqlDatabase.conflict_update..5sA/4/4/4$.c:#>#>GF3KKKC/4/4/4rez DO NOTHINGrz\The only supported actions for conflict resolution with Postgresql are "ignore" or "update".zIf you are not performing any updates (or preserving any INSERTed values), then the conflict resolution action should be set to "IGNORE".zKPostgres requires that a conflict target be specified when doing an upsert.) rrlrQrrr.rurrrrr)rarr;rrps rcrz"PostgresqlDatabase.conflict_update0sU')z9!!###r * * *''(E" 6 -/4/4!2/4/4/455666 LL\** + + +E?? "  @(**)** * @BL @)** *% @)@ @?@@ @--b%888recptt|td|fSNFROMr5EXTRACTrurQr*s rcr-zPostgresqlDatabase.extract_dateIs)zz(Is6{{J#GHHIIIrec8t||Sr_)r5 DATE_TRUNCr*s rcr/z PostgresqlDatabase.truncate_dateLs}}Y 333rec.|d|S)NEPOCH)r-r1s rcr2zPostgresqlDatabase.to_timestampOs  *555rec6t|Sr_)r5r2r1s rcr4z!PostgresqlDatabase.from_timestampRsz***rec|ttdtdS)Nr>falser?r8s rcr@z"PostgresqlDatabase.get_noop_selectVs@wwvxx''C1177G EEFFFrec6|d|zdS)Nzset time zone "%s";r)rars rc set_time_zonez PostgresqlDatabase.set_time_zoneYs" .9:::::rerr_)%rfrgrhrrr4rwrurrrrErGrrrrr!rrrrrrrrrrrrr-r/r2r4r@rbrrs@rcrGrGys$$  K D11J E"8JNI=A!AAAAAA.*** EEE *** ((((7777 ;;;;HHHH( = = = =1111 ....*'''9992JJJ444666+++GGG;;;;;;;rerGc eZdZddddddddd Zd d d d ddZdZdZeZdZ dZ dZ dZ dZ dZfdZdZdZdZdZdZd-dZd-dZd-dZd-d Zd-d!Zd-d"Zd-d#Zd$Zd%Zd&Zd'Zd(Z d)Z!d*Z"d+Z#d,Z$xZ%S).rCzINTEGER AUTO_INCREMENTzBIGINT AUTO_INCREMENTr!rrr+z VARCHAR(40)z VARBINARY(16))rrr!r&r)r+r/r0z LIKE BINARYrz REGEXP BINARYrr)rrrrrrKz``TlFPIPES_AS_CONCATc d|jdd}||d|vrtr|d|d<t t |j|fi|dS)NrQT)charsetsql_mode use_unicodepasswordpasswd)rgr mysql_passwdrrrCr)rarrrNrs rcrzMySQLDatabase.initxs !!  f   L %zz*55F8 'mT""';;F;;;;;recnttdtjd|jdd|j}|S)NzMySQL driver not installed!T)rMrr`)mysqlr8rrrrs rcrzMySQLDatabase._connectsG =&'DEE E}4 $44#244 rec |j}n$#t$r|}YnwxYw|||_dSr_)rrget_server_info_extract_server_version)rar version_raws rcrz!MySQLDatabase._set_server_versions] 1-KK 1 1 1..00KKK 1"::;GGs  ++cF|}d|vrtjd|}ntjd|}|Dtd|ddDSt jd|zdS) Nmariaz(1\d\.\d+\.\d+)z(\d\.\d+\.\d+)c34K|]}t|VdSr_)r)rVnums rcrrz8MySQLDatabase._extract_server_version..s(NNcSNNNNNNrerrRz'Unable to determine MySQL version: "%s"r)rlrDsearchragroupsrrr)raversion match_objs rcrpz%MySQLDatabase._extract_server_versions--// g   "4g>>II "3W==I  NNY-=-=-?-?-B-H-H-M-MNNNNN N ?'IJJJyrec|jjrdS|jj}t|dr3|jddkrd}nd} |j|n#t $rYdSwxYwdS)NFpingrrCr`rT)rrrrrr{r#)rarrs rcrz"MySQLDatabase.is_connection_usables ;  5{ 4  "1%**  4      uu ts A AAc,|dS)Nz () VALUES ()rr8s rcrz#MySQLDatabase.default_values_inserts{{>***reNc|r|t5|}|r|d|z|dddddS#1swxYwYdS)Nz"SET TRANSACTION ISOLATION LEVEL %srr)rarfcurss rcrzMySQLDatabase.begins >>    LLNNN " " ";;==D . A,-... LL ! ! !  " " " " " " " " " " " " " " " " " "sABBBcFd}d||dDS)NzySELECT table_name FROM information_schema.tables WHERE table_schema = DATABASE() AND table_type != %s ORDER BY table_namecg|]\}|Sr`r`r1s rcrYz,MySQLDatabase.get_tables..sGGG&%GGGre)VIEWr)rarr;s rcrzMySQLDatabase.get_tabless0'HGD$4$4UI$F$FGGGGrecld}||}d|DS)NztSELECT table_name, view_definition FROM information_schema.views WHERE table_schema = DATABASE() ORDER BY table_namec g|] }t| Sr`rr/s rcrYz+MySQLDatabase.get_views..s@@@s c"@@@rerr2s rcrzMySQLDatabase.get_viewss=G!!%((@@foo.?.?@@@@recr|dz}ti|D]h}|ds|d|dg|d|difdDS)NSHOW INDEX FROM `%s`rrjr;c Fg|]}t|d||vSr_r)rVrindexesr(r.s rcrYz-MySQLDatabase.get_indexes..sA%%%dD'$-OO%%%re)rrPrrrr)rar(rrr0rr.s ` @@rcrzMySQLDatabase.get_indexess!!"85"@AA??$$ + +Cq6 # 3q6"""   s1vr * * * CFO " "3q6 * * * *%%%%%%#%%% %recd}||f}t|fd|DS)Nz SELECT column_name, is_nullable, data_type, column_default FROM information_schema.columns WHERE table_name = %s AND table_schema = DATABASE() ORDER BY ordinal_positionc Ng|]!\}}}}t|||dk|v|"Sr>r@rAs rcrYz-MySQLDatabase.get_columns..rDrerE)rar(rr)rrCs ` @rcrzMySQLDatabase.get_columnssy) !!#x00$''..//=====*0//*;*;=== =rec|d|z}dtd|DS)Nrcg|] }|d S)r;r`r/s rcrYz2MySQLDatabase.get_primary_keys..s.LLL3ALLLrec|ddkS)NrjPRIMARYr`)r0s rcrxz0MySQLDatabase.get_primary_keys..s3q6Y#6rerrs rcrzMySQLDatabase.get_primary_keyssZ!!"85"@AALL668I8IJJLLL Lrecvd}||f}fd|DS)Na@ SELECT column_name, referenced_table_name, referenced_column_name FROM information_schema.key_column_usage WHERE table_name = %s AND table_schema = DATABASE() AND referenced_table_name IS NOT NULL AND referenced_column_name IS NOT NULLc<g|]\}}}t|||Sr`r)rVrryrzr(s rcrYz2MySQLDatabase.get_foreign_keys..sCFFF/ K vz; F FFFFrerr;s ` rcrzMySQLDatabase.get_foreign_keyss`:!!%%22FFFF39??3D3DFFF FrectjSr_)rmrrs rcrzMySQLDatabase.get_binary_types |rec|jsdS|j}|dkrtdS|dkrtdS|dkrtddS)Nrrrz INSERT IGNORErzWUn-supported action for conflict resolution. MySQL supports REPLACE, IGNORE and UPDATE.)rrlrQrrs rcrz MySQLDatabase.conflict_statements"*FF$**,, Y  y>> ! x  '' ' x  JKK K rec |js|js|jrtdg}|jr|jpd}|ddkr|dkr t j}n t j}|jD][}t|}tt|td||f}| |\|j r|j D]\} } t| t sft| t"rt%|j| } t| t(r| | } nt-| d} | tt| td| f|r+ttd t/|fSdS) NzfMySQL does not support the specification of where clauses or conflict targets for conflict resolution.rr )rrrrFrzON DUPLICATE KEY UPDATE)rrrrrrr5VALUEVALUESrgrurQrrr rvrer9rr(r2rrYr3) rarr;rrxVALUE_FNrentityrrrXs rcrzMySQLDatabase.conflict_updates   ,!= ,  + ,+,, ,   +)1TGqzRGz$9$989%/ + +&v..%!&))HHHV$$'&'' z****   J#+1133 J J1!!T**3"!Z004#EK33!!U++3JJqMM!!E222xq)9)93s88Q(GHHIIII  6S!:;;*733566 6 6 6recttt|td|fSrVrXr*s rcr-zMySQLDatabase.extract_date)s/zz(C NNCKK#LMMNNNrec\t|t|tSr)r5 DATE_FORMAT__mysql_date_trunc__rr*s rcr/zMySQLDatabase.truncate_date,s*~~j*>y*I+;== =rec6t|Sr_)r5UNIX_TIMESTAMPr1s rcr2zMySQLDatabase.to_timestamp0s  ,,,rec6t|Sr_)r5 FROM_UNIXTIMEr1s rcr4zMySQLDatabase.from_timestamp3s +++rec4tSr_)r5randrs rcr6zMySQLDatabase.random6swwyyrec,|dS)NzDO 0rr8s rcr@zMySQLDatabase.get_noop_select9s{{6"""rer_)&rfrgrhrrr4r[rxrurr8r9rErFrgrrrrprrrrrrrrrrrrr-r/r2r4r6r@rrs@rcrCrC]s#(*$ ""K! J E E":J!%IO H<<<<<HHH    +++""""HHHH AAAA % % % % = = = =LLLL F F F F K K K)6)6)6VOOO===---,,,#######rerCc&eZdZdZdZdZdZdS)rc||_dSr_rrs rcrz_manual.__init__As rec@tfd}|S)Ncptj5|i|cdddS#1swxYwYdSr_)rrMrs rcrz_manual.__call__..innerEs!! + +r4*6** + + + + + + + + + + + + + + + + + +rrrs`` rcrz_manual.__call__Drrec|j}|$t|tst d|j|dS)Nz?Cannot enter manual commit block while a transaction is active.)rMrrvrrr)ratops rcrz_manual.__enter__Ks[g%%'' ?:c7#;#;?677 7   &&&&&recZ|j|urtddS)Nz>Transaction stack corrupted while exiting manual commit block.)rMrrrs rcrz_manual.__exit__Rs: 7 " " $ $D 0 0455 5 1 0reNrr`rercrr@sP'''55555rerc&eZdZdZdZdZdZdS)rc&||_||f|_dSr_)rM_transaction_argsrarMrrs rcrz_atomic.__init__Ys"&rec@tfd}|S)Ncj\}}tjg|Ri|5|i|cdddS#1swxYwYdSr_)rrrMrrrrr5ras rcrz_atomic.__call__..inner^s)DAq*1***** + +r4*6** + + + + + + + + + + + + + + + + + + 6::rrs`` rcrz_atomic.__call__]9 r + + + + +  + recd|jdkr"|j\}}|jj|i||_nYt |jtrtd|j |_|j S)Nrz=Cannot enter atomic commit block while in manual commit mode.) rMrrr_helperrvrrrrrrs rcrz_atomic.__enter__es 7 $ $ & &! + +1LD&.47.???DLL //117 ; ; /344 4 7,,..DL|%%'''rec:|j|||Sr_)rrrs rcrz_atomic.__exit__ps|$$Xw???reNrr`rercrrXsU000 ( ( (@@@@@rerc<eZdZdZdZdZd dZd dZdZdZ d S) rc&||_||f|_dSr_)rM _begin_argsrs rcrz_transaction.__init__us &>rec@tfd}|S)Ncj\}}tjg|Ri|5|i|cdddS#1swxYwYdSr_)rrrMrs rcrz$_transaction.__call__..innerzs#DAqdg////Q// + +r4*6** + + + + + + + + + + + + + + + + + +rrrs`` rcrz_transaction.__call__yrrec>|j\}}|jj|i|dSr_)rrMrrs rc_beginz_transaction._begins-' f t&v&&&&&reTch|j|r|dSdSr_)rMrrrars rcrz_transaction.commits7    KKMMMMM  rech|j|r|dSdSr_)rMrrrs rcrz_transaction.rollbacks9    KKMMMMM  rec|jdkr||j||Sr)rMrrrrs rcrz_transaction.__enter__sC 7 $ $ & &! + + KKMMM   &&& recT|j} |r|dkr|dn8|dkr2 |dn#|dxYw|jdS#|jwxYwNrF)rMrrrr)rarr r!depths rcrz_transaction.__exit__s))++ & EQJJ e$$$$!KK&&&&MM%((( G # # % % % % %DG # # % % % %s#$B AB A..B B'Nrm rfrgrhrrrrrrrr`rercrrts***'''   & & & & &rerc<eZdZd dZdZdZd dZdZdZd Z dS) rNc||_|pdtjjz|_|j|jj|_dS)Nrq)rMuuiduuid4hexsidrUr[ quoted_sid)rarMrs rcrz_savepoint.__init__s@0# 00(-- 66rec@tfd}|S)Ncptj5|i|cdddS#1swxYwYdSr_)rrMrs rcrz"_savepoint.__call__..innersDG$$ + +r4*6** + + + + + + + + + + + + + + + + + +rrrs`` rcrz_savepoint.__call__rrecJ|jd|jzdS)Nz SAVEPOINT %s;rMrrrs rcrz_savepoint._begins% Odo=>>>>>reTcz|jd|jz|r|dSdS)NzRELEASE SAVEPOINT %s;)rMrrrrs rcrz_savepoint.commits< 3doEFFF $++-----recJ|jd|jzdS)NzROLLBACK TO SAVEPOINT %s;rrs rcrz_savepoint.rollbacks& 7$/IJJJJJrec.||Sr_)rrs rcrz_savepoint.__enter__s  rec|r|dS |ddS#|xYw)NFr)rrrs rcrz_savepoint.__exit__sS   MMOOOOO  % (((((  s 2A r_rmrr`rercrrs7777 ???    KKKrercHeZdZdZdZdZdZdZd dZdZ d Z dd Z d S)rcZ||_d|_d|_d|_d|_g|_dS)NrF)rr'rx initialized populatedrrs rcrzCursorWrapper.__init__s1    recV|jrt|jSt|Sr_)rrwrResultIteratorrs rcrzCursorWrapper.__iter__s* > ('' 'd###recTt|trF|j}||dkr|n|||j|St|t r*||dkr|nd|j|St d)Nrz6CursorWrapper only supports integer and slice indexes.)rvrrrrrr)rarrs rcrzCursorWrapper.__getitem__s dE " " )9D|taxx!!!!%%%>$' ' c " " ) OOD1HHDD! 4 4 4>$' '()) )rec8||jSr_)rr'rs rcrzCursorWrapper.__len__s zrecdSr_r`rs rcrzCursorWrapper.initializerreTcP|j}|'d|_|jt|js|d|_|xjdz c_||}|r|j ||S)NTr) rr|rrrrrr' process_rowrr)racacher0rs rciteratezCursorWrapper.iteratesk""$$ ;!DN K      ! $ OO   #D  a !!#&&  * N ! !& ) ) ) rec|Sr_r`rar0s rcrzCursorWrapper.process_rows rec#^K |dVn#t$rYdSwxYw+)z1Efficient one-pass iteration over the result set.TFN)rrrs rcr zCursorWrapper.iteratorsR  ll5))))))      s  ++rc*|ptd}|dkrtdt|}|j|_|jsF||jkr= |n#t$rYdSwxYw|js||jk9dSdSdSdS)NInfrz"Negative values are not supported.)floatrrr'rxrrr)rarzr s rcrzCursorWrapper.fill_cache s u q55ABB B!$''. a$*nn       . a$*nnnn  nn  sA** A87A8Nrmr) rfrgrhrrrrrrrr rr`rercrrs$$$ ) ) )             rerc"eZdZdZeZdZeZdS)rch|jj}d|D|_t||_dS)Ncg|]A}|d|dddzddBSrrRrN()"`rfindr5rVrs rcrYz9DictCursorWrapper._initialize_columns..sX...!QqTZZ__q011288@@...re)r descriptionrrncolsrars rc_initialize_columnsz%DictCursorWrapper._initialize_columnss?k- ..!,... %% reci}t|jD])}||j|||*|Sr_)rrrr)rar0rrs rc _row_to_dictzDictCursorWrapper._row_to_dict"sHtz"" 7 7A   dl1os1v 6 6 6 6 reN)rfrgrhrrrrr`rercrrs:&&& %J KKKrerceZdZdZdZdS)rcf|jj}tjdd|D|_dS)NRowcg|]A}|d|dddzddBSrrrs rcrYz6NamedTupleCursorWrapper.initialize...s[:K:K:K9:AaD1C1$%% & , ,V 4 4:K:K:Kre)rr collections namedtuple tuple_classrs rcrz"NamedTupleCursorWrapper.initialize,sLk- &1%:K:K>I:K:K:KLLrec|j|Sr_rrs rcrz#NamedTupleCursorWrapper.process_row1st%%reN)rfrgrhrrr`rercrr+s5LLL &&&&&rerc$eZdZfdZdZxZS)rcftt||||_dSr_)rrrr)rarrrs rcrzObjectCursorWrapper.__init__6s0 !4((11&999&recF||}|jdi|Sr )rr)rar0row_dicts rcrzObjectCursorWrapper.process_row:s.$$S))t++(+++rerfrgrhrrrrs@rcrr5sG''''',,,,,,,rerc$eZdZdZdZdZeZdS)rc"||_d|_dSr)cursor_wrapperrx)rar s rcrzResultIterator.__init__@s, rec|Sr_r`rs rcrzResultIterator.__iter__Drlrec|j|jjkr|jj|j}nD|jjs1|j|jj|j}nt |xjdz c_|Sr)rxr r'rrrrr*s rcrzResultIterator.nextGsz :+1 1 1%/ ;CC$.   ' ' ) ) )%/ ;CC  a  reN)rfrgrhrrr__next__r`rercrr?sB   HHHrerc"eZdZdZddZdZdS) FieldAccessorc0||_||_||_dSr_)rArArrarArArs rcrzFieldAccessor.__init__Ws   reNcR||j|jS|jSr_)__data__rrrAr{s rcr~zFieldAccessor.__get__\s)  $((33 3zrecb||j|j<|j|jdSr_)r r_dirtyrrar|r~s rcrNzFieldAccessor.__set__as/',$)$DI&&&&&rer_)rfrgrhrr~rNr`rercr r VsF  '''''rer c2eZdZfdZdZddZdZxZS)ForeignKeyAccessorcttt|||||j|_dSr_)rr r rel_model)rarArArrs rcrzForeignKeyAccessor.__init__gs3  $''00tDDDrec|j|j}||j|jvrq|j|jvrC|jjr7|j|jj|k}||j|j<|j|j|S|jjs|jjr |jj |Sr_) r rr__rel__rA lazy_loadr rel_fieldrr.)rar|r~rs rcget_rel_instancez#ForeignKeyAccessor.get_rel_instanceks!%%di00   X-= = =y 000TZ5I0n(()=)FGG.1 +#'' 599 9 .TZ%9 ..- - reNc>|||S|jSr_)r rAr{s rcr~zForeignKeyAccessor.__get__vs$  ((22 2zrect||jr * * 0+23 8L8Q+R+RH di (*-H TY ' '(,,TY77H+.H di (x3;yH,,,$TY/DI&&&&&rer_)rfrgrhrr r~rNrrs@rcr r fsj)))))    ' ' ' ' ' ' 'rer ceZdZdZddZdS)BackrefAccessorcD||_|j|_|j|_dSr_)rAr rArarAs rcrzBackrefAccessor.__init__s _ reNc|T|jjj}|j|jt ||kS|Sr_)rAr rr rr5r)rar|r}rs rcr~zBackrefAccessor.__get__sN  :',DNVXXU4:4)@)@@AA C rer_)rfrgrhrr~r`rercr r s7%%% rer c&eZdZdZdZddZdZdS)ObjectIdAccessorz(Gives direct access to the underlying idc||_dSr_)rAr" s rcrzObjectIdAccessor.__init__s  reNc|q|j|jj}|I|jj|jvr6|j|jj}t ||jjj}|S|jSr_)r rrArr rr )rar|r}r~rel_objs rcr~zObjectIdAccessor.__get__sm  %))$*/::E}H4D!D!D"*4:?;)=)BCCLzrec<t||jj|dSr_)rrArr s rcrNzObjectIdAccessor.__set__s$*/511111rer_)rfrgrhrrr~rNr`rercr% r% sL2222222rer% ceZdZdZdZeZdZdZdZ dZ ddZ dZ dZ dd Zed Zd Zd Zd ZdZdZdZdZdZdZdS)r2rFNr'Tc|td|}||_||_||_||_||_||_||_||_| |_ | |_ | |_ | |_ | |_ |p|j|_||_t"xjdz c_t"j|_|jrdpd|jf|_dS)NzL"db_column" has been deprecated in favor of "column_name" for Field objects.rrj)rrrxr.rrrrrNr^ unindexedchoices help_text verbose_namedefault_index_typer>_hiddenr2_field_counter_order _sort_key)rarrxr.rrrrrNr^r, r- r. r/ r> db_columnr1 s rcrzField.__init__s  > ? ? ?#K   & &&  "" "($?(?  !* *0q5A CrecJt|jdz|jjzSr)rrrArfrs rcrzField.__hash__s DIOdj&99:::rect|dr>t|ddr-dt|jd|jjd|jdSdt|jzS)NrArr: rRrz<%s: (unbound)>)rrrrfrArrs rc__repr__zField.__repr__su 4 ! ! /gdFD&A&A / /$(JJ$7$7$7$(J$7$7$7$(III/ /!4::#666rec ||_|x|_|_|jp||_|r(t ||||||dSdSr_)rAr safe_namerraccessor_classrarAr set_attributes rcrz Field.bindsf %)) DN+3t  I E4!4!4UD$!G!G H H H H H I IrecJt|jjj|jSr_)r!rAr'r(rrs rcrz Field.columnsdj&,d.>???rec|Sr_r`rs rcadaptz Field.adapts rec4||n||Sr_rA rs rcr zField.db_value uu4::e+<+<.s)D)D)DQ#a&&)D)D)Drerr)r rr field_typerJ rUrQ)rar9 column_type modifiersmodifier_literals rc ddl_datatypezField.ddl_datatypes  *39( *)/33DO48OEEKK/K&&((  $9 $#yy)D)D))D)D)DEE ;;;0@0@0@ABB B{## #rect|jg}||}|r|||jr"|t d|js"|t d|jr"|t d|jr*|t d|jz|j r| |j |j r*|t d|j zt|S)N UNINDEXEDzNOT NULLrGzDEFAULT NEXTVAL('%s')r) rfrrR rr, rQrrrNrr7r^ru)rar9rrws rcddlz Field.ddl s1())*%%c**  $ LL # # # > + LL[)) * * *y * LLZ ) ) )   - LL]++ , , , = G LL4t}DEE F F F   + LL) * * * > = LL\DN:;; < < <re)FFFNNFNNNFNNNNNFrm)rfrgrhr2 r3 r r< auto_incrementr0 rN rrrr9 rrrrA r r0rrr%rJ rR rU r`rercr2r2s;N F"NNJ FJN>BIM?C). DDDD@;;;777IIII@@X@======999$$$    $ $ $rer2ceZdZdZdS)rANYNrfrgrhrN r`rercrrsJJJrerceZdZdZdZdS)r:r,cF t|S#t$r|cYSwxYwr_)rrrs rcrA zIntegerField.adapt&s7 u::    LLL    NrfrgrhrN rA r`rercr:r:#s(Jrer:ceZdZdZdS)rrNrY r`rercrr-JJJrerceZdZdZdS)rOr"NrY r`rercrOrO1sJJJrerOc&eZdZdZdZfdZxZS)rTrc|ddurtdt|zd|d<tt|j|i|dS)NrFz %s must always be a primary key.T)rrrrrrrs rcrzAutoField.__init__9sf ::m $ $ - -?$t**LMM M $}'i'888888re)rfrgrhrV rN rrrs@rcrr5sBNJ999999999rerceZdZdZdS)rrNrY r`rercrr@sJJJrerc$eZdZdZdfd ZxZS)r7z$INT GENERATED BY DEFAULT AS IDENTITYFc Z|rd|_tt|jdi|dS)Nz INT GENERATED ALWAYS AS IDENTITYr`)rN rr7r)ragenerate_alwaysrrs rcrzIdentityField.__init__Gs<  A@DO+mT""+55f55555rer)rfrgrhrN rrrs@rcr7r7DsB7J6666666666rer7ceZdZfdZxZS)rHcftdtt|j|i|dS)Nz"PrimaryKeyField" has been renamed to "AutoField". Please update your code accordingly as this will be completely removed in a subsequent release.)rrrHrrs rcrzPrimaryKeyField.__init__NsHE F F F .ot$$-t>v>>>>>rerWrs@rcrHrHMs8?????????rerHceZdZdZdZdS)r4r+cF t|S#t$r|cYSwxYwr_)rrrs rcrA zFloatField.adaptXs7 <<    LLL r\ Nr] r`rercr4r4Us(Jrer4ceZdZdZdS)r/r)NrY r`rercr/r/_r_ rer/c:eZdZdZ d fd ZdZdZd ZxZS) r*r&rr<FNc||_||_||_|ptjj|_tjd|j z|_tt|j |i|dS)Nr) max_digitsdecimal_places auto_rounddecimalDefaultContextroundingDecimal_exprr*r)rarn ro rp rs rrrs rcrzDecimalField.__init__fso$,$ CG$:$C OB''T-@,@A *lD!!*D;F;;;;;rec|j|jgSr_)rn ro rs rcrJ zDecimalField.get_modifiersos!455rectj}|s||n |dS|jr9|t|}||j|jS|S)Nr)rs )rq rt rp rTquantizeru rs )rar~D decimal_values rcr zDecimalField.db_valuersk O 4!M55qqtt 3 ? MAi..//M ))$)dm)LL L rec|=t|tjr|Stjt|SdSr_)rvrq rt rTrs rcr0zDecimalField.python_value{sA  %11  ?9U#3#344 4  re)rr<FN) rfrgrhrN rrJ r r0rrs@rcr*r*csuJCH<<<<<<6665555555rer*c eZdZdZdZdZdS) _StringFieldct|tr|St|tr|dSt|S)NrK)rvrTrUrrs rcrA z_StringField.adaptsK eY ' ' )L z * * )<<(( (rec8t|tj|Sr_rrs rcrz_StringField.__add__s%5dBIu%M%MMrec8t|tj|Sr_rrs rcrz_StringField.__radd__s&6ubi&N&NNreN)rfrgrhrA rrr`rercr} r} s4   NMMNNNNNrer} c*eZdZdZdfd ZdZxZS)rr1cV||_tt|j|i|dSr_) max_lengthrrr)rar rrrs rcrzCharField.__init__s2$'i'888888rec$|jr|jgpdSr_)r rs rcrJ zCharField.get_modifierss4DO#4< rs rcrzBlobField.binds% ;  4%+.66 4 $44T]CCCC ek2333  $$T]333Y%%**5$ FFFrect|tr|d}t|tr||S|S)NrR)rvrTrOrUrrs rcr zBlobField.db_valuesQ eY ' ' 7LL!566E eZ ( ( ,$$U++ + rerm)rfrgrhrN r rr rrs@rcrrsfJ;;; G G G G G Grerc&eZdZfdZddZxZS)rc|ddtt|j|i|d|_dS)Nrrr)rrrr_BitField__current_flagrs rcrzBitField.__init__sI)Q'''&h&7777reNc||j}|xjdzc_n |dz|_Gfddt||S)NrcBeZdZfdZdZdZddZdZdZxZ S) %BitField.flag..FlagDescriptorch||_||_t|dSr_)_field_valuerr)rarAr~FlagDescriptorrs rcrz.BitField.flag..FlagDescriptor.__init__s3# # nd++4466666recB|j|jSr_)r rr rs rcclearz+BitField.flag..FlagDescriptor.clears{**DK<888rec@|j|jSr_)r rr rs rcrPz)BitField.flag..FlagDescriptor.sets{))$+666reNc^||St||jjpd}||jzdkSr)rr rr )rar|r}r~s rcr~z-BitField.flag..FlagDescriptor.__get__s8#K$+*:;;@q +11rec|dvrtdt||jjpd}|r ||jz}n ||jz}t ||jj|dS)NTFz"Value must be either True or Falser)rrr rr r)rar|is_setr~s rcrNz-BitField.flag..FlagDescriptor.__set__sv..$%IJJJ$+*:;;@q*T[(EEdk\)E$+"2E:::::recn||j|jdkSr)r)r rr r8s rcr%z-BitField.flag..FlagDescriptor.__sql__s+wwt{224;??1DEEErer_) rfrgrhrr rPr~rNr%r)rr s@rcr r s 7 7 7 7 7 7 9 9 9 7 7 7 2 2 2 2  ; ; ; F F F F F F Frer )r rN)rar~r s @rcflagz BitField.flags ='E   A %   "'1*D  F F F F F F FZ F F F2~dE***rer_)rfrgrhrr rrs@rcrrsL     + + + + + + + +rerceZdZdZdZdZdZdZdZdZ e Z dZ eZ d Z d Zd Zd Zd ZdZdZdZejddkrdZdSdZdS)BigBitFieldDatac ||_||_|jj|j}|st }n$t |tst |}|x|_|jj|j<dSr_)r|rr rr rv_buffer)rar|rr~s rcrzBigBitFieldData.__init__sz    &**4955 %KKEEE9-- %e$$E;@@ t}-di888rec8|jdSr_)r r rs rcr zBigBitFieldData.clears rect|d\}}t|j}||kr#|jd|dz|z z||fS)NrCr)divmodrr r7rarbyte_num byte_offsetcur_sizes rc_ensure_lengthzBigBitFieldData._ensure_lengths] &sA+t|$$ x   L  HqLH+D E F F F$$recf||\}}|j|xxd|zzcc<dSrr r rarr r s rcset_bitzBigBitFieldData.set_bitsC $ 3 3C 8 8+ X1 #34rech||\}}|j|xxd|zzcc<dSrr r s rc clear_bitzBigBitFieldData.clear_bitsF $ 3 3C 8 8+ XA$4"55rec||\}}|j|xxd|zzcc<t|j|d|zzSr)r r rer s rc toggle_bitzBigBitFieldData.toggle_bit s\ $ 3 3C 8 8+ X1 #34DL*a;.>?@@@rect|d\}}t|j}||krdSt|j|d|zzS)NrCFr)r rr rer s rcr zBigBitFieldData.is_setsR &sA+t|$$ x  5DL*a;.>?@@@recb|r||dS||dSr_)r r )rarr~s rcrzBigBitFieldData.__setitem__s6#= T)=)=)=)=)=rec*t|jSr_)rr rs rcrzBigBitFieldData.__len__s4<   rec,t|tr|j}n4t|ttt fr|}nt dt|t|z }|dkr|jd|z|S)NIncompatible data-typerr ) rvr r bytesr memoryviewrrr7)rardatadiffs rc_get_compatible_dataz$BigBitFieldData._get_compatible_data s e_ - - 7=DD y*= > > 7DD566 64yy3t99$ !88T\((4888 rec t|tr|j}n4t|ttt fr|}nt dt dtt|t|z}tj |j|d}t|D]\}\}}|||||<|S)Nr r r)rs) rvr r r r r rmaxrr zip_longestr) rarrr bufryrrbs rc _bitwise_opzBigBitFieldData._bitwise_op+s e_ - - 7=DD y*= > > 7DD566 6#c$iiU"<"<<==  "4< C C C"2  IAv1R1XXCFF recB||tjSr_)r rrrs rcrzBigBitFieldData.__and__8sx}555recB||tjSr_)r rr+rs rcrzBigBitFieldData.__or__:x|444recB||tjSr_)r rxorrs rcrzBigBitFieldData.__xor__<r rec#^K|jD]"}tdD]}|d|zzrdndV#dS)NrCrr)r r)rar js rcrzBigBitFieldData.__iter__?s[ 1 1A1XX 1 1aL0aaq0000 1 1 1rec*t|jSr_)reprr rs rcr9 zBigBitFieldData.__repr__DsDL!!!rerrc*t|jSr_rUr rs rcrzBigBitFieldData.__str__Gdl++ +rec*t|jSr_r rs rc __bytes__zBigBitFieldData.__bytes__Jr reN)rfrgrhrr r r r r r rr __delitem__rr r rrrrr9 rm version_inforr r`rercr r sTAAA%%%555666AAA AAAK>>>K!!!      666555555111 """ Q , , , , , , , , , ,rer c&eZdZddZfdZxZS)BigBitFieldAccessorNc>||jSt||jSr_)rAr rr{s rcr~zBigBitFieldAccessor.__get__Os"  : x333rec4t|tr|}nt|trt |}nt|t rt |}nyt|trt |j}nOt|tr| d}n$t|t stdtt|||dS)NrKzEValue must be either a bytes, memoryview or BigBitFieldData instance.)rvr tobytes buffer_typer r rUr r rTrOrrr rN)rar|r~rs rcrNzBigBitFieldAccessor.__set__Ss eZ ( ( :MMOOEE { + + :%LLEE y ) ) :u%%EE  / / :u}--EE y ) ) :LL))EEE:.. :9:: : !4((005AAAAArer_)rfrgrhr~rNrrs@rcr r NsU4444BBBBBBBBBrer c(eZdZeZfdZdZxZS)rc~|dttt|j|i|dS)Nr)rrUrrrrs rcrzBigBitField.__init__gsA)Z000)k4  )4:6:::::rec(|t|n|Sr_)rUrs rcr zBigBitField.db_valueks$)$5z%   5@re)rfrgrhr r< rr rrs@rcrrdsS(N;;;;;AAAAAAArerceZdZdZdZdZdS)rXr/cXt|trt|dkr|St|tr(t|dkrt j|}t|tjr|jS t j|jS#|cYSxYw)N rDr )rvr9rr rr/rrs rcr zUUIDField.db_valuers eZ ( ( +SZZ2-=-=L u % % +#e***:*:IE***E eTY ' ' 9  9U##' ' LLLs B##B)cjt|tjr|S|tj|ndSr_)rvrr/rs rcr0zUUIDField.python_values5 eTY ' ' L#(#4ty$>reNrfrgrhrN r r0r`rercrXrXos7J   ?????rerXceZdZdZdZdZdS)rr0ct|tr(t|dkr||St|tr(t|dkrt j|}t|t jr||jS|tddS)NrDr )rzTvalue for binary UUID field must be UUID(), a hexadecimal string, or a bytes object.)rvr rrr9rr/rrs rcr zBinaryUUIDField.db_values eU # # )E b(8(8$$U++ + z * * )s5zzR/?/?I%(((E eTY ' ' I$$U[11 1  HII I rec t|tjr|St|tr|}n&|r$t|t st |}|tj|ndS)Nr )rvrr/r r r rs rcr0zBinaryUUIDField.python_values} eTY ' ' !L z * * !MMOOEE  !:eU33 !%LLE).):tyu%%%%DreNr r`rercrrs?J I I IEEEEErercfd}|S)NcN|jjj|Sr_)rAr'rr-)rar+s rcdecz_date_part..decs!z(55iFFFrer`r+r s` rc _date_partr s&GGGGG Jrec|pd}|D]=} |tj||cS#t$rY:wxYw|S)Nc|Sr_r`xs rcrxz"format_date_time..sare)rstrptimer)r~formats post_processfmts rcrrsp0KKL < 1 : :5# F FGG G G G    D  Ls(6 AAcv tj|dS#ttf$r|cYSwxYw)Nr)rr rrrbs rcrrsJ ))%1DEEE z " s "88c$eZdZdZdfd ZxZS)_BaseFormattedFieldNcZ|||_tt|j|i|dSr_)r rr r)rar rrrs rcrz_BaseFormattedField.__init__s9  "DL1!4((14B6BBBBBrer_)rfrgrhr rrrs@rcr r sLGCCCCCCCCCCrer ceZdZdZgdZdZdZdZee dZ ee dZ ee dZ ee d Z ee d Zee d Zd S) r)r%)rrrc^|r*t|trt||jS|Sr_)rvr9rr rs rcrA zDateTimeField.adapts2  9Zz22 9#E4<88 8 recJ|jjj|Sr_rAr'rr2rs rcr2zDateTimeField.to_timestampz(55d;;;recL|jjj||Sr_rAr'rr/rarWs rctruncatezDateTimeField.truncate z(66tTBBBrerrrrrrN)rfrgrhrN r rA r2r rr rrrrrrr`rercr)r)sJG  <<<CCC 8JJv&& ' 'D HZZ(( ) )E (::e$$ % %C 8JJv&& ' 'D Xjj** + +F Xjj** + +FFFrer)ceZdZdZgdZdZdZdZee dZ ee dZ ee dZ d S) r(r$)rrrc|r.t|trd}t||j|S|r.t|tjr|S|S)Nc*|Sr_)rr s rcrxz!DateField.adapt..s16688re)rvr9rr rrrar~pps rcrA zDateField.adaptsf  Zz22 ##B#E4<<< <  z%):;; ::<<  recJ|jjj|Sr_r rs rcr2zDateField.to_timestampr recL|jjj||Sr_r r s rcr zDateField.truncater rerrrN) rfrgrhrN r rA r2r rr rrrr`rercr(r(sJG <<<CCC 8JJv&& ' 'D HZZ(( ) )E (::e$$ % %CCCrer(ceZdZdZgdZdZeedZeedZ eedZ dS)rUr.)rrrrrcF|r\t|trd}t||j|St|tjr|S|@t|tjr&tjj|zS|S)Nc*|Sr_)rr s rcrxz!TimeField.adapt..sqvvxxre)rvr9rr rr timedeltaminr s rcrA zTimeField.adapts  $%,, $'''t|R@@@E8#455 $zz||#  E83E!F!F %)E17799 9 rerrrN) rfrgrhrN r rA rr rrrr`rercrUrUsJG    8JJv&& ' 'D Xjj** + +F Xjj** + +FFFrerUcfd}|S)Nc|jjj}|jdkr|t |jdz n|}|||SNrFr.)rAr'r resolutionrYr-r4)rarMrr+s rcr z!_timestamp_date_part..decsc Z  &?Q&&do?????,0 y"*;*;D*A*ABBBrer`r s` rc_timestamp_date_partr s(CCCCC Jrec\eZdZdedDZfdZdZdZdZdZ dZ d Z e e d Ze e d Ze e d Ze e d Ze e dZe e dZxZS)rVcg|]}d|zS)rr`rVrs rcrYzTimestampField.s1111Q111rerLc0|dd|_|jsd|_ni|jtddvrd|jz|_nB|j|jvr4t ddd|jDzd |jz|_|d d pd |_|jrtntj j }| d |tt|j|i|dS) Nr rrjrLrz,TimestampField resolution must be one of: %src34K|]}t|VdSr_rM r s rcrrz*TimestampField.__init__..$s(&N&N!s1vv&N&N&N&N&N&Nrei@BrFr)rr rvalid_resolutionsrrUticks_to_microsecondrrrrrrrVr)rarrdfltrs rcrzTimestampField.__init__s **\488 PDOO _a + + DO3DOO _D$: : :K!YY&N&Nt7M&N&N&NNNOPP P$+t$>!::eU++4u) rvrrrrrrroundr r+ microsecond)rar~rs rcr zTimestampField.db_valueBs = F eX. / / 7  x} - - 7%ej%+uyIIEEuUT_45566 6&&u-- ?Q   %+g5 6I  (I5##$$$recd|t|tttfr|jdkr0t ||j\}}t||jz}nd}|jrt|}ntj |}|r| |}|S)Nrr)r. ) rvrrlongr r r rrrrr)rar~ticks microsecondss rcr0zTimestampField.python_valueSs  EC3E!F!F ""%eT_== u"54+D#DEE  x ?(// )77>> @ , ?? rec|jdkr|t|jdz n|}|jjj|Sr )r rYrAr'rr4)rars rcr4zTimestampField.from_timestampesO?Q&&do?????,0 z(77===rerrrrrr)rfrgrhrr rr$ r) r+ r r0r4rr rrrrrrrrs@rcrVrVsI11a111>>>>>"PPP333222%%%"$>>> 8((00 1 1D H))'22 3 3E (''.. / /C 8((00 1 1D X**844 5 5F X**844 5 5FFFFFrerVceZdZdZdZdS)r>cd|-tjdtj|dSdS)N!Ir)structrsocket inet_atonrars rcr zIPField.db_valuess0 ?=v'7'<'<==a@ @ ?recX|'tjtjd|SdS)Nr6 )r8 inet_ntoar7 packr: s rcr0zIPField.python_valuews+ ?#FKc$:$:;; ; ?reN)rfrgrhr r0r`rercr>r>rs5AAA<<<<ceZdZdZeZdS)rr!N)rfrgrhrN rerA r`rercrr|sJ EEErerc&eZdZdfd ZdZxZS)rNc^tt|j|i|| ||_dSdSr_)rrrrA )rarA rrrs rcrzBareField.__init__s>'i'8888  DJJJ  recdSr_r`r8s rcrR zBareField.ddl_datatyperRrer_)rfrgrhrrR rrs@rcrrsL rerceZdZeZeZ dfd ZedZ fdZ dZ dZ dZ d Zdfd Zdd Zd ZxZS)r6NTc|ddtt|j|i||t d|}| t d| }| t d| }|dk|_||_||_||_d|_ ||_ ||_ ||_ ||_ | |_| |_| |_dS)NrxTzP"rel_model" has been deprecated in favor of "model" for ForeignKeyField objects.zO"to_field" has been deprecated in favor of "field" for ForeignKeyField objects.zK"related_name" has been deprecated in favor of "backref" for Field objects.ra)rrr6rr_is_self_referencer r declared_backrefbackref on_delete on_update deferrablerobject_id_namer constraint_name)rarArArF rG rH rI _deferredr to_fieldrJ r rK related_namerrrs rcrzForeignKeyField.__init__s  '4(((-ot$$-t>v>>>  B C C CE   B C C CE  # : ; ; ;"G"'6/ ' ""$! ,".rect|jts |jjSt|jtr t jSt jSr_)rvr rrN rrr:rs rcrN zForeignKeyField.field_typesG$.)44 .>, ,  5 5 ."- -&&rect|jts|jSt t |Sr_)rvr rrJ rr6)rars rcrJ zForeignKeyField.get_modifierssG$.)44 2>//11 1_d++99;;;recl|jp-d|jjjd|jd|jjjS)Nfk_rq_refs_)rK rAr'r;rr rs rcget_constraint_namez#ForeignKeyField.get_constraint_namesG#-- J  ' ' '     N + +(- -rec6|j|Sr_)r rA rs rcrA zForeignKeyField.adapts~##E***rect||jrt||jj}|j|Sr_)rvr rr rr rs rcr zForeignKeyField.db_values@ eT^ , , 8E4>#677E~&&u---recdt||jr|S|j|Sr_)rvr r r0rs rcr0zForeignKeyField.python_values1 eT^ , , L~**5111rec|js!|dr|n|dz|_|js(|j|_|j|kr|xjdz c_n+|j|kr td|jjd|d|jr||_t|j tr t|j|j |_ n|j |jjj |_ tt|||||j|_t#|jr|||_n|jdc|_|_|jsd|jjz|_|r\t)||jt+||jdvr2t)|j|j||dSdSdS)N_idzForeignKeyField "z"."zA" specifies an object_id_name that conflicts with its field name.z%s_setz!+)rrrJ rr'rrD r rvr r9rrrr6rr; rrE rF rr% backref_accessor_classr s rcrzForeignKeyField.binds N'+}}U';';MttD " A"&"2D "d**##u,##  D ( (*(- (8(8(8$$$@AA A  " #"DN dnj 1 1 >$T^T^DDDNN ^ #!^1=DN ot$$))%}EEE, T* + + N0066DLL262G /DL$/| 7#ek&66DL  ; E4.0@0F0F G G G|4'' 33D99;;;;; ; ;''reFc g}|js|rR|}|tdt t |g|tdt |ftd|jt |jfg|j r*| td|j z|j r*| td|j z|j r*| td|j zt|S)Nr!z FOREIGN KEY REFERENCESz ON DELETE %sz ON UPDATE %sz DEFERRABLE %s)rK rT r7rQrfrFr.r r rG rrH rI ru)ra explicit_namerprs rcforeign_key_constraintz&ForeignKeyField.foreign_key_constraintsI   := :++--D LLL!!066779 : : :     dW % %    N dn. / / 1 2 2 2 > ? LL^dn<== > > > > ? LL^dn<== > > > ? A LL_t>?? @ @ @rec|drtd||jjjvr|jjj|Std|z)N__z)Cannot look-up non-existant "__" methods.zNForeign-key has no attribute %s, nor is it a valid field on the related model.)r|rr r'r@rs rcrzForeignKeyField.__getattr__ sp ??4  N !LMM M 4>'. . .>'.t4 4ACGHII Ire) NNNNNNNNNTNNrmr)rfrgrhr r< r rZ rrrN rJ rT rA r r0rr^ rrrs@rcr6r6s'N,BF<@?CDH!/!/!/!/!/!/F''X'<<<<< --- +++... 222 ";";";";";";H,IIIIIIIrer6cdeZdZeZfdZejZddZdZ e dZ xZ S)r+c N||_||_tj|t t||d|d|ddS)Nrrr)rrr) field_kwargsrlrel_model_namer+ _unresolvedrrrr)rard rrs rcrzDeferredForeignKey.__init__s",2244&**4000  $''00 =11F## =11 1 3 3 3 3 3reNc0t|jfi|jSr_)r+rd rc )ramemos rc __deepcopy__zDeferredForeignKey.__deepcopy__$s!$"5KK9JKKKrect|fddi|j}|jr'|jj|j|dS|jj|j|dS)NrL T)r6rc rrAr'set_primary_keyr add_field)rar rAs rc set_modelzDeferredForeignKey.set_model'sp OOTOT=NOO   9 J  , ,TY > > > > > J  & &ty% 8 8 8 8 8recttjtjd}|D]X}|j|jkr4||tj |YdS)Nr3 r) rr+re r attrgetterrd rfrlrl discard) model_cls unresolveddrs rcresolvezDeferredForeignKey.resolve/s.: ( 3H = =???  ; ;B I$6$<$<$>$>>> Y'''".66r::: ; ;rer_) rfrgrhrPre rrurrh rl rors rrs@rcr+r+s#%%K33333HLLLL999;;\;;;;;rer+c eZdZdZdZdZdS)r,cg|_dSr_)_refsrs rcrzDeferredThroughModel.__init__:s  rec@|j|||fdSr_)rv rr s rc set_fieldzDeferredThroughModel.set_field=s% 5%./////recf|jD](\}}}||_|j||)dSr_)rv through_modelr'rk )rarz src_modelm2mfieldrs rcrl zDeferredThroughModel.set_model@sG)- 6 6 %Ix%2H " O % %dH 5 5 5 5 6 6reN)rfrgrhrrx rl r`rercr,r,9sA00066666rer,c"eZdZdxZxZxZZdZdS) MetaFieldNF)rfrgrhrrrArrr`rercr~ r~ Fs'+//K/'/EDKKKrer~ c,eZdZfdZddZdZxZS)ManyToManyFieldAccessorctt|||||j|_|j|_|j|_|jjj|j}|jjj|j}|s td|jd|jd|s td|jd|jd|d|_ |d|_ dS)NzCannot find foreign-key to "z" on "z" model.r) rr rrAr rz r' model_refsrsrc_fkdest_fk)rarArArsrc_fksdest_fksrs rcrz ManyToManyFieldAccessor.__init__Ls %t,,55eUDIII[ "0$*5djA%+6t~F C*"jjj$*<*<*<>?? ? C*"nnnd.@.@.@BCC Caj { reNFc||sMjjdkr=t|jj}t|trfd|DSt|jjj}|'jjrtdjd|dt|j  j  jj|kSjS)NrcDg|]}t|jjSr`)rr rrVrras rcrYz3ManyToManyFieldAccessor.__get__..as(OOOGC):;;OOOrezCannot get many-to-many "" for unsaved instance "rz)r rF rrvr`r rrA_prevent_unsavedrManyToManyQueryr rUrz rAr5)rar|r} force_queryrF src_ids` rcr~zManyToManyFieldAccessor.__get__\s   P4;#6##=#=!(DK,?@@gt,,POOOOwOOOOXt{'<'ABBF~$*"=~ j59ZZZ"KLLL#HdDNCCT$,--T$*%%U4;&011 3 zrect||jjj}|'|jjrt d|jd|d||d}||ddS)NzCannot set many-to-many "r rzT)r )clear_existing) rr r rrAr rr~r)rar|r~r r;s rcrNzManyToManyFieldAccessor.__set__ns4;#8#=>> >dj9>*15XXXGHH H X4 88 % -----rerh)rfrgrhrr~rNrrs@rcr r Ks[##### $.......rer c~eZdZeZ d dZdZd fd ZdZe dZ e j d Z d Z d Z xZS)r@NTFc|Ht|tst|std|s||t d||_||_||_||_||_ ||_ ||_ dS)NzKUnexpected value for through_model. Expected Model or DeferredThroughModel.zFCannot specify on_delete or on_update when through_model is specified.) rvr,r&rrr rF _through_model _on_delete _on_updater _is_backref)rarArF rz rG rH prevent_unsavedr s rcrzManyToManyField.__init__zs  $}.BCC B]++ B!ABBB @I$9Y=R "?@@@ +## /&rec t|Sr_)r rs rc_get_descriptorzManyToManyField._get_descriptors&t,,,rect|jtr|j|||dSt t |||||jskt |j||j |j |j d}|j p|j jdz|_ |jj |j |dSdS)NT)rF rz rG rH r rq)rvr r,rx rr@rr rArz r r rF r'rr rk )rarArr> many_to_many_fieldrs rcrzManyToManyField.binds d)+? @ @    ) )%t < < < F ot$$))%}EEE M!0 "0// """"""  <A5;+;c+ADL N * *4<9K L L L L L M Mrecjdt|j|jf|j |jffDS)Ncg|]\}}|Sr`r`)rVrqrAs rcrYz.ManyToManyField.get_models..s(666(!U666re)rr rAr rs rc get_modelszManyToManyField.get_modelssN66f  tz *! !4> 2.4'5'5666 6recP|j||_|jSr_)r _create_through_modelrs rcrz zManyToManyField.through_models(   &"&"<"<">">D ""rec||_dSr_)r rs rcrz zManyToManyField.through_models#recJ\dfDGfdd}jjd}jjt fi|jjt fi|d|i}jjd}t|tf|S)Nc&g|]}|jjSr`)r'r;rVrAs rcrYz9ManyToManyField._create_through_model..sAAAU%+(AAAreceZdZjjjZjjjZdezZjj jj fdffZ dS)3ManyToManyField._create_through_model..Metaz %s_%s_throughTN) rfrgrhrAr'rrrar;rr)rrratablessrcrr sZz'0HZ%,F(55==8J).#).1GGGrer)rG rH Through) r r r r'rr6rfrrA)rarrNattrs klass_namerrr s` @@@rcr z%ManyToManyField._create_through_models??$$SAAsCjAAA              $T_MM INOC::6:: INOC::6:: D '*llCLLLA J%000rec|jSr_)rz rs rcget_through_modelz!ManyToManyField.get_through_models !!re)NNNNTFrm)rfrgrhr r< rr rr rrz rr r rrs@rcr@r@ws,NJNCH''''$---MMMMMM$666 ##X# $$$111*"""""""rer@c8eZdZdZdfd ZdZdZddZxZS) VirtualFieldNc||n|j}| |nd|_tt|j|i|dSr_) field_classfield_instancerr r)rar rrr2rs rcrzVirtualField.__init__sS*6 D.s?&A&A&A*+'+j&6&=a&@&J&A&A&Are)r rAr rs`rcsafe_field_nameszCompositeKey.safe_field_namess[  ! )z!''&A&A&A&A/3/?&A&A&AD "%%recL tfd|jDS|S)Nc0g|]}t|Sr`r)rVr r|s rcrYz(CompositeKey.__get__..s#NNN1'(A..NNNre)rar r{s ` rcr~zCompositeKey.__get__s4  NNNN8MNNNOO O rec&t|ttfstdt |t |jkrt dt|D]!\}}t||j||"dS)NzIA list or tuple must be used to set the value of a composite primary key.zVThe length of the value must equal the number of columns of the composite primary key.) rvr`rarrr rrr)rar|r~r field_values rcrNzCompositeKey.__set__s%$// 8788 8 u::T-.. . .HII I )% 0 0 B B C Hd.s3[ A A A A B Breczfdtj|D}ttj|S)NcLg|] \}}jjj||k!Sr`rAr'r@)rVrAr~ras rcrYz'CompositeKey.__eq__..sEIII'5% (/6%?IIIre)zipr rtrr)rarrs` rcrzCompositeKey.__eq__sQIIII+.t/?+G+GIII hm[111rec||kSr_r`rs rcrzCompositeKey.__ne__srecBt|jj|jfSr_)rrArfr rs rcrzCompositeKey.__hash__ sTZ($*:;<<g|]}jjj|Sr`r )rVrAras rcrYz(CompositeKey.__sql__..s<!@!@!@%*"&!1!8!?!@!@!@rer)rrBr)rur )rar9rs` rcr%zCompositeKey.__sql__ sml*wwx!@!@!@!@.2.>!@!@!@AEvOOPP PreTcj||_|x|_x|_|_t ||j|dSr_)rArrr; rr= s rcrzCompositeKey.binds9 8<<<49t~ty$'''''rer_rm)rfrgrhrNrrr r~rNrrrr%rr`rercr"r"sH&&&&&X& BBB222    ===PPP((((((rer"c<eZdZdZdZdZdZdZdZdZ dZ d S) _SortedFieldList_keys_itemsc"g|_g|_dSr_r rs rcrz_SortedFieldList.__init__s  rec|j|Sr_)r )rars rcrz_SortedFieldList.__getitem__"s{1~rec*t|jSr_)rwr rs rcrz_SortedFieldList.__iter__%rrec|j}t|j|}t|j|}||j||vSr_)r4 rr rr )rarrrr s rc __contains__z_SortedFieldList.__contains__(sA N  A & & Q ' 't{1Q3'''rec@|j|jSr_)r rxr4 r" s rcrxz_SortedFieldList.index.sz000rec|j}t|j|}|j|||j||dSr_)r4 rr r r )rarrrs rcr z_SortedFieldList.insert1sP N  A & & !Q 1d#####recP||}|j|=|j|=dSr_)rxr r )rarrs rcrz_SortedFieldList.remove7s*jj K  JsOOOreN) rfrgrhrrrrr rxr rr`rercr r s#I!!!((( 111$$$ rer ceZdZd#dZedZejdZdZd$dZdZ d$d Z d$d Z d$d Z d$d Z d$d Zd%dZd%dZd$dZd$dZd$dZd$dZdZd$dZdZdZdZdZdZdZdZdZdZd$d Z d!Z!d&d"Z"dS)'rNNc f||_||_|dt||_dS)Nr)rArJrrDr)rarArrs rcrzSchemaManager.__init__As4 !""7L999.rech|jp|jjj}|t d|jz|S)Nz=database attribute does not appear to be set on the model: %s)rJrAr'rr8rs rcrzSchemaManager.databaseGsF ^ 8tz/8 :&(ACG:(NOO O rec||_dSr_rrs rcrzSchemaManager.databaseOs rec0|jjdi|jSr )rrLrrs rc_create_contextzSchemaManager._create_contextSs ,t},DDt/CDDDreTc \ |dd}|}||rdnd|r|d||jdg}g}|jj jrV fd jjD}| ttdt|f j D]m}| ||t|t r.|js'| |n jr| j||||t||z jet/ j} | D]N} t| t0st3d |d| Og} jr| d  jr| d | r+|d d | z|S)N temporaryFCREATE TEMPORARY TABLE CREATE TABLE r5rc4g|]}j|jSr`)r@r)rV field_namerHs rcrYz/SchemaManager._create_table..bs9JJJ(+j18JJJrerGztable_settings must be stringsSTRICTz WITHOUT ROWIDrr)rr rr)rAr' composite_keyrr rrurQr. sorted_fieldsrU rvr6rr^ rr7_create_table_option_sqltable_settingsrcr9r strict_tables without_rowidrU) rar/r$is_tempr9rr pk_columnsrAr setting extra_optsrHs @rc _create_tablezSchemaManager._create_tableVs++k511""$$ M--oNNN  * KK( ) ) )  ##C((( z   IJJJJ,0,<,HJJJJ   x]););)9*)E)E)G H H I I I' C CE NN599S>> * * *%11 C%. C""5#?#?#A#ABBB   1   t/ 0 0 0488AABBB  ;!677888   *)$*=>>N) 2 2!':66G$%EFFF C  ((1111  :z00:::  Az00AAA  7 KK * 5 55 6 6 6 recg}t|jjjpi|}|s|St |D]\}}t |ts8t|r |jj }ntt|}| tt||fd|S)Nrr)rPrAr'r$rr rvrer&r(rQrWrru)rar$rrr~s rcr z&SchemaManager._create_table_option_sqlsTZ-5;WEE L 11 @ @JCeT** ,E??,!K-EEE OOE LL3s88U"3#>>> ? ? ? ? rec T|j|jdd|i|dSNr/r`)rrr rar/r$s rcr"zSchemaManager.create_tables7 0d0FFdFgFFGGGGGrec J||drdnd}|r|d|t t |d|S)Nr r r r5r)r rrr)rfrcrar;r;r/rHr9s rc_create_table_aszSchemaManager._create_table_ass##%%88K00F116EGG   * KK( ) ) )V\*55677U rec \|j||fd|i|}|j|dS)Nr/)r rrr s rccreate_table_aszSchemaManager.create_table_ass?#d#JIIDIDII c"""""rec 6||rdnd|j}|dr|d}n*|dr|d}|S)NzDROP TABLE IF EXISTS z DROP TABLE cascade CASCADErestrictz RESTRICT)r rr)rAr)rar/r$r9s rc _drop_tablezSchemaManager._drop_tables##%%4J//]KKDJ  ;;y ! ! +++j))CC [[ $ $ +++k**C rec T|j|jdd|i|dSr )rrr r s rcr'zSchemaManager.drop_tables7 .d.DDDDGDDEEEEEreFcz|j}|js?|d|jS|d|j}|r|d}|r|d}|S)Nr&zTRUNCATE TABLE z RESTART IDENTITYr )rrHr rr)rA)rarestart_identityr rMr9s rc_truncate_tablezSchemaManager._truncate_tables ]  >((**W^,,SS__ >""$$,,->??CCDJOO  3++122C  *++j))C recb|j|||dSr_)rrr )rar r s rcrHzSchemaManager.truncate_tables/ d223CWMMNNNNNrec\fdjjDS)Nc<g|]}|Sr`) _create_indexrVrxr/ras rcrYz1SchemaManager._create_indexes..s?AAA""5$//AAArerAr'fields_to_indexrar/s``rc_create_indexeszSchemaManager._create_indexessNAAAAA!Z-==??AAA ArecPt|trk|jjs|d}n |j|kr||}t|jtrt|}| |Srh) rvr9rrEr/r,rJrRrr r))rarxr/s rcr zSchemaManager._create_indexs eU # # -=2 ) 5))$$ 4(($..99 -&e,,##%%))%000recl||D]}|j|dSN)r/)r rrrar/r;s rccreate_indexeszSchemaManager.create_indexessE))t)44 ) )E M ! !% ( ( ( ( ) )rec\fdjjDS)Ncfg|]-}t|t|.Sr`)rvr9 _drop_indexr s rcrYz/SchemaManager._drop_indexes..sH---eU++-  -----rer r s``rc _drop_indexeszSchemaManager._drop_indexessE-----!Z-==??--- -recTd}|r|jjr|dz }t|jtr,|jjr t |jj|j}nt |j}| | |S)Nz DROP INDEX z IF EXISTS ) rrFrvr)rSrrfrr rr))rarxr/r9r:s rcr zSchemaManager._drop_indexs!  &DM1 &  %I elE * * -u|/C - 4ekBBJJ ,,J ""##Z "recl||D]}|j|dSr )r rrr s rc drop_indexeszSchemaManager.drop_indexessE''T'22 ) )E M ! !% ( ( ( ( ) )recZ|jr |jjstd|jzdS)Nz@Sequences are either not supported, or are not defined for "%s".)rNrrGrrr" s rc_check_sequenceszSchemaManager._check_sequencessC~ ?T]%< ?138:>?? ? ? ?rec|jjjr$t|jjj|jSt|jSr_)rAr'rrfrNr" s rc_sequence_for_fieldz!SchemaManager._sequence_for_fields< ;  # *%++2ENCC C%.)) )rec|||j|jsM|d||SdS)NzCREATE SEQUENCE r rrrNr rr)r r" s rc_create_sequencezSchemaManager._create_sequencesv e$$$},,U^<< ;$_&&W/00S11%8899 ; ; ;recl||}||j|dSdSr_)r rrrarAseq_ctxs rccreate_sequencezSchemaManager.create_sequences?''..   M ! !' * * * * *  rec|||j|jrM|d||SdS)NzDROP SEQUENCE r r" s rc_drop_sequencezSchemaManager._drop_sequencesv e$$$ = ( ( 8 8 ;$_&&W-..S11%8899 ; ; ;recl||}||j|dSdSr_)r# rrr s rc drop_sequencezSchemaManager.drop_sequences?%%e,,   M ! !' * * * * *  rec|d|jd|dS)Nz ALTER TABLE z ADD T)r rr)rAr^ r" s rc_create_foreign_keyz!SchemaManager._create_foreign_key sY ""((U[!!!!U11$7788  :rec`|j||dSr_)rrr' r" s rccreate_foreign_keyz SchemaManager.create_foreign_keys, d66u==>>>>>rec|jjr0|jjjD] }|jr||dSdSr_)rrGrAr'r rNr! r" s rccreate_sequenceszSchemaManager.create_sequencessY = " 0)7 0 0>0((/// 0 0 0 0rec v||j|fi|||dSr )r+ r"r )rar/ table_optionss rc create_allzSchemaManager.create_allsL $00-000 &&&&&rec|jjr0|jjjD] }|jr||dSdSr_)rrGrAr'r rNr% r" s rcdrop_sequenceszSchemaManager.drop_sequences#sY = " .)7 . .>.&&u--- . . . .rec R|j|fi||r|dSdSr_)r'r0 )rar/r0 r$s rcdrop_allzSchemaManager.drop_all)sF(((((  "    ! ! ! ! ! " "rer_rmrjrD)#rfrgrhrrrrr r r r"r r r r'r rHr r r r r r r r r r! r# r% r' r) r+ r. r0 r2 r`rercrNrN@sc//// X__EEE((((T   HHHH    ####FFFF    OOOOAAAA 1 1 1 1))))---- " " "))))??? *** ;;;+++ ;;;+++ :::???000 '''' ... """"""rerNc(eZdZ ddZdZddZdZdZd Zd Z e d Z e j d Z e j d Z e dZej dZe dZdZdZddZdZdZdZdZdZdZdZdS)MetadataNFTc | td| }||_||_i|_i|_i|_t |_g|_g|_ i|_ i|_ i|_ i|_ g|_|j|_| |_||_|s0|jr||n|}||_d|_|rt/|ng|_||_||_||_dx|_|_||_| |_| |_ ||_!||_"||_#i|_$i|_%tMj't.|_(tMj't.|_)i|_*| pi|_+|,D]\}}t[|||t]|/|_0g|_1dS)NzC"db_table" has been deprecated in favor of "table_name" for Models.)2rrArr@rcombinedr _sorted_field_listr sorted_field_namesr_default_by_name _default_dict_default_callables_default_callable_listrfrlrrsrEmake_table_namer;r)r`rrrrr rV only_save_dirty depends_onr r r r refsbackrefsr defaultdictr model_backrefs manytomanyr$r rrPkeys_additional_keysr )rarArr;rrrrr> r? r$db_tablersr r r r rErrr~s rcrzMetadata.__init__0s   6 7 7 7!J      "2"4"4"$ ""$&(#N((** ,"4 7!06$--e444#3355 % (/7tG}}}R & &377T0.$,**"  %1$77)5d;;}"  ,,.. & &JC D#u % % % % #FKKMM 2 2recx|jrtjdd|jSt |jjS)NrCrq)rErDrjrrnrArfrs rcr= zMetadata.make_table_namess6  " 56)S$)44 4tz2333recD|s|stdd|jdfg}t}tj|f}|r|jn|j}|r|}||vr|||rQ|j D]7\} } | | | df| | j 8|rQ|j D]7\} } | | | df| | j 8||S)Nz)One of `refs` or `backrefs` must be True.FT) rrArPrdequerpopleftrr@ r rr'rA ) rar@ rA depth_firstrrqueuercurrfkrAs rc model_graphzMetadata.model_graphxsN JH JHII I D)*uu!4'**)<u} .688Dt||X HHTNNN .!%!2!2..IBLL"eU!3444LL---- .!%!4!4!6!6..IBLL"eT!2333LL---- . rec|j}||j|<|j|||j|jj|<|jj|j|dSr_)r r@ r rrAr'rA rC rarArels rcadd_refzMetadata.add_refsgo % ##E***$(J 5!  ,33E:::::rec|j}|j|=|j|||jj|=|jj|j|dSr_)r r@ r rr'rA rC rArR s rc remove_refzMetadata.remove_refsao Ie  ##E*** I u %  ,33E:::::rec$||j|j<dSr_rD rr" s rcadd_manytomanyzMetadata.add_manytomanys&+ ###rec |j|j=dSr_rX r" s rcremove_manytomanyzMetadata.remove_manytomanys OEJ ' ' 'rec|j.sCCCu"CCCre)rrrJ)r)rSr;r rrArrs rcr(zMetadata.tablesR ; CC0BCCC{z- )))DK {rec td)NzCannot set the "table".rrs rcr(zMetadata.tables6777recd|_dSr_)r)rs rcr(zMetadata.tablerrec|jSr_)rrs rcrzMetadata.schemas |rec||_|`dSr_)rr(rs rcrzMetadata.schemas JJJrecl|jrt|j|jSt|jSr_)rrfr;rs rcrzMetadata.entitys0 < +$,88 8$/** *recdt|j|_d|jD|_dS)Ncg|] }|j Sr`r)rVr s rcrYz2Metadata._update_sorted_fields..s"F"F"Fa16"F"F"Fre)r`r7 r r8 rs rc_update_sorted_fieldszMetadata._update_sorted_fieldss4!$"9::"F"F43E"F"F"Frect|tr|j}|j|g}|j|g}||fSr_)rv ModelAliasrAr rrC )rarA forwardrefsrA s rcget_rel_for_modelzMetadata.get_rel_for_modelsU eZ ( ( KEo))%44 &**5"55X&&rec||jvr||n)||jvr ||j|t |t s |`||j||||j|j <||j |j <||j |j <||j |j <|j |||j||j|j|<t%|jr6|j|j|<|j|j |jfn@|j|j|<|j|j|j <n||j||t |t0r||dSt |t4r|j r||dSdSdSr_)r@ remove_fieldrD r[ rvr~ r(rrArrrr6 r7 r rg rrrr; r< rr: r9 r6rT r@rY )rar rAr> s rcrk zMetadata.add_fields  $ $   j ) ) ) ) 4? * *  " "4?:#> ? ? ?%++ > JJtz:} = = =&+DK #.3DL* +(-DM%* %/4DM%+ ,  # * *5 1 1 1  & & ( ( (}(',} e$U]++F5:]D+E2/66 8= 8GHHHH16 D&u-8= D)%*5 JJtz:} = = = e_ - - ' LL       / / 'EJ '    & & & & & ' ' ' 'rec||jvrdS|`|j|}|j|j=|j|= |j|j=n#t $rYnwxYw|j|| |j |j |=|j |dr@t|jD]*\}\}}||kr|j|n+n;|j|d|j|jdt%|t&r||dSdSr_)r@r(rrrr6 rr7 rrg rrr; rr< r: r9 rrvr6rV )rar originalrrrqs rcrm zMetadata.remove_fields T[ ( ( F J;??:.. L- . M* %  h233    D  &&x000 ""$$$   ' h'&**8T:: ?$-d.I$J$JLAyaz))377:::*"&&x666%))(->>> h 0 0 & OOH % % % % % & &s A AAct|t|_|||||_|jpt |j|_dSr_)rvr"r rk rrV rerN)rarrAs rcrj zMetadata.set_primary_keysV'|<< tU###    !   recjr%tfdjjDSjdurjfndS)Nc*g|]}j|Sr`r@)rVr ras rcrYz-Metadata.get_primary_keys..s6JJJ(+j1JJJreFr`)r rarr rs`rcrzMetadata.get_primary_keyssw   PJJJJ,0,<,HJJJKK K+/*:%*G*GD$&&R Orecl|j}|jD]\}}|||<|Sr_)r9 rLr< )raddr rs rcget_default_dictzMetadata.get_default_dict"sC  " ' ' ) )#'#> ' ' J$WYYBzNN rec g}|jD]N}|jr |js|jr6|t |j|f|j|jO|jD]}t|tr||-t|ttfr|\}}g}|D]t}t|tr!||j|8t|tr||ctd|z|t |j|||S)N)r.r0z;Expected either a field name or a subclass of Node. Got: %s)r.)r rrxr.rrBrAr>rrvrer`rar9r6 r)rarr index_obj index_partsr.r@rWs rcr zMetadata.fields_to_index(s# ? ?A} w ?!( ?z$*qd1801  > > >??? N NI)T** Ny))))Ie}55 N&/# V'MMD!$ 33M dmD&9::::#D$//M d++++(*EGK*LMMMz$*fVLLLMMMrec||_||jj_|`t |t r |jd}|jD] }||dSr_) rrArrJr(rvrLrr )rarhooks rc set_databasezMetadata.set_databaseCse  '/ $ J h & & 8<+?HN  D DNNNN  rec||_|`dSr_)r;r()rar;s rcset_table_namezMetadata.set_table_namePs$ JJJre)NNNNNNFNNNNNFFNT)TTTrm)rfrgrhrr= rP rT rV rY r[ rr(rdeleterrrrg rk rk rm rj rrv r r| r~ r`rercr4 r4 /sFJ<@AEDHEI$( AAAAF444 2;;;;;;,,,(((X \88\8 ]]X ]]++X+ GGG'''!'!'!'!'F&&&:"""PPP 6   rer4 c(eZdZgZfdZdZxZS)SubclassAwareMetadatactt|j|g|Ri||j|dSr_)rr rr#rrarArrrs rcrzSubclassAwareMetadata.__init__XsM3#T**3EKDKKKFKKK 5!!!!!rec0|jD] }||dSr_)r#)rar5rAs rc map_modelsz SubclassAwareMetadata.map_models\s,[  E BuIIII  re)rfrgrhr#rr rrs@rcr r UsL F"""""rer ceZdZdS)r.Nrr`rercr.r.arrer.creZdZegdZfdZdZdZdZdZ dZ dZ d Z d Z e Zd ZxZS) ModelBase) rrrrr$rrsr r> rEr r c |tks|djtkr$ttj|||fi|Si}|dd}|r9|jD]\}}|ds|||< t|dd} dx} } |D]} t| ds| j } | t| j } j| jz}| jD]}||vr||vr| j|||<|d| j|d| j| jD]B\}}||vr t'|t(r#|jj st|j||<C|ddpi}|d t.}|d t0}ttj|||fi|dx__|fi|_ |fi|_g}jD]X\}}t'|t8r>|j r| rt;d |z|j r||} } A|||fY| &| d ur| | | jfntAd f\} } n&d } n#t'| tBrd} dj _"| d urj #| | |D] \}}j $||!tdrd|vrtKdfddjz}dj&i}tO|tPf|}|_()tT+S)Nrrrqrr'rrschema_optionsmodel_metadata_classschema_manager_classzover-determined primary key %s.Fr'__composite_key__Trr9 cDdjd|dS)Nrr8 r)rfr)rars rcrxz#ModelBase.__new__..s# dllnnnn3.rez%sDoesNotExistrg),rGrfrr rrr[r r|rrr'rr inheritablerF rrrrvr rArr4 rNr r rr2rrrrr"r rj rk rrgrr.validate_modelr+rs )rrbasesr r meta_optionsrHrrXrIpk_name parent_pkr base_metaall_inheritablesoptsrSchemar@rr~rAexc_name exc_attrsexception_classrs` rcrzModelBase.__new__js :  q!2j!@!@05C((0dE5;;39;; ; yy&&  ( ++-- ( (1||C(((&'LO T=$ / /"")  1 1A1g&& I $Y%:;; !o 0JJO' < <''A\,A,A&/&8&;LO  # #J 0B C C C  # #Hi.> ? ? ?***,, 1 1A::xa//18K1'00E!H  1   !1488>B 6AA!!"8-HH,eIs##+CueNNvNN%)) s{D-- -- fS**E** ,,,.. 0 0JC%'' 0$00$%F%MNNN&0"'BBMM3,/// :%%"+"7!*9>:: ) T2GG L ) ) +)G&*CI # U?? I % %gr 2 2 2! - -KD% I  e , , , , 3 " " /z'>'> C&.&.&.&. / / /$cl2!3>2 x,)DD* ""3''' recd|jzS)Nz )rfrs rcr9 zModelBase.__repr__st},,recDt|Sr_)rwrrs rcrzModelBase.__iter__sDKKMM"""rec,||Sr_) get_by_idrars rcrzModelBase.__getitem__s~~c"""rec2|||dSr_) set_by_id)rarr~s rcrzModelBase.__setitem__s sE"""""rec0||dSr_) delete_by_idr s rcr zModelBase.__delitem__s #recT ||dS#|j$rYdSwxYwr)r r.r s rcr zModelBase.__contains__sG  NN3   4    55 s  ''cN|Sr_)rr'rs rcrzModelBase.__len__s{{}}""$$$recdSr@r`rs rc__bool__zModelBase.__bool__sttrec@||jjSr_)r)r'r(r8s rcr%zModelBase.__sql__swwtz'(((re)rfrgrhrPr rr9 rrrr r rr __nonzero__r%rrs@rcr r ds#:::;;K YYYYYv---#########%%%###K)))))))rer c eZdZdZdZdZdS)r<c>||_||_||_||_dSr_)r#rr8r9)rar#rr8r9s rcrz_BoundModelsContext.__init__s%   "*rec g|_|jD]`}|j|jj||j|j|jt|ja|jSN)rZ) rr#rr'rrr8r9rP)rarAs rcrz_BoundModelsContext.__enter__sy [ 2 2E   & &u{'; < < < JJt}dnd6H #DK 0 0  2 2 2 2{rec t|j|jD]:\}}|||j|jt |j;dSr )r r#rrr8r9rP)rarr r!rArMs rcrz_BoundModelsContext.__exit__sfT[$*=>> 2 2IE2 JJr4>4+= #DK 0 0  2 2 2 2 2 2reN)rfrgrhrrrr`rercr<r<sA+++ 22222rer<cveZdZdZdZedZed3dZedZedZ ed3dZ ed3d Z ed3d Z ed Z ed3d Zed3d ZedZedZedZed3dZed3dZedZedZedZedZedZedZedZedZdZeeZej dZdZ!dZ"dZ#d4d!Z$d"Z%ed#Z&d5d%Z'd6d&Z(d'Z)d(Z*d)Z+d*Z,ed7d+Z-ed8d,Z.ed-Z/ed9d.Z0ed8d/Z1ed0Z2ed1Z3ed2Z4dS):rAc|ddri|_n|j|_t |j|_i|_|D]}t||||dS)N__no_default__)rr r'rv rPr r r)rarrrs rcrzModel.__init__s ::& - - :DMM J7799DM$-((   ( (A D!VAY ' ' ' ' ( (recJ|jjdurt|jndS)NFzn/a)r'rrW_pkrs rcrz Model.__str__s# $ 6e C Cs48}}}NrecdSr_r`rs rcr zModel.validate_model s reNc"t||Sr_)ri )rrs rcrz Model.alias s#u%%%recH| }|s |jj}t|||S)N) is_default)r'r ModelSelect)rr@r s rcrz Model.selects0Z  -Y,F3:>>>>rec i}|rt|ts|rtd|z|S|D]u} t|tr|n|jj|}n=#t $r0t|tstd|d|d|}YnwxYw||||<v|rJ|D]G} ||||jj|<#t $r|||t||<YDwxYw|S)Nz/Data cannot be mixed with keyword arguments: %szUnrecognized field name: "z" in rR) rvrrr2r'r6 rrer)rr r normalizedrrAs rc_normalize_datazModel._normalize_datasx  .dD)) =$&57;&<===  . . $.sE$:$::SS"%)"4S"9E   %c4008(j,/CC*7888EEE  %)I 5!!  @ @ @@:@+Jsy1#677@@@4:3KJwsC00111@s#)A7BB/C  #C10C1c Jt||||Sr_) ModelUpdater )r _Model__datars rcrz Model.update3"3 3 3FF C CDDDrec Jt||||Sr_) ModelInsertr rr r s rcr z Model.insert7r rec&t|||Sr r rrSr@s rc insert_manyzModel.insert_many;s3tV<<<.AsJ333"'+5UJ*G*G73&&&333rer r )rr;r@rs` rc insert_fromzModel.insert_from?s@3333+13333ug>>>>rec D|j|fi|dSrrr s rcrz Model.replaceEs*sz&++F++77 BBBrecV|||dS)N)rSr@r)r rr s rc replace_manyzModel.replace_manyIs($v66Y'' )rec$t|||Sr_)ModelRaw)rr)rNs rcrawz Model.rawOsS&)))rec t|Sr_) ModelDeleter s rcrz Model.deleteSs3rec B|di|}|d|S)NT) force_insertr`)save)rr;insts rccreatez Model.createWs,s||U|| t $$$ rec|t||}n|g}tjj}jjr&jjj}||jjj r(jjdurj }nd}fd|D}g|D]L}t|tr |j2 |jM|D]} fd| D} | |} |rD| Bt#| | D]1\} } t#|| D]\}}t%| |j|2dS)NFc4g|]}jj|Sr`)r'r@)rVr rs rcrYz%Model.bulk_create..os#MMM:#)":.MMMrec36K|]fdDVdS)c0g|]}t|Sr`r)rVr rAs rcrYz/Model.bulk_create...xs#777AgeQ''777reNr`)rVrAr s @rcrrz$Model.bulk_create..xsL))8777777))))))rers )r r`r'r8 rV rrrrrrrvr6rrJ r rr r)r model_list batch_sizebatchesr r pk_fieldsr@rAbatchrrOr0rApk_fieldobj_idr s` @rc bulk_createzModel.bulk_create]s  !j*55GG!lG39788 9 # (i+0G   w ' ' ' 9  .  9  - - 2244IIIMMMMMMM ) )E%11 ) U12222 UZ(((( > >E))))"')))E//%/77??AAC >S_"%c5//>>JC.1)S.A.A>>*6x}f====>  > >rectjjtrt dfd|D}d|D}|t ||}n|g}d}jj}|D]}d|D} i} t ||D]\} } g} |D]k}t|| }t|ts| |}| | |j |flt|| }|| | <| | jj| z }|S)NzGbulk_update() is not supported for models with a composite primary key.cbg|]+}t|trjj|n|,Sr`)rvr9r'r@)rVr rs rcrYz%Model.bulk_update..sG###*4Az)B)BI#)"1%%###recTg|]%}t|tr|jn|j&Sr`)rvr6rJ rr^ s rcrYz%Model.bulk_update..sD666%**4E?)K)K!%%j666rercg|] }|j Sr`)r r s rcrYz%Model.bulk_update..s444Uuy444re)rvr'rr"rr r rrerrr rrr5rr)rr r@r r r rzrIr id_listrrArrrAr~cases` rc bulk_updatezModel.bulk_updates ci+\ : : 9899 9####!###66.4666  !j*55GG!lG  Y "  E44e444GF"6511 % % t"BBE#E400E%eT226 %u 5 5LL"++ei"8"8%!@AAAAB $u #**V$$5.227;;<<799 AArec"t|dSr )NoopModelSelectr s rcnoopz Model.noopssB'''rec8|}|rbt|dkrEt|dtr*||jj|dk}n |j|}|r |jdi|}|S)Nrrr`) rrrvrr5r'rr6r)rr;filterssqs rcrz Model.gets ZZ\\  &5zzQ:eAh#<#<XXci3uQx?@@RXu%  &%%W%%Bvvxxrec@ |j|i|S#t$rYdSwxYwr_)rr.)rr;r s rc get_or_nonezModel.get_or_nones@ 37E-W-- -    DD s  cH||jj|kSr_)rr'rrrIs rcr zModel.get_by_idswwsy,2333rec|'||S|||jj|kSr_)r rrr5r'r)rrr~s rcr zModel.set_by_idsY ;::e$$,,.. .JJu%%U390C788 Drec||jj|kSr_)rr5r'rrr s rcr zModel.delete_by_ids4zz||!!#)"72"=>>FFHHHrec f|di}|}|D],\}}|t |||k}- |dfS#|j$r |r|||jj 5|j di|dfcdddcYS#1swxYwYYdS#t$r3} |dfcYd}~cYS#|j$r|wxYwd}~wwxYwwxYw)NrFTr`) rrr r5rrr.rr'rrr r;)rrrr;rAr~excs rc get_or_createzModel.get_or_creates::j"-- "LLNN > >LE5KKU 3 3u <==EE 99;;% %    ,MM(+++Y'..0066%3:////5666666666666666666666!    99;;---------'I  sl-B D05C/C! C/D0!C% %C/(C% )C// D,:DD,D0 D$$D''D,,D0c@|j|i|Sr_)rr6)rdq_nodesr s rcr6z Model.filters""szz||"H8888rec`|jjdurt||jjjSdSrh)r'rrr; rs rcget_idz Model.get_ids4 : ! . .4!7!ABB B / .recFt||jjj|dSr_)rr'rrrs rcr z Model._pks"dj,1599999rec,|jj|jkSr_)r'rr rs rc_pk_exprzModel._pk_exprsz%11reci}|D]G}t|tr|jj|}|j|vr||j||j<H|Sr_)rvr9r'r6 r)ra field_dictonlynew_datarAs rc _prune_fieldszModel._prune_fieldss] > >E%,, 3 +E2zZ'''1%*'=$rec |jjD]d}|j}||vo%||duo|j|du}|r/t ||t |||j|||<edSr_)r'r@ rr rrrr )rar foreign_key_field foreign_key conditionss rc_populate_unsaved_relationsz!Model._populate_unsaved_relationss!% E E +0Kz):;'4/:   --T9  Ek74+E+EFFF*.- *D ;' E EreFc.|j}|jjdur|jj}|j}ndx}}||||}nF|jjr:|s8|||j}|s|j dS| |d}|jj r|| |j d||s|jjr!|jD]}| |dn| |j d|st!d|jdi||}nw|V|jdi|}|4|jj s|&||_|j|j n|jdi||xjt/|zc_|S)NFrzno data to save!r`)r rLr'rr r r> dirty_fieldsr r r rV rrr r rrr5r rr ro rP) rar r r r pk_valuerS pk_part_namerIs rcr z Model.save s9]'')) : ! . .z-HxHH"& &Hx  ++J==JJ Z '   ++J8IJJJ  !!###u ((444 : $ 0)9 NN8=$ / / /   z' 4$,$877LNN<66667x}d333 5 !34444;,,,,224==??CCKKMMDD  !**z**2244B~4:#<~#+#3 ##HM222 DK % %* % % - - / / / s:&  rec*t|jSr_)rer rs rcis_dirtyzModel.is_dirty8rrec4fdjjDS)Nc0g|]}|jjv|Sr`)rr r s rcrYz&Model.dirty_fields..=s'MMMaqv7L7L7L7L7Lre)r'r rs`rcr zModel.dirty_fields;s"MMMM4:3MMMMreTc#*Kt|}t|dfg}i}t}|r|\}}||vr|||jjD]\} } | |us|| |j| jj k} n| |z} | | jj  | } | j r|ra|| g| | f| j r|r|| || | f|t!t#|D]$} || dD] \}}||fV %dSr )rrPrrr'rA r r r rrrr5rrrrr!r)rasearch_nullableexclude_null_children model_classrqueriesrrr;rO r r=rrr qs rc dependencieszModel.dependencies?s4jj t**d#$uu < 99;;LE5}} HHUOOO!&!5!;!;!=!= < < I ++u}$- 0A"BBDD;D%,,Y_-HII"U4[[w !!  F 9  A   {CI,? @ @ @ t//w/////rec |r'|jjjs|sdS|jjr |d|jj|jj||fi|dS)Nr )rrrFrr'r rr2 )rr/r0 r$s rcr'zModel.drop_tables   ,< ##%%  F 9  A   {CI,? @ @ @ T>==W=====rec *|jjdi|dSr )rrH)rr$s rcrHzModel.truncate_tables#" "--W-----rect||fi|Sr_)rBrr@rs rcrxz Model.indexs#v00000rect|dkrIt|dttfr'|jj|ddS|jjt||fi|dSrR)rrvrQr9r'rrrBr. s rc add_indexzModel.add_indexs~ v;;!   6!9sEl C C  I  $ $VAY / / / / / I  $ $ZV%F%Fv%F%F G G G G Grer_)FNr rj)TTNrDrm)5rfrgrhrr classmethodr rrr rr r r rr r rr r r r rr r r r r r6r rr rr r r r r r r r rrrr%rrrr"r'rHrxr0 r`rercrArAs ( ( (OOO  [ &&&[&??[? [4EEE[EEEE[E===[=??[? CCC[C)))[) **[*  [ [  > > >[ >D$$$[$L(([(  [ [ 44[4DD[DII[I[(99[9CCC (6  CZ::Z:222 E E E))))V!!!NNXN>DDDD000### !!!III(   [ OOO[OMM[M 0 0 0[ 0>>>[>..[.11[1HH[HHHrerAc>eZdZdZd dZdZdZdZdZdZ d Z dS) ri z3Provide a separate reference to a model in a query.Nc.||jd<||jd<dS)NrAr)r[)rarArs rcrzModelAlias.__init__s !& g!& grec|jf|jjzD]M} |j|}t|tr|d|cS>#t $rYJwxYwt|j|}t|tr0t |||j|<|j|S|Sr_) rArkr[rvrr~rrr2 FieldAliasr )rarr r model_attrs rcrzModelAlias.__getattr__s *!55  A j&c?333;;tT222223    TZ.. j% ( ( '","3"3D*"E"EDM$ =& &s7A A! A!c td)Nz'Cannot set attributes on model aliases.rrs rcrzModelAlias.__setattr__sFGGGrec>fdjjjDS)Nc0g|]}t|Sr`r)rVrzras rcrYz0ModelAlias.get_field_aliases..s#NNNQa  NNNre)rAr'r8 rs`rcget_field_aliaseszModelAlias.get_field_aliasess%NNNN$**:*MNNNNrecN|s|}t||Sr_)r: r )ra selections rcrzModelAlias.selects+ 1..00I4+++rec |jdi|Sr rA)rars rcrzModelAlias.__call__stz##F###rec|jtkr||jS|jr|j|j|<|jt krb||jjj dt|j|S|t|j|Sr) rrDr)rArrrBr'rrrfr8s rcr%zModelAlias.__sql__s 9 $ $774:&& & : 1&*jC d # 9 $ $S)011WV__S 1$ 78899 ; 776#"3D"9::;; ;rer_) rfrgrhrrrrr: rrr%r`rercri ri s==''''&HHHOOO,,, $$$<<<<._FieldAliasNrr`rerc _FieldAliasrD s DrerE )r)rrMrArE s rcr zFieldAlias.createsF     #tE{{   {65)))rec6t|j|jSr_)r5 rMrArs rcr\zFieldAlias.clone s$+tz222rec6|j|Sr_)rArA rs rcrA zFieldAlias.adapts4:#3#3E#:#::rec6|j|Sr_)rAr0rs rcr0zFieldAlias.python_values$**A*A%*H*H#Hrec6|j|Sr_)rAr rs rcr zFieldAlias.db_valuesdj&9&9%&@&@@recF|dkr|jnt|j|S)NrA)rMrrArs rcrzFieldAlias.__getattr__s""goot{{74:t3L3LLrecf|t|j|jjSr_)r)r!rMrArr8s rcr%zFieldAlias.__sql__s%wwvdk4:+ABBCCCreN) rfrgrhrr1 r r\rA r0r rr%r`rercr5 r5 s **[* 333;::HHH@@@MMMDDDDDrer5 cttgfdd}t|D] }|S)Nc,|vr|vr||jjD]\}}|js ||jjr|jjD] }||dSdSdSr_)rr'r@ r rr? r)rAr r dependencydfsr#r:rs rcrO zsort_models..dfss F??uD00 HHUOOO*/+*:*@*@*B*B # #& Y#+#C NNN{% $"'+"8$$JC OOOO OOE " " " " " ?00rec2|jj|jjfSr_)r'rr;)rs rcrxzsort_models..*sqw|QW%78rer)rPr)r#r)rrO r:rs` @@@rcr!r!s [[F 55DH # # # # # # # # 9 8E F & & & A OrecZeZdZejZfdZejddZ dZ dZ xZ S)_ModelQueryHelperctt|j|i||js|jjj|_dSdSr_)rrR rrJrAr'rrs rcrz_ModelQueryHelper.__init__3sM/&&/@@@@~ 7!Z-6DNNN 7 7reNcHtj|_||jn||_dSr_)rr@rrArrs rcr@z_ModelQueryHelper.objects8s$*5*=DJJ;rec|jp|j}|tjkr||S|tjkrt ||j|jS|tj krt||j|jS|tj krt||j|jS|tj kr!t||j|j|jSt!d|zr)rrrrA_get_model_cursor_wrapperr>ModelDictCursorWrapperrArnr=ModelTupleCursorWrapperr?ModelNamedTupleCursorWrapperr@ModelObjectCursorWrapperrrrs rcrz%_ModelQueryHelper._get_cursor_wrapper=s>:T%: sy 11&99 9  ! !)&$*doNN N  " "*64:tOO O  ( (/ 04AA A  ( (+FDJ,0OT=NPP P;hFGG Grec:t||jg|jSr_)rZ rArs rcrV z+_ModelQueryHelper._get_model_cursor_wrapperNs' B KKKrer_) rfrgrhrrArrrerLr@rrV rrs@rcrR rR 0sy77777  YOOOYOHHH"LLLLLLLrerR c$eZdZfdZdZxZS)r c j||_d|_tt|jd||d|dS)Nr`r)rArnrr r)rarAr)rNrrs rcrzModelRaw.__init__SsA &h&H3vHHHHHHHrec |dS#t$r?|\}}|j|jd|d|wxYw)Nr. instance matching query does not exist: SQL: Params: )rrhr)rAr.rs rcrz ModelRaw.getXs E<<>>!$ $ E E E((**KC*))+/:::sssFF+DEE E Es A A%)rfrgrhrrrrs@rcr r RsSIIIII EEEEEEErer creZdZdZeZdZeZdZeZdZ e Z dZ dZ d dZ d d Zejd ZdS) BaseModelSelectc0t|j|d|S)NrFModelCompoundSelectQueryrArs rcrHzBaseModelSelect.union_allc' D+sKKKrec0t|j|d|S)NrGrd rs rcrKzBaseModelSelect.uniongs' D'3GGGrec0t|j|d|S)NrHrd rs rcrKzBaseModelSelect.intersectkrf rec0t|j|d|S)NrIrd rs rcrLzBaseModelSelect.except_os' D(CHHHrec`|js|t|jSr_)rrrwrs rcrzBaseModelSelect.__iter__ss+#  LLNNND()))rec"t|g|Ri|Sr_)rI)ra subqueriesrs rcrIzBaseModelSelect.prefetchxs 4z444V444reNc |dd}d|_ ||dS#t$r?|\}}|j|jd|d|wxYw)Nrrr_ r` )r7rrrhr)rAr.)rarr\r)rNs rcrzBaseModelSelect.get{s a## $ F==**1- - F F F))++KC*))+0;;;VV+EFF F Fs :A Bc\ ||S#|jj$rYdSwxYw)N)r)rrAr.rs rcr zBaseModelSelect.get_or_nonesB 88X8.. .z&    DD s ++cPg}|D]tr |jj1t t r=jstd|fdjD|||_ dS)Nrc0g|]}t|Sr`rrs rcrYz,BaseModelSelect.group_by..rre) r&r7r'r rvrSrrrr^rs @rcrzBaseModelSelect.group_bys ( (F ( :;;;;FE** (2$&1222!B!B!B!B17!B!B!BCCCC''''!rer_)rfrgrhrHrrKrrKrrLrrrIrr rerLrr`rercrb rb bsLLLGHHH FLLLGIIIG*** 555 F F F F  Y""Y"""rerb c$eZdZfdZdZxZS)re cV||_tt|j|i|dSr_)rArre rr s rcrz!ModelCompoundSelectQuery.__init__s3 6&--6GGGGGGrec6|j|Sr_)rrV rs rcrV z2ModelCompoundSelectQuery._get_model_cursor_wrappersx11&999re)rfrgrhrrV rrs@rcre re sLHHHHH:::::::rere cg}|D]Ɗtr |jj1t t r(|nt tr.jr'|fdjD| |S)Nc0g|]}t|Sr`r)rVrfms rcrYz+_normalize_model_select..s#CCC72s++CCCre) r&r7r'r rvri r: rSrr)fields_or_modelsr@rv s @rc_normalize_model_selectrx s F B<<  MM"(0 1 1 1 1 J ' '  MM"..00 1 1 1 1 E " " r{  MMCCCCr{CCC D D D D MM"     MreceZdZdfd ZfdZfdZfdZddZdZd Z dd Z e j e jdddfd Zdd Ze jddfd ZdZddZdZdZddZddZxZS)r Fc|x|_|_i|_||_t |}t t ||g|dSr_)rA _join_ctx_joins _is_defaultrx rr r)rarArw r r@rs rcrzModelSelect.__init__sV&++ T^ %()9:: k4  ))5'6:::::rectt|}t|j|_|Sr_)rr r\rr| rs rcr\zModelSelect.clones4k4((..00EL))  rec|s|js3d|_t|}tt|j|S|Srh)r} rx rr r)rarw r@rs rcrzModelSelect.selectsJ  <4#3 <$D ,-=>>F25d++2F; ; recjd|_t|}tt|j|Srh)r} rx rr r)rarr@rs rcrzModelSelect.select_extends2 (115u[$''5v>>reNc&||jn||_|Sr_)rAr{ r8s rcswitchzModelSelect.switchs'*{ rect|r|dfSt|tr|jr |jdfSt|tr |jdfSt|t r |jdfSdS)NTFrh)r&rvrSrri rAr )rars rc _get_modelzModelSelect._get_models C== $9  U # # $  $:u$ $ Z ( ( $9e# # [ ) ) $9e# #{rec t|t}|r|p|j}|}||\}}||\}} |r|r||_|} |r| sst|t r^|j|ur|jj |j } n:|j|ur|jj |j } ntd|d|d|dd}nt|tr|} d}nd} | ||| |\} } ||rdnd}| rdnd}| rBt|t| |}t|t| j|}nAt|t| |}t|t| j|}||k}|s| | s| j }nz|jj }nm|r%| #|| jkr| st#d|d| d nEt|t$r0t&} |p|j}|st|t(r |p|j}||| fS) Nz"on" clause Column z does not belong to z or rRrrzCannot assign join alias to "zF", as this attribute is the object_id_name for the foreign-key field "r)rvrRrrr r{ r!rMr'rrrr2_generate_on_clauserr rJ rrrrSrf)rarrrron_aliasr{ src_is_model dest_model dest_is_modelrrM fk_fieldr% src_attr dest_attrrrs rc_normalize_joinzModelSelect._normalize_joinsb%((  $29DB#'//#"6"6 <$(OOD$9$9! M 3 -3 -!DN$K! ] 2v8N8N 9##(6rw?HHY$&&)/7@HH(.*,""iii*EFFFB&& #'#;#;:x$5$5 Hjz%1D66}&3FFF P!$)(D(DEEC!#wx/A8'L'LMMCC!#wx'B'BCCC!$0BI(N(NOOCSj N' '#=DD%+0DD Nh2H333J3 j=ATT888"MNNNf % % -K&4;D -JtU33 -,t}D+&&rec |j}dx }||jvr|j|}n||jvr|j|}d |s|dStd|d|d.t t rjn fd|D}t|dkr |d  fS|6|D]}|j|jjkr| fcStd |d|d dt |tr|j |j } }t|} t |tr%t |t r|jn|} | | vr| n9t | tr$t | t r| jn| } | | vr| dfS) NFTrhz#Unable to find foreign key between z and z,. Please specify an explicit join condition.c2g|]}|us r |ju|Sr`)r )rVr r% rrM s rcrYz3ModelSelect._generate_on_clause..7sCDDDqv++$&)*)@)@)@)@)@rerrz"More than one foreign key between z*. Please specify which you are joining on.)r'r rC rrvr5 rArrr rrrPr2)rarrrM rrHr rO rrfk_setlhs_frhs_fr% rs ` @@rcr zModelSelect._generate_on_clause s(y!&& Y 4? " "-II T( ( (+D1IJ D~"{*!cc444)** * !)38Z(H(H$hnn# DDDDDDIDDDI y>>Q  Q<+ + :  * *7djo--z>))).*!cc444)** * b* % % %vrvC^^F#u%% %%/Z%@%@I cF??$HC'' %%/Z%@%@I cF??$Hrec||jn|}|tjks|tjkrd}n|tjkr^|||||\}}}|r?|j|g|j|||||fn|td|j std|j }|j t||||dS)NTz)Cannot specify on clause with cross join.r) r{ r?r2r:r8r r| rrrrrr)rarrrrrrrs rcrUzModelSelect.joinas # dnn  $ $ T5F(F(FBB $* $ $$($8$8dB$M$M !Bk N &&sB/// C ''t[)(LMMM ^HII I 7566 6""$$ tD$ 2>>?????recH||tj|||Sr_r)rarrrrs rcrzModelSelect.left_outer_joinusyytC>>>rec4||||||Sr_rT)rarrrrrs rc join_fromzModelSelect.join_fromxsyyy"c4888rect|jdkr(|js!t||j|j|jSt ||j|j|j|jSr)rrr| rZ rArnModelCursorWrapperrs rcrV z%ModelSelect._get_model_cursor_wrapper{sj t  1 $ $T[ $+FDJ,0OTZII I!&$*do"&/4;@@ @rec |j}|j|gD]\}}}}||kr|cS||j|fd|i||S)Nr)r{ r| rr rU) ralmrmr join_kwargsjoin_ctxrrqrs rc ensure_joinzModelSelect.ensure_joins>'+{r2'>'>   #D![!rzz #t{{2#B==2===DDXNNNrecDg}g}ttf}t|D]h\}}|j}d|vrJ|dddt vr'|dd\}}t |}n|t d}n t d}d|vrt||} n|dD]} |j |dD]J\} } } } t|| d} n#YnxYw| | ks t| tr| j | kr| }n?Kt|| } |,t| |r| j}|| ||| |j||fS)Nr` rrrr`)r6r rr rArsplitr-rrr| rrvri rr r)raqdictrjoinsfksrr~rN rr6 piecerrrqs rcconvert_dict_to_nodez ModelSelect.convert_dict_to_nodes0 // 0 0JC:Ds{{szz$2215CC**T1--R^%%3%T3//  YYt__ 5 5E,0KOOD",E,E 5 5(dAq*1$t*D*DZZ$5==Zj-I-I=-1Z5-@-@#'D!E%,T5%9%9  ,J1L1L,#-#7D!LL444 LLJ.. / / / /e|s :D  D c|r4|r2ttjd|Dtdi|z}nh|r4ttjd|Dt z}n2|rtdi|t z}n|St j|g}g}t}|r| }t|ts-d|j fd|j ffD]\}} t| tr|| j\} } | D]0} | |vr*|| || 1ttj| } | jrt'| } t)||| || ||r|s|j }|} |D]i}t|t*r|j|j}}|}n*t|t0r|j|j}}|j}| |||} j| |S)Nc6g|]}|Sr`rcrVrs rcrYz&ModelSelect.filter.. -F-F-FAaggii-F-F-Frec6g|]}|Sr`rcr s rcrYz&ModelSelect.filter..r rerrr`)rtrrr0rNr\rrJ rPrK rvr rrr r;rrrrgrr6rAr r rAr r5)rarrdq_noder dq_joins seen_joinsrN sider r;r rUrrAr r field_objs rcr6zModelSelect.filters  F hm-F-F-F-F-FGG||F||$GG  hm-F-F-F-F-FGG!||$GG  ll6llZ\\1GG::<<   wi ( (UU  $99;;DdJ// !& 1E483DE $ $ eeR(( $#'#<#>>%%%%%rer c.eZdZfdZfdZdZxZS)_ModelWriteQueryHelperc^||_tt|j|g|Ri|dSr_)rArr rr s rcrz_ModelWriteQueryHelper.__init__s> 4$d++4ULTLLLVLLLLLrecg}|D]F}t|r ||jj1||Gt t |j|Sr_)r&r7r'r rrr r)rarrrrs rcrz _ModelWriteQueryHelper.returningso # #D~~ # TZ56666 T""""%   re)rfrgrhrrrrrs@rcr r sjMMMMMEEEEE2222222rer ceZdZdS)r Nrr`rercr r Drer cBeZdZejZfdZfdZdZdZ xZ S)r ctt|j|i||jL|jjj=|jjjjr)|jj|_dSdSdSdSr_) rr rrnrAr'rrrrs rcrzModelInsert.__init__ s)k4  )4:6::: ? "tz'7'@'Lz(9 F"&*"2"C"C"E"E # "'L'L F Frecr|r|jtj|_tt|j|Sr_)rrrArr r)rarrs rcrzModelInsert.returnings7  '/ YDN1u[$''19==rec$|jjjSr_)rAr'rrs rcrzModelInsert.get_default_datasz((rec^|jjj}|jjjr |ddn|Sr)rAr'r rV )rar@s rcrzModelInsert.get_default_columnss.!/!Z-<Hvabbzz&Hre) rfrgrhrr=rrrrrrrs@rcr r syFFFFF >>>>>)))IIIIIIIrer ceZdZdS)r Nrr`rercr r #r rer c8eZdZfdZdZddZdZdZxZS)r c||_||_|jjj|_|jjj|_tt|j ||fg|Ri|dSr_) _instance _accessorr r r _src_attrr _dest_attrrr r)rar|accessorrS rrrs rcrzManyToManyQuery.__init__(sg!!!27"*49-ot$$-cC6KDKKKFKKKKKrecZt|dtrfd|DS|S)Nrc:g|]}t|jSr`)rr r s rcrYz,ManyToManyQuery._id_list..1s%NNNcGC11NNNre)rvrA)ramodel_or_id_lists` rc_id_listzManyToManyQuery._id_list/s= &q)5 1 1 ONNNN=MNNN NreFc6|r||jt|j|jt |t ri|tj j }j j j g|dSt|}|sdSfd||D}j |dS)N)r@r;cDg|]}jjjj|iSr`)r rr )rVrel_idr r s rcrYz'ManyToManyQuery.add..EsB444$f %v/444re)r r rr r rvrErrYr r rz r r rrcr r )rar~r r;insertsr r s @@rcrzManyToManyQuery.add4s$   JJLLL>88 e[ ) ) BMMf  *,,E  " . . )9: /  $WYYYYY ''E &&44444#mmE22444G  " . .w 7 7 ? ? A A A A Arect|j|j}t|trt|j|j}||}|jj |jj |z|jj |kzSt|}|sdS|jj |jj ||z|jj |kzSr_)rr r rvrErAr rr rz rr5r r rrcr )rar~r rrs rcrzManyToManyQuery.removeKs88 e[ ) ) U[$/::F}}V,,HN0VXXU/8;.&8:;;WYY  !''E N0VXXU/4==3G3GG.&8:;;WYY  rect|j|j}|jj|jj|kSr_) rr r r rz rr5r r)rar s rcr zManyToManyQuery.clearasK88,t~,677 rer) rfrgrhrr rrr rrs@rcr r 'sLLLLL   BBBB.   ,rer cfd}|S)NcN |S#ttf$r|cYSwxYwr_)rr)r~ conv_funcs rcvalidatez#safe_python_value..validatejsA 9U## #:&   LLL s $$r`)r r s` rcsafe_python_valuer is# Orec.eZdZfdZdZeZdZxZS)BaseModelCursorWrappercxtt||||_|pg|_dSr_)rr rrAr)rarrArrs rcrzBaseModelCursorWrapper.__init__ss8 $d++44V<<< m rec|jjj}|jjj}|jj}t |jj|_g|_dg|jzx|_ }dg|jzx|_ }t|D]Q\}}|dx}} | d} | dkr || dzd}| d}|j| |j|} | } n!#t"$r||vr ||x} } nYYnwxYw| } | r | |j|<t'| t(r)| jr | j||<| ||<| s| j|j|< t'| t0r| jr | j||<1t'| t4r| jr| j | j||<`| jrt'| jdt:r| jd}t'|t<r"|jd}| |}t'|t(rtC|j||< ||vrB| jr||j||<t'| tDr| j#|kr ||||<SdS)NrrRrtrr)$rAr'r6 r(rrrrr convertersr@rrr5rrrkrhrirvr2rer0rrNrPr%r.r+rerfrrr r!rM)rar6 r(rr r@rdescription_itemr orig_column dot_indexr r=rirmrZs rcrz*BaseModelCursorWrapper._initialize_columnsxs:#,  &k- 011  (,v '::* $v 22 f%.{%;%;= 3= 3 !C!#3A#6 6F[  S))IB A /\\&))F L   ' ' '  );s+ ((    X%%&.v&66HttH $t  ((**H 0$/ S! $&& 3#8&*&7JsO"s 2(, DL%D*-- 3(2E 3"*"5 3D(++ 3  3%1&*&8JsOO^ P 4>!3Dd(K(K P !N1-4466E!%003${2 ( T 2 2!%//P*;E|Sr_)rr r@rr)rar0rrr r@rrs rcrz"ModelDictCursorWrapper.process_rows"lDOtz"" & &A1:Dv~~x!}(,z!}SV44t "1vt  reN)rfrgrhrr`rercrW rW s#     rerW ceZdZeZdZdS)rX c|j|jc}|fdt|jDS)Nc^g|])}|||n|*Sr_r`)rVrr r0s rcrYz7ModelTupleCursorWrapper.process_row..sM!(!(!('1m&?]Z]3q6 " " "SV!(!(!(re)rr rrr)rar0rr s ` @rcrz#ModelTupleCursorWrapper.process_rowsa"lDO!(!(!(!(!(4:&&!(!(!()) )reN)rfrgrhrarrr`rercrX rX s(K)))))rerX ceZdZdZdS)rY cg}tjD]"}|j|#t jd|_fd_dS)Nrcj|Sr_r)r0ras rcrxz9ModelNamedTupleCursorWrapper.initialize..s'7t'7'=re) rrrrrrrrr)ra attributesrs` rcrz'ModelNamedTupleCursorWrapper.initializes|   """ tz"" / /A   dl1o . . . .&1%DD====reN)rfrgrhrr`rercrY rY s#>>>>>rerY c(eZdZfdZfdZxZS)rZ c||_t||_tt||||dSr_)rr&rrZ r)rarrArrrs rcrz!ModelObjectCursorWrapper.__init__sC& --  &--66vufMMMMMrectt||}|jr*|jdddi|}|j|S|jdi|S)Nr rr`)rrZ rr&rr r )rar0r rrs rcrz$ModelObjectCursorWrapper.process_rowsz-t44@@EE = ,"$"<t+| r | |j| <%t| t,r| j|j| <J|jD]\} } }} } | |vo||vp| |v|j| <g|_t1|D]\}}|j}|j|}|%t|t2r|j}n|j}nt|t6rJ|j|jvr4t;|d|jd|jd|j}nEt|t>r|}t|t@r|j}|j|dS)Nc g|] }||j Sr_r> r^ s rcrYz1ModelCursorWrapper.initialize..s)222E$0"K000rez specifies bind-to z, but z# is not among the selected sources.)!rrPr@rrrAkey_to_constructor src_is_dest src_to_destrrJ rrK rvrrrrr rrr&ri column_keysrr5 rMrWrrrkrer!)ra selected_srcrrrdestsrN rrrrrrrqrrr=rAs rcrzModelCursorWrapper.initializesd   """22T[22233 +t|#':tz":!$.11 &==??D$%%  TX&&& TX&&&4:%% t,,G59Z5E & &1T; d5553>D+C0$++T4g-6-8999IIcNNNLL%%%' &,  = =C$111C===36D+C00Z00=369D+C0#'"2 N N CD!Q$'5L%Ndl6J7M9< 9L  S ! !"6** ) )IC*CK$E eZ00&,CC+CCD&)) &9D$;;;$&*kkmmmmTYYY &KLLLidD)));;==DdF++&+C   # #C ( ( ( () ) )reci}g}|jD]/\}}|d||<|||0||j}t }t |jD]\}}|||} |j|} ||} | | ||j |r|j || } t| tr| | | <t| | | |jD]\} } }}}|| } ||}n#t$rY&wxYw| |||vr|j|sM| |vr||vr|drk|r|| | <st| | ||D]0} t| t$r| j1||jS)NT)r z OUTER JOIN)r r rrArPrr rrrr rvrrr rr rrAr r )rar0r@ object_listrrdefault_instanceset_keysrr|rr~rrrrrjoined_instances rcrzModelCursorWrapper.process_rowHsV $ 7 = = ? ? - - C&;d;;;GCL   ws| , , , ,"4:.55!$"233 1 1HC{{3(899H\#&FHE  S!!!s# 4,,U33(D)) 1#(  &%00006:5E 9 9 1S$gys|H ")$-     4<H$$T-=-A-A$-G-G$x''D,@,@%%l33-A 9!0$8888$ ( (H(E** (%%'''tz""s,D55 EE)rfrgrhrrrrrs@rcr r sZ C)C)C)J8#8#8#8#8#8#8#rer c0eZdZ dfd ZdZdZxZS) PrefetchQueryNc |rT|r| d|D}d|D}n| d|D}d|D}tt||}|j}tt||||||||S)Ncg|] }|j Sr`r> r^ s rcrYz)PrefetchQuery.__new__..s!B!B!B%%+!B!B!Brec&g|]}|jjSr`)r rr^ s rcrYz)PrefetchQuery.__new__..s$N$N$NeU_%9$N$N$Nrecg|] }|j Sr`)r r^ s rcrYz)PrefetchQuery.__new__..s!F!F!Fe%/!F!F!Frecg|] }|j Sr`rf r^ s rcrYz)PrefetchQuery.__new__..s$D$D$DEUZ$D$D$Dre)r`r rArr r) rr;r@r% rel_models field_to_namerAforeign_key_attrsrs rcrzPrefetchQuery.__new__s  A E%!B!B6!B!B!BJ$N$Nv$N$N$N!!%!F!Fv!F!F!FJ$D$DV$D$D$D! V->!?!?@@M ]C((00  J uNN Nrec|jrB|jD]8}|j|j}||f}||vrt ||j||9dS|jD]{\}}|j|jj}||f}||g}|D],}t ||||j -t ||j ||dSr_) r% r@r rrr r rr r rF ) rar|id_maprA identifierrattname rel_instancesr s rcpopulate_instancezPrefetchQuery.populate_instances ? @ ? ?%.uz: j)&==Hej&+>>>  ? ? #'"4 @ @w%.u/CD j) & 3 3 3 )((DD'8444K%%''''%-???? @ @rec|jD]l\}}|j|j|}||f}|jr|||<;||g|||mdSr_)r r r0r r% rr)rar|r rAr identityrs rcstore_instancezPrefetchQuery.store_instances"0 - -NE733H4Eg4NOOH(#C -&s !!#r***s ""8,,,, - -re)NNNNN)rfrgrhrr r rrs@rcr r sjEI*.NNNNNN @@@"-------rer _PrefetchQuery)r;r@r% r r rAc t|g}t|D];\}}t|tr|\}}nd}t|tst |st|t r|}|jtt|dzD]}dx}} ||} | j | jx} t| t r| j} j j | g} | rfd| D}fd| D} nj j| } |s| r|us|n|rd|znd}t!d|||r|fnd}|rF|t"jkrJt't(jfdt-|| D}||}n|t"jkrg}t3}t-|| D]K\}}|t7j|j|k||L| j|t't(j|}|t||d || rg}g}| D]H}t7|j!j"}t7|j"}|||fI|t"jkra|D]0\}}|||z1|t't(j|}n|t"jkrg}|D]M\}}||t7j|j}|||kN| j|t't(j|}|t|| d |=|S) Nrc:g|]}t|jSr`)rr)rVrO subquery_models rcrYz)prefetch_add_subquery..s%GGGBw~rw77GGGrecDg|]}t|jjSr`)rr r)rVrO last_objs rcrYz)prefetch_add_subquery..s(KKKwx):;;KKKrez using %sr(z-Error: unable to find foreign key for query: cFg|]\}}||zSr`)r)rVrO rI last_querys rcrYz)prefetch_add_subquery..s@-3-3-3 R:,,R000-3-3-3re)rFT)#r rrvrar!r&ri rrArrr;r'r rrC rrJrBrtrr+r r5r?rPrrrwrrrrUr r)r rl prefetch_type fixed_queriesrr target_modelr r rA fixed last_modelrelsrCtgt_errrr select_pksrO rIr@rF r r select_fksrr r r s @@@rcprefetch_add_subqueryr! s"2&&'M ,,FPFP 8 h & & %- "HllL(E** )x/A/A ) h + + )((H!%A,,'' F FA! !C(!!$EJ$)K /J*j11 .'- !'266z2FFD OGGGG$GGGKKKKdKKK)/>BB:NN x |x'?'?'3';5AHkL00bG .2:(GG"EFF F#/8 D % P 333hl-3-3-3-3$'SMM-3-3-344$>>$//-"444 UU !#smm''FBKK bn E E KLLLNN2&&&&#,,..33%J%z2hlD11433  xeT!J!J K K K K  PDF# 5 5#NG4E4JKK "8W\:: y(34444 333+1JJ'IxKK Z->->x-H-H HIIII#>>&t*D*DEE-"444 +155'Ix%%h///$Z\83GHHFKK V 34444#,,..33%J%z2hlD11433  x4!N!N O O O rec|s|S|dtj}|rtd|zt |||}i}i}t |D]}|j}|jr;|jD]3} | | g||  |4| |i||} t| |} |j D]M} |jr|| | | r,||D]#} | | || j$Nt!|j S)Nr zUnrecognized arguments: %s)rrJrBrr! rrAr@r rrrerr;r r r`)r rl rr r depsrel_mappq query_modelr r has_relationsr|rS s rcrIrIs  JJ 0CDDM @5>???)"j-HHM DG}%%EEh 9 .] . . ""9b111 "))"----  R(((k"W[[5566  E EHy 4!!(F333 E";/EEC))(DODDDD  E >>rer_r`rr)rI(Xbisectrr contextlibrrLr functoolsr inspectr r& rrrq rMrloggingrrDr8 r7 rmrrrrcollections.abcr ImportError pysqlite3r pysq3 pysqlite2rgsqlite_version_info psycopg2cffir rqrrr rripsycopg2.extrasrpg_register_uuidr#psycopgrlrkpymysqlrmMySQLdb __version____all__r\Handler getLoggerr addHandlerr unicoderTrWrUbufferr rvcallablerr`ra frozensetrPrexecrrbuiltinsrsrtr r r9rr0 rrr rrrregister_adapterrt rrrrregister_converterrarrrrrrrrrrur{rErrlergerlshiftr-rr?rrJrrBrDrFrHrvrwrxcompilerirkrGrJrPr[r&rcrgrnr r~rLr&rrrrrr#rOr3rerqryrrrrrr3rrrrSrrZrrNr!rrrrRrWrgrrrYrrrrr`rdr rrfrQrr%r5r[rFr{rrrur3r.rrr1r0rWrMrrrrrr!rCrErNrArPrrr rr9rBrFrTr8r%r'r;r<r=rDrFrKrb EXCEPTIONSrrurvrxr{r}localrrrr$rOrRrGrCrrrrrrrrrr r r r% r2rr:rrOrrr7rHr4r/r*r} rr3rTrrr r rrXrr rrr r)r(rUr rVr>rrr6r+r,r~ r r@r r"r rNr4 r r.rr r<rAri r5 r!rR r rb re rx r r r r r r r r r rW rX rY rZ r r r! rIr`rercrL sC*%%%%%%  $'''''''$$$########$)))))))-------  NNN *g.III GGG  ######FO   D  OOO4444440000000     Hyyy  AAAAAA   D ,,,,,,,JJJ    L L L \#######go  8 $ $++-- A!IJK)LI 3/KD ?@@@OOO),,,,,,, )))(((((((()      11IIJKJ D 36K WXw ' 'F(L g(9   %FF''''''  #GW_c222GX]C000GX]C000 7""888KKK J J J ! !24DEEE""6<888"";0ABBB 4"IJJ   !! ##-1133!4X!4X$$$;;;)))HHHHHtHHH 688X  t        C 3   s s  s   t!" t#$ 8%& t'( 8)* +, '-. I/0 812 I34 456S7>X + + ; + ; + / . . 2 2 4 466           H  8            Z  I  B  6  &    Z    ! " # $ &% & I' .x  "    $ & & &h              2:2332:344" $)))) ??? 9 8GGGCCC999&;&;&;&;&;F&;&;&;RE0$####f### )!)!)!)!)!6)!)!)!X,,,,, "K "8.: ; ;,,,.h0h0h0h0h0fh0h0h0V:::(   .6DFVfBBBBB4BBB/8/8/8/8/8T/8/8/8d$$$$$f$$$NzE 3 3 3 3 3 3 3 3888888882\*\*\*\*\*OY\*\*\*~9,     )   F<<<<</6<<<~KKKKKKKK\PPPPPZPPP, " " " " "* " " "'''''F'''V$0$0$0$0$0K$0$0$0N"""""["""22222k222 $ $ $ $ $6 $ $ $ 2 2 2 2 2\; 2 2 255555J555*&&&&&K&&& &&& 2 2 2 2 2; 2 2 2{D33334444))))))))X66666z666GGGGGZGGG"     *   >>>>CCCCCzCCCLXdDkkkkkTkkk\ 6 6 6 6 6$ 6 6 6&&&&&$&&&.....:...(,z0!!!'''//////// :j ! !         '&&&&&&[&&& 7%7%7%7%7%7%7%7%td%d%d%d%d%d%d%d%N$$$$$y$$$(LLLLLILLL^%,>>>>>&+>>>H@%@%@%@%@%*@%@%@%F{%{%{%{%{%Z{%{%{%|11111%111h/-/-/-/-/-[/-/-/-d\A\A\A\A\A[\A\A\A~ - - - - -[ - - ->>>>>D>>>B%P%P%P%P%P%P%P%PP55555i555 21111?111*****O***$$$$$ $$$)))))])))+++++_+++(((((M(((,,,,, ,,,+++++}++++++++}+++IIIIIvIII.&"$$"*(( 0)% ' ' )(44 ' &133 ('DFF,[+466&{%noFF v$@????'???88888888        }}}}}(}}}@ &&&S4S4S4S4S4XS4S4S4l a;a;a;a;a;a;a;a;H]#]#]#]#]#H]#]#]#F55555f5550@@@@@f@@@8-&-&-&-&-&6-&-&-&`########RIIIIIFIIIX $&&&&&m&&&,,,,,+,,,V. ' ' ' ' 'F ' ' ' ''''''''D     f   22222v222&rrrrrJrrrju5l 99999 999966666I666?????i???*555555555> O O O O O5 O O O===== ===Y >&+&+&+&+&+|_&+&+&+R\,\,\,\,\,f\,\,\,~BBBBB-BBB,AAAAA)AAA????????.EEEEEiEEE4 CCCCC%CCC,,,,,',,,6&&&&&#&&&6,,,,,#,,,4X6X6X6X6X6_X6X6X6v<<<<>>>>#:>>>,,,,,5,,,"C#C#C#C#C#/C#C#C#L+-+-+-+-+-*K*+;>MNN+-+-+-\JJJZs &A-- A;:A;?BB# BB#BB#BB#"B#'CC  C C$$C,+C,0 D;DDD  D D  D DD D11D98D9=EE EEE6E&%E6&E0-E6/E00E65E6FF"!F" H H! H!