
    liG5                     8    d dl Z d dlmZ d dlmZ  G d d      Zy)    N)warn)Colorc                        e Zd ZdZdeddf fdZddZededef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.


    namereturnNc                    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| _        | j;                  |       y)z
        Constructor.

        r       NF)super__init__r   
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__s       N/var/www/html/eduruby.in/venv/lib/python3.12/site-packages/xlsxwriter/shape.pyr   zShape.__init__   s    
 		$	

			'"    c                 R   | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |j                  d            | _        | j                  |      | _
        |j                  dd      | _        |j                  dd      | _        | j                  j                  d	      r | j                  j                  d	      | _        | j                  rd | _        y y )
Nr$   r%   r&   gradientr"   r   r   r
   =)_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_optionsG   s    //G0DE
--gkk&.AB	--gkk&.AB	55gkk*6MN--g6	$[[!<J3==##C( MM005DM ==DI r.   r+   c                    | j                  d      s| j                  d      sddiS | j                  d      rt        j                  | d         }nt        j                  | d         }ddddd	d
dddddd}|j                  d      }|||v r	||   |d<   nt        d| d       i S |j                  d      rt	        j
                  |d         |d<   d|d<   |S )Nr(   border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 ''colorT)r3   copydeepcopyr   r   _from_value)r+   r(   
dash_typesrP   s       r-   r7   zShape._get_line_properties^   s     {{6"7;;x+@u%%
 ;;v==1D==!23D !#!!(!/+#2

 HH[)	 J&$.y$9[!*9+Q78	88G!--d7m<DMYr.   c                     | sddiS t        j                  |       } | j                  d      rt        j                  | d         | d<   d| d<   | S )Nr<   FrR   T)rS   rT   r3   r   rU   )r%   s    r-   r4   zShape._get_fill_properties   sT     u%% }}T"88G!--d7m<DMYr.   c                    | si S t        j                  |       } | j                  d      st        d       i S | j                  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rt        dW| d    dX       i S || d      | d<   | j                  d      rt	        j
                  | d         | d<   | j                  dY      rt	        j
                  | dY         | dY<   | S t	        dZ      | 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 'rQ   bg_colorz#FFFFFF)rS   rT   r3   r   r   rU   )rY   typess     r-   _get_pattern_propertieszShape._get_pattern_properties   s    I --({{9%12I{{:&23I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*)')*<)=Q?@I"79#56	;;z""'"3"3GJ4G"HGJ;;z""'"3"3GJ4G"HGJ  #(	"2GJr.   c                 ^   | si S t        j                  |       } ddddd}d| vst        | d   t              st	        d       i S dt        | d         cxk  rd	k  sn t	        d
       i S d| v rQt        | d         t        | d         k7  rt	        d       i S | d   D ]  }d|cxk  rdk  rn t	        d       i c S  nXt        | 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       i S | j                  d      }|rd|cxk  rdk  sn t	        d       i S d| d<   | j                  d      }|||v r	||   | d<   nt	        d|        i S d| d<   | d   D cg c]  }t        j                  |       c}| d<   | S c c}w )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 ')	rS   rT   
isinstancelistr   lenr3   r   rU   )r0   r   posr   gradient_typerR   s         r-   r6   zShape._get_gradient_properties   s   
 I ==* !	
 8#:hx6H$+O45I C*+1r1STI("8K()S(1C-DDGH	  , C3VWI 8H%&!+)*C%Xh'(A-(4%Xh'(A-(8% 67	W%##KL	 "HW !V,$%#(#7 .}o>?	'HVDLXDVW5e//6W Xs   F*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<   |j                  d      rt        j                  |d         |d<   |S )Nr   rR   size   bolditalic	underlinepitch_familycharsetbaseliner   langzen-US)
r   rR   r   r   r   r   r   r   r   r   r   )r3   intr   rU   )r+   r&   s     r-   r5   zShape._get_font_properties@  s     ?G KK'[[)KK+KK'kk(+ [1#KK7{{9-J3KK0
 <tF|c12DL88G!--d7m<DM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   r3   appendr&   
attributess     r-   _get_font_style_attributesz Shape._get_font_style_attributes\  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 | j                  d      |j                  d| d   f       | j                  d      |j                  d| d   f       | j                  d      |j                  d| d   f       |S )Nr   typefacer   pitchFamilyr   r   r   s     r-   _get_font_latin_attributesz Shape._get_font_latin_attributesu  s     
88F'z4<8988N#/}d>.BCD88I*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| d	       ddiS d
| v r+| d
   }dddd}||v r	||   | d
<   nt        d| d	       ddiS d| d<   | S )Nr<   Fverticaltopmiddlebottom)r   r   r   zUnknown alignment type 'rQ   
horizontalleftcenterright)r   r   r   T)rS   rT   r   )r$   
align_typealign_typess      r-   r2   zShape._get_align_properties  s     u%% e$z*J ""K [($/
$;j!/
|1=>!5))5 |,J " K [(&1*&=l#/
|1=>!5))ir.   )r   N)__name__
__module____qualname____doc__strr   r)   staticmethoddictr7   r4   r   r6   r5   r   r   r2   __classcell__)r,   s   @r-   r   r      s    ## ##$ ##V. *d *t * *X    S Sj K KZ  6  0  $ ( (r.   r   )rS   warningsr   xlsxwriter.colorr   r    r.   r-   <module>r     s      "b br.   