Skip to content

Commit b40bd1c

Browse files
Handle out-of-range timestamps (#131)
1 parent ecbd5b5 commit b40bd1c

2 files changed

Lines changed: 18 additions & 4 deletions

File tree

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ license = "Apache-2.0"
99
name = "elimity-insights-client"
1010
readme = "README.md"
1111
repository = "https://github.com/elimity-com/insights-client-python"
12-
version = "10.0.0b0"
12+
version = "10.0.0b1"
1313

1414
[tool.poetry.dependencies]
1515
python = "^3.7"

src/elimity_insights_client/api/_decode_query_results_page.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from datetime import date
1+
from datetime import date, datetime
22
from json import loads
33
from typing import List
44

@@ -105,11 +105,11 @@ def _decode_value(dict: ValueDict) -> Value:
105105
return BooleanValue(value == "true")
106106

107107
if type == "date":
108-
date_value = date.fromisoformat(value)
108+
date_value = _parse_date(value)
109109
return DateValue(date_value)
110110

111111
if type == "dateTime":
112-
date_time_value = isoparse(value)
112+
date_time_value = _parse_datetime(value)
113113
return DateTimeValue(date_time_value)
114114

115115
if type == "number":
@@ -122,3 +122,17 @@ def _decode_value(dict: ValueDict) -> Value:
122122
parser = isoparser()
123123
time_value = parser.parse_isotime(value)
124124
return TimeValue(time_value)
125+
126+
127+
def _parse_date(value: str) -> date:
128+
try:
129+
return date.fromisoformat(value)
130+
except ValueError:
131+
return date.min
132+
133+
134+
def _parse_datetime(value: str) -> datetime:
135+
try:
136+
return isoparse(value)
137+
except ValueError:
138+
return datetime.min

0 commit comments

Comments
 (0)