§
    äóÉjG-  ã                   ó*  — d dl Zd dlZd dlZd dlmZ d dlZd dlZd dlm	Z	 ddl
mZ ddl
mZ ddl
mZ ddl
mZ dd	lmZ dd
lmZ d„ Zdad„ Zd„ Zd)d„Zd„ Zd„ Zd„ Zd*d„Zd+d„Zd,d„Zd-d„Zd-d„Zd„ Zd„ Zd„ Z 	 d.d!„Z!d"„ Z"d#„ Z#d$„ Z$d%„ Z%d&e&d'e&fd(„Z'dS )/é    N)ÚPath)Ú	provisioné   )Úutilé   )Úcommand)Úscript)ÚScript)ÚScriptDirectoryc                  ó<   — t           j        rdt           j        › �S dS )NÚscratch_Úscratch)r   ÚFOLLOWER_IDENT© ó    úv/home/lighthouse/badge-speaker-benchmark/.benchmark-venv-community/lib/python3.11/site-packages/alembic/testing/env.pyÚ_get_staging_directoryr      s#   € ÝÔð Ø4�)Ô2Ð4Ð4Ð4àˆyr   c                  ó2  — t           €�t          j        t          j        j        fa t          j        t          j        ¦  «        t          _        t          j        t          j        _        t          j        t          j        ¦  «        t          j        _        d S d S ©N)Ú_restore_logÚloggingÚrootÚLoggerÚmanagerÚ
RootLoggerÚWARNINGÚManagerr   r   r   Ú_replace_loggerr      s]   € åÐÝœ¥g¤nÔ&<Ð=ˆÝÔ)­'¬/Ñ:Ô:�ŒÝ%œl�ŒÔÝ!(¤µ´Ñ!>Ô!>�ŒÔÐÐð	 Ðr   c                  ó˜   — t           �Bt           \  t          _        t          j        _        t          j        t          j        _        d a d S d S r   )r   r   r   r   r   r   r   r   Ú_restore_loggerr    %   s8   € õ ÐÝ/;Ñ,�Œ•g”nÔ,Ý%œl�ŒÔØˆˆˆð  Ðr   TÚgenericFc                 óô  — t          ¦   «          t          ¦   «         }| rºt          t          ¦   «         d¦  «        }t          j                             |¦  «        rJ d|z  ¦   «         ‚t          j        |||¬¦  «         |rY	 t          j
        |d¦  «         n# t          $ r Y nw xY w|dv s
J |¦   «         ‚t          t          |d¦  «        d|v rdnd¦  «         t          j                             |¦  «        }|S )NÚscriptsz2staging directory %s already exists; poor cleanup?)Útemplateúenv.py)Úpep3147_envonlyÚsimpleÚpep3147_everythingÚpep3147r'   )r   Ú_testing_configÚ
_join_pathr   ÚosÚpathÚexistsr   Úinitr   Úload_python_fileÚAttributeErrorÚmake_sourcelessr	   r   Úfrom_config)Úcreater$   Ú
sourcelessÚcfgr-   Úscs         r   Ústaging_envr8   .   sC  € ÝÑÔÐÝ
Ñ
Ô
€CØð ÝÕ0Ñ2Ô2°IÑ>Ô>ˆÝ”7—>’> $Ñ'Ô'ð 	
ð 	
Ø@À4ÑGñ	
ô 	
ð 	
õ 	Œ�S˜$¨Ð2Ñ2Ô2Ð2Øð 	ð	åÔ% d¨HÑ5Ô5Ð5Ð5øÝ!ð ð ð ð �ðøøøð ð "ð ð ð ð ñ	ô ð õ
 Ý˜4 Ñ*Ô*Ø&¨*Ð4Ð4�	�	¸(ñô ð õ
 
Ô	×	+Ò	+¨CÑ	0Ô	0€BØ€Is   ÂB Â
B$Â#B$c                  ó¢   — ddl m}  | j                             ¦   «          t	          j        t          ¦   «         d¦  «         t          ¦   «          d S )Nr   ©ÚenginesT)Úsqlalchemy.testingr;   Útesting_reaperÚ	close_allÚshutilÚrmtreer   r    r:   s    r   Úclear_staging_envrA   Q   sT   € Ø*Ð*Ð*Ð*Ð*Ð*àÔ×$Ò$Ñ&Ô&Ð&Ý
„MÕ(Ñ*Ô*¨DÑ1Ô1Ð1ÝÑÔÐÐÐr   c                 óÚ   — t          t          ¦   «         d¦  «        }t          |d¦  «        }t          |d¦  «        5 }|                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr#   zscript.py.makoÚw)r+   r   ÚopenÚwrite)ÚtxtÚdir_r-   Úfs       r   Úscript_file_fixturerI   Y   s¦   € ÝÕ,Ñ.Ô.°	Ñ:Ô:€DÝ�dÐ,Ñ-Ô-€DÝ	ˆd�C‰Œð ˜AØ	�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ½A Á A$Á'A$c                 ó8  — t          t          ¦   «         d¦  «        }d| z   } t          |d¦  «        }t          j        |¦  «        }|rt	          j        |¦  «         t          |d¦  «        5 }|                     | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr#   z6
from alembic import context

config = context.config
r%   rC   )r+   r   r   Úpyc_file_from_pathr,   ÚunlinkrD   rE   )rF   rG   r-   Úpyc_pathrH   s        r   Úenv_file_fixturerN   `   sà   € ÝÕ,Ñ.Ô.°	Ñ:Ô:€Dðð 
ñ	
€Cõ �d˜HÑ%Ô%€DÝÔ& tÑ,Ô,€HØð Ý
Œ	�(ÑÔÐå	ˆd�C‰Œð ˜AØ	�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á,BÂBÂBúfoo.dbc                 ó„   — t          t          ¦   «         d¦  «        }d|›d| ›�}|r||d<   t          j        ||¬¦  «        S )Nr#   ú
sqlite:///ú/Úscope)ÚurlÚoptions)r+   r   Útesting_utilÚtesting_engine)ÚtempnamerS   rU   rG   rT   s        r   Ú_sqlite_file_dbrY   q   sR   € ÝÕ,Ñ.Ô.°	Ñ:Ô:€D€DØ#˜t˜t X XÐ
.€CØð !Ø ˆ�ÑÝÔ&¨3¸Ð@Ñ@Ô@Ð@r   c           	      ó€   — t          t          ¦   «         d¦  «        }d|› d�}t          d|› d|› d| rdnd› d	�¦  «        S )
Nr#   rQ   z/foo.dbú
[alembic]
script_location = ú
sqlalchemy.url = ú
sourceless = ÚtrueÚfalsea¨  

[loggers]
keys = root,sqlalchemy

[handlers]
keys = console

[logger_root]
level = WARNING
handlers = console
qualname =

[logger_sqlalchemy]
level = DEBUG
handlers =
qualname = sqlalchemy.engine

[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
    ©r+   r   Ú_write_config_file)r5   rG   rT   s      r   Ú_sqlite_testing_configrb   y   sx   € ÝÕ,Ñ.Ô.°	Ñ:Ô:€DØ
$�tÐ
$Ð
$Ð
$€Cåð "àð"ð "ð ð"ð "ð #Ð/ˆfˆf¨ð	"ð "ð "ñ "	ô "	ð "	r   Ú c                 ó„   — t          t          ¦   «         d¦  «        }d|z  }t          d|› d|› d| rdnd› d|› d	�	¦  «        S )
Nr#   zsqlite:///%s/foo.dbr[   r\   r]   r^   r_   z_
path_separator = space
version_locations = %(here)s/model1/ %(here)s/model2/ %(here)s/model3/ aR  

[loggers]
keys = root

[handlers]
keys = console

[logger_root]
level = WARNING
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
    r`   )r5   Úextra_version_locationrG   rT   s       r   Ú_multi_dir_testing_configrf   ¢   s�   € ÝÕ,Ñ.Ô.°	Ñ:Ô:€Dà
 $Ñ
&€Cåð  àð ð  ð ð ð  ð #Ð/ˆfˆf¨ð	 ð  ð ð ð  ð  ñ  	ô  	ð  	r   Ú
postgresqlc                 ó”   — t          t          ¦   «         d¦  «        }t          d|› dt          j        |¦  «        › d�d| › d�¦  «        S )úLuse a postgresql url with no host so that
    connections guaranteed to failr#   z"
[tool.alembic]
script_location ="z"
z


        z
[alembic]
sqlalchemy.url = aR  ://

[loggers]
keys = root

[handlers]
keys = console

[logger_root]
level = WARNING
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

)r+   r   Ú_write_toml_configÚtextwrapÚdedent©ÚdialectÚ
directivesrG   s      r   Ú_no_sql_pyproject_configrp   Ê   ss   € õ Õ,Ñ.Ô.°	Ñ:Ô:€Dåð	àð	ð 	õ 
„�ÑÔð	ð 	ð 	ð	àð	ð 	ð 	ñ$ô $ð $r   c           	      ól   — t          t          ¦   «         d¦  «        }t          d|› d| › d|› d�¦  «        S )ri   r#   z
[alembic]
script_location =r\   z://
aO  

[loggers]
keys = root

[handlers]
keys = console

[logger_root]
level = WARNING
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

