
    Ef                     r    d Z 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
 G d d	e	          ZdS )
z
    pyexcel_io.sheet
    ~~~~~~~~~~~~~~~~~~~

    The io interface to file extensions

    :copyright: (c) 2014-2022 by Onni Software Ltd.
    :license: New BSD License, see LICENSE for more details
    N)_index_filter)irange)NamedContentc                   V    e Zd ZdZ	 	 	 	 	 	 	 	 	 ddZd Zd Zd	 Zd
 Zd Z	d Z
d ZdS )SheetReaderz
    Generic sheet reader
    r   NFc                    || _         i | _        | j                            |           || _        || _        || _        || _        t          | _        t          | _	        || _
        |	| _        |
| _        |r|| _        |r	|| _	        d S d S N)_native_sheet	_keywordsupdate
_start_row
_row_limit_start_column_column_limitr   	_skip_row_skip_column_skip_empty_rows_row_rendererkeep_trailing_empty_cells)selfsheet	start_row	row_limitstart_columncolumn_limitskip_row_funcskip_column_funcskip_empty_rowsrow_rendererr   deprecated_use_of_keywords_heres               R/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pyexcel_io/sheet.py__init__zSheetReader.__init__   s     #=>>>##))&) /))B& 	+*DN 	1 0D	1 	1    c              #     K   t          |                                           D ]8\  }}|                     || j        | j                  }|t
          j        k    r8|t
          j        k    r dS g }g }t          |                     |                    D ]\  }}| 	                    || j
        | j                  }|t
          j        k    r7|t
          j        k    r nB| j        r|                    |           f|                    |           ||dk    r||z  }g }| j        rt          |          dk     r| j        r|                     |          }|V  :dS )z+2 dimentional representation of the contentN    )	enumeraterow_iteratorr   r   r   	constants	SKIP_DATASTOP_ITERATIONcolumn_iteratorr   r   r   r   appendr   lenr   )	r   	row_indexrowrow_position
return_rowtmp_rowcolumn_index
cell_valuecolumn_positions	            r"   to_arrayzSheetReader.to_array5   s     '(9(9(;(;<< '	 '	NIs>>4?DO L y222!999JG,5$$S))- - % %(j #'"3"3 $"4d6H# # #i&999$	(@@@E1 %%%j1111NN:...!-*2B2B"g-
"$$ Z1)<)< ! <!//
;;
O'	 '	r$   c                 D    t          |                                           S )z
        iterate each row

        override this function in the sitation where
        number_of_rows() is difficult or costly to implement
        )r   number_of_rowsr   s    r"   r)   zSheetReader.row_iterator`   s     d))++,,,r$   c              #      K   t          |                                           D ]}|                     ||          V  dS )z
        iterate each column of a given row

        override this function in the sitation where
        number_of_columns() is difficult or costly to implement
        N)r   number_of_columnsr6   r   r1   columns      r"   r-   zSheetReader.column_iteratori   sR       T335566 	/ 	/F//#v......	/ 	/r$   c                      t          d          ):
        implement this method for easy extension
        z!Please implement number_of_rows()	Exceptionr;   s    r"   r:   zSheetReader.number_of_rowss   s     ;<<<r$   c                      t          d          )rA   z$Please implement number_of_columns()rB   r;   s    r"   r=   zSheetReader.number_of_columnsy   s     >???r$   c                      t          d          )rA   zPlease implement cell_value()rB   r>   s      r"   r6   zSheetReader.cell_value   s     7888r$   c                     d S r
    r;   s    r"   closezSheetReader.close   s    r$   )	r   r   r   r   NNFNF)__name__
__module____qualname____doc__r#   r8   r)   r-   r:   r=   r6   rH   rG   r$   r"   r   r      s          "'1 1 1 1@) ) )V- - -/ / /= = =@ @ @9 9 9    r$   r   c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )SheetWriterz
    Generic sheet writer
    c                 |    |r|}nt           j        }|| _        || _        || _        |                     |           d S r
   )r*   DEFAULT_SHEET_NAME_native_bookr   r   set_sheet_name)r   native_booknative_sheetnamekeywords
sheet_names         r"   r#   zSheetWriter.__init__   sJ     	6JJ"5J')!J'''''r$   c                     dS )z 
        Set sheet name
        NrG   )r   rU   s     r"   rR   zSheetWriter.set_sheet_name   	     	r$   c                      t          d          )z+
        write a row into the file
        zPlease implement write_row())NotImplementedError)r   arrays     r"   	write_rowzSheetWriter.write_row   s     ""@AAAr$   c                 :    |D ]}|                      |           dS )z6
        For standalone usage, write an array
        N)r]   )r   tabler1   s      r"   write_arrayzSheetWriter.write_array   s2      	  	 CNN3	  	 r$   c                     dS )z2
        This call actually save the file
        NrG   r;   s    r"   rH   zSheetWriter.close   rY   r$   N)	rI   rJ   rK   rL   r#   rR   r]   r`   rH   rG   r$   r"   rN   rN      sl         ( ( (  B B B         r$   rN   )rL   pyexcel_io.constantsr*   pyexcel_io.utilsr   pyexcel_io._compactr   pyexcel_io.plugin_apir   objectr   rN   rG   r$   r"   <module>rg      s     ) ( ( ( ( ( * * * * * * & & & & & & . . . . . .v v v v v& v v vr& & & & && & & & & &r$   