Ë
    ýÿæiw/  ã                   ó4  — 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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(y))é    N)ÚPath)Úconfig)Ú	provisioné   )Úutilé   )Úcommand)Úscript)ÚScript)ÚScriptDirectoryc                  óJ   — t         j                  rdt         j                  › �S y)NÚscratch_Úscratch)r   ÚFOLLOWER_IDENT© ó    úh/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/alembic/testing/env.pyÚ_get_staging_directoryr      s"   € Ü×ÒØœ)×2Ñ2Ð3Ð4Ð4àr   c                  óp  — t         €°t        j                  t        j                  j                  fa t        j
                  t        j                  «      t        _        t        j                  t        j                  _        t        j                  t        j                  «      t        j                  _        y y ©N)Ú_restore_logÚloggingÚrootÚLoggerÚmanagerÚ
RootLoggerÚWARNINGÚManagerr   r   r   Ú_replace_loggerr      sd   € äÐÜŸ™¤g§n¡n×&<Ñ&<Ð=ˆÜ×)Ñ)¬'¯/©/Ó:ŒŒÜ%Ÿl™lŒ�‰ÔÜ!(§¡´·±Ó!>Œ�‰Õð	 r   c                  ó¦   — t         �Kt         \  t        _        t        j                  _        t        j                  t        j                  _        d a y y r   )r   r   r   r   r   r   r   r   Ú_restore_loggerr!   &   s7   € ô ÐÜ/;Ñ,ŒŒ”g—n‘nÔ,Ü%Ÿl™lŒ�‰ÔØ‰ð  r   c                 ó¸  — t        «        t        «       }| r•t        t        «       d«      }t        j
                  j                  |«      r
J d|z  «       ‚t        j                  |||¬«       |r>	 t        j                  |d«       |dv sJ |«       ‚t        t        |d«      d|v rdnd«       t        j                  j                  |«      }|S # t        $ r Y ŒSw xY w)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   /   sè   € ÜÔÜ
Ó
€CÙÜÔ0Ó2°IÓ>ˆÜ—7‘7—>‘> $Ô'ð 	
Ø@À4ÑGó	
Ð'ô 	�‰�S˜$¨Õ2Ùð	ä×%Ñ% d¨HÔ5ð ð "ñ ð ð ó	ð ô
 Ü˜4 Ó*Ø&¨*Ñ4‘	¸(ôô
 
×	Ñ	×	+Ñ	+¨CÓ	0€BØ€Iøô% "ò ñ ðús   Á/C Ã	CÃCc                  ó”   — ddl m}  | j                  j                  «        t	        j
                  t        «       d«       t        «        y )Nr   ©ÚenginesT)Úsqlalchemy.testingr;   Útesting_reaperÚ	close_allÚshutilÚrmtreer   r!   r:   s    r   Úclear_staging_envrA   R   s/   € Ý*à×Ñ×$Ñ$Ô&Ü
‡M�MÔ(Ó*¨DÔ1ÜÕr   c                 ó¨   — t        t        «       d«      }t        |d«      }t        |d«      5 }|j                  | «       d d d «       y # 1 sw Y   y xY w)Nr#   zscript.py.makoÚw)r+   r   ÚopenÚwrite)ÚtxtÚdir_r-   Úfs       r   Úscript_file_fixturerI   Z   s?   € ÜÔ,Ó.°	Ó:€DÜ�dÐ,Ó-€DÜ	ˆd�CŒ˜AØ	�‰�Œ÷ 
�‰ús   ­AÁAc                 ó
  — t        t        «       d«      }d| z   } t        |d«      }t        j                  |«      }|rt	        j
                  |«       t        |d«      5 }|j                  | «       d d d «       y # 1 sw Y   y xY w)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   a   ss   € ÜÔ,Ó.°	Ó:€Dð	ð
 ñ	ð ô �d˜HÓ%€DÜ×&Ñ& tÓ,€HÙÜ
�	‰	�(Ôä	ˆd�CŒ˜AØ	�‰�Œ÷ 
�‰ús   ÁA9Á9Bc                 óx   — t        t        «       d«      }d|›d| ›�}|r||d<   t        j                  |||¬«      S )Nr#   ú
sqlite:///Ú/Úscope)ÚurlÚfutureÚoptions)r+   r   Útesting_utilÚtesting_engine)ÚtempnamerT   rR   rU   rG   rS   s         r   Ú_sqlite_file_dbrY   u   s>   € ÜÔ,Ó.°	Ó:�DÚ#¡XÐ
.€CÙØ ˆ�ÑÜ×&Ñ&¨3°vÀwÔOÐOr   c                 óÊ   — t        t        «       d«      }d|› d�}|xs& dt        j                  j                  j
                  v }t        d|› d|› d| rdnd	› d
