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
« prev ^ index » next coverage.py v6.4.2, created at 2022-07-18 18:14 +0000
1import json
3from typing import Tuple
5from scrilla import settings
6from scrilla.util import helper
7from scrilla.static import keys
9MARGINS = 5
12def format_stylesheet(sheet):
13 theme = get_mode_theme()
14 for element in theme:
15 sheet = sheet.replace(element, theme[element])
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
26def get_mode_theme():
27 with open(settings.GUI_THEME_FILE, 'r') as f:
28 MATERIAL = json.load(f)
30 if settings.GUI_DARK_MODE:
31 theme_key = 'dark_mode'
32 else:
33 theme_key = 'light_mode'
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
47def get_light_mode_theme():
48 with open(settings.GUI_THEME_FILE, 'r') as f:
49 MATERIAL = json.load(f)
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]
59 return light_theme
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
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