+
    ¾¾j)  ã                  ór   € R t ^ RIHt ^ RIt^ RIHtHt ^ RIHt ]'       d   ^ RI	H
t
  ! R R]4      tR.tR# )zA factory to create components.)ÚannotationsN)ÚTYPE_CHECKINGÚAny)ÚCaselessDict©Ú	Componentc                  óJ   a € ] tR t^tRtR V 3R lltR R ltR R ltRtV ;t	# )	ÚComponentFactorya^  Registered components from :rfc:`7953` and :rfc:`5545`.

To get a component, use this class as shown below.

.. code-block:: pycon

    >>> from icalendar import ComponentFactory
    >>> factory = ComponentFactory()
    >>> event_class = factory.get_component_class('VEVENT')
    >>> event_class()
    VEVENT({})

Automatically creates custom component classes for unknown names (X-components,
IANA-components). Custom components are never dropped per :rfc:`5545`.

.. code-block:: pycon

    >>> factory = ComponentFactory()
    >>> custom_class = factory.get_component_class('X-VENDOR')
    >>> custom_class()
    X-VENDOR({})

If a component class is not yet supported, it can be either created
using :meth:`get_component_class` or added manually as a subclass of
:class:`~icalendar.cal.component.Component`.
See :doc:`/how-to/custom-components` for details.
c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úargsr   ÚkwargsÚreturnÚNone© )Úformats   "Ú^/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/cal/component_factory.pyÚ__annotate__ÚComponentFactory.__annotate__+   s!   € ÷ /ñ /˜cð /¨Sð /°Tñ /ó    c                ó  <€ \         SV `  ! V/ VB  ^ RIHp ^ RIHp ^ RIHp ^ RIH	p ^ RI
Hp ^ RIHp ^ RIHp	 ^ RIHp
HpHp ^ R	IHp V P-                  V4       V P-                  V4       V P-                  V4       V P-                  V	4       V P-                  V4       V P-                  V
4       V P-                  V4       V P-                  V4       V P-                  V4       V P-                  V4       V P-                  V4       R
# )z#Set keys to upper for initial dict.)ÚAlarm)ÚAvailability)Ú	Available)ÚCalendar)ÚEvent)ÚFreeBusy)ÚJournal)ÚTimezoneÚTimezoneDaylightÚTimezoneStandard)ÚTodoN)ÚsuperÚ__init__Úicalendar.cal.alarmr   Úicalendar.cal.availabilityr   Úicalendar.cal.availabler   Úicalendar.cal.calendarr   Úicalendar.cal.eventr   Úicalendar.cal.free_busyr   Úicalendar.cal.journalr   Úicalendar.cal.timezoner   r   r    Úicalendar.cal.todor!   Úadd_component_class)Úselfr   r   r   r   r   r   r   r   r   r   r   r    r!   Ú	__class__s   &*,           €r   r#   ÚComponentFactory.__init__+   sÕ   ø€ ä‰Ò˜$Ð) &Ò)Ý-Ý;Ý5Ý3Ý-Ý4Ý1÷	
ñ 	
õ
 	,à× Ñ  Ô*Ø× Ñ  Ô'Ø× Ñ  Ô&Ø× Ñ  Ô)Ø× Ñ  Ô*Ø× Ñ  Ô*Ø× Ñ Ð!1Ô2Ø× Ñ Ð!1Ô2Ø× Ñ  Ô'Ø× Ñ  Ô+Ø× Ñ  Ö.r   c               ó    € V ^8„  d   QhRRRR/# )r   Úclsútype[Component]r   r   r   )r   s   "r   r   r   H   s   € ÷ ñ  ð ¸4ñ r   c                ó"   € WVP                   &   R# )zXAdd a component class to the factory.

Parameters:
    cls: The component class to add.
N)Úname)r.   r2   s   &&r   r-   Ú$ComponentFactory.add_component_classH   s   € ð ˆS�X‰X‹r   c               ó    € V ^8„  d   QhRRRR/# )r   r5   Ústrr   r3   r   )r   s   "r   r   r   P   s   € ÷ ñ ¨ð °ñ r   c                óÆ   € V P                  V4      pVfL   ^ RIHp \        \        P
                  ! RRV4      V3RVP                  4       /4      pV P                  V4       V# )zîGet the component class from the factory.

This also creates and adds the component class if it does not exist.

Parameters:
    name: The name of the component, for example, ``"VCALENDAR"``.

Returns:
    The registered component class.
r   z[^\w]+Ú r5   )ÚgetÚicalendar.cal.componentr   ÚtypeÚreÚsubÚupperr-   )r.   r5   Úcomponent_classr   s   &&  r   Úget_component_classÚ$ComponentFactory.get_component_classP   s[   € ð Ÿ(™( 4›.ˆØÒ"Ý9ä"Ü—’�y " dÓ+¨i¨\¸FÀDÇJÁJÃLÐ;QóˆOð ×$Ñ$ _Ô5ØÐr   r   )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r#   r-   rB   Ú__static_attributes__Ú__classcell__)r/   s   @r   r	   r	      s!   ø† ñ÷8/ð /õ:÷ó r   r	   )rH   Ú
__future__r   r>   Útypingr   r   Úicalendar.caselessdictr   Ú	icalendarr   r	   Ú__all__r   r   r   Ú<module>rP      s3   ðÙ %å "ã 	ß %å /çÝ#ôU�|ô Uðp Ð
‚r   