
    11i                     
   S r SSKrSSKJrJr  \" S5      r " S S\5      r\" 5       rS r " S S\5      r	\" \R                  * S	9r\R                  (       a  \" \R                  * S	9rO\r\\-
  r " S
 S\5      r\" 5       rg)zx
This module provides some datetime.tzinfo implementations.

All those classes are taken from the Python documentation.
    N)	timedeltatzinfoc                   0    \ rS rSrSrS rS rS rS rSr	g)	Utc   z+UTC

Universal time coordinated time zone.
c                     [         $ )zG
Return offset from UTC in minutes east of UTC, which is ZERO for UTC.
ZEROselfdts     H/home/james-whalen/.local/lib/python3.13/site-packages/isodate/tzinfo.py	utcoffsetUtc.utcoffset   s	         c                     g)zQ
Return the time zone name corresponding to the datetime object dt,
as a string.
UTC r   s     r   tzname
Utc.tzname   s    
 r   c                     [         $ )zK
Return the daylight saving time (DST) adjustment, in minutes east
of UTC.
r	   r   s     r   dstUtc.dst!   	    
 r   c                     [         S4$ )zG
When unpickling a Utc object, return the default instance below, UTC.
r   )_Utcr   s    r   
__reduce__Utc.__reduce__(   s     Rxr   r   N)
__name__
__module____qualname____firstlineno____doc__r   r   r   r   __static_attributes__r   r   r   r   r      s    
r   r   c                      [         $ )z.
Helper function for unpickling a Utc object.
)r   r   r   r   r   r   3   s	     Jr   c                   :    \ rS rSrSrS
S jrS rS rS rS r	Sr
g	)FixedOffset:   z
A class building tzinfo objects for fixed-offset time zones.

Note that FixedOffset(0, 0, "UTC") or FixedOffset() is a different way to
build a UTC tzinfo object.
c                 ,    [        XS9U l        X0l        g)z
Initialise an instance with time offset and name.
The time offset should be positive for time zones east of UTC
and negate for time zones west of UTC.
)hoursminutesN)r   _FixedOffset__offset_FixedOffset__name)r   offset_hoursoffset_minutesnames       r   __init__FixedOffset.__init__B   s     "Mr   c                     U R                   $ z+
Return offset from UTC in minutes of UTC.
)r-   r   s     r   r   FixedOffset.utcoffsetK   s     }}r   c                     U R                   $ zQ
Return the time zone name corresponding to the datetime object dt, as a
string.
r.   r   s     r   r   FixedOffset.tznameQ   s    
 {{r   c                     [         $ )zK
Return the daylight saving time (DST) adjustment, in minutes east of
UTC.
r	   r   s     r   r   FixedOffset.dstX   r   r   c                      SU R                   -  $ )z&
Return nicely formatted repr string.
z<FixedOffset %r>r9   r   s    r   __repr__FixedOffset.__repr___   s     "DKK//r   )__name__offsetN)r   r   r   )r    r!   r"   r#   r$   r2   r   r   r   r>   r%   r   r   r   r(   r(   :   s     0r   r(   )secondsc                   0    \ rS rSrSrS rS rS rS rSr	g)	LocalTimezones   z6
A class capturing the platform's idea of local time.
c                 F    U R                  U5      (       a  [        $ [        $ r5   )_isdst	DSTOFFSET	STDOFFSETr   s     r   r   LocalTimezone.utcoffsetx   s     ;;r??r   c                 F    U R                  U5      (       a  [        $ [        $ )z 
Return daylight saving offset.
)rG   DSTDIFFr
   r   s     r   r   LocalTimezone.dst   s     ;;r??NKr   c                 F    [         R                  U R                  U5         $ r8   )timer   rG   r   s     r   r   LocalTimezone.tzname   s    
 {{4;;r?++r   c           	      "   UR                   UR                  UR                  UR                  UR                  UR
                  UR                  5       SS4	n[        R                  " U5      n[        R                  " U5      nUR                  S:  $ )z=
Returns true if DST is active for given datetime object dt.
r   )yearmonthdayhourminutesecondweekdayrO   mktime	localtimetm_isdst)r   r   ttstamps       r   rG   LocalTimezone._isdst   so    
 GGHHFFGGIIIIJJL

 B^^E"{{Qr   r   N)
r    r!   r"   r#   r$   r   r   r   rG   r%   r   r   r   rD   rD   s   s    ,r   rD   )r$   rO   datetimer   r   r
   r   r   r   r(   timezonerI   daylightaltzonerH   rL   rD   LOCALr   r   r   <module>re      s     &|& B 
e)0& )0X t}}n-	 ==4<<-0II
i
/F /f 	r   