
    i                     T    d dl mZ d dlmZ d dlmZ d dlmZ  G d de          ZdS )	   )
ArrowArray)DataFrameImpl)BaseMetaClass)errorsc                       e Zd ZdZd Zed             Zed             Zd ZddZ	de
e         fdZde
e         fd	Zd
edefdZdedefdZdefdZdefdZdS )	DataFrameNc                 B    t          j        t           j                   d S N)r   
_raise_errERR_INTERNAL_CREATION_REQUIREDselfs    b/var/www/html/Pagina-Ingenieria-Requisitos/venv/lib/python3.11/site-packages/oracledb/dataframe.py__init__zDataFrame.__init__)   s    &?@@@@@    c                 ~    |                      |           }|                    t          j        |                     |S r
   )__new___initializer   from_arrow_stream)clsobjdfs      r   _from_arrowzDataFrame._from_arrow,   s5    [[
}6s;;<<<	r   c                 Z    |                      |           }|                    |           |S r
   )r   r   )r   implr   s      r   
_from_implzDataFrame._from_impl2   s*    [[
t	r   c                     || _         d |                                D             | _        i | _        | j        D ]}|| j        |j        <   dS )zB
        Initializes the object given the implementation.
        c                 6    g | ]}t          j        |          S  )r   r   .0as     r   
<listcomp>z)DataFrame._initialize.<locals>.<listcomp>=   s#    LLLQ
-a00LLLr   N)_impl
get_arrays_arrays_arrays_by_namename)r   r   arrays      r   r   zDataFrame._initialize8   s_     
LL$//:K:KLLL!\ 	5 	5E/4D ,,	5 	5r   c                 V    |t          d          | j                                        S )z
        Returns the ArrowArrayStream PyCapsule which allows direct conversion
        to foreign data frames that support this interface.
        Nrequested_schema)NotImplementedErrorr$   get_stream_capsule)r   r+   s     r   __arrow_c_stream__zDataFrame.__arrow_c_stream__B   s-    
 '%&8999z,,...r   returnc                     | j         S )ze
        Returns a list of ArrowArray objects, each containing a select list
        column.
        r&   r   s    r   column_arrayszDataFrame.column_arraysK   s    
 |r   c                 $    d | j         D             S )zG
        Returns a list of the column names in the data frame.
        c                     g | ]	}|j         
S r   )r(   r    s     r   r#   z*DataFrame.column_names.<locals>.<listcomp>V   s    ---1---r   r1   r   s    r   column_nameszDataFrame.column_namesR   s     .-----r   ic                     |dk     s||                                  k    r(t          d| d|                                   d          | j        |         S )z
        Returns an :ref:`ArrowArray <oraclearrowarrayobj>` object for the
        column at the given index ``i``. If the index is out of range, an
        IndexError exception is raised.
            zColumn index z% is out of bounds for DataFrame with z columns)num_columns
IndexErrorr&   )r   r6   s     r   
get_columnzDataFrame.get_columnX   sr     q55A))++++? ? ?"&"2"2"4"4? ? ?   |Ar   r(   c                 `    	 | j         |         S # t          $ r t          d| d          w xY w)z
        Returns an :ref:`ArrowArray <oraclearrowarrayobj>` object for the
        column with the given name ``name``. If the column name is not found,
        a KeyError exception is raised.
        zColumn z not found in DataFrame)r'   KeyError)r   r(   s     r   get_column_by_namezDataFrame.get_column_by_namee   sO    	D'-- 	D 	D 	DBTBBBCCC	Ds    -c                 *    t          | j                  S )zB
        Returns the number of columns in the data frame.
        lenr&   r   s    r   r9   zDataFrame.num_columnsp   s     4<   r   c                 6    t          | j        d                   S )z?
        Returns the number of rows in the data frame.
        r8   r@   r   s    r   num_rowszDataFrame.num_rowsv   s     4<?###r   r
   )__name__
__module____qualname__r$   r   classmethodr   r   r   r.   listr   r2   strr5   intr;   r>   r9   rC   r   r   r   r   r   &   sC       EA A A   [
   [
5 5 5/ / / /tJ/    .d3i . . . .C J    	Ds 	Dz 	D 	D 	D 	D!S ! ! ! !$# $ $ $ $ $ $r   r   )	metaclassN)	arrow_arrayr   
arrow_implr   baser    r   r   r   r   r   <module>rP      s   @ $ # # # # # % % % % % %            T$ T$ T$ T$ T$- T$ T$ T$ T$ T$ T$r   