HEX
Server: Apache/2.4.46 (Win64) OpenSSL/1.1.1j PHP/8.4.25
System: Windows NT DESKTOP-4TAV2RJ 10.0 build 19045 (Windows 10) AMD64
User: fred (0)
PHP: 8.4.25
Disabled: NONE
Upload Files
File: C:/Users/fred/anaconda3/Library/share/arrow/gdb/__pycache__/gdb_arrow.cpython-312.pyc
�

�y<f8��2�ddlmZddlmZddlZddlZddlZddlmZm	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZej&ddk\sJd��gd�Zej*d	ed�
�Zej*dgd�d�
�Ziej0d
�ej2d�ej4d�ej6d�ej8d�ej:d�ej<d�ej>d�ej@d�ejBd�ejDd�ejFd�ejHd�ejJd�ejLd�ejNd�ejPd�ejRdejTdejVdi�Z,edd�Z-ej\e-dd�ej^e-dd�ej`e-dd�ejbe-d d!�iZ2d"�Z3d#�Z4e�d$��Z5�d�d%�Z6d&�Z7d'�Z8e9d(�d)e9d*�d+e9d,�d-e9d.�d/e9d0�d1iZ:e;dd2�D]Z<e<e:vs�d3e<d4��e:e<<�d5�Z=�d�d6�Z>�d�d7�Z?d8�Z@d9�ZAd:�ZBd;�ZCd<�ZDd=�ZEd>�ZFd?�ZGej�d@dd�j��ZJdA�ZKdB�ZLdC�ZMdD�ZNdE�ZOdF�ZPGdG�dH�ZQGdI�dJ�ZRGdK�dL�ZSGdM�dN�ZTGdO�dP�ZUGdQ�dRe�ZVGdS�dTeV�ZWGdU�dVeV�ZXGdW�dX�ZYGdY�dZeY�ZZGd[�d\�Z[Gd]�d^�Z\Gd_�d`e[�Z]Gda�dbe�Z^Gdc�dde�Z_Gde�dfe�Z`Gdg�dhe�ZaGdi�dje_�Zbedkdl�ZcGdm�dne�ZdGdo�dpe�Zeedqdr�Zfefdsdt�efdudv�dw�ZgGdx�dy�ZhGdz�d{eh�ZiGd|�d}eh�Zjeiejdw�Zkekj��D��cic]\}}d~|�d	�|��c}}ZmGd�d��ZnGd��d��ZoGd��d��ZpGd��d��Zqid�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��id�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d��d�d“d�dēd�dƓd�dȓd�dʓ�d�d�d�dΜ�ZrGdτdЫZsGdфd�es�ZtGdӄd�es�ZuGdՄd�eu�ZvGdׄd�es�ZwGdلd�es�ZxGdۄd�es�ZyGd݄d�ey�ZzGd߄d�ey�Z{Gd�d�es�Z|Gd�d�es�Z}Gd�d�es�Z~Gd�d�es�ZGd�d�Z�Gd�d�e��Z�Gd�d�e��Z�Gd�d�e��Z�Gd�d�e��Z�Gd�d�e��Z�Gd��d�e��Z�Gd��d�e��Z�Gd��d�e��Z�Gd��d�e��Z�Gd��d�e��Z�Gd���de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d	��d
e��Z�G�d��de��Z�G�d
��d�Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��de��Z�G�d��d e��Z�G�d!��d"e��Z�G�d#��d$e��Z�G�d%��d&e��Z�G�d'��d(�Z�G�d)��d*�Z�G�d+��d,�Z�G�d-��d.e��Z�G�d/��d0e��Z�G�d1��d2e��Z�G�d3��d4e��Z�G�d5��d6e��Z�G�d7��d8e��Z�G�d9��d:e��Z�G�d;��d<e��Z�G�d=��d>e��Z�G�d?��d@e��Z�G�dA��dBe��Z�G�dC��dDe��Z�G�dE��dFe��Z�G�dG��dHe��Z�G�dI��dJe��Z�G�dK��dLe��Z�G�dM��dNe��Z�G�dO��dPe��Z�G�dQ��dRe��Z�G�dS��dTe��Z�G�dU��dVe��Z�G�dW��dXe��Z�e�dY�dZ�Z�ie�jre�e�d���e�jte�e�d���ej8e�e�d���ej0e�e�d���ej:e�e�d���ej2e�e�d���ej<e�e�d���ej4e�e�d���ej>e�e�d���ej6e�e�d���ej@e�e�d���ejBe�e�d���ejDe�e�d���e�jve�e�d���e�jxe�e�d���e�jze�e�d���e�j|e�e�d���ie�j~e�e�d���ejFe�e�d���ejHe�e�d���ejVe�e�d���ejJe�e�d���ejLe�e�d���ejTe�e�d���ejPe�e�d���ejNe�e�d���ejRe�e�d���e�j�e�e�d���e�j�e�e�d���e�j�e�e�d���e�j�e�e�dë�e�j�e�e�dū�e�j�e�e�dǫ�e�j�e�e�dɫ��e�j�e�e��d[�e�j�e�e��d\�e�j�e�e��d]�e�j�e�e�d��i�Z�e�e˫dz
Z͐d^�Z�G�d_��d`�Z�G�da��dbeϫZ�G�dc��dd�Z�G�de��df�Z�G�dg��dh�Z�G�di��dj�Z�G�dk��dleԫZ�G�dm��dneԫZ�G�do��dp�Z�G�dq��dr�Z�G�ds��dt�Z�G�du��dv�Z�G�dw��dx�Z�i�dye���dze	e�ds���d{e	e�du���d|e���d}eד�d~eٓ�de	e�ds���d�e	e�du���d�eړ�d�eѓ�d�eғ�d�eՓ�d�eГ�d�eӓ�d�eՓ�d�e֓�d�eϓ�d�e�i�Zܐd��Zݐd��Z�eߐd�k(reޫyycc}}w(��)�
namedtuple)�SequenceN)�	lru_cache�partial)�get_basic_type�z#Arrow GDB extension needs Python 3+)&�NA�BOOL�UINT8�INT8�UINT16�INT16�UINT32�INT32�UINT64�INT64�
HALF_FLOAT�FLOAT�DOUBLE�STRING�BINARY�FIXED_SIZE_BINARY�DATE32�DATE64�	TIMESTAMP�TIME32�TIME64�INTERVAL_MONTHS�INTERVAL_DAY_TIME�
DECIMAL128�
DECIMAL256�LIST�STRUCT�SPARSE_UNION�DENSE_UNION�
DICTIONARY�MAP�	EXTENSION�FIXED_SIZE_LIST�DURATION�LARGE_STRING�LARGE_BINARY�
LARGE_LIST�INTERVAL_MONTH_DAY_NANO�Type)�start�TimeUnit)�SECOND�MILLI�MICRO�NANO�b�h�i�q�B�H�I�Q�e�f�d�ii�iiq�TimeUnitTraits)�
multiplier�fractional_digits�i�i@B�iʚ;�	c��|S�N�)�vs �$Library\share\arrow\gdb\gdb_arrow.py�identityrN[s���H�c�d�|tjtjtjfvSrJ)r/r	r$r%)�type_ids rM�has_null_bitmaprR_s$���4�7�7�D�$5�$5�t�7G�7G�H�H�HrOc��tjdd��j�}d|vryd|vrytjd|�d��t
jS)zA
    Get the target program (not the GDB host's) endianness.
    zshow endianT)�	to_string�big�littlez>Could not determine target endianness from GDB's response:
"""z""")�gdb�execute�strip�warnings�warn�sys�	byteorder)�ss rM�
byte_orderr_csZ��
	���M�T�2�8�8�:�A���z��	�Q����M�M�/�/0�c��6�7��=�=�rOc� �|�t|j�}t|�}d|vr|jd�sd|��}|jt
jk(r	d|�d|�d�S|j�td|����d|�d|j�d�S)zS
    Return a parsable form of gdb.Value `val`, optionally with gdb.Type `ty`.
    z::z((z) (z))z Cannot further evaluate rvalue: z(* (z*) ()	r�type�str�
startswith�coderW�
TYPE_CODE_PTR�address�
ValueError)�val�ty�typenames   rM�for_evaluationrkss���
�z�
�C�H�H�
%���2�w�H��x��� 3� 3�D� 9���z�?��	�w�w�#�#�#�#��H�:�S���R�(�(�
�{�{���;�C�5�A�B�B�
�(��4����}�B�/�/rOc���t|�}|jtjk(xrCt|j	��jtj
tjfvSrJ)rrdrWre�target�TYPE_CODE_CHAR�
TYPE_CODE_INT)ris rM�is_char_starrp�sU��	��	�B��G�G�s�(�(�(�
;��2�9�9�;�'�,�,��&�&��(9�(9�:�
;�<rOc�z�t|j�}|jtjk(r|j�S|jjd�rFd|jvrt|�jSd|jvrt|�jStd|j�d���)z-
    Dereference a raw or smart pointer.
    zstd::�shared�uniquez"Cannot dereference value of type '�')rrardrWre�dereference�namerc�	SharedPtr�value�	UniquePtr�	TypeError�rhris  rM�derefr|�s���
����	!�B�	�w�w�#�#�#�#���� � �	�w�w���'�"��r�w�w���S�>�'�'�'��r�w�w���S�>�'�'�'�
�8����	��C�
D�DrO�\z\\�
z\n�
z\r�	z\t�"z\"� z\x�02xc���d}t|tj�r|j�}t	|�|kDr |d|}d|jt�zdzSd|jt�zdzS)zG
    Format a Python string or gdb.Value for display as a literal.
    �2Nr�z
" [continued])�
isinstancerW�Value�string�len�	translate�_string_literal_mapping)r^�max_lens  rM�string_literalr��sm���G��!�S�Y�Y��
�H�H�J��
�1�v���
�h�w�K���Q�[�[�!8�9�9�O�K�K��Q�[�[�!8�9�9�C�?�?rOc�B�|j|��j�S)ze
    Format a gdb.Value for display as a literal containing possibly
    unprintable characters.
    ��length)�lazy_stringrx)rh�sizes  rM�
bytes_literalr��s��
�?�?�$�?�'�-�-�/�/rOc��|�|jdd��}t|�S|dk7r|jdd|��}t|�Sd}t|�S)z<
    Format a gdb.Value for display as a utf-8 literal.
    �utf8�backslashreplace)�encoding�errorsr)r�r�r��)r�r�)rhr�r^s   rM�utf8_literalr��sf���|��J�J��/A�J�B��
�!���	
����J�J��/A�$�J�O���!���
���!��rOc��tj�j|jd�}t	j
d|�dS)zb
    Return a Python float of the given half-float (represented as a uint64_t
    gdb.Value).
    �r>r)rW�selected_inferior�read_memoryrf�struct�unpack)rh�bufs  rM�half_float_valuer��s9��
�
�
�
!�
-�
-�c�k�k�1�
=�C��=�=��c�"�1�%�%rOc��|jjd�}|jj|j	��j�S)z(
    Load a std::atomic<T>'s value.
    r)ra�template_argumentrf�reinterpret_cast�pointerru)rh�valtys  rM�load_atomicr��s<��
�H�H�&�&�q�)�E��;�;�'�'��
�
��8�D�D�F�FrOc�|�t|j�jtjk7rt|�}|S)zR
    Load a null count from a gdb.Value of an integer (either atomic or not).
    )rrardrWror��rhs rM�load_null_countr��s0���c�h�h��$�$��(9�(9�9��#����JrOc�b�t|t�stt|��}dk7rd|��SdS)z$
    Format a null count value.
    ���znull count zunknown null count)r��intr�)rh�
null_counts  rM�format_null_countr��s;���c�3�����-�.�
�*4��*:�k�*��&�'�%�'rOc�"�gd�t|�S)N)r^�ms�us�ns�r�r�s rM�short_time_unitr��s��"�3�s�8�,�,rOc��t|��d�S)z'
    Format a MonthInterval value.
    �Mr�r�s rM�format_month_intervalr��s���#�h�Z�q�>�rOc��|�d|�d�S)Nr@r�rK)�days�millisecondss  rM�format_days_millisecondsr�s���V�1�\�N�"�%�%rOc��|�d|�d|�d�S)Nr�r@r�rK)�monthsr��nanoss   rM�format_months_days_nanosr�s���X�Q�t�f�A�e�W�B�'�'rOi�c��t|�}	tjj|tz�}|�d|�d�S#t
