neurostats-API 0.0.22__py3-none-any.whl → 0.0.23__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.
- neurostats_API/__init__.py +1 -1
- neurostats_API/fetchers/balance_sheet.py +59 -36
- neurostats_API/fetchers/base.py +6 -2
- neurostats_API/fetchers/cash_flow.py +87 -66
- neurostats_API/fetchers/finance_overview.py +26 -26
- neurostats_API/fetchers/institution.py +211 -97
- neurostats_API/fetchers/margin_trading.py +121 -94
- neurostats_API/fetchers/month_revenue.py +139 -105
- neurostats_API/fetchers/profit_lose.py +100 -80
- neurostats_API/fetchers/tech.py +61 -26
- neurostats_API/fetchers/tej_finance_report.py +23 -8
- neurostats_API/fetchers/value_invest.py +32 -12
- neurostats_API/tools/tej_db/tej_db_percent_index.yaml +0 -3
- neurostats_API/tools/tej_db/tej_db_skip_index.yaml +12 -1
- neurostats_API/tools/tej_db/tej_db_thousand_index.yaml +0 -4
- neurostats_API/utils/calculate_value.py +5 -2
- neurostats_API/utils/data_process.py +11 -5
- neurostats_API/utils/logger.py +21 -0
- {neurostats_API-0.0.22.dist-info → neurostats_API-0.0.23.dist-info}/METADATA +2 -2
- neurostats_API-0.0.23.dist-info/RECORD +35 -0
- neurostats_API-0.0.22.dist-info/RECORD +0 -34
- {neurostats_API-0.0.22.dist-info → neurostats_API-0.0.23.dist-info}/WHEEL +0 -0
- {neurostats_API-0.0.22.dist-info → neurostats_API-0.0.23.dist-info}/top_level.txt +0 -0
@@ -191,7 +191,11 @@ class StatsProcessor:
|
|
191
191
|
@classmethod
|
192
192
|
def cal_percentage(cls, value, postfix="%"):
|
193
193
|
if (isinstance(value, (float, int))):
|
194
|
+
if (np.isnan(value)):
|
195
|
+
return None
|
194
196
|
value = np.round(value * 100, 2).item()
|
197
|
+
if (value != value): # nan值發生
|
198
|
+
return None
|
195
199
|
value = f"{value:.2f}{postfix}"
|
196
200
|
|
197
201
|
return value
|
@@ -202,10 +206,11 @@ class StatsProcessor:
|
|
202
206
|
@classmethod
|
203
207
|
def cal_non_percentage(cls, value, to_str=False, postfix="元"):
|
204
208
|
if (isinstance(value, (float, int))):
|
205
|
-
|
209
|
+
if (np.isnan(value)):
|
210
|
+
return None
|
206
211
|
value = np.round(value, 2).item()
|
207
212
|
if (postfix == "千元"):
|
208
|
-
value
|
213
|
+
value = value * 1000
|
209
214
|
try:
|
210
215
|
value = int(value)
|
211
216
|
except Exception as e:
|
@@ -283,7 +288,7 @@ class StatsProcessor:
|
|
283
288
|
if (key):
|
284
289
|
keys = [key]
|
285
290
|
for data in data_list:
|
286
|
-
data = data
|
291
|
+
data = data.get("data")
|
287
292
|
|
288
293
|
pop_keys = []
|
289
294
|
|
@@ -292,7 +297,8 @@ class StatsProcessor:
|
|
292
297
|
pop_keys.append(str(data.pop(key)))
|
293
298
|
|
294
299
|
pop_key = delimeter.join(pop_keys)
|
295
|
-
|
300
|
+
target_data = data.get(data_key)
|
301
|
+
return_dict[pop_key] = target_data
|
296
302
|
|
297
303
|
return return_dict
|
298
304
|
|
@@ -302,5 +308,5 @@ class StatsProcessor:
|
|
302
308
|
value = value.replace("%", "")
|
303
309
|
try:
|
304
310
|
return float(value)
|
305
|
-
except (ValueError, TypeError):
|
311
|
+
except (ValueError, TypeError) as e:
|
306
312
|
return None
|
@@ -0,0 +1,21 @@
|
|
1
|
+
import logging
|
2
|
+
from functools import wraps
|
3
|
+
|
4
|
+
class StatsLogger:
|
5
|
+
|
6
|
+
@classmethod
|
7
|
+
def exception_log(cls, default_return=None, level='error'):
|
8
|
+
def decorator(func):
|
9
|
+
@wraps(func)
|
10
|
+
def wrapper(*args, **kwargs):
|
11
|
+
try:
|
12
|
+
return func(*args, **kwargs)
|
13
|
+
except Exception as e:
|
14
|
+
log_fn = getattr(logging, level, logging.error)
|
15
|
+
log_fn(
|
16
|
+
f"{func.__name__} failed | args={args}, kwargs={kwargs} | error={e}",
|
17
|
+
exc_info=True
|
18
|
+
)
|
19
|
+
return default_return
|
20
|
+
return wrapper
|
21
|
+
return decorator
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.23
|
4
4
|
Summary: The service of NeuroStats website
|
5
5
|
Home-page: https://github.com/NeurowattStats/NeuroStats_API.git
|
6
6
|
Author: JasonWang@Neurowatt
|
@@ -89,7 +89,7 @@ pip install neurostats-API
|
|
89
89
|
```Python
|
90
90
|
>>> import neurostats_API
|
91
91
|
>>> print(neurostats_API.__version__)
|
92
|
-
0.0.
|
92
|
+
0.0.23
|
93
93
|
```
|
94
94
|
|
95
95
|
### 得到最新一期的評價資料與歷年評價
|
@@ -0,0 +1,35 @@
|
|
1
|
+
neurostats_API/__init__.py,sha256=0pjIrvtZhJd0auAFx4I4qYYyZ_HkE_94paLzWPLv7E8,288
|
2
|
+
neurostats_API/cli.py,sha256=UJSWLIw03P24p-gkBb6JSEI5dW5U12UvLf1L8HjQD-o,873
|
3
|
+
neurostats_API/main.py,sha256=QcsfmWivg2Dnqw3MTJWiI0QvEiRs0VuH-BjwQHFCv00,677
|
4
|
+
neurostats_API/fetchers/__init__.py,sha256=KCw-yRSDFa3fw83u73LJ9OVop7gRl_YQYlQq-cITxuo,511
|
5
|
+
neurostats_API/fetchers/balance_sheet.py,sha256=j2bDFk_IwdNhGRy32wfVGz8Y8-S-gtyIZmT-uRNzH80,6889
|
6
|
+
neurostats_API/fetchers/base.py,sha256=fHdZJtBZ6OD1IUbW6sUTXsPJVWrj41Ay4TOJChp2keI,7236
|
7
|
+
neurostats_API/fetchers/cash_flow.py,sha256=7VznJBKwGyc4EBL9uB7x19zg0JRgZcNrvBAviTNns6k,7978
|
8
|
+
neurostats_API/fetchers/finance_overview.py,sha256=xRn4UF2iMS13ztsFgBFj4UykyJsWMriuUevNeZHQR7E,27815
|
9
|
+
neurostats_API/fetchers/institution.py,sha256=f-Z_Kd6-gnOM8bE7tqWKFnvlMGiE-pGZbsc0JCIobcU,14786
|
10
|
+
neurostats_API/fetchers/margin_trading.py,sha256=0enMPpq0J55uts0nJFHOylXvLEMWZYSb-gt1BH5_gBM,11430
|
11
|
+
neurostats_API/fetchers/month_revenue.py,sha256=K1WZct6vLU3y_8uaXR3po5jzx2w3EYb2v3XkIX2_pBE,8313
|
12
|
+
neurostats_API/fetchers/profit_lose.py,sha256=M-Ngn1l6FbulRurrs2BzlrP0iAeeNF9n5TdIoDa4G_s,9164
|
13
|
+
neurostats_API/fetchers/tech.py,sha256=TsS8m25Otc3_2jTYITFe-wNHlDWcfWsHIxhOrqL8qMY,16016
|
14
|
+
neurostats_API/fetchers/tej_finance_report.py,sha256=NHBqs1xbJ_IuXcBluNJyoZO4BYqmFN76UW201ss3R14,11936
|
15
|
+
neurostats_API/fetchers/value_invest.py,sha256=QxQS2GcoLIU9ZBDEo8iRK2yHd8YLmBS70Bq42F3IsSw,8295
|
16
|
+
neurostats_API/tools/company_list/tw.json,sha256=VWaDFvd0ACCVSWItcHHpmVuM_RzP71jLZl9RBHztu-0,51332
|
17
|
+
neurostats_API/tools/tej_db/tej_db_index.yaml,sha256=lu-cmbB6dhx0eUlBSkyzXWqPKlwRtEvqlMTAh2y0oHs,969
|
18
|
+
neurostats_API/tools/tej_db/tej_db_percent_index.yaml,sha256=xSgmamEK0DUBKRllUb94p9TxhJln_BzFoFYK9OJ0fkM,302
|
19
|
+
neurostats_API/tools/tej_db/tej_db_skip_index.yaml,sha256=6UtMfPL7XvkKvEWTFXIIUZMJWZSagIduLYJb-r3HEg8,246
|
20
|
+
neurostats_API/tools/tej_db/tej_db_thousand_index.yaml,sha256=K2YFBSrxqX1V2upy0IUeQ4ung4aPrjtlqYSvCGaaO8I,479
|
21
|
+
neurostats_API/tools/twse/balance_sheet.yaml,sha256=6XygNG_Ybb1Xkk1e39LMLKr7ATvaCP3xxuwFbgNl6dA,673
|
22
|
+
neurostats_API/tools/twse/cash_flow_percentage.yaml,sha256=fk2Z4eb1JjGFvP134eJatHacB7BgTkBenhDJr83w8RE,1345
|
23
|
+
neurostats_API/tools/twse/finance_overview_dict.yaml,sha256=B9nV75StXkrF3yv2-eezzitlJ38eEK86RD_VY6588gQ,2884
|
24
|
+
neurostats_API/tools/twse/profit_lose.yaml,sha256=iyp9asYJ04vAxk_HBUDse_IBy5oVvYHpwsyACg5YEeg,3029
|
25
|
+
neurostats_API/tools/twse/seasonal_data_field_dict.txt,sha256=X8yc_el6p8BH_3FikTqBVFGsvWdXT6MHXLfKfi44334,8491
|
26
|
+
neurostats_API/utils/__init__.py,sha256=uZk08lGPvVIc7MKAvRdZ2FJzgfa8GzsWG_hWAhF6C5U,152
|
27
|
+
neurostats_API/utils/calculate_value.py,sha256=ioPV5VWitJ2NylBi5vwfs-payAUYxWhAiS7aaJjzQKQ,4305
|
28
|
+
neurostats_API/utils/data_process.py,sha256=UlDjKPQHO2JklBQ0402rL6dCPIExyY90gvcLJ1de7sQ,10228
|
29
|
+
neurostats_API/utils/datetime.py,sha256=XJya4G8b_-ZOaBbMXgQjWh2MC4wc-o6goQ7EQJQMWrQ,773
|
30
|
+
neurostats_API/utils/db_client.py,sha256=OYe6yazcR4Aa6jYmy47JrryUeh2NnKGqY2K_lSZe6i8,455
|
31
|
+
neurostats_API/utils/logger.py,sha256=egBiiPGTi5l1FoX_o6EvdGh81R0_k8hFPctSxq8RCoo,693
|
32
|
+
neurostats_API-0.0.23.dist-info/METADATA,sha256=cowuJT-lpruk2usQAIE1K1NoWqgYcRalikHQkb897-w,31618
|
33
|
+
neurostats_API-0.0.23.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
34
|
+
neurostats_API-0.0.23.dist-info/top_level.txt,sha256=nSlQPMG0VtXivJyedp4Bkf86EOy2TpW10VGxolXrqnU,15
|
35
|
+
neurostats_API-0.0.23.dist-info/RECORD,,
|
@@ -1,34 +0,0 @@
|
|
1
|
-
neurostats_API/__init__.py,sha256=bOEodI1kq0xK8AR_160U9DasXGcjCEZHi7BQGh6Ib-4,288
|
2
|
-
neurostats_API/cli.py,sha256=UJSWLIw03P24p-gkBb6JSEI5dW5U12UvLf1L8HjQD-o,873
|
3
|
-
neurostats_API/main.py,sha256=QcsfmWivg2Dnqw3MTJWiI0QvEiRs0VuH-BjwQHFCv00,677
|
4
|
-
neurostats_API/fetchers/__init__.py,sha256=KCw-yRSDFa3fw83u73LJ9OVop7gRl_YQYlQq-cITxuo,511
|
5
|
-
neurostats_API/fetchers/balance_sheet.py,sha256=RgiX5wp9UoS7HcXHqwO_NMAFr2ESJSWJenyCwJj6rxU,6060
|
6
|
-
neurostats_API/fetchers/base.py,sha256=BcGpwlA0TD8y-Uped68xPf-cZYHP9PB4UyDWgPcURe4,7155
|
7
|
-
neurostats_API/fetchers/cash_flow.py,sha256=0it4hnKLKRLAFgrxrsrK2rk7dom7HvQi96z5LXh2w_c,7013
|
8
|
-
neurostats_API/fetchers/finance_overview.py,sha256=dDe6THJg1UJffnJ25xwXd4K99s2DBTdGaxmCT3O-xdA,27763
|
9
|
-
neurostats_API/fetchers/institution.py,sha256=UrcBc6t7u7CnEwUsf6YmLbbJ8VncdWpq8bCz17q2dgs,11168
|
10
|
-
neurostats_API/fetchers/margin_trading.py,sha256=lQImtNdvaBoSlKhJvQ3DkH3HjSSgKRJz4ZZpyR5-Z4I,10433
|
11
|
-
neurostats_API/fetchers/month_revenue.py,sha256=DZeOblfSz7NhQXVvL5xfMHZ1rv2B8pgqu-U-o_gcAuc,6323
|
12
|
-
neurostats_API/fetchers/profit_lose.py,sha256=ZvSG4vx4gBrWMKmcyuSaoNyW6JGiOtIpFxRIeyCAeDY,7705
|
13
|
-
neurostats_API/fetchers/tech.py,sha256=AyxdOjStVJIPFTVcofVOJknXPpv_D9dqkFPjEFXo6iY,14937
|
14
|
-
neurostats_API/fetchers/tej_finance_report.py,sha256=5ERpg1kq2wSPdLMBYXX5MUWRxOrwwFHSBXNidSKeuRo,11233
|
15
|
-
neurostats_API/fetchers/value_invest.py,sha256=b_x2Dpgs8VBU5HdG8ocKtfIEkqhU-Q0S5n6RxuFuM2g,7467
|
16
|
-
neurostats_API/tools/company_list/tw.json,sha256=VWaDFvd0ACCVSWItcHHpmVuM_RzP71jLZl9RBHztu-0,51332
|
17
|
-
neurostats_API/tools/tej_db/tej_db_index.yaml,sha256=lu-cmbB6dhx0eUlBSkyzXWqPKlwRtEvqlMTAh2y0oHs,969
|
18
|
-
neurostats_API/tools/tej_db/tej_db_percent_index.yaml,sha256=-rBSdOoYs5UB9H6Y3FE5PTqV9meXEFZD2KhSlAQ_4Eg,323
|
19
|
-
neurostats_API/tools/tej_db/tej_db_skip_index.yaml,sha256=nSbrflaJrWCIjL5WeHT3UDKZyN0WegVElUKVYA4YSa0,169
|
20
|
-
neurostats_API/tools/tej_db/tej_db_thousand_index.yaml,sha256=S1k4PFZ7NsjGUgeCb89dyaojkOcvGPRdBr45hz3wlWY,507
|
21
|
-
neurostats_API/tools/twse/balance_sheet.yaml,sha256=6XygNG_Ybb1Xkk1e39LMLKr7ATvaCP3xxuwFbgNl6dA,673
|
22
|
-
neurostats_API/tools/twse/cash_flow_percentage.yaml,sha256=fk2Z4eb1JjGFvP134eJatHacB7BgTkBenhDJr83w8RE,1345
|
23
|
-
neurostats_API/tools/twse/finance_overview_dict.yaml,sha256=B9nV75StXkrF3yv2-eezzitlJ38eEK86RD_VY6588gQ,2884
|
24
|
-
neurostats_API/tools/twse/profit_lose.yaml,sha256=iyp9asYJ04vAxk_HBUDse_IBy5oVvYHpwsyACg5YEeg,3029
|
25
|
-
neurostats_API/tools/twse/seasonal_data_field_dict.txt,sha256=X8yc_el6p8BH_3FikTqBVFGsvWdXT6MHXLfKfi44334,8491
|
26
|
-
neurostats_API/utils/__init__.py,sha256=uZk08lGPvVIc7MKAvRdZ2FJzgfa8GzsWG_hWAhF6C5U,152
|
27
|
-
neurostats_API/utils/calculate_value.py,sha256=Zc5DG_qXnHZLkCjUYdoMWka3KVXu2o9AmDnEYixiXYQ,4197
|
28
|
-
neurostats_API/utils/data_process.py,sha256=LdDmhQMGBg1UI6cIWCdsj9YTkixtf1cyrN1xq2JZmPo,9971
|
29
|
-
neurostats_API/utils/datetime.py,sha256=XJya4G8b_-ZOaBbMXgQjWh2MC4wc-o6goQ7EQJQMWrQ,773
|
30
|
-
neurostats_API/utils/db_client.py,sha256=OYe6yazcR4Aa6jYmy47JrryUeh2NnKGqY2K_lSZe6i8,455
|
31
|
-
neurostats_API-0.0.22.dist-info/METADATA,sha256=yLp6sTftp5SaxhXZxtLfE7Fvd7OmtZYd3XjwyR4yoG4,31618
|
32
|
-
neurostats_API-0.0.22.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
33
|
-
neurostats_API-0.0.22.dist-info/top_level.txt,sha256=nSlQPMG0VtXivJyedp4Bkf86EOy2TpW10VGxolXrqnU,15
|
34
|
-
neurostats_API-0.0.22.dist-info/RECORD,,
|
File without changes
|
File without changes
|