Ë
    ž…js2  ã                  óZ  — d dl mZ d dlmZ d dlmZ d dlZd dlZd dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZmZ d dlmZ d dlmZ d dlmZmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$ er"d dl%m&Z&m'Z'm(Z( d dl)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1m2Z2  G d„ de«      Z3dd„Z4	 	 	 	 	 	 dd„Z5	 	 	 	 dd„Z6y)é    )Ú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                  óX   ‡ — e Zd ZU ded<   ded<   d	ˆ fd„Zd
d„Zd
d„Z	 d	 	 	 dd„Zˆ xZS )ÚCParserWrapperÚboolÚ
low_memoryzparsers.TextReaderÚ_readerc                ó   •— t         ‰	| �  |«       || _        |j                  «       }|j	                  dd«      | _        | j                  du|d<   | j                  |d<   | j                  j                  |d<   dD ]  }|j	                  |d «       Œ t        |j                  dd «      «      |d<   d|vs|d   t        j                  u rd	|d<   |d   d
k(  rt        d
«       t        j                   |fi |¤Ž| _        | j"                  j$                  | _        | j&                  d u }| j"                  j(                  €d | _        nE| j+                  | j"                  j(                  | j,                  |«      \  | _        | _        | _        }| j&                  €-t1        t3        | j"                  j4                  «      «      | _        | j&                  d d  | _        | j                  �rt9        | j                  | j6                  «      }| j6                  €J ‚| j:                  dk(  r@t=        |«      j?                  | j6                  «      s| jA                  || j6                  «       tC        | j&                  «      tC        |«      kD  r5tE        | j&                  «      D ��cg c]  \  }}||v s||v r|‘Œ c}}| _        tC        | j&                  «      tC        |«      k  r| jA                  || j&                  «       tG        | jH                  | j&                  «       | jK                  «        | j&                  | _        | j"                  jL                  dk(  r\tO        | j                  «      rG| jQ                  | j&                  | j                  «      \  }| _        | _        | j,                  €|| _        | j"                  j(                  €.|s,| j,                  €J ‚d gtC        | j,                  «      z  | _        | j"                  jL                  dkD  | _)        y c c}}w )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Úsrcr7   ÚkeyÚpassed_namesr*   ÚiÚnrD   Ú	__class__s
            €úc/root/aria/tools/markitdown-venv/lib/python3.12/site-packages/pandas/io/parsers/c_parser_wrapper.pyr6   zCParserWrapper.__init__A   sw  ø€ Ü‰Ñ˜ÔØˆŒ	Ø�y‰y‹{ˆàŸ(™( <°Ó7ˆŒð &*§^¡^¸5Ð%@ˆÐ!Ñ"ð Ÿ,™,ˆˆY‰ð  $×0Ñ0×6Ñ6ˆˆ^Ñð
ò 	 ˆCð �H‰H�S˜$Õð	 ô *¨$¯(©(°7¸DÓ*AÓBˆˆW‰Ø $Ñ&¨$¨Ñ*?Ä3Ç>Á>Ñ*QØ$+ˆD�Ñ!Ø�Ñ  IÒ-ä& yÔ1Ü×)Ñ)¨#Ñ6°Ñ6ˆŒà ŸL™L×5Ñ5ˆÔà—z‘z TÐ)ˆà�<‰<×ÑÐ&ØˆD�Jð ×3Ñ3Ø—‘×#Ñ#Ø× Ñ ØóñØ”
ØÔ Ø”Øð �:‰:ÐÜœe D§L¡L×$<Ñ$<Ó=Ó>ˆDŒJð Ÿ*™*¡Q˜-ˆŒà�<‹<Ü/°·±¸d¿o¹oÓNˆGð —?‘?Ð.Ð.Ð.Ø×!Ñ! XÒ-´c¸'³l×6KÑ6KØ—‘ô7ð ×,Ñ,¨W°d·o±oÔFä�4—:‘:‹¤ W£Ò-ô !*¨$¯*©*Ó 5÷á˜˜1Ø˜W™¨¨W©ò ó�”
ô �4—:‘:‹¤ W£Ò-Ø×,Ñ,ØØ—J‘Jôô
 	& d×&6Ñ&6¸¿
¹
ÔCØ×#Ñ#Ô%àŸ*™*ˆŒà�<‰<×$Ñ$¨Ò)¬l¸4¿>¹>Ô.Jð
 ×'Ñ'Ø—
‘
Ø—‘óñ	ØØ”
Ø”ð ×ÑÐ'Ø#.�Ô à�<‰<×ÑÐ&©|Ø×#Ñ#Ð/Ð/Ð/Ø $˜v¬¨D×,<Ñ,<Ó(=Ñ=ˆDÔà#Ÿ|™|×8Ñ8¸1Ñ<ˆÕùóEs   ÊP
c                óX   — 	 | j                   j                  «        y # t        $ r Y y w xY w©N)r'   ÚcloseÚ
ValueError)rU   s    r\   r_   zCParserWrapper.close°   s)   € ð	Ø�L‰L×ÑÕ øÜò 	Ùð	ús   ‚ �	)¨)c                ó:  — | j                   €J ‚t        | j                   «      D ��ci c]  \  }}||“Œ
 }}}| j                  D �cg c]  }||   ‘Œ	 }}| j                  || j                  «      }|D ]  }| j                  j                  |«       Œ yc c}}w c c}w )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)rI   rO   rA   Ú_set_noconvert_dtype_columnsr'   Úset_noconvert)rU   rY   ÚxÚ
names_dictÚcol_indicesÚnoconvert_columnsÚcols          r\   rQ   z%CParserWrapper._set_noconvert_columns·   sœ   € ð �‰Ð*Ð*Ð*ô (1°·±Ó'A×B™t˜q !�a˜‘dÐBˆ
ÑBØ.2¯j©jÖ9¨�z !“}Ð9ˆÐ9Ø ×=Ñ=ØØ�J‰Jó
Ðð %ò 	,ˆCØ�L‰L×&Ñ& sÕ+ñ	,ùó CùÚ9s   §BÁBc                ó 	  — 	 | j                   r2| j                  j                  |«      }t        || j                  «      }n| j                  j                  |«      }d| _        | j                  }| j                  j*                  �ríg }| j                  re| j                  j*                  t-        | j                  «      k7  r9t/        dt-        | j                  «      › d| j                  j*                  › d�«      ‚t1        | j                  j*                  «      D ]©  }| j                  €|j3                  |«      }n|j3                  | j                  |   «      }| j5                  |«      rIt7        || j8                  �| j8                  |   nd | j:                  | j<                  | j>                  ¬«      }|jA                  |«       Œ« tC        |«      }t!        | j"                  |«      }t        |t        || j                  «      «      }tE        |j'                  «       «      }tG        ||d¬«      D �	��
ci c]  \  }	\  }}
|	|
“Œ }}}	}
| jI                  ||«      }| j                  || j                  «      }nïtE        |j'                  «       «      }| j                  €J ‚tK        | j                  «      }t        |t        || j                  «      «      }t!        | j"                  |«      }|D �cg c]  }|d	   ‘Œ	 }}| j"                  €| jM                  ||«       tG        ||d¬«      D �	��
ci c]  \  }	\  }}
|	|
“Œ }}}	}
| jI                  ||«      }| jO                  ||«      \  }}|||fS # t        $ rû | j                  rÝd| _        | j                  €J ‚t        | j                  t        | j                  | j                  «      «      }| j                  || j                  ¬«      \  }}}| j                  || j                  «      }t!        | j"                  |«      }t%        |«      }|j'                  «       D �	�
ci c]  \  }	}
|	|v sŒ|	|
“Œ nc c}
}	w }}	}
|||fcY S | j)                  «        ‚ w xY wc c}
}}	w c c}w c c}
}}	w )
NF)r0   z,Could not construct index. Requested to use z number of columns, but z left to parse.)rh   ÚdayfirstÚcache_datesÚdate_formatT)Ústricté   )(r&   r'   Úread_low_memoryÚ_concatenate_chunksrA   ÚreadÚStopIterationÚ_first_chunkrI   r   r   r:   Ú_get_empty_metar0   Ú_maybe_make_multi_index_columnsrE   Ú_filter_usecolsr*   rK   Úitemsr_   rR   rN   r   rG   r9   Ú_should_parse_datesr   rD   rj   rk   rl   Úappendr   ÚsortedÚzipÚ_do_date_conversionsrF   Ú_check_data_lengthÚ_make_index)rU   ÚnrowsÚchunksÚdatarA   ÚindexÚcolumnsÚcol_dictÚcolumns_setÚkÚvÚarraysrY   ÚvaluesÚ	data_tupsÚ	date_dataÚcolumn_namesrd   Úalldatas                      r\   rq   zCParserWrapper.readË   s  € ð$	Ø�ŠØŸ™×5Ñ5°eÓ<�ä*¨6°4·:±:Ó>‘à—|‘|×(Ñ(¨Ó/�ðB "ˆÔà—
‘
ˆà�<‰<×$Ó$àˆFà�~Š~ $§,¡,×";Ñ";¼sÀ4Ç>Á>Ó?RÒ"RÜ!ØBÜ˜4Ÿ>™>Ó*Ð+Ð+CØ—|‘|×0Ñ0Ð1°ðBóð ô ˜4Ÿ<™<×4Ñ4Ó5ò &�Ø—>‘>Ð)Ø!ŸX™X a›[‘Fà!ŸX™X d§n¡n°QÑ&7Ó8�Fà×+Ñ+¨AÔ.Ü+Øð  $×/Ñ/Ð;ð !×,Ñ,¨QÒ/à!%à!%§¡Ø$(×$4Ñ$4Ø$(×$4Ñ$4ô
�Fð —‘˜fÕ%ð%&ô( 0°Ó7ˆEä# D§L¡L°%Ó8ˆEä Ô'?ÀÀtÇ~Á~Ó'VÓWˆEô ˜tŸz™z›|Ó,ˆIÜ*-¨e°YÀtÔ*L×MÐM™Y˜Q¡  A�A�q‘DÐMˆDÒMà×1Ñ1°%¸Ó>ˆIð  ×?Ñ?ÀÀtÇ~Á~ÓV‰Lô ˜tŸz™z›|Ó,ˆIð
 —?‘?Ð.Ð.Ð.Ü˜Ÿ™Ó)ˆEÜ Ô'?ÀÀtÇ~Á~Ó'VÓWˆEä# D§L¡L°%Ó8ˆEð &/Ö/ �q˜“tÐ/ˆGÐ/Ø�|‰|Ð#Ø×'Ñ'¨¨wÔ7ä*-¨e°YÀuÔ*M×NÐN™Y˜Q¡  A�A�q‘DÐNˆDÒNà×1Ñ1°%¸Ó>ˆIØ"&×"2Ñ"2°7¸EÓ"BÑˆE�<à�l IÐ-Ð-øôS ò 	Ø× Ò Ø$)�Ô!ð —‘Ð2Ð2Ð2Ü#Ø—O‘OÜ,¨T¯_©_¸d¿n¹nÓMó�ð ,0×+?Ñ+?ØØŸ*™*ð ,@ó ,Ñ(��w ð ×>Ñ>Ø˜TŸ^™^ó�ô *¨$¯,©,¸Ó@�Ü! '›l�à-5¯^©^Ó-=×R¡T Q¨ÀÀkÒAQ˜A˜q™DÑRùÓR�ÑRà˜g xÐ/Ò/ð —
‘
”Øð;	üôV Nùò* 0ùô Os7   ‚AM& È/Q-Ë(Q4Ì&Q9Í&CQ*Ð5QÑQÑQ*ÑQ*)rV   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__Ú__annotations__r6   r_   rQ   rq   Ú__classcell__)r[   s   @r\   r$   r$   =   s?   ø… ØÓØÓõm=ó^ó,ð, !ðz.àðz.ð
÷z.ó    r$   c                óª   — t        | |«      } | �>t        |«      t        | «      k7  r't        |«      D ��cg c]  \  }}|| v s|| v sŒ|‘Œ c}}S |S c c}}w r^   )r   rN   rO   )r*   rA   rY   Únames       r\   rv   rv   H  sU   € ä'¨°Ó7€GØÐœs 5›z¬S°«\Ò9Ü$-¨eÓ$4×X™˜˜D¸¸W¹ÈÐPWÊ’ÓXÐXØ€Lùó Ys   ´AÁAc           	     ó   — t        | d   j                  «       «      }g }i }|D ]å  }| D �cg c]  }|j                  |«      ‘Œ }}|D �ch c]  }|j                  ’Œ }	}|	D �
ch c]  }
t	        |
t
        «      rŒ|
