Ë
    ìmxiÀ!  ã                   ó¬   — 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 dlZdZ	d„ Z
efd„Z	 dd„Zd„ Zd„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zy)é    NzApyarrow.{} is deprecated as of {}, please use pyarrow.{} instead.c                  ó   ‡ ‡— ˆ ˆfd„}|S )a¶  
    A decorator that takes docstring templates, concatenates them, and finally
    performs string substitution on them.
    This decorator will add a variable "_docstring_components" to the wrapped
    callable to keep track of the original docstring template for potential future use.
    If the docstring is a template, it will be saved as a string.
    Otherwise, it will be saved as a callable and the docstring will be obtained via
    the __doc__ attribute.
    This decorator cannot be used on Cython classes due to a CPython constraint,
    which enforces the __doc__ attribute to be read-only.
    See https://github.com/python/cpython/issues/91309

    Parameters
    ----------
    *docstrings : None, str, or callable
        The string / docstring / docstring template to be prepended in order
        before the default docstring under the callable.
    **params
        The key/value pairs used to format the docstring template.
    c           	      óŽ  •— g }‰D ][  }|€Œt        |d«      r|j                  |j                  «       Œ.t        |t        «      s|j
                  sŒK|j                  |«       Œ] | j
                  r.|j                  t        j                  | j
                  «      «       |D �cg c]4  }t        |t        «      r t        ‰«      dkD  r |j                  di ‰¤Žn|‘Œ6 }}dj                  |D �cg c]7  }t        |t        «      r|n"t        j                  |j
                  xs d«      ‘Œ9 c}«      | _        || _        | S c c}w c c}w )NÚ_docstring_componentsr   Ú © )ÚhasattrÚextendr   Ú
isinstanceÚstrÚ__doc__ÚappendÚtextwrapÚdedentÚlenÚformatÚjoin)Ú	decoratedÚdocstring_componentsÚ	docstringÚ	componentÚparams_appliedÚ
docstringsÚparamss        €€úC/home/htdocs/ttos/venv/lib/python3.12/site-packages/pyarrow/util.pyÚ	decoratorzdoc.<locals>.decorator:   sR  ø€ Ø!Ðð $ò 	7ˆIØÐ ØÜ�yÐ"9Ô:Ø$×+Ñ+Ø×3Ñ3õô ˜I¤sÔ+¨y×/@Ó/@Ø$×+Ñ+¨IÕ6ð	7ð ×ÒØ ×'Ñ'¬¯©¸	×8IÑ8IÓ(JÔKð 2ö	
ð ô ˜)¤SÔ)¬c°&«k¸Aªoð ˆI×ÑÑ&˜vÒ&àñð
ˆð 
ð ŸG™Gð
 "0ö	ð ô ˜i¬Ô-ñ ä—_‘_ Y×%6Ñ%6Ò%<¸"Ó=ñ>òó
ˆ	Ôð !ð 	Ô'ð Ðùò'
ùòs   Â"9D=Ã,<Er   )r   r   r   s   `` r   Údocr   $   s   ù€ õ,%ðN Ðó    c                 óH   ‡‡‡— t         j                  | ||«      Šˆˆˆfd„}|S )Nc                  ó@   •— t        j                  ‰‰«        ‰| i |¤ŽS ©N)ÚwarningsÚwarn)ÚargsÚkwargsÚapiÚmsgÚtypes     €€€r   Úwrapperz_deprecate_api.<locals>.wrapperg   s!   ø€ Ü�‰�c˜4Ô Ù�DÐ#˜FÑ#Ð#r   )Ú	_DEPR_MSGr   )Úold_nameÚnew_namer%   Únext_versionr'   r(   r&   s     ` ` @r   Ú_deprecate_apir-   d   s#   ú€ Ü
×
Ñ
˜8 \°8Ó
<€Cö$ð €Nr   c                 óD   ‡ ‡‡—  G ˆˆˆ fd„dt         «      } |‰ ‰fi «      S )zM
    Raise warning if a deprecated class is used in an isinstance check.
    c                   ó   •— e Zd Zˆ ˆˆfd„Zy)ú)_deprecate_class.<locals>._DeprecatedMetac                 ó’   •— t        j                  t        j                  ‰‰‰j                  «      t
        d¬«       t        |‰«      S )Né   )Ú
