Skip to content

Commit abccf37

Browse files
authored
Replace dateparser with dateutil (#62)
* replace dateparser with dateutil * fix tests
1 parent 65462cf commit abccf37

File tree

5 files changed

+11
-7
lines changed

5 files changed

+11
-7
lines changed

georss_client/xml_parser/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from datetime import datetime
66
import logging
77

8-
import dateparser
8+
import dateutil
99
import xmltodict
1010

1111
from georss_client.consts import (
@@ -73,7 +73,7 @@ def postprocessor(
7373
"""Conduct type conversion for selected keys."""
7474
try:
7575
if key in KEYS_DATE and value:
76-
return key, dateparser.parse(value)
76+
return key, dateutil.parser.parse(value)
7777
if key in KEYS_FLOAT and value:
7878
return key, float(value)
7979
if key in KEYS_FLOAT_LIST and value:

georss_client/xml_parser/feed_or_feed_item.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,10 @@ def category(self) -> list | None:
4343
@property
4444
def published_date(self) -> datetime.datetime | None:
4545
"""Return the published date of this feed or feed item."""
46-
return self._attribute([XML_TAG_PUB_DATE, XML_TAG_PUBLISHED, XML_TAG_DC_DATE])
46+
parsed_date = self._attribute(
47+
[XML_TAG_PUB_DATE, XML_TAG_PUBLISHED, XML_TAG_DC_DATE]
48+
)
49+
return parsed_date if isinstance(parsed_date, datetime.datetime) else None
4750

4851
@property
4952
def pub_date(self) -> datetime.datetime | None:
@@ -53,7 +56,8 @@ def pub_date(self) -> datetime.datetime | None:
5356
@property
5457
def updated_date(self) -> datetime.datetime | None:
5558
"""Return the updated date of this feed or feed item."""
56-
return self._attribute([XML_TAG_LAST_BUILD_DATE, XML_TAG_UPDATED])
59+
parsed_date = self._attribute([XML_TAG_LAST_BUILD_DATE, XML_TAG_UPDATED])
60+
return parsed_date if isinstance(parsed_date, datetime.datetime) else None
5761

5862
@property
5963
def last_build_date(self) -> datetime.datetime | None:

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ dependencies = [
2929
"haversine>=2.8.1",
3030
"xmltodict>=0.13.0",
3131
"requests>=2.31.0",
32-
"dateparser>=1.2.0",
32+
"python-dateutil>=2.9.0",
3333
]
3434

3535
[project.optional-dependencies]

tests/fixtures/xml_parser_complex_1.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
<item>
9898
<title>Title 6</title>
9999
<content type="text">Description 6</content>
100-
<published>Sun, 7 Oct 2018 19:52:00 PDT</published>
100+
<published>Sun, 7 Oct 2018 19:52:00 -0200</published>
101101
<georss:where>
102102
<gml:Polygon>
103103
<gml:exterior>

tests/test_xml_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -181,7 +181,7 @@ def test_complex_1():
181181
7,
182182
19,
183183
52,
184-
tzinfo=datetime.timezone(datetime.timedelta(hours=-7), "PDT"),
184+
tzinfo=datetime.timezone(datetime.timedelta(hours=-2)),
185185
)
186186
assert isinstance(feed_entry.geometry, Polygon)
187187
assert feed_entry.geometry.centroid.latitude == -30.32

0 commit comments

Comments
 (0)