From 3f57bdf4156077b9abf440eb1b8fbfe7a3ebed27 Mon Sep 17 00:00:00 2001 From: thePR0M3TH3AN <53631862+PR0M3TH3AN@users.noreply.github.com> Date: Sat, 31 May 2025 12:56:13 -0400 Subject: [PATCH] Add validation for bitcoin M2 chart --- scripts/bitcoin_m2_chart.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/scripts/bitcoin_m2_chart.py b/scripts/bitcoin_m2_chart.py index a09c24d..59e6ee3 100644 --- a/scripts/bitcoin_m2_chart.py +++ b/scripts/bitcoin_m2_chart.py @@ -23,7 +23,12 @@ import pandas as pd from dateutil.relativedelta import relativedelta # IMPORTANT: use the package‐qualified import -from scripts.common import fetch_series_db, save_figure +from scripts.common import ( + fetch_series_db, + save_figure, + validate_dataframe, + validate_overlap, +) def fetch_series( @@ -40,6 +45,15 @@ def fetch_series( return btc, m2 +def validate_series( + btc: pd.DataFrame, m2: pd.DataFrame, btc_name: str, m2_name: str +) -> None: + """Run basic sanity checks on the two series.""" + validate_dataframe(btc, btc_name) + validate_dataframe(m2, m2_name) + validate_overlap(btc, m2) + + def plot_bitcoin_m2( btc: pd.DataFrame, m2: pd.DataFrame, @@ -129,6 +143,7 @@ def main(argv: list[str] | None = None) -> plt.Figure: end_dt = datetime.fromisoformat(args.end) 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) fig = plot_bitcoin_m2(btc, m2, args.offset, args.extend_years) save_figure(fig, args.output, __file__)