Wrap datetime parsing in try/except

This commit is contained in:
thePR0M3TH3AN committed 2025-05-31 18:13:28 -04:00
1 parent 1f01790146
commit b4264351be
3 files changed
+36 -6

No files matched your search

+12 -2
View File
@@ -14,6 +14,7 @@ import argparse
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
from typing import Tuple from typing import Tuple
import sys
from scripts.constants import DB_PATH_DEFAULT from scripts.constants import DB_PATH_DEFAULT
@@ -147,8 +148,17 @@ def main(argv: list[str] | None = None) -> plt.Figure:
p.add_argument("--no-show", action="store_true", help="do not display the figure") p.add_argument("--no-show", action="store_true", help="do not display the figure")
args = p.parse_args(argv) args = p.parse_args(argv)
start_dt = datetime.fromisoformat(args.start) try:
end_dt = datetime.fromisoformat(args.end) start_dt = datetime.fromisoformat(args.start)
except ValueError:
print(f"Invalid --start date: {args.start}", file=sys.stderr)
raise SystemExit(1)
try:
end_dt = datetime.fromisoformat(args.end)
except ValueError:
print(f"Invalid --end date: {args.end}", file=sys.stderr)
raise SystemExit(1)
btc, m2 = fetch_series(start_dt, end_dt, args.btc_series, args.m2_series, args.db) btc, m2 = fetch_series(start_dt, end_dt, args.btc_series, args.m2_series, args.db)
validate_series(btc, m2, args.btc_series, args.m2_series) validate_series(btc, m2, args.btc_series, args.m2_series)
+12 -2
View File
@@ -12,6 +12,7 @@ from __future__ import annotations
import argparse import argparse
from datetime import datetime from datetime import datetime
import sys
from pathlib import Path from pathlib import Path
from typing import Iterable from typing import Iterable
@@ -79,8 +80,17 @@ def main(argv: list[str] | None = None) -> plt.Figure:
) )
args = p.parse_args(argv) args = p.parse_args(argv)
start_dt = datetime.fromisoformat(args.start) try:
end_dt = datetime.fromisoformat(args.end) start_dt = datetime.fromisoformat(args.start)
except ValueError:
print(f"Invalid --start date: {args.start}", file=sys.stderr)
raise SystemExit(1)
try:
end_dt = datetime.fromisoformat(args.end)
except ValueError:
print(f"Invalid --end date: {args.end}", file=sys.stderr)
raise SystemExit(1)
data = fetch_series_multi(args.series, start_dt, end_dt, args.db) data = fetch_series_multi(args.series, start_dt, end_dt, args.db)
fig = plot_series(data) fig = plot_series(data)
+12 -2
View File
@@ -14,6 +14,7 @@ from __future__ import annotations
import argparse import argparse
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
import sys
import logging import logging
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@@ -255,8 +256,17 @@ def main(argv: list[str] | None = None) -> plt.Figure:
p.add_argument("--no-show", action="store_true", help="do not display the figure") p.add_argument("--no-show", action="store_true", help="do not display the figure")
args = p.parse_args(argv) args = p.parse_args(argv)
start_dt = datetime.fromisoformat(args.start) try:
end_dt = datetime.fromisoformat(args.end) start_dt = datetime.fromisoformat(args.start)
except ValueError:
print(f"Invalid --start date: {args.start}", file=sys.stderr)
raise SystemExit(1)
try:
end_dt = datetime.fromisoformat(args.end)
except ValueError:
print(f"Invalid --end date: {args.end}", file=sys.stderr)
raise SystemExit(1)
# ─────────────────────────────────────────────────────────────────────── # ───────────────────────────────────────────────────────────────────────
# Fetch both UNRATE and oil; UNRATE may contain NaNs if the last # Fetch both UNRATE and oil; UNRATE may contain NaNs if the last