+
    ¾¾j4  ã                  óŒ   € R t ^ RIHt ^ RIHtHt ^ RIHt ^RIH	t	 ]'       d   ^ RI
Ht  ! R R]	4      t ! R R	4      tRR	.tR
# )z(Special parsing for calendar components.)Úannotations)ÚTYPE_CHECKINGÚClassVar)ÚContentline)ÚComponentIcalParser)Ú	Componentc                  ó\   a € ] tR t^t$ RtRtR]R&    V 3R ltR R ltR R lt	R	 t
R
tV ;t# )ÚLazyCalendarIcalParsera�  A parser for calendar components.

Instead of parsing the components, LazyComponents are created.
Parsing can happen on demand.

A calendar may grow over time, with its subcomponents greatly increasing
in number, and requiring more memory and time to fully parse. This
optimization lazily parses calendar files without consuming more memory
than necessary, reducing the initial time it takes to access meta data.
zClassVar[tuple[str, ...]]Úparse_instantlyc                óð   <€ VP                  4       pW P                  9   g3   V P                  '       d!   V P                  P                  4       '       g   \        SV `  V4       R# V P                  V4       R# )z9Begin a new component.

This may be the first component.
N)Úupperr
   Ú	componentÚis_lazyÚsuperÚhandle_begin_componentÚhandle_lazy_begin_component)ÚselfÚvalsÚc_nameÚ	__class__s   && €ÚY/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/icalendar/parser/ical/lazy.pyr   Ú-LazyCalendarIcalParser.handle_begin_component!   sU   ø€ ð
 —‘“ˆà×*Ñ*Ô*Ø—>—>�>Ø—>‘>×)Ñ)×+Ò+ô ‰GÑ*¨4Ö0à×,Ñ,¨VÖ4ó    c               ó    € V ^8„  d   QhRRRR/# )é   Úcomponent_nameÚstrÚreturnÚNone© )Úformats   "r   Ú__annotate__Ú#LazyCalendarIcalParser.__annotate__1   s   € ÷ 
ñ 
¸#ð 
À$ñ 
r   c                ó¢  € \        RV 24      .pV P                   F^  pVP                  V4       VR,          P                  4       R8X  g   K2  VR,          P	                  4       P                  4       V8X  g   K^   M	  V P
                  f   \        RV R24      hV P
                  P                  \        VV P                  V4      4      4       R# )zšBegin a new component, but do not parse it yet.

Parameters:
    component_name:
        The upper case name of the component, for example, ``"VEVENT"``.
zBEGIN::Né   NzEND::r$   NNNz+ encountered outside of a parent component.)
r   Ú_content_lines_iteratorÚappendr   Ústripr   Ú
ValueErrorÚadd_componentÚLazySubcomponentÚget_subcomponent_parser)r   r   Úcontent_linesÚlines   &&  r   r   Ú2LazyCalendarIcalParser.handle_lazy_begin_component1   s½   € ô % v¨nÐ-=Ð%>Ó?Ð@ˆØ×0Ô0ˆDØ× Ñ  Ô&à�R•—‘Ó  FÖ*Ø˜•H—N‘NÓ$×*Ñ*Ó,°Ö>áñ 1ð �>‰>Ò!ÜØ˜Ð(Ð(SÐTóð ð 	�‰×$Ñ$ÜØØ×,Ñ,¨]Ó;óö	
r   c               ó    € V ^8„  d   QhRRRR/# )r   r,   zlist[Contentline]r   r   r   )r    s   "r   r!   r"   K   s   € ÷ 

ñ 

Ø.ð

à	ñ

r   c                óB   € \        WP                  V P                  4      # )zjGet the parser for a subcomponent.

Parameters:
    content_lines: The content lines of the subcomponent.
)r   Ú_component_factoryÚ_types_factory)r   r,   s   &&r   r+   Ú.LazyCalendarIcalParser.get_subcomponent_parserK   s"   € ô #Ø×2Ñ2°D×4GÑ4Gó
ð 	
r   c                ó   € R# )z%Prepare the lazily parsed components.Nr   ©r   s   &r   Úprepare_componentsÚ)LazyCalendarIcalParser.prepare_componentsW   s   ‚ r   r   )Ú	VCALENDAR)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   Ú__annotations__r   r   r+   r6   Ú__static_attributes__Ú__classcell__)r   s   @r   r	   r	      s4   ø‡ ñ	ð 2@€OÐ.Ó?ðõ
5õ 
õ4

÷4ð 4r   r	   c                  ó„   € ] tR t^[tRtR R lt]R R l4       tR R ltR R	 lt	R
 R lt
R R ltR R ltR R ltRtR# )r*   zoA subcomponent that is evaluated lazily.

This class holds the raw data of the subcomponent ready for parsing.
c               ó$   € V ^8„  d   QhRRRRRR/# )r   Únamer   Úparserr   r   r   r   )r    s   "r   r!   ÚLazySubcomponent.__annotate__a   s"   € ÷ 1ñ 1˜Sð 1Ð*=ð 1À$ñ 1r   c                ó,   € Wn         W n        RV n        R# )z3Initialize the lazy subcomponent with the raw data.N)Ú_nameÚ_parserÚ
_component)r   rC   rD   s   &&&r   Ú__init__ÚLazySubcomponent.__init__a   s   € àŒ
ØŒØ,0ˆŽr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r    s   "r   r!   rE   h   s   € ÷ ñ �cñ r   c                ó   € V P                   # )zTThe name of the subcomponent.

The name is uppercased, per :rfc:`5545#section-2.1`.
)rG   r5   s   &r   rC   ÚLazySubcomponent.nameg   s   € ð �z‰zÐr   c               ó   € V ^8„  d   QhRR/# ©r   r   Úboolr   )r    s   "r   r!   rE   o   s   € ÷ +ñ +˜4ñ +r   c                ó   € V P                   RJ# )z2Return whether the subcomponent is already parsed.N)rI   r5   s   &r   Ú	is_parsedÚLazySubcomponent.is_parsedo   s   € à�‰ dÐ*Ð*r   c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r    s   "r   r!   rE   s   s   € ÷ ñ �yñ r   c                óä   € V P                   fX   V P                  P                  4       p\        V4      ^8w  d   \	        R\        V4       R24      hV^ ,          V n         RV n        V P                   # )z,Parse the raw data and return the component.Nz<Expected exactly one component in the subcomponent, but got Ú.)rI   rH   ÚparseÚlenr(   )r   Ú
componentss   & r   rY   ÚLazySubcomponent.parses   sk   € à�?‰?Ò"ØŸ™×+Ñ+Ó-ˆJÜ�:‹ !Ô#Ü ðÜ" :›Ð/¨qð2óð ð )¨�mˆDŒOØˆDŒLØ�‰Ðr   c               ó   € V ^8„  d   QhRR/# rQ   r   )r    s   "r   r!   rE   €   s   € ÷ ñ ˜ñ r   c                ó   € R# )zyReturn whether the subcomponents were accessed and parsed lazily.

