
    jke                         d Z ddlZddlZddlmZmZ ddlZ ej                  d      Zg dZg dZ	ddZ
d Zd	 Zd
 Zd Zedk(  r4ddlZddlZ ej$                   ej&                         j(                         yy)zKfontTools.misc.timeTools.py -- tools for working with OpenType timestamps.
    N)datetimetimezone)	ip     r   r   r   r   r   r   r   )MonTueWedThuFriSatSun)NJanFebMarAprMayJunJulAugSepOctNovDecc           
          | t        j                         } t        | j                     dt        | j
                     d| j                  ddt        j                  d|       }|S )a  
    Convert a tuple or struct_time representing a time as returned by gmtime()
    or localtime() to a 24-character string of the following form:

    >>> asctime(time.gmtime(0))
    'Thu Jan  1 00:00:00 1970'

    If t is not provided, the current time as returned by localtime() is used.
    Locale information is not used by asctime().

    This is meant to normalise the output of the built-in time.asctime() across
    different platforms and Python versions.
    In Python 3.x, the day of the month is right-justified, whereas on Windows
    Python 2.7 it is padded with zeros.

    See https://github.com/fonttools/fonttools/issues/455
     z>2z%H:%M:%S %Y)time	localtimeDAYNAMEStm_wday
MONTHNAMEStm_montm_mdaystrftime)tss     :/usr/lib/python3/dist-packages/fontTools/misc/timeTools.pyasctimer&      sP    $ 	yNN188			mQ'		A H    c           	      `    t        t        j                  t        d| t        z                     S )Nr   )r&   r   gmtimemax
epoch_diffvalues    r%   timestampToStringr.   ;   s"    4;;s1ej&89:;;r'   c                 r   | d d j                         \  }}t        j                  | dd  d      }|j                  t        j                  |      t        j                        }t        j                  |      }|j                         |k(  sJ d| z   dz          t        |j                               t        z
  S )N   z %d %H:%M:%S %Y)monthtzinfo"z" has inconsistent weekday)splitr   strptimereplacer   indexr   utcr   weekdayint	timestampr+   )r-   wkdaymnthr#   	wkday_idxs        r%   timestampFromStringr?   ?   s    )//#KE4%)%67A			
((.x||	DAu%I99;)#OS5[3O%OO#q{{}
**r'   c                      t         j                  j                  d      } | t        |       t        z
  S t        t        j
                         t        z
        S )NSOURCE_DATE_EPOCH)osenvirongetr:   r+   r   )source_date_epochs    r%   timestampNowrF   H   sC    

':;$$%
22tyy{Z'((r'   c                 &    t        | t        z
        S N)r:   r+   r,   s    r%   timestampSinceEpochrI   P   s    uz!""r'   __main__rH   )__doc__rB   r   r   r   calendartimegmr+   r   r   r&   r.   r?   rF   rI   __name__sysdoctestexittestmodfailed r'   r%   <module>rU      s    
  '  X__;<
<
":<+)# zCHH_W__%%&	 r'   