�
J�g�� � � � d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
Z
ddl
mZ ddlm
Z
ddlmZmZ ddlmZmZ dd lmZ dd
lmZmZ ddlmZ ddlmZmZ n# e$ r dxZZY nw xY wdd
lmZ ej d� � Z ej ddddd� � Z e �! � � Z" e
j# e� � G d� dej$ � � � � Z% e%� � Z& e
j# e� � G d� dej$ � � � � Z' G d� de� � Z( G d� de)� � Z* G d� de)� � Z+ G d� de� � Z, G d� de� � Z- e
j# e� � G d� de-� � � � Z. G d� d e)� � Z/ G d!� d"e� � Z0 G d#� d$e)� � Z1ej2 d%k r d&d'gZ3g d(�Z4ng Z3g Z4d)� Z5 e5� � Z6[5d4d*�Z7d4d+�Z8d,� Z9d-� Z:ej; d.k rd/� Z<nd0� Z< dd1l=m>Z? dS # e$ r G d2� d3e)� � Z?Y dS w xY w)5a�
This module offers timezone implementations subclassing the abstract
:py:class:`datetime.tzinfo` type. There are classes to handle tzfile format
files (usually are in :file:`/etc/localtime`, :file:`/usr/share/zoneinfo`,
etc), TZ environment string (in all known formats), given ranges (with help
from relative deltas), local machine timezone, fixed offset timezone, and UTC
timezone.
� N)�OrderedDict)�string_types)�_thread� )�tzname_in_python2�_tzinfo)�tzrangebase�enfold)�_validate_fromutc_inputs)�_TzSingleton�_TzOffsetFactory)�
_TzStrFactory)�tzwin�
tzwinlocal)�warni� c �t � e Zd ZdZd� Zd� Zed� � � Zd� Ze d� � � Z
d� ZdZd � Z
d
� Zej ZdS )�tzutca�
This is a tzinfo object that represents the UTC time zone.
**Examples:**
.. doctest::
>>> from datetime import *
>>> from dateutil.tz import *
>>> datetime.now()
datetime.datetime(2003, 9, 27, 9, 40, 1, 521290)
>>> datetime.now(tzutc())
datetime.datetime(2003, 9, 27, 12, 40, 12, 156379, tzinfo=tzutc())
>>> datetime.now(tzutc()).tzname()
'UTC'
.. versionchanged:: 2.7.0
``tzutc()`` is now a singleton, so the result of ``tzutc()`` will
always return the same object.
.. doctest::
>>> from dateutil.tz import tzutc, UTC
>>> tzutc() is tzutc()
True
>>> tzutc() is UTC
True
c � � t S �N��ZERO��self�dts �^/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/dateutil/tz/tz.py� utcoffsetztzutc.utcoffsetJ � � ��� c � � t S r r r s r �dstz tzutc.dstM r r c � � dS )N�UTC� r s r �tznameztzutc.tznameP s � ��ur c � � dS )�6
Whether or not the "wall time" of a given datetime is ambiguous in this
zone.
:param dt:
A :py:class:`datetime.datetime`, naive or time zone aware.
:return:
Returns ``True`` if ambiguous, ``False`` otherwise.
.. versionadded:: 2.6.0
Fr# r s r �is_ambiguousztzutc.is_ambiguousT s � � �ur c � � |S )z�
Fast track version of fromutc() returns the original ``dt`` object for
any valid :py:class:`datetime.datetime` object.
r# r s r �fromutcz
tzutc.fromutcd s � � � r c � � t |t t f� � st S t |t � � p$t |t � � o|j t
k S r )�
isinstancer �tzoffset�NotImplemented�_offsetr �r �others r �__eq__ztzutc.__eq__l sQ � ��%�%��!2�3�3� "�!�!��5�%�(�(� H��E�8�,�,�F���$�1F� Ir Nc � � | |k S r r# r/ s r �__ne__ztzutc.__ne__u � � ��E�M�"�"r c � � d| j j z S �Nz%s()�� __class__�__name__�r s r �__repr__ztzutc.__repr__x � � ����/�/�/r )r9 �
__module__�__qualname__�__doc__r r r r$ r'