
    p"h=                     h    S SK Jr  S SK Jr  S SK Jr  0 rS rSS jr " S S\5      r " S S	\5      r	g
)    )full11)tiny12)patternc                 0    [        U 5      [        U5      -   $ N)str)profiledebugs     E/var/www/html/env/lib/python3.13/site-packages/svgwrite/validator2.py	cache_keyr      s    w<#e*$$    c                      [         [        X5         $ ! [         aI    U S:X  a  [        U5      nO U S;   a  [	        U5      nO[        SU -  5      eU[         [        X5      '   Us $ f = f)zValidator factory tiny)fullbasicnonezUnsupported profile: '%s')validator_cacher   KeyErrorTiny12ValidatorFull11Validator
ValueError)r	   r
   	validators      r   get_validatorr      sq    
y899 f'.I11'.I87BCC5>	'12s    AA'&A'c                   r    \ rS rSrSrSS jrS rS rS rS r	S r
SS	 jrS
 rS rS rS rS rS r\rSrg)r   #   zTiny 1.2c                     Xl         [        R                  U l        [        R                  U l        [        R                  " 5       U l        g r   )r
   r   
attributeselementsTypeCheckertypecheckerselfr
   s     r   __init__Tiny12Validator.__init__&   0    
 ++!--/r   c                 Z    UR                  5        H  u  p4U R                  XU5        M     g)z
Check if attributes are valid for object 'elementname' and all svg
attributes have valid types and values.

Raises ValueError.
N)itemscheck_svg_attribute_value)r"   elementnamer   attributenamevalues        r   check_all_svg_attribute_values.Tiny12Validator.check_all_svg_attribute_values,   s*     %/$4$4$6 M**;uM %7r   c                 J    U R                  X5        U R                  XU5        g)z{
Check if 'attributename' is valid for object 'elementname' and 'value'
is a valid svg type and value.

Raises ValueError.
N)_check_valid_svg_attribute_name_check_svg_value)r"   r)   r*   r+   s       r   r(   )Tiny12Validator.check_svg_attribute_value6   s"     	,,[Hk%@r   c           	         U R                   U   nUR                  U5       H%  nU R                  R                  XS5      (       d  M%    g   [	        U5      nXdR                  U5      ;  a  [        SU< SU< SU< S35      eg)zz
Checks if 'value' is a valid svg-type for svg-attribute
'attributename' at svg-element 'elementname'.

Raises TypeError.
N'z&' is not a valid value for attribute 'z' at svg-element <>.)r   	get_typesr    checkr   	get_const	TypeError)r"   r)   r*   r+   	attributetypenamevaluestrs          r   r0    Tiny12Validator._check_svg_value@   s     OOM2	!++K8H%%h66 9 u:..{;;chjw  zE  F  G  G <r   c                 X    U R                  X5      (       d  [        SU< SU< S35      eg)zeCheck if 'attributename' is a valid svg-attribute for svg-element
'elementname'.

Raises ValueError.
zInvalid attribute '' for svg-element <r4   N)is_valid_svg_attributer   )r"   r)   r*   s      r   r/   /Tiny12Validator._check_valid_svg_attribute_nameQ   s,     **;FF}^ijkk Gr   c                 z     U R                   U   $ ! [         a    [        SU< SU R                  < S35      ef = f)N<z&> is not valid for selected profile: ''.)r   r   profilenamer"   r)   s     r   _get_elementTiny12Validator._get_elementZ   s?    	n==-- 	nk[_[k[klmm	ns    ):c                 l    U R                   R                  X!5      (       a  U$ [        U< SU< S35      e)zB
Check if 'value' matches svg type 'typename'.

Raises TypeError.
z is not of type 'rC   )r    r6   r8   r"   r+   r:   s      r   check_svg_typeTiny12Validator.check_svg_type`   s0     !!(22LIJJr   c                 8    U R                   R                  X!5      $ r   )r    r6   rI   s      r   is_valid_svg_type!Tiny12Validator.is_valid_svg_typek   s    %%h66r   c                     XR                   ;   $ )z3True if 'elementname' is a valid svg-element name. )r   rE   s     r   is_valid_elementname$Tiny12Validator.is_valid_elementnamen   s    mm++r   c                 @    U R                  U5      nX#R                  ;   $ )zPTrue if 'attributename' is a valid svg-attribute for svg-element
'elementname'.
)rF   valid_attributes)r"   r)   r*   elements       r   r?   &Tiny12Validator.is_valid_svg_attributer   s#     ##K0 8 888r   c                 @    U R                  U5      nX#R                  ;   $ )zUTrue if svg-element 'childrenname' is a valid children of
svg-element 'elementname'.
)rF   valid_children)r"   r)   childrennamerT   s       r   is_valid_children!Tiny12Validator.is_valid_childreny   s#     ##K05555r   c                 X    U R                  X5      (       d  [        SU< SU< S35      eg)zkChecks if svg-element 'childrenname' is a valid children of
svg-element 'elementname'.

Raises ValueError.
zInvalid children 'r>   r4   N)rY   r   )r"   r)   rX   s      r   check_valid_children$Tiny12Validator.check_valid_children   s,     %%k@@l\ghii Ar   c                    Uc  [        S5      e[        U[        [        45      (       a  US4nOd[        R
                  R                  UR                  5       5      nU(       a  UR                  5       u  p4n[        U5      nO[        SU-  5      eX54nU R                  R                  US   5      (       a  U$ SU R                  R                  5       -  n[        U< SU< S35      e)zZSplit value in (number, unit) if value has an unit or (number, None).

Raises ValueError.
NzInvalid type 'None'.z#'%s' is not a valid svg-coordinate.r   z	SVG %s %sz is not a valid number for: .)r8   
isinstanceintfloatr   
coordinatematchstripgroupsr   r    	is_numberget_version)r"   r+   resultnumbertmpunitversions          r   get_coordinateTiny12Validator.get_coordinate   s     =233ec5\**T]F''--ekkm<F$*MMO!Tv !F!NOO^F%%fQi00M!D$4$4$@$@$BBGE7STTr   r   r
   r   r    NT)string)__name__
__module____qualname____firstlineno__rD   r#   r,   r(   r0   r/   rF   rJ   rM   rP   r?   rY   r\   rn   
get_length__static_attributes__ r   r   r   r   #   sW    K0NAG"ln	K7,96jU.  Jr   r   c                   "    \ rS rSrSrSS jrSrg)r      zFull 1.1c                     Xl         [        R                  U l        [        R                  U l        [        R                  " 5       U l        g r   )r
   r   r   r   r   r    r!   s     r   r#   Full11Validator.__init__   r%   r   rp   Nrq   )rs   rt   ru   rv   rD   r#   rx   ry   r   r   r   r      s    K0r   r   Nrq   )
svgwrite.datar   r   r   r   r   r   objectr   r   ry   r   r   <module>r      s:    !   !%} f } @0o 0r   