3
���h�� � @ s� d Z ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl
Z
ddl
mZ ddlm
Z
ddlmZmZ ddlmZmZ dd lmZ dd
lmZmZ ddlmZ yddlmZmZ W n ek
r� d ZZY nX dd
lmZ ejd�Zejddddd�Z e j!� Z"e
j#e�G dd� dej$��Z%e%� Z&e
j#e�G dd� dej$��Z'G dd� de�Z(G dd� de)�Z*G dd� de)�Z+G dd� de�Z,G dd� de�Z-e
j#e�G dd� de-��Z.G dd � d e)�Z/G d!d"� d"e�Z0G d#d$� d$e)�Z1ej2d%k�rd&d'gZ3d(d)d*d+gZ4ng Z3g Z4d,d-� Z5e5� Z6[5d>d.d/�Z7d?d0d1�Z8d2d3� Z9d4d5� Z:ej;d@k�r^d8d9� Z<nd:d9� Z<ydd;l=m>Z? W n& ek
�r� G d<d=� d=e)�Z?Y nX dS )Aa�
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 @ sb e Zd ZdZdd� Zdd� Zedd� �Zdd � Ze d
d� �Z
dd
� ZdZdd� Z
dd� ZejZdS )�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 C s t S )N)�ZERO)�self�dt� r �9/tmp/pip-build-5_djhm0z/python-dateutil/dateutil/tz/tz.py� utcoffsetJ s ztzutc.utcoffsetc C s t S )N)r )r r r r r �dstM s z tzutc.dstc C s dS )N�UTCr )r r r r r �tznameP s ztzutc.tznamec C s dS )a6
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 r r r r �is_ambiguousT s ztzutc.is_ambiguousc C s |S )z�
Fast track version of fromutc() returns the original ``dt`` object for
any valid :py:class:`datetime.datetime` object.
r )r r r r r �fromutcd s z
tzutc.fromutcc C s0 t |ttf�stS t |t�p.t |t�o.|jtkS )N)�
isinstancer �tzoffset�NotImplemented�_offsetr )r �otherr r r �__eq__l s
ztzutc.__eq__Nc C s
| |k S )Nr )r r! r r r �__ne__u s ztzutc.__ne__c C s d| j j S )Nz%s())� __class__�__name__)r r r r �__repr__x s ztzutc.__repr__)r% �
__module__�__qualname__�__doc__r r r r r r
r r" |