yfinance-exporter 1.0.6__py3-none-any.whl → 1.0.8__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,4 @@
|
|
1
|
+
yfinance_exporter.py,sha256=dWRisWYrcgQpAydWI6C4pjcswOn0PDFtJuFjw3WYbbM,4241
|
2
|
+
yfinance_exporter-1.0.8.dist-info/METADATA,sha256=k9BOjhid1uGJB3ZE576bQkW_NaiezQTfo-5CJ5fYYKM,1525
|
3
|
+
yfinance_exporter-1.0.8.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
4
|
+
yfinance_exporter-1.0.8.dist-info/RECORD,,
|
yfinance_exporter.py
CHANGED
@@ -62,8 +62,8 @@ STOCK = Gauge(
|
|
62
62
|
)
|
63
63
|
|
64
64
|
|
65
|
-
def collect(stock):
|
66
|
-
logger.debug("
|
65
|
+
def collect(stock) -> bool:
|
66
|
+
logger.debug("%r: Collecting", stock.name)
|
67
67
|
labels = [
|
68
68
|
stock.ycode.split(".")[1] if "." in stock.ycode else "",
|
69
69
|
"stocks",
|
@@ -77,30 +77,32 @@ def collect(stock):
|
|
77
77
|
try:
|
78
78
|
value = ticker.fast_info["last_price"]
|
79
79
|
except KeyError:
|
80
|
+
logger.warning("%r: no value from yfinance", stock.name)
|
80
81
|
value = None
|
81
82
|
if not isinstance(value, (int, float)):
|
82
83
|
try:
|
83
84
|
STOCK.remove(*labels)
|
84
85
|
except KeyError:
|
85
86
|
pass
|
87
|
+
logger.debug("%r: found no value", stock.name)
|
86
88
|
return False
|
89
|
+
logger.debug("%r: found value %r", stock.name, value)
|
87
90
|
STOCK.labels(*labels).set(value)
|
88
91
|
return True
|
89
92
|
|
90
93
|
|
91
94
|
def update_state(result: bool, key: str, states: dict, labels: dict):
|
92
95
|
previous = states.get(key)
|
93
|
-
states[key] =
|
94
|
-
|
96
|
+
states[key] = result
|
97
|
+
logger.debug("%r: result %r => %r", key, previous, result)
|
98
|
+
if previous == result:
|
95
99
|
return
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
DAEMON.labels(status=
|
102
|
-
if previous:
|
103
|
-
DAEMON.labels(status="items-ok", **labels).dec()
|
100
|
+
inc_key, dec_key = "items-ok", "items-ko"
|
101
|
+
if not result:
|
102
|
+
inc_key, dec_key = "items-ko", "items-ok"
|
103
|
+
DAEMON.labels(status=inc_key, **labels).inc()
|
104
|
+
if previous is not None:
|
105
|
+
DAEMON.labels(status=dec_key, **labels).dec()
|
104
106
|
|
105
107
|
|
106
108
|
def main():
|
@@ -119,6 +121,7 @@ def main():
|
|
119
121
|
for stock in conf.stocks:
|
120
122
|
result = collect(stock)
|
121
123
|
update_state(result, stock.isin, states, labels)
|
124
|
+
logger.debug("Wating computed interval %r", in_loop_interval)
|
122
125
|
time.sleep(in_loop_interval)
|
123
126
|
|
124
127
|
exec_interval = (datetime.now() - start).total_seconds()
|
@@ -1,4 +0,0 @@
|
|
1
|
-
yfinance_exporter.py,sha256=TJrHG5ykq-UlkZv8B81dWmAMuZzvyASftKOFvgWZi7o,4038
|
2
|
-
yfinance_exporter-1.0.6.dist-info/METADATA,sha256=G96Au8wscW9S9gqLFIAHdkMutW0kqUjtvUWmD7af7NU,1525
|
3
|
-
yfinance_exporter-1.0.6.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
|
4
|
-
yfinance_exporter-1.0.6.dist-info/RECORD,,
|
File without changes
|