neurostats-API 1.0.0rc6__py3-none-any.whl → 1.0.2rc1__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.
@@ -7,10 +7,6 @@ from pymongo import ASCENDING, DESCENDING
7
7
  import pytz
8
8
  import holidays
9
9
  import warnings
10
- warnings.filterwarnings(
11
- "ignore",
12
- category=holidays.deprecations.v1_incompatibility.FutureIncompatibilityWarning
13
- )
14
10
  from ..utils import StatsDateTime, StatsProcessor, NoCompanyError
15
11
  import importlib.resources as pkg_resources
16
12
  import yaml
@@ -815,10 +811,12 @@ class AgentFinanceOverviewFetcher(FinanceOverviewFetcher):
815
811
  self.db = db_client[db_name]
816
812
 
817
813
  daily_collection_name_map = {
814
+ "company": "twse_daily_share_price",
818
815
  'company_us': "us_technical"
819
816
  }
820
817
 
821
818
  seasonal_collection_name_map = {
819
+ 'company': "twse_seasonal_report",
822
820
  "company_us": "us_fundamentals"
823
821
  }
824
822
 
@@ -834,9 +832,6 @@ class AgentFinanceOverviewFetcher(FinanceOverviewFetcher):
834
832
  self.seasonal_collection_name]
835
833
 
836
834
  def query_data(self, date=None):
837
- """
838
- 抓取當天技術面以及當天之前的季報
839
- """
840
835
  query_set = self._prepare_query(date)
841
836
  if (date is None):
842
837
  str_date = datetime.today().strftime("%Y-%m-%d")
@@ -864,9 +859,8 @@ class AgentFinanceOverviewFetcher(FinanceOverviewFetcher):
864
859
  } for data in seasonal_datas
865
860
  ]
866
861
 
867
- # 計算TTM: 財報近四期數值平均
868
862
  seasonal_df = pd.DataFrame(seasonal_data)
869
- TTM_data = seasonal_df.mean()
863
+ TTM_data = seasonal_df.mean()
870
864
 
