X-Git-Url: https://git.immae.eu/?p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git;a=blobdiff_plain;f=store.py;fp=store.py;h=425f08d7ce85f322addb44219ed7ab0341926132;hp=f987bb9c036b9d6b3bbf63878a43123168514323;hb=34865e65933da0db778e171fc787eca114ec562d;hpb=a4bb44d8bc27af7c57f439ffd9edca51c2f0afb4 diff --git a/store.py b/store.py index f987bb9..425f08d 100644 --- a/store.py +++ b/store.py @@ -304,7 +304,7 @@ class BalanceStore: compute_value, type) return amounts - def fetch_balances(self, tag=None, add_portfolio=False, + def fetch_balances(self, tag=None, add_portfolio=False, liquidity="medium", checkpoint=None, log_tickers=False, add_usdt=False, ticker_currency="BTC", ticker_compute_value="average", ticker_type="total"): all_balances = self.market.ccxt.fetch_all_balances() @@ -313,7 +313,7 @@ class BalanceStore: currency in self.all: self.all[currency] = portfolio.Balance(currency, balance) if add_portfolio: - for currency in Portfolio.repartition(from_cache=True): + for currency in Portfolio.repartition(from_cache=True, liquidity=liquidity): self.all.setdefault(currency, portfolio.Balance(currency, {})) if add_usdt: self.all.setdefault("USDT", portfolio.Balance("USDT", {})) @@ -517,7 +517,7 @@ class Portfolio: elif delta < datetime.timedelta(days=1): return 60*60 else: - raise "Too long waiting" + raise Exception("Too long waiting") @classmethod def start_worker(cls): @@ -555,7 +555,10 @@ class Portfolio: cls.report.print_log("[Worker] Fetching cryptoportfolio") cls.get_cryptoportfolio(refetch=True) cls.callback.set() - time.sleep(cls.next_wait_time()) + try: + time.sleep(cls.next_wait_time()) + except Exception: + cls.stop_worker() @classmethod def stop_worker(cls): @@ -591,6 +594,8 @@ class Portfolio: if cls.data.get() is not None and not refetch: return if cls.worker is not None and not cls.is_worker_thread(): + if not cls.worker_started: + raise Exception("Portfolio worker is down and no usable data is present") cls.notify_and_wait() return try: