� !A?h�> � � � d Z ddlZddlmZmZmZmZmZmZm Z m Z mZmZm Z mZmZm 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 e n # e$ r eZY nw xY w G d� d� � ZdS )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�__doc__)�Dialect)�StringIO)r r r r r r r �excel� excel_tabr r r r r r �Snifferr r � DictReader� DictWriter�unix_dialectc �B � e Zd ZdZdZdZdZdZdZdZ dZ dZdZd� Z d� ZdS )r z�Describe a CSV dialect. This must be subclassed (see csv.excel). Valid attributes are: delimiter, quotechar, escapechar, doublequote, skipinitialspace, lineterminator, quoting. � FNc �\ � | j t k rd| _ | � � � d S )NT)� __class__r �_valid� _validate��selfs �0/opt/alt/python-internal/lib64/python3.11/csv.py�__init__zDialect.__init__* s, � ��>�W�$�$��D�K��������� c � � t | � � d S # t $ r!}t t |� � � � �d }~ww xY w�N)�_Dialect� TypeErrorr �str)r �es r! r zDialect._validate/ sG � � ��T�N�N�N�N�N��� � � ���A���-�-������ ���s � � >�9�>)�__name__� __module__�__qualname__r �_namer � delimiter� quotechar� escapechar�doublequote�skipinitialspace�lineterminator�quotingr" r � r# r! r r sl � � � � � �� � �E� �F��I��I��J��K����N��G�� � � � � � � r# r c �* � e Zd ZdZdZdZdZdZdZe Z dS )r z;Describe the usual properties of Excel-generated CSV files.�,�"TF� N)r* r+ r, r r. r/ r1 r2 r3 r r4 r5 r# r! r r 6 s3 � � � � � �E�E��I��I��K����N��G�G�Gr# r c � � e Zd ZdZdZdS )r zEDescribe the usual properties of Excel-generated TAB-delimited files.� N)r* r+ r, r r. r5 r# r! r r @ s � � � � � �O�O��I�I�Ir# r z excel-tabc �* � e Zd ZdZdZdZdZdZdZe Z dS )r z:Describe the usual properties of Unix-generated CSV files.r7 r8 TF� N)r* r+ r, r r. r/ r1 r2 r3 r r4 r5 r# r! r r E s3 � � � � � �D�D��I��I��K����N��G�G�Gr# r �unixc �\ � e Zd Z dd�Zd� Zed� � � Zej d� � � Zd� ZdS ) r Nr c �x � || _ || _ || _ t ||g|�R i |��| _ || _ d| _ d S �Nr )�_fieldnames�restkey�restvalr �dialect�line_num)r �f� fieldnamesrC rD rE �args�kwdss r! r" zDictReader.__init__Q sK � �%����������Q��7�$�7�7�7�$�7�7�������� � � r# c � � | S r% r5 r s r! �__iter__zDictReader.__iter__Z s � ��r# c � � | j �+ t | j � � | _ n# t $ r Y nw xY w| j j | _ | j S r% )rB �nextr � StopIterationrF r s r! rH zDictReader.fieldnames] sZ � ���#� �#'���#4�#4�� � �� � � � ��� ������,�� ���s �# � 0�0c � � || _ d S r% )rB )r �values r! rH zDictReader.fieldnamesg s � � ����r# c � � | j dk r| j t | j � � }| j j | _ |g k rt | j � � }|g k �t t | j |� � � � }t | j � � }t |� � }||k r||d � || j <