Coverage for src/scrilla/gui/formats.py: 0%

60 statements  

« prev     ^ index     » next       coverage.py v6.4.2, created at 2022-07-18 18:14 +0000

1import json 

2 

3from typing import Tuple 

4 

5from scrilla import settings 

6from scrilla.util import helper 

7from scrilla.static import keys 

8 

9MARGINS = 5 

10 

11 

12def format_stylesheet(sheet): 

13 theme = get_mode_theme() 

14 for element in theme: 

15 sheet = sheet.replace(element, theme[element]) 

16 

17 with open(settings.GUI_ICON_FILE, 'r') as f: 

18 ICONS = json.load(f) 

19 for icon in ICONS: 

20 for state in ICONS[icon]: 

21 sheet = sheet.replace( 

22 f'{icon}-{state}', f'{settings.ASSET_DIR}/{ICONS[icon][state]}') 

23 return sheet 

24 

25 

26def get_mode_theme(): 

27 with open(settings.GUI_THEME_FILE, 'r') as f: 

28 MATERIAL = json.load(f) 

29 

30 if settings.GUI_DARK_MODE: 

31 theme_key = 'dark_mode' 

32 else: 

33 theme_key = 'light_mode' 

34 

35 theme = {} 

36 for i, color in enumerate(MATERIAL[theme_key]): 

37 for scheme in MATERIAL[color]: 

38 if i == 0: 

39 theme[f'$primary-{scheme}'] = MATERIAL[color][scheme] 

40 elif i == 1: 

41 theme[f'$accent-{scheme}'] = MATERIAL[color][scheme] 

42 elif i == 2: 

43 theme[f'$warn-{scheme}'] = MATERIAL[color][scheme] 

44 return theme 

45 

46 

47def get_light_mode_theme(): 

48 with open(settings.GUI_THEME_FILE, 'r') as f: 

49 MATERIAL = json.load(f) 

50 

51 light_theme = {} 

52 for color in MATERIAL['grey']: 

53 light_theme[f'$primary-{color}'] = MATERIAL['grey'][color] 

54 for color in MATERIAL['green']: 

55 light_theme[f'$accent-{color}'] = MATERIAL['green'][color] 

56 for color in MATERIAL['red']: 

57 light_theme[f'$warn-{color}'] = MATERIAL['red'][color] 

58 

59 return light_theme 

60 

61 

62def format_allocation_profile_title(allocation, portfolio) -> str: 

63 port_return, port_volatility = portfolio.return_function( 

64 allocation), portfolio.volatility_function(allocation) 

65 formatted_result = "("+str(100 * 

66 port_return)[:5]+"%, " + str(100*port_volatility)[:5]+"%)" 

67 formatted_result_title = "(" 

68 for symbol in portfolio.tickers: 

69 if portfolio.tickers.index(symbol) != (len(portfolio.tickers) - 1): 

70 formatted_result_title += symbol+", " 

71 else: 

72 formatted_result_title += symbol + ") Portfolio Return-Risk Profile" 

73 whole_thing = formatted_result_title + " = "+formatted_result 

74 return whole_thing 

75 

76 

77def format_profile(profile: dict) -> Tuple[str]: 

78 profile_keys = keys.keys['APP']['PROFILE'] 

79 for key in profile_keys: 

80 if key in ['RET', 'VOL', 'EQUITY']: 

81 profile = helper.format_dict_percent(profile, profile_keys[key]) 

82 else: 

83 profile = helper.format_dict_number(profile, profile_keys[key]) 

84 return profile