+
    nDj3$                         ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RItRt	R t
]3R ltRR ltR tR tR tR	 tR
 tR tR tR tR tR tR tR# )    NzApyarrow.{} is deprecated as of {}, please use pyarrow.{} instead.c                    a a V V3R lpV# )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           	         < . pS Fs  pVf   K	  \        VR4      '       d   VP                  VP                  4       K8  \        V\        4      '       g   VP
                  '       g   Kb  VP                  V4       Ku  	  V P
                  '       d0   VP                  \        P                  ! V P
                  4      4       V Uu. uF=  p\        V\        4      '       d#   \        S4      ^ 8  d   VP                  ! R/ SB MTNK?  	  ppRP                  V Uu. uFE  p\        V\        4      '       d   TM)\        P                  ! VP
                  ;'       g    R4      NKG  	  up4      V n        VV n        V # u upi u upi )N_docstring_components  )hasattrextendr   
isinstancestr__doc__appendtextwrapdedentlenformatjoin)	decorateddocstring_components	docstring	componentparams_applied
docstringsparamss   &    F/data/cameron/venvs/s3viz/lib/python3.14/site-packages/pyarrow/util.py	decoratordoc.<locals>.decorator:   sl   ! $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E6?E;E;r   )r   r   r   s   jl r   docr   $   s    ,%N     c                 H   aaa \         P                  WV4      oVVV3R  lpV# )c                  B   < \         P                  ! SS4       S! V / VB # 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   &&f&f @r   _deprecate_apir/   d   s!    


88
<C$ Nr   c                F   a aa  ! VVV 3R lR\         4      pV! S S3/ 4      # )zE
Raise warning if a deprecated class is used in an isinstance check.
c                   2   <a  ] tR t^rt o VVV3R ltRtV tR# ))_deprecate_class.<locals>._DeprecatedMetac                   < \         P                  ! \        P                  SSSP                  4      \
        ^R7       \        VS4      # )   
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____classdictcell__)__classdict__r;   r.   r,   s   @r   _DeprecatedMetar2   r   s     	0 	0r   rD   )r(   )r,   r;   r.   instancecheckrD   s   fff& r   _deprecate_classrF   m   s'    
0 0$ 0 8i\266r   c                 B     \        V 4       R #   \         d     R# i ; i)TF)iter	TypeError)objs   &r   _is_iterablerK   ~   s#    S	 s    c                 J    \        V \        4      ;'       g    \        V R 4      # )
__fspath__)r
   r   r   paths   &r   _is_path_likerP      s    dC ??GD,$??r   c                    \        V \        4      '       d    \        P                  P	                  V 4      #  \        P                  P	                  V P                  4       4      #   \         d     Mi ; i\        R4      h)z9
Convert *path* to a string or unicode path if possible.
znot a path-like object)r
   r   osrO   
expanduserrM   AttributeErrorrI   rN   s   &r   _stringify_pathrU      sg     $ww!!$''ww!!$//"344  ,
--s   ,A$ $A21A2c                4    \         P                  ! R V ^4      # )z%
Return a product of sequence items.
c                     W,          # r!   r   )abs   &&r   <lambda>product.<locals>.<lambda>   s    r   )	functoolsreduce)seqs   &r   productr_      s     ,c155r   c                j   V'       g   ^ pV\        V 4      ,          pW43# ^ pTp\        V 4       FW  w  rVV^ 8X  d   ^ ;r4 MJW,          pV^ 8  d   WGV^,
          ,          ,          pK8  V^ 8  g   KA  W7V^,
          ,          ,          pKY  	  WC,
          V\        V 4      ,          8w  d   \        R4      hW43# )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.
zarray data is non-contiguous)r_   	enumerate
ValueError)shapestridesitemsizestartendidimstrides   &&&     r   get_contiguous_spanrk      s      ' : &FAaxZFzq))!37++ ' ;(WU^33;<<:r   c                     \         P                   ! \         P                  \         P                  4      p \        P                  ! V 4      ;_uu_ 4       p V P                  R4       V P                  \         P                  \         P                  ^4       V P                  4       ^,          uuRRR4       #   + '       g   i     R# ; i)r   N)r   r   )
socketAF_INETSOCK_STREAM
contextlibclosingbind
setsockopt
SOL_SOCKETSO_REUSEADDRgetsockname)socks    r   find_free_portrx      sw    ==););<D			D	!	!T		'))6+>+>B!!$ 
"	!	!	!s   AB44C	c                  0    ^ RI Hp  V ! 4       P                  # )r   uuid4)uuidr{   hexrz   s    r   guidr~      s    7;;r   c                 2   \         P                  ! ^ 4      p\        P                  ! V 4      pV'       d^   V F,  p WJg   K
  \	        V \
        P                  4      '       g   K,   M	  M*RpV P                  4        \        P                  ! V 4      pKe  R;p;rR# )r   N)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I HpHp V! V RR/R7      pV! V4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pVP	                  VP                  4       4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   )urlopenRequestz
User-Agentpyarrow)headerswbN)urllib.requestr   r   openwriteread)urlout_pathr   r   reqresponsefs   &&     r   _download_urllibr      s_    /
#i8
9C	(D!!QGGHMMO$ " 
!! 
s"   A? A,	A?,A<7A??B	c           	         ^ RI pVP                  V 4      ;_uu_ 4       p\        VR4      ;_uu_ 4       pVP                  VP                  4       RRR4       RRR4       R#   + '       g   i     L; i  + '       g   i     R# ; i)r   Nr   )requestsgetr   r   content)r   r   r   r   r   s   &&   r   _download_requestsr      sW    	c		h(D!!QGGH$$% " 
	!! 
		s"   A4A!	A4!A1,A44B	c                    \         P                  ! R\        ^R7       \        P                  R8w  d   \        R\        P                   24      h^ RIp Rp\        P                  P                  R4      p\        P                  P                  VR4      pR	p\        P                  P                  VR
4      p\        P                  ! VRR7        ^ RIp\        pV! W4       V! WE4       \        P                  P!                  V4      '       g   Q h\        P                  P!                  V4      '       g   Q hV P#                  V4      P%                  V4       R#   \         d
    \        p Li ; i)a*  
Download and extract latest IANA timezone database into the
location expected by Arrow which is %USERPROFILE%\Downloads\tzdata.

.. deprecated:: 24.0.0
   This function is deprecated and will be removed in a future version.
   PyArrow now uses the operating system's timezone database on Windows.
zpyarrow.util.download_tzdata_on_windows is deprecated as of 24.0.0 and will be removed in a future version. PyArrow now uses the operating system's timezone database on most Windows builds.r5   win32z)Timezone database is already provided by 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)r"   r#   r8   r   platformrI   tarfilerR   rO   
expandvarsr   makedirsr   r   ImportErrorr   existsr   
extractall)r   
tzdata_urltzdata_pathtzdata_compressed_pathwindows_zones_urlwindows_zones_pathr   download_fns           r   download_tzdata_on_windowsr      s!    MM	G 	 ||wCCLL>RSSHJ''$$%FGKWW\\+Gxk3EFKKd+'( 
3!677>>0111177>>,----LL'(33K@  '&'s   
E E-,E-)T)rR   rp   r\   r   rm   r   r   r   r"   r+   r   r8   r/   rF   rK   rP   rU   r_   rk   rx   r~   r   r   r   r   r   r   r   <module>r      s~   ( 
   	  
    H 

=@ @M 7"@. 6!H%
%.%&+Ar   