U
    TZßfE
  ã                   @   s0   d dl mZ G dd„ deƒZG dd„ deƒZdS )é   )ÚRendererc                   @   sf   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
ddd„Zddd„Zddd„ZdS )ÚFakeRenderera×  
    Fake Renderer

    This is a fake renderer which simply outputs a text tree representing the
    elements found in the plot(s).  This is used in the unit tests for the
    package.

    Below are the methods your renderer must implement. You are free to do
    anything you wish within the renderer (i.e. build an XML or JSON
    representation, call an external API, etc.)  Here the renderer just
    builds a simple string representation for testing purposes.
    c                 C   s
   d| _ d S )NÚ ©Úoutput)Úself© r   ú[/tmp/pip-unpacked-wheel-5ksk5baj/plotly/matplotlylib/mplexporter/renderers/fake_renderer.pyÚ__init__   s    zFakeRenderer.__init__c                 C   s   |  j d7  _ d S )Nzopening figure
r   )r   ÚfigÚpropsr   r   r	   Úopen_figure   s    zFakeRenderer.open_figurec                 C   s   |  j d7  _ d S )Nzclosing figure
r   )r   r   r   r   r	   Úclose_figure   s    zFakeRenderer.close_figurec                 C   s   |  j d7  _ d S )Nz  opening axes
r   )r   Úaxr   r   r   r	   Ú	open_axes   s    zFakeRenderer.open_axesc                 C   s   |  j d7  _ d S )Nz  closing axes
r   )r   r   r   r   r	   Ú
close_axes   s    zFakeRenderer.close_axesc                 C   s   |  j d7  _ d S )Nz    opening legend
r   )r   Úlegendr   r   r   r	   Úopen_legend!   s    zFakeRenderer.open_legendc                 C   s   |  j d7  _ d S )Nz    closing legend
r   )r   r   r   r   r	   Úclose_legend$   s    zFakeRenderer.close_legendNc                 C   s   |  j d ||¡7  _ d S )Nz    draw text '{0}' {1}
)r   Úformat)r   ÚtextÚpositionÚcoordinatesÚstyleÚ	text_typeÚmplobjr   r   r	   Ú	draw_text'   s    zFakeRenderer.draw_textÚdatac                 C   s   |  j d |jd ¡7  _ d S )Nz     draw path with {0} vertices
é    ©r   r   Úshape)r   r   r   Z	pathcodesr   ÚoffsetÚoffset_coordinatesr   r   r   r	   Ú	draw_path,   s    
zFakeRenderer.draw_pathc                 C   s   |  j d t|ƒ¡7  _ d S )Nz    draw image of size {0}
)r   r   Úlen)r   ZimdataZextentr   r   r   r   r   r	   Ú
draw_image8   s    zFakeRenderer.draw_image)NN)Nr   N)N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r
   r   r   r   r   r   r   r   r#   r%   r   r   r   r	   r      s       ÿ
   ø
r   c                   @   s.   e Zd ZdZd	dd„Zd
dd„Zddd„ZdS )ÚFullFakeRenderera  
    Renderer with the full complement of methods.

    When the following are left undefined, they will be implemented via
    other methods in the class.  They can be defined explicitly for
    more efficient or specialized use within the renderer implementation.
    Nc                 C   s   |  j d |jd ¡7  _ d S )Nz    draw line with {0} points
r   r   ©r   r   r   r   Úlabelr   r   r   r	   Ú	draw_lineE   s    zFullFakeRenderer.draw_linec                 C   s   |  j d |jd ¡7  _ d S )Nz    draw {0} markers
r   r   r+   r   r   r	   Údraw_markersH   s    zFullFakeRenderer.draw_markersc	           	      C   s   |  j d |jd ¡7  _ d S )Nz*    draw path collection with {0} offsets
r   r   )	r   ÚpathsZpath_coordinatesZpath_transformsÚoffsetsr"   Zoffset_orderZstylesr   r   r   r	   Údraw_path_collectionK   s    
ÿz%FullFakeRenderer.draw_path_collection)N)N)N)r&   r'   r(   r)   r-   r.   r1   r   r   r   r	   r*   <   s
   

 ÷r*   N)Úbaser   r   r*   r   r   r   r	   Ú<module>   s   8