U
    ª…7h2  ã                   @   s&   d dl Z d dlmZ G dd„ dƒZdS )é    N)Úwarnc                       sˆ   e Zd ZdZ‡ fdd„Zdd„ Zedd„ ƒZedd	„ ƒZed
d„ ƒZ	edd„ ƒZ
edd„ ƒZedd„ ƒZedd„ ƒZedd„ ƒZ‡  ZS )ÚShapez>
    A class for to represent Excel XLSX shape objects.


    c                    sº   t ƒ  ¡  || _|| _d| _d| _d| _d| _d| _d| _	d| _
d| _d| _d| _d| _d| _g | _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _d| _|  |¡ dS )z
        Constructor.

        r   Ú é   éÿÿÿÿNF)ÚsuperÚ__init__ÚnameÚ
shape_typeÚconnectZdrawingZedit_asÚidÚtextÚtextlinkZstencilÚelementÚstartÚstart_indexÚendZ	end_indexZadjustmentsZ
start_sideZend_sideZflip_hZflip_vZrotationÚtext_rotationZtextboxÚalignÚfillÚfontÚformatÚlineÚ_set_options)Úselfr
   r	   Úoptions©Ú	__class__© úJ/var/www/formularioweb/env/lib/python3.8/site-packages/xlsxwriter/shape.pyr      s:    
zShape.__init__c                 C   sº   |   | d¡¡| _|  | d¡¡| _|  | d¡¡| _|  | d¡¡| _|  	| d¡¡| _
| dd¡| _| dd	¡| _| j d
¡r| j d
¡| _| d¡rª|  	|d ¡| _
| jr¶d | _d S )Nr   r   r   Úgradientr   r   r   r   r   ú=Úborder)Ú_get_align_propertiesÚgetr   Ú_get_fill_propertiesr   Ú_get_font_propertiesr   Ú_get_gradient_propertiesr    Ú_get_line_propertiesr   r   r   Ú
startswithÚlstrip)r   r   r   r   r   r   E   s    
zShape._set_optionsc                 C   sz   | sddiS t  | ¡} ddddddd	d
ddddœ}|  d¡}|d k	rn||krZ|| | d< ntd|› dƒ i S d| d< | S )NÚdefinedFÚsolidZsysDotZsysDashÚdashZdashDotZlgDashZ	lgDashDotZlgDashDotDotÚdotZ
sysDashDotZsysDashDotDot)r,   Z	round_dotZ
square_dotr-   Zdash_dotZ	long_dashZlong_dash_dotZlong_dash_dot_dotr.   Zsystem_dash_dotZsystem_dash_dot_dotÚ	dash_typezUnknown dash type 'ú'T©ÚcopyÚdeepcopyr$   r   )r   Z
dash_typesr/   r   r   r   r(   _   s.    
õ
zShape._get_line_propertiesc                 C   s"   | sddiS t  | ¡} d| d< | S )Nr+   FT)r2   r3   )r   r   r   r   r%   …   s
    
zShape._get_fill_propertiesc              1   C   sì   | si S t  | ¡} |  d¡s(tdƒ i S |  d¡s>tdƒ i S ddddd	d
dddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5œ0}| d |krÈtd6| d › d7ƒ i S || d  | d< |  d8d9¡| d8< | S ):NÚpatternzPattern must include 'pattern'Zfg_colorzPattern must include 'fg_color'Zpct5Zpct10Zpct20Zpct25Zpct30Zpct40Zpct50Zpct60Zpct70Zpct75Zpct80Zpct90ZltDnDiagZltUpDiagZdkDnDiagZdkUpDiagZwdDnDiagZwdUpDiagZltVertZltHorzZnarVertZnarHorzZdkVertZdkHorzZ
dashDnDiagZ
dashUpDiagZdashHorzZdashVertZ
smConfettiZ
lgConfettiZzigZagÚwaveZ	diagBrickZ	horzBrickÚweaveÚplaidÚdivotZdotGridZdotDmndÚshingleÚtrellisÚsphereZsmGridZlgGridZsmCheckZlgCheckZopenDmndZ	solidDmnd)0Z	percent_5Z
percent_10Z
percent_20Z
percent_25Z
percent_30Z
percent_40Z
percent_50Z
percent_60Z
percent_70Z
percent_75Z
percent_80Z
percent_90Zlight_downward_diagonalZlight_upward_diagonalZdark_downward_diagonalZdark_upward_diagonalZwide_downward_diagonalZwide_upward_diagonalZlight_verticalZlight_horizontalZnarrow_verticalZnarrow_horizontalZdark_verticalZdark_horizontalZdashed_downward_diagonalZdashed_upward_diagonalZdashed_horizontalZdashed_verticalZsmall_confettiZlarge_confettiZzigzagr5   Zdiagonal_brickZhorizontal_brickr6   r7   r8   Zdotted_gridZdotted_diamondr9   r:   r;   Z
small_gridZ
large_gridZsmall_checkZlarge_checkZoutlined_diamondZsolid_diamondzunknown pattern type 'r0   Zbg_colorz#FFFFFFr1   )r4   Útypesr   r   r   Ú_get_pattern_properties“   s€    