871
865
  return_dict = {
872
866
  "date": str_date,
@@ -13,7 +13,9 @@ from .daily_tech import(
13
13
  )
14
14
 
15
15
  from .daily_chip import(
16
- TWSEChipTransformer
16
+ TWSEChipTransformer,
17
+ US_F13_Transformer,
18
+ US_CelebrityTransformer
17
19
  )
18
20
 
19
21
  from .month_revenue import(
@@ -1 +1,2 @@
1
1
  from .twse_chip import TWSEChipTransformer
2
+ from .us import US_F13_Transformer, US_CelebrityTransformer
@@ -0,0 +1,65 @@
1
+ from .base import BaseChipTransformer
2
+ from datetime import date, datetime
3
+ import inspect
4
+ import numpy as np
5
+ import pandas as pd
6
+ from neurostats_API.utils import StatsProcessor
7
+ from collections import defaultdict
8
+ from typing import List, Optional, Union
9
+
10
+ class US_F13_Transformer(BaseChipTransformer):
11
+ def __init__(self, ticker, company_name, zone):
12
+ super().__init__(ticker, company_name, zone)
13
+
14
+ def process_transform(self, fetched_datas):
15
+ """
16
+ fetched_datas:[
17
+ {
18
+
19
+ }, ....
20
+ ]
21
+ """
22
+ if not fetched_datas:
23
+ return self._get_empty_structure() # 若查無資料,回傳空表結構
24
+
25
+ def flatten_nested_data(data_dict, key):
26
+ pop_dict = data_dict.pop(key, {})
27
+ for sub_key, value in pop_dict.items():
28
+ data_dict[f"{key}_{sub_key}"] = value
29
+
30
+ return data_dict
31
+
32
+ result = [flatten_nested_data(data, 'votingAuthority') for data in fetched_datas]
33
+
34
+ return_dict = {
35
+ "ticker": self.ticker,
36
+ "company_name": self.company_name,
37
+ "chip_data": pd.DataFrame(result)
38
+ }
39
+
40
+ return return_dict
41
+
42
+ class US_CelebrityTransformer():
43
+
44
+ def __init__(self):
45
+ pass
46
+
47
+ def process_transform(
48
+ self,
49
+ fetched_datas: List[dict],
50
+ strftime: Optional[str] = None
51
+ ) -> dict[str, dict[Union[str, datetime], float]]:
52
+
53
+ result = defaultdict(lambda: defaultdict(dict))
54
+
55
+ for record in fetched_datas:
56
+ ticker = record.get("issuerTicker")
57
+ report_date = record.get("reportDate")
58
+ value = record.get("value")
59
+ title = record.get("titleOfClass")
60
+
61
+ if ticker and report_date and title:
62
+ key = report_date.strftime(strftime) if strftime else report_date
63
+ result.setdefault(ticker, {}).setdefault(title, {})[key] = value
64
+
65
+ return dict(result)
@@ -2,4 +2,4 @@ from .datetime import StatsDateTime
2
2
  from .db_client import DBClient
3
3
  from .data_process import StatsProcessor
4
4
  from .calculate_value import YoY_Calculator
5
- from .exception import NoCompanyError, NoDataError, NotSupportedError
5
+ from .exception import NoCompanyError, NoDataError, NotSupportedError
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: neurostats_API
3
- Version: 1.0.0rc6
3
+ Version: 1.0.2rc1
4
4
  Summary: The service of NeuroStats website
5
5
  Home-page: https://github.com/NeurowattStats/NeuroStats_API.git
6
6
  Author: JasonWang@Neurowatt
@@ -71,7 +71,7 @@ pip install neurostats-API
71
71
  ```Python
72
72
  >>> import neurostats_API
73
73
  >>> print(neurostats_API.__version__)
74
- 1.0.0rc6
74
+ 1.0.2rc1
75
75
  ```
76
76
 
77
77
  ### 下載舊版
@@ -1,19 +1,20 @@
1
- neurostats_API/__init__.py,sha256=i-A81EltAAyWKaO_KUJQwnzwTmMOhUc1XrfLDSG0eAo,675
1
+ neurostats_API/__init__.py,sha256=rYPiKrSMClreRwkPjRz5Rfn1wyJ82TiNAkOvNUUamEY,704
2
2
  neurostats_API/cli.py,sha256=UJSWLIw03P24p-gkBb6JSEI5dW5U12UvLf1L8HjQD-o,873
3
3
  neurostats_API/main.py,sha256=QcsfmWivg2Dnqw3MTJWiI0QvEiRs0VuH-BjwQHFCv00,677
4
- neurostats_API/async_mode/__init__.py,sha256=arSINQm3O3g-IwfOSLsGraEj2icJbkuW0t5HLPQ4Xk8,348
4
+ neurostats_API/async_mode/__init__.py,sha256=8tsW_UDLJXuwzWdZJSacOqZatwzqr7v60hRk0PbgB-w,377
5
5
  neurostats_API/async_mode/db/__init__.py,sha256=7g0OJXgPsIDWRmH25h666cLlvVYpEDyWGXAVCHsNht0,86
6
6
  neurostats_API/async_mode/db/base.py,sha256=63kW2cKBSrs0B4RJaX_3Jv12UYD2APH8sRh2UEVKucw,676
7
7
  neurostats_API/async_mode/db/tej.py,sha256=ku7CfhrSJ8gfUQ_NRjyjSz-OFmqyCGGnXz8Tpue5gP0,324
8
8
  neurostats_API/async_mode/db/twse.py,sha256=YZA-NUZ01EAUKPsaNEaZn3cuzeL9n1fi03aBiHUJGAA,220
9
9
  neurostats_API/async_mode/db/us.py,sha256=SgoU_OpSkpmrlBiNvy5xgyssb7-xK8ptezi4SR00t4I,271
10
- neurostats_API/async_mode/db_extractors/__init__.py,sha256=KAjeAL3XanXIhsPz_1uVAsvAoezL9KHdYjO8WEsNxPQ,452
10
+ neurostats_API/async_mode/db_extractors/__init__.py,sha256=S6-lz6SZGzsSem-Kicr8UKsbPcuUA3Wyu276yMJN0tg,512
11
11
  neurostats_API/async_mode/db_extractors/base.py,sha256=3Xgdl6A5x93Qg7zMyJJFdE9ZMxsSDFtmXQ-i3gmnpjQ,1831
12
- neurostats_API/async_mode/db_extractors/daily/__init__.py,sha256=crXYyPT-LnEWsMFMoOtW3iD4VDXe8EHfYH_IcdfLoRs,232
13
- neurostats_API/async_mode/db_extractors/daily/base.py,sha256=U7cxKHIqSITEoDxqShN-3k7_pzLW-VnKLSsXo-eQh0s,2925
12
+ neurostats_API/async_mode/db_extractors/daily/__init__.py,sha256=8vw8W8AZ_zi_hSshlobN4ITK9qaFVoNy66OmOT7cNj4,306
13
+ neurostats_API/async_mode/db_extractors/daily/base.py,sha256=ePvYxqOypy0F9VI33nSJQGpG5zMNO_EGZ3owVUeKFLw,3204
14
14
  neurostats_API/async_mode/db_extractors/daily/tej_chip.py,sha256=Ywc0iIIPWw1VdtVc2_s1CNrgj0_G1wOaGzrgyVTN2k8,414
15
15
  neurostats_API/async_mode/db_extractors/daily/tej_tech.py,sha256=M3k1pmv48DfiUaIfDKx5gk85C5JpmuXdQhRcNzgOhPI,349
16
16
  neurostats_API/async_mode/db_extractors/daily/twse_chip.py,sha256=WICwcsy2m_2ua9UnIjs_SZGFq7m2-UByx9x7TCk_rlY,1490
17
+ neurostats_API/async_mode/db_extractors/daily/us_chip.py,sha256=CMaKFsL5ryohvvmoq1jOrSE4DLWDD0nXeGCuXJc2gZo,3936
17
18
  neurostats_API/async_mode/db_extractors/daily/value.py,sha256=j5QjFOhmvVum0D10prcZZ7_sxrojA-b8sP72Ge9lOnY,2859
18
19
  neurostats_API/async_mode/db_extractors/daily/yf.py,sha256=GewIRJ7_baBc9QL7BHVdnxQ0uXYpFNeiPuwKxzByULg,377
19
20
  neurostats_API/async_mode/db_extractors/month_revenue/__init__.py,sha256=VXjEn4xnXsPpt8lq7egSM_3sLnhtOIQG2lNedDC_Shw,50
@@ -26,23 +27,25 @@ neurostats_API/async_mode/db_extractors/seasonal/cashflow.py,sha256=2yOIOMFic9DT
26
27
  neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py,sha256=AMKMVIVIBWTRk2b_A33OUuTLrCwc-xYj5fIL4YjLnug,564
27
28
  neurostats_API/async_mode/db_extractors/seasonal/tej.py,sha256=SqObDqR3uOnxXGF12VQz7Rzw7B5YAimY1-nR0ImLkaY,2591
28
29
  neurostats_API/async_mode/factory/__init__.py,sha256=7dw36HPjV9JHfEBF7n1pA8i4f-07ACKREnGMUHxh7KY,45
29
- neurostats_API/async_mode/factory/extractor_factory.py,sha256=6dV_-zAtLj6WDbc0N0hRPy7RWl-4ppAyAy1YCbWii0M,4530
30
+ neurostats_API/async_mode/factory/extractor_factory.py,sha256=NlCH2zM8Qq4zObQG9n4rixCcuFBQmkJz7dS-LARPwXA,4774
30
31
  neurostats_API/async_mode/factory/transformer_factory.py,sha256=atw_-wPz2JZpJscPVE2jvFB6QNwwmcRNKQH9iai-13E,4942
31
- neurostats_API/async_mode/fetchers/__init__.py,sha256=AM8P6YQG4_5OI49GcfoKd3GiLL1y4MfaafDnkk2v52Q,536
32
+ neurostats_API/async_mode/fetchers/__init__.py,sha256=cn8AfSsqoZ_AntE3x4A1-0zu3KQUNy4OdpHpNJpRyT0,605
32
33
  neurostats_API/async_mode/fetchers/balance_sheet.py,sha256=wzlXW5gPh5S5MD5jIUB_yeEL_aW2_CeX2DNKBio0-EA,1129
33
34
  neurostats_API/async_mode/fetchers/base.py,sha256=fWlPmvsQWHcgv8z36BsXj8Y92-VKmr8cUW1EjkqI3_8,1785
34
35
  neurostats_API/async_mode/fetchers/cash_flow.py,sha256=uj2JEbilgn595yJcMNvlTZHdkvu7E9y2e7rqs_ne270,2130
35
- neurostats_API/async_mode/fetchers/finance_overview.py,sha256=nBjKPqrzhXrYvBMbhvzCygRpKR2xV3tPvNX5foiuBSY,4570
36
+ neurostats_API/async_mode/fetchers/finance_overview.py,sha256=YETx7uxS6OQgzJ0v_3JMJoUfuWciWmKAzitm91XffHk,4441
36
37
  neurostats_API/async_mode/fetchers/month_revenue.py,sha256=GDrFrjTe81uAzeKvd5HghH9iPXouXL8JTt8hfaFkig4,1258
37
38
  neurostats_API/async_mode/fetchers/profit_lose.py,sha256=-YMqO6hEbGntAeAf9y66LX56fj6VrHWr1_IIbQ_bUBQ,1483
38
39
  neurostats_API/async_mode/fetchers/tech.py,sha256=xj6LRnexMePi4Nc9P0lduAjJwjcVOp1xInIFjrRMrbM,6686
39
40
  neurostats_API/async_mode/fetchers/twse_institution.py,sha256=DKyecoIa_2-CUfDXKp2dBFJk0lfCBIr2steVVa-jq9o,2055
40
41
  neurostats_API/async_mode/fetchers/twse_margin.py,sha256=wra84uFh9ooCoyFWhRuV4vP3Uhojc13XHx51UD90uYo,3173
42
+ neurostats_API/async_mode/fetchers/us_chip.py,sha256=1C7wsdgXkf4SOHUyqGKNEsr0Ijds7l4jLLsPMYyMRQo,2365
41
43
  neurostats_API/async_mode/fetchers/value.py,sha256=7FpO0_BOOvq4ZlwwaIfSD8xO_s1O8ykxz147fkiZIt4,2883
42
44
  neurostats_API/async_mode/fetchers/tej/__init__.py,sha256=QNXGg1gE_bnkZWybulRZXtcCPWV6Aj1nLz7r0Mo4BN0,93
43
45
  neurostats_API/async_mode/fetchers/tej/seasonal_data.py,sha256=oeMpj4GMzw22KHjVDTcVO2hwVfxmnO291N6O_dKp0sw,2836
44
46
  neurostats_API/async_mode/fetchers/tej/tech.py,sha256=0wG2bep_nJp3kBS0nIzH6191R5bwEeS-upK40DTGpjU,1110
45
47
  neurostats_API/config/company_list/ticker_index_industry_map.json,sha256=JPSrkMrxOg5GB6HoOhOKeCatznvGAFJpWt92iAhutak,162681
48
+ neurostats_API/config/company_list/ticker_to_cik.json,sha256=MxULBrII65OagYjUgADaMMbng5r3x8lV9RdBRj_WGtg,240260
46
49
  neurostats_API/config/company_list/tw.json,sha256=VWaDFvd0ACCVSWItcHHpmVuM_RzP71jLZl9RBHztu-0,51332
47
50
  neurostats_API/config/company_list/us.json,sha256=XtXr6Pm1KO1fPrXtzuvKgI1_wzUzJk5pjXwNJ-lnTWk,445260
48
51
  neurostats_API/config/company_list/us_TradingView_list.json,sha256=SlHgFY5n0dHrEw5vD15NyXNob9pDk181p5wPiXxqlhA,1226883
@@ -59,7 +62,7 @@ neurostats_API/fetchers/__init__.py,sha256=WTssemcLX2lUq_mM6yz365N3VULJIfISm30qV
59
62
  neurostats_API/fetchers/balance_sheet.py,sha256=5DxcG8Ux2e0WRmPp-7eIK33oiipoQVRlXMtvtH0bknI,6934
60
63
  neurostats_API/fetchers/base.py,sha256=fHdZJtBZ6OD1IUbW6sUTXsPJVWrj41Ay4TOJChp2keI,7236
61
64
  neurostats_API/fetchers/cash_flow.py,sha256=OmimJ1afsU8hyJr5GSBhIWvYjtldnoPLSmjuJ1XXriQ,8003
62
- neurostats_API/fetchers/finance_overview.py,sha256=9XWDtpReONYXRVY184uI4ilNT26udVtLm_6vEWortcs,38197
65
+ neurostats_API/fetchers/finance_overview.py,sha256=qv6lTkLWoj9VA7NxqndNUN2VBKqg-jMGV6wefG5fhZc,38038
63
66
  neurostats_API/fetchers/institution.py,sha256=YsPRnM2M25plhrgSQ6ckO7gj_toydBXYlR6OtPrp_0o,15380
64
67
  neurostats_API/fetchers/margin_trading.py,sha256=0enMPpq0J55uts0nJFHOylXvLEMWZYSb-gt1BH5_gBM,11430
65
68
  neurostats_API/fetchers/month_revenue.py,sha256=K1WZct6vLU3y_8uaXR3po5jzx2w3EYb2v3XkIX2_pBE,8313
@@ -67,7 +70,7 @@ neurostats_API/fetchers/profit_lose.py,sha256=MUTPPXHWZhhvcq1YzrY1dalFIXljUUG3Uu
67
70
  neurostats_API/fetchers/tech.py,sha256=TsS8m25Otc3_2jTYITFe-wNHlDWcfWsHIxhOrqL8qMY,16016
68
71
  neurostats_API/fetchers/tej_finance_report.py,sha256=mlIm2Qzs8-Xlzeb8uET8qGPWD3VGUx3g8qFFcY4UbAw,13022
69
72
  neurostats_API/fetchers/value_invest.py,sha256=QxQS2GcoLIU9ZBDEo8iRK2yHd8YLmBS70Bq42F3IsSw,8295
70
- neurostats_API/transformers/__init__.py,sha256=AJ0SkJ9P65gbdHPSygYw1X2I-KRJO20q20lLVP-JViE,676
73
+ neurostats_API/transformers/__init__.py,sha256=sePY-KavG_7xMA-dvWiC_Z6gXGZUmoCoMeuJCcZSe6A,729
71
74
  neurostats_API/transformers/base.py,sha256=gFRuLmFzZl0HObEtMr78oscFP3ePBseMW7tB4s51-_c,4795
72
75
  neurostats_API/transformers/balance_sheet/__init__.py,sha256=RCScBsR3zeC5UdyuiHD1CGRQufoFL5LkN8WbtI5JeA4,87
73
76
  neurostats_API/transformers/balance_sheet/base.py,sha256=sEap9uHe-nri8F4gPV_FCVm0Qe6KWgpHt6a2ryAPd_8,1676
@@ -77,10 +80,11 @@ neurostats_API/transformers/cash_flow/__init__.py,sha256=KJs5kfjRV0ahy842ZVLvQuZ
77
80
  neurostats_API/transformers/cash_flow/base.py,sha256=6Lt44O-xg658-jEFYBHOF2cgD0PGiKK43257uQMSetk,4392
78
81
  neurostats_API/transformers/cash_flow/twse.py,sha256=srrmTmFheJig3el5jQIW8YBgpZVUOq-Af2zM4NxLm7s,2432
79
82
  neurostats_API/transformers/cash_flow/us.py,sha256=nRJajeDz4HNkv42NosoP0Jir4tIA0ybhIZu9zHkjAEM,1304
80
- neurostats_API/transformers/daily_chip/__init__.py,sha256=e-yvQ94J3dkzRbhZwOiAkyt_ub9bRQ7pAVDbO-61Grw,43
83
+ neurostats_API/transformers/daily_chip/__init__.py,sha256=-9y52t5cSvLq3ve9STe_Qhqa6iiCO0x78UUNG9qJ-IU,102
81
84
  neurostats_API/transformers/daily_chip/base.py,sha256=KBsnpACakJh2W-k4Kvv-dVNnSNbUCGMeqvQsTQkz-aE,184
82
85
  neurostats_API/transformers/daily_chip/tej.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
83
86
  neurostats_API/transformers/daily_chip/twse_chip.py,sha256=miMu5Si0tFndznf7E_T26c1hYtNqwHplbuB3htVzeGQ,14655
87
+ neurostats_API/transformers/daily_chip/us.py,sha256=t1vGcdXu5ZlyMYO7sKW-NX4akd_hrvsZo0cQYDdqvbU,1966
84
88
  neurostats_API/transformers/daily_chip/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
85
89
  neurostats_API/transformers/daily_chip/utils/institution.py,sha256=1Zj9mxIhvwkmA599a1OYmdorPEAN_U3sl8uhvddxUW0,3384
86
90
  neurostats_API/transformers/daily_chip/utils/margin_trading.py,sha256=oVY_OW63pcSc1TyM_jSPNAoj4HLyZCRshkdsHQsnxyk,38
@@ -108,14 +112,14 @@ neurostats_API/transformers/value/__init__.py,sha256=D8qMk0aLsv7CBBJHo5zsq_UuBKm
108
112
  neurostats_API/transformers/value/base.py,sha256=wR2LDiwGET126mwrPxYoApyl4lwx1MjWxFpOKLso_As,186
109
113
  neurostats_API/transformers/value/tej.py,sha256=csk0kLCrvXN7T_j9KkvXRRJreWZK6t3bYlPEfWcfBTo,244
110
114
  neurostats_API/transformers/value/twse.py,sha256=uNGLkxCIfQhzRkalSn6o2kgPT-uw41KGTL6s3e7SneI,1429
111
- neurostats_API/utils/__init__.py,sha256=ZPLgh-MNOhskDhWzabLXAyZIjwJgX-sE5YlWJHEWfUw,222
115
+ neurostats_API/utils/__init__.py,sha256=pmOZSjSJ8434GbofV1Wx4GAzcDabOK80LFVS4y3T6-A,223
112
116
  neurostats_API/utils/calculate_value.py,sha256=ioPV5VWitJ2NylBi5vwfs-payAUYxWhAiS7aaJjzQKQ,4305
113
117
  neurostats_API/utils/data_process.py,sha256=cD1Vzv8oDpsd1Y7qCALTyM-AP1nkwqhfOgDY0KQpXec,10442
114
118
  neurostats_API/utils/datetime.py,sha256=XJya4G8b_-ZOaBbMXgQjWh2MC4wc-o6goQ7EQJQMWrQ,773
115
119
  neurostats_API/utils/db_client.py,sha256=OYe6yazcR4Aa6jYmy47JrryUeh2NnKGqY2K_lSZe6i8,455
116
120
  neurostats_API/utils/exception.py,sha256=yv92GVh5uHV1BgRmO4DwJcX_PtE0-TSgQoo3VnZ5hOQ,277
117
121
  neurostats_API/utils/logger.py,sha256=egBiiPGTi5l1FoX_o6EvdGh81R0_k8hFPctSxq8RCoo,693
118
- neurostats_API-1.0.0rc6.dist-info/METADATA,sha256=cYiiQtKB6WO18_7IjI9-R_47cJ1zbrYcEPv3pT99M_M,2964
119
- neurostats_API-1.0.0rc6.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
120
- neurostats_API-1.0.0rc6.dist-info/top_level.txt,sha256=nSlQPMG0VtXivJyedp4Bkf86EOy2TpW10VGxolXrqnU,15
121
- neurostats_API-1.0.0rc6.dist-info/RECORD,,
122
+ neurostats_API-1.0.2rc1.dist-info/METADATA,sha256=3wWTuXmARFNpWZvrk1lwRdcVVWOAJ62UXeaLXX-sD_8,2964
123
+ neurostats_API-1.0.2rc1.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
124
+ neurostats_API-1.0.2rc1.dist-info/top_level.txt,sha256=nSlQPMG0VtXivJyedp4Bkf86EOy2TpW10VGxolXrqnU,15
125
+ neurostats_API-1.0.2rc1.dist-info/RECORD,,