a
    6Ra                     @   sT   d dl T d dlmZ G dd deZG dd deZedefi Zedefi Zd	S )
   )*)Sequencec                   @   s   e Zd Zdd ZdS )
MetaStrictc                 C   s2   |  D ]\}}t|tr||_qt| |||S )N)items
isinstance
Descriptornametype__new__)clsclsnamebasesmethodskv r   <lib/python3.9/site-packages/openpyxl/descriptors/__init__.pyr
   	   s    
zMetaStrict.__new__N__name__
__module____qualname__r
   r   r   r   r   r      s   r   c                   @   s   e Zd Zdd ZdS )MetaSerialisablec                 C   sB  g }g }g }g }|  D ]\}}	t|	trt|	dd }
|
rP||d|
|f f t|	ddrr|| || qt|	tr|| qt|	trt|	jdr|| q|| qt|	t	s|| q|
dd u rt||d< t||d< |
dd u rtt||d< |
d	d u r2tt||d	< t| |||S )
N	namespacez{%s}%snestedFZto_treeZ	__attrs__Z__namespaced__Z
__nested__Z__elements__)r   r   r   getattrappendr   ZTypedhasattrZexpected_typeZAliasgettuplesortedr   r
   )r   r   r   r   attrsr   elementsZ
namespacedr   r   nsr   r   r   r
      s8    




zMetaSerialisable.__new__Nr   r   r   r   r   r      s   r   StrictZ_SerialisableN)	baseZsequencer   r	   r   r   objectr#   Z_Serialiasabler   r   r   r   <module>   s
   	$