projects
/
pyutils.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f3173f6
)
Make argparse utils' valid_date work with the default format of UNIX date.
author
Scott Gasch
<
[email protected]
>
Sun, 11 Dec 2022 20:02:25 +0000
(12:02 -0800)
committer
Scott Gasch
<
[email protected]
>
Sun, 11 Dec 2022 20:02:25 +0000
(12:02 -0800)
src/pyutils/argparse_utils.py
patch
|
blob
|
history
diff --git
a/src/pyutils/argparse_utils.py
b/src/pyutils/argparse_utils.py
index 765f30a6a636030c6e4c2e642d086189bff81434..0ce429f1e4957b6c8d469ca555eb3f6f07147e7b 100644
(file)
--- a/
src/pyutils/argparse_utils.py
+++ b/
src/pyutils/argparse_utils.py
@@
-370,6
+370,9
@@
def valid_datetime(txt: str) -> datetime.datetime:
>>> valid_datetime('6/5/2021 3:01:02')
datetime.datetime(2021, 6, 5, 3, 1, 2)
>>> valid_datetime('6/5/2021 3:01:02')
datetime.datetime(2021, 6, 5, 3, 1, 2)
+ >>> valid_datetime('Sun Dec 11 11:50:00 PST 2022')
+ datetime.datetime(2022, 12, 11, 11, 50)
+
.. note::
Because this code uses an English date-expression parsing grammar
internally, much more complex datetimes can be expressed in free form.
.. note::
Because this code uses an English date-expression parsing grammar
internally, much more complex datetimes can be expressed in free form.
@@
-385,6
+388,13
@@
def valid_datetime(txt: str) -> datetime.datetime:
dt = to_datetime(txt)
if dt is not None:
return dt
dt = to_datetime(txt)
if dt is not None:
return dt
+
+ # Don't choke on the default format of unix date.
+ try:
+ return datetime.datetime.strptime(txt, "%a %b %d %H:%M:%S %Z %Y")
+ except Exception:
+ pass
+
msg = f"Cannot parse argument as datetime: {txt}"
logger.error(msg)
raise argparse.ArgumentTypeError(msg)
msg = f"Cannot parse argument as datetime: {txt}"
logger.error(msg)
raise argparse.ArgumentTypeError(msg)