$r|�d�cYSwxYw)z 
    Format a date32 value.
    zd [�]z
d [year <= 0])r��datetime�date�fromordinal�
_date_baserg)rh�decodeds  rM�
format_date32r�s^���c�(�C�%��-�-�+�+�C�*�,<�=����c�'��!�$�$���%���m�$�$�%�s�&;�A�Ac���t|�}t|d�\}}|r|�d�S	tjj	|t
z�}|�d|�d�S#t$r|�d�cYSwxYw)z 
    Format a date64 value.
    i\&zms [non-multiple of 86400000]zms [r�zms [year <= 0])r��divmodr�r�r�r�rg)rhr��	remainderr�s    rM�
format_date64r�s���c�(�C��S�,�/�O�D�)����3�4�4�&��-�-�+�+�D�:�,=�>����d�7�)�1�%�%���&���n�%�%�&�s�&A�A"�!A"c��t|�}t|�}t|�}t|}t||j�\}}	t
j
j
|�}|j�jdd�}|jdkDr|d|d|j�d���z
}	|�|�d|�d	�S#tttf$rd}Y�"wxYw)
z#
    Format a timestamp value.
    �T� r�.�0r@ztoo large to represent� [r�)
r�r��time_unit_traitsr�rDr��utcfromtimestamp�	isoformat�replacerErg�OSError�
OverflowError)rh�unit�
short_unit�traits�seconds�
subseconds�dt�prettys        rM�format_timestampr�(s����c�(�C��t�9�D� ��&�J�
�d�
#�F� ��f�&7�&7�8��G�Z�D�
�
�
�
/�
/��
8��
����'�'��S�1���#�#�a�'���*�Q�v�'?�'?�&@��$A�B�C�C�F��U�:�,�b����*�*��
���/�*�)��*�s�B5�5C�
Cc�x�|j�j|j��j�SrJ)�reference_valuer��	reference�referenced_valuer{s  rM�cast_to_concreter�=s-�����!�2�2�2�<�<�>�B�
�
�
�!rOc�8�|jd�sJ�|dddzS)zs
    Given a DataTypeClass class name (such as "BooleanType"), return the
    corresponding Scalar class name.
    r/N����Scalar��endswith�rvs rM�scalar_class_from_typer�Bs'��
�=�=�� � � ����9�x��rOc�8�|jd�sJ�|dddzS)zr
    Given a DataTypeClass class name (such as "BooleanType"), return the
    corresponding Array class name.
    r/Nr��Arrayr�r�s rM�array_class_from_typer�Ks'��
�=�=�� � � ����9�w��rOc�D�eZdZdZd�Zd�Zed��Zd�Zd�Z	d�Z
d�Zy	)
�CStringz+
    A `const char*` or similar value.
    c��||_yrJr���selfrhs  rM�__init__zCString.__init__Y�	����rOc�T�tt�dk7xrttd�dk7S�Nr)r��data�r�s rM�__bool__zCString.__bool__\s"���4�y�A�~�3�#�d�1�g�,�!�"3�3rOc��|jSrJr�r�s rMr�zCString.data_s���x�x�rOc�R�|jj�j�SrJ)rhr�rxr�s rMr�zCString.bytes_literalcs���x�x�#�#�%�+�+�-�-rOc�,�t|j�SrJ)r�rhr�s rMr�zCString.string_literalfs���d�h�h�'�'rOc�6�|jj�SrJ)rhr�r�s rMr�zCString.stringjs���x�x��� � rOc�4�t|j��SrJ�rbr��r��fmts  rM�
__format__zCString.__format__m����4�%�%�'�(�(rON)�__name__�
__module__�__qualname__�__doc__r�r��propertyr�r�r�r�rrKrOrMr�r�Ts9����4�����.�(�!�)rOr�c�,�eZdZdZd�Zd�Zed��Zy)rwz'
    A `std::shared_ptr<T>` value.
    c��||_	|d|_y#tj$r)tjt|��d��|_YywxYw)N�_M_ptrz.get())rh�_ptrrW�error�parse_and_evalrkr�s  rMr�zSharedPtr.__init__{sN�����	K��H�
�D�I���y�y�	K��*�*�n�S�.A�-B�&�+I�J�D�I�	K�s�
�9A�Ac��|jS�z7
        Return the underlying pointer (a T*).
        �rr�s rM�getz
SharedPtr.get�����y�y�rOc�6�|jj�S�z-
        The underlying value (a T).
        �rrur�s rMrxzSharedPtr.value����
�y�y�$�$�&�&rON�rrr	r
r�rrrxrKrOrMrwrwvs&���K���'��'rOrwc�,�eZdZdZd�Zd�Zed��Zy)ryz'
    A `std::unique_ptr<T>` value.
    c���||_|jjjd�}|jjj	|j�j��|_yr�)rhrar�rfr�r�r)r�rhris   rMr�zUniquePtr.__init__�sN�����
�X�X�]�]�
,�
,�Q�
/���H�H�$�$�5�5�b�j�j�l�6J�6J�6L�M��	rOc��|jSrrr�s rMrz
UniquePtr.get�rrOc�6�|jj�Srrr�s rMrxzUniquePtr.value�rrONrrKrOrMryry�s&���N���'��'rOryc�&�eZdZdZd�Zed��Zy)�Variantz 
    A `std::variant<...>`.
    c�<�||_	|d|_	|jjj|j�|_y#tj$r)tjt|��d��|_Y�qwxYw#t$r
d|_YywxYw)N�_M_indexz.index())
rh�indexrWrrrkrar��
value_type�RuntimeErrorr�s  rMr�zVariant.__init__�s������	N��Z��D�J�	#�"�h�h�m�m�=�=�d�j�j�I�D�O��	�y�y�	N��+�+�~�c�/B�.C�8�,L�M�D�J�	N��
�	#�"�D�O�	#�s"�
A	�4B�	9B�B�B�Bc��|j�y|jj}|�7|j|jj	��j�SyrJ)r%rhrfr�r�ru)r��ptrs  rMrxz
Variant.value�sO���?�?�"���h�h�����?��'�'����(?�(?�(A�*�*5�+�-�
8�rON)rrr	r
r�rrxrKrOrMr!r!�s ���#����rOr!c�T�eZdZdZd�Zd�Zed��Zed��Zd�Z	d�Z
d�Zd	�Zy
)�	StdStringzA
    A `std::string` (or possibly `std::string_view`) value.
    c��||_	|dd|_|d|_y#tj$rOtj
t
|��d��|_tj
t
|��d��|_YywxYw)N�_M_dataplus�_M_p�_M_string_lengthz.c_str()�.size())rh�_data�_sizerWrrrkr�s  rMr�zStdString.__init__�s������	M��]�+�F�3�D�J��/�0�D�J���y�y�	M��+�+�~�c�/B�.C�8�,L�M�D�J��+�+�~�c�/B�.C�7�,K�L�D�J�	M�s�!�AB�Bc� �|jdk7Sr��r1r�s rMr�zStdString.__bool__�s���z�z�Q��rOc��|jSrJ)r0r�s rMr�zStdString.data�����z�z�rOc��|jSrJr3r�s rMr�zStdString.size�r5rOc�j�|jj|j��j�S)Nr�)r0r�r1rxr�s rMr�zStdString.bytes_literal�s'���z�z�%�%�T�Z�Z�%�8�>�>�@�@rOc�,�t|j�SrJ)r�r0r�s rMr�zStdString.string_literal�s���d�j�j�)�)rOc�6�|jj�SrJ)r0r�r�s rMr�zStdString.string�s���z�z� � �"�"rOc�4�t|j��SrJrrs  rMrzStdString.__format__�rrON)
rrr	r
r�r�rr�r�r�r�r�rrKrOrMr*r*�sO���	M����������A�*�#�)rOr*c�D�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	e
d��Zy	)
�	StdVectorz#
    A `std::vector<T>` value.
    c��||_	|jd}|d|_t|d|jz
�|_y#tj
$rutt	jt|j��d���|_tt	jt|j��d���|_YywxYw)N�_M_impl�_M_start�	_M_finishz.data()r/)rhr0r�r1rWrrrk�r�rh�impls   rMr�zStdVector.__init__�s������
	7��8�8�I�&�D��j�)�D�J��T�+�.����;�<�D�J���y�y�	7��S�/�/�!�$�(�(�+�,�G�4�6�7�D�J��S�/�/�!�$�(�(�+�,�G�4�6�7�D�J�		7�s�9A�BC�
Cc�j�|dks||jk\rtd|�d|jdz
�d���y)NrzIndex z! out of bounds (should be in [0, rFz]))r1�
IndexError�r�r$s  rM�_check_indexzStdVector._check_indexsE���1�9�����+�����@����a��@P�PR�S�U�
U�,rOc��|jSrJr3r�s rM�__len__zStdVector.__len__s���z�z�rOc�B�|j|�|j|SrJ)rFr0rEs  rM�__getitem__zStdVector.__getitem__s�����%� ��z�z�%� � rOc��|j|�tj|jt	|j
|���S)z�
        Run `eval_format` with the value at `index`.

        For example, if `eval_format` is "{}.get()", this will evaluate
        "{self[index]}.get()".
        )rFrWr�formatrkr0)r�r$�eval_formats   rM�eval_atzStdVector.eval_atsC��	
���%� ��!�!����~�d�j�j��.?�@�A�C�	CrOc	#��K�t|j�}t|j�D].}t	j
|j
|�d|�d������0y�w)N�[r�)rkr0�ranger1rWrrL)r�rM�	data_evalr8s    rM�	iter_evalzStdVector.iter_evalsZ����"�4�:�:�.�	��t�z�z�"�	9�A��$�$��"�"�i�[��!��A�#6�7�9�
9�	9�s�AAc��|jSrJr3r�s rMr�zStdVector.size#r5rON)rrr	r
r�rFrHrJrNrSrr�rKrOrMr<r<�s;���7�U�
�!�	C�9����rOr<c���eZdZ�fd�Z�xZS)�StdPtrVectorc�4��tt�|�	|��SrJ)r|�superrJ�r�r$�	__class__s  �rMrJzStdPtrVector.__getitem__*s����U�W�(��/�0�0rO)rrr	rJ�
__classcell__�rZs@rMrVrV(s
���1�1rOrVc�$��eZdZ�fd�Zd�Z�xZS)�FieldVectorc�F��ttt�|�
|���S)z=
        Dereference the Field object at this index.
        )�Fieldr|rXrJrYs  �rMrJzFieldVector.__getitem__0s����U�5�7�.�u�5�6�7�7rOc��tt|��D�cgc]}t||���}}ddj|�zdzScc}w)N�{�, �})rQr�rb�join)r�r8�ls   rM�__str__zFieldVector.__str__6sC��#(��T��#3�4�a�S��a��\�4��4��T�Y�Y�q�\�!�C�'�'��
5s�A)rrr	rJrgr[r\s@rMr^r^.s
���8�(rOr^c�L�eZdZdZd�Zed��Zed��Zed��Zd�Z	y)r`z
    A arrow::Field value.
    c��||_yrJr�r�s  rMr�zField.__init__@r�rOc�2�t|jd�S)N�name_)r*rhr�s rMrvz
Field.nameCs������'�*�+�+rOc�2�t|jd�S)N�type_�r|rhr�s rMraz
Field.typeGs���T�X�X�g�&�'�'rOc�2�t|jd�S)N�	nullable_)�boolrhr�s rM�nullablezField.nullableKs���D�H�H�[�)�*�*rOc�,�t|j�SrJ)rbrhr�s rMrgz
Field.__str__Os���4�8�8�}�rON)
rrr	r
r�rrvrarrrgrKrOrMr`r`;sM�����,��,��(��(��+��+�rOr`c�"��eZdZdZ�fd�Z�xZS)�FieldPtrz0
    A std::shared_ptr<arrow::Field> value.
    c�6��t�|�t|��yrJ)rXr�r|)r�rhrZs  �rMr�zFieldPtr.__init__Xs���
