XylotrechusZ
�
� h�� � �" � d Z ddlZddlmZ ddlmZ ddlmZ ddlm Z
dd lmZ dd
l
mZ ddlmZ g d�Ze
j Zd
ddd
ddddd
dddddd�Zej Zd� Z ed� � G d� d� � � � Z G d� dej � � Z G d� de� � Zd� Z ed� � d%d�� � Z ed� � d%d�� � Z ed� � d&d �� � Zd!� Z ed� � d&d"�� � Z ed� � d'd$�� � Z!dS )(a�
Record Arrays
=============
Record arrays expose the fields of structured arrays as properties.
Most commonly, ndarrays contain elements of a single type, e.g. floats,
integers, bools etc. However, it is possible for elements to be combinations
of these using structured types, such as::
>>> a = np.array([(1, 2.0), (1, 2.0)], dtype=[('x', np.int64), ('y', np.float64)])
>>> a
array([(1, 2.), (1, 2.)], dtype=[('x', '<i8'), ('y', '<f8')])
Here, each element consists of two fields: x (and int), and y (a float).
This is known as a structured array. The different fields are analogous
to columns in a spread-sheet. The different fields can be accessed as
one would a dictionary::
>>> a['x']
array([1, 1])
>>> a['y']
array([2., 2.])
Record arrays allow us to access fields as properties::
>>> ar = np.rec.array(a)
>>> ar.x
array([1, 1])
>>> ar.y
array([2., 2.])
� N)�Counter)�nullcontext� )�
set_module� )�numeric)�numerictypes)� os_fspath)�_get_legacy_print_mode)�record�recarray�
format_parser�
fromarrays�fromrecords�
fromstring�fromfile�array�>�<�=�s�|)�b�l�n�B�L�N�Sr r r r r �I�ic �X � d� t | � � � � � D � � S )z@Find duplication in a list, return a list of duplicated elementsc �$ � g | ]
\ }}|d k �|��S �r � )�.0�item�countss �I/opt/cloudlinux/venv/lib64/python3.11/site-packages/numpy/core/records.py�
<listcomp>z"find_duplicate.<locals>.<listcomp>P s- � � � � ��D�&��A�:�:�
��:�:� )r �items)�lists r) �find_duplicater. N s5 � �� �#�D�M�M�/�/�1�1�� � � r+ �numpyc �. � e Zd ZdZdd�Zd d�Zd� Zd� ZdS )
r a�
Class to convert formats, names, titles description to a dtype.
After constructing the format_parser object, the dtype attribute is
the converted data-type:
``dtype = format_parser(formats, names, titles).dtype``
Attributes
----------
dtype : dtype
The converted data-type.
Parameters
----------
formats : str or list of str
The format description, either specified as a string with
comma-separated format descriptions in the form ``'f8, i4, a5'``, or
a list of format description strings in the form
``['f8', 'i4', 'a5']``.
names : str or list/tuple of str
The field names, either specified as a comma-separated string in the
form ``'col1, col2, col3'``, or as a list or tuple of strings in the
form ``['col1', 'col2', 'col3']``.
An empty list can be used, in that case default field names
('f0', 'f1', ...) are used.
titles : sequence
Sequence of title strings. An empty list can be used to leave titles
out.
aligned : bool, optional
If True, align the fields by padding as the C-compiler would.
Default is False.
byteorder : str, optional
If specified, all the fields will be changed to the
provided byte-order. Otherwise, the default byte-order is
used. For all available string specifiers, see `dtype.newbyteorder`.
See Also
--------
dtype, typename, sctype2char
Examples
--------
>>> np.format_parser(['<f8', '<i4', '<a5'], ['col1', 'col2', 'col3'],
... ['T1', 'T2', 'T3']).dtype
dtype([(('T1', 'col1'), '<f8'), (('T2', 'col2'), '<i4'), (('T3', 'col3'), 'S5')])
`names` and/or `titles` can be empty lists. If `titles` is an empty list,
titles will simply not appear. If `names` is empty, default field names
will be used.
>>> np.format_parser(['f8', 'i4', 'a5'], ['col1', 'col2', 'col3'],
... []).dtype
dtype([('col1', '<f8'), ('col2', '<i4'), ('col3', '<S5')])
>>> np.format_parser(['<f8', '<i4', '<a5'], [], []).dtype
dtype([('f0', '<f8'), ('f1', '<i4'), ('f2', 'S5')])
FNc � � | � ||� � | � ||� � | � |� � d S �N)�
_parseFormats�_setfieldnames�_createdtype)�self�formats�names�titles�aligned� byteorders r) �__init__zformat_parser.__init__� sH � ����7�G�,�,�,����E�6�*�*�*����)�$�$�$�$�$r+ c � �� |�t d� � �t |t � � r-t j d� t |� � D � � |� � }nt j ||� � }|j ���t j d|fg|� � }|j �|j }�fd�|D � � | _ �fd�|D � � | _ t |� � | _ dS )z Parse the field formats NzNeed formats argumentc �B � g | ]\ }}d � |� � |f��S )zf{})�format)r&