Skip to content

Commit ae1569f

Browse files
authored
Merge pull request #11 from magicalapi/develop
fix some field types in profile data
2 parents b295caf + 6d761ea commit ae1569f

File tree

1 file changed

+27
-6
lines changed

1 file changed

+27
-6
lines changed

magicalapi/types/profile_data.py

Lines changed: 27 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,17 @@ class StartEndDate(BaseModelValidated):
1515
def date_validator(cls, value: str) -> date | None:
1616
if not value:
1717
return None
18-
return datetime.strptime(value, "%b %Y").date()
18+
formats = [
19+
"%b %Y",
20+
"%Y-%m",
21+
]
22+
while True:
23+
date_format = formats.pop(0)
24+
try:
25+
return datetime.strptime(str(value), date_format).date()
26+
except Exception as e:
27+
if not formats:
28+
raise e
1929

2030

2131
class StartEndDateEducation(StartEndDate):
@@ -25,7 +35,18 @@ class StartEndDateEducation(StartEndDate):
2535
def date_validator(cls, value: str) -> date | None:
2636
if not value:
2737
return None
28-
return datetime.strptime(value, "%Y").date()
38+
formats = [
39+
"%Y",
40+
"%b %Y",
41+
"%Y-%m",
42+
]
43+
while True:
44+
date_format = formats.pop(0)
45+
try:
46+
return datetime.strptime(str(value), date_format).date()
47+
except Exception as e:
48+
if not formats:
49+
raise e
2950

3051

3152
class Duration(BaseModel):
@@ -51,15 +72,15 @@ class Education(BaseModelValidated):
5172
image_url: HttpUrl | None
5273
university_name: str
5374
university_link: HttpUrl | None
54-
degree: str
55-
major: str
75+
degree: str | None
76+
major: str | None
5677
date: StartEndDateEducation | None
5778

5879

5980
class Certification(BaseModelValidated):
60-
image_url: HttpUrl | None
81+
image_url: str | None
6182
title: str
62-
course_link: HttpUrl | None
83+
course_link: str | None
6384
issuer: str
6485
credential: str | None
6586
issued_date: date | None

0 commit comments

Comments
 (0)