����s��$rO)rrr	r
r�r[r\s@rMruruSs����%�%rOruc�8�eZdZdZd�Zed��Zd�Zdd�ZeZ	y)�Bufferz 
    A arrow::Buffer value.
    c�8�||_t|d�|_y)N�size_)rhr�r�r�s  rMr�zBuffer.__init__as�������G��%��	rOc� �|jdS)N�data_r�r�s rMr�zBuffer.dataes���x�x�� � rOc��|jdkDr7|jdj|j��j�Sy)Nrr|r��"")r�rhr�rxr�s rMr�zBuffer.bytes_literalis:���9�9�q�=��8�8�G�$�0�0��	�	�0�B�H�H�J�J�rONc���|jdkDrM|�|j}tj�j|jd|z|j�}ntd�}|j
d�S)z>
        Return a view over the bytes of this buffer.
        rr|rOr:)r�rWr�r�rh�
memoryview�cast)r��offsetr��mems    rM�
bytes_viewzBuffer.bytes_viewosh���9�9�q�=��~������'�'�)�5�5�����!�F�*�D�I�I�7�C��S�/�C��x�x��}�rO�rN)
rrr	r
r�rr�r�r��viewrKrOrMrxrx\s1���&��!��!��
��DrOrxc�<�eZdZdZd�Zed��Zed��Zd�Zy)�	BufferPtrz1
    A arrow::Buffer* value (possibly null).
    c��||_t|j�}|dk7rt|j��|_yd|_yr�)rhr�rxrur�)r�rhr(s   rMr�zBufferPtr.__init__�s5������$�(�(�m��03�q��6�#�/�/�+�,���d��rOc�H�|j�y|jjSrJ)r�r�r�s rMr�zBufferPtr.data�����8�8����x�x�}�}�rOc�H�|j�y|jjSrJ)r�r�r�s rMr�zBufferPtr.size�r�rOc�P�|j�y|jj�SrJ)r�r�r�s rMr�zBufferPtr.bytes_literal�s"���8�8����x�x�%�%�'�'rON)	rrr	r
r�rr�r�r�rKrOrMr�r��s:���C�
����
����
(rOr�c�X��eZdZdZe�Z�fd�Zed��Zdd�Z	e
d��Z�xZS)�TypedBufferzE
    A buffer containing values of a given a struct format code.
    c���t�|�|�||_|js(t	j
d|jz�|_yy�N�=)rXr��
mem_format�
is_booleanr��calcsize�
byte_width)r�rhr�rZs   �rMr�zTypedBuffer.__init__�s<���
�����$������$�o�o�c�D�O�O�.C�D�D�O�rOc��t|t�sJ�|tjk(r
|j}n	t
|}|||�SrJ)r�r�r/r
�_boolean_format�type_id_to_struct_code)�clsrhrQr�s    rM�from_type_idzTypedBuffer.from_type_id�s@���'�3�'�'�'��d�i�i���,�,�J�/��8�J��3�
�#�#rOc��|jrtj|||�S||jz}|� |j	|||jz�}n|j	|�}t||j�S)z�
        Return a view over the primitive values in this buffer.

        The optional `offset` and `length` are expressed in primitive values,
        not bytes.
        )r��Bitmap�from_bufferr�r��	TypedViewr�)r�r�r��byte_offsetr�s     rMr�zTypedBuffer.view�sl���?�?��%�%�d�F�F�;�;��t���.�����/�/�+�v����/G�H�C��/�/�+�.�C���d�o�o�.�.rOc�2�|j|juSrJ)r�r�r�s rMr�zTypedBuffer.is_boolean�s�����$�"6�"6�6�6rOr�)
rrr	r
�objectr�r��classmethodr�r�rr�r[r\s@rMr�r��sD�����h�O�E��$��$�/�"�7��7rOr�c�(�eZdZdZd�Zd�Zd�Zd�Zy)r�zh
    View a bytes-compatible object as a sequence of objects described
    by a struct format code.
    c��t|t�sJ�||_||_t	j
d|z�|_|j|jz|_yr�)	r�r�r�r�r�r�r��nbytesr�)r�r�r�s   rMr�zTypedView.__init__�sI���#�z�*�*�*����$��� �/�/�#�
�*:�;����j�j�D�O�O�3��rOc�\�d|cxkr|jkstd��td��y�NrzWrong index for bitmap�r�rDrEs  rMrFzTypedView._check_index��5���E�'�D�K�K�'��5�6�6�(��5�6�6�(rOc��|jSrJr�r�s rMrHzTypedView.__len__�����{�{�rOc��|j|�|j}|j||z|dz|z}tjd|j
z|�S)NrFr�)rFr�r�r�r�r�)r�r$�wr�s    rMrJzTypedView.__getitem__�sQ�����%� ��O�O���h�h�u�q�y�%�!�)�q��1���}�}�S�4�?�?�2�C�8�8rON)rrr	r
r�rFrHrJrKrOrMr�r��s���
4�7��9rOr�c�@�eZdZdZgd�Zd�Zd�Zd�Zd�Ze	d��Z
y)	r�z@
    View a bytes-compatible object as a sequence of bools.
    )rFr����r��@�c�.�||_||_||_yrJ)r�r�r�)r�r�r�r�s    rMr�zBitmap.__init__�s����	������rOc�\�d|cxkr|jkstd��td��yr�r�rEs  rMrFzBitmap._check_index�r�rOc��|jSrJr�r�s rMrHzBitmap.__len__�r�rOc��|j|�||jz
}t|d�\}}|j|}||j|zdk7S)Nr�r)rFr�r�r��_masks)r�r$�
byte_index�	bit_index�bytes     rMrJzBitmap.__getitem__�sV�����%� �
������ &�u�a� 0��
�I��y�y��$���d�k�k�)�,�,��1�1rOc��t|t�sJ�t|d�\}}tj||dzz�|z
}||j||�||�S)Nr�)r�rxr��math�ceilr�)r�r�r�r�r��
bit_offset�byte_lengths       rMr�zBitmap.from_buffer�s^���#�v�&�&�&�"(���"3���Z��i�i���!�� 3�4�{�B���3�>�>�+�{�;��v�'�	'rON)rrr	r
r�r�rFrHrJr�r�rKrOrMr�r��s6���:�F��
7��2��'��'rOr�c��eZdZd�Zd�Zd�Zy)�
MappedViewc� �||_||_yrJ�r��func�r�r�r�s   rMr�zMappedView.__init__	�����	���	rOc�,�t|j�SrJ�r�r�r�s rMrHzMappedView.__len__
����4�9�9�~�rOc�>�|j|j|�SrJ�r�r�rEs  rMrJzMappedView.__getitem__s���y�y����5�)�*�*rON�rrr	r�rHrJrKrOrMr�r�s����+rOr�c��eZdZd�Zd�Zd�Zy)�StarMappedViewc� �||_||_yrJr�r�s   rMr�zStarMappedView.__init__r�rOc�,�t|j�SrJr�r�s rMrHzStarMappedView.__len__r�rOc�:�|j|j|�SrJr�rEs  rMrJzStarMappedView.__getitem__s���t�y�y�$�)�)�E�*�+�+rONr�rKrOrMr�r�s����,rOr�c�2��eZdZ�fd�Ze�fd��Z�xZS)�
NullBitmapc�^��|j|�|j�yt�|�
|�S)NT)rFr�rXrJrYs  �rMrJzNullBitmap.__getitem__#s.������%� ��9�9����w�"�5�)�)rOc�>��|�
||||�St�|�|||�S)zu
        Create a null bitmap from a Buffer (or None if missing,
        in which case all values are True).
        )rXr�)r�r�r�r�rZs    �rMr�zNullBitmap.from_buffer)s-����;��s�F�F�+�+��w�"�3���7�7rO)rrr	rJr�r�r[r\s@rMr�r�!s���*��8��8rOr��KeyValue)�keyrxc�"�eZdZdZd�Zd�Zd�Zy)�Metadataz*
    A arrow::KeyValueMetadata value.
    c��||_t|jd�|_t|jd�|_y)N�keys_�values_)rhr<�keys�valuesr�s  rMr�zMetadata.__init__<s3������d�h�h�w�/�0��	������ 3�4��rOc�,�t|j�SrJ)r�r�r�s rMrHzMetadata.__len__Ar�rOc�r�tt|j|�t|j|��SrJ)r�r*r�r��r�r8s  rMrJzMetadata.__getitem__Ds)���	�$�)�)�A�,�/��4�;�;�q�>�1J�K�KrON�rrr	r
r�rHrJrKrOrMr�r�7s���5�
�LrOr�c�"�eZdZdZd�Zd�Zd�Zy)�MetadataPtrzE
    A shared_ptr<arrow::KeyValueMetadata> value, possibly null.
    c���t|�j�|_t|j�dk(|_|jrd|_yt|jj
��|_yr�)rwrr(r��is_nullr�ru�mdr�s  rMr�zMetadataPtr.__init__MsO���S�>�%�%�'����4�8�8�}��)����,�,�$���H�T�X�X�5I�5I�5K�,L��rOc�H�|jrdSt|j�Sr�)r�r�r�r�s rMrHzMetadataPtr.__len__Rs���L�L�q�2�c�$�'�'�l�2rOc�D�|jrt�|j|SrJ)r�rDr�r�s  rMrJzMetadataPtr.__getitem__Us���<�<����w�w�q�z�rONr�rKrOrMr�r�Hs���M�
3�rOr��
DecimalTraits)�	bit_width�struct_format_ler��Qq��QQQq)r�r�c�R�eZdZdZd�Zed��Zed��Zed��Z	d�Z
d�Zy)	�BaseDecimalz@
    Base class for arrow::BasicDecimal{128,256...} values.
    c��||_yrJ�rf)r�rfs  rMr�zBaseDecimal.__init__gs	����rOc�,�||dj�S)z{
        Create a decimal from a gdb.Value representing the corresponding
        arrow::BasicDecimal{128,256...}.
        �array_r�)r�rhs  rM�
from_valuezBaseDecimal.from_valuejs���3�x�=�(�(�)�)rOc��||�S)zp
        Create a decimal from a gdb.Value representing the address of the
        raw decimal storage.
        rK)r�rfs  rM�from_addresszBaseDecimal.from_addressrs���7�|�rOc�B�tj�j|j|jj
dz�}|jj}t�dk(r|ddd�}tjd|��|�}t�dk(r|ddd�}|S)zD
        The decimal words, from least to most significant.
        r�rUNr�r�)
rWr�r�rfr�r�r�r_r�r�)r�r�r�wordss    rMr�zBaseDecimal.wordszs���
�#�#�%�1�1�$�,�,�26�+�+�2G�2G�1�2L�N���k�k�*�*���<�5� ��d��d�)�C��
�
��#��i��-���<�5� ��$�B�$�K�E��rOc��d}|j}|jjt|�z}t	|�D]
}||z|z}�|S)z.
        The underlying bigint value.
        r)r�r�r�r��reversed)r�rLr��
bits_per_wordr�s     rM�__int__zBaseDecimal.__int__�sQ��
���
�
�����-�-��U��;�
��%��	)�A��m�#�q�(�A�	)��rOc���t|�}tj�5}||_d|_ttj|�j|��cddd�S#1swYyxYw)zP
        Format as a decimal number with the given precision and scale.
        FN)r��decimal�localcontext�prec�capitalsrb�Decimal�scaleb)r��	precision�scalerL�ctxs     rMrLzBaseDecimal.format�s\��
��I��
�
!�
!�
#�	:�s� �C�H� �C�L��w���q�)�0�0�%��8�9�	:�	:�	:�s�<A&�&A/N)rrr	r
r�r�r�r�rr�rrLrKrOrMr�r�bsR�����*��*���������	�:rOr�c��eZdZedZy)�
Decimal128r�N�rrr	�decimal_traitsr�rKrOrMrr����
�C�
 �FrOrc��eZdZedZy)�
