Skip to content

Commit b99bd14

Browse files
authored
Raise a ParserError for empty string in parse() (#965)
Previously it raised a confusing `ValueError: year 0 is out of range` error.
1 parent 0a88aec commit b99bd14

2 files changed

Lines changed: 6 additions & 1 deletion

File tree

src/pendulum/parsing/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def _parse_common(text: str, **options: Any) -> datetime | date | time:
145145
month = 1
146146
day = 1
147147

148-
if not m:
148+
if not m or not (m.group("date") or m.group("time")):
149149
raise ParserError("Invalid datetime string")
150150

151151
if m.group("date"):

tests/parsing/test_parsing.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -684,6 +684,11 @@ def test_invalid():
684684
parse(text)
685685

686686

687+
def test_parse_empty_string():
688+
with pytest.raises(ParserError):
689+
parse("")
690+
691+
687692
def test_exif_edge_case():
688693
text = "2016:12:26 15:45:28"
689694

0 commit comments

Comments
 (0)