
    i                         d dl Z d dlmZ d dlmZmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ e j        dk     rd d	lmZ nd d	lmZ  G d
 d          Z G d de          Z G d de          ZdS )    N)Iterable)ClassVarUnion)etree)_Elementnsmap)
to_unicode)      )Selfc                      e Zd ZU dZee         dz  ed<   dZee	dz           ed<   dZ
e	dz  ed<   dZedz  ed<   dZdde	dz  de	ez  dz  ddfdZd	ed ed          f         dd fd
Zde	fdZdefdZdeddfdZdeee         z  defdZdS )BaseElementNchildrentagvalue
attributesnamereturnc                 |    g | _         i | _        t          |          }d | _        |
|| j        d<   |	|| _        d S d S )Nr   )r   r   r
   r   )selfr   r   s      O/root/projects/butler/venv/lib/python3.11/site-packages/caldav/elements/base.py__init__zBaseElement.__init__   sO    5!!
&*DOF#DJJJ     otherc                 ,    |                      |          S N)append)r   r   s     r   __add__zBaseElement.__add__#   s    {{5!!!r   c                 v    t          j        |                                 ddd          }t          |d          S )Nzutf-8T)encodingxml_declarationpretty_print)r   tostring
xmlelementstr)r   utf8s     r   __str__zBaseElement.__str__&   s>    ~OOTX
 
 
 4!!!r   c                 D   | j         t          d          | j        t          d          t          j        | j         t
                    }| j        | j        |_        | j        D ]#}|                    || j        |                    $| 	                    |           |S )Nz"Unexpected value None for self.tagz)Unexpected value None for self.attributesr   )
r   
ValueErrorr   r   Elementr	   r   textsetxmlchildren)r   rootks      r   r%   zBaseElement.xmlelement,   s    8 ABBB?"HIII}TXU333:!
DI 	, 	,AHHQ*++++r   r/   c                     | j         t          d          | j         D ])}|                    |                                           *d S Nz'Unexpected value None for self.children)r   r*   r   r%   )r   r/   cs      r   r.   zBaseElement.xmlchildren@   sQ    = FGGG 	( 	(AKK''''	( 	(r   elementc                     | j         t          d          t          |t                    r| j                             |           n| j                             |           | S r2   )r   r*   
isinstancer   extendr   )r   r4   s     r   r   zBaseElement.appendG   s_    = FGGGgx(( 	*M  ))))M  )))r   )NN)__name__
__module____qualname__r   listr   __annotations__r   r   r&   r   r   dictcaldav_classbytesr   r   r   r   r(   r   r%   r.   r    r   r   r   r      se        "&Hd4j4&&& $C#*	$$$E3:"Jt"""L S4Z sU{T7I UY    "U=(=2I#IJ "} " " " "" " " " "H    (( (T ( ( ( (	dXd^3 	 	 	 	 	 	 	r   r   c                   :     e Zd Zddedz  ddf fdZ fdZ xZS )NamedBaseElementNr   r   c                 Z    t          t          |                               |           d S )N)r   )superrB   r   )r   r   	__class__s     r   r   zNamedBaseElement.__init__T   s+    %%..D.99999r   c                     | j                             d          t          d          t          t          |                                           S )Nr   zname attribute must be defined)r   get	ExceptionrD   rB   r%   )r   rE   s    r   r%   zNamedBaseElement.xmlelementW   sE    ?v&&.<===%t,,77999r   r   )r8   r9   r:   r&   r   r%   __classcell__rE   s   @r   rB   rB   S   sm        : :S4Z :4 : : : : : :: : : : : : : : :r   rB   c                   6     e Zd Zddeez  dz  ddf fdZ xZS )ValuedBaseElementNr   r   c                 Z    t          t          |                               |           d S )N)r   )rD   rL   r   )r   r   rE   s     r   r   zValuedBaseElement.__init__^   s+    &&//e/<<<<<r   r   )r8   r9   r:   r&   r?   r   rI   rJ   s   @r   rL   rL   ]   sY        = =cEkD0 =D = = = = = = = = = =r   rL   )syscollections.abcr   typingr   r   lxmlr   
lxml.etreer   caldav.lib.namespacer	   caldav.lib.python_utilitiesr
   version_infotyping_extensionsr   r   rB   rL   r@   r   r   <module>rW      s<   



 $ $ $ $ $ $ " " " " " " " "             & & & & & & 2 2 2 2 2 2g&&&&&&&> > > > > > > >B: : : : :{ : : := = = = = = = = = =r   