o
    .j                     @  s   d 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r6ddlmZ dd	lmZ G d
d de	ZdgZdS )z6Selection of all components with the correct adapters.    )annotations)TYPE_CHECKINGSequence)
Occurrence)SelectComponents)ComponentsWithName)Series)	Component)ComponentAdapterc                   @  sH   e Zd ZdZedddZedddZeee	fdddZ
dddZdS )AllKnownComponentsz'Group all known components into series.returnSequence[ComponentAdapter]c                 C  s   t jS )z$Return all known component adapters.)r   component_adapters)self r   X/home/thesage/.local/lib/python3.10/site-packages/recurring_ical_events/selection/all.py_component_adapters   s   z&AllKnownComponents._component_adapters	list[str]c                 C  s   dd | j D }|  |S )z.Return the names of the components to collect.c                 S  s   g | ]}|  qS r   )component_name).0adapterr   r   r   
<listcomp>   s    z,AllKnownComponents.names.<locals>.<listcomp>)r   sort)r   resultr   r   r   names   s   zAllKnownComponents.namesseriestype[Series]
occurrencetype[Occurrence]	collectortype[ComponentsWithName]Nonec                 C  s   || _ || _|| _dS )a8  Collect all known components and overide the series and occurrence.

        series - the Series class to override that is queried for Occurrences
        occurrence - the occurrence class that creates the resulting components
        collector - if you want to override the SelectComponentsByName class
        N)_series_occurrence
_collector)r   r   r   r   r   r   r   __init__!   s   
zAllKnownComponents.__init__sourcer	   suppress_errorstuple[Exception]Sequence[Series]c                 C  s:   g }| j D ]}| j|| j| jd}|||| q|S )z<Collect the components from the source groups into a series.)r   r   )r   r$   r"   r#   extendcollect_series_from)r   r&   r'   r   namer   r   r   r   r+   1   s   

z&AllKnownComponents.collect_series_fromN)r   r   )r   r   )r   r   r   r   r   r    r   r!   )r&   r	   r'   r(   r   r)   )__name__
__module____qualname____doc__propertyr   r   r   r   r   r%   r+   r   r   r   r   r      s    r   N)r0   
__future__r   typingr   r    recurring_ical_events.occurrencer   $recurring_ical_events.selection.baser   $recurring_ical_events.selection.namer   recurring_ical_events.seriesr   icalendar.calr	   (recurring_ical_events.adapters.componentr
   r   __all__r   r   r   r   <module>   s    
,