Viewing File: /opt/imunify360/venv/lib/python3.11/site-packages/peewee_migrate/__pycache__/router.cpython-311.pyc



]j0UdZddlmZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZddl
mZddlmZmZmZmZmZmZmZmZmZdd	lmZddlZd
dlmZmZd
dl m!Z!d
d
l"m#Z#d
dl$m%Z%m&Z&d
dl'm(Z(erddl)m*Z*ddl+m,Z,ej-dej.Z/de0d<ej1Z2de0d<e2dzZ3de0d<d/dZ4Gdde5Z6Gdde6Z7Gdde6Z8d0d#Z9d1d%Z:d&Z;d'd(d2d.Z<dS)3zMigration router.)annotationsN)cached_property)
import_module)Path)
ModuleType)	
TYPE_CHECKINGAnyFinalIterableListOptionalSetTypeUnion)mock)NEWLINE	diff_many)logger)Migrator)
MIGRATE_TABLEMigrateHistory)TEMPLATE)Logger)
TModelTypez\s+$r
CLEAN_RECURDIR
migrationsDEFAULT_MIGRATE_DIRcdSN)mdfakes   L/opt/imunify360/venv/lib64/python3.11/site-packages/peewee_migrate/router.pyvoidr'"s4ceZdZdZeddeefd4d
Zed5dZ	e
d6dZe
d7dZe
d7dZ
ed8dZdddd9dZd:d;d Zd!Z	d<d=d'Zd;d(Zd)ddd*d>d0Zd?dd1d@d2Zd3ZdS)A
BaseRouterzAbstract base class for router.NdatabaseUnion[pw.Database, pw.Proxy]ignoreOptional[Iterable[str]]schema
Optional[str]rrmigrator_classType[Migrator]c,||_||_||_||_||_||_t
|jtjtj	fstd|zt|jtstd|zdS)Initialize the router.zInvalid database: %szInvalid migrator_class: %sN)
r+
migrate_tabler/r-rr1
isinstancepwDatabaseProxy	TypeError
issubclassr)selfr+r5r-r/rr1s       r&__init__zBaseRouter.__init__)s!
*,$-"+rx)@AA	?2X=>>>$-x88	E88CDDD	E	Er(returnType[MigrateHistory]ctj}|j|_|j|_|j|_tjdtS)z,Initialize and cache MigrationHistory model.T)safe)r_metar+r5
table_namer/create_table)r<metas  r&modelzBaseRouter.model>sB#

,k#....r(
Iterable[str]ct)zGet migrations to run.NotImplementedErrorr<s r&todozBaseRouter.todoHs
"!r(	List[str]cd|j|jjDS)zScan migrations in database.cg|]	}|j
Sr"name).0mms  r&
<listcomp>z#BaseRouter.done.<locals>.<listcomp>PsNNNBNNNr()rFselectorder_byidrKs r&donezBaseRouter.doneMs9ON$*"3"3"5"5">">tz}"M"MNNNNr(cRt|jfd|jDS)z'Calculate difference between fs and db.cg|]}|v|	Sr"r")rRrQrXs  r&rTz#BaseRouter.diff.<locals>.<listcomp>Vs#???d$.>.>.>.>.>r()setrXrL)r<rXs @r&diffzBaseRouter.diffRs.49~~????????r(rcz||j}|jD]}||||S)z2Create migrator and setup it with fake migrations.)r1r+rXrun_one)r<migratorrQs   r&r_zBaseRouter.migratorXsF&&t}55I	)	)DLLx((((r(autoF)r`rQstrr	cXdx}}|rTtjtt	|t
r|n|g}t
d|Dsv	|}t	|tr%dtj	tgD}d|D}n,#t$rjd|YdSwxYwj
rfd|D}jD]}|jd	 t#j|}|sjd
dSt#j|d}jd||||}jd
||S)zYCreate a migration.

        :param auto: Python module path to scan for models.
        c34K|]}t|VdSr!)_check_model)rRr#s  r&	<genexpr>z$BaseRouter.create.<locals>.<genexpr>js(771|A777777r(cg|]
