o
    eZh                     @   s  d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z d dl	mZmZ eefZejdkr4eZnd dlmZ edZd	eeee f d
efddZedZddeded
efddZ
zd dlmZ W n eyu   G dd dZY nw d
efddZg dZdS )    N)Path)Any	AwaitableTypeVarUnion)quote)	urlencodeurlparse)      )OrderedDictTcororeturnc                    s   t | r| I d H S | S N)inspectiscoroutine)r    r   P/var/www/html/lang_env/lib/python3.10/site-packages/elastic_transport/_compat.pyawait_if_coro$   s   

r   zBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~/stringsafec                 C   s   d tt|}t| |S )N )join_QUOTE_ALWAYS_SAFEunionset_quote)r   r   r   r   r   r   /   s   
r   )Lockc                   @   sF   e Zd ZdddZdeddfddZddedefd	d
ZdddZdS )r   r   Nc                 C      d S r   r   selfr   r   r   	__enter__;      zLock.__enter___c                 G   r    r   r   r"   r%   r   r   r   __exit__>   r$   zLock.__exit__Tc                 C   s   dS )NTr   r&   r   r   r   acquireA   r$   zLock.acquirec                 C   r    r   r   r!   r   r   r   releaseD   r$   zLock.release)r   N)T)	__name__
__module____qualname__r#   r   r'   boolr(   r)   r   r   r   r   r   :   s
    
r   c                  C   s   z?t dd } ttj|  j}|jdk}|r|j}tt	
 D ]\}}t|j}~|r1||jvs7|s<||kr<|  W S q W dS  tyI   Y dS w )zMDynamically determine warning stacklevel for warnings based on the call stack.r   z__init__.py)r*   	partitionr   sysmodules__file__nameparent	enumerater   stackfilenameparentsKeyError)module_namemodule_pathZmodule_is_folderlevelframeframe_filenamer   r   r   warn_stacklevelH   s.   



r?   )r   ordered_dictr   r	   r   string_typesr   )r   ) r   r0   pathlibr   typingr   r   r   r   urllib.parser   r   r   r	   strbytesrA   version_infodictr@   collectionsr   r   r   	frozensetr   	threadingr   ImportErrorintr?   __all__r   r   r   r   <module>   s.   
$