Skip to content

Commit 6728b6e

Browse files
authored
Add support for more timestamp formats (#43)
1 parent d44a163 commit 6728b6e

File tree

3 files changed

+7
-13
lines changed

3 files changed

+7
-13
lines changed

onvif/client.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
import asyncio
55
import datetime as dt
6-
from functools import lru_cache
76
import logging
87
import os.path
98
from typing import Any, Callable

onvif/types.py

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33

44
import ciso8601
5-
import isodate
65
from zeep.xsd.types.builtins import DateTime, treat_whitespace
76

87

@@ -13,17 +12,14 @@ class FastDateTime(DateTime):
1312
@treat_whitespace("collapse")
1413
def pythonvalue(self, value):
1514
"""Convert the xml value into a python value."""
15+
if len(value) > 10 and value[10] == "-": # 2010-01-01-00:00:00...
16+
value[10] = "T"
17+
if len(value) > 10 and value[11] == "-": # 2023-05-15T-07:10:32Z...
18+
value = value[:11] + value[12:]
19+
1620
try:
1721
return ciso8601.parse_datetime(value)
1822
except ValueError:
1923
pass
20-
# Determine based on the length of the value if it only contains a date
21-
# lazy hack ;-)
2224

23-
if len(value) == 10:
24-
value += "T00:00:00"
25-
elif (len(value) == 19 or len(value) == 26) and value[10] == " ":
26-
value = "T".join(value.split(" "))
27-
elif len(value) > 10 and value[10] == "-": # 2010-01-01-00:00:00...
28-
value[10] = "T"
29-
return isodate.parse_datetime(value)
25+
return super().pythonvalue(value)

setup.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
requires = [
1111
"httpx>=0.19.0,<1.0.0",
1212
"zeep[async]>=4.2.1,<5.0.0",
13-
"ciso8601>=2.1.3",
14-
"isodate>=0.6.0",
13+
"ciso8601>=2.1.3"
1514
]
1615

1716
CLASSIFIERS = [

0 commit comments

Comments
 (0)