
    aj2	                        d dl mZ d dlmZmZmZ d dlmZ d dlZ	d dl
mZ d dlZd dlmZ erd dlZd dlmZ d dlmZ d d	lmZmZ  e	j        d
          Z G d de          Z G d de          ZddZddZdS )    )annotations)TYPE_CHECKINGClassVarSelf)UUIDN)ExtensionDtype)ExtensionArray)Iterable)NDArray)DtypeScalarIndexerV16c                  \    e Zd ZU dZded<   eZded<   edd            Ze	j
        Z
ded	<   d
S )	UuidDtypeuuidzClassVar[str]namezClassVar[builtins.type[UUID]]typereturn!builtins.type[UuidExtensionArray]c                    t           S N)UuidExtensionArray)clss    i/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/pandas/tests/extension/uuid/test_uuid.pyconstruct_array_typezUuidDtype.construct_array_type'   s    !!    kindN)r   r   )__name__
__module____qualname__r   __annotations__r   r   classmethodr   _UuidNumpyDtyper    r   r   r   r   !   sj          !D    *.D...." " " [" *.D......r   r   c                  v    e Zd ZU ded<   ddddZ e            Zded<   eddddd            ZddZ	ddZ
dS )r   zNDArray[np.void]_dataFcopyvaluesIterable[UUID]r(   boolr   Nonec               Z    t          j        d |D             t                    | _        d S )Nc                    g | ]	}|j         
S r$   bytes).0xs     r   
<listcomp>z/UuidExtensionArray.__init__.<locals>.<listcomp>5   s    7771qw777r   )dtype)nparrayr#   r&   )selfr)   r(   s      r   __init__zUuidExtensionArray.__init__4   s+    X77777OOO


r   zClassVar[UuidDtype]r4   N)r4   r(   scalarsDtype | Noner   c               <    |t                      } | ||          S )Nr'   )r   )r   r9   r4   r(   s       r   _from_sequencez!UuidExtensionArray._from_sequence;   s'     =KKEs7&&&&r   indexr   r   c                    t          |t          t          j        z            sJ t	          | j        |                                                   S )Nr/   )
isinstanceintr5   integerr   r&   tobytes)r7   r=   s     r   __getitem__zUuidExtensionArray.__getitem__G   sC    %rz!122222$*U+33556666r   r@   c                *    t          | j                  S r   )lenr&   )r7   s    r   __len__zUuidExtensionArray.__len__K   s    4:r   )r)   r*   r(   r+   r   r,   )r9   r*   r4   r:   r(   r+   r   r   )r=   r   r   r   )r   r@   )r   r   r    r!   r8   r   r4   r"   r<   rC   rF   r$   r   r   r   r   /   s          ?D P P P P P P
 "+E,,,,
 #	' 	' 	' 	' 	' [	'7 7 7 7     r   r   r   r,   c                     ddl m}  t          t          d           |             x}g          }|d         j        dk    sJ |d         |k    sJ dS )zKTests that we can construct UuidExtensionArray from a list of valid values.r   uuid4)r@      N)r   rI   r   r   r@   )rI   uas      r   test_constructrM   O   s`    DQKKKeegg677AQ48q====Q41999999r   c                     ddl m}  t          j         |             x}gt	                      d          }t          |          t          |          v sJ dS )z>Tests that Series accepts (unstructured) void ExtensionDtypes.r   rH   s)r4   r   N)r   rI   pdSeriesr   str)rI   rK   rO   s      r   test_seriesrS   X   s]    
	<1.	#>>>Aq66SVVr   )r   r,   )
__future__r   typingr   r   r   r   r   numpyr5   pandas.core.dtypes.dtypesr   pandasrP   pandas.core.arrays.baser	   builtinscollections.abcr
   numpy.typingr   pandas._typingr   r   r4   r#   r   r   rM   rS   r$   r   r   <module>r^      s   " " " " " "         
           4 4 4 4 4 4     2 2 2 2 2 2 	OOO(((((($$$$$$        "(5/// / / / / / / /       @        r   