’Œ }}
|	j                  «       }t	        |t
        «      rt        |d¬«      ||<   Œ‹t        |«      ||<   t        |«      dkD  sŒ¨||   j                  t        j                  t        «      k(  sŒÒ|j                  ||   «       Œç |rldj                  t        |«      D ��cg c]  \  }}|› d|› �‘Œ c}}«      }dj                  d|› d	�g«      }t        j                  |t         t#        «       ¬
«       |S c c}w c c}w c c}
w c c}}w )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_categoriesrn   z, z: ú z	Columns (zK) have mixed types. Specify dtype option on import or set low_memory=False.)Ú
stacklevel)rF   Úkeysr9   r0   Ú
isinstancer   r   r   rN   ÚnpÚobjectry   ÚjoinrO   ÚwarningsÚwarnr	   r
   )r€   rŒ   rA   Úwarning_columnsÚresultr—   ÚchunkÚarrsÚaÚdtypesrd   Únon_cat_dtypesr0   r‚   Úwarning_namesÚwarning_messages                   r\   rp   rp   P  sx  € ô �˜‘—‘Ó!Ó"€EØ€Oà€FØò ;ˆØ-3Ö4 E�—	‘	˜$•Ð4ˆÐ4à#'Ö(˜a�!—'“'Ð(ˆÐ(Ø%+ÖS ´:¸aÔAQÕ3Rš!ÐSˆÐSà—
