Skip to content

Commit ef10a0e

Browse files
authored
Merge pull request #78 from peichman-umd/year-ua
Handle UA markers to the left of the year segment
2 parents 57150c6 + 68f0b36 commit ef10a0e

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

edtf/parser/parser_classes.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,7 @@ def __init__(
858858

859859
uas = [
860860
year_ua,
861+
year_ua_b,
861862
month_ua,
862863
day_ua,
863864
year_month_ua,
@@ -886,7 +887,10 @@ def __str__(self):
886887
else:
887888
y = f"{self.year_ua_b}{self.year}" if self.year_ua_b else str(self.year)
888889

889-
m = f"{self.month_ua}{self.month}" if self.month_ua else str(self.month)
890+
if self.month:
891+
m = f"{self.month_ua}{self.month}" if self.month_ua else str(self.month)
892+
else:
893+
m = None
890894

891895
if self.day:
892896
d = f"{self.day_ua}{self.day}" if self.day_ua else str(self.day)
@@ -902,7 +906,12 @@ def __str__(self):
902906
else:
903907
result = f"{y}-({m}-{d}){self.month_day_ua}"
904908
else:
905-
result = f"{y}-{m}-{d}" if d else f"{y}-{m}"
909+
if d:
910+
result = f"{y}-{m}-{d}"
911+
elif m:
912+
result = f"{y}-{m}"
913+
else:
914+
result = y
906915

907916
if self.all_ua:
908917
result = f"({result}){self.all_ua}"

edtf/parser/tests.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,18 @@
257257
("2011-~06-~04", (False, True, False)),
258258
("2004-06-~01/2004-06-~20", (False, True, False)),
259259
("156X~", (False, True, False)),
260+
("?1945/1959", (True, False, False)),
261+
("?1945", (True, False, False)),
262+
("?1945-01", (True, False, False)),
263+
("?1945-01-01", (True, False, False)),
264+
("~1945/1959", (False, True, False)),
265+
("~1945", (False, True, False)),
266+
("~1945-01", (False, True, False)),
267+
("~1945-01-01", (False, True, False)),
268+
("%1945/1959", (False, False, True)),
269+
("%1945", (False, False, True)),
270+
("%1945-01", (False, False, True)),
271+
("%1945-01-01", (False, False, True)),
260272
)
261273

262274
BAD_EXAMPLES = (

0 commit comments

Comments
 (0)