Skip to content

Commit

Permalink
optimize date conversion
Browse files Browse the repository at this point in the history
Signed-off-by: flashdagger <flashdagger@googlemail.com>
  • Loading branch information
flashdagger committed Apr 1, 2024
1 parent 3ca4fdf commit 24dba6d
Showing 1 changed file with 14 additions and 7 deletions.
21 changes: 14 additions & 7 deletions zammadoo/utils.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sys
from datetime import datetime
from itertools import chain
from types import MappingProxyType
Expand Down Expand Up @@ -107,16 +107,23 @@ def __get__(self, instance, owner=None) -> _T:
return value


_fromisoformat = datetime.fromisoformat

if sys.version_info < (3, 11):

def convert_date(date_string: str) -> datetime:
return _fromisoformat(date_string.replace("Z", "+00:00"))

else:
convert_date = _fromisoformat


class DateTime(_AttributeBase):
def __get__(self, instance, owner=None) -> datetime:
return datetime.fromisoformat(instance[self.name].replace("Z", "+00:00"))
return convert_date(instance[self.name])


class OptionalDateTime(_AttributeBase):
def __get__(self, instance, owner=None) -> Optional[datetime]:
value = instance[self.name]
return (
None
if value is None
else datetime.fromisoformat(instance[self.name].replace("Z", "+00:00"))
)
return None if value is None else convert_date(instance[self.name])

0 comments on commit 24dba6d

Please sign in to comment.