
    >wg2                     .    d dl Z d dlmZ  G d de      Zy)    N)warnc                        e Zd ZdZ fdZd Zed        Zed        Zed        Z	ed        Z
ed        Zed	        Zed
        Zed        Z xZS )Shapez>
    A class for to represent Excel XLSX shape objects.


    c                    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| _        | jA                  |       y)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__s       G/var/www/horilla/myenv/lib/python3.12/site-packages/xlsxwriter/shape.pyr   zShape.__init__   s    
 	eT#%	$	

			!'"    c                    | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |j                  d            | _
        |j                  dd      | _        |j                  dd	      | _        | j                  j                  d
      r | j                  j                  d
      | _        |j                  d      r| j                  |d         | _
        | j                  rd | _        y y )Nr"   r#   r$   gradientr&   r    r   r   r   =border)_get_align_propertiesgetr"   _get_fill_propertiesr#   _get_font_propertiesr$   _get_gradient_propertiesr0   _get_line_propertiesr&   r    r   
startswithlstrip)r*   r+   s     r-   r)   zShape._set_optionsF   s   //G0DE
--gkk&.AB	--gkk&.AB	55gkk*6MN--gkk&.AB	$[[!<J3==##C( MM005DM;;x 11'(2CDDI ==DI r.   c                     | sddiS t        j                  |       } ddddddd	d
dddd}| j                  d      }|||v r	||   | d<   nt        d|z         y d| d<   | S )NdefinedFsolidsysDotsysDashdashdashDotlgDash	lgDashDotlgDashDotDotdot
sysDashDotsysDashDotDot)r=   	round_dot
square_dotr@   dash_dot	long_dashlong_dash_dotlong_dash_dot_dotrE   system_dash_dotsystem_dash_dot_dot	dash_typezUnknown dash type '%s'Tcopydeepcopyr4   r   )r&   
dash_typesrP   s      r-   r8   zShape._get_line_properties`   s     u%% }}T" !#!!(!/+#2

 HH[)	 J&$.y$9[!-	9:Yr.   c                 F    | sddiS t        j                  |       } d| d<   | S )Nr<   FT)rR   rS   )r#   s    r-   r5   zShape._get_fill_properties   s0     u%% }}T"Yr.   c                    | sy t        j                  |       } | j                  d      st        d       y | j                  d      st        d       y 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rt        dW| d   z         y || d      | d<   | j                  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#FFFFFFrQ   )rW   typess     r-   _get_pattern_propertieszShape._get_pattern_properties   st     --({{9%12{{:&231
1
'1
 '1
 '	1

 '1
 '1
 '1
 '1
 '1
 '1
 '1
 '1
 &z1
 $Z1
 %j1
  #J!1
" %j#1
$ #J%1
& h'1
( )1
* y+1
,  -1
. X/1
0 x11
2 '31
4 %l51
6  71
8 z91
: l;1
< l=1
> h?1
@ FA1
B kC1
D E1
F $'  ""$$ *(a1
h 9U*,wy/AAB!&wy'9!:GI &kk*i@
r.   c                    | sy t        j                  |       } ddddd}d| vst        | d   t              st	        d       y dt        | d         cxk  rd	k  sn t	        d
       y d| v rNt        | d         t        | d         k7  rt	        d       y | d   D ]  }d|cxk  rdk  rn t	        d        y  nWt        | d         dk(  rddg| d<   n>t        | d         dk(  rg d| d<   n%t        | d         dk(  rg d| d<   nt	        d       y | j                  d      }|rd|cxk  rdk  sn t	        d       y d| d<   | j                  d      }|||v r
||   | d<   | S t	        d|z         y 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)rR   rS   
isinstancelistr   lenr4   )r0   r   posr   gradient_types        r-   r7   zShape._get_gradient_properties   s     ==* !	
 8#:hx6H$+O45 C*+1r1ST("8K()S(1C-DDGH  , C3VW 8H%&!+)*C%Xh'(A-(4%Xh'(A-(8% 67W%##KL "HW !V,$%#(#7   0=@A'HVr.   c                    | i } | j                  d      | j                  d      | j                  dd      | j                  d      | j                  d      | j                  d      | j                  d      | j                  d	      | j                  d
d      | j                  dd      d
}|d   rt        |d   dz        |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   )r4   int)r+   r$   s     r-   r6   zShape._get_font_properties0  s     ?G KK'[[)KK+KK'kk(+ [1#KK7{{9-J3KK0
 <tF|c12DLr.   c                    g }| s|S | j                  d      r|j                  d| d   f       | j                  d      |j                  dd| d   z   f       | j                  d      |j                  dd| d   z   f       | j                  d      |j                  d	       | j                  d
      dk7  r|j                  d
| d
   f       |S )Nr   szr   br   r   ir   )usngr   r	   )r4   appendr$   
attributess     r-   _get_font_style_attributesz Shape._get_font_style_attributesI  s     
88FtT&\2388F'sAV$45688H)sAX$67888K ,l+88J2%z4
+;<=r.   c                     g }| s|S | d   |j                  d| d   f       | d   |j                  d| d   f       | d   |j                  d| d   f       |S )Nr   typefacer   pitchFamilyr   )r   r   s     r-   _get_font_latin_attributesz Shape._get_font_latin_attributesb  s}     
<#z4<89+}d>.BCD	?&y$y/:;r.   c                     | sddiS t        j                  |       } d| v r*| d   }dddd}||v r	||   | d<   nt        d|z         ddiS d	| v r*| d	   }d
ddd}||v r	||   | d	<   nt        d|z         ddiS d| d<   | S )Nr<   Fverticaltopmiddlebottom)r   r   r   zUnknown alignment type '%s'
horizontalleftcenterright)r   r   r   T)rR   rS   r   )r"   
align_typealign_typess      r-   r3   zShape._get_align_propertiesu  s     u%% e$z*J ""K [($/
$;j!2Z?@!5))5 |,J " K [(&1*&=l#2Z?@!5))ir.   )__name__
__module____qualname____doc__r   r)   staticmethodr8   r5   r   r7   r6   r   r   r3   __classcell__)r,   s   @r-   r   r      s    %#Z4 # #J   N N` H HT  0  0  $ ( (r.   r   )rR   warningsr   objectr    r.   r-   <module>r      s     RF Rr.   