Decimal256r�Nr
rKrOrMrr�rrOrrc�,�eZdZdZd�Zed��Zd�Zy)�
ExtensionTypez!
    A arrow::ExtensionType.
    c��||_yrJr�r�s  rMr�zExtensionType.__init__�r�rOc�2�t|jd�S)N�
storage_type_rnr�s rM�storage_typezExtensionType.storage_type�s���T�X�X�o�.�/�/rOc�j�ttjt|j��d���S)zE
        The result of calling ToString(show_metadata=True).
        z.ToString(true))r*rWrrkrhr�s rMrTzExtensionType.to_string�s2����+�+��d�h�h�'�(��8�:�;�	;rON)rrr	r
r�rrrTrKrOrMrr�s%�����0��0�;rOrc��eZdZdZd�Zy)�Schemaz
    A arrow::Schema.
    c��||_t|jd�}t|d�|_t	|d�|_y)N�impl_�fields_�	metadata_)rhr|r^�fieldsr��metadatarAs   rMr�zSchema.__init__�s=������T�X�X�g�&�'��!�$�y�/�2���#�D��$5�6��
rON�rrr	r
r�rKrOrMrr�s���7rOrc�&�eZdZdZd�Zed��Zy)�RecordBatchz
    A arrow::RecordBatch.
    c���t|tjd��|_t	t|jd��|_t|jd�|_y)N�arrow::SimpleRecordBatch�schema_�columns_�	r�rW�lookup_typerhrr|�schemarV�columnsr�s  rMr�zRecordBatch.__init__�sO��$�C�$'�O�O�4N�$O�Q����U�4�8�8�I�#6�7�8���#�D�H�H�Z�$8�9��rOc� �|jdS�N�	num_rows_r�r�s rM�num_rowszRecordBatch.num_rows�����x�x��$�$rON�rrr	r
r�rr/rKrOrMr#r#�s ���:��%��%rOr#c�&�eZdZdZd�Zed��Zy)�Tablez
    A arrow::Table.
    c���t|tjd��|_t	t|jd��|_t|jd�|_y)N�arrow::SimpleTabler&r'r(r�s  rMr�zTable.__init__�sO��$�C�$'�O�O�4H�$I�K����U�4�8�8�I�#6�7�8���#�D�H�H�Z�$8�9��rOc� �|jdSr-r�r�s rMr/zTable.num_rows�r0rONr1rKrOrMr3r3�s ���:��%��%rOr3�NullType�null�BooleanType�boolean�	UInt8Type�uint8�Int8Type�int8�
UInt16Type�uint16�	Int16Type�int16�
UInt32Type�uint32�	Int32Type�int32�
UInt64Type�uint64�	Int64Type�int64�
HalfFloatType�float16�	FloatType�float32�
DoubleType�float64�
Date32Type�date32�
Date64Type�date64�
Time32Type�time32�
Time64Type�time64�
TimestampType�	timestamp�MonthIntervalType�month_interval�DayTimeIntervalType�day_time_interval�MonthDayNanoIntervalType�month_day_nano_interval�DurationType�duration�Decimal128Type�
decimal128�Decimal256Type�
decimal256�
StringTyper��LargeStringType�
large_utf8�
BinaryType�binary�LargeBinaryType�large_binary�FixedSizeBinaryType�fixed_size_binary�ListType�list�
LargeListType�
large_list�FixedSizeListType�fixed_size_list�MapType�map�
StructType�struct_�sparse_union�dense_union�
dictionary)�SparseUnionType�DenseUnionType�DictionaryTypec�2�eZdZdZd�Zed��Zd�Zd�Zy)�TypePrinterzA
    Pretty-printer for arrow::DataTypeClass and subclasses.
    c��||_tjd|���|_t	||j�|_y�N�arrow::)rvrWr)rar�rh�r�rvrhs   rMr�zTypePrinter.__init__'s4����	��O�O�g�d�V�$4�5��	�#�C����3��rOc�2�t|jd�S)N�	children_)r^rhr�s rMrzTypePrinter.fields.s���4�8�8�K�0�1�1rOc�`�tj|j|j�}d|��Sr�)�
type_reprsrrv)r��rs  rM�_format_typezTypePrinter._format_type2s&���N�N�4�9�9�d�i�i�0�����}�rOc�B�t|j|j�SrJ)rkrhrar�s rM�_for_evaluationzTypePrinter._for_evaluation6s���d�h�h��	�	�2�2rON)	rrr	r
r�rrr�r�rKrOrMr�r�"s*���4��2��2��3rOr�c��eZdZdZd�Zy)�PrimitiveTypePrinterz2
    Pretty-printer for non-parametric types.
    c�(�|j��d�S)Nz()�r�r�s rMrTzPrimitiveTypePrinter.to_string?s���#�#�%�&�b�)�)rON�rrr	r
rTrKrOrMr�r�:s���*rOr�c��eZdZdZd�Zd�Zy)�TimeTypePrinterz5
    Pretty-printer for time and duration types.
    c� �|jdS�N�unit_r�r�s rM�	_get_unitzTimeTypePrinter._get_unitHs���x�x�� � rOc�J�|j��d|j��d�S�N�(�))r�r�r�s rMrTzTimeTypePrinter.to_stringKs'���#�#�%�&�a����(8�'9��;�;rON)rrr	r
r�rTrKrOrMr�r�Cs���!�<rOr�c��eZdZdZd�Zy)�TimestampTypePrinterz-
    Pretty-printer for timestamp types.
    c���t|jd�}|r'|j��d|j��d|�d�S|j��d|j��d�S)N�	timezone_r�rcr�)r*rhr�r�)r��tzs  rMrTzTimestampTypePrinter.to_stringTsh��
�t�x�x��,�
-��
��'�'�)�*�!�D�N�N�,<�+=�R��t�1�E�E��'�'�)�*�!�D�N�N�,<�+=�Q�?�?rONr�rKrOrMr�r�Os
���@rOr�c��eZdZdZd�Zy)�FixedSizeBinaryTypePrinterz5
    Pretty-printer for fixed-size binary types.
    c�^�t|jd�}|j��d|�d�S)N�byte_width_r�r��r�rhr�)r��widths  rMrTz$FixedSizeBinaryTypePrinter.to_stringas2���D�H�H�]�+�,���#�#�%�&�a��w�a�0�0rONr�rKrOrMr�r�\s���1rOr�c��eZdZdZd�Zy)�DecimalTypePrinterz+
    Pretty-printer for decimal types.
    c��t|jd�}t|jd�}|j��d|�d|�d�S)N�
precision_�scale_r�rcr�r�)r�rr	s   rMrTzDecimalTypePrinter.to_stringksK�������.�/�	��D�H�H�X�&�'���#�#�%�&�a�	�{�"�U�G�1�=�=rONr�rKrOrMr�r�f����>rOr�c��eZdZdZd�Zd�Zy)�ListTypePrinterz(
    Pretty-printer for list types.
    c�V�|j}t|�dk7ry|djS)NrFr)rr�ra)r�rs  rM�_get_value_typezListTypePrinter._get_value_typevs(�������v�;�!����a�y�~�~�rOc�x�|j�}|�|j��d�S|j��d|�d�S)N�<uninitialized or corrupt>r�r�)r�r�)r��childs  rMrTzListTypePrinter.to_string|sJ���$�$�&���=��'�'�)�*�*D�E�E��'�'�)�*�!�E�7�!�4�4rON)rrr	r
r�rTrKrOrMr�r�qs����5rOr�c��eZdZdZd�Zy)�FixedSizeListTypePrinterz2
    Pretty-printer for fixed-size list type.
    c��|j�}|�|j��d�St|jd�}|j��d|�d|�d�S)Nr��
list_size_r�rcr�)r�r�r�rh)r�r��	list_sizes   rMrTz"FixedSizeListTypePrinter.to_string�sc���$�$�&���=��'�'�)�*�*D�E�E������.�/�	��#�#�%�&�a��w�b���1�=�=rONr�rKrOrMr�r��s���>rOr�c��eZdZdZd�Zy)�MapTypePrinterz'
    Pretty-printer for map types.
    c�8�|j�}|�|j��d�St|d�}t|�dk7r|j��d�S|dj}|dj}|j��d|�d|�d|j
d	�d
�S)Nr�r�r�rrFr�rcz, keys_sorted=�keys_sorted_r�)r�r�r^r�rarh)r��struct_type�struct_children�key_type�	item_types     rMrTzMapTypePrinter.to_string�s����*�*�,�����'�'�)�*�*D�E�E�%�k�+�&>�?�����1�$��'�'�)�*�*D�E�E�"�1�%�*�*��#�A�&�+�+�	��$�$�&�'�q��
�"�Y�K�@�#�x�x��7�8��;�	<rONr�rKrOrMr�r��s���
<rOr�c��eZdZdZd�Zy)�DictionaryTypePrinterz.
    Pretty-printer for dictionary types.
    c��t|jd�}t|jd�}|jd}|j��d|�d|�d|�d�S)N�index_type_�value_type_�ordered_r�rcz
, ordered=r�)r|rhr�)r��
index_typer%�ordereds    rMrTzDictionaryTypePrinter.to_string�sh���4�8�8�M�2�3�
��4�8�8�M�2�3�
��(�(�:�&���$�$�&�'�q���B�z�l�C�"�)�1�&�	'rONr�rKrOrMr�r��s���'rOr�c��eZdZdZd�Zy)�StructTypePrinterz*
    Pretty-printer for struct types.
    c�B�|j��d|j�d�Sr�)r�rr�s rMrTzStructTypePrinter.to_string�s#���#�#�%�&�a����}�A�6�6rONr�rKrOrMr�r��s���7rOr�c��eZdZdZd�Zy)�UnionTypePrinterz)
    Pretty-printer for union types.
    c��t|jd�}ddjd�|D��zdz}|j��d|j�d|�d�S)	N�type_codes_rbrcc3�vK�|]1}t|jtjd������3y�w)r�N)rbr�rWr))�.0�xs  rM�	<genexpr>z-UnionTypePrinter.to_string.<locals>.<genexpr>�s/����%:�)*�&)��������0F�)G�%H�%:�s�79rdz(fields=z
, type_codes=r�)r<rhrer�r)r��
type_codess  rMrTzUnionTypePrinter.to_string�sh���t�x�x�
�6�7�
��4�9�9�%:�.8�%:�:�:�<?�@�
��#�#�%�&�h�t�{�{�m�=���TU�V�VrONr�rKrOrMr�r��s
���WrOr�c��eZdZdZd�Zy)�ExtensionTypePrinterz-
    Pretty-printer for extension types.
    c��t|j�}|j��d|j�j	��d|j
��S)Nr�z with storage type )rrhr�rTr�r)r��ext_types  rMrTzExtensionTypePrinter.to_string�sT�� ����*���$�$�&�'�q��);�);�)=�)L�)L�)N�(O�P%�%-�%:�%:�$;�=�	>rONr�rKrOrMr�r��r�rOr�c�8�eZdZdZd�Zed��Zd�Zd�Zd�Z	y)�
ScalarPrinterz:
    Pretty-printer for arrow::Scalar and subclasses.
    c���tt|d�d�}t|�}|�|j}t	|t
�sJ�tj|�}||_|j|_
t|j�|_	||_tjd|j���}t||�|_t#|j d�|_|S)Nra�id_r��is_valid)r�r|�lookup_type_class�scalar_printer�
issubclassr�r��__new__�
type_classrv�	type_namer�rQrWr)r�rhrqr�)r�rhrQr�r��
concrete_types      rMr�zScalarPrinter.__new__�s����e�C��K�(��/�0��&�w�/�
��!��+�+�C��c�=�1�1�1��~�~�c�"��$���#�����*�4�>�>�:��	�������'�$�)�)��(=�>�
�#�C��7����T�X�X�j�1�2��
��rOc��tjd|j���}tt	|j
d�|�S�z6
        The concrete DataTypeClass instance.
        r�ra�rWr)r�r�r|rh�r�r�s  rMrazScalarPrinter.type�s>��
