
    Ef                     ^    d Z ddlZddlmZ ddlmZ ddlmZ  G d de          Zd Z	d	 Z
dS )
z
    pyexcel_io.database.querysets
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    The lower level handler for querysets

    :copyright: (c) 2014-2022 by Onni Software Ltd.
    :license: New BSD License, see LICENSE for more details
    N)chain)DEFAULT_SHEET_NAME)ISheetc                   *    e Zd ZdZd Zd Zd Zd ZdS )QuerysetsReaderzturn querysets into an arrayc                 :    t           | _        || _        || _        d S N)r   name_QuerysetsReader__column_names_QuerysetsReader__query_sets)self
query_setscolumn_namess      _/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pyexcel_io/database/querysets.py__init__zQuerysetsReader.__init__   s    &	*&    c                 8    t          | j        g| j                  S r	   )r   r   r   )r   s    r   row_iteratorzQuerysetsReader.row_iterator   s    d)*D,=>>>r   c              #      K   t          | j                  dk    rg V  |                                 D ]5}g }|                     |          D ]}|                    |           |V  6dS )z2
        Convert query sets into an array
        r   N)lenr   r   column_iteratorappend)r   row
row_valuesvalues       r   to_arrayzQuerysetsReader.to_array   s       t !!Q&&HHH$$&& 	 	CJ--c22 ) )!!%((((		 	r   c              #      K   | j         d S t          |t                    r|D ]}|V  d S | j         D ]+}d|v rt          ||          }nt	          ||          }|V  ,d S )N__)r   
isinstancelistget_complex_attributeget_simple_attribute)r   r   elementcolumnr   s        r   r   zQuerysetsReader.column_iterator)   s      &Fc4   
	    -  6>>1#v>>EE0f==E r   N)__name__
__module____qualname____doc__r   r   r   r    r   r   r   r      sV        &&' ' '
? ? ?      r   r   c                     |                     d          }| }	 |D ]}t          ||          }n# t          $ r d}Y nw xY w|S )zrecursively get an attributer   N)splitr"   AttributeError)r   	attribute
attributesr   
attributees        r   r!   r!   :   sk    &&JE$ 	< 	<J(
;;EE	<   Ls   / >>c                     t          | |          }t          |t          j        t          j        f          r|                                }|S )zget dotted attribute)getattrr   datetimedatetime	isoformat)r   r-   r   s      r   r"   r"   F   s@    C##E%(-788 "!!Lr   )r(   r2   	itertoolsr   pyexcel_io.constantsr   $pyexcel_io.plugin_api.abstract_sheetr   r   r!   r"   r)   r   r   <module>r9      s            3 3 3 3 3 3 7 7 7 7 7 7& & & & &f & & &R	 	 	    r   