|rdnd› d�	«      S )Nr#   rP   z/foo.dbrT   ú
[alembic]
script_location = ú
sqlalchemy.url = ú
sourceless = ÚtrueÚfalseÚ
zsqlalchemy.future = trueÚ a¨  

[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   r   ÚdbÚ	__class__Ú
__module__Ú_write_config_file)r5   rT   rG   rS   Úsqlalchemy_futures        r   Ú_sqlite_testing_configrh   }   sŠ   € ÜÔ,Ó.°	Ó:€DØ�t�f˜GÐ
$€CàÒN 8¬v¯y©y×/BÑ/B×/MÑ/MÐ#MÐäðà�&ð Ø�ð Ù"‰f¨Ð0ð 1Ù0Ñ°bÐ 9ð :ð#	ó%ð %r   c                 óÆ   — t        t        «       d«      }dt        j                  j                  j
                  v }d|z  }t        d|› d|› d|rdnd› d	| rdnd› d
|› d�«      S )Nr#   rT   zsqlite:///%s/foo.dbr[   r\   z
sqlalchemy.future = 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
    rb   )r5   Úextra_version_locationrG   rg   rS   s        r   Ú_multi_dir_testing_configrk   «   s�   € ÜÔ,Ó.°	Ó:€DØ ¤F§I¡I×$7Ñ$7×$BÑ$BÐBÐà
 $Ñ
&€Cäðà�&ð Ø�ð Ù0‘V°gÐ>ð ?Ù"‰f¨Ð0ð 1ð Ð ð ð!	ó#ð #r   c                 ó~   — 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_configrt   ×   s]   € ô Ô,Ó.°	Ó:€Däðà�&ð Ü	‡��ÓÐ ð 	ð	ðà�ð ð	ó$ð $r   c           	      óT   — t        t        «       d«      }t        d|› d| › d|› d�«      S )rm   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+   r   rf   rq   s      r   Ú_no_sql_testing_configrv     sI   € ô Ô,Ó.°	Ó:€DÜðà�ð Ø�ð Ø€ð ð		ó ð  r   c                 ó–   — t        |«      }t        |j                  d«      5 }|j                  | «       d d d «       |S # 1 sw Y   |S xY w©NrC   )rf   rD   Útoml_file_namerE   )ÚtomltextÚinitextr6   rH   s       r   rn   rn   *  s?   € Ü
˜WÓ
%€CÜ	ˆc× Ñ  #Ô	&¨!Ø	�‰�Ô÷ 
'à€J÷ 
'à€Jús	   ¢>¾Ac                 ó”   — t        «       }t        |j                  d«      5 }|j                  | «       d d d «       |S # 1 sw Y   |S xY wrx   )r*   rD   Úconfig_file_namerE   )Útextr6   rH   s      r   rf   rf   1  s<   € Ü
Ó
€CÜ	ˆc×"Ñ" CÔ	(¨AØ	�‰�Œ÷ 
)à€J÷ 
)à€Jús	   ¡=½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*   8  sV   € Ý%ä�9‰9Ô+Ó-¬r¯w©wÔ7Ü
�‰Ô'Ó)Ô*ÙÜÔ)Ó+Ð-?Ó@ÜÔ)Ó+Ð-=Ó>óð r   c                 ó‚  — | j                   j                  |«      }|j                  }t        j                  |«      }|r|j                  |«      }t        |d«      5 }|j                  |«       d d d «       t        j                  |«      }|rt        j                  |«       t        j                  | |«      }	| j                   j                  |	j                  «      }|j                  |	j                  k7  rt!        d«      ‚| j                   j#                  |	d¬«       |rt%        ||dk(  rdnd«       y y # 1 sw Y   ŒÈxY w)NÚwbz2Can't change down_revision on a refresh operation.T)Ú_replacer(   r)   r'   )Úrevision_mapÚget_revisionr-   ro   rp   Ú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—   C  s  € ð ×
 Ñ
 ×
