Skip to content

Commit b4255e5

Browse files
committed
Use aniso8601 instead of iso8601
1 parent 3ee9413 commit b4255e5

File tree

2 files changed

+5
-13
lines changed

2 files changed

+5
-13
lines changed

graphene/types/datetime.py

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,10 @@
33
import datetime
44

55
from graphql.language import ast
6+
from aniso8601 import parse_datetime, parse_date, parse_time
67

78
from .scalars import Scalar
89

9-
try:
10-
import iso8601
11-
except ImportError:
12-
raise ImportError(
13-
"iso8601 package is required for DateTime Scalar.\n"
14-
"You can install it using: pip install iso8601."
15-
)
16-
1710

1811
class Date(Scalar):
1912
'''
@@ -38,7 +31,7 @@ def parse_literal(cls, node):
3831

3932
@staticmethod
4033
def parse_value(value):
41-
return iso8601.parse_date(value).date()
34+
return parse_date(value)
4235

4336

4437
class DateTime(Scalar):
@@ -62,7 +55,7 @@ def parse_literal(cls, node):
6255

6356
@staticmethod
6457
def parse_value(value):
65-
return iso8601.parse_date(value)
58+
return parse_datetime(value)
6659

6760

6861
class Time(Scalar):
@@ -71,7 +64,6 @@ class Time(Scalar):
7164
specified by
7265
[iso8601](https://en.wikipedia.org/wiki/ISO_8601).
7366
'''
74-
epoch_date = '1970-01-01'
7567

7668
@staticmethod
7769
def serialize(time):
@@ -87,5 +79,4 @@ def parse_literal(cls, node):
8779

8880
@classmethod
8981
def parse_value(cls, value):
90-
dt = iso8601.parse_date('{}T{}'.format(cls.epoch_date, value))
91-
return datetime.time(dt.hour, dt.minute, dt.second, dt.microsecond, dt.tzinfo)
82+
return parse_time(value)

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ def run_tests(self):
9090
'graphql-core>=2.0,<3',
9191
'graphql-relay>=0.4.5,<1',
9292
'promise>=2.1,<3',
93+
'aniso8601>=3,<4',
9394
],
9495
tests_require=tests_require,
9596
extras_require={

0 commit comments

Comments
 (0)