o
    ,h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connectdrawingedit_asidtexttextlinkstencilelementstartstart_indexend	end_indexadjustments
start_sideend_sideflip_hflip_vrotationtext_rotationtextboxalignfillfontformatline_set_options)selfr
   r	   options	__class__ F/var/www/html/rh/venv/lib/python3.10/site-packages/xlsxwriter/shape.pyr      s:   
zShape.__init__c                 C   s   |  |d| _| |d| _| |d| _| |d| _| 	|d| _
|dd| _|dd	| _| jd
rH| jd
| _|drU| 	|d | _
| jr]d | _d S 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 ur7||v r-|| | d< n
td| d i S d| d< | S )NdefinedFsolidsysDotsysDashdashdashDotlgDash	lgDashDotlgDashDotDotdot
sysDashDotsysDashDotDot)r7   	round_dot
square_dotr:   dash_dot	long_dashlong_dash_dotlong_dash_dot_dotr?   system_dash_dotsystem_dash_dot_dot	dash_typezUnknown dash type ''Tcopydeepcopyr/   r   )r#   
dash_typesrJ   r)   r)   r*   r3   _   s.   

zShape._get_line_propertiesc                 C   s"   | sddiS t | } d| d< | S )Nr6   FT)rM   rN   )r    r)   r)   r*   r0      s
   
zShape._get_fill_propertiesc                 C   s|  | si S t | } | dstd i S | dstd i S i 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&i d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdCdDdEdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdV}| d |vrtdW| d  dX i S || d  | d< | dYdZ| dY< | S )[NpatternzPattern must include 'pattern'fg_colorzPattern must include 'fg_color'	percent_5pct5
percent_10pct10
percent_20pct20
percent_25pct25
percent_30pct30
percent_40pct40
percent_50pct50
percent_60pct60
percent_70pct70
percent_75pct75
percent_80pct80
percent_90pct90light_downward_diagonalltDnDiaglight_upward_diagonalltUpDiagdark_downward_diagonaldkDnDiagdark_upward_diagonaldkUpDiagwide_downward_diagonalwdDnDiagwide_upward_diagonalwdUpDiaglight_verticalltVertlight_horizontalltHorznarrow_verticalnarVertnarrow_horizontalnarHorzdark_verticaldkVertdark_horizontaldkHorzdashed_downward_diagonal
dashDnDiagdashed_upward_diagonal
dashUpDiagdashed_horizontaldashHorzdashed_verticaldashVertsmall_confetti
smConfettilarge_confetti
lgConfettizigzagzigZagwavediagonal_brick	diagBrickhorizontal_brick	horzBrickweaveplaiddivotdotGriddotDmndshingletrellisspheresmGridlgGridsmChecklgCheckopenDmnd	solidDmnd)r   r   r   dotted_griddotted_diamondr   r   r   
small_grid
large_gridsmall_checklarge_checkoutlined_diamondsolid_diamondzunknown pattern type 'rK   bg_colorz#FFFFFFrL   )rP   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| vst| d ts!td i S dt| d   kr/d	ks6n td
 i S d| v rgt| d t| d krLtd i S | d D ]}d|  kr\dksen td i   S qPn3t| d dkrvddg| d< n$t| d dkrg d| d< nt| d dkrg d| d< ntd i S | d}|rd|  krdk sn td i S nd| d< | d}|d ur||v r|| | d< | S td|  i S d| d< | S )Nlinearcirclerectshape)r   radialrectangularpathcolorsz!Gradient must include colors list   
   z@Gradient colors list must at least 2 values and not more than 10	positionsz0Gradient positions not equal to number of colorsr   d   z;Gradient position must be in the range 0 <= position <= 100   )r   2   r      )r   !   B   r   zMust specify gradient positionsangleih  z4Gradient angle must be in the range 0 <= angle < 360Z   typezUnknown gradient type ')rM   rN   
isinstancelistr   lenr/   )r+   r   posr   gradient_typer)   r)   r*   r2      s`   


zShape._get_gradient_propertiesc                 C   s   | d u ri } |  d|  d|  dd|  d|  d|  d|  d|  d	|  d
d|  ddd
}|d rBt|d d |d< |S )Nr	   colorsize   bolditalic	underlinepitch_familycharsetbaseliner   langzen-US)
r	   r   r   r   r   r   r   r   r   r   r   )r/   int)r&   r!   r)   r)   r*   r1   0  s    


zShape._get_font_propertiesc                 C   s   g }| s|S |  dr|d| d f |  dd ur&|dd| d  f |  dd ur8|dd| d  f |  dd urD|d	 |  d
dkrT|d
| d
 f |S )Nr   szr   br   r   ir   )u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 ur| d| d f | d d ur$| d| d f | d d ur3| d| d f |S )Nr	   typefacer   pitchFamilyr   )r   r   r)   r)   r*   _get_font_latin_attributesb  s   z Shape._get_font_latin_attributesc                 C   s   | sddiS t | } d| v r0| d }dddd}||v r$|| | d< ntd| d	 ddiS d
| v rU| d
 }dddd}||v rI|| | d
< ntd| d	 ddiS d| d< | S )Nr6   Fverticaltopmiddlebottom)r   r   r   zUnknown alignment type 'rK   
horizontalleftcenterright)r   r   r   T)rM   rN   r   )r   
align_typealign_typesr)   r)   r*   r.   u  s2   
zShape._get_align_properties)__name__
__module____qualname____doc__r   r$   staticmethodr3   r0   r   r2   r1   r   r   r.   __classcell__r)   r)   r'   r*   r      s(    +
%

P
K


r   )rM   warningsr   r   r)   r)   r)   r*   <module>   s   