a
    ,ghT                     @   s   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Zd dlZdZdd Z	dd Z
ddd	Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    NzApyarrow.{} is deprecated as of {}, please use pyarrow.{} instead.c                    s    fdd}|S )Nc                    s    j | _ | S N)__doc__)gf \/mounts/lovelace/software/anaconda3/envs/metaDMG/lib/python3.9/site-packages/pyarrow/util.py	decorator$   s    zimplements.<locals>.decoratorr   )r   r	   r   r   r   
implements#   s    r
   c                    s    t | || fdd}|S )Nc                     s   t t  | i |S r   )warningswarnFutureWarning)argskwargsapimsgr   r   wrapper-   s    z_deprecate_api.<locals>.wrapper)	_DEPR_MSGformat)old_namenew_namer   next_versionr   r   r   r   _deprecate_api*   s    r   Tc                    s&   G  fdddt }| fi S )zM
    Raise warning if a deprecated class is used in an isinstance check.
    c                       s   e Zd Z fddZdS )z)_deprecate_class.<locals>._DeprecatedMetac                    s&   t jt jtdd t| S )N   )
stacklevel)r   r   r   r   __name__r   
isinstance)selfother	new_classr   r   r   r   __instancecheck__9   s    z;_deprecate_class.<locals>._DeprecatedMeta.__instancecheck__N)r   
__module____qualname__r"   r   r    r   r   _DeprecatedMeta8   s   r%   )type)r   r!   r   Zinstancecheckr%   r   r    r   _deprecate_class3   s    	r'   c                 C   s(   zt |  W dS  ty"   Y dS 0 d S )NTF)iter	TypeError)objr   r   r   _is_iterableD   s
    r+   c                 C   s   t | tpt| dS )N
__fspath__)r   strhasattrpathr   r   r   _is_path_likeL   s    r1   c                 C   sH   t | trtj| S ztj|  W S  ty:   Y n0 tddS )zA
    Convert *path* to a string or unicode path if possible.
    znot a path-like objectN)r   r-   osr0   
expanduserr,   AttributeErrorr)   r/   r   r   r   _stringify_pathP   s    
r5   c                 C   s   t dd | dS )z-
    Return a product of sequence items.
    c                 S   s   | | S r   r   )abr   r   r   <lambda>d       zproduct.<locals>.<lambda>   )	functoolsreduce)seqr   r   r   product`   s    r>   c                 C   s   |sd}|t |  }nd}|}t| D ]V\}}|dkrBd }} q~|| }|dkrd|||d  7 }q&|dk r&|||d  7 }q&|| |t |  krtd||fS )z
    Return a contiguous span of N-D array data.

    Parameters
    ----------
    shape : tuple
    strides : tuple
    itemsize : int
      Specify array shape data

    Returns
    -------
    start, end : int
      The span end points.
    r   r:   zarray data is non-contiguous)r>   	enumerate
ValueError)shapestridesitemsizestartendidimZstrider   r   r   get_contiguous_spang   s"    rH   c                  C   sf   t  t jt j} t| 8} | d | t jt jd | 	 d W  d    S 1 sX0    Y  d S )N) r   r:   )
socketAF_INETSOCK_STREAM
contextlibclosingbind
setsockopt
SOL_SOCKETSO_REUSEADDRgetsockname)sockr   r   r   find_free_port   s
    
rU   c                  C   s   ddl m}  |  jS )Nr   uuid4)uuidrW   hexrV   r   r   r   guid   s    rZ   c                 C   sd   t d}t| }|rT|D ]} | |urt| tjr q<qqTd }|   t| }qd  } } }d S )Nr   )sys	_getframegcZget_referrersr   types	FrameTypeclear)frameZ
this_framerefsr   r   r   !_break_traceback_cycle_from_frame   s    

rc   )T)r2   rM   r;   r]   rJ   r[   r^   r   r   r
   r   r'   r+   r1   r5   r>   rH   rU   rZ   rc   r   r   r   r   <module>   s*   
 
$