
    f                    t    d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z
 ddlmZmZ  G d de          ZdgZd	S )
z+The interface for timezone implementations.    )annotations)ABCabstractmethodabstractproperty)prop)rrule)datetimetzinfoc                      e Zd ZdZedd            Zedd            Zedd
            Zedd            Z	edd            Z
edd            Zed d            Zed!d            Zed!d            ZdS )"
TZProviderz'Interface for timezone implementations.returnstrc                    dS )zThe name of the implementation.N selfs    _/var/www/dev/btcams2024/python_venv/lib/python3.11/site-packages/icalendar/timezone/provider.pynamezTZProvider.name             dtr	   c                    dS )zReturn the datetime in UTC.Nr   )r   r   s     r   localize_utczTZProvider.localize_utc   r   r   tzr
   c                    dS )z"Localize a datetime to a timezone.Nr   )r   r   r   s      r   localizezTZProvider.localize   r   r   idboolc                    dS )z=Whether the timezone is already cached by the implementation.Nr   )r   r   s     r   knows_timezone_idzTZProvider.knows_timezone_id   r   r   r   
ical_rruleprop.vRecurNonec                    dS )zLMake sure the until value works for the rrule generated from the ical_rrule.Nr   )r   r   r!   s      r   fix_rrule_untilzTZProvider.fix_rrule_until   r   r   r   c                    dS )z.Create a pytz timezone file given information.Nr   )r   r   transition_timestransition_infos       r   create_timezonezTZProvider.create_timezone   r   r   Optional[tzinfo]c                    dS )z;Return a timezone with a name or None if we cannot find it.Nr   )r   r   s     r   timezonezTZProvider.timezone#   r   r   c                    dS )zWhether we use pytz.Nr   r   s    r   	uses_pytzzTZProvider.uses_pytz'   r   r   c                    dS )zWhether we use zoneinfo.Nr   r   s    r   uses_zoneinfozTZProvider.uses_zoneinfo+   r   r   N)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__r   r   r   r   r   r    r%   r)   r,   r.   r0   r   r   r   r   r      sE       11. . . . * * * ^* 1 1 1 ^1 L L L ^L [ [ [ ^[ = = = ^= J J J ^J # # # ^# ' ' ' ^' ' 'r   r   N)r4   
__future__r   abcr   r   r   	icalendarr   dateutil.rruler   r	   r
   r   __all__r   r   r   <module>r:      s    1 1 " " " " " " 5 5 5 5 5 5 5 5 5 5                   % % % % % % % %%' %' %' %' %' %' %' %'N .r   