r`   rm   s      r   Ú_no_sql_testing_configrr   ö   sa   € õ Õ,Ñ.Ô.°	Ñ:Ô:€DÝð àðð ð ðð ð ð	ð ð ñ ô ð r   c                 ó¨   — t          |¦  «        }t          |j        d¦  «        5 }|                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   |S ©NrC   )ra   rD   Útoml_file_namerE   )ÚtomltextÚinitextr6   rH   s       r   rj   rj     s‹   € Ý
˜WÑ
%Ô
%€CÝ	ˆcÔ  #Ñ	&Ô	&ð ¨!Ø	�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à€Js   ¥AÁAÁAc                 ó¦   — t          ¦   «         }t          |j        d¦  «        5 }|                     | ¦  «         d d d ¦  «         n# 1 swxY w Y   |S rt   )r*   rD   Úconfig_file_namerE   )Útextr6   rH   s      r   ra   ra   "  s†   € Ý
Ñ
Ô
€CÝ	ˆcÔ" CÑ	(Ô	(ð ¨AØ	�Š�‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à€Js   ¤AÁA
ÁA
c                  ó$  — ddl m}  t          j        t	          ¦   «         t          j        ¦  «        s t          j        t	          ¦   «         ¦  «          | t          t	          ¦   «         d¦  «        t          t	          ¦   «         d¦  «        ¦  «        S )Nr   ©ÚConfigztest_alembic.inizpyproject.toml)Úalembic.configr}   r,   Úaccessr   ÚF_OKÚmkdirr+   r|   s    r   r*   r*   )  s†   € Ø%Ð%Ð%Ð%Ð%Ð%åŒ9Õ+Ñ-Ô-­r¬wÑ7Ô7ð +Ý
ŒÕ'Ñ)Ô)Ñ*Ô*Ð*Øˆ6ÝÕ)Ñ+Ô+Ð-?Ñ@Ô@ÝÕ)Ñ+Ô+Ð-=Ñ>Ô>ñô ð r   Úasciic                 ó‚  — | j                              |¦  «        }|j        }t          j        |¦  «        }|r|                     |¦  «        }t          |d¦  «        5 }|                     |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        |¦  «        }|rt          j        |¦  «         t          j        | |¦  «        }	| j                              |	j        ¦  «        }|j        |	j        k    rt!          d¦  «        ‚| j                              |	d¬¦  «         |rt%          ||dk    rdnd¦  «         d S d S )NÚwbz2Can't change down_revision on a refresh operation.T)Ú_replacer(   r)   r'   )Úrevision_mapÚget_revisionr-   rk   rl   ÚencoderD   rE   r   rK   r,   rL   r
   Ú
_from_pathÚrevisionÚdown_revisionÚ	ExceptionÚadd_revisionr2   )
Ú	scriptdirÚrev_idÚcontentÚencodingr5   Úoldr-   ÚfprM   r	   s
             r   Úwrite_scriptr”   4  s�  € ð Ô
 ×
-Ò
-¨fÑ
5Ô
5€CØŒ8€DåŒo˜gÑ&Ô&€GØð +Ø—.’. Ñ*Ô*ˆÝ	ˆd�DÑ	Ô	ð ˜RØ
�Š�ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð åÔ& tÑ,Ô,€HØð Ý
Œ	�(ÑÔÐÝÔ˜y¨$Ñ/Ô/€FØ
Ô
 ×
-Ò
-¨f¬oÑ
>Ô
>€CØ
Ô˜FÔ0Ò0Ð0ÝÐLÑMÔMÐMØÔ×'Ò'¨¸Ð'Ñ>Ô>Ð>àð 
ÝØ˜zÐ-AÒAÐA�)�)Àxñ	
ô 	
ð 	
ð 	
ð 	
ð
ð 
s   ÁA?Á?BÂBc                 ó¶  — dd l }|                     | ¦  «         |dk    rjt          j        | ¦  «        }t          j        j        d         }t          j         	                    | ¦  «        \  }}||z   }t          j        ||¦  «         |}n|dv sJ ‚t          j        | ¦  «        }t          j        |t          j        ¦  «        sJ ‚t          j        | ¦  «         d S )Nr   r'   )r)   r'   )Ú
py_compileÚcompiler   rK   Ú	importlibÚ	machineryÚBYTECODE_SUFFIXESr,   r-   Úsplitextr?   Úmover   r€   rL   )r-   Ústyler–   rM   ÚsuffixÚfilepathÚextÚsimple_pyc_paths           r   r2   r2   N  sÖ   € ØÐÐÐà×Ò�tÑÔÐà�ÒÐÝÔ*¨4Ñ0Ô0ˆÝÔ$Ô6°qÔ9ˆÝœ×(Ò(¨Ñ.Ô.‰ˆ�#Ø" VÑ+ˆÝŒ�H˜oÑ.Ô.Ð.Ø"ˆˆàÐ-Ð-Ð-Ð-Ð-ÝÔ*¨4Ñ0Ô0ˆåŒ9�X�rœwÑ'Ô'Ð'Ð'Ð'å„Iˆd�O„O€O€O€Or   c           	      ó¬  — t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }t          j        | ¦  «        } |j        |ddd¬¦  «         t          ||d|› d�¦  «          |j        |dd|¬¦  «         t          ||d|› d	|› d
�d¬¦  «          |j        |dd|¬¦  «         t          ||d|› d	|› d�¦  «         |||fS )Nz
revision aTÚbase)ÚrefreshÚheadz"Rev A"
revision = 'z’'
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")

zutf-8)r‘   z
revision cz"Rev C"
revision = 'z}'

from alembic import op


def upgrade():
    op.execute("CREATE STEP 3")


def downgrade():
    op.execute("DROP STEP 3")

©r   r�   r   r3   Úgenerate_revisionr”   )r6   ÚaÚbÚcr	   s        r   Úthree_rev_fixturer¬   c  sM  € ÝŒ‰Œ€AÝŒ‰Œ€AÝŒ‰Œ€AåÔ(¨Ñ-Ô-€FØ€FÔ˜Q °dÀÐHÑHÔHÐHÝØØ	ð	àð	ð 	ð 	ñô ð ð* €FÔ˜Q °dÀÐCÑCÔCÐCÝØØ	ð	àð	ð 	ð ð	ð 	ð 	ð  ð'ñ ô ð ð, €FÔ˜Q °dÀÐCÑCÔCÐCÝØØ	ð	àð	ð 	ð ð	ð 	ð 	ñô ð ð( ˆa�ˆ7€Nr   c           	      ó´  — t          j        ¦   «         }t          j        ¦   «         }t          j        ¦   «         }t          j        | ¦  «        } |j        |d|dd¬¦  «         t          ||d|› d|› d�¦  «          |j        |d|dd¬¦  «         t          ||d|› d|› d	�¦  «          |j        |d
|dd¬¦  «         t          ||d|› d|› d�¦  «         |||fS )z:Create a multiple head fixture from the three-revs fixturezrevision d from bT)r¥   Úsplicer¤   z"Rev D"
revision = 'r¦   z}'

from alembic import op


def upgrade():
    op.execute("CREATE STEP 4")


def downgrade():
    op.execute("DROP STEP 4")

zrevision 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")

zrevision 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§   )r6   r©   rª   r«   ÚdÚerH   r	   s           r   Úmulti_heads_fixturer±   ®  s~  € õ 	Œ‰Œ€AÝŒ‰Œ€AÝŒ‰Œ€AåÔ(¨Ñ-Ô-€FØ€FÔØ	Ð Q¨t¸Tðñ ô ð õ ØØ	ð	àð	ð 	ð ð	ð 	ð 	ñô ð ð* €FÔØ	Ð Q¨t¸Tðñ ô ð õ ØØ	ð	àð	ð 	ð ð	ð 	ð 	ñô ð ð* €FÔØ	Ð Q¨t¸Tðñ ô ð õ ØØ	ð	àð	ð 	ð ð	ð 	ð 	ñô ð ð* ˆa�ˆ7€Nr   c           	      ó  — t          t          ¦   «         d¦  «        }d                     |                      ¦   «         ¦  «        }d                     d„ |                      ¦   «         D ¦   «         ¦  «        } t          d|› d|› d| › d�¦  «        S )z?alembic.ini fixture to work exactly with the 'multidb' templater#   z, z

c              3   ó6   K  — | ]\  }}d |› d|j         › �V — ŒdS )ú[z]
sqlalchemy.url = N)rT   )Ú.0ÚkeyÚvalues      r   ú	<genexpr>z*_multidb_testing_config.<locals>.<genexpr>
  sL   è è € ð ð áˆC�ð 	1ˆCÐ0Ð0 U¤YÐ0Ð0ðð ð ð ð ð r   r[   z 
sourceless = false
databases = aQ  
[loggers]
keys = root

[handlers]
keys = console

[logger_root]
level = WARNING
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
    )r+   r   ÚjoinÚkeysÚitemsra   )r;   rG   Ú	databasess      r   Ú_multidb_testing_configr½     s³   € õ Õ,Ñ.Ô.°	Ñ:Ô:€Dà—	’	˜'Ÿ,š,™.œ.Ñ)Ô)€IØ�kŠkð ð à!Ÿ-š-™/œ/ðñ ô ñ ô €Gõ
 ð àðð ð ð	ð ð 	ðð ð ñ 	ô 	ð 	r   r£   Úmorec                 ón   — t           t          | ¦  «        j        |Ž                      ¦   «         ¦  «        S r   )Ústrr   ÚjoinpathÚas_posix)r£   r¾   s     r   r+   r+   0  s-   € ÝÐ"�t�D‰zŒzÔ" DÐ)×2Ò2Ñ4Ô4Ñ5Ô5Ð5r   )Tr!   F)rO   N)F)Frc   )rg   rc   )r‚   F)(Úimportlib.machineryr˜   r   r,   Úpathlibr   r?   rk   r<   r   rc   r   rV   r   r	   r
   r   r   r   r   r    r8   rA   rI   rN   rY   rb   rf   rp   rr   rj   ra   r*   r”   r2   r¬   r±   r½   rÀ   r+   r   r   r   ú<module>rÅ      s_  ðØ Ð Ð Ð Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ð Ð Ø €€€Ø €€€à (Ð (Ð (Ð (Ð (Ð (à "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $ðð ð ð €ð?ð ?ð ?ðð ð ð ð  ð  ð  ðFð ð ðð ð ðð ð ð"Að Að Að Að&	ð &	ð &	ð &	ðR%	ð %	ð %	ð %	ðP)ð )ð )ð )ðX"ð "ð "ð "ðJð ð ðð ð ðð ð ð >Cð
ð 
ð 
ð 
ð4ð ð ð*Hð Hð HðVSð Sð Sðl)	ð )	ð )	ðX6�Sð 6 ð 6ð 6ð 6ð 6ð 6ð 6r   