���'�$�.�.�1A�(B�C�
���d�h�h�v�&6� 7� -�/�	/rOc� �d|j��Sr�r�r�s rMr�zScalarPrinter._format_type�s�������$�$rOc��|jjr |j��d|j�d�S|j��d�S)N�	 of type �, null valuez of null value)r��
is_parametricr�rar�s rM�_format_nullzScalarPrinter._format_null�sG���?�?�(�(��'�'�)�*�)�D�I�I�;�l�K�K��'�'�)�*�.�9�9rOc�,�t|j�SrJ)rkrhr�s rMr�zScalarPrinter._for_evaluation�s���d�h�h�'�'rON)
rrr	r
r�rrar�r�r�rKrOrMr�r��s/����$�/��/�%�:�(rOr�c��eZdZdZd�Zy)�NullScalarPrinterz/
    Pretty-printer for arrow::NullScalar.
    c�"�|j�SrJr�r�s rMrTzNullScalarPrinter.to_strings��� � �"�"rONr�rKrOrMr�r��s���#rOr�c��eZdZdZd�Zy)�NumericScalarPrinterz3
    Pretty-printer for numeric Arrow scalars.
    c�H�|js|j�S|jd}|jdk(r"|j	��dt|��d|�d�S|jdvr$|j
tjd��}|j	��d|��S)NrxrK�
 of value r�r�)r;r=r�)	r�r�rhr�r�r�r�rWr)�r�rxs  rMrTzNumericScalarPrinter.to_strings����}�}��$�$�&�&�����!���>�>�_�,��(�(�*�+�, � 0�� 7�8��5�'��D�
E��>�>�6�6��J�J�s���u�5�6�E��#�#�%�&�j���8�8rONr�rKrOrMr�r�s���	9rOr�c��eZdZdZd�Zy)�TimeScalarPrinterz5
    Pretty-printer for Arrow time-like scalars.
    c���t|jd�}|js|j��d|�d�S|jd}|j��d|�|��S)Nr�� of null value [r�rxr�)r�rar�r�rh)r�r�rxs   rMrTzTimeScalarPrinter.to_stringsg���t�y�y��1�2���}�}��'�'�)�*�*:�4�&��B�B�����!���#�#�%�&�j����v�>�>rONr�rKrOrMr�r�s���?rOr�c��eZdZdZd�Zy)�Date32ScalarPrinterz1
    Pretty-printer for arrow::Date32Scalar.
    c��|js|j�S|jd}|j��dt	|���S�Nrxr�)r�r�rhr�r�r�s  rMrTzDate32ScalarPrinter.to_string)�G���}�}��$�$�&�&�����!���#�#�%�&�j��u�1E�0F�G�GrONr�rKrOrMr�r�$�
���HrOr�c��eZdZdZd�Zy)�Date64ScalarPrinterz1
    Pretty-printer for arrow::Date64Scalar.
    c��|js|j�S|jd}|j��dt	|���Sr)r�r�rhr�r�r�s  rMrTzDate64ScalarPrinter.to_string5rrONr�rKrOrMrr0rrOrc��eZdZdZd�Zy)�TimestampScalarPrinterz4
    Pretty-printer for arrow::TimestampScalar.
    c�B�t|jd�}t|jd�}|jdk7r|j	�nd}|j
s|j
��d|�d|�d�S|jd}|j
��d	|�|�d
|�d�S)Nr�r�rzno timezoner�rcr�rxr�r�)r�rar*r�r�r�r�rh)r�r�r�rxs    rMrTz TimestampScalarPrinter.to_stringAs����t�y�y��1�2��
�t�y�y��-�
.��$&�G�G�q�L�R�
�
�
 �m���}�}��'�'�)�*�*:�4�&��2�$�a�H�H�����!���#�#�%�&�j����v�R��t�1�E�ErONr�rKrOrMrr<s
���FrOrc��eZdZdZd�Zy)�MonthIntervalScalarPrinterz?
    Pretty-printer for arrow::MonthIntervalScalarPrinter.
    c��|js|j�S|jd}|j��dt	|���Sr)r�r�rhr�r�r�s  rMrTz$MonthIntervalScalarPrinter.to_stringPsH���}�}��$�$�&�&�����!���#�#�%�&�j�1F�u�1M�0N�O�OrONr�rKrOrMr
r
Ks
���PrOr
c�&�eZdZdZed��Zd�Zy)�DecimalScalarPrinterzA
    Pretty-printer for arrow::DecimalScalar and subclasses.
    c�(�t|jSrJ)�decimal_type_to_classr�r�s rM�
decimal_classz"DecimalScalarPrinter.decimal_class\s��$�T�^�^�4�4rOc�F�|j}t|d�}t|d�}d|�d|�d�}|js|j��d|��S|jj|jd�j||�}|j��d|�d	|��S)
Nr�r�z[precision=z, scale=r�z of null value rxr�r�)rar�r�r�rr�rhrL)r�rirr	�suffixrxs      rMrTzDecimalScalarPrinter.to_string`s���
�Y�Y����<�(�)�	��B�x�L�!���y�k��%���:���}�}��'�'�)�*�/�&��B�B��"�"�-�-�d�h�h�w�.?�0�06��y�%�0H�	��#�#�%�&�j���q���A�ArON)rrr	r
rrrTrKrOrMr
r
Ws!����5��5�	BrOr
c��eZdZdZd�Zd�Zy)�BaseBinaryScalarPrinterzD
    Pretty-printer for arrow::BaseBinaryScalar and subclasses.
    c�~�d|jvr t|j|j�S|j	�S)N�String)r�r�r�r�r�)r��bufptrs  rM�_format_bufz#BaseBinaryScalarPrinter._format_bufqs2���t�~�~�%�����V�[�[�9�9��'�'�)�)rOc�(�|js|j�Stt|jd�j��}|j}|�|j��d�S|j��d|�d|j|���S)Nrxz of value <unallocated>�	 of size �, value )	r�r�r�rwrhrr�r�r)r�rr�s   rMrTz!BaseBinaryScalarPrinter.to_stringws����}�}��$�$�&�&��9�T�X�X�g�%6�7�;�;�=�>���{�{���<��'�'�)�*�*A�B�B��$�$�&�'�y���7��)�)�&�1�2�4�	5rON)rrr	r
rrTrKrOrMrrls���*�5rOrc��eZdZdZd�Zy)�FixedSizeBinaryScalarPrinterz:
    Pretty-printer for arrow::FixedSizeBinaryScalar.
    c	�6�|jd}tt|jd�j	��}|j
�|j
��d|�d�S|jrdnd}|j
��d|�d|�d|j|���S)	Nr�rxrz, <unallocated>r�z
null with rczvalue )	rar�rwrhrr�r�r�r)r�r�r�nullnesss    rMrTz&FixedSizeBinaryScalarPrinter.to_string�s����y�y��'���9�T�X�X�g�%6�7�;�;�=�>���;�;���'�'�)�*�)�D�6��I�I����2�L���$�$�&�'�y���b��*�F�4�#3�#3�F�#;�"<�>�	?rONr�rKrOrMrr�s���?rOrc��eZdZdZd�Zy)�DictionaryScalarPrinterz5
    Pretty-printer for arrow::DictionaryScalar.
    c���|js|j�St|jdd�}t|jdd�}|j	��d|�d|��S)Nrxr$r|z
 of index z
, dictionary �r�r�r|rhr�)r�r$r|s   rMrTz!DictionaryScalarPrinter.to_string�sq���}�}��$�$�&�&��d�h�h�w�'��0�1���4�8�8�G�,�\�:�;�
��$�$�&�'�z�%��9�(�\�+�	,rONr�rKrOrMr!r!�s���,rOr!c��eZdZdZd�Zy)�BaseListScalarPrinterzB
    Pretty-printer for arrow::BaseListScalar and subclasses.
    c��|js|j�St|jd�}|j	��d|��Srr#r�s  rMrTzBaseListScalarPrinter.to_string�sF���}�}��$�$�&�&��d�h�h�w�'�(���#�#�%�&�j���8�8rONr�rKrOrMr%r%�s���9rOr%c�"�eZdZdZd�Zd�Zd�Zy)�StructScalarPrinterz1
    Pretty-printer for arrow::StructScalar.
    c��y�NrwrKr�s rM�display_hintz StructScalarPrinter.display_hint����rOc#�"K�|jsyt|jd�}t|jd�}t	||�D]?\}}tt
|�d�j�}d|f��dt
|�f���Ay�w)Nr�rxrkrv)r�r<rarh�zipr*r|r�)r��eval_fields�eval_values�fieldrxrvs      rM�childrenzStructScalarPrinter.children�s������}�}����	�	�+� 6�7������� 1�2����[�9�	*�L�E�5��U�5�\�'�2�3�B�B�D�D��4�.� ��E�%�L�)�)�	*�s�B
Bc�\�|js|j�S|j��SrJ)r�r�r�r�s rMrTzStructScalarPrinter.to_string�s*���}�}��$�$�&�&��#�#�%�&�'rON)rrr	r
r+r2rTrKrOrMr(r(�s����*�(rOr(c��eZdZdZd�Zy)�SparseUnionScalarPrinter�?
    Pretty-printer for arrow::UnionScalar and subclasses.
    c��|jdjtjd��}|js#|j��d|j�d|�d�St|jd�}|jdjtjd��}|j��d|�d	t||���S)
N�	type_coder�r��, type code r�rx�child_id� of type code r)	rhr�rWr)r�r�rar<r|)r�r8r0r:s    rMrTz"SparseUnionScalarPrinter.to_string�s����H�H�[�)�.�.�s���u�/E�F�	��}�}��(�(�*�+�9�T�Y�Y�K�@!�!*��<�9�
:������ 1�2���8�8�J�'�,�,�S�_�_�U�-C�D���$�$�&�'�~�i�[�A��{�8�4�5�6�8�	9rONr�rKrOrMr5r5�s���9rOr5c��eZdZdZd�Zy)�DenseUnionScalarPrinterr6c�"�|jdjtjd��}|js#|j��d|j�d|�d�St|jd�}|j��d|�d|��S)	Nr8r�r�r9r�rxr;r)rhr�rWr)r�r�rar|)r�r8rxs   rMrTz!DenseUnionScalarPrinter.to_string�s����H�H�[�)�.�.�s���u�/E�F�	��}�}��(�(�*�+�9�T�Y�Y�K�@!�!*��<�9�
:��d�h�h�w�'�(���$�$�&�'�~�i�[�A���!�	"rONr�rKrOrMr=r=�s���"rOr=c��eZdZdZd�Zy)�MapScalarPrinterz.
    Pretty-printer for arrow::MapScalar.
    c��|js|j�St|jd�}t|d�}t	d|�}|j��d|j�d|j���S)Nrxr|�arrow::ArrayDatar�r)r�r�r|rh�ArrayDataPrinterr�ra�_format_contents)r��arrayr��data_printers    rMrTzMapScalarPrinter.to_string�s}���}�}��$�$�&�&��d�h�h�w�'�(���U�7�^�$��'�(:�D�A���$�$�&�'�y�����<�%�6�6�8�9�;�	<rONr�rKrOrMr@r@�s���<rOr@c��eZdZdZd�Zy)�ExtensionScalarPrinterz4
    Pretty-printer for arrow::ExtensionScalar.
    c�@�t|j�}|js2|j��d|j	�j��d�St
|jd�}|j��d|j	�j��d|��S)Nr�r�rxr)rrar�r�rTr�r|rh)r�r�rxs   rMrTz ExtensionScalarPrinter.to_string�s��� ����+���}�}��(�(�*�+�9��)�)�+�:�:�<�=�\�K�
L��d�h�h�w�'�(���$�$�&�'�y��%�%�'�6�6�8�9��%��J�	KrONr�rKrOrMrHrH�s
���KrOrHc�h�eZdZdZd�Zed��Zd�Zdd�Zdd�Z	dd�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zy)rCz.
    Pretty-printer for arrow::ArrayData.
    c��tt|d�d�}t|�}|�|j}t	|t
�sJ�tj|�}||_||_	||_
|j|_||_t|jd�|_
t|jd�|_|S)Nrar�r�r�)r�r|r��array_data_printerr�rCr�r�rvrhr�r�rQr�r�)r�rvrhrQr�r�s      rMr�zArrayDataPrinter.__new__s����e�C��K�(��/�0��&�w�/�
��!��/�/�C��c�#3�4�4�4��~�~�c�"����	����$���#���������$�(�(�8�,�-����$�(�(�8�,�-����rOc��tjd|j���}tt	|j
d�|�Sr�r�r�s  rMrazArrayDataPrinter.types9��
���'�$�.�.�1A�(B�C�
���d�h�h�v�&6� 7��G�GrOc	�l�d|j�d|j�dt|jd���S)Nzlength z	, offset rcr�)r�r�r�rhr�s rMrDz!ArrayDataPrinter._format_contents s<���$�+�+��'��+�+��b�$�T�X�X�l�%;�<�=�?�	@rONc��t|jd�}t||�j�}t	|�dk(ry|�$t
j
|j�|�St|j��S)N�buffersr)	r<rhrwrr�r�r�rurx)r�r$rQrPrs     rM�_bufferzArrayDataPrinter._buffer%sq���D�H�H�Y�/�0���7�5�>�*�.�.�0���v�;�!������+�+�F�,>�,>�,@�'�J�J��&�,�,�.�/�/rOc��|j||�}|�y|�|j}|j|j|�S)z�
        Return a typed view of values in the buffer with the given index.

        Values are returned as tuples since some types may decode to
        multiple values (for example day_time_interval).
        N)rQr�r�r�)r�r$rQr�r�s     rM�_buffer_valueszArrayDataPrinter._buffer_values/s?���l�l�5�'�*���;���>��[�[�F��x�x����V�,�,rOc�D�tt|j|||��S)zk
        Like _buffer_values(), but assumes values are 1-tuples
        and returns them unpacked.
        )r�rNrS)r�r$rQr�s    rM�_unpacked_buffer_valuesz(ArrayDataPrinter._unpacked_buffer_values=s'��
�h�"�1�1�%��&�I�K�	KrOc��t|j�r|jd�nd}tj	||j
|j�Sr�)rRrQrQr�r�r�r�)r�r�s  rM�_null_bitmapzArrayDataPrinter._null_bitmapEs9��!0����!>�d�l�l�1�o�D���%�%�c�4�;�;����D�DrOc��t|�dfS)Nr8�rbr�s  rM�_null_childzArrayDataPrinter._null_childIs���1�v�v�~�rOc��t|�|fSrJrY)r�r8rxs   rM�_valid_childzArrayDataPrinter._valid_childLs���1�v�u�}�rOc��yrJrKr�s rMr+zArrayDataPrinter.display_hintOs��rOc��y)NrKrKr�s rMr2zArrayDataPrinter.childrenRs��rOc�^�|j}|j�d|�d|j���S)Nr�rc)rarvrD�r�ris  rMrTzArrayDataPrinter.to_stringUs5��
�Y�Y���9�9�+�Y�r�d�"��(�(�*�+�-�	.rOrJ)rrr	r
r�rrarDrQrSrUrWrZr\r+r2rTrKrOrMrCrCsW����"�H��H�@�
0�-�K�E�����.rOrCc�2�eZdZdZee�Zd�Zd�Zd�Z	y)�NumericArrayDataPrinterzA
    ArrayDataPrinter specialization for numeric data types.
    c�b�t|j|jd|j��S�NrF)r��
_format_valuerSrQr�s rM�_values_viewz$NumericArrayDataPrinter._values_viewas-���d�0�0�"�1�1�!�T�\�\�B�D�	DrOc��y�NrErKr�s rMr+z$NumericArrayDataPrinter.display_hinte���rOc#�K�|jdk(ry|j�}|j�}tt	||��D];\}\}}|r|j|t
|�����)|j|����=y�wr�)r�rfrW�	enumerater.r\rbrZ)r�r��	null_bitsr8�validrxs      rMr2z NumericArrayDataPrinter.childrenhs������;�;�!����"�"�$���%�%�'�	�!*�3�y�&�+A�!B�	*��A�~��u���'�'��3�u�:�6�6��&�&�q�)�)�		*�s�BBN)
rrr	r
�staticmethodrNrerfr+r2rKrOrMrbrb[s#���!��*�M�D��	*rOrbc��eZdZdZd�Zd�Zy)�BooleanArrayDataPrinterz6
    ArrayDataPrinter specialization for boolean.
    c�4�t|�j�SrJ)rb�lower)r�rLs  rMrez%BooleanArrayDataPrinter._format_valueys���1�v�|�|�~�rOc�b�t|j|jd|j��Srd)r�rerSrQr�s rMrfz$BooleanArrayDataPrinter._values_view|s-���$�,�,��-�-�a����>�@�	@rON)rrr	r
rerfrKrOrMrprpts����@rOrpc� �eZdZdZee�Zy)�Date32ArrayDataPrinterz5
    ArrayDataPrinter specialization for date32.
    N)rrr	r
rnr�rerKrOrMruru�����!��/�MrOruc� �eZdZdZee�Zy)�Date64ArrayDataPrinterz5
    ArrayDataPrinter specialization for date64.
    N)rrr	r
rnr�rerKrOrMrxrx�rvrOrxc��eZdZdZd�Zd�Zy)�TimeArrayDataPrinterz@
    ArrayDataPrinter specialization for time32 and time64.
    c�`�|jd|_t|j�|_yr�)rar�r��unit_stringr�s   rMr�zTimeArrayDataPrinter.__init__�s#���I�I�g�&��	�*�4�9�9�5��rOc�"�|�|j��SrJ)r|r�s  rMrez"TimeArrayDataPrinter._format_value�s����t�'�'�(�)�)rON�rrr	r
