bg*ddlZddlZddlZddlZddlmZddlmZddlm Z ddlm Z ddlm Z ddlm Z dd l m Z dd l mZd Zd"dZdZdZdZd#dZd$dZd%dZd&dZdZdZ d'dZdZdZd Zd!ZdS)(N)config) provision)util)command)script)Script)ScriptDirectoryc<tjrdtjzSdS)Nz scratch_%sscratch)rFOLLOWER_IDENTd/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib/python3.11/site-packages/alembic/testing/env.py_get_staging_directoryrs i666yrTgenericFct}|rtjt d}tj|r Jd|zt j||||ri tj |dn#t$rYnwxYw|dvs J|ttj|dd|vrdndtj |}|S)Nscriptsz2staging directory %s already exists; poor cleanup?)templateenv.py)pep3147_envonlysimplepep3147_everythingpep3147r)_testing_configospathjoinrexistsrinitrload_python_fileAttributeErrormake_sourcelessr r from_config)creater sourcelesscfgrscs r staging_envr*sA   C w||244i@@7>>$''  @4 G  '  S$2222   %dH5555!      "   T8,,&*44 (      + +C 0 0B IsB B&%B&cddlm}|jt jt ddS)NrenginesT)sqlalchemy.testingr-testing_reaper close_allshutilrmtreerr,s rclear_staging_envr3<sH****** $$&&& M(**D11111rctjtd}tj|d}t |d5}||ddddS#1swxYwYdS)Nrzscript.py.makow)rrrropenwrite)txtdir_rfs rscript_file_fixturer;Cs 7<<.00) < r _from_pathrevision down_revision Exception add_revisionr$) scriptdirrev_idcontentencodingr'oldrfpr?r s r write_scriptrs  - -f 5 5C 8Dog&&G+..** dD  R &t,,H (  y$ / /F  - -fo > >C F000 C   '''>>>  z-AAA))x       sA??BBcddl}|||dkrjtj|}tjjd}tj |\}}||z}tj |||}n|dvsJtj|}tj |tj sJtj|dS)Nrr)rr) py_compilecompilerr= importlib machineryBYTECODE_SUFFIXESrrsplitextr1moverlrmr>)rstylerr?suffixfilepathextsimple_pyc_paths rr$r$st *400$6q9((.. #"V+ Ho..."-----*400 9Xrw ' ''' 'IdOOOOOrc tj}tj}tj}tj|}|j|dddt ||d|z|j|dd|t ||d|d|d d |j|d d|t ||d |d|d|||fS)Nz revision aTbase)refreshheadz"Rev A" revision = '%s' down_revision = None from alembic import op def upgrade(): op.execute("CREATE STEP 1") def downgrade(): op.execute("DROP STEP 1") z revision bu/# coding: utf-8 "Rev B, méil, %3" revision = '' down_revision = 'z}' from alembic import op def upgrade(): op.execute("CREATE STEP 2") def downgrade(): op.execute("DROP STEP 2") zutf-8)rz revision cz"Rev C" revision = 'z}' from alembic import op def upgrade(): op.execute("CREATE STEP 3") def downgrade(): op.execute("DROP STEP 3") rr~r r%generate_revisionr)r(abcr s rthree_rev_fixturer4s5 A A A  ( - -FFQ dHHHH   ! ,FQ dCCCC         ',FQ dCCCC " 11aaa! * a7Nrc tj}tj}tj}tj|}|j|d|ddt ||d|d|d|j|d|ddt ||d|d|d |j|d |ddt ||d |d|d |||fS) z:Create a multiple head fixture from the three-revs fixturezrevision d from bT)rsplicerz"Rev D" revision = 'rz}' from alembic import op def upgrade(): op.execute("CREATE STEP 4") def downgrade(): op.execute("DROP STEP 4") zrevision e from dz"Rev E" revision = 'z}' from alembic import op def upgrade(): op.execute("CREATE STEP 5") def downgrade(): op.execute("DROP STEP 5") zrevision f from bz"Rev F" revision = 'z}' from alembic import op def upgrade(): op.execute("CREATE STEP 6") def downgrade(): op.execute("DROP STEP 6") r)r(rrrder:r s rmulti_heads_fixturersN A A A  ( - -FF QtT " 11aaa! ,F QtT " 11aaa! ,F QtT " 11aaa! , a7Nrc ztjtd}dtjjjv}d|}dd| D}td|d|rdnd d |d|d S) z?alembic.ini fixture to work exactly with the 'multidb' templaterrFz, z c36K|]\}}d|d|jVdS)[z] sqlalchemy.url = N)rE).0keyvalues r z*_multidb_testing_config..sI C+.##uyy9rrOz( sourceless = false sqlalchemy.future = rRrSz databases = aH [loggers] keys = root [handlers] keys = console [logger_root] level = WARN handlers = console qualname = [handler_console] class = StreamHandler args = (sys.stderr,) level = NOTSET formatter = generic [formatters] keys = generic [formatter_generic] format = %(levelname)-5.5s [%(name)s] %(message)s datefmt = %H:%M:%S ) rrrrrrWrXrYkeysitemsrZ)r-r9r[ databasess r_multidb_testing_configrs 7<<.00) < rs %%%%%%((((((""""""$$$$$$!!!!H222(PPPP1111h....b%%%%PNNN>C    8,JJJZVVVr/////r