diff --git a/src/_zkapauthorizer/model.py b/src/_zkapauthorizer/model.py index 12b0393b1eddc8869b55e759f4ebbfb99e03773a..7c62b8ff8e014b68c598822fb4a3b524fa83d38e 100644 --- a/src/_zkapauthorizer/model.py +++ b/src/_zkapauthorizer/model.py @@ -40,7 +40,7 @@ from sqlite3 import ( import attr from aniso8601 import ( - parse_datetime, + parse_datetime as _parse_datetime, ) from twisted.logger import ( Logger, @@ -72,6 +72,18 @@ from .schema import ( ) +def parse_datetime(s, **kw): + """ + Like ``aniso8601.parse_datetime`` but accept unicode as well. + """ + if isinstance(s, unicode): + s = s.encode("utf-8") + assert isinstance(s, bytes) + if "delimiter" in kw and isinstance(kw["delimiter"], unicode): + kw["delimiter"] = kw["delimiter"].encode("utf-8") + return _parse_datetime(s, **kw) + + class ILeaseMaintenanceObserver(Interface): """ An object which is interested in receiving events related to the progress