Ð4zShape._get_pattern_propertiesc                 C   sÊ  | si S t  | ¡} dddddœ}d| ks6t| d tƒsBtdƒ i S dt| d ƒ  kr^d	ksln td
ƒ i S d| krÎt| d ƒt| d ƒkr˜tdƒ i S | d D ]*}d|  kr¸dks n tdƒ i   S q npt| d ƒdkrìddg| d< nRt| d ƒdkrdddg| d< n0t| d ƒdkr2ddddg| d< ntdƒ i S |  d¡}|rvd|  krfdk s~n tdƒ i S nd| d< |  d¡}|d k	r¾||krª|| | d< ntd|› ƒ i S nd| d< | S )NÚlinearÚcircleÚrectÚshape)r>   ZradialZrectangularÚpathÚcolorsz!Gradient must include colors listé   é
   z@Gradient colors list must at least 2 values and not more than 10Z	positionsz0Gradient positions not equal to number of colorsr   éd   z;Gradient position must be in the range 0 <= position <= 100é   é2   é   é!   éB   zMust specify gradient positionsÚangleih  z4Gradient angle must be in the range 0 <= angle < 360éZ   ÚtypezUnknown gradient type ')r2   r3   Ú
isinstanceÚlistr   Úlenr$   )r    r<   ÚposrL   Zgradient_typer   r   r   r'   ä   sX    
ü



zShape._get_gradient_propertiesc                 C   sˆ   | d kri } |   d¡|   d¡|   dd¡|   d¡|   d¡|   d¡|   d¡|   d	¡|   d
d¡|   dd¡dœ
}|d r„t|d d ƒ|d< |S )Nr	   ÚcolorÚsizeé   ÚboldÚitalicÚ	underlineÚpitch_familyÚcharsetÚbaseliner   Úlangzen-US)
r	   rS   rT   rV   rW   rX   rY   rZ   r[   r\   rF   )r$   Úint)r   r   r   r   r   r&   0  s     


özShape._get_font_propertiesc                 C   s¬   g }| s|S |   d¡r(| d| d f¡ |   d¡d k	rL| dd| d  f¡ |   d¡d k	rp| dd| d  f¡ |   d¡d k	rˆ| d	¡ |   d
¡dkr¨| d
| d
 f¡ |S )NrT   ÚszrV   Úbr   rW   ÚirX   )ÚuZsngr[   r   )r$   Úappend©r   Ú
attributesr   r   r   Ú_get_font_style_attributesI  s    

z Shape._get_font_style_attributesc                 C   sj   g }| s|S | d d k	r*|  d| d f¡ | d d k	rH|  d| d f¡ | d d k	rf|  d| d f¡ |S )Nr	   ZtypefacerY   ZpitchFamilyrZ   )rb   rc   r   r   r   Ú_get_font_latin_attributesb  s    z Shape._get_font_latin_attributesc                 C   s¶   | sddiS t  | ¡} d| kr`| d }ddddœ}||krH|| | d< ntd|› d	ƒ ddiS d
| krª| d
 }ddddœ}||kr’|| | d
< ntd|› d	ƒ ddiS d| d< | S )Nr+   FÚverticalÚtopÚmiddleÚbottom)rh   ri   rj   zUnknown alignment type 'r0   Ú
horizontalÚleftÚcenterÚright)rl   rm   rn   T)r2   r3   r   )r   Z
align_typeZalign_typesr   r   r   r#   u  s2    
ýýzShape._get_align_properties)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ústaticmethodr(   r%   r=   r'   r&   re   rf   r#   Ú__classcell__r   r   r   r   r      s&   +
%

P
K


r   )r2   Úwarningsr   r   r   r   r   r   Ú<module>	   s   