� c��j�B � �H � d Z ddlZddlZddlmZmZmZmZmZm Z m Z mZmZm Z mZmZmZmZmZm Z ddlmZ ddlmZ g d�Z G d� d� Z G d � d e� Z ed e� G d� de� Z ed e� G d� de� Z ede� G d� d� Z G d� d� Z G d� d� Zy)z+ csv.py - read/write/investigate CSV files � N)�Error�__version__�writer�reader�register_dialect�unregister_dialect�get_dialect� list_dialects�field_size_limit� QUOTE_MINIMAL� QUOTE_ALL�QUOTE_NONNUMERIC� QUOTE_NONE� QUOTE_STRINGS� QUOTE_NOTNULL�__doc__)�Dialect)�StringIO)r r r r r r r r r �excel� excel_tabr r r r r r �Snifferr r � DictReader� DictWriter�unix_dialectc �@ � e Zd ZdZdZdZdZdZdZdZ dZ dZdZd� Z d� Zy)r z�Describe a CSV dialect. This must be subclassed (see csv.excel). Valid attributes are: delimiter, quotechar, escapechar, doublequote, skipinitialspace, lineterminator, quoting. � FNc �X � | j t k7 rd| _ | j � y )NT)� __class__r �_valid� _validate��selfs �/usr/lib64/python3.12/csv.py�__init__zDialect.__init__- s � ��>�>�W�$��D�K����� c �f � t | � y # t $ r}t t |� � �d }~ww xY w�N)�_Dialect� TypeErrorr �str)r" �es r# r zDialect._validate2 s, � � ��T�N��� ���A��-��� �s � � 0�+�0)�__name__� __module__�__qualname__r �_namer � delimiter� quotechar� escapechar�doublequote�skipinitialspace�lineterminator�quotingr$ r � r% r# r r sA � �� �E� �F��I��I��J��K����N��G�� r% r c �( � e Zd ZdZdZdZdZdZdZe Z y)r z;Describe the usual properties of Excel-generated CSV files.�,�"TF� N)r, r- r. r r0 r1 r3 r4 r5 r r6 r7 r% r# r r 9 s$ � �E��I��I��K����N��Gr% r c � � e Zd ZdZdZy)r zEDescribe the usual properties of Excel-generated TAB-delimited files.� N)r, r- r. r r0 r7 r% r# r r C s � �O��Ir% r z excel-tabc �( � e Zd ZdZdZdZdZdZdZe Z y)r z:Describe the usual properties of Unix-generated CSV files.r9 r: TF� N)r, r- r. r r0 r1 r3 r4 r5 r r6 r7 r% r# r r H s$ � �D��I��I��K����N��Gr% r �unixc �| � e Zd Z dd�Zd� Zed� � Zej d� � Zd� Z e e j � Zy)r Nc � � |�t |� |u rt |� }|| _ || _ || _ t ||g|��i |��| _ || _ d| _ y �Nr )�iter�list�_fieldnames�restkey�restvalr �dialect�line_num)r" �f� fieldnamesrG rH rI �args�kwdss r# r$ zDictReader.__init__T sZ � ��!�d�:�&6�*�&D��j�)�J�%����������Q��7�$�7�$�7�������� r% c � � | S r' r7 r! s r# �__iter__zDictReader.__iter___ s � ��r% c � � | j � t | j � | _ | j j | _ | j S # t $ r Y �2w xY wr' )rF �nextr � StopIterationrJ r! s r# rL zDictReader.fieldnamesb sW � ����#� �#'����#4�� � ���,�,�� ������ !� �� �s �A � A�Ac � � || _ y r' )rF )r" �values r# rL zDictReader.fieldnamesl s � � ��r% c �� � | j dk( r| j t | j � }| j j | _ |g k( rt | j � }|g k( r�t t | j |� � }t | j � }t |� }||k r||d || j <