-Ñ
-¨fÓ
5€CØ�8‰8€Dä�o‰o˜gÓ&€GÙØ—.‘. Ó*ˆÜ	ˆd�DÔ	˜RØ
�‰�Ô÷ 
ä×&Ñ& tÓ,€HÙÜ
�	‰	�(ÔÜ×Ñ˜y¨$Ó/€FØ
×
 Ñ
 ×
-Ñ
-¨f¯o©oÓ
>€CØ
×Ñ˜F×0Ñ0Ò0ÜÐLÓMÐMØ×Ñ×'Ñ'¨¸Ð'Ô>áÜØ˜zÐ-AÒA‘)Àxõ	
ð ÷ 
Ð	ús   ÁD5Ä5D>c                 óÈ  — dd l }|j                  | «       |dk(  rrt        j                  | «      }t        j
                  j                  d   }t        j                  j                  | «      \  }}||z   }t        j                  ||«       |}n|dv sJ ‚t        j                  | «      }t        j                  |t        j                  «      sJ ‚t        j                  | «       y )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   ]  s¸   € Ûà×Ñ�tÔà�ÒÜ×*Ñ*¨4Ó0ˆÜ×$Ñ$×6Ñ6°qÑ9ˆÜŸ™×(Ñ(¨Ó.‰ˆ�#Ø" VÑ+ˆÜ�‰�H˜oÔ.Ø"‰àÐ-Ñ-Ð-Ð-Ü×*Ñ*¨4Ó0ˆä�9‰9�XœrŸw™wÔ'Ð'Ð'ä‡I�Iˆd…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¯   r  s  € Ü�‰‹€AÜ�‰‹€AÜ�‰‹€Aä×(Ñ(¨Ó-€FØ€F×Ñ˜Q °dÀÕHÜØØ	ðàˆCð ð	ôð* €F×Ñ˜Q °dÀÕCÜØØ	ðàˆCð Ø�ð ð	ð  õ'ð, €F×Ñ˜Q °dÀÕ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õô ØØ	ðàˆCð Ø�ð ð	ôð* €F×ÑØ	Ð Q¨t¸Tõô ØØ	ðàˆCð Ø�ð ð	ôð* €F×ÑØ	Ð Q¨t¸Tõô ØØ	ðàˆCð Ø�ð ð	ôð* ˆa�ˆ7€Nr   c                 ó8  — t        t        «       d«      }dt        j                  j                  j
                  v }dj                  | j                  «       «      }dj                  d„ | j                  «       D «       «      } t        d|› d|rdnd	› d
|› d| › d�	«      S )z?alembic.ini fixture to work exactly with the 'multidb' templater#   rT   z, z

c              3   óF   K  — | ]  \  }}d |› d|j                   › �–— Œ y­w)Ú[z]
sqlalchemy.url = N)rS   )Ú.0ÚkeyÚvalues      r   Ú	<genexpr>z*_multidb_testing_config.<locals>.<genexpr>  s.   è ø€ ð á)‰JˆC�ð ˆCˆ5Ð$ U§Y¡Y KÔ0Ù)ùs   ‚!r[   z(
sourceless = false
sqlalchemy.future = r^   r_   z
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   r   rc   rd   re   ÚjoinÚkeysÚitemsrf   )r;   rG   rg   Ú	databasess       r   Ú_multidb_testing_configrÀ     sª   € ô Ô,Ó.°	Ó:€Dà ¤F§I¡I×$7Ñ$7×$BÑ$BÐBÐà—	‘	˜'Ÿ,™,›.Ó)€IØ�k‰kñ à!Ÿ-™-œ/óó €Gô
 ðà�&ð á0‘V°gÐ>ð ?ØˆKð à€	ð 
ð	ó!ð !r   r¦   Úmorec                 ó`   — t         t        | «      j                  |Ž j                  «       «      S r   )Ústrr   ÚjoinpathÚas_posix)r¦   rÁ   s     r   r+   r+   D  s(   € ÜÐ"Œt�D‹z×"Ñ" DÐ)×2Ñ2Ó4Ó5Ð5r   )TÚgenericF)zfoo.dbFN)FF)Fra   )Ú
postgresqlra   )ÚasciiF))Úimportlib.machineryr›   r   r,   Úpathlibr   r?   ro   r<   r   r   ra   r   rV   r	   r
   r   r   r   r   r   r!   r8   rA   rI   rN   rY   rh   rk   rt   rv   rn   rf   r*   r—   r2   r¯   r´   rÀ   rÃ   r+   r   r   r   Ú<module>rË      s¾   ðÛ Û Û 	Ý Û Û å %Ý (å "Ý Ý Ý Ý Ý $òð €ò?òó òFòòó(Pó+ó\)óX)óX$òNòòð >Có
ò4ò*HòVSòl.ðb6�Sð 6 ô 6r   