neurostats-API 1.0.0rc6__tar.gz → 1.0.1rc1__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-1.0.0rc6 → neurostats_api-1.0.1rc1}/PKG-INFO +2 -2
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/README.md +1 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/__init__.py +1 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/__init__.py +1 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/__init__.py +1 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/base.py +11 -4
- neurostats_api-1.0.1rc1/neurostats_API/async_mode/db_extractors/daily/us_chip.py +66 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/extractor_factory.py +14 -2
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/__init__.py +2 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/finance_overview.py +0 -5
- neurostats_api-1.0.1rc1/neurostats_API/async_mode/fetchers/us_chip.py +46 -0
- neurostats_api-1.0.1rc1/neurostats_API/config/company_list/ticker_to_cik.json +12086 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/finance_overview.py +3 -9
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/__init__.py +2 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/__init__.py +1 -0
- neurostats_api-1.0.1rc1/neurostats_API/transformers/daily_chip/us.py +40 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/__init__.py +1 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/PKG-INFO +2 -2
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/SOURCES.txt +4 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/setup.py +1 -1
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/test/test_async_fetcher.py +27 -3
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/MANIFEST.in +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/tej.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/us.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/tej_chip.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/tej_tech.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/twse_chip.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/value.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/yf.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/balance_sheet.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/cashflow.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/tej.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/transformer_factory.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/balance_sheet.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/cash_flow.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/month_revenue.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/profit_lose.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tech.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/seasonal_data.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/tech.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/twse_institution.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/twse_margin.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/value.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/cli.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/ticker_index_industry_map.json +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/tw.json +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/us.json +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/us_TradingView_list.json +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_index.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_percent_index.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_skip_index.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_thousand_index.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/balance_sheet.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/cash_flow_percentage.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/finance_overview_dict.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/profit_lose.yaml +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/seasonal_data_field_dict.txt +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/balance_sheet.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/cash_flow.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/institution.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/margin_trading.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/month_revenue.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/profit_lose.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/tech.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/tej_finance_report.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/value_invest.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/main.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/us.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/us.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/tej.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/twse_chip.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/institution.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/margin_trading.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/security_lending.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/tech.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/utils/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/utils/processor.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/agent_overview.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/stats_overview.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/us.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/finance_statement.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/__init__.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/base.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/tej.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/twse.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/calculate_value.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/data_process.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/datetime.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/db_client.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/exception.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/logger.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/dependency_links.txt +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/requires.txt +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/top_level.txt +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/setup.cfg +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/test/test_fetchers.py +0 -0
- {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/test/test_tej.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.1rc1
|
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.
|
74
|
+
1.0.0
|
75
75
|
```
|
76
76
|
|
77
77
|
### 下載舊版
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from ..base import BaseDBExtractor
|
2
|
-
from datetime import datetime
|
2
|
+
from datetime import datetime, timezone
|
3
3
|
from neurostats_API.utils import NotSupportedError
|
4
4
|
from pymongo import ASCENDING, DESCENDING
|
5
5
|
|
@@ -73,16 +73,23 @@ class BaseDailyTechDBExtractor(BaseDBExtractor):
|
|
73
73
|
|
74
74
|
return query
|
75
75
|
|
76
|
-
def _transform_date(self, date):
|
76
|
+
def _transform_date(self, date, use_UTC = False):
|
77
77
|
if (isinstance(date, str)):
|
78
78
|
try:
|
79
|
-
|
79
|
+
date = datetime.strptime(date, "%Y-%m-%d")
|
80
|
+
if (use_UTC):
|
81
|
+
date = date.astimezone(tz = timezone.utc)
|
82
|
+
return date
|
80
83
|
except Exception as e:
|
84
|
+
print(e)
|
81
85
|
raise ValueError(
|
82
86
|
"date string format imcompatible, should be \"YYYY-MM-DD\""
|
83
87
|
)
|
84
88
|
elif (isinstance(date, datetime)):
|
85
|
-
|
89
|
+
if (use_UTC):
|
90
|
+
return date.astimezone(tz = timezone.utc)
|
91
|
+
else:
|
92
|
+
return date
|
86
93
|
else:
|
87
94
|
raise ValueError(
|
88
95
|
"date type imcompatible, should be string(\"YYYY-MM-DD\") or datetime.datetime"
|
@@ -0,0 +1,66 @@
|
|
1
|
+
from datetime import datetime, timedelta
|
2
|
+
from pymongo import ASCENDING, DESCENDING
|
3
|
+
from .base import BaseDailyTechDBExtractor
|
4
|
+
from neurostats_API.utils import (
|
5
|
+
NotSupportedError, StatsProcessor
|
6
|
+
)
|
7
|
+
|
8
|
+
|
9
|
+
class AsyncUS_F13DBExtractor(BaseDailyTechDBExtractor):
|
10
|
+
|
11
|
+
def __init__(self, ticker, client, managerTicker=None):
|
12
|
+
"""
|
13
|
+
ticker: Issuer Ticker, 被持有的股票代碼
|
14
|
+
managerTicker: 持有者的股票代碼
|
15
|
+
"""
|
16
|
+
super().__init__(ticker, client)
|
17
|
+
self.issuerTicker = ticker
|
18
|
+
self.managerTicker = managerTicker
|
19
|
+
|
20
|
+
if (self.get_zone() not in ['us']):
|
21
|
+
raise NotSupportedError("Supports US Company Only")
|
22
|
+
|
23
|
+
def _get_collection_name(self):
|
24
|
+
self.collection_name_map = {"us": "us_F13"}
|
25
|
+
|
26
|
+
return self.collection_name_map.get(self.zone, None)
|
27
|
+
|
28
|
+
def _prepare_query(self, start_date=None, end_date=None, get_latest=False):
|
29
|
+
query = {"issuerTicker": self.issuerTicker}
|
30
|
+
|
31
|
+
if (self.managerTicker):
|
32
|
+
query.update(
|
33
|
+
{
|
34
|
+
"managerTicker": self.managerTicker
|
35
|
+
}
|
36
|
+
)
|
37
|
+
|
38
|
+
query = self._update_query_with_date(query, start_date, end_date)
|
39
|
+
|
40
|
+
projection = {
|
41
|
+
"_id": 0,
|
42
|
+
}
|
43
|
+
|
44
|
+
if (get_latest):
|
45
|
+
sort = [("reportDate", DESCENDING)]
|
46
|
+
else:
|
47
|
+
sort = [("reportDate", ASCENDING)]
|
48
|
+
|
49
|
+
return query, projection, sort
|
50
|
+
|
51
|
+
def _update_query_with_date(self, query, start_date, end_date):
|
52
|
+
start_date = self._transform_date(start_date)
|
53
|
+
end_date = self._transform_date(end_date)
|
54
|
+
|
55
|
+
date_range = {"$gte": start_date, "$lte": end_date}
|
56
|
+
|
57
|
+
query.update({"reportDate": date_range})
|
58
|
+
|
59
|
+
return query
|
60
|
+
|
61
|
+
async def query_data(
|
62
|
+
self, start_date=None, end_date=None, get_latest=False
|
63
|
+
):
|
64
|
+
result = await super().query_data(start_date, end_date, get_latest)
|
65
|
+
|
66
|
+
return result
|
@@ -5,7 +5,7 @@ from neurostats_API.async_mode.db_extractors import (
|
|
5
5
|
AsyncTWSEChipDBExtractor, AsyncTWSEMonthlyRevenueExtractor,
|
6
6
|
AsyncBalanceSheetExtractor, AsyncProfitLoseExtractor,
|
7
7
|
AsyncCashFlowExtractor, AsyncTEJFinanceStatementDBExtractor,
|
8
|
-
AsyncTEJSelfSettlementDBExtractor
|
8
|
+
AsyncTEJSelfSettlementDBExtractor, AsyncUS_F13DBExtractor
|
9
9
|
)
|
10
10
|
from neurostats_API.utils import NotSupportedError
|
11
11
|
|
@@ -139,7 +139,19 @@ EXTRACTOR_MAP: dict[str, ExtractorConfig] = {
|
|
139
139
|
DB_collection: twse_daily_share_price
|
140
140
|
TWSE的評價面
|
141
141
|
"""
|
142
|
-
}
|
142
|
+
},
|
143
|
+
|
144
|
+
|
145
|
+
"US_Chip_F13": {
|
146
|
+
"class_":
|
147
|
+
AsyncUS_F13DBExtractor,
|
148
|
+
"default_kwargs": {},
|
149
|
+
"description":
|
150
|
+
"""
|
151
|
+
DB_collection: "us_F13_flat"
|
152
|
+
US籌碼面(F13)
|
153
|
+
"""
|
154
|
+
},
|
143
155
|
}
|
144
156
|
|
145
157
|
|
{neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/__init__.py
RENAMED
@@ -7,4 +7,5 @@ from .twse_margin import AsyncTWSEMarginFetcher
|
|
7
7
|
from .month_revenue import AsyncMonthlyRevenueFetcher
|
8
8
|
from .profit_lose import AsyncProfitLoseFetcher
|
9
9
|
from .value import AsyncTWSEStatsValueFetcher
|
10
|
-
from .tej import AsyncTEJDailyTechFetcher, AsyncTEJSeasonalFetcher
|
10
|
+
from .tej import AsyncTEJDailyTechFetcher, AsyncTEJSeasonalFetcher
|
11
|
+
from .us_chip import AsyncUSChipF13Fetcher
|
@@ -0,0 +1,46 @@
|
|
1
|
+
from .base import AsyncBaseFetcher
|
2
|
+
from ..db_extractors import (
|
3
|
+
AsyncDailyValueDBExtractor, AsyncTEJDailyValueDBExtractor
|
4
|
+
)
|
5
|
+
from neurostats_API.async_mode.factory import get_extractor
|
6
|
+
from neurostats_API.transformers import US_F13_Transformer
|
7
|
+
from neurostats_API.utils import NotSupportedError
|
8
|
+
|
9
|
+
|
10
|
+
class AsyncUSChipF13Fetcher(AsyncBaseFetcher):
|
11
|
+
def __init__(self,
|
12
|
+
ticker,
|
13
|
+
client,
|
14
|
+
managerTicker = None,
|
15
|
+
):
|
16
|
+
self.issuerTicker = ticker
|
17
|
+
self.managerTicker = managerTicker
|
18
|
+
self.transformer_map = {"us": US_F13_Transformer}
|
19
|
+
try:
|
20
|
+
self.extractor = get_extractor(
|
21
|
+
"US_Chip_F13", ticker, client, managerTicker=self.managerTicker
|
22
|
+
)
|
23
|
+
|
24
|
+
company_name = self.extractor.get_company_name()
|
25
|
+
zone = self.extractor.get_zone()
|
26
|
+
|
27
|
+
transformer = self.get_transformer(zone)
|
28
|
+
self.transformer = transformer(ticker, company_name, zone)
|
29
|
+
|
30
|
+
except NotSupportedError as e:
|
31
|
+
raise NotSupportedError(
|
32
|
+
f"{self.__class__.__name__} only support {list(self.transformer_map.keys())} companies now, {ticker} is not available"
|
33
|
+
) from e
|
34
|
+
|
35
|
+
async def query_data(
|
36
|
+
self, start_date=None, end_date=None, get_latest=False
|
37
|
+
):
|
38
|
+
fetched_data = await self.extractor.query_data(
|
39
|
+
start_date, end_date, get_latest
|
40
|
+
)
|
41
|
+
|
42
|
+
transformed_data = self.transformer.process_transform(
|
43
|
+
fetched_data
|
44
|
+
)
|
45
|
+
|
46
|
+
return transformed_data
|