Ë
    îÍ:jc  ã                  ó(  — d dl mZ d dlZd dlmZ d dlZd dlmZ d dlZd dlZd dl	Z	d dl
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œ	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 dd„Z	 	 	 	 	 	 dd„Z	 	 	 	 	 	 dd„Zdd„Zy)é    )ÚannotationsN)Ú	ExitStack)Ú	resources)Ú
ModuleType)ÚAny)ÚOptional)ÚUnion)Ú
exceptions)ÚTemplateé   )ÚCommandErrorF)Úappend_with_newlinesc               ó:  — t        t        | «      ¬«      }	  |j                  d	i |¤Žj                  |«      }t	        ||rdnd«      5 }|r |j                  dj                  |«      «       |j                  |«       d d d «       y # 1 sw Y   y xY w#  t        j                  dd¬«      5 }|j                  t        j                  «       j                  «       j                  |«      «       |j                  }	d d d «       n# 1 sw Y   nxY wt        d	z  «      ‚xY w)
N)ÚfilenameÚabÚwbz

z.txtF)ÚsuffixÚdeletezDTemplate rendering failed; see %s for a template-oriented traceback.© )r   Ú_preserving_path_as_strÚrender_unicodeÚencodeÚopenÚwriteÚtempfileÚNamedTemporaryFiler
   Útext_error_templateÚnamer   )
Útemplate_fileÚdestÚoutput_encodingr   ÚkwÚtemplateÚoutputÚfÚntfÚfnames
             úi/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/alembic/util/pyfiles.pyÚtemplate_to_filer)      s  € ô Ô!8¸Ó!GÔH€HðØ(�×(Ñ(Ñ.¨2Ñ.×5Ñ5°oÓFˆô �$Ñ 4™¸$Ó?ð 	À1Ù#Ø—‘˜Ÿ™ oÓ6Ô7Ø�G‰G�FŒO÷	÷ 	ñ 	ûð
Ü×(Ñ(°¸uÔEð 	ÈØ�I‰IÜ×.Ñ.Ó0ß‘Ó!ß‘˜Ó(ôð
 —H‘HˆE÷	÷ 	ñ 	úô ð+Ø-2ñ3ó
ð 	
ús0   —!B Á4BÂBÂDÂ*AD Ã7	DÄ D		ÄDc                ó|  — t         j                  j                  | «      s‰d| v r…| j                  d«      }t	        «       }t        j                  |j                  «       t        j                  |d   «      }|dd D ]  }||z  }Œ	 |j                  t        j                  |«      «      } t        j                  | «      S )zÔInterpret a filename as either a filesystem location or as a package
    resource.

    Names that are non absolute paths and contain a colon
    are interpreted as resources and coerced to a file location.

    ú:r   r   N)ÚosÚpathÚisabsÚsplitr   ÚatexitÚregisterÚcloser   ÚfilesÚenter_contextÚas_fileÚpathlibÚPath)Úfname_or_resourceÚtokensÚfile_managerÚrefÚtoks        r(   Úcoerce_resource_to_filenamer=   6   s©   € ô �7‰7�=‰=Ð*Ô+°Ð7HÑ0HØ"×(Ñ(¨Ó-ˆô !“{ˆÜ�‰˜×*Ñ*Ô+ä�o‰o˜f Q™iÓ(ˆØ˜!˜"�:ò 	ˆCØ˜‘)‰Cð	à(×6Ñ6Ü×Ñ˜cÓ"ó
Ðô �<‰<Ð)Ó*Ð*ó    c                óŒ  — t        j                  | «      }t        j                  t        j                  j	                  |j                  «       «      «      }|j                  «       r|S |j                  }t        j                  j                  D ]4  }|j                  |«      j                  «       sŒ#|j                  |«      c S  y)z,Given a python source path, locate the .pyc.N)r6   r7   Ú	importlibÚutilÚcache_from_sourceÚas_posixÚexistsr   Ú	machineryÚBYTECODE_SUFFIXESÚwith_suffix)r-   ÚpathpathÚ	candidateÚexts       r(   Úpyc_file_from_pathrK   P   s¢   € ô
 �|‰|˜DÓ!€HÜ—‘Ü�‰×(Ñ(¨×):Ñ):Ó)<Ó=ó€Ið ×ÑÔØÐð �/‰/€CÜ×"Ñ"×4Ñ4ò ˆØ×Ñ Ó$×+Ñ+Õ-Ø×'Ñ'¨Ó,Ò,ðð r>   c                ó~  — t        j                  | «      } t        j                  |«      }|j                  }t        j                  dd|«      }| |z  }|j
                  }|dk(  rG|j                  «       rt        ||«      }|S t        |«      }|€t        d|z  «      ‚t        ||«      }|S |dv rt        ||«      }|S J ‚)z3Load a file from the given path as a Python module.z\WÚ_z.pyzCan't find Python file %s)z.pycz.pyo)