‘
“ˆÜ�eÔ-Ô.Ü-¨dÀEÔJˆF�4ŠLä(¨Ó.ˆF�4‰LÜ�>Ó" QÓ&¨6°$©<×+=Ñ+=ÄÇÁÌ&ÓAQÓ+QØ×&Ñ& |°DÑ'9Õ:ð;ñ ØŸ	™	Ü3<¸_Ó3M×N¡K E¨4�ˆw�b˜˜ÒÓNó
ˆð Ÿ(™(à˜M˜?ð +Jð Kðó
ˆô 	�‰�o¤|Ô@PÓ@RÕSØ€Mùò1 5ùâ(ùÚSùó Os   ªE;ÁF Á!FÁ7FÄ&F

c                óD  ‡— t        | t        «      rOt        | j                  «       «      Št        ˆfd„«      }| j	                  «       D ]  }t        | |   «      ||<   Œ |S t        | t
        «      r| D �ci c]  }|t        | |   «      “Œ c}S | �t        | «      S | S c c}w )zc
    Ensure we have either None, a dtype object, or a dictionary mapping to
    dtype objects.
    c                 ó   •— ‰ S r^   © )Údefault_dtypes   €r\   ú<lambda>z#ensure_dtype_objs.<locals>.<lambda>ƒ  s   ø€ ¸=€ r•   )r�   r   r   Údefault_factoryrœ   Údict)r0   Údtype_convertedrW   r†   r¯   s       @r\   r<   r<   y  sŸ   ø€ ô �%œÔ%ä$ U×%:Ñ%:Ó%<Ó=ˆÜ'2Ó3HÓ'IˆØ—:‘:“<ò 	<ˆCÜ#/°°c±
Ó#;ˆO˜CÒ ð	<àÐÜ	�Eœ4Ô	 Ø38Ö9¨a�”<  a¡Ó)Ñ)Ò9Ð9Ø	Ð	Ü˜EÓ"Ð"Ø€Lùò :s   Á5B)rA   r    rŽ   zSequenceT | list[Hashable])r€   zlist[dict[int, ArrayLike]]rŒ   z	list[str]rŽ   r²   )r0   z*DtypeArg | dict[Hashable, DtypeArg] | NonerŽ   z*DtypeObj | dict[Hashable, DtypeObj] | None)7Ú
__future__r   Úcollectionsr   Útypingr   r¡   r2   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$   rv   rp   r<   r®   r•   r\   ú<module>rÄ      s¨   ðÝ "å #Ý  Û ã ÷õ ?Ý &Ý 4å 2÷õ 7å ?÷÷÷ ñ ÷ñ ÷÷ ÷ôH.�Zô H.óVð&Ø&ð&Ø6?ð&à	ó&ðRØ5ðà/ôr•   