
    Hf:                         d Z ddlmZ  G d de          Z G d de          Z G d de          Z G d	 d
e          ZdS )z
    pyexcel.renderer
    ~~~~~~~~~~~~~~~~~~~

    Renders pyexcel.Book and pyexcel.Sheet to any format

    :copyright: (c) 2015-2022 by Onni Software Ltd.
    :license: New BSD License
    )_compactc                   :    e Zd ZdZdZd Zd Zd Zd Zd Z	d Z
d	S )
AbstractRenderer4
    Close some functions that will not be used
    wc                 0    || _         d | _        d| _        d S )NT)
_file_type_stream_write_title)self	file_types     R/var/www/ffwdstore.be/apps/py-env/lib/python3.11/site-packages/pyexcel/renderer.py__init__zAbstractRenderer.__init__   s    #     c                      t          d          )zl
        If your renderer's output is binary, please override it and
        return BytesIO instead
        No io for this rendererNotImplementedErrorr   s    r   get_iozAbstractRenderer.get_io   s    
 "";<<<r   c                      t          d          )a  Render a sheet to a physical file

        :param file_name: the output file name
        :param sheet: pyexcel sheet instance to be rendered
        :param write_title: to write sheet name
        :param keywords: any other keywords to the renderer
        We are not writing to filer   r   	file_namesheetkeywordss       r   render_sheet_to_filez%AbstractRenderer.render_sheet_to_file         "">???r   c                      t          d          )a  Render a sheet to a file stream

        :param file_stream: the output file stream
        :param sheet: pyexcel sheet instance to be rendered
        :param write_title: to write sheet name
        :param keywords: any other keywords to the renderer
        r   r   )r   file_streamr   r   s       r   render_sheet_to_streamz'AbstractRenderer.render_sheet_to_stream*   r   r   c                      t          d          )a   Render a book to a physical file

        :param file_name: the output file name
        :param book: pyexcel book instance to be rendered
        :param write_title: to write sheet names
        :param keywords: any other keywords to the renderer
        r   r   r   r   bookr   s       r   render_book_to_filez$AbstractRenderer.render_book_to_file4   r   r   c                      t          d          )a  Render a book to a file stream

        :param file_stream: the output file stream
        :param book: pyexcel book instance to be rendered
        :param write_title: to write sheet names
        :param keywords: any other keywords to the renderer
        r   r   )r   r    r$   r   s       r   render_book_to_streamz&AbstractRenderer.render_book_to_stream>   r   r   N)__name__
__module____qualname____doc__
WRITE_FLAGr   r   r   r!   r%   r'    r   r   r   r      s          J! ! !
= = =@ @ @@ @ @@ @ @@ @ @ @ @r   r   c                   X    e Zd ZdZd Z	 ddZ	 ddZ	 ddZ	 ddZd Z	d	 Z
d
 Zd ZdS )RendererzG
    Render pyexcel sheet or book into excel format as any formats
    c                 (    t          j                    S N)compactStringIOr   s    r   r   zRenderer.get_ioN   s    !!!r   Tc                     |                      |           t          || j                  5 }|                     |            | j        |fi | d d d            d S # 1 swxY w Y   d S r1   )set_write_titleopenr,   set_output_streamrender_sheet)r   r   r   write_titler   outfiles         r   r   zRenderer.render_sheet_to_fileQ   s     	[))))T_-- 	1""7+++De00x000	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1   $AA #A c                 v    |                      |           |                     |            | j        |fi | d S r1   )r5   r7   r8   )r   r    r   r9   r   s        r   r!   zRenderer.render_sheet_to_streamY   sM     	[))){+++%,,8,,,,,r   c                     |                      |           t          || j                  5 }|                     |            | j        |fi | d d d            d S # 1 swxY w Y   d S r1   )r5   r6   r,   r7   render_book)r   r   r$   r9   r   r:   s         r   r%   zRenderer.render_book_to_file`   s     	[))))T_-- 	/""7+++DT..X...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/r;   c                 v    |                      |           |                     |            | j        |fi | d S r1   )r5   r7   r>   )r   r    r$   r9   r   s        r   r'   zRenderer.render_book_to_streamh   sM     	[))){+++*******r   c                      t          d          )z
        If your renderer is kind of text format, you just
        need to implement this function.

        :param sheet: pyexcel sheet instance to be rendered
        :param keywords: any other keywords to the renderer
        zPlease render sheetr   )r   r   r   s      r   r8   zRenderer.render_sheeto   s     ""7888r   c                     |                                 dz
  }t          |          D ]:\  }}|                     |           ||k     r| j                            d           ;dS )z
        Implementation of book rendering

        :param book: pyexcel book instance to be rendered
        :param keywords: any other keywords to the renderer
           
N)number_of_sheets	enumerater8   r
   write)r   r$   r   rD   indexr   s         r   r>   zRenderer.render_booky   su      0022Q6%dOO 	) 	)LE5e$$$'''""4(((	) 	)r   c                     || _         dS )zupdate internal streamN)r
   )r   streams     r   r7   zRenderer.set_output_stream   s    r   c                     || _         dS )zupdate write title flagN)r   )r   flags     r   r5   zRenderer.set_write_title   s     r   N)T)r(   r)   r*   r+   r   r   r!   r%   r'   r8   r>   r7   r5   r-   r   r   r/   r/   I   s         " " " -11 1 1 1 /3- - - - ,0/ / / / .2+ + + +9 9 9) ) )  ! ! ! ! !r   r/   c                       e Zd ZdZdZd ZdS )BinaryRendererz4
    Renderer pyexcel data into a binary object
    wbc                 ,    t          j                    }|S r1   )r2   BytesIO)r   ios     r   r   zBinaryRenderer.get_io   s    _	r   N)r(   r)   r*   r+   r,   r   r-   r   r   rM   rM      s4          J    r   rM   c                   $    e Zd ZdZd Zd Zd ZdS )
DbRendererr   c                      t          d          )Nr   	Exceptionr   s    r   r   zDbRenderer.get_io   s    1222r   c                      t          d          Nr   rU   r   s       r   r   zDbRenderer.render_sheet_to_file       4555r   c                      t          d          rX   rU   r#   s       r   r%   zDbRenderer.render_book_to_file   rY   r   N)r(   r)   r*   r+   r   r   r%   r-   r   r   rS   rS      sK         3 3 36 6 66 6 6 6 6r   rS   N)	r+   pyexcelr   r2   objectr   r/   rM   rS   r-   r   r   <module>r]      s     ( ' ' ' ' '9@ 9@ 9@ 9@ 9@v 9@ 9@ 9@xC! C! C! C! C! C! C! C!L    X   6 6 6 6 6! 6 6 6 6 6r   