o
    8 h                     @  s  d dl mZ d dlm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 ejdkZejdkZejdkZejdkZejdkZejdkZejdkZG dd dejZerd dlm Z! e!Z"d dlm#Z$ e$Z%d dl&m'Z' nd dl"Z"d dl%Z%d dl%m'Z' erd dl(Z(nd dl)Z(erddd=d!d"Z*d#d$d>d'd(Z+nddd=d)d"Z*d#d$d>d*d(Z+d?d.d/Z,	d@dAd4d5Z-dBd;d<Z.dS )C    )annotations)ConfigParserN)Path)Any)Iterator)List)Optional)Sequence)UnionT)inspect_getfullargspec)inspect_formatargspecposix)      )r      )r      )r      )r   
   )r   	   c                   @  s   e Zd ZdddZdS )	EncodedIOreturnNonec                 C  s   d S N )selfr   r   [/var/www/html/figdemos/bartoux_crm/venv/lib/python3.10/site-packages/alembic/util/compat.pyclose)   s   zEncodedIO.closeN)r   r   )__name__
__module____qualname__r   r   r   r   r   r   (   s    r   )	resources)metadata)
EntryPoint)top_downpathr   r#   boolr   +Iterator[tuple[Path, list[str], list[str]]]c                C  s
   t | S r   )r   walk)r$   r#   r   r   r   	path_walkB   s   
r(   Fwalk_upotherr*   c                C  s   | j ||dS )Nr)   )relative_to)r$   r+   r*   r   r   r   path_relative_toG   s   r-   c                c  s0    t j| |dD ]\}}}t|||fV  qd S )N)topdown)osr'   r   )r$   r#   rootdirsfilesr   r   r   r(   N   s   c                C  st   z|  |W S  ty9   |r8t|j|g }|D ]}z
|  |W    Y S  ty.   Y qw t|  d|  w )z
        Calculate the relative path of 'path' with respect to 'other',
        optionally allowing 'path' to be outside the subtree of 'other'.

        OK I used AI for this, sorry

        z is not in the same subtree as )r,   
ValueErrorlistparents)r$   r+   r*   Zother_ancestorsZancestorr   r   r   r-   T   s    
groupstrSequence[EntryPoint]c                 C  s*   t  }t|dr|j| dS || dS )Nselect)r6   r   )importlib_metadataentry_pointshasattrr9   get)r6   epr   r   r   importlib_metadata_geto   s   
r?   
annotationr   base_moduleOptional[Any]c                 C  s   t | tr| S t| dddkrt| ddddS t | tr4| jd|fv r,t| jS | jd | j S t | tj	rBt| ddS t| ddS )	zvendored from python 3.7r   Ntypingztyping. ~builtins.)

isinstancer7   getattrreprreplacetyper   r   rC   TypeVar)r@   rA   r   r   r   formatannotation_fwdrefw   s   


rN   file_configr   file_argument&Sequence[Union[str, os.PathLike[str]]]	List[str]c                 C  s   t r	| j|ddS | |S )Nlocale)encoding)py310read)rO   rP   r   r   r   read_config_parser   s   
rW   )r$   r   r#   r%   r   r&   )r$   r   r+   r   r*   r%   r   r   )r6   r7   r   r8   r   )r@   r   rA   rB   r   r7   )rO   r   rP   rQ   r   rR   )/
__future__r   configparserr   ior/   pathlibr   sysrC   r   r   r   r   r	   r
   Zsqlalchemy.utilr   Zsqlalchemy.util.compatr   nameis_posixversion_infopy314py313py312py311rU   py39TextIOWrapperr   	importlibr    Z
_resourcesZimportlib_resourcesr!   	_metadatar:   importlib.metadatar"   ZtomllibZtomlir(   r-   r?   rN   rW   r   r   r   r   <module>   sb   








	