-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathutils.py
92 lines (73 loc) · 2 KB
/
utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import dash_bootstrap_components as dbc
import dash_html_components as html
import yfinance
GRAPH_CONFIG = {
'scrollZoom': False,
'displayModeBar': False,
'locale': 'pt'
}
def get_ticker_name(ticker:str) -> str:
'''
Valida o ticker desejado e retorna seu nome.
Parameters
----------
ticker : str
Ticker desejado, adicionado o prefixo ".SA" caso seja uma ação
negociada na Bolsa de Valores de São Paulo.
Returns
-------
str
Nome do ticker desejado.
str
Nova cor do botão de verificação:
- 'success' (verde), se validado;
- 'danger' (vermelho), em caso de falha.
list of dash_html_components
Novo ícone e texto do botão de verificação.
--------------------------------------------------------------------------
'''
try:
t = yfinance.Ticker(ticker)
name = t.info['longName'] if 'longName' in t.info else t.info['shortName']
color = 'primary'
status = 'Ticker inserido'
except:
name = f'Ticker "{ticker}" não encontrado'
color = 'danger'
status = 'Erro! Tente novamente'
return name, color, status
def tag(ticker:str):
return dbc.Badge([
html.Span(
ticker,
style = {'font-size': 16}
),
html.I(
className = 'fas fa-times ml-3',
style = {'cursor': 'pointer'},
id = {'ticker_remove': ticker},
n_clicks_timestamp = 0
)
],
pill = True,
color = 'primary',
style = {'padding': 10},
className = 'shadow'
)
def menu_ajuda(position):
return html.A([
html.I(
className = 'fas fa-question-circle mr-2',
),
html.Span(html.B('Ajuda'))
],
href = '/ajuda',
target = '_blank',
style = {
'font-size': 20,
'color': 'white',
'top': 10,
'right': 20,
'position': position
}
)