Call :meth:`parse` to get the fully parsed component.
Tr   r5   s   &r   r   ÚLazySubcomponent.is_lazy€   s   € ñ
 r   c               ó   € V ^8„  d   QhRR/# rM   r   )r    s   "r   r!   rE   ‡   s   € ÷ Qñ Q˜#ñ Qr   c                	óD   € R V P                    RV P                  4        R2# )zLazySubcomponent(name=z	, parsed=Ú))rG   rT   r5   s   &r   Ú__repr__ÚLazySubcomponent.__repr__‡   s#   € Ø'¨¯
©
 |°9¸T¿^¹^Ó=MÐ<NÈaÐPÐPr   c               ó    € V ^8„  d   QhRRRR/# )r   rC   r   r   úlist[Component]r   )r    s   "r   r!   rE   Š   s   € ÷ ñ ˜ð  ñ r   c                ó  € \        V\        4      '       g   \        R4      hWP                  8X  g4   V P                  '       dA   V P                  P                  V4      '       d    V P                  4       P                  V4      # . # )zÓWalk through this component.

This only parses the component if necessary.

Parameters:
    name: The name to match for all components in the calendar,
        then walk through and parse the resulting matches.
zname must be a string.)Ú
isinstancer   Ú	TypeErrorrC   rH   Úcontains_componentrY   Úwalk)r   rC   s   &&r   rk   ÚLazySubcomponent.walkŠ   s`   € ô ˜$¤×$Ò$ÜÐ4Ó5Ð5Ø—9‘9ÔØ�L�LˆL˜TŸ\™\×<Ñ<¸T×BÒBà—:‘:“<×$Ñ$ TÓ*Ð*Øˆ	r   c               ó    € V ^8„  d   QhRRRR/# )r   Úuidr   r   rf   r   )r    s   "r   r!   rE   ›   s   € ÷ 
*ñ 
*˜Cð 
* Oñ 
*r   c                óª   € V P                   '       d$   V P                   P                  V4      '       g   . # V P                  4       P                  V4      # )z“Return the components containing the given ``uid``.

This only parses the component if necessary.

Parameters:
    uid: The UID of the components.
)rH   Úcontains_uidrY   Úwith_uid)r   rn   s   &&r   rq   ÚLazySubcomponent.with_uid›   s=   € ð �<�<ˆ< §¡× 9Ñ 9¸#× >Ò >ØˆIØ�z‰z‹|×$Ñ$ SÓ)Ð)r   )rI   rG   rH   N)r9   r:   r;   r<   r=   rJ   ÚpropertyrC   rT   rY   r   rc   rk   rq   r?   r   r   r   r*   r*   [   sD   † ñõ
1ð ôó ðõ+õõõQõ÷"
*ñ 
*r   r*   N)r=   Ú
__future__r   Útypingr   r   Úicalendar.parser.content_liner   r   r   Úicalendar.cal.componentr   r	   r*   Ú__all__r   r   r   Ú<module>ry      sD   ðÙ .å "ç *å 5å *çÝ1ôI4Ð0ô I4÷XJ*ñ J*ðZ $Ð%7Ð
8‚r   