stacklevel)r!   r"   r)   r   Ú__name__ÚFutureWarningr
   )ÚselfÚotherÚ	new_classr,   r*   s     €€€r   Ú__instancecheck__z;_deprecate_class.<locals>._DeprecatedMeta.__instancecheck__s   s<   ø€ Ü�M‰MÜ× Ñ  ¨<¸×9KÑ9KÓLÜØõô
 ˜e YÓ/Ð/r   N)r4   Ú
__module__Ú__qualname__r9   )r8   r,   r*   s   €€€r   Ú_DeprecatedMetar0   r   s   ø„ ÷	0r   r<   )r'   )r*   r8   r,   Úinstancecheckr<   s   ```  r   Ú_deprecate_classr>   m   s'   ú€ ÷
0ð 0œ$ô 0ñ ˜8 i \°2Ó6Ð6r   c                 ó:   — 	 t        | «       y# t        $ r Y yw xY w)NTF)ÚiterÚ	TypeError)Úobjs    r   Ú_is_iterablerC   ~   s#   € ðÜˆSŒ	ØøÜò Ùðús   ‚ Ž	™c                 ó>   — t        | t        «      xs t        | d«      S )NÚ
__fspath__)r
   r   r   ©Úpaths    r   Ú_is_path_likerH   †   s   € Ü�dœCÓ Ò?¤G¨D°,Ó$?Ð?r   c                 óî   — t        | t        «      rt        j                  j	                  | «      S 	 t        j                  j	                  | j                  «       «      S # t        $ r Y t        d«      ‚w xY w)zA
    Convert *path* to a string or unicode path if possible.
    znot a path-like object)r
   r   ÚosrG   Ú
expanduserrE   ÚAttributeErrorrA   rF   s    r   Ú_stringify_pathrM   Š   sb   € ô �$œÔÜ�w‰w×!Ñ! $Ó'Ð'ðÜ�w‰w×!Ñ! $§/¡/Ó"3Ó4Ð4øÜò Øä
Ð,Ó
-Ð-ðús   ±,A Á	A4Á3A4c                 ó2   — t        j                  d„ | d«      S )z-
    Return a product of sequence items.
    c                 ó   — | |z  S r    r   )ÚaÚbs     r   ú<lambda>zproduct.<locals>.<lambda>ž   s
   € ¨¨1©€ r   é   )Ú	functoolsÚreduce)Úseqs    r   ÚproductrW   š   s   € ô ×ÑÑ,¨c°1Ó5Ð5r   c                 ó  — |sd}|t        | «      z  }||fS d}|}t        | «      D ]7  \  }}|dk(  rdx}} n)||   }|dkD  r|||dz
  z  z  }Œ'|dk  sŒ-|||dz
  z  z  }Œ9 ||z
  |t        | «      z  k7  rt        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   rS   zarray data is non-contiguous)rW   Ú	enumerateÚ
ValueError)ÚshapeÚstridesÚitemsizeÚstartÚendÚiÚdimÚstrides           r   Úget_contiguous_spanrc   ¡   sÇ   € ñ  ØˆØœ ›Ñ'ˆð �#ˆ:Ðð ˆØˆÜ Ó&ò 	,‰FˆAˆsØ�aŠxØ��˜ÙØ˜Q‘ZˆFØ˜ŠzØ�v  q¡Ñ)Ñ)‘Ø˜!“Ø˜ 3¨¡7Ñ+Ñ+‘ð	,ð �‰;˜(¤W¨U£^Ñ3Ò3ÜÐ;Ó<Ð<Ø�#ˆ:Ðr   c                  ób  — t        j                   t         j                  t         j                  «      } t        j                  | «      5 } | j                  d«       | j                  t         j                  t         j                  d«       | j                  «       d   cd d d «       S # 1 sw Y   y xY w)N)r   r   rS   )
ÚsocketÚAF_INETÚSOCK_STREAMÚ
contextlibÚclosingÚbindÚ
setsockoptÚ
SOL_SOCKETÚSO_REUSEADDRÚgetsockname)Úsocks    r   Úfind_free_portrp   Å   sz   € Ü�=‰=œŸ™¬×);Ñ);Ó<€DÜ	×	Ñ	˜DÓ	!ð % TØ�	‰	�'ÔØ�‰œ×)Ñ)¬6×+>Ñ+>ÀÔBØ×ÑÓ! !Ñ$÷%÷ %ò %ús   ÁAB%Â%B.c                  ó0   — ddl m}   | «       j                  S )Nr   ©Úuuid4)Úuuidrs   Úhexrr   s    r   Úguidrv   Í   s   € ÝÙ‹7�;‰;Ðr   c                 ó  — t        j                  d«      }t        j                  | «      }|rS|D ]#  } | |usŒt	        | t
        j                  «      sŒ# n n*d }| j                  «        t        j                  | «      }|rŒSd x}x} }y )Nr   )ÚsysÚ	_getframeÚgcÚget_referrersr
   ÚtypesÚ	FrameTypeÚclear)ÚframeÚ
