3 6XA @ s d Z ddlmZmZmZ ddlmZmZmZmZ G dd deZ ddl Zeej dZ ejrleej dZne Zee ZG dd d eZe Zd d Zedd ddZeddddZG dd deZed#dddZed$dddZed%dddZed&d d!d"ZdS )'z Reference tzinfo implementations from the Python docs. Used for testing against as they are only correct for the years 1987 to 2006. Do not use these for real code. )tzinfo timedeltadatetime)utcUTCHOURZEROc @ s0 e Zd ZdZdd Zdd Zdd Zdd Zd S )FixedOffsetz&Fixed offset in minutes east from UTC.c C s t |d| _|| _d S )N)Zminutes)r _FixedOffset__offset_FixedOffset__name)selfoffsetname r /usr/lib/python3.6/reference.py__init__ s zFixedOffset.__init__c C s | j S )N)r )r dtr r r utcoffset s zFixedOffset.utcoffsetc C s | j S )N)r )r r r r r tzname s zFixedOffset.tznamec C s t S )N)r )r r r r r dst s zFixedOffset.dstN)__name__ __module____qualname____doc__r r r r r r r r r s r N)Zsecondsc @ s, e Zd Zdd Zdd Zdd Zdd Zd S ) LocalTimezonec C s | j |rtS tS d S )N)_isdst DSTOFFSET STDOFFSET)r r r r r r , s zLocalTimezone.utcoffsetc C s | j |rtS tS d S )N)r DSTDIFFr )r r r r r r 2 s zLocalTimezone.dstc C s t j| j| S )N)_timer r )r r r r r r 8 s zLocalTimezone.tznamec C sD |j |j|j|j|j|j|j ddf }tj|}tj |}|j dkS )Nr )yearZmonthZdayZhourZminutesecondweekdayr ZmktimeZ localtimeZtm_isdst)r r ZttZstampr r r r ; s zLocalTimezone._isdstN)r r r r r r r r r r r r * s r c C s d| j }|r| t|7 } | S )N )r$ r )r Z days_to_gor r r first_sunday_on_or_afterG s r&