r�rerKrOrMrzrz�s���6�*rOrzc��eZdZdZd�Zd�Zy)�TimestampArrayDataPrinterz8
    ArrayDataPrinter specialization for timestamp.
    c�,�|jd|_yr�)rar�r�s   rMr�z"TimestampArrayDataPrinter.__init__�s���I�I�g�&��	rOc�.�t||j�SrJ)r�r�r�s  rMrez'TimestampArrayDataPrinter._format_value�s����T�Y�Y�/�/rONr~rKrOrMr�r��s���'�0rOr�c� �eZdZdZee�Zy)�MonthIntervalArrayDataPrinterz=
    ArrayDataPrinter specialization for month_interval.
    N)rrr	r
rnr�rerKrOrMr�r��s���!�!6�7�MrOr�c� �eZdZdZee�Zy)�DayTimeIntervalArrayDataPrinter�@
    ArrayDataPrinter specialization for day_time_interval.
    N)rrr	r
rnr�rerKrOrMr�r������!�!9�:�MrOr�c� �eZdZdZee�Zy)�$MonthDayNanoIntervalArrayDataPrinterr�N)rrr	r
rnr�rerKrOrMr�r��r�rOr�c�"�eZdZdZd�Zd�Zd�Zy)�DecimalArrayDataPrinterz7
    ArrayDataPrinter specialization for decimals.
    c���|j}t|d�|_t|d�|_t|j
|_|jjjdz|_	y)Nr�r�r�)
rar�rr	rr�rr�r�r�)r�rvrhris    rMr�z DecimalArrayDataPrinter.__init__�s[��
�Y�Y���R��-�.�����H��&��
�2�4�>�>�B����,�,�3�3�=�=��B��rOc��yrhrKr�s rMr+z$DecimalArrayDataPrinter.display_hint�rirOc#��K�|jdk(ry|j�}|jd�j|j|j
zz}t
|�D]}\}}|rT|jj|�}|j||j|j|j����n|j|���||j
z
}�y�w)NrrF)r�rWrQr�r�r�rkrr�r\rLrr	rZ)r�rlrfr8rm�decs      rMr2z DecimalArrayDataPrinter.children�s������;�;�!����%�%�'�	��,�,�q�/�&�&����t���)F�F��!�)�,�	'�H�A�u���(�(�5�5�g�>���'�'��s�z�z�$�.�.�$�*�*�=�?�?��&�&�q�)�)��t���&�G�	'�s�C"C$N�rrr	r
r�r+r2rKrOrMr�r��s���C��'rOr�c�"�eZdZdZd�Zd�Zd�Zy)�FixedSizeBinaryArrayDataPrinterz@
    ArrayDataPrinter specialization for fixed_size_binary.
    c�,�|jd|_y)Nr�)rar�r�s   rMr�z(FixedSizeBinaryArrayDataPrinter.__init__�s���)�)�M�2��rOc��yrhrKr�s rMr+z,FixedSizeBinaryArrayDataPrinter.display_hint�rirOc#�K�|jdk(ry|j�}|jd�j|j|j
zz}t
|�D]s\}}|rJ|j
r)|j|t||j
����n(|j|d���n|j|���||j
z
}�uy�w)NrrFr~)
r�rWrQr�r�r�rkr\r�rZ)r�rlrfr8rms     rMr2z(FixedSizeBinaryArrayDataPrinter.children�s������;�;�!����%�%�'�	��,�,�q�/�&�&����t���)F�F��!�)�,�		'�H�A�u���?�?��+�+��=��$�/�/�B�D�D��+�+�A�t�4�4��&�&�q�)�)��t���&�G�		'�s�CCNr�rKrOrMr�r��s���3��'rOr�c�"�eZdZdZd�Zd�Zd�Zy)�BinaryArrayDataPrinterzD
    ArrayDataPrinter specialization for variable-sized binary.
    c��|jtjtjfv|_|jtj
tjfv|_|jrt|_	yt|_	yrJ)
rQr/r,r+�is_larger�is_utf8r�r��
format_stringr�s   rMr�zBinaryArrayDataPrinter.__init__�sW������):�):�D�<M�<M�(N�N��
��|�|����T�5F�5F�'G�G���-1�\�\�\���}��rOc��yrhrKr�s rMr+z#BinaryArrayDataPrinter.display_hintrirOc#�K�|jdk(ry|j�}|jd|jrtj
ntj|jdz��}|jd�j}t|�D]i\}}|rO||}||dz|z
}|r(|j||j||z|�����B|j|d����W|j|����ky�w)NrrFr�r�r~)
r�rWrUr�r/rrrQr�rkr\r�rZ)r�rl�offsetsr�r8rmr0r�s        rMr2zBinaryArrayDataPrinter.childrens������;�;�!����%�%�'�	��.�.�
�T�]�]�t�z�z��
�
��;�;��?�/�$�����a��%�%��!�)�,�
	*�H�A�u����
���q�1�u�~��-����+�+��4�-�-�f�u�n�d�C�E�E��+�+�A�t�4�4��&�&�q�)�)�
	*�s�C?DNr�rKrOrMr�r��s���M�
�*rOr�c�.�eZdZdZd�Zd�Zd�Zd�Zd�Zy)�ArrayPrinterz9
    Pretty-printer for arrow::Array and subclasses.
    c��t|d�}td|�|_t|jj�|_y)Nr|rB)r|rCrFr�r�rv)r�rhr�s   rMr�zArrayPrinter.__init__s8���S��\�"��,�-?��F���)�$�*;�*;�*E�*E�F��	rOc�6�|jj�SrJ)rFrDr�s rMrDzArrayPrinter._format_contents#s��� � �1�1�3�3rOc���|jjjr9|jj}d|j�d|�d|j���Sd|j�d|j���S)Nr�r�rcz of )rFr�r�rarvrDr`s  rMrTzArrayPrinter.to_string&sp�����'�'�5�5��"�"�'�'�B��T�Y�Y�K�y���B�t�7L�7L�7N�6O�P�P��T�Y�Y�K�t�D�,A�,A�,C�+D�E�ErOc�6�|jj�SrJ)rFr+r�s rMr+zArrayPrinter.display_hint-s��� � �-�-�/�/rOc�6�|jj�SrJ)rFr2r�s rMr2zArrayPrinter.children0s��� � �)�)�+�+rON)	rrr	r
