o
    ^gR2                     @   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| _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url_rel_indextip_set_options)selfr
   r	   options	__class__ j/var/www/eduai.edurigo.com/doc_train/edurigo_ai/Puru/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&   G   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)r9   	round_dot
square_dotr<   dash_dot	long_dashlong_dash_dotlong_dash_dot_dotrA   system_dash_dotsystem_dash_dot_dot	dash_typezUnknown dash type ''Tcopydeepcopyr1   r   )r#   
dash_typesrL   r+   r+   r,   r5   a   s.   

zShape._get_line_propertiesc                 C   s"   | sddiS t | } d| d< | S )Nr8   FT)rO   rP   )r    r+   r+   r,   r2      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 'rM   bg_colorz#FFFFFFrN   )rR   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 ')rO   rP   
isinstancelistr   lenr1   )r-   r   posr   gradient_typer+   r+   r,   r4      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   )r1   int)r(   r!   r+   r+   r,   r3   2  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   )r1   appendr!   
attributesr+   r+   r,   _get_font_style_attributesK  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_attributesd  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 )Nr8   Fverticaltopmiddlebottom)r   r   r   zUnknown alignment type 'rM   
horizontalleftcenterright)r   r   r   T)rO   rP   r   )r   
align_typealign_typesr+   r+   r,   r0   w  s2   
zShape._get_align_properties)__name__
__module____qualname____doc__r   r&   staticmethodr5   r2   r   r4   r3   r   r   r0   __classcell__r+   r+   r)   r,   r      s(    -
%

P
K


r   )rO   warningsr   r   r+   r+   r+   r,   <module>   s   