
    fhl	                     z   d Z ddlmZ ddlmZ ddlmZ ddlmZm	Z	m
Z
mZmZ ddlmZ  G d d	e          Z G d
 de          Z G d de	          Ze
Z G d de	          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          Z G d de          ZddZdS )z
Excel specific descriptors
    )REL_NS)safe_string)Element   )MatchPatternMinMaxIntegerStringSequence)Serialisablec                       e Zd ZdZdS )	HexBinaryz[0-9a-fA-F]+$N__name__
__module____qualname__pattern     Q/var/www/histauto/venv/lib/python3.11/site-packages/openpyxl/descriptors/excel.pyr   r      s        GGGr   r   c                       e Zd ZdZdS )UniversalMeasurez$[0-9]+(\.[0-9]+)?(mm|cm|in|pt|pc|pi)Nr   r   r   r   r   r      s        5GGGr   r   c                       e Zd ZdZeZdZdZdS )	TextPointzt
    Size in hundredths of points.
    In theory other units of measurement can be used but these are unbounded
    ii N)r   r   r   __doc__intexpected_typeminmaxr   r   r   r   r      s)          M
C
CCCr   r   c                   *     e Zd ZdZdZdZ fdZ xZS )
Percentagez&((100)|([0-9][0-9]?))(\.[0-9][0-9]?)?%ii@B c                     t          |t                    r9d|v r5|                    dd          }t          t	          |          dz            }t                                          ||           d S )N% i  )
isinstancestrreplacer   floatsuper__set__selfinstancevalue	__class__s      r   r*   zPercentage.__set__3   sf    eS!! 	-cUllMM#r**Eet+,,E%(((((r   )r   r   r   r   r   r   r*   __classcell__r/   s   @r   r!   r!   -   sG        7G
C
C) ) ) ) ) ) ) ) )r   r!   c                   ,    e Zd Z e            Z	 ddZdS )	ExtensionNc                     || _         d S N)uri)r,   r6   s     r   __init__zExtension.__init__>        r   r5   )r   r   r   r
   r6   r7   r   r   r   r3   r3   :   s8        
&((C      r   r3   c                   0    e Zd Z ee          Z	 ddZdS )ExtensionList)r   r   c                     || _         d S r5   )ext)r,   r<   s     r   r7   zExtensionList.__init__H   r8   r   N)r   )r   r   r   r   r3   r<   r7   r   r   r   r:   r:   D   s?        
(
+
+
+C      r   r:   c                       e Zd ZeZdZdS )RelationTN)r   r   r   r   	namespace
allow_noner   r   r   r>   r>   N   s        IJJJr   r>   c                       e Zd ZdZdS )Base64BinaryzP^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{4})$Nr   r   r   r   rB   rB   T   s        `GGGr   rB   c                       e Zd ZdZdS )Guidz?{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\}Nr   r   r   r   rD   rD   Y   s        PGGGr   rD   c                   &     e Zd ZdZdZ fdZ xZS )	CellRangez]^[$]?([A-Za-z]{1,3})[$]?(\d+)(:[$]?([A-Za-z]{1,3})[$]?(\d+)?)?$|^[A-Za-z]{1,3}:[A-Za-z]{1,3}$Tc                 x    ||                                 }t                                          ||           d S r5   )upperr)   r*   r+   s      r   r*   zCellRange.__set__c   s4    KKMME%(((((r   )r   r   r   r   r@   r*   r0   r1   s   @r   rF   rF   ^   sB        nGJ) ) ) ) ) ) ) ) )r   rF   Nc                 R    |d|d| } t          | t          |                    S )z?
    Override serialisation because explicit none required
    N{})val)r   r   )tagnamer.   r?   s      r   _explicit_nonerN   j   s8     'ii17E 2 23333r   r5   )r   openpyxl.xml.constantsr   openpyxl.compatr   openpyxl.xml.functionsr   r$   r   r   r	   r
   r   serialisabler   r   r   r   
Coordinater!   r3   r:   r>   rB   rD   rF   rN   r   r   r   <module>rT      sz    * ) ) ) ) ) ' ' ' ' ' ' * * * * * *              ' & & & & &       
6 6 6 6 6| 6 6 6
        

) 
) 
) 
) 
) 
) 
) 
)           L       v   a a a a a< a a a
Q Q Q Q Q< Q Q Q
	) 	) 	) 	) 	) 	) 	) 	)4 4 4 4 4 4r   