r�rDrTr+r2rKrOrMr�r�s"���G�
4�F�0�,rOr�c�(�eZdZdZd�Zd�Zd�Zd�Zy)�ChunkedArrayPrinterz1
    Pretty-printer for arrow::ChunkedArray.
    c�Z�||_||_t|jd�|_y)N�chunks_)rvrhr<�chunksr�s   rMr�zChunkedArrayPrinter.__init__9s%����	��������� 3�4��rOc��yrhrKr�s rMr+z ChunkedArrayPrinter.display_hint>rirOc#�K�t|j�D]6\}}tt|��}t	|�|j�f���8y�wrJ)rkr�r�r|rbrD)r�r8�chunk�printers    rMr2zChunkedArrayPrinter.childrenAsH����!�$�+�+�.�	5�H�A�u�"�5��<�0�G��a�&�'�2�2�4�4�4�	5�s�AAc���t|jd�}|j�d|�d|jd�dt|jd��dt	|j
��d�
S)	Nrmr�z	, length �length_rc�null_count_� with z chunks)r|rhrvr�r�r�r`s  rMrTzChunkedArrayPrinter.to_stringFsj��
�4�8�8�G�$�
%���9�9�+�Y�r�d�)�D�H�H�Y�4G�3H��$�T�X�X�m�%<�=�>�?��D�K�K�(�)��2�	3rON�rrr	r
r�r+r2rTrKrOrMr�r�4s���5�
�5�
3rOr�c��eZdZeZd�Zy)�
DataTypeClassc��||_yrJr�)r�rvs  rMr�zDataTypeClass.__init__Ps	����	rON)rrr	rCrLr�rKrOrMr�r�Ms
��)��rOr�c��eZdZdZeZeZy)�
NullTypeClassFN)rrr	r�r��type_printerr�r�rKrOrMr�r�Ts���M�'�L�&�NrOr�c��eZdZdZeZeZeZ	y)�NumericTypeClassFN)
rrr	r�r�r�r�r�rbrLrKrOrMr�r�Z����M�'�L�)�N�0�rOr�c��eZdZdZeZeZeZ	y)�BooleanTypeClassFN)
rrr	r�r�r�r�r�rprLrKrOrMr�r�ar�rOr�c��eZdZdZeZeZeZ	y)�Date32TypeClassFN)
rrr	r�r�r�r�r�rurLrKrOrMr�r�h����M�'�L�(�N�/�rOr�c��eZdZdZeZeZeZ	y)�Date64TypeClassFN)
rrr	r�r�r�rr�rxrLrKrOrMr�r�or�rOr�c��eZdZdZeZeZeZ	y)�
TimeTypeClassTN�
rrr	r�r�r�r�r�rzrLrKrOrMr�r�v����M�"�L�&�N�-�rOr�c��eZdZdZeZeZeZ	y)�TimestampTypeClassTN)
rrr	r�r�r�rr�r�rLrKrOrMr�r�}s���M�'�L�+�N�2�rOr�c��eZdZdZeZeZeZ	y)�DurationTypeClassTNr�rKrOrMr�r��r�rOr�c��eZdZdZeZeZeZ	y)�MonthIntervalTypeClassFN)
rrr	r�r�r�r
r�r�rLrKrOrMr�r��s���M�'�L�/�N�6�rOr�c��eZdZdZeZeZeZ	y)�DayTimeIntervalTypeClassFN)
rrr	r�r�r�r�r�r�rLrKrOrMr�r��s���M�'�L�)�N�8�rOr�c��eZdZdZeZeZeZ	y)�MonthDayNanoIntervalTypeClassFN)
rrr	r�r�r�r�r�r�rLrKrOrMr�r��s���M�'�L�)�N�=�rOr�c��eZdZdZeZeZeZ	y)�DecimalTypeClassTN)
rrr	r�r�r�r
r�r�rLrKrOrMr�r��s���M�%�L�)�N�0�rOr�c��eZdZdZeZeZeZ	y)�BaseBinaryTypeClassFN)
rrr	r�r�r�rr�r�rLrKrOrMr�r��s���M�'�L�,�N�/�rOr�c��eZdZdZeZeZeZ	y)�FixedSizeBinaryTypeClassTN)
rrr	r�r�r�rr�r�rLrKrOrMr�r��s���M�-�L�1�N�8�rOr�c��eZdZdZeZeZy)�BaseListTypeClassTN)rrr	r�r�r�r%r�rKrOrMr�r��s���M�"�L�*�NrOr�c��eZdZdZeZeZy)�FixedSizeListTypeClassTN)rrr	r�r�r�r%r�rKrOrMr�r��s���M�+�L�*�NrOr�c��eZdZdZeZeZy)�MapTypeClassTN)rrr	r�r�r�r@r�rKrOrMr�r��s���M�!�L�%�NrOr�c��eZdZdZeZeZy)�StructTypeClassTN)rrr	r�r�r�r(r�rKrOrMr�r��s���M�$�L�(�NrOr�c��eZdZdZeZeZy)�DenseUnionTypeClassTN)rrr	r�r�r�r=r�rKrOrMr�r��s���M�#�L�,�NrOr�c��eZdZdZeZeZy)�SparseUnionTypeClassTN)rrr	r�r�r�r5r�rKrOrMr�r��s���M�#�L�-�NrOr�c��eZdZdZeZeZy)�DictionaryTypeClassTN)rrr	r�r�r�r!r�rKrOrMr�r��s���M�(�L�,�NrOr�c��eZdZdZeZeZy)�ExtensionTypeClassTN)rrr	r�r�r�rHr�rKrOrMr�r��s���M�'�L�+�NrOr��DataTypeTraits)�factoryrvr}r~rc�h�tj|�}|�|j|j�Sy)zL
    Lookup a type class (an instance of DataTypeClass) by its type id.
    N)�type_traits_by_idrr�rv)rQr�s  rMr�r�"s0���
"�
"�7�
+�F�
���~�~�f�k�k�*�*�rOc��eZdZdZidd�dd�dd�dd	�d
d�dd
�dd�dd�dd�dd�dd�dd�dd�dd�dd�d d!�d"d#�Zd$�Zd%�Zd&�Zd'�Zy())�
StatusPrinterz+
    Pretty-printer for arrow::Status.
    r�OKrF�OutOfMemoryr��KeyErrorrrzr��Invalid��IOErrorrG�
CapacityError�rDr��	CancelledrH�UnknownError�
�NotImplemented��SerializationError�
�RError�(�CodeGenError�)�ExpressionValidationError�*�ExecutionError�-�
AlreadyExistsc��||_yrJr�r�s   rMr�zStatusPrinter.__init__Dr�rOc�H�t|d�j�}t|�dk(rytt	j
t
|��d���}tt	j
t
|��d���}d|j��d|j���S)N�detailrz->type_id()z->ToString().c_str()rPz] )	rwrr�r�rWrrkr�r�)r��state�
detail_ptr�	detail_id�
detail_msgs     rM�_format_detailzStatusPrinter._format_detailGs����u�X��/�3�3�5�
��z�?�a����C�.�.��j�)�*�+�6�8�9�	��S�/�/��j�)�*�*>�?�A�B�
��9�#�#�%�&�b��)B�)B�)D�(E�F�FrOc���t|d�}|jj|�}|�d|�d�}nd|�d�}|t|d�j	�z
}|j|�}|�	|d|�d�zS|dzS)	Nrdzarrow::Status::r�zarrow::Status(<unknown code z>, �msgz	, detail=r�)r��_status_codes_by_idrr*r�r)r�r
rd�codenamer^r
s      rM�
_format_errorzStatusPrinter._format_errorRs����5��=�!���+�+�/�/��5����!�(��1�-�A�.�t�f�C�8�A�	�Y�u�U�|�
$�
3�
3�
5�5���(�(��/�
��!���:�,�a�0�0�0��s�7�NrOc�|�|jd}t|�dk(ry|j|j��S)N�state_rzarrow::Status::OK())rhr�rru)r��	state_ptrs  rMrTzStatusPrinter.to_string`s9���H�H�X�&�	��y�>�Q��(��!�!�)�"7�"7�"9�:�:rON)	rrr	r
rr�rrrTrKrOrMr�r�,s�����	�4��	�=��	
�:��	
�;�	�
	
�9��	
�9�
�	
�?��	
�<��	
�;��	
�>��	���	� ��	�H��	�N��	�'�� 	��!�"	�O�#��(�	G��;rOr�c��eZdZdZd�Zy)�
ResultPrinterz.
    Pretty-printer for arrow::Result<T>.
    c�\�|jjjd�}|jdd}t|�dk7r|j	|�}nM|jddj
}|sJ�|j
|j��j�}d|�d|�d�S)	Nr�status_r�storage_r|zarrow::Result<z>(r�)	rhrar�r�rrfr�r�ru)r��	data_typer�inner�data_ptrs     rMrTzResultPrinter.to_stringls����H�H�M�M�3�3�A�6�	��H�H�Y�'��1�	��y�>�Q���&�&�y�1�E��x�x�
�+�G�4�<�<�H��O�8��-�-��!�!�#�%�%0�[�]�
��	�{�"�U�G�1�5�5rONr�rKrOrMrrgs���
6rOrc��eZdZdZd�Zd�Zy)�FieldPrinterz*
    Pretty-printer for arrow::Field.
    c��||_yrJr�r�s   rMr�zFieldPrinter.__init__~r�rOc��t|j�}|j}|rd|j�d|j�d�Sd|j�d|j�d�S)Nz
