+
    }¯³j  ã                   óT  € R t ^ RIt^ RIt]P                  ! ^ 4      t ! R R]P
                  4      t]P                  ! ]P                  ) R7      t]P                  '       d    ]P                  ! ]P                  ) R7      tM]t]],
          t ! R R]P
                  4      t]! 4       tR# )zþtzinfo implementations for psycopg2

This module holds two different tzinfo implementations that can be used as
the 'tzinfo' argument to datetime constructors, directly passed to psycopg
functions or used to set the .tzinfo_factory attribute in cursors.
Nc                   óz   a a€ ] tR t^$t oRtRt]t/ tRR lt	RV 3R llt
R tR tR tR tR	 tR
 tR tRtVtV ;t# )ÚFixedOffsetTimezonea¬  Fixed offset in minutes east from UTC.

This is exactly the implementation__ found in Python 2.3.x documentation,
with a small change to the `!__init__()` method to allow for pickling
and a default name in the form ``sHH:MM`` (``s`` is the sign.).

The implementation also caches instances. During creation, if a
FixedOffsetTimezone instance has previously been created with the same
offset and name that instance will be returned. This saves memory and
improves comparability.

.. versionchanged:: 2.9

    The constructor can take either a timedelta or a number of minutes of
    offset. Previously only minutes were supported.

.. __: https://docs.python.org/library/datetime.html
Nc                ó    € Ve>   \        V\        P                  4      '       g   \        P                  ! VR7      pWn        Ve	   W n        R # R # )N)Úminutes)Ú
isinstanceÚdatetimeÚ	timedeltaÚ_offsetÚ_name)ÚselfÚoffsetÚnames   &&&ÚL/home/luca/screen-checking/.venv/lib/python3.14/site-packages/psycopg2/tz.pyÚ__init__ÚFixedOffsetTimezone.__init__<   s@   € ØÒÜ˜f¤h×&8Ñ&8×9Ò9Ü!×+Ò+°FÔ;�Ø!ŒLØÒØŽJñ ó    c                ó”   <€ W3p V P                   V,          #   \         d$    \        ST `  YT4      pY@P                   T&   Tu # i ; i)z@Return a suitable instance created earlier if it exists
        )Ú_cacheÚKeyErrorÚsuperÚ__new__)Úclsr   r   ÚkeyÚtzÚ	__class__s   &&&  €r   r   ÚFixedOffsetTimezone.__new__D   sN   ø€ ð ˆnˆð	Ø—:‘:˜c•?Ð"øÜô 	Ü‘‘ ¨dÓ3ˆBØ �J‰J�s‰OØŠIð	ús   † ™+AÁAc                ó@   € R V P                   : RV P                  : R2# )z'psycopg2.tz.FixedOffsetTimezone(offset=z, name=Ú)©r	   r
   ©r   s   &r   Ú__repr__ÚFixedOffsetTimezone.__repr__O   s   � à�|Œ|˜TŸZœZð)ð 	)r   c                ól   € \        V\        4      '       d   V P                  VP                  8H  # \        # ©N©r   r   r	   ÚNotImplemented©r   Úothers   &&r   Ú__eq__ÚFixedOffsetTimezone.__eq__S   ó)   € Ü�eÔ0×1Ò1Ø—<‘< 5§=¡=Ñ0Ð0ä!Ð!r   c                ól   € \        V\        4      '       d   V P                  VP                  8g  # \        # r#   r$   r&   s   &&r   Ú__ne__ÚFixedOffsetTimezone.__ne__Y   r*   r   c                ó2   € V P                   V P                  3# r#   r   r   s   &r   Ú__getinitargs__Ú#FixedOffsetTimezone.__getinitargs___   s   € Ø�|‰|˜TŸZ™ZÐ'Ð'r   c                ó   € V P                   # r#   )r	   ©r   Údts   &&r   Ú	utcoffsetÚFixedOffsetTimezone.utcoffsetb   s   € Ø�|‰|Ðr   c                ó$  € V P                   e   V P                   # \        V P                  P                  4       ^<4      w  r#\        V^<4      w  rBRV,          pV'       g	   V'       d)   VRV,          ,          pV'       d   VRV,          ,          pV# )Nz%+03dz:%02d)r
   Údivmodr	   Útotal_seconds)r   r3   r   ÚsecondsÚhoursÚrvs   &&    r   ÚtznameÚFixedOffsetTimezone.tznamee   st   € Ø�:‰:Ò!Ø—:‘:Ðä! $§,¡,×"<Ñ"<Ó">ÀÓCÑˆÜ ¨Ó,‰ˆØ�u�_ˆß—gØ�'˜GÕ#Õ#ˆBßØ�g Õ'Õ'�àˆ	r   c                ó   € \         # r#   )ÚZEROr2   s   &&r   ÚdstÚFixedOffsetTimezone.dsts   s   € Üˆr   )r
   r	   )NN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r
   r?   r	   r   r   r   r    r(   r,   r/   r4   r<   r@   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r   Ú__classdict__s   @@r   r   r   $   sM   ù‡ € ñð$ €EØ€Gà€Fô÷	ò)ò"ò"ò(òò÷ò r   r   )r9   c                   ó<   a € ] tR t^t o RtR tR tR tR tRt	V t
R# )ÚLocalTimezonezfPlatform idea of local timezone.

This is the exact implementation from the Python 2.3 documentation.
c                óH   € V P                  V4      '       d   \        # \        # r#   )Ú_isdstÚ	DSTOFFSETÚ	STDOFFSETr2   s   &&r   r4   ÚLocalTimezone.utcoffset„   s   € Ø�;‰;�r�?Š?ÜÐäÐr   c                óH   € V P                  V4      '       d   \        # \        # r#   )rN   ÚDSTDIFFr?   r2   s   &&r   r@   ÚLocalTimezone.dstŠ   s   € Ø�;‰;�r�?Š?ÜˆNäˆKr   c                óN   € \         P                  V P                  V4      ,          # r#   )Útimer<   rN   r2   s   &&r   r<   ÚLocalTimezone.tzname�   s   € Ü�{‰{˜4Ÿ;™; r›?Õ+Ð+r   c           	     ó"  € VP                   VP                  VP                  VP                  VP                  VP
                  VP                  4       ^ R3	p\        P                  ! V4      p\        P                  ! V4      pVP                  ^ 8„  # )é    éÿÿÿÿ)ÚyearÚmonthÚdayÚhourÚminuteÚsecondÚweekdayrV   ÚmktimeÚ	localtimeÚtm_isdst)r   r3   ÚttÚstamps   &&  r   rN   ÚLocalTimezone._isdst“   sg   € Ø�g‰g�r—x‘x §¡Ø�g‰g�r—y‘y "§)¡)Ø�j‰j‹l˜A˜rð#ˆô —’˜B“ˆÜ�^Š^˜EÓ"ˆØ�{‰{˜Q‰Ðr   © N)rB   rC   rD   rE   rF   r4   r@   r<   rN   rG   rH   )rJ   s   @r   rL   rL      s#   ø‡ € ñòòò,÷ð r   rL   )rF   r   rV   r   r?   Útzinfor   ÚtimezonerP   ÚdaylightÚaltzonerO   rS   rL   ÚLOCALrh   r   r   Ú<module>rn      s”   ðñó: Û à×Ò˜!Ó€ôP˜(Ÿ/™/ô Pðf ×Ò¨¯© ~Ô6€	Ø‡=‡=€=Ø×"Ò"¨D¯L©L¨=Ô9�Ià€IØ
�iÕ
€ô�H—O‘Oô ñ: 	‹‚r   