\}}}||Sr"r")rR_r#ispkgs    r&rTz%BaseRouter.create.<locals>.<listcomp>ns4###"-!QX]####r(c6g|]}t|D]}|Sr")load_models)rRmoduler#s   r&rTz%BaseRouter.create.<locals>.<listcomp>qs-SSSF{6?R?RSS!aSSSSr(zCan't import models module: %sNc:g|]}|jjjv|Sr")rBrQr-)rRr#r<s  r&rTz%BaseRouter.create.<locals>.<listcomp>xs)OOOqw|4;/N/N!/N/N/Nr(Tr%zNo changes found.reversezCreating migration "%s"z"Migration has been created as "%s")syspathappendrr6listallboolpkgutiliter_modulesImportErrorr	exceptionr-r\r^r_compile_migrationswarninginfocompile)r<rQr`migraterollbackmodelsmodules	migrations`       r&createzBaseRouter.create`s
 (	OHOOM***'d33?TT$F7777777
 
 $G!$--##181E&{m1T1T###TSgSSSFF"   K))*JDQQQ44 {
POOOOVOOO!Y
B
B	Y
DAAAA(??G
##$7888t)$-NNNH2D999||D'844=tDDDs"AB++%CCinitialct|j}t|t|jj}|s|jdS||j	d|t|jg}|
|||d}t|j}|||dd|j	d|dS)zMerge migrations into one.zCan't merge migrationszMerge migrations into "%s"rTr%forcez$Migrations has been merged into "%s"N)rr+r{rtr_ormrerrorclearr}r~r^)r<rQr_rrs     r&mergezBaseRouter.mergesDM**$XtDM4E/F/FGG	?;$$%=>>>

5t<<<%dmR88||D'8Q77DM**T8$d;;;?FFFtr(c\|jdS)zClear migrations.N)rFdeleteexecuterKs r&rzBaseRouter.clears(
##%%%%%r(rcrrnum
Optional[int]ct)Create a migration.rI)r<rQrrrs     r&r~zBaseRouter.compiles
"!r(ct)Read migration from file.rI)r<rQs  r&readzBaseRouter.reads!!r(T)r%	downgraderr_r%rvrrc	||\}}|rtj}d|j_tjd5tjd|5|||j|dddn#1swxYwYdddn#1swxYwY|r6|j||j	
d|g|_|S|j5|sT|j	
d||||j|||j|n|j	
d	||||j|||j
|jj|k|j	
d||cdddS#1swxYwYdS#t"$r=|j|sd
nd}	|j	d|	|wxYw)
z(Run/emulate a migration with given name.Nzpeewee.Model.selectzpeewee.Database.execute_sql)return_valuernrPzDone %szMigrate "%s"zRolling back %s	MigrationRollbackz
%s failed: %s)rrMock	fetch_onerpatchr+rFrrr}__ops__transactionrwhererQr	Exceptionrrz)
r<rQr_r%rrrr
mocked_cursor	operations
          r&r^zBaseRouter.run_onesX$	 $		$GX

 $	
7;
'4Z 566@@
1
999@@GHdm$????@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
6J%%4%000K$$Y555#% **,,



 	QK$$^T:::GHdm$????HJJJJ%%4%0000K$$%6===HXt}4@@@@HJJJJ%%''--djo.EFFNNPPP  D111



































			M""$$$+4D*IK!!/9dCCC		sA
HB&B:BB
	
B
B
	BHB!!H$B!%AH)HC7H9HH

H
H
HAIrnc	|jdg}|j}|s|jd|S|j}|D]8}|||||||r||krn9|S)zRun migrations.zStarting migrationszThere is nothing to migrater)rr}r\r_rsr^)r<rQr%rXr\r_mnames       r&runzBaseRouter.runs.///y	K:;;;K=		EKKUH4tLLMMM


