Port time_format to Python 3.

This commit is contained in:
Itamar Turner-Trauring 2020-07-21 14:08:31 -04:00
parent a4620bf176
commit 116f232e80
2 changed files with 12 additions and 0 deletions

View File

@ -22,6 +22,7 @@ PORTED_MODULES = [
"allmydata.util.namespace",
"allmydata.util.pollmixin",
"allmydata.util._python3",
"allmydata.util.time_format",
"allmydata.test.common_py3",
]
@ -29,4 +30,5 @@ PORTED_TEST_MODULES = [
"allmydata.test.test_deferredutil",
"allmydata.test.test_humanreadable",
"allmydata.test.test_python3",
"allmydata.test.test_time_format",
]

View File

@ -4,6 +4,15 @@ Time formatting utilities.
ISO-8601:
http://www.cl.cam.ac.uk/~mgk25/iso-time.html
"""
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from future.utils import PY2
if PY2:
from builtins import filter, map, zip, ascii, chr, hex, input, next, oct, open, pow, round, super, bytes, dict, int, list, object, range, str, max, min # noqa: F401
from future.utils import native_str
import calendar, datetime, re, time
@ -18,6 +27,7 @@ def iso_utc_date(now=None, t=time.time):
def iso_utc(now=None, sep='_', t=time.time):
if now is None:
now = t()
sep = native_str(sep) # Python 2 doesn't allow unicode input to isoformat
return datetime.datetime.utcfromtimestamp(now).isoformat(sep)
def iso_utc_time_to_seconds(isotime, _conversion_re=re.compile(r"(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})[T_ ](?P<hour>\d{2}):(?P<minute>\d{2}):(?P<second>\d{2})(?P<subsecond>\.\d+)?")):