Coverage for src / portfolio.py: 0%

40 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-03-01 10:28 +0000

1import logging 

2from datetime import datetime 

3 

4import pandas as pd 

5from hiveengine.rpc import RPCErrorDoRetry 

6 

7from src.api import spl, peakmonsters 

8from src.configuration import store 

9from src.utils import store_util, land_util, token_util, collection_util, progress_util 

10 

11 

12def update_portfolio(account, portfolio_df, list_prices_df, market_prices_df): 

13 do_update = False 

14 if not portfolio_df.empty: 

15 date = datetime.today().strftime('%Y-%m-%d') 

16 if portfolio_df.loc[(portfolio_df.account_name == account) & (portfolio_df.date == date)].empty: 

17 do_update = True 

18 else: 

19 logging.warning("Already pulled portfolio data for this day, no need to run this too often") 

20 else: 

21 do_update = True 

22 

23 if do_update: 

24 df1 = collection_util.get_card_edition_value(account, list_prices_df, market_prices_df) 

25 df2 = token_util.get_token_value(account) 

26 total_df = df1.merge(df2) 

27 df3 = land_util.get_deeds_value(account) 

28 total_df = total_df.merge(df3) 

29 df4 = land_util.get_staked_dec_value(account) 

30 total_df = total_df.merge(df4) 

31 df5 = land_util.get_resources_value(account) 

32 total_df = total_df.merge(df5) 

33 portfolio_df = pd.concat([portfolio_df, total_df], ignore_index=True) 

34 return portfolio_df 

35 

36 

37def update_portfolios(): 

38 progress_util.update_daily_msg("Start update portfolios") 

39 list_prices_df = spl.get_all_cards_for_sale_df() 

40 market_prices_df = peakmonsters.get_market_prices_df() 

41 

42 for account in store_util.get_account_names(): 

43 progress_util.update_daily_msg("...update portfolio for: " + str(account)) 

44 try: 

45 store.portfolio = update_portfolio(account, store.portfolio.copy(), list_prices_df, market_prices_df) 

46 except RPCErrorDoRetry: 

47 progress_util.update_daily_msg("ERROR: Hive market down stop update portfolio", error=True) 

48 raise RPCErrorDoRetry("Hive market down stop update portfolio") 

49 

50 store.portfolio.fillna(0, inplace=True) 

51 store_util.save_stores()