Repository URL to install this package:
|
Version:
3.4.52 ▾
|
ó
²EYc @ s d Z d d l m Z m Z m Z d d l m Z d d l Z d d l Z d d d g Z e j d k rq e
Z n e Z e j
d
e j Z d e f d YZ e d Z d e f d
YZ e Z d e f d YZ e d e d Z e d Z e d Z d S( s¿ ISO 8601 date time string parsing
Basic usage:
>>> import iso8601
>>> iso8601.parse_date("2007-01-25T12:00:00Z")
datetime.datetime(2007, 1, 25, 12, 0, tzinfo=<iso8601.iso8601.Utc ...>)
>>>
iÿÿÿÿ( t datetimet timedeltat tzinfo( t DecimalNt
parse_datet
ParseErrort UTCi i sB
(?P<year>[0-9]{4})
(
(
(-(?P<monthdash>[0-9]{1,2}))
|
(?P<month>[0-9]{2})
(?!$) # Don't allow YYYYMM
)
(
(
(-(?P<daydash>[0-9]{1,2}))
|
(?P<day>[0-9]{2})
)
(
(
(?P<separator>[ T])
(?P<hour>[0-9]{2})
(:{0,1}(?P<minute>[0-9]{2})){0,1}
(
:{0,1}(?P<second>[0-9]{1,2})
([.,](?P<second_fraction>[0-9]+)){0,1}
){0,1}
(?P<timezone>
Z
|
(
(?P<tz_sign>[-+])
(?P<tz_hour>[0-9]{2})
:{0,1}
(?P<tz_minute>[0-9]{2}){0,1}
)
){0,1}
){0,1}
)
){0,1} # YYYY-MM
){0,1} # YYYY only
$
c B s e Z d Z RS( s4 Raised when there is a problem parsing a date string( t __name__t
__module__t __doc__( ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR I s t Utcc B s2 e Z d Z d Z d Z d Z d Z RS( s UTC Timezone
c C s t S( N( t ZERO( t selft dt( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt utcoffsetR s c C s d S( NR ( ( R R
( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt tznameU s c C s t S( N( R ( R R
( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt dstX s c C s d S( Ns
<iso8601.Utc>( ( R ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt __repr__[ s ( R R R R R R R ( ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR
N s
t FixedOffsetc B sM e Z d Z d Z d Z d Z d Z d Z d Z d Z RS( s0 Fixed offset in hours and minutes from UTC
c C s7 | | _ | | _ t d | d | | _ | | _ d S( Nt hourst minutes( t _FixedOffset__offset_hourst _FixedOffset__offset_minutesR t _FixedOffset__offsett _FixedOffset__name( R t offset_hourst offset_minutest name( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt __init__d s c C sN t | t r1 | j | j k o0 | j | j k St | t rJ | | k St S( N( t
isinstanceR R R R t False( R t other( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt __eq__j s
c C s | j | j | j f S( N( R R R ( R ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt __getinitargs__u s c C s | j S( N( R ( R R
( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR x s c C s | j S( N( R ( R R
( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR { s c C s t S( N( R ( R R
( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR ~ s c C s d | j | j f S( Ns <FixedOffset %r %r>( R R ( R ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR s (
R R R R R R! R R R R ( ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR ` s c C sg | j | p | } | d k r+ | r+ d S| d k rY | rc t d | | f qc n
t | Sd S( sÉ Pull a value from the dict and convert to int
:param default_to_zero: If the value is None or empty, treat it as zero
:param default: If the value is missing in the dict use this default
t i s Unable to read %s from %sN( R" N( t gett NoneR t int( t dt keyt default_to_zerot defaultt requiredt value( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt to_int s c C s | d d k r t S| d d k r( | S| d } t | d } t | d d t } d | | | f } | d k r | } | } n t | | | S(
s9 Parses ISO 8601 time zone specs into tzinfo offsets
t timezonet Zt tz_signt tz_hourt tz_minuteR( s %s%02d:%02dt -N( R R$ R, t TrueR ( t matchest default_timezonet signR R t description( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt parse_timezone s
c C sy t | t s" t d | n t j | } | sJ t d | n | j } t | d | } t t d | d p~ d t d | d <y½ t d t
| d d t
| d d
t
| d d t d
d
d t
| d d
t
| d d t d
d
d t
| d d t d t
| d d t d t
| d d t d | d d | SWn t
k
rt} t | n Xd S( så Parses ISO 8601 dates into datetime objects
The timezone is parsed from the date string. However it is quite common to
have dates without a timezone (not strictly correct). In this case the
default timezone specified in default_timezone is used. This is UTC by
default.
:param datestring: The date to parse as a string
:param default_timezone: A datetime tzinfo instance to use when no timezone
is specified in the datestring. If this is set to
None then a naive datetime object is returned.
:returns: A datetime.datetime instance
:raises: ParseError when there is a problem parsing the date or
constructing the datetime instance.
s Expecting a string %rs Unable to parse date string %rR5 s 0.%st second_fractioni s 1000000.0t yeart monthR) t monthdashR* i t dayt daydasht hourR( t minutet secondt microsecondR N( R t _basestringR t
ISO8601_REGEXt matcht groupdictR8 R% R R R, R R3 t Exception( t
datestringR5 t mt groupst tzt e( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyR © s( .**
( i i i ( R R R R t decimalR t syst ret __all__t version_infot strRC t
basestringt compilet VERBOSERD RG R R R
R R R R$ R3 R, R8 R ( ( ( sD /home/tvault/.virtenv/lib/python2.7/site-packages/iso8601/iso8601.pyt <module> s&