Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Pinar Alper
metadata-tools
Commits
0716e5fa
Commit
0716e5fa
authored
May 03, 2021
by
Vilem Ded
Browse files
fix: validate date
parent
460bd82d
Changes
1
Show whitespace changes
Inline
Side-by-side
metadata_tools/importxls/export_utils.py
View file @
0716e5fa
...
...
@@ -3,6 +3,8 @@ import json
import
logging
import
urllib
import
re
from
datetime
import
datetime
from
json
import
dumps
from
socket
import
timeout
...
...
@@ -68,14 +70,26 @@ def process_possible_date(possible_date):
if
isinstance
(
possible_date
,
dt
.
date
):
return
possible_date
.
strftime
(
"%Y-%m-%d"
)
elif
isinstance
(
possible_date
,
int
):
return
""
logging
.
warning
(
"Date '{possible_date}' is of type Int. Casting to 'YYYY-MM-DD'"
)
d
=
datetime
.
fromordinal
(
datetime
(
1900
,
1
,
1
).
toordinal
()
+
possible_date
-
2
)
return
d
.
strftime
(
"%Y-%m-%d"
)
else
:
try
:
d
=
datetime
.
strptime
(
possible_date
.
replace
(
'/'
,
'.'
),
'%d.%m.%Y'
)
return
d
.
strftime
(
"%Y-%m-%d"
)
d
=
process_possible_date_str
(
possible_date
)
return
d
except
ValueError
as
e
:
return
""
logging
.
error
(
f
"Date '
{
possible_date
}
' is not a valid date of standard format ('YYYY-MM-DD' or 'DD/MM/YYYY')"
)
return
None
def
process_possible_date_str
(
possible_date
):
if
possible_date
==
''
:
return
None
elif
re
.
compile
(
r
'^([0-9]{4})-(1[0-2]|0[1-9])-(3[01]|0[1-9]|[12][0-9])$'
).
match
(
possible_date
):
d
=
datetime
.
strptime
(
possible_date
.
replace
(
'/'
,
'.'
),
'%d.%m.%Y'
)
return
possible_date
else
:
d
=
datetime
.
strptime
(
possible_date
.
replace
(
'/'
,
'.'
),
'%d.%m.%Y'
)
return
d
.
strftime
(
"%Y-%m-%d"
)
def
get_names_from_string
(
full_name
):
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment