
    }fr                         d dl Z d dlmZmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZ  G d de      Z G d	 d
e      Z G d de      Zy)    N)DictList)ContentLine)AttendeeParserPersonParser)AttendeeSerializerPersonSerializer)escape_stringunescape_stringc                       e Zd Z G d d      Zddededededdf
d	Zed
edd fd       Zd
eddfdZ	defdZ
defdZy)Personc                       e Zd ZdZeZeZy)Person.MetazABSTRACT-PERSONN__name__
__module____qualname__namer   parserr	   
serializer     K/var/www/feuerwehr-webapp/venv/lib/python3.12/site-packages/ics/attendee.pyMetar      s     %
r   r   Nemailcommon_namedirsent_byreturnc                 R    || _         |xs || _        || _        || _        i | _        y N)r   r   r   r   extra)selfr   r   r   r   s        r   __init__zPerson.__init__   s+    
&/%+-
r   linec                     t        |j                        }|j                         j                  d      r|t	        d      d  } | |      }|j                  |       |S )Nzmailto:)r   valuelower
startswithlenpopulate)clsr%   r   vals       r   parsezPerson.parse   sN    

+;;=##I.#i./*E%jT
r   c                    |j                   | j                  j                   k7  r.t        dj                  | j                  j                               t	        |j
                        }| j                  j                  j                         j                         D ])  \  }\  }}|j                  |g       }|s|j                  r|j                  rT|j                  }dj                  t        t        |j                              }d|d|d}t        j                   |       n%t        dj                  |j                   |            |j"                  s3t%        |      dkD  r%t        dj                  |j                   |            |j"                  r || |       t%        |      dk(  r || |d	          ! || d        , || _        y )
Nzline isn't an {}z\nzThe zH property was not found and is required by the RFC. A default value of "z" has been used insteadzA {} must have at least one {}   zA {} must have at most one {}r   )r   r   
ValueErrorformatdictparamsr   get_parsersitemspoprequireddefaultjoinmapstrwarningswarnmultipler*   r"   )	r#   r%   r4   
param_namer   optionsvaluesdefault_strmessages	            r   r+   zPerson.populate    se   99		&/66tyy~~FGGdkk"-1YY-=-=-I-I-K-Q-Q-S 	')J)ZZ
B/Fg..??$__F"'**Sgoo-F"GKV`bmoGMM'*$%E%L%LTYYXb%cdd##Fa !@!G!G		S]!^__tV$v;!#4+4&+	'. 
r   c                     t        | j                  j                  | j                  t	        d| j
                  z              }| j                  j                  j                         D ]  } || |        |S )Nz	mailto:%s)r4   r'   )r   r   r   r"   r
   r   r   get_serializers)r#   r%   outputs      r   	serializezPerson.serialize>   s_    499>>$**MR]`d`j`jRjDklii**::< 	F4	r   c                 4    t        | j                               S )z.Returns the attendee in an ContentLine format.)r<   rH   )r#   s    r   __str__zPerson.__str__D   s    4>>#$$r   )NNN)r   r   r   r   r<   r$   classmethodr   r.   r+   rH   rJ   r   r   r   r   r   
   s    & &
.c . . .VY .ei .    [ T <; % %r   r   c                        e Zd Z G d d      Zy)	Organizerc                       e Zd ZdZeZeZy)Organizer.Meta	ORGANIZERNr   r   r   r   r   rO   J   s    %
r   r   N)r   r   r   r   r   r   r   rM   rM   I   s    & &r   rM   c                   ^     e Zd Z	 	 ddededededededed	ed
df fdZ G d d      Z xZS )AttendeeNr   r   r   r   rsvprolepartstatcutyper   c	                 b    t         	|   ||||       || _        || _        || _        || _        y r!   )superr$   rS   rT   rU   rV   )
r#   r   r   r   r   rS   rT   rU   rV   	__class__s
            r   r$   zAttendee.__init__Q   s2    S':		 r   c                       e Zd ZdZeZeZy)Attendee.MetaATTENDEEN)r   r   r   r   r   r   r   r   r   r   r   r   r[   Y   s    '
r   r   )NNNNNNN)r   r   r   r<   boolr$   r   __classcell__)rY   s   @r   rR   rR   P   s]    \`Z^c   VY *-@CTWcg( (r   rR   )r=   typingr   r   ics.grammar.parser   ics.parsers.attendee_parserr   r   #ics.serializers.attendee_serializerr   r	   	ics.utilsr
   r   objectr   rM   rR   r   r   r   <module>re      s<      ) D T 4<%V <%~& &(v (r   