Jellyfin(8096), OrbStack(8097) 포트 충돌으로 변경. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
34 lines
979 B
Python
34 lines
979 B
Python
"""Base interface for selection of components."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from abc import ABC, abstractmethod
|
|
from typing import TYPE_CHECKING, Sequence
|
|
|
|
if TYPE_CHECKING:
|
|
from icalendar.cal import Component
|
|
|
|
from recurring_ical_events.series import Series
|
|
|
|
|
|
class SelectComponents(ABC):
|
|
"""Abstract class to select components from a calendar."""
|
|
|
|
@staticmethod
|
|
def component_name():
|
|
"""The name of the component if there is only one."""
|
|
raise NotImplementedError("This should be implemented in subclasses.")
|
|
|
|
@abstractmethod
|
|
def collect_series_from(
|
|
self, source: Component, suppress_errors: tuple[Exception]
|
|
) -> Sequence[Series]:
|
|
"""Collect all components from the source grouped together into a series.
|
|
|
|
suppress_errors - a list of errors that should be suppressed.
|
|
A Series of events with such an error is removed from all results.
|
|
"""
|
|
|
|
|
|
__all__ = ["SelectComponents"]
|