r(c|j}|sd}t||d}|j}|||dd|jd|dS)zRollback the latest migration.zThere is nothing to rollbackFT)r%rzDowngraded migration: %sN)rXRuntimeErrorr_r^rr|)r<rXmsgrQr_s     r&rzBaseRouter.rollbacksmy	$0Cs###Bx=T8%4@@@6=====r()
r+r,r-r.r/r0rrr1r2)r>r?)r>rG)r>rM)r>r)rQrar`r	r>r0)r)rQrarcrcN)
rQrarrarrarrr>ra)rQrar_rr%rvrrvrrvr>rar!)rQr0r%rvr>rM)__name__
__module____qualname____doc__rrrr=rrFpropertyrLrXr\r_rrrr~rr^rrr"r(r&r*r*&s))
$*. $)1EEEEE*_"""X"OOOXO@@@X@
_'''''''R$&&&
VZ"""""""""......`e$
>
>
>
>
>r(r*cxeZdZdZejdZ	ddfd
ZedZ	dddZdZ
fd
ZxZS)RouterzFile system router.z[\d]{3}_[^\.]+\.py$Nmigrate_dirOptional[Union[str, Path]]ctt|j|fi||t}n$t	|t
rt
|}||_dSr4N)superrr=rr6rarr)r<r+rkwargs	__class__s    r&r=zRouter.__init__sd	%fd$X88888-KK
S
)
)	,{++K&r(cjs;jdjjdtfdt
jjDS)zScan migrations in file system.z'Migration directory: %s does not exist.T)parentsc3`K|](}j||ddV)dS)N)filemaskmatch)rRfr<s  r&rfzRouter.todo.<locals>.<genexpr>sA]]dmFYFYZ[F\F\]af]]]]]]r()rexistsrr|mkdirsortedoslistdirrKs`r&rLzRouter.todos&&((	1K I4K[\\\""4"000]]]]bj1A&B&B]]]]]]r(rcr>rac4|t|j}d|dz|z}|dz}|j|z}|d5}|t
j|||dddn#1swxYwY|S)rNz{:03}_r.pyw)rrrQ)lenrLformatropenwriter)r<rQrrrfilenamerrrs        r&r~zRouter.compiles;di..CsQw''$.%<(*
YYs^^	Xq
GGHOGhXVVVWWW	X	X	X	X	X	X	X	X	X	X	X	X	X	X	Xs+B

BBcZ|j|dzz}|d5}|}i}t|ddd}t	||d|dt|d	tfcdddS#1swxYwYdS)
rrrz<string>execT)dont_inheritNrr)rrrr~rgetr')r<rQrrrcodescopes      r&rzRouter.read s4%<0
YYs^^	Kq6688DE4V$GGGDud###99Y--uyyT/J/JJ	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	K	KsA0B  B$'B$ctt||jD]#}|j|dzz}|$dS)zRemove migrations from fs.rN)rrrrLrunlink)r<rQrrrs   r&rzRouter.clear*sZ
fd!!###I		D#te|4DKKMMMM		r(r!)rrr)r>ra)
rrrrrer~rr=rrLrr
__classcell__rs@r&rrsrz011H
37'''''''^^X^KKKr(rc*eZdZdZdfd	ZdZxZS)ModuleRouterzModule based router.rctt|j|fi|t|trt|}||_dSr)rrr=r6rarmigrate_module)r<r+rrrs    r&r=zModuleRouter.__init__5sU*lD!!*8>>v>>>nc**	;*>::N,r(ct|j|}t|dtt|dtfS)zRead migrations from a module.rr)getattrrr')r<rQmods   r&rzModuleRouter.read>s7d)400sIt,,gc:t.L.LLLr()r)rrrrr=rrrs@r&rr2sY------MMMMMMMr(rrlUnion[str, ModuleType]r>Set[Type[pw.Model]]cht|tr|gnt|}d|DS)zLoad models from given module.c	vh|]5ttfdtDD]}|6S)c38K|]}t|VdSr!)r)rRrQrls  r&rfz(load_models.<locals>.<setcomp>.<genexpr>Ks-&U&Uwvt'<'<&U&U&U&U&U&Ur()filterredir)rRr#rls  @r&	<setcomp>zload_models.<locals>.<setcomp>Hse&U&U&U&UV&U&U&UVV
	
r()r6r_import_submodules)rlrs  r&rkrkDsI%VZ88Xvhh>PQW>X>XGr(.c|durt}t|trt|}t	|ds|hSg}t|j|zr|S|t|jz}t
j|j|jdzD]i\}}}|	|d}||j
&|j
|}|||r|t|z
}j|S)N.__path__.)r[r6rarhasattrrrw
walk_packagesr	find_specloaderload_modulersr)packagepassedrrrQis_pkgspecrls        r&rrOs!
}}'3)((7J''yG
7v%
c'"###F ' 5g6FHX[^H^ _ _22fd++<4;.((..v	2)&111GNr(ct|to)t|tjot|dS)z/Check object if it's a peewee model and unique.rB)r6typer;r7Modelr)objs r&rereks3c4  XZRX%>%>X73PWCXCXXr(Fror_rrList[TModelType]ract|j}|r||}}t||||}|sdSttjd|dz}td|S)z$Compile migrations for given models.rorcz


)rtrrrjoinsplitrsub)r_rrpsourcerrs      r&r{r{ps
(,

F(668WEEEJrW\&++j"9"9"?"?"E"EFFFD<<d###r(r!)rlrr>r).)r_rrrr>ra)=r
__future__rrrwrrq	functoolsr	importlibrpathlibrtypesrtypingrr	r
rrr
rrrunittestrpeeweer7r`rrlogsrr_rrrrtemplaterloggingrpeewee_migrate.typesrr~Mr__annotations__cwdrrr'objectr*rrrkrrer{r"r(r&<module>rs""""""								



%%%%%%######XXXXXXXXXXXXXXXXXXXXXX$$$$$$$$111111110//////"*Wbd++++++

#l22222O>O>O>O>O>O>O>O>d77777Z777tMMMMM:MMM$8YYY
QV$$$$$$$$r(
Back to Directory File Manager