o
    ÌÄ.j0  ã                   @  sr   d Z ddlmZ ddlmZmZ ddlmZ er,ddlmZm	Z	 ddl
mZ ddlmZ G dd	„ d	eƒZd	gZd
S )z+The interface for timezone implementations.é    )Úannotations)ÚABCÚabstractmethod)ÚTYPE_CHECKING)ÚdatetimeÚtzinfo)Úrrule)Úpropc                   @  s’   e Zd ZdZeed#dd„ƒƒZed$dd	„ƒZed%dd„ƒZed&dd„ƒZ	ed'dd„ƒZ
ed(dd„ƒZed)dd„ƒZed*dd„ƒZed*d d!„ƒZd"S )+Ú
TZProviderz'Interface for timezone implementations.ÚreturnÚstrc                 C  ó   dS )zThe name of the implementation.N© ©Úselfr   r   úP/home/thesage/.local/lib/python3.10/site-packages/icalendar/timezone/provider.pyÚname   ó    zTZProvider.nameÚdtr   c                 C  r   )zReturn the datetime in UTC.Nr   )r   r   r   r   r   Úlocalize_utc   r   zTZProvider.localize_utcÚtzr   c                 C  r   )z"Localize a datetime to a timezone.Nr   )r   r   r   r   r   r   Úlocalize   r   zTZProvider.localizeÚtzidÚboolc                 C  r   )z=Whether the timezone is already cached by the implementation.Nr   )r   r   r   r   r   Úknows_timezone_id    r   zTZProvider.knows_timezone_idr   Ú
ical_rruleúprop.vRecurÚNonec                 C  r   )zIMake sure the until value works for rrules generated from the ical_rrule.Nr   )r   r   r   r   r   r   Úfix_rrule_until$   r   zTZProvider.fix_rrule_untilr   c                 C  r   )z.Create a pytz timezone file given information.Nr   )r   r   Útransition_timesÚtransition_infor   r   r   Úcreate_timezone(   r   zTZProvider.create_timezoneútzinfo | Nonec                 C  r   )z;Return a timezone with a name or None if we cannot find it.Nr   )r   r   r   r   r   Útimezone,   r   zTZProvider.timezonec                 C  r   )zWhether we use pytz.Nr   r   r   r   r   Ú	uses_pytz0   r   zTZProvider.uses_pytzc                 C  r   )zWhether we use zoneinfo.Nr   r   r   r   r   Úuses_zoneinfo4   r   zTZProvider.uses_zoneinfoN)r   r   )r   r   r   r   )r   r   r   r   r   r   )r   r   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   r   r   r
      s*    r
   N)r)   Ú
__future__r   Úabcr   r   Útypingr   r   r   Údateutil.rruler   Ú	icalendarr	   r
   Ú__all__r   r   r   r   Ú<module>   s    
)