r6   r7   r   ÚreÚsubr   rD   Úload_module_pyrK   ÚImportError)Údir_r   Úfilename_as_pathÚ	module_idr-   rJ   ÚmoduleÚpyc_paths           r(   Úload_python_filerW   f   sÎ   € ô
 �<‰<˜Ó€DÜ—|‘| HÓ-ÐØ×$Ñ$€Hä—‘�u˜c 8Ó,€IØ�(‰?€DØ
�+‰+€CØ
ˆe‚|Ø�;‰;Œ=Ü# I¨tÓ4ˆFð €Mô *¨$Ó/ˆHØÐÜ!Ð"=ÀÑ"DÓEÐEä'¨	°8Ó<�ð
 €Mð	 
Ð Ñ	 Ü 	¨4Ó0ˆð €Mð 	ˆur>   c                óÂ   — t         j                  j                  | |«      }|sJ ‚t         j                  j                  |«      }|j                  j                  |«       |S )N)r@   rA   Úspec_from_file_locationÚmodule_from_specÚloaderÚexec_module)rT   r-   ÚspecrU   s       r(   rP   rP   ‚   sL   € ô �>‰>×1Ñ1°)¸TÓB€DÙ€Kˆ4Ü�^‰^×,Ñ,¨TÓ2€FØ‡K�K×Ñ˜FÔ#Ø€Mr>   c                ó¬   — t        | t        «      r| S t        | t        j                  «      rt        | «      S t        t        j                  | «      «      S )zæreceive str/pathlike and return a string.

    Does not convert an incoming string path to a Path first, to help with
    unit tests that are doing string path round trips without OS-specific
    processing if not necessary.

    )Ú
isinstanceÚstrr6   ÚPurePathr7   )r-   s    r(   r   r   Œ   sA   € ô �$œÔØˆÜ	�Dœ'×*Ñ*Ô	+Ü�4‹yÐä”7—<‘< Ó%Ó&Ð&r>   )r   úUnion[str, os.PathLike[str]]r    rb   r!   r`   r   Úboolr"   r   ÚreturnÚNone)r8   r`   rd   zpathlib.Path)r-   rb   rd   zOptional[pathlib.Path])rR   rb   r   rb   rd   r   )rT   r`   r-   rb   rd   r   )r-   rb   rd   r`   )Ú
__future__r   r0   Ú
contextlibr   r@   r   Úimportlib.machineryÚimportlib.utilr,   r6   rN   r   Útypesr   Útypingr   r   r	   Úmakor
   Úmako.templater   Úexcr   r)   r=   rK   rW   rP   r   r   r>   r(   ú<module>ro      sÖ   ðÝ "ã Ý  Û Ý Û Û Û 	Û Û 	Û Ý Ý Ý Ý å Ý "å ð "'ñØ/ðà
&ðð ðð
 ðð ðð 
óó<+ð4Ø
&ðàóð,Ø
&ðØ2Nðàóð8ØðØ6ðàóô'r>   