neurostats-API 0.0.19__tar.gz → 0.0.20__tar.gz
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-0.0.19 → neurostats_api-0.0.20}/PKG-INFO +14 -12
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/README.md +12 -10
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/__init__.py +1 -1
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/base.py +23 -30
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/tech.py +1 -1
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/tej_finance_report.py +1 -1
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/PKG-INFO +14 -12
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/requires.txt +1 -1
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/setup.py +2 -2
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/MANIFEST.in +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/cli.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/__init__.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/balance_sheet.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/cash_flow.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/finance_overview.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/institution.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/margin_trading.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/month_revenue.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/profit_lose.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/fetchers/value_invest.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/main.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/balance_sheet.yaml +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/cash_flow_percentage.yaml +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/finance_overview_dict.yaml +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/profit_lose.yaml +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/seasonal_data_field_dict.txt +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/tej_db_index.yaml +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/__init__.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/calculate_value.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/data_process.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/datetime.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/db_client.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/utils/fetcher.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/SOURCES.txt +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/dependency_links.txt +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/top_level.txt +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/setup.cfg +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/test/test_fetchers.py +0 -0
- {neurostats_api-0.0.19 → neurostats_api-0.0.20}/test/test_tej.py +0 -0
@@ -1,13 +1,13 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.20
|
4
4
|
Summary: The service of NeuroStats website
|
5
5
|
Home-page: https://github.com/NeurowattStats/NeuroStats_API.git
|
6
6
|
Author: JasonWang@Neurowatt
|
7
7
|
Author-email: jason@neurowatt.ai
|
8
8
|
Requires-Python: >=3.6
|
9
9
|
Description-Content-Type: text/markdown
|
10
|
-
Requires-Dist: numpy
|
10
|
+
Requires-Dist: numpy
|
11
11
|
Requires-Dist: pandas>=2.2.0
|
12
12
|
Requires-Dist: pymongo
|
13
13
|
Requires-Dist: pytz
|
@@ -728,6 +728,7 @@ data = fetcher.get(
|
|
728
728
|
#### 回傳資料
|
729
729
|
##### `YOY_NOCAL` 與 `QOQ_NOCAL`
|
730
730
|
為回傳`pd.DataFrame`,column名稱為<年份>Q<季>, row名稱為指定財報項目
|
731
|
+
|
731
732
|
```Python
|
732
733
|
# fetch_mode = fetcher.FetchMode.QOQ_NOCAL
|
733
734
|
2024Q3 2024Q2 2024Q1
|
@@ -742,17 +743,18 @@ bp51 3.111298e+09 3.173919e+09 2.453840e+09
|
|
742
743
|
|
743
744
|
##### `YOY` 與 `QOQ`
|
744
745
|
回傳為`Dict[pd.DataFrame]`, key 為指定的index, DataFrame中則是該index歷年的數值與成長率
|
746
|
+
成長率單位為`%`
|
745
747
|
```Python
|
746
748
|
# fetch_mode = fetcher.FetchMode.QOQ
|
747
749
|
{
|
748
750
|
'bp41':
|
749
751
|
2024Q3 2024Q2 2024Q1
|
750
752
|
value 7.082005e+07 6.394707e+07 5.761001e+07
|
751
|
-
growth 1.074791e
|
753
|
+
growth 1.074791e+01 1.099994e+01 5.532101e-01,
|
752
754
|
'bp51':
|
753
755
|
2024Q3 2024Q2 2024Q1
|
754
756
|
value 3.111298e+09 3.145373e+09 3.091985e+09
|
755
|
-
growth -1.083335e
|
757
|
+
growth -1.083335e+00 1.726663e+00 -4.159542e-01
|
756
758
|
}
|
757
759
|
|
758
760
|
# fetch_mode = fetcher.FetchMode.YOY
|
@@ -760,17 +762,17 @@ growth -1.083335e-02 1.726663e-02 -4.159542e-03
|
|
760
762
|
'bp41':
|
761
763
|
2024Q3 2023Q3 2022Q3
|
762
764
|
value 7.082005e+07 5.377231e+07 6.201822e+07
|
763
|
-
YoY_1
|
764
|
-
YoY_3 1.729171e
|
765
|
-
YoY_5 1.389090e
|
766
|
-
YoY_10 1.255138e
|
765
|
+
YoY_1 3.170357e+01 -1.329596e+01 4.130744e+01
|
766
|
+
YoY_3 1.729171e+01 9.556684e+00 1.883274e+01
|
767
|
+
YoY_5 1.389090e+01 1.215242e+01 1.642914e+01
|
768
|
+
YoY_10 1.255138e+01 1.356297e+01 1.559702e+01
|
767
769
|
'bp51':
|
768
770
|
2024Q3 2023Q3 2022Q3
|
769
771
|
value 3.111298e+09 3.173919e+09 2.453840e+09
|
770
|
-
YoY_1
|
771
|
-
YoY_3 1.866752e
|
772
|
-
YoY_5 2.068132e
|
773
|
-
YoY_10 1.420500e
|
772
|
+
YoY_1 -1.972987e+00 2.934499e+01 3.179539e+01
|
773
|
+
YoY_3 1.866752e+01 2.766851e+01 2.638677e+01
|
774
|
+
YoY_5 2.068132e+01 2.479698e+01 1.815106e+01
|
775
|
+
YoY_10 1.420500e+01 1.586797e+01 1.551364e+01
|
774
776
|
}
|
775
777
|
```
|
776
778
|
|
@@ -712,6 +712,7 @@ data = fetcher.get(
|
|
712
712
|
#### 回傳資料
|
713
713
|
##### `YOY_NOCAL` 與 `QOQ_NOCAL`
|
714
714
|
為回傳`pd.DataFrame`,column名稱為<年份>Q<季>, row名稱為指定財報項目
|
715
|
+
|
715
716
|
```Python
|
716
717
|
# fetch_mode = fetcher.FetchMode.QOQ_NOCAL
|
717
718
|
2024Q3 2024Q2 2024Q1
|
@@ -726,17 +727,18 @@ bp51 3.111298e+09 3.173919e+09 2.453840e+09
|
|
726
727
|
|
727
728
|
##### `YOY` 與 `QOQ`
|
728
729
|
回傳為`Dict[pd.DataFrame]`, key 為指定的index, DataFrame中則是該index歷年的數值與成長率
|
730
|
+
成長率單位為`%`
|
729
731
|
```Python
|
730
732
|
# fetch_mode = fetcher.FetchMode.QOQ
|
731
733
|
{
|
732
734
|
'bp41':
|
733
735
|
2024Q3 2024Q2 2024Q1
|
734
736
|
value 7.082005e+07 6.394707e+07 5.761001e+07
|
735
|
-
growth 1.074791e
|
737
|
+
growth 1.074791e+01 1.099994e+01 5.532101e-01,
|
736
738
|
'bp51':
|
737
739
|
2024Q3 2024Q2 2024Q1
|
738
740
|
value 3.111298e+09 3.145373e+09 3.091985e+09
|
739
|
-
growth -1.083335e
|
741
|
+
growth -1.083335e+00 1.726663e+00 -4.159542e-01
|
740
742
|
}
|
741
743
|
|
742
744
|
# fetch_mode = fetcher.FetchMode.YOY
|
@@ -744,17 +746,17 @@ growth -1.083335e-02 1.726663e-02 -4.159542e-03
|
|
744
746
|
'bp41':
|
745
747
|
2024Q3 2023Q3 2022Q3
|
746
748
|
value 7.082005e+07 5.377231e+07 6.201822e+07
|
747
|
-
YoY_1
|
748
|
-
YoY_3 1.729171e
|
749
|
-
YoY_5 1.389090e
|
750
|
-
YoY_10 1.255138e
|
749
|
+
YoY_1 3.170357e+01 -1.329596e+01 4.130744e+01
|
750
|
+
YoY_3 1.729171e+01 9.556684e+00 1.883274e+01
|
751
|
+
YoY_5 1.389090e+01 1.215242e+01 1.642914e+01
|
752
|
+
YoY_10 1.255138e+01 1.356297e+01 1.559702e+01
|
751
753
|
'bp51':
|
752
754
|
2024Q3 2023Q3 2022Q3
|
753
755
|
value 3.111298e+09 3.173919e+09 2.453840e+09
|
754
|
-
YoY_1
|
755
|
-
YoY_3 1.866752e
|
756
|
-
YoY_5 2.068132e
|
757
|
-
YoY_10 1.420500e
|
756
|
+
YoY_1 -1.972987e+00 2.934499e+01 3.179539e+01
|
757
|
+
YoY_3 1.866752e+01 2.766851e+01 2.638677e+01
|
758
|
+
YoY_5 2.068132e+01 2.479698e+01 1.815106e+01
|
759
|
+
YoY_10 1.420500e+01 1.586797e+01 1.551364e+01
|
758
760
|
}
|
759
761
|
```
|
760
762
|
|
@@ -81,10 +81,14 @@ class BaseTEJFetcher(abc.ABC):
|
|
81
81
|
|
82
82
|
def get_latest_data_time(self, ticker):
|
83
83
|
latest_data = self.collection.find_one(
|
84
|
-
{
|
84
|
+
{
|
85
|
+
"ticker": ticker
|
86
|
+
},
|
87
|
+
{
|
85
88
|
"last_update": 1,
|
86
89
|
"_id": 0
|
87
|
-
}
|
90
|
+
}
|
91
|
+
)
|
88
92
|
|
89
93
|
try:
|
90
94
|
latest_date = latest_data['last_update']["latest_data_date"]
|
@@ -116,9 +120,8 @@ class BaseTEJFetcher(abc.ABC):
|
|
116
120
|
try:
|
117
121
|
past_year = year - shift
|
118
122
|
last_value = data_dict[f"{past_year}Q{season}"][key]
|
119
|
-
temp_dict[
|
120
|
-
|
121
|
-
this_value, last_value, delta=shift)
|
123
|
+
temp_dict[f"YoY_{shift}"] = YoY_Calculator.cal_growth(
|
124
|
+
this_value, last_value, delta=shift) * 100
|
122
125
|
except Exception as e:
|
123
126
|
temp_dict[f"YoY_{shift}"] = None
|
124
127
|
|
@@ -160,7 +163,7 @@ class BaseTEJFetcher(abc.ABC):
|
|
160
163
|
key]['value']
|
161
164
|
|
162
165
|
temp_dict['growth'] = YoY_Calculator.cal_growth(
|
163
|
-
this_value, last_value, delta=1)
|
166
|
+
this_value, last_value, delta=1) * 100
|
164
167
|
except Exception as e:
|
165
168
|
temp_dict['growth'] = None
|
166
169
|
|
@@ -180,31 +183,21 @@ class BaseTEJFetcher(abc.ABC):
|
|
180
183
|
return data_dict
|
181
184
|
|
182
185
|
def set_time_shift(self, date: Union[str, datetime], period: str):
|
183
|
-
if
|
186
|
+
if isinstance(date, str):
|
184
187
|
date = datetime.strptime(date, "%Y-%m-%d")
|
185
|
-
if (period == '1d'):
|
186
|
-
return date - timedelta(days=1)
|
187
|
-
|
188
|
-
elif (period == '7d'):
|
189
|
-
return date - timedelta(days=7)
|
190
|
-
|
191
|
-
elif (period == '1m'):
|
192
|
-
return date - timedelta(days=30)
|
193
|
-
|
194
|
-
elif (period == '3m'):
|
195
|
-
return date - timedelta(days=90)
|
196
188
|
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
return date - timedelta(days=365 * 10)
|
189
|
+
period_mapping = {
|
190
|
+
"1d": timedelta(days=1),
|
191
|
+
"7d": timedelta(days=7),
|
192
|
+
"1m": timedelta(days=30),
|
193
|
+
"3m": timedelta(days=90),
|
194
|
+
"1y": timedelta(days=365),
|
195
|
+
"3y": timedelta(days=365 * 3),
|
196
|
+
"5y": timedelta(days=365 * 5),
|
197
|
+
"10y": timedelta(days=365 * 10),
|
198
|
+
}
|
208
199
|
|
209
|
-
|
200
|
+
if period == "all":
|
210
201
|
return datetime.strptime("1991-01-01", "%Y-%m-%d")
|
202
|
+
|
203
|
+
return date - period_mapping.get(period, timedelta(days=0)) # 預設為不變
|
@@ -1,13 +1,13 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.20
|
4
4
|
Summary: The service of NeuroStats website
|
5
5
|
Home-page: https://github.com/NeurowattStats/NeuroStats_API.git
|
6
6
|
Author: JasonWang@Neurowatt
|
7
7
|
Author-email: jason@neurowatt.ai
|
8
8
|
Requires-Python: >=3.6
|
9
9
|
Description-Content-Type: text/markdown
|
10
|
-
Requires-Dist: numpy
|
10
|
+
Requires-Dist: numpy
|
11
11
|
Requires-Dist: pandas>=2.2.0
|
12
12
|
Requires-Dist: pymongo
|
13
13
|
Requires-Dist: pytz
|
@@ -728,6 +728,7 @@ data = fetcher.get(
|
|
728
728
|
#### 回傳資料
|
729
729
|
##### `YOY_NOCAL` 與 `QOQ_NOCAL`
|
730
730
|
為回傳`pd.DataFrame`,column名稱為<年份>Q<季>, row名稱為指定財報項目
|
731
|
+
|
731
732
|
```Python
|
732
733
|
# fetch_mode = fetcher.FetchMode.QOQ_NOCAL
|
733
734
|
2024Q3 2024Q2 2024Q1
|
@@ -742,17 +743,18 @@ bp51 3.111298e+09 3.173919e+09 2.453840e+09
|
|
742
743
|
|
743
744
|
##### `YOY` 與 `QOQ`
|
744
745
|
回傳為`Dict[pd.DataFrame]`, key 為指定的index, DataFrame中則是該index歷年的數值與成長率
|
746
|
+
成長率單位為`%`
|
745
747
|
```Python
|
746
748
|
# fetch_mode = fetcher.FetchMode.QOQ
|
747
749
|
{
|
748
750
|
'bp41':
|
749
751
|
2024Q3 2024Q2 2024Q1
|
750
752
|
value 7.082005e+07 6.394707e+07 5.761001e+07
|
751
|
-
growth 1.074791e
|
753
|
+
growth 1.074791e+01 1.099994e+01 5.532101e-01,
|
752
754
|
'bp51':
|
753
755
|
2024Q3 2024Q2 2024Q1
|
754
756
|
value 3.111298e+09 3.145373e+09 3.091985e+09
|
755
|
-
growth -1.083335e
|
757
|
+
growth -1.083335e+00 1.726663e+00 -4.159542e-01
|
756
758
|
}
|
757
759
|
|
758
760
|
# fetch_mode = fetcher.FetchMode.YOY
|
@@ -760,17 +762,17 @@ growth -1.083335e-02 1.726663e-02 -4.159542e-03
|
|
760
762
|
'bp41':
|
761
763
|
2024Q3 2023Q3 2022Q3
|
762
764
|
value 7.082005e+07 5.377231e+07 6.201822e+07
|
763
|
-
YoY_1
|
764
|
-
YoY_3 1.729171e
|
765
|
-
YoY_5 1.389090e
|
766
|
-
YoY_10 1.255138e
|
765
|
+
YoY_1 3.170357e+01 -1.329596e+01 4.130744e+01
|
766
|
+
YoY_3 1.729171e+01 9.556684e+00 1.883274e+01
|
767
|
+
YoY_5 1.389090e+01 1.215242e+01 1.642914e+01
|
768
|
+
YoY_10 1.255138e+01 1.356297e+01 1.559702e+01
|
767
769
|
'bp51':
|
768
770
|
2024Q3 2023Q3 2022Q3
|
769
771
|
value 3.111298e+09 3.173919e+09 2.453840e+09
|
770
|
-
YoY_1
|
771
|
-
YoY_3 1.866752e
|
772
|
-
YoY_5 2.068132e
|
773
|
-
YoY_10 1.420500e
|
772
|
+
YoY_1 -1.972987e+00 2.934499e+01 3.179539e+01
|
773
|
+
YoY_3 1.866752e+01 2.766851e+01 2.638677e+01
|
774
|
+
YoY_5 2.068132e+01 2.479698e+01 1.815106e+01
|
775
|
+
YoY_10 1.420500e+01 1.586797e+01 1.551364e+01
|
774
776
|
}
|
775
777
|
```
|
776
778
|
|
@@ -2,11 +2,11 @@ from setuptools import setup, find_packages
|
|
2
2
|
|
3
3
|
setup(
|
4
4
|
name='neurostats_API',
|
5
|
-
version='0.0.
|
5
|
+
version='0.0.20',
|
6
6
|
long_description=open('README.md', 'r', encoding='utf-8').read(),
|
7
7
|
long_description_content_type='text/markdown',
|
8
8
|
install_requires=[
|
9
|
-
"numpy
|
9
|
+
"numpy",
|
10
10
|
"pandas>=2.2.0",
|
11
11
|
"pymongo",
|
12
12
|
"pytz",
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/cash_flow_percentage.yaml
RENAMED
File without changes
|
{neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/finance_overview_dict.yaml
RENAMED
File without changes
|
File without changes
|
{neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API/tools/seasonal_data_field_dict.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-0.0.19 → neurostats_api-0.0.20}/neurostats_API.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|