3
���h�2 � @ s� d dl mZ d dlmZ d dlmZmZmZ ed �ZddgZdd� Z e
ed�rZdd d�ZnG d
d� de�Zddd�Zd
d� Z
G dd� de�ZG dd� de�ZdS )� )�PY2)�wraps)�datetime� timedelta�tzinfo�tzname_in_python2�enfoldc s$ t rt� �� fdd��}|S � S dS )z�Change unicode output into bytestrings in Python 2
tzname() API changed in Python 3. It used to return bytes, but was changed
to unicode strings
c s � | |�}|d k r|j � }|S )N)�encode)�args�kwargs�name)�namefunc� �>/tmp/pip-build-5_djhm0z/python-dateutil/dateutil/tz/_common.py�adjust_encoding s
z*tzname_in_python2.<locals>.adjust_encodingN)r r )r
r r )r
r r
s �fold� c C s | j |d�S )a�
Provides a unified interface for assigning the ``fold`` attribute to
datetimes both before and after the implementation of PEP-495.
:param fold:
The value for the ``fold`` attribute in the returned datetime. This
should be either 0 or 1.
:return:
Returns an object for which ``getattr(dt, 'fold', 0)`` returns
``fold`` for all versions of Python. In versions prior to
Python 3.6, this is a ``_DatetimeWithFold`` object, which is a
subclass of :py:class:`datetime.datetime` with the ``fold``
attribute added, if ``fold`` is 1.
.. versionadded:: 2.6.0
)r )�replace)�dtr r r r r % s c @ s( e Zd ZdZf Zdd� Zedd� �ZdS )�_DatetimeWithFoldz�
This is a class designed to provide a PEP 495-compliant interface for
Python versions before 3.6. It is used only for dates in a fold, so
the ``fold`` attribute is fixed at ``1``.
.. versionadded:: 2.6.0
c O s~ d}x4t ||�D ]&\}}||kr.td j|���|||< |