From 3b8b31ccf5ac25630bb9aae75cab77567370ceab Mon Sep 17 00:00:00 2001 From: Norbert Date: Mon, 3 Feb 2025 14:50:38 +0200 Subject: [PATCH 1/2] refetch start and end date timestamps when other data is updated --- pdr_backend/pdr_dashboard/util/db.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pdr_backend/pdr_dashboard/util/db.py b/pdr_backend/pdr_dashboard/util/db.py index 0e049a901..94c3c40fd 100644 --- a/pdr_backend/pdr_dashboard/util/db.py +++ b/pdr_backend/pdr_dashboard/util/db.py @@ -361,6 +361,10 @@ def payouts_from_bronze_predictions( Returns: list: List of predictions data. """ + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) # Start constructing the SQL query query = f"""SELECT * FROM @@ -404,6 +408,11 @@ def payouts_from_bronze_predictions( @enforce_types def feeds_metrics(self) -> dict[str, Union[int, float]]: + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) + query_feeds = f""" SELECT COUNT(DISTINCT(contract, pair, timeframe, source)) FROM {tbl_parquet_path(self.lake_dir, Prediction)} @@ -453,6 +462,11 @@ def feeds_metrics(self) -> dict[str, Union[int, float]]: @enforce_types def predictoors_metrics(self) -> dict[str, Union[int, float]]: + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) + query_predictoors_metrics = f""" SELECT COUNT(DISTINCT(user)) AS predictoors, From 373008039ea73861964da0814f0e31846e8eedbd Mon Sep 17 00:00:00 2001 From: Norbert Date: Mon, 3 Feb 2025 15:59:01 +0200 Subject: [PATCH 2/2] moved timestamps refresh to refresh data methods --- pdr_backend/pdr_dashboard/util/db.py | 29 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pdr_backend/pdr_dashboard/util/db.py b/pdr_backend/pdr_dashboard/util/db.py index 94c3c40fd..591ccb873 100644 --- a/pdr_backend/pdr_dashboard/util/db.py +++ b/pdr_backend/pdr_dashboard/util/db.py @@ -361,11 +361,6 @@ def payouts_from_bronze_predictions( Returns: list: List of predictions data. """ - # Refresh the timestamps - self.min_timestamp, self.max_timestamp = ( - self.get_first_and_last_slot_timestamp() - ) - # Start constructing the SQL query query = f"""SELECT * FROM {tbl_parquet_path(self.lake_dir, BronzePrediction)} @@ -408,11 +403,6 @@ def payouts_from_bronze_predictions( @enforce_types def feeds_metrics(self) -> dict[str, Union[int, float]]: - # Refresh the timestamps - self.min_timestamp, self.max_timestamp = ( - self.get_first_and_last_slot_timestamp() - ) - query_feeds = f""" SELECT COUNT(DISTINCT(contract, pair, timeframe, source)) FROM {tbl_parquet_path(self.lake_dir, Prediction)} @@ -462,10 +452,6 @@ def feeds_metrics(self) -> dict[str, Union[int, float]]: @enforce_types def predictoors_metrics(self) -> dict[str, Union[int, float]]: - # Refresh the timestamps - self.min_timestamp, self.max_timestamp = ( - self.get_first_and_last_slot_timestamp() - ) query_predictoors_metrics = f""" SELECT @@ -535,6 +521,11 @@ def get_first_and_last_slot_timestamp(self) -> Tuple[UnixTimeS, UnixTimeS]: @enforce_types def refresh_feeds_data(self) -> None: + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) + self.feeds_metrics_data = self.feeds_metrics() self.feeds_payout_stats = self._init_feed_payouts_stats() self.feeds_subscriptions = self._init_feed_subscription_stats() @@ -546,6 +537,11 @@ def refresh_feeds_data(self) -> None: @enforce_types def refresh_predictoors_data(self) -> None: + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) + self.predictoors_metrics_data = self.predictoors_metrics() self.predictoors_data = self._init_predictoor_payouts_stats() @@ -729,6 +725,11 @@ def homepage_predictoors_cols(self) -> Tuple[Tuple, pl.DataFrame]: return (columns, hidden_columns), data def get_feeds_for_favourite_predictoors(self, feed_data, predictoor_addrs): + # Refresh the timestamps + self.min_timestamp, self.max_timestamp = ( + self.get_first_and_last_slot_timestamp() + ) + feed_ids = self.feed_ids_based_on_predictoors(predictoor_addrs) if not feed_ids: