scrapinghub / scrapinghub/dateparser
Parsing "3pm" fails if RELATIVE_BASE is timezone-aware
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.9k
- Forks
- 520
- Avg merge
- 22h 56m
- Merged PRs (30d)
- 6
Description
In version 1.2.0 this works fine:
import datetime
import pytz
dateparser.parse(
"3pm",
settings={
"TIMEZONE": "America/Los_Angeles",
"TO_TIMEZONE": "America/Los_Angeles",
"RETURN_AS_TIMEZONE_AWARE": True,
"RELATIVE_BASE": datetime.datetime.now(),
"PREFER_DATES_FROM": "future"})
but this returns None:
dateparser.parse("3pm",
settings={
"TIMEZONE": "America/Los_Angeles",
"TO_TIMEZONE": "America/Los_Angeles",
"RETURN_AS_TIMEZONE_AWARE": True,
"RELATIVE_BASE": datetime.datetime.now(tz=pytz.timezone("America/Los_Angeles")),
"PREFER_DATES_FROM": "future"})
In an earlier version of dateparser, the returned date was sometimes not as expected because it would use now in UTC by default for RELATIVE_BASE, so I started passing the timezone-aware RELATIVE_BASE setting. With the upgrade to 1.2.0, the same code stopped working.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running the two dateparser.parse examples from the issue, then trace how the RELATIVE_BASE setting is handled when it is timezone-aware. Done means the "3pm" input no longer returns None with the timezone-aware base and the existing behavior remains intact.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100