this_frameÚrefss      r   Ú!_break_traceback_cycle_from_framer‚   Ò   s‰   € ô —‘˜qÓ!€JÜ×Ñ˜EÓ"€DÙ
Øò 	ˆEØ˜JÒ&¬:°e¼U¿_¹_Õ+MÙð	ð
 Øˆð 	�‰Œô ×Ñ Ó&ˆò ð !%Ð$€DÐ$ˆ5‘:r   c                 óÊ   — ddl m}  || «      5 }t        |d«      5 }|j                  |j	                  «       «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   )ÚurlopenÚwb)Úurllib.requestr„   ÚopenÚwriteÚread)ÚurlÚout_pathr„   ÚresponseÚfs        r   Ú_download_urllibrŽ   é   s[   € Ý&Ù	�‹ð %˜Ü�(˜DÓ!ð 	% QØ�G‰G�H—M‘M“OÔ$÷	%÷%ð %÷	%ð 	%ú÷%ð %ús!   �Aœ A¼AÁA	ÁAÁA"c                 óÐ   — dd l }|j                  | «      5 }t        |d«      5 }|j                  |j                  «       d d d «       d d d «       y # 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   r…   )ÚrequestsÚgetr‡   rˆ   Úcontent)rŠ   r‹   r�   rŒ   r�   s        r   Ú_download_requestsr“   ð   s`   € ÛØ	�‰�cÓ	ð &˜hÜ�(˜DÓ!ð 	& QØ�G‰G�H×$Ñ$Ô%÷	&÷&ð &÷	&ð 	&ú÷&ð &ús!   –A£A¿AÁA	ÁAÁA%c                  ó¢  — t         j                  dk7  rt        dt         j                  › �«      ‚ddl} d}t        j
                  j                  d«      }t        j
                  j                  |d«      }d}t        j
                  j                  |d	«      }t	        j                  |d
¬«       	 t        ||«       t        ||«       t        j
                  j                  |«      sJ ‚t        j
                  j                  |«      sJ ‚| j                  |«      j                  |«       y# t        $ r t        ||«       t        ||«       Y Œ†w xY w)z�
    Download and extract latest IANA timezone database into the
    location expected by Arrow which is %USERPROFILE%\Downloads\tzdata.
    Úwin32z)Timezone database is already provided by r   Nz5https://data.iana.org/time-zones/tzdata-latest.tar.gzz%USERPROFILE%\Downloads\tzdataztzdata.tar.gzz^https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/windowsZones.xmlzwindowsZones.xmlT)Úexist_ok)rx   ÚplatformrA   ÚtarfilerJ   rG   Ú
expandvarsr   Úmakedirsr“   ÚImportErrorrŽ   Úexistsr‡   Ú
extractall)r˜   Ú
tzdata_urlÚtzdata_pathÚtzdata_compressed_pathÚwindows_zones_urlÚwindows_zones_paths         r   Údownload_tzdata_on_windowsr£   ÷   s  € ô
 ‡|�|�wÒÜÐCÄCÇLÁLÀ>ÐRÓSÐSãàH€JÜ—'‘'×$Ñ$Ð%FÓG€KÜŸW™WŸ\™\¨+°ÓGÐØxÐÜŸ™Ÿ™ kÐ3EÓFÐÜ‡K�K� dÕ+ð@Ü˜:Ð'=Ô>ÜÐ,Ð.@ÔAô
 �7‰7�>‰>Ð0Ô1Ð1Ð1Ü�7‰7�>‰>Ð,Ô-Ð-Ð-à‡L�LÐ'Ó(×3Ñ3°KÕ@øô ò @Ü˜Ð%;Ô<ÜÐ*Ð,>Ö?ð@ús   Â/D* Ä*!EÅE)T)rJ   rh   rT   rz   re   rx   r   r|   r!   r)   r   r5   r-   r>   rC   rH   rM   rW   rc   rp   rv   r‚   rŽ   r“   r£   r   r   r   ú<module>r¤      sƒ   ðó( 
Û Û Û 	Û Û 
Û Û Û ð Hð 
ò
=ð@ @Mó ð $(ó7ò"ò@ò.ò 6ò!òH%òò
%ò.%ò&óAr   