
    Lg"                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrSr	S r
\4S jr SS jrS rS rS rS	 rS
 rS rS rS rS rg)    NzApyarrow.{} is deprecated as of {}, please use pyarrow.{} instead.c                     ^ ^ U U4S jnU$ )an  
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           	        > / nT Ho  nUc  M  [        US5      (       a  UR                  UR                  5        M6  [        U[        5      (       d  UR
                  (       d  M^  UR                  U5        Mq     U R
                  (       a/  UR                  [        R                  " U R
                  5      5        U Vs/ s H;  n[        U[        5      (       a!  [        T5      S:  a  UR                  " S0 TD6OUPM=     nnSR                  U Vs/ s HC  n[        U[        5      (       a  UO([        R                  " UR
                  =(       d    S5      PME     sn5      U l        UU l        U $ s  snf s  snf )N_docstring_componentsr     )hasattrextendr   
isinstancestr__doc__appendtextwrapdedentlenformatjoin)	decorateddocstring_components	docstring	componentparams_applied
docstringsparamss        ,lib/python3.12/site-packages/pyarrow/util.py	decoratordoc.<locals>.decorator:   sf   ! $I y"9::$++33 Is++y/@/@/@$++I6 $  ''	8I8I(JK 2	
 2	 )S))c&kAo &v& 2	 	 
 GG
 "0	 "0I i-- __Y%6%6%<"=> "0	
	 ! 	' '
s   =AE/A
E4r   )r   r   r   s   `` r   docr   $   s    ,%N     c                 H   ^^^ [         R                  XU5      mUUU4S jnU$ )Nc                  B   > [         R                  " TT5        T" U 0 UD6$ N)warningswarn)argskwargsapimsgtypes     r   wrapper_deprecate_api.<locals>.wrapperg   s!    c4 D#F##r   )	_DEPR_MSGr   )old_namenew_namer&   next_versionr(   r)   r'   s     ` ` @r   _deprecate_apir/   d   s!    


88
<C$ Nr   c                 F   ^ ^^  " UUU 4S jS[         5      nU" T T40 5      $ )zE
Raise warning if a deprecated class is used in an isinstance check.
c                   &   > \ rS rSrU UU4S jrSrg))_deprecate_class.<locals>._DeprecatedMetar   c                    > [         R                  " [        R                  TTTR                  5      [
        SS9  [        UT5      $ )N   )
stacklevel)r"   r#   r+   r   __name__FutureWarningr
   )selfother	new_classr.   r,   s     r   __instancecheck__;_deprecate_class.<locals>._DeprecatedMeta.__instancecheck__s   s<    MM  <9K9KL
 eY//r   r   N)r7   
__module____qualname____firstlineno__r<   __static_attributes__)r;   r.   r,   s   r   _DeprecatedMetar2   r   s    	0 	0r   rB   )r(   )r,   r;   r.   instancecheckrB   s   ```  r   _deprecate_classrD   m   s'    
0 0$ 0 8i\266r   c                 <     [        U 5        g! [         a     gf = f)NTF)iter	TypeError)objs    r   _is_iterablerI   ~   s#    S	 s    
c                 H    [        U [        5      =(       d    [        U S5      $ )N
__fspath__)r
   r   r   paths    r   _is_path_likerN      s    dC ?GD,$??r   c                     [        U [        5      (       a  [        R                  R	                  U 5      $  [        R                  R	                  U R                  5       5      $ ! [         a     Of = f[        S5      e)z9
Convert *path* to a string or unicode path if possible.
znot a path-like object)r
   r   osrM   
expanduserrK   AttributeErrorrG   rL   s    r   _stringify_pathrS      sg     $ww!!$''ww!!$//"344  ,
--s   ,A# #
A0/A0c                 4    [         R                  " S U S5      $ )z%
Return a product of sequence items.
c                 
    X-  $ r!   r   )abs     r   <lambda>product.<locals>.<lambda>   s    r      )	functoolsreduce)seqs    r   productr^      s     ,c155r   c                    U(       d  SnU[        U 5      -  nX44$ SnUn[        U 5       H8  u  pVUS:X  a  S=p4  O,X   nUS:  a  XGUS-
  -  -  nM&  US:  d  M.  X7US-
  -  -  nM:     XC-
  U[        U 5      -  :w  a  [        S5      eX44$ )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   rZ   zarray data is non-contiguous)r^   	enumerate
ValueError)shapestridesitemsizestartendidimstrides           r   get_contiguous_spanrj      s      ' : &FAaxZFzq))!37++ ' ;(WU^33;<<:r   c                  p   [         R                   " [         R                  [         R                  5      n [        R                  " U 5       n U R                  S5        U R                  [         R                  [         R                  S5        U R                  5       S   sS S S 5        $ ! , (       d  f       g = f)N)r   r   rZ   )
socketAF_INETSOCK_STREAM
contextlibclosingbind
setsockopt
SOL_SOCKETSO_REUSEADDRgetsockname)socks    r   find_free_portrw      sq    ==););<D			D	!T		'))6+>+>B!!$ 
"	!	!s   
AB''
B5c                  0    SSK Jn   U " 5       R                  $ )Nr   uuid4)uuidrz   hexry   s    r   guidr}      s    7;;r   c                 8   [         R                  " S5      n[        R                  " U 5      nU(       ab  U H*  n XLd  M	  [	        U [
        R                  5      (       d  M*    O   O1S nU R                  5         [        R                  " U 5      nU(       a  Mb  S =n=pg )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&:eU__+M+M 
  	 & $ !%$D$5:r   c                     [         R                  S:w  a  [        S[         R                   35      eSSKn [        R
                  R                  S5      n[        R
                  R                  US5      n[        R                  " USS9  SS	K	J
n  U" S
5       n[        US5       nUR                  UR                  5       5        SSS5        SSS5        [        R
                  R                  U5      (       d   eU R                  U5      R                  U5        U" S5       n[        [        R
                  R                  US5      S5       nUR                  UR                  5       5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N9= f! , (       d  f       g= f)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   Nz%USERPROFILE%\Downloads\tzdataztzdata.tar.gzT)exist_ok)urlopenz5https://data.iana.org/time-zones/tzdata-latest.tar.gzwbz^https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/windowsZones.xmlzwindowsZones.xml)r   platformrG   tarfilerP   rM   
expandvarsr   makedirsurllib.requestr   openwritereadexists
extractall)r   tzdata_pathtzdata_compressedr   responsefresponse_zoness          r   download_tzdata_on_windowsr      sE   
 ||wCCLL>RSS''$$%FGK[/BKKd+&	H	IX#T*aGGHMMO$ + 
J 77>>+,,,,LL"#..{;	q	r  wE"'',,{,>?F!GGN'')* G 
s	r +* 
J	I GF 
s	rsH   F$ E>F"+F1 F -F1>
F	F
F 
F.	*F11
F?)T)rP   ro   r[   r   rl   r   r   r   r"   r+   r   r8   r/   rD   rI   rN   rS   r^   rj   rw   r}   r   r   r   r   r   <module>r      sx   ( 
   	  
    H 

=@ @M  $(7"@. 6!H%
%.+r   