o
    ȷe_2                     @   s(   d dl Z d dlmZ G dd de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 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)!superr   __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__ G/var/www/ideatree/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&   F   s   

zShape._set_optionsc                 C   sv   | sddiS t | } ddddddd	d
dddd}| d}|d ur5||v r-|| | d< ntd|  d 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 '%s'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)rN   rO   )r    r+   r+   r,   r2      s
   
zShape._get_fill_propertiesc                 C   sx  | sd S t | } | dstd d S | dstd d 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   d S || d  | d< | dXdY| dX< | S )ZN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 '%s'bg_colorz#FFFFFFrM   )rQ   typesr+   r+   r,   _get_pattern_properties   s   


	
 !"#4zShape._get_pattern_propertiesc                 C   s  | sd S t | } ddddd}d| vst| d tkr"td d S dt| d   kr0d	ks7n td
 d S d| v rgt| d t| d krMtd d S | d D ]}d|  kr]dksen td  d S qQn3t| 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 d S | d}|rd|  krdk sn td d S nd| d< | d}|d ur||v r|| | d< | S td|  d 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 '%s)rN   rO   r   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   5  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_attributesN  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_attributesg  s   z Shape._get_font_latin_attributesc                 C   s   | sddiS t | } d| v r.| d }dddd}||v r$|| | d< n
td|  ddiS d	| v rQ| d	 }d
ddd}||v rG|| | d	< n
td|  ddiS d| d< | S )Nr8   Fverticaltopmiddlebottom)r   r   r   zUnknown alignment type '%s'
horizontalleftcenterright)r   r   r   T)rN   rO   r   )r   
align_typealign_typesr+   r+   r,   r0   z  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
N


r   )rN   warningsr   objectr   r+   r+   r+   r,   <module>   s   