arrow::field(rcr�z, nullable=false))r`rhrrrvra)r�r?rrs   rMrTzFieldPrinter.to_string�sV���$�(�(�O���:�:���"�1�6�6�(�"�Q�V�V�H�A�6�6�"�1�6�6�(�"�Q�V�V�H�4E�F�FrON�rrr	r
r�rTrKrOrMr r ys����GrOr c�(�eZdZdZd�Zd�Zd�Zd�Zy)�MetadataPrinterz5
    Pretty-printer for arrow::KeyValueMetadata.
    c�F�||_t|j�|_yrJ)rhr�r r�s   rMr�zMetadataPrinter.__init__�s����� ����*��
rOc��yr*rKr�s rMr+zMetadataPrinter.display_hint�r,rOc#�K�|jD]-\}}d|j�f��d|j�f���/y�w)Nr�rx)r r�)r��krLs   rMr2zMetadataPrinter.children�sA�����M�M�	/�D�A�q��!�/�/�+�,�,��A�O�O�-�.�.�	/�s�>Ac�2�dt|j���S)Nz arrow::KeyValueMetadata of size )r�r r�s rMrTzMetadataPrinter.to_string�s��1�#�d�m�m�2D�1E�F�FrONr�rKrOrMr%r%�s���+��/�
GrOr%c�(�eZdZdZd�Zd�Zd�Zd�Zy)�
SchemaPrinterz+
    Pretty-printer for arrow::Schema.
    c�2�||_t|�|_yrJ)rhrr*r�s   rMr�zSchemaPrinter.__init__�s������S�k��rOc��yr*rKr�s rMr+zSchemaPrinter.display_hint�r,rOc#�K�|jjD]0}d|jj�f��d|jf���2y�w)Nrvra)r*rrvr�ra)r�r1s  rMr2zSchemaPrinter.children�sF�����[�[�'�'�	'�E��5�:�:�4�4�6�7�7��5�:�:�&�&�	'�s�AA
c��t|jj�}t|jj�}|dkDr	d|�d|�d�Sd|�d�S)Nrzarrow::Schema with z fields and � metadata itemsz fields)r�r*rr )r��
num_fields�md_itemss   rMrTzSchemaPrinter.to_string�s_������+�+�,�
��t�{�{�+�+�,���a�<�)�*��6�#�*�O�5�
6�)���G�<�<rONr�rKrOrMr,r,�s���"�
�'�
=rOr,c�$�eZdZd�Zd�Zd�Zd�Zy)�BaseColumnarPrinterc�d�||_||_||_|jj|_yrJ)rvrh�columnarr*)r�rvrhr7s    rMr�zBaseColumnarPrinter.__init__�s(����	���� ��
��m�m�*�*��rOc��yr*rKr�s rMr+z BaseColumnarPrinter.display_hint�r,rOc#��K�t|jj|jj�D])\}}d|j
j
�f��d|f���+y�w)Nrvrx)r.r*rr7r+rvr�)r�r1�cols   rMr2zBaseColumnarPrinter.children�sY�����d�k�k�0�0�"�m�m�3�3�5�	!�J�E�3��5�:�:�4�4�6�7�7��C�.� �	!�s�A"A$c	��t|jj�}|jj}t|jj
�}|dkDrd|j�d|�d|�d|�d�	Sd|j�d|�d|�d�S)Nrr�r�z
 columns, z rows, r1z rows)r�r*rr7r/r rv)r�r2r/r3s    rMrTzBaseColumnarPrinter.to_string�s�������+�+�,�
��=�=�)�)���t�{�{�+�+�,���a�<��d�i�i�[��z�l�*��j���z��B�
C��d�i�i�[��z�l�*��j��'�
(rON)rrr	r�r+r2rTrKrOrMr5r5�s��+��!�	(rOr5c��eZdZdZd�Zy)�RecordBatchPrinterz0
    Pretty-printer for arrow::RecordBatch.
    c�F�tj|d|t|��y)Nr#)r5r�r#r�s   rMr�zRecordBatchPrinter.__init__�s���$�$�T�=�#�{�3�?O�PrONr!rKrOrMr=r=�s
���QrOr=c��eZdZdZd�Zy)�TablePrinterz*
    Pretty-printer for arrow::Table.
    c�F�tj|d|t|��y)Nr3)r5r�r3r�s   rMr�zTablePrinter.__init__�s���$�$�T�7�C��s��DrONr!rKrOrMr@r@�s
���ErOr@c��eZdZdZd�Zd�Zy)�DatumPrinterz*
    Pretty-printer for arrow::Datum.
    c�8�||_t|d�|_y)Nrx)rhr!�variantr�s   rMr�zDatumPrinter.__init__�s������s�7�|�,��rOc��|jjdk(ry|jj�yt|jj�}d|��S)Nrzarrow::Datum (empty)z(arrow::Datum (uninitialized or corrupt?)zarrow::Datum of value )rEr$r%r|rxr�s  rMrTzDatumPrinter.to_string�sK���<�<����"�)��<�<�"�"�*�=��d�l�l�(�(�)��'��w�/�/rONr#rKrOrMrCrC�s���-�0rOrCc��eZdZdZd�Zd�Zy)�
BufferPrinterz:
    Pretty-printer for arrow::Buffer and subclasses.
    c� �||_||_yrJ)rvrhr�s   rMr�zBufferPrinter.__init__	s����	���rOc�F�t|jd�rd}nd}t|jd�}|dk(rd|j�d|��S|jdsd|j�d	|�d
|�d�St	|jd|�}d|j�d	|�d
|�d
|��S)
N�is_mutable_�mutablez	read-onlyrzrr�z of size 0, �is_cpu_rrcz, not on CPUr|)rqrhr�rvr�)r�rLr�r�s    rMrTzBufferPrinter.to_string	s��������'�(��G�!�G��4�8�8�G�$�%���1�9��T�Y�Y�K�|�G�9�=�=��x�x�	�"��T�Y�Y�K�y���b��	��N�N��T�X�X�g�.��5�������9�T�F�"�W�I�R��v�F�FrONr#rKrOrMrHrH�s����GrOrHc��eZdZdZd�Zd�Zy)�DayMillisecondsPrinterzI
    Pretty-printer for arrow::DayTimeIntervalType::DayMilliseconds.
    c��||_yrJr�r�s   rMr�zDayMillisecondsPrinter.__init__	r�rOc�N�t|jd|jd�S)Nr�r�)r�rhr�s rMrTz DayMillisecondsPrinter.to_string	s(��'�����(8�(,����(@�B�	BrONr#rKrOrMrOrO	s����BrOrOc��eZdZdZd�Zd�Zy)�MonthDayNanosPrinterzL
    Pretty-printer for arrow::MonthDayNanoIntervalType::MonthDayNanos.
    c��||_yrJr�r�s   rMr�zMonthDayNanosPrinter.__init__'	r�rOc�j�t|jd|jd|jd�S)Nr�r��nanoseconds)r�rhr�s rMrTzMonthDayNanosPrinter.to_string*	s4��'�����(:�(,����(8�(,����(?�A�	ArONr#rKrOrMrSrS"	s����ArOrSc��eZdZdZd�Zd�Zy)�DecimalPrinterz2
    Pretty-printer for Arrow decimal values.
    c�.�||_||_||_yrJ)rvrhr�)r�r�rvrhs    rMr�zDecimalPrinter.__init__5	s����	����"��rOc��t|jj|j�}|j�dt|��d�Sr�)�decimal_bits_to_classr�r�rhrvr�)r�r�s  rMrTzDecimalPrinter.to_string:	s:��#�D�N�N�3�>�>�t�x�x�H���)�)��A�c�#�h�Z�q�)�)rONr#rKrOrMrXrX0	s���#�
*rOrXrBzarrow::BasicDecimal128zarrow::BasicDecimal256zarrow::ChunkedArrayzarrow::Datumz+arrow::DayTimeIntervalType::DayMillisecondszarrow::Decimal128zarrow::Decimal256z.arrow::MonthDayNanoIntervalType::MonthDayNanoszarrow::Fieldzarrow::KeyValueMetadatazarrow::RecordBatchz
arrow::Resultz
arrow::Schemar%r5z
arrow::Statuszarrow::Tablec��|jj�j}|�y|jd�d}tj|�}|�	|||�S|j
d�sy|td�d}|jd�r	|dt||�S|jd�r9	t|d�}t|�}|�|j|j|�Sy|jd�rt|�S|jd	�r	|d
t|�Sy#t$rYywxYw#t$rYywxYw#t$rYywxYw)N�<rr�rxr|r/r�r�r�r�)ra�strip_typedefsrv�	partition�printersrrcr�r�rH�	Exceptionr�r�r�r�r�)rhrvr��
arrow_namerQr�s      rM�arrow_pretty_printrcU	sn���8�8�"�"�$�)�)�D��|���>�>�#��q�!�D��l�l�4� �G����t�S�!�!��?�?�9�%���c�)�n�o�&�J����8�$�	2���L�
!��S�1�1�	�	�	�V�	$�	E��#�e�*�o�G�
+�7�3�J��%�!�.�.�z����D�D�&�
�	�	�W�	%��C� � �	�	�	�X�	&�	&��
�O�
!��%�%�
'��-�	��	���	��	���	��	�s6�D(�1D7�E�(	D4�3D4�7	E�E�	E�Ec�z�tj�}|�t}|jjt�yrJ)rW�current_objfile�pretty_printers�appendrc)�objfiles rM�mainri�	s1���!�!�#�G��������"�"�#5�6rO�__main__rJ)��collectionsr�collections.abcrr�r�enum�	functoolsrr�	itertoolsr��operatorr�r\rZrW�	gdb.typesr�version_info�	_type_ids�IntEnumr/r1rrrrrr
rrrrrrrrrrrr.r*rr�rCr2r3r4r5r�rNrRr_rkrpr|�ordr�rQ�cr�r�r�r�r�r�r�r�r�r�r�r��	toordinalr�r�r�r�r�r�r�r�rwryr!r*r<rVr^r`rurxr�r�r�r�r�r�r�r�r�r�r�rr�rrr[�itemsrrrr#r3r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
r
rrr!r%r(r5r=r@rHrCrbrprurxrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r	r
rrr+r,rr r!r"r-r)r'r#r$r%r&r(r�r��max_type_idr�r�rr r%r,r5r=r@rCrHrOrSrXr`rcrir)�bitsr�s00rM�<module>r{s���$#�$����(����
�
��
�$������a��F�!F�F��
=�	��t�|�|�F�I�Q�/���4�<�<�
�$H��!����I�I�s���J�J���	�J�J���	�J�J��	�
	�J�J���	�K�K��
�	�K�K���	�K�K���	�O�O�S��	�J�J���	�K�K���	�K�K���	�K�K���	�K�K���	�K�K��� 	���D�!�"	���#�#�$	� � �%��M�M�3��N�N�C�)��.�,�/D�E��
�O�O�^�A�q�)��N�N�N�5�!�,��N�N�N�9�a�0��M�M�>�-��3�	��
�I����
��0�,<�E� ��I�u���I�u���I�u���I�u���H�e���
�q�"��3�A��'�'�'*�1�S�'�]���"�3�
@�0�
�&�G��'�-��&�(��X�]�]�4��A�
&�
0�
0�
2�
�
%�
&� +�*!�
 ��)�)�D'�'�8'�'�4��<&)�&)�R2��2�j1�9�1�
(�)�
(���0%�u�%�"�"�J(�(�8(7�&�(7�V9��9�:'�X�'�D
+��
+�
,�X�
,�8��8�&�j�"2�3��L�x�L�"�(��&�?�,M�N�
�
�s�D�	!�	�s�F�	#���
::�::�z!��!�!��!�

�	���-�2�2�4����s��d�V�4��#����;�;�,	7�	7�%�%�&%�%�$&���&��9�&���&���	&�
�(�&���
&��(�&���&��(�&���&��Y�&���&��)�&��(�&��(�&� �(�!&�"�(�#&�$�[�%&�&�)�'&�(�.�)&�*� 9�+&�,�J�-&�.�l�/&�0�l�1&�2�&�3&�4�|�5&�6�(�7&�8�~�9&�:�.�;&�<��=&�>�\�?&�@�*�A&�B�u�C&�D�)�E&�F&�#�"�K&�
�R3�3�0*�;�*�	<�k�	<�
@�?�
@�1��1�>��>�5�k�5�&
>��
>�<�_�<�$
'�K�
'�7��7�	W�{�	W�>�;�>�*(�*(�Z#�
�#�9�=�9�"
?�
�
?�	H�+�	H�	H�+�	H�F�]�F�	P��	P�B�=�B�*5�m�5�,?�#:�?�,�m�,�	9�M�	9�(�-�(�0
9�}�
9�""�m�"�
<�}�
<� K�]�K�V.�V.�r*�.�*�2
@�5�
@�0�4�0�0�4�0�
*�2�
*�	0� 7�	0�8�$;�8�;�&=�;�;�+B�;�'�.�'�<'�&6�'�8*�-�*�D,�,�63�3�2��'�M�'�1�}�1�1�}�1�0�m�0�0�m�0�.�M�.�3��3�.�
�.�7�]�7�9�}�9�>�M�>�1�}�1�0�-�0�9�}�9�+�
�+�+�]�+�&�=�&�)�m�)�-�-�-�.�=�.�-�-�-�,��,��,�.A�B��5��G�G�^�M�:�
6�5�	�I�I�~�.�
�>�5�
	�J�J��/��=�5�	�I�I�~�.�
�;�
5�	�K�K�� 0�,�?�5�	�J�J��/��=�5�	�K�K�� 0�,�?�5�	�J�J��/��=�5�	�K�K�� 0�,�?�5�	�J�J��/��=�5�	�O�O�^�$4�o�F�5�	�J�J��/��=�5�	�K�K�� 0�,�?�5�"	�K�K�� 3�\�B�#5�$	�K�K�� 3�\�B�%5�&	���~�&9�;L�M�'5�(	���~�&9�;L�M�)5�,	���N�+C�+@�B�-5�2	�K�K����>�35�4	�K�K����>�55�6	�N�N�N�#5��G�75�8	�K�K��
�|�<�95�:	�K�K��
�|�<�;5�<	�M�M�>�"3�^�D�=5�>	���.�)?�)<�>�?5�B	���N�+C�+@�B�C5�F	� � �.�1N�1K�#M�G5�L	�O�O�^�$4�6F�G�M5�N	�O�O�^�$4�6F�G�O5�R	�I�I�~�/��<�S5�T	�O�O�^�$5��G�U5�V	���.�)?�)<�>�W5�Z	�H�H�n�\�9�5�[5�^	�K�K����>�_5�`	���~�&:�<M�N����n�%8�:J�K��O�O�^�$7�9I�J��N�N�N�#5��G�i5��n�#�$�q�(���8;�8;�v6�M�6�$G�G�"G�G�*=�=�8(�(�:Q�,�Q�E�&�E�0�0�(G�G�.
B�
B�A�A�*�*���(���g�n�c�:���g�n�c�:���.�	�
�L��2�3I�
�����5������5��5�6J���L������,���]���]��� 2�� �,�!�"�]�#�$�L�%��,-&�`
7��z���F���M/s�p