
    A>is2                    j   S SK Jr  S SKJr  S SKJr  S SKrS SKrS SK	J
r
Jr  S SKJr  S SKJr  S SKJr  S S	KJr  S S
KJrJr  S SKJr  S SKJr  S SKJrJr  S SKJrJ r J!r!J"r"J#r#J$r$  \(       a"  S SK%J&r&J'r'J(r(  S SK)J*r*J+r+J,r,J-r-J.r.J/r/  S SK0J1r1J2r2   " S S\5      r3SS jr4      SS jr5    SS jr6g)    )annotations)defaultdict)TYPE_CHECKINGN)libparsers)import_optional_dependency)DtypeWarning)find_stack_level)pandas_dtype)concat_compatunion_categoricals)CategoricalDtype)ensure_index_from_sequences)dedup_namesis_potential_multi_index)
ParserBaseParserErrordate_converterevaluate_callable_usecolsis_index_colvalidate_parse_dates_presence)HashableMappingSequence)AnyArrayLike	ArrayLikeDtypeArgDtypeObjReadCsvBuffer	SequenceT)Index
MultiIndexc                  l   ^  \ rS rSr% S\S'   S\S'   SU 4S jjrSS jrSS jr S   SS	 jjrS
r	U =r
$ )CParserWrapper=   bool
low_memoryzparsers.TextReader_readerc                p  > [         T	U ]  U5        X l        UR                  5       nUR	                  SS5      U l        U R                  SLUS'   U R                  US'   U R                  R                  US'   S H  nUR	                  US 5        M     [        UR                  SS 5      5      US'   SU;  d  US   [        R                  L a  S	US'   US   S
:X  a  [        S
5        [        R                   " U40 UD6U l        U R"                  R$                  U l        U R&                  S L nU R"                  R(                  c  S U l        OEU R+                  U R"                  R(                  U R,                  U5      u  U l        U l        U l        nU R&                  c-  [1        [3        U R"                  R4                  5      5      U l        U R&                  S S  U l        U R                  (       Ga  [9        U R                  U R6                  5      nU R6                  c   eU R:                  S:X  aD  [=        U5      R?                  U R6                  5      (       d  U RA                  XPR6                  5        [C        U R&                  5      [C        U5      :  a;  [E        U R&                  5       VVs/ s H  u  pgXe;   d  Xu;   d  M  UPM     snnU l        [C        U R&                  5      [C        U5      :  a  U RA                  UU R&                  5        [G        U RH                  U R&                  5        U RK                  5         U R&                  U l        U R"                  RL                  S:X  aa  [O        U R                  5      (       aG  U RQ                  U R&                  U R                  5      u  nU l        U l        U R,                  c  Xl        U R"                  R(                  c4  U(       d-  U R,                  c   eS /[C        U R,                  5      -  U l        U R"                  RL                  S:  U l)        g s  snnf )Nr'   Fallow_leading_colsusecolson_bad_lines)storage_optionsencoding
memory_mapcompressiondtypedtype_backendnumpypyarrowstringr   )*super__init__kwdscopypopr'   	index_colr+   r,   valueensure_dtype_objsgetr   
no_defaultr   r   
TextReaderr(   unnamed_colsnamesheader_extract_multi_indexer_columnsindex_names	col_nameslistrangetable_width
orig_namesr   usecols_dtypesetissubset_validate_usecols_nameslen	enumerater   parse_dates_set_noconvert_columnsleading_colsr   _clean_index_names_implicit_index)
selfsrcr8   keypassed_namesr+   inrE   	__class__s
            a/var/www/html/land-tabula/venv/lib/python3.13/site-packages/pandas/io/parsers/c_parser_wrapper.pyr7   CParserWrapper.__init__A   su   	yy{((<7 &*^^5%@!" ,,Y  $0066^
C HHS$
 *$((7D*ABW$&$*?3>>*Q$+D! I-&y1))#66 LL55zzT)<<&DJ 33##  
  ::eDLL$<$<=>DJ **Q-<<</dooNG ??...!!X-c'l6K6K7 7 ,,WooF4::W- !*$** 5 5  5
 4::W-,,JJ
 	&d&6&6

C##%**<<$$)l4>>.J.J
 ''

	
 '#. <<&|##/// $vD,<,<(==D#||881<Es   +P2?P2c                Z     U R                   R                  5         g ! [         a     g f = fN)r(   close
ValueError)rV   s    r]   ra   CParserWrapper.close   s)    	LL  		s    
**c                F   U R                   c   e[        U R                   5       VVs0 s H  u  pX!_M	     nnnU R                   Vs/ s H  o#U   PM	     nnU R                  UU R                  5      nU H  nU R                  R                  U5        M      gs  snnf s  snf )z
Set the columns that should not undergo dtype conversions.

Currently, any column that is involved with date parsing will not
undergo such conversions.
N)rJ   rP   rB   _set_noconvert_dtype_columnsr(   set_noconvert)rV   rZ   x
names_dictcol_indicesnoconvert_columnscols          r]   rR   %CParserWrapper._set_noconvert_columns   s     *** (1'AB'Atqad'A
B.2jj9j!}j9 ==JJ
 %CLL&&s+ % C9s   BBc           	     (	    U R                   (       a1  U R                  R                  U5      n[        X R                  5      nOU R                  R                  U5      n SU l        U R                  nU R                  R*                  (       Ga  / nU R                  (       af  U R                  R*                  [-        U R                  5      :w  a9  [/        S[-        U R                  5       SU R                  R*                   S35      e[1        U R                  R*                  5       H  nU R                  c  UR3                  U5      nOUR3                  U R                  U   5      nU R5                  U5      (       aG  [7        UU R8                  b  U R8                  U   OS U R:                  U R<                  U R>                  S9nURA                  U5        M     [C        U5      n[!        U R"                  U5      n[        U[        X@R                  5      5      n[E        UR'                  5       5      n[G        XNSS9 V	VV
s0 s H
  u  n	u  pX_M     nnn	n
U RI                  XC5      nU R                  X@R                  5      nO[E        UR'                  5       5      nU R                  c   e[K        U R                  5      n[        U[        X@R                  5      5      n[!        U R"                  U5      nU Vs/ s H  nUS	   PM
     nnU R"                  c  U RM                  UU5        [G        XNSS9 V	VV
s0 s H
  u  n	u  pX_M     nnn	n
U RI                  XC5      nU RO                  UU5      u  nnUUU4$ ! [         a    U R                  (       a  SU l        U R                  c   e[        U R                  [        U R                  U R                  5      5      nU R                  UU R                  S9u  pVnU R                  X`R                  5      n[!        U R"                  U5      n[%        U5      nUR'                  5        V	V
s0 s H  u  pX;   d  M  X_M     Os  sn
n	f nn	n
XVU4s $ U R)                  5         e f = fs  sn
nn	f s  snf s  sn
nn	f )
NF)r1   z,Could not construct index. Requested to use z number of columns, but z left to parse.)rk   dayfirstcache_datesdate_formatT)strict   )(r'   r(   read_low_memory_concatenate_chunksrB   readStopIteration_first_chunkrJ   r   r   r;   _get_empty_metar1   _maybe_make_multi_index_columnsrF   _filter_usecolsr+   rL   itemsra   rS   rO   r   rH   r:   _should_parse_datesr   rE   rn   ro   rp   appendr   sortedzip_do_date_conversionsrG   _check_data_length_make_index)rV   nrowschunksdatarB   indexcolumnscol_dictcolumns_setkvarraysrZ   values	data_tups	date_datacolumn_namesrg   alldatas                      r]   ru   CParserWrapper.read   s   $	55e<*6::>||((/B "

<<$$$F~~$,,";";s4>>?R"R!B4>>*++C||001B  4<<445>>)!XXa[F!XXdnnQ&78F++A..+  $//; !,,Q/!%!%$($4$4$($4$4
F f%% 6( 07E#DLL%8E'?~~'VWE tzz|,I*-et*LM*LYQAD*LDM11%>I  ??~~VL tzz|,I
 ??...)E'?~~'VWE#DLL%8E &//YqtYG/||#''w7*-eu*MN*MYQAD*MDN11%>I"&"2"27E"BE<lI--S  	  $)! 222#OO,T__dnnM ,0+?+?** ,@ ,( >>^^ *$,,@!'l-5^^-=R-=TQAQDAD-=RRx// 

;	V N* 0 Os=   AM6 M6  R8R6R6CQ>QQQ>,Q>)rw   rU   r(   rF   r;   rE   r8   r'   rB   rJ   rA   )rW   zReadCsvBuffer[str]returnNone)r   r   r`   )r   z
int | Noner   zbtuple[Index | MultiIndex | None, Sequence[Hashable] | MultiIndex, Mapping[Hashable, AnyArrayLike]])__name__
__module____qualname____firstlineno____annotations__r7   ra   rR   ru   __static_attributes____classcell__)r\   s   @r]   r$   r$   =   sE    m=^,, !z.z.
z. z.    r$   c                    [        X5      n U bD  [        U5      [        U 5      :w  a,  [        U5       VVs/ s H  u  p#X ;   d  X0;   d  M  UPM     snn$ U$ s  snnf r`   )r   rO   rP   )r+   rB   rZ   names       r]   rz   rz   H  sR    '7Gs5zS\9$-e$4X$4$4XXL Ys   A	Ac           	     P   [        U S   R                  5       5      n/ n0 nU H  nU  Vs/ s H  ofR                  U5      PM     nnU Vs1 s H  oR                  iM     n	nU	 V
s1 s H  n
[	        U
[
        5      (       a  M  U
iM     nn
U	R                  5       n[	        U[
        5      (       a  [        USS9XE'   M  [        U5      XE'   [        U5      S:  d  M  XE   R                  [        R                  " [        5      :X  d  M  UR                  X   5        M     U(       al  SR                  [        U5       VVs/ s H  u  pU SU 3PM     snn5      nSR                  SU S	3/5      n[        R                  " U[         [#        5       S
9  U$ s  snf s  snf s  sn
f s  snnf )z
Concatenate chunks of data read with low_memory=True.

The tricky part is handling Categoricals, where different chunks
may have different inferred categories.
r   F)sort_categoriesrr   z, z:  z	Columns (zK) have mixed types. Specify dtype option on import or set low_memory=False.)
stacklevel)rG   keysr:   r1   
isinstancer   r   r   rO   npobjectr}   joinrP   warningswarnr	   r
   )r   r   rB   warning_columnsresultr   chunkarrsadtypesrg   non_cat_dtypesr1   r   warning_nameswarning_messages                   r]   rt   rt   P  sq    !"EOF-34VE		$V4#'(4a''4(%+SV:aAQ3R!VS

e-..-dEJFL(.FL>"Q&6<+=+=&AQ+Q&&|'9:  		3<_3MN3MKEwb3MN
 ((M? +J K
 	o|@P@RSM1 5(S Os   F
F%FF>F"
c                ^  ^ [        U [        5      (       aP  [        U R                  5       5      m[        U4S j5      nU R	                  5        H  n[        X   5      X'   M     U$ [        U [
        5      (       a  U  Vs0 s H  o3[        X   5      _M     sn$ U b  [        U 5      $ U $ s  snf )zW
Ensure we have either None, a dtype object, or a dictionary mapping to
dtype objects.
c                    > T $ r`    )default_dtypes   r]   <lambda>#ensure_dtype_objs.<locals>.<lambda>  s    =r   )r   r   r   default_factoryr   dict)r1   dtype_convertedrX   r   r   s       @r]   r=   r=   y  s     %%%$U%:%:%<='23H'I::<C#/
#;O   	E4	 	 3895a<))599		E""L :s    B*)rB   r    r   zSequenceT | list[Hashable])r   zlist[dict[int, ArrayLike]]r   z	list[str]r   r   )r1   z*DtypeArg | dict[Hashable, DtypeArg] | Noner   z*DtypeObj | dict[Hashable, DtypeObj] | None)7
__future__r   collectionsr   typingr   r   r3   r   pandas._libsr   r   pandas.compat._optionalr   pandas.errorsr	   pandas.util._exceptionsr
   pandas.core.dtypes.commonr   pandas.core.dtypes.concatr   r   pandas.core.dtypes.dtypesr   pandas.core.indexes.apir   pandas.io.commonr   r   pandas.io.parsers.base_parserr   r   r   r   r   r   collections.abcr   r   r   pandas._typingr   r   r   r   r   r    pandasr!   r"   r$   rz   rt   r=   r   r   r]   <module>r      s    " #     ? & 4 2 7 ?    H.Z H.V&&&6?&	&R5/r   