diff options
author | Lance Stout <lancestout@gmail.com> | 2012-08-12 22:35:42 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-08-12 22:35:42 -0700 |
commit | 779c258e2797d3dbcaf9eb5f4c7636b4d76ff0e7 (patch) | |
tree | dcb7fb4688ee9107f19fa5296fc5bfb5e56d0239 /sleekxmpp/thirdparty/mini_dateutil.py | |
parent | f7a710e55bf433a378dee4bd05f6ceb59f2e9e2d (diff) | |
download | slixmpp-779c258e2797d3dbcaf9eb5f4c7636b4d76ff0e7.tar.gz slixmpp-779c258e2797d3dbcaf9eb5f4c7636b4d76ff0e7.tar.bz2 slixmpp-779c258e2797d3dbcaf9eb5f4c7636b4d76ff0e7.tar.xz slixmpp-779c258e2797d3dbcaf9eb5f4c7636b4d76ff0e7.zip |
Fix ISO date parsing fallback.
Closes issue #194
Diffstat (limited to 'sleekxmpp/thirdparty/mini_dateutil.py')
-rw-r--r-- | sleekxmpp/thirdparty/mini_dateutil.py | 53 |
1 files changed, 29 insertions, 24 deletions
diff --git a/sleekxmpp/thirdparty/mini_dateutil.py b/sleekxmpp/thirdparty/mini_dateutil.py index d0d3f2ea..93f26312 100644 --- a/sleekxmpp/thirdparty/mini_dateutil.py +++ b/sleekxmpp/thirdparty/mini_dateutil.py @@ -166,32 +166,34 @@ except: (?P<month>[0-9]{2})?(?P=ymdsep)? (?P<day> [0-9]{2})? - (?: # time part... optional... at least hour must be specified - (?:T|\s+)? - (?P<hour>[0-9]{2}) - (?: - # minutes, separated with :, or none, from hours - (?P<hmssep>[:]?) - (?P<minute>[0-9]{2}) + (?P<time> + (?: # time part... optional... at least hour must be specified + (?:T|\s+)? + (?P<hour>[0-9]{2}) (?: - # same for seconds, separated with :, or none, from hours - (?P=hmssep) - (?P<second>[0-9]{2}) + # minutes, separated with :, or none, from hours + (?P<hmssep>[:]?) + (?P<minute>[0-9]{2}) + (?: + # same for seconds, separated with :, or none, from hours + (?P=hmssep) + (?P<second>[0-9]{2}) + )? )? - )? - - # fractions - (?: [,.] (?P<frac>[0-9]{1,10}))? - - # timezone, Z, +-hh or +-hh:?mm. MUST BE, but complain if not there. - ( - (?P<tzempty>Z) - | - (?P<tzh>[+-][0-9]{2}) - (?: :? # optional separator - (?P<tzm>[0-9]{2}) + + # fractions + (?: [,.] (?P<frac>[0-9]{1,10}))? + + # timezone, Z, +-hh or +-hh:?mm. MUST BE, but complain if not there. + ( + (?P<tzempty>Z) + | + (?P<tzh>[+-][0-9]{2}) + (?: :? # optional separator + (?P<tzm>[0-9]{2}) + )? )? - )? + ) )? $ """, re.X) # """ @@ -211,13 +213,16 @@ except: for key in vals: if vals[key] is None: vals[key] = def_vals.get(key, 0) - elif key not in ['ymdsep', 'hmssep', 'tzempty']: + elif key not in ['time', 'ymdsep', 'hmssep', 'tzempty']: vals[key] = int(vals[key]) year = vals['year'] month = vals['month'] day = vals['day'] + if m.group('time') is None: + return datetime.date(year, month, day) + h, min, s, us = None, None, None, 0 frac = 0 if m.group('tzempty') == None and m.group('tzh') == None: |