neurostats-API 1.0.2rc3__tar.gz → 1.0.3rc1__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.2rc3 → neurostats_api-1.0.3rc1}/PKG-INFO +2 -2
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/README.md +1 -1
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/__init__.py +3 -2
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/__init__.py +3 -1
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/__init__.py +3 -1
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/__init__.py +2 -1
- neurostats_api-1.0.3rc1/neurostats_API/async_mode/db_extractors/daily/tej_tech.py +86 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/factory/extractor_factory.py +16 -7
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/__init__.py +2 -2
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/tech.py +30 -3
- neurostats_api-1.0.3rc1/neurostats_API/async_mode/fetchers/tej/__init__.py +3 -0
- neurostats_api-1.0.3rc1/neurostats_API/async_mode/fetchers/tej/chip.py +42 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/tej/tech.py +17 -9
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/__init__.py +5 -2
- neurostats_api-1.0.3rc1/neurostats_API/transformers/daily_tech/__init__.py +1 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/tech.py +34 -3
- neurostats_api-1.0.3rc1/neurostats_API/transformers/tej/__init__.py +3 -0
- neurostats_api-1.0.3rc1/neurostats_API/transformers/tej/chip.py +23 -0
- neurostats_api-1.0.3rc1/neurostats_API/transformers/tej/tech.py +24 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/PKG-INFO +2 -2
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/SOURCES.txt +2 -1
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/setup.py +1 -1
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/test/test_async_fetcher.py +21 -1
- neurostats_api-1.0.2rc3/neurostats_API/async_mode/db_extractors/daily/tej_tech.py +0 -12
- neurostats_api-1.0.2rc3/neurostats_API/async_mode/fetchers/tej/__init__.py +0 -2
- neurostats_api-1.0.2rc3/neurostats_API/transformers/daily_chip/tej.py +0 -0
- neurostats_api-1.0.2rc3/neurostats_API/transformers/daily_tech/__init__.py +0 -1
- neurostats_api-1.0.2rc3/neurostats_API/transformers/tej/__init__.py +0 -1
- neurostats_api-1.0.2rc3/neurostats_API/transformers/tej/chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/MANIFEST.in +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/tej.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/us.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/tej_chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/twse_chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/us_chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/value.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/daily/yf.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/month_revenue/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/month_revenue/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/month_revenue/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/balance_sheet.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/cashflow.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/seasonal/tej.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/factory/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/factory/transformer_factory.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/balance_sheet.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/cash_flow.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/finance_overview.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/month_revenue.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/profit_lose.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/tej/seasonal_data.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/twse_institution.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/twse_margin.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/us_chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/value.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/cli.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/ticker_index_industry_map.json +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/ticker_to_cik.json +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/tw.json +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/us.json +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/us_TradingView_list.json +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/tej_db/tej_db_index.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/tej_db/tej_db_percent_index.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/tej_db/tej_db_skip_index.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/tej_db/tej_db_thousand_index.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/balance_sheet.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/cash_flow_percentage.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/finance_overview_dict.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/profit_lose.yaml +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/seasonal_data_field_dict.txt +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/balance_sheet.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/cash_flow.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/finance_overview.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/institution.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/margin_trading.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/month_revenue.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/profit_lose.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/tech.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/tej_finance_report.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/value_invest.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/main.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/balance_sheet/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/balance_sheet/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/balance_sheet/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/balance_sheet/us.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/us.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/twse_chip.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/us.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/utils/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/utils/institution.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/utils/margin_trading.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/utils/security_lending.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/utils/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/utils/processor.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/finance_overview/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/finance_overview/agent_overview.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/finance_overview/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/finance_overview/stats_overview.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/month_revenue/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/month_revenue/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/month_revenue/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/us.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/tej/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/tej/finance_statement.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/base.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/tej.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/twse.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/__init__.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/calculate_value.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/data_process.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/datetime.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/db_client.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/exception.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/utils/logger.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/dependency_links.txt +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/requires.txt +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/top_level.txt +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/setup.cfg +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/test/test_fetchers.py +0 -0
- {neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/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.3rc1
|
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.3rc1
|
75
75
|
```
|
76
76
|
|
77
77
|
### 下載舊版
|
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__='1.0.
|
1
|
+
__version__='1.0.3rc1'
|
2
2
|
|
3
3
|
from .fetchers import (
|
4
4
|
AgentFinanceOverviewFetcher,
|
@@ -26,5 +26,6 @@ from .async_mode import (
|
|
26
26
|
AsyncTWSEInstitutionFetcher,
|
27
27
|
AsyncTWSEMarginFetcher,
|
28
28
|
AsyncTWSEStatsValueFetcher,
|
29
|
-
AsyncUSCelebrityFetcher
|
29
|
+
AsyncUSCelebrityFetcher,
|
30
|
+
AsyncBatchTechFetcher
|
30
31
|
)
|
@@ -5,10 +5,12 @@ from .fetchers import (
|
|
5
5
|
AsyncFinanceOverviewFetcher,
|
6
6
|
AsyncMonthlyRevenueFetcher,
|
7
7
|
AsyncProfitLoseFetcher,
|
8
|
+
AsyncTEJChipFetcher,
|
8
9
|
AsyncTechFetcher,
|
9
10
|
AsyncTEJSeasonalFetcher,
|
10
11
|
AsyncTWSEInstitutionFetcher,
|
11
12
|
AsyncTWSEMarginFetcher,
|
12
13
|
AsyncTWSEStatsValueFetcher,
|
13
|
-
AsyncUSCelebrityFetcher
|
14
|
+
AsyncUSCelebrityFetcher,
|
15
|
+
AsyncBatchTechFetcher
|
14
16
|
)
|
@@ -1,11 +1,13 @@
|
|
1
1
|
from .daily import (
|
2
|
+
AsyncTEJDailyChipDBExtractor,
|
2
3
|
AsyncTEJDailyTechDBExtractor,
|
3
4
|
AsyncYFDailyTechDBExtractor,
|
4
5
|
AsyncDailyValueDBExtractor,
|
5
6
|
AsyncTEJDailyValueDBExtractor,
|
6
7
|
AsyncTWSEChipDBExtractor,
|
7
8
|
AsyncUS_F13DBExtractor,
|
8
|
-
AsyncUS_CelebrityDBExtractor
|
9
|
+
AsyncUS_CelebrityDBExtractor,
|
10
|
+
AsyncBatchTechDBExtractor
|
9
11
|
)
|
10
12
|
|
11
13
|
from .month_revenue import (
|
@@ -1,4 +1,5 @@
|
|
1
|
-
from .
|
1
|
+
from .tej_chip import AsyncTEJDailyChipDBExtractor
|
2
|
+
from .tej_tech import AsyncTEJDailyTechDBExtractor, AsyncBatchTechDBExtractor
|
2
3
|
from .twse_chip import AsyncTWSEChipDBExtractor
|
3
4
|
from .value import (
|
4
5
|
AsyncDailyValueDBExtractor,
|
@@ -0,0 +1,86 @@
|
|
1
|
+
from .base import BaseDailyTechDBExtractor
|
2
|
+
from pymongo import AsyncMongoClient, ASCENDING, DESCENDING
|
3
|
+
|
4
|
+
class AsyncTEJDailyTechDBExtractor(BaseDailyTechDBExtractor):
|
5
|
+
|
6
|
+
def __init__(self, ticker, client):
|
7
|
+
super().__init__(ticker, client)
|
8
|
+
|
9
|
+
def _get_collection_name(self):
|
10
|
+
self.collection_name_map = {"tw": "TEJ_share_price"}
|
11
|
+
|
12
|
+
return self.collection_name_map.get(self.zone, None)
|
13
|
+
|
14
|
+
class AsyncBatchTechDBExtractor(BaseDailyTechDBExtractor):
|
15
|
+
|
16
|
+
def __init__(self, ticker:list, client: AsyncMongoClient, zone:str):
|
17
|
+
self.tickers = ticker
|
18
|
+
self.zone = zone
|
19
|
+
self.client = client
|
20
|
+
|
21
|
+
self.collection_map = {
|
22
|
+
'tw':{
|
23
|
+
'db': "company_test",
|
24
|
+
'collection': "twse_daily_share_price"
|
25
|
+
},
|
26
|
+
'us':{
|
27
|
+
'db': "company_us",
|
28
|
+
'collection': "us_technical"
|
29
|
+
},
|
30
|
+
}
|
31
|
+
|
32
|
+
db_name = self.collection_map.get(self.zone).get('db')
|
33
|
+
collection_name = self.collection_map.get(self.zone).get('collection')
|
34
|
+
self.collection = self.client.get_database(db_name).get_collection(collection_name)
|
35
|
+
|
36
|
+
def _prepare_query(
|
37
|
+
self, start_date=None, end_date=None, get_latest=False
|
38
|
+
):
|
39
|
+
query = {"ticker":{"$in": self.tickers}}
|
40
|
+
|
41
|
+
if start_date:
|
42
|
+
start_date = self._transform_date(start_date)
|
43
|
+
if end_date:
|
44
|
+
end_date = self._transform_date(end_date)
|
45
|
+
|
46
|
+
if start_date or end_date:
|
47
|
+
date_range = {}
|
48
|
+
if start_date:
|
49
|
+
date_range["$gte"] = start_date
|
50
|
+
if end_date:
|
51
|
+
date_range["$lte"] = end_date
|
52
|
+
query["date"] = date_range
|
53
|
+
|
54
|
+
projection = {
|
55
|
+
"_id": 0,
|
56
|
+
"ticker": 1,
|
57
|
+
"date": 1,
|
58
|
+
"open": 1,
|
59
|
+
"high": 1,
|
60
|
+
"low": 1,
|
61
|
+
"close": 1,
|
62
|
+
"volume": 1
|
63
|
+
}
|
64
|
+
|
65
|
+
if (get_latest):
|
66
|
+
sort = [("date", DESCENDING)]
|
67
|
+
else:
|
68
|
+
sort = [("date", ASCENDING)]
|
69
|
+
|
70
|
+
return query, projection, sort
|
71
|
+
|
72
|
+
async def query_data(
|
73
|
+
self, start_date=None, end_date=None, get_latest=False
|
74
|
+
):
|
75
|
+
query, projection, sort = self._prepare_query(
|
76
|
+
start_date=start_date, end_date=end_date, get_latest=get_latest
|
77
|
+
)
|
78
|
+
|
79
|
+
if (get_latest):
|
80
|
+
cursor = self.collection.find(query, projection).sort(sort).limit(1)
|
81
|
+
else:
|
82
|
+
cursor = self.collection.find(query, projection).sort(sort)
|
83
|
+
|
84
|
+
fetched_data = [data async for data in cursor]
|
85
|
+
|
86
|
+
return fetched_data
|
@@ -2,10 +2,11 @@ from typing import Type, TypedDict, Optional
|
|
2
2
|
from neurostats_API.async_mode.db_extractors import (
|
3
3
|
AsyncTEJDailyTechDBExtractor, AsyncYFDailyTechDBExtractor,
|
4
4
|
AsyncDailyValueDBExtractor, AsyncTEJDailyValueDBExtractor,
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
AsyncTEJSelfSettlementDBExtractor,
|
5
|
+
AsyncTEJDailyChipDBExtractor, AsyncTWSEChipDBExtractor,
|
6
|
+
AsyncTWSEMonthlyRevenueExtractor, AsyncBalanceSheetExtractor,
|
7
|
+
AsyncProfitLoseExtractor, AsyncCashFlowExtractor,
|
8
|
+
AsyncTEJFinanceStatementDBExtractor, AsyncTEJSelfSettlementDBExtractor,
|
9
|
+
AsyncUS_F13DBExtractor
|
9
10
|
)
|
10
11
|
from neurostats_API.utils import NotSupportedError
|
11
12
|
|
@@ -92,6 +93,16 @@ EXTRACTOR_MAP: dict[str, ExtractorConfig] = {
|
|
92
93
|
開高低收
|
93
94
|
"""
|
94
95
|
},
|
96
|
+
"TEJ_Chip": {
|
97
|
+
"class_":
|
98
|
+
AsyncTEJDailyChipDBExtractor,
|
99
|
+
"default_kwargs": {},
|
100
|
+
"description":
|
101
|
+
"""
|
102
|
+
DB_collection: TEJ_chip
|
103
|
+
TWSE的評價面
|
104
|
+
"""
|
105
|
+
},
|
95
106
|
"TEJ_tech": {
|
96
107
|
"class_":
|
97
108
|
AsyncTEJDailyTechDBExtractor,
|
@@ -140,8 +151,6 @@ EXTRACTOR_MAP: dict[str, ExtractorConfig] = {
|
|
140
151
|
TWSE的評價面
|
141
152
|
"""
|
142
153
|
},
|
143
|
-
|
144
|
-
|
145
154
|
"US_Chip_F13": {
|
146
155
|
"class_":
|
147
156
|
AsyncUS_F13DBExtractor,
|
@@ -151,7 +160,7 @@ EXTRACTOR_MAP: dict[str, ExtractorConfig] = {
|
|
151
160
|
DB_collection: "us_F13_flat"
|
152
161
|
US籌碼面(F13)
|
153
162
|
"""
|
154
|
-
}
|
163
|
+
}
|
155
164
|
}
|
156
165
|
|
157
166
|
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/__init__.py
RENAMED
@@ -1,11 +1,11 @@
|
|
1
1
|
from .balance_sheet import AsyncBalanceSheetFetcher
|
2
2
|
from .cash_flow import AsyncCashFlowFetcher
|
3
3
|
from .finance_overview import AsyncFinanceOverviewFetcher, AsyncAgentOverviewFetcher
|
4
|
-
from .tech import AsyncTechFetcher
|
4
|
+
from .tech import AsyncTechFetcher, AsyncBatchTechFetcher
|
5
5
|
from .twse_institution import AsyncTWSEInstitutionFetcher
|
6
6
|
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 AsyncTEJChipFetcher, AsyncTEJDailyTechFetcher, AsyncTEJSeasonalFetcher
|
11
11
|
from .us_chip import AsyncUSChipF13Fetcher, AsyncUSCelebrityFetcher
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/tech.py
RENAMED
@@ -1,16 +1,17 @@
|
|
1
1
|
from .base import AsyncBaseFetcher
|
2
2
|
from datetime import datetime
|
3
3
|
from ..db_extractors import (
|
4
|
-
AsyncYFDailyTechDBExtractor, AsyncTEJDailyTechDBExtractor
|
4
|
+
AsyncYFDailyTechDBExtractor, AsyncTEJDailyTechDBExtractor,
|
5
|
+
AsyncBatchTechDBExtractor
|
5
6
|
)
|
6
7
|
from neurostats_API.async_mode.factory import get_extractor
|
7
|
-
from neurostats_API.transformers import DailyTechTransformer
|
8
|
+
from neurostats_API.transformers import DailyTechTransformer, BatchTechTransformer
|
8
9
|
from neurostats_API.utils import NotSupportedError
|
9
10
|
import pandas as pd
|
10
11
|
from pytz import timezone
|
11
12
|
from neurostats_API.utils import StatsDateTime
|
12
13
|
import yfinance as yf
|
13
|
-
|
14
|
+
from pymongo import AsyncMongoClient
|
14
15
|
|
15
16
|
class AsyncTechFetcher(AsyncBaseFetcher):
|
16
17
|
|
@@ -208,3 +209,29 @@ class AsyncTechFetcher(AsyncBaseFetcher):
|
|
208
209
|
df = pd.DataFrame(columns=self.required_cols)
|
209
210
|
|
210
211
|
return df
|
212
|
+
|
213
|
+
class AsyncBatchTechFetcher(AsyncBaseFetcher):
|
214
|
+
def __init__(
|
215
|
+
self, client:AsyncMongoClient, tickers:list,
|
216
|
+
zone:str, strftime: str = "%Y-%m-%d"
|
217
|
+
):
|
218
|
+
super().__init__()
|
219
|
+
self.tickers = tickers
|
220
|
+
self.zone = zone
|
221
|
+
self.extractor = AsyncBatchTechDBExtractor(
|
222
|
+
ticker=self.tickers, client=client, zone=zone
|
223
|
+
)
|
224
|
+
self.transformer = BatchTechTransformer(strftime=strftime)
|
225
|
+
|
226
|
+
async def query_data(
|
227
|
+
self, start_date=None, end_date=None, get_latest=False,
|
228
|
+
):
|
229
|
+
fetched_data = await self.extractor.query_data(
|
230
|
+
start_date, end_date, get_latest,
|
231
|
+
)
|
232
|
+
|
233
|
+
transformed_data = self.transformer.process_transform(
|
234
|
+
fetched_datas = list(fetched_data),
|
235
|
+
)
|
236
|
+
|
237
|
+
return transformed_data
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from datetime import datetime
|
2
|
+
|
3
|
+
from neurostats_API.async_mode.fetchers.base import AsyncBaseFetcher
|
4
|
+
|
5
|
+
from neurostats_API.async_mode.factory import get_extractor
|
6
|
+
from neurostats_API.transformers import TEJChipTransformer
|
7
|
+
from neurostats_API.utils import NotSupportedError
|
8
|
+
|
9
|
+
class AsyncTEJChipFetcher(AsyncBaseFetcher):
|
10
|
+
def __init__(
|
11
|
+
self,
|
12
|
+
ticker,
|
13
|
+
client
|
14
|
+
):
|
15
|
+
self.ticker = ticker
|
16
|
+
self.transformer_map = {"tw": TEJChipTransformer}
|
17
|
+
try:
|
18
|
+
self.extractor = get_extractor("TEJ_Chip", ticker, client)
|
19
|
+
|
20
|
+
company_name = self.extractor.get_company_name()
|
21
|
+
zone = self.extractor.get_zone()
|
22
|
+
|
23
|
+
transformer = self.get_transformer(zone)
|
24
|
+
self.transformer = transformer(ticker, company_name, zone)
|
25
|
+
|
26
|
+
except NotSupportedError as e:
|
27
|
+
raise NotSupportedError(
|
28
|
+
f"{self.__class__.__name__} only support {list(self.transformer_map.keys())} companies now, {ticker} is not available"
|
29
|
+
) from e
|
30
|
+
|
31
|
+
async def query_data(
|
32
|
+
self, start_date=None, end_date=None, get_latest=False
|
33
|
+
):
|
34
|
+
fetched_data = await self.extractor.query_data(
|
35
|
+
start_date, end_date, get_latest
|
36
|
+
)
|
37
|
+
|
38
|
+
transformed_data = self.transformer.process_transform(
|
39
|
+
fetched_data = fetched_data
|
40
|
+
)
|
41
|
+
|
42
|
+
return transformed_data
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/tej/tech.py
RENAMED
@@ -1,10 +1,12 @@
|
|
1
1
|
import pandas as pd
|
2
2
|
from neurostats_API.async_mode.fetchers.base import AsyncBaseFetcher
|
3
3
|
from neurostats_API.async_mode.factory import get_extractor
|
4
|
+
from neurostats_API.transformers import TEJTechTransformer
|
4
5
|
from neurostats_API.utils import NotSupportedError
|
5
6
|
|
7
|
+
|
6
8
|
class AsyncTEJDailyTechFetcher(AsyncBaseFetcher):
|
7
|
-
|
9
|
+
|
8
10
|
def __init__(
|
9
11
|
self,
|
10
12
|
ticker,
|
@@ -17,18 +19,24 @@ class AsyncTEJDailyTechFetcher(AsyncBaseFetcher):
|
|
17
19
|
self.company_name = self.extractor.get_company_name()
|
18
20
|
self.zone = self.extractor.get_zone()
|
19
21
|
|
22
|
+
self.transformer = TEJTechTransformer(
|
23
|
+
ticker, self.company_name, self.zone
|
24
|
+
)
|
25
|
+
|
20
26
|
except NotSupportedError as e:
|
21
27
|
raise NotSupportedError(
|
22
28
|
f"{self.__class__.__name__} only support TW companies now, {ticker} is not available"
|
23
29
|
) from e
|
24
|
-
|
30
|
+
|
25
31
|
async def query_data(self, start_date, end_date):
|
26
32
|
data = await self.extractor.query_data(start_date, end_date)
|
27
33
|
df = pd.DataFrame(data)
|
28
|
-
return df.rename(
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
34
|
+
return df.rename(
|
35
|
+
columns={
|
36
|
+
"open_d": "open",
|
37
|
+
"high_d": "high",
|
38
|
+
"low_d": "low",
|
39
|
+
"close_d": "close",
|
40
|
+
"vol": "volume"
|
41
|
+
}
|
42
|
+
)
|
@@ -9,7 +9,8 @@ from .cash_flow import (
|
|
9
9
|
)
|
10
10
|
|
11
11
|
from .daily_tech import(
|
12
|
-
DailyTechTransformer
|
12
|
+
DailyTechTransformer,
|
13
|
+
BatchTechTransformer
|
13
14
|
)
|
14
15
|
|
15
16
|
from .daily_chip import(
|
@@ -28,7 +29,9 @@ from .profit_lose import (
|
|
28
29
|
)
|
29
30
|
|
30
31
|
from .tej import (
|
31
|
-
|
32
|
+
TEJChipTransformer,
|
33
|
+
TEJFinanceStatementTransformer,
|
34
|
+
TEJTechTransformer
|
32
35
|
)
|
33
36
|
|
34
37
|
from .value import (
|
@@ -0,0 +1 @@
|
|
1
|
+
from .tech import DailyTechTransformer, BatchTechTransformer
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/tech.py
RENAMED
@@ -1,8 +1,11 @@
|
|
1
1
|
from .base import BaseDailyTransformer
|
2
|
-
import inspect
|
3
|
-
import pandas as pd
|
4
2
|
from .utils import TechProcessor
|
5
3
|
|
4
|
+
import inspect
|
5
|
+
import pandas as pd
|
6
|
+
from datetime import datetime
|
7
|
+
from typing import List, Optional, Union
|
8
|
+
from collections import defaultdict
|
6
9
|
|
7
10
|
class DailyTechTransformer(BaseDailyTransformer):
|
8
11
|
def __init__(self, ticker, company_name, zone):
|
@@ -81,4 +84,32 @@ class DailyTechTransformer(BaseDailyTransformer):
|
|
81
84
|
"""
|
82
85
|
回傳年線資料
|
83
86
|
"""
|
84
|
-
return self._get_resampled("YE")
|
87
|
+
return self._get_resampled("YE")
|
88
|
+
|
89
|
+
class BatchTechTransformer(BaseDailyTransformer):
|
90
|
+
def __init__(self, strftime:str="%Y-%m-%d"):
|
91
|
+
self.date_format = strftime
|
92
|
+
|
93
|
+
def process_transform(
|
94
|
+
self,
|
95
|
+
fetched_datas: List[dict],
|
96
|
+
) -> dict[str, dict[Union[str, datetime], float]]:
|
97
|
+
|
98
|
+
result = defaultdict(lambda: defaultdict(dict))
|
99
|
+
|
100
|
+
for record in fetched_datas:
|
101
|
+
ticker = record.get("ticker")
|
102
|
+
date = record.get("date")
|
103
|
+
if isinstance(date, str):
|
104
|
+
date = datetime.fromisoformat(date)
|
105
|
+
date_str = date.strftime(self.date_format)
|
106
|
+
|
107
|
+
result[ticker][date_str] = {
|
108
|
+
"open": record.get("open"),
|
109
|
+
"high": record.get("high"),
|
110
|
+
"low": record.get("low"),
|
111
|
+
"close": record.get("close"),
|
112
|
+
"volume": record.get("volume"),
|
113
|
+
}
|
114
|
+
|
115
|
+
return dict(result)
|
@@ -0,0 +1,23 @@
|
|
1
|
+
from .base import BaseTEJTransformer
|
2
|
+
import pandas as pd
|
3
|
+
|
4
|
+
class TEJChipTransformer(BaseTEJTransformer):
|
5
|
+
def __init__(self, ticker, company_name, zone):
|
6
|
+
super().__init__(ticker, company_name, zone)
|
7
|
+
self.return_keys = ["chip_data"]
|
8
|
+
|
9
|
+
|
10
|
+
def process_transform(
|
11
|
+
self,
|
12
|
+
fetched_data
|
13
|
+
):
|
14
|
+
if (not fetched_data):
|
15
|
+
return self._get_empty_structure()
|
16
|
+
|
17
|
+
fetched_data = pd.DataFrame(fetched_data)
|
18
|
+
|
19
|
+
return {
|
20
|
+
"ticker": self.ticker,
|
21
|
+
"company_name": self.company_name,
|
22
|
+
"chip_data": fetched_data
|
23
|
+
}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
from .base import BaseTEJTransformer
|
2
|
+
import pandas as pd
|
3
|
+
|
4
|
+
|
5
|
+
class TEJTechTransformer(BaseTEJTransformer):
|
6
|
+
|
7
|
+
def __init__(self, ticker, company_name, zone):
|
8
|
+
super().__init__(ticker, company_name, zone)
|
9
|
+
self.fetched_data = None
|
10
|
+
|
11
|
+
def process_transform(self, fetched_data):
|
12
|
+
self.fetched_data = pd.DataFrame(fetched_data)
|
13
|
+
|
14
|
+
self.fetched_data = self.fetched_data.rename(
|
15
|
+
columns={
|
16
|
+
"open_d": "open",
|
17
|
+
"high_d": "high",
|
18
|
+
"low_d": "low",
|
19
|
+
"close_d": "close",
|
20
|
+
"vol": "volume"
|
21
|
+
}
|
22
|
+
)
|
23
|
+
|
24
|
+
return self.fetched_data
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.3rc1
|
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.3rc1
|
75
75
|
```
|
76
76
|
|
77
77
|
### 下載舊版
|
@@ -50,6 +50,7 @@ neurostats_API/async_mode/fetchers/twse_margin.py
|
|
50
50
|
neurostats_API/async_mode/fetchers/us_chip.py
|
51
51
|
neurostats_API/async_mode/fetchers/value.py
|
52
52
|
neurostats_API/async_mode/fetchers/tej/__init__.py
|
53
|
+
neurostats_API/async_mode/fetchers/tej/chip.py
|
53
54
|
neurostats_API/async_mode/fetchers/tej/seasonal_data.py
|
54
55
|
neurostats_API/async_mode/fetchers/tej/tech.py
|
55
56
|
neurostats_API/config/company_list/ticker_index_industry_map.json
|
@@ -90,7 +91,6 @@ neurostats_API/transformers/cash_flow/twse.py
|
|
90
91
|
neurostats_API/transformers/cash_flow/us.py
|
91
92
|
neurostats_API/transformers/daily_chip/__init__.py
|
92
93
|
neurostats_API/transformers/daily_chip/base.py
|
93
|
-
neurostats_API/transformers/daily_chip/tej.py
|
94
94
|
neurostats_API/transformers/daily_chip/twse_chip.py
|
95
95
|
neurostats_API/transformers/daily_chip/us.py
|
96
96
|
neurostats_API/transformers/daily_chip/utils/__init__.py
|
@@ -117,6 +117,7 @@ neurostats_API/transformers/tej/__init__.py
|
|
117
117
|
neurostats_API/transformers/tej/base.py
|
118
118
|
neurostats_API/transformers/tej/chip.py
|
119
119
|
neurostats_API/transformers/tej/finance_statement.py
|
120
|
+
neurostats_API/transformers/tej/tech.py
|
120
121
|
neurostats_API/transformers/value/__init__.py
|
121
122
|
neurostats_API/transformers/value/base.py
|
122
123
|
neurostats_API/transformers/value/tej.py
|
@@ -105,7 +105,7 @@ async def test_tech():
|
|
105
105
|
|
106
106
|
test_fns = [
|
107
107
|
fetcher.get_daily, fetcher.get_weekly, fetcher.get_monthly,
|
108
|
-
fetcher.get_quarterly, fetcher.get_yearly
|
108
|
+
fetcher.get_quarterly, fetcher.get_yearly
|
109
109
|
]
|
110
110
|
|
111
111
|
for fetch_fn in test_fns:
|
@@ -249,6 +249,26 @@ async def test_us_chip():
|
|
249
249
|
print(e)
|
250
250
|
print('========================================')
|
251
251
|
|
252
|
+
@pytest.mark.asyncio
|
253
|
+
async def test_tej_chip():
|
254
|
+
print(f"# Agents overview")
|
255
|
+
from neurostats_API.async_mode.fetchers import AsyncTEJChipFetcher
|
256
|
+
|
257
|
+
for ticker in tickers:
|
258
|
+
try:
|
259
|
+
fetcher = AsyncTEJChipFetcher(ticker, client)
|
260
|
+
|
261
|
+
test_fn = [fetcher.query_data]
|
262
|
+
|
263
|
+
for fetch_fn in test_fn:
|
264
|
+
data = await fetch_fn()
|
265
|
+
|
266
|
+
print_dict_summary(data)
|
267
|
+
print('========================================')
|
268
|
+
|
269
|
+
except Exception as e:
|
270
|
+
print(str(e))
|
271
|
+
|
252
272
|
def print_dict_summary(data: dict, indent: int = 1):
|
253
273
|
prefix = " " * indent
|
254
274
|
for key, value in data.items():
|
@@ -1,12 +0,0 @@
|
|
1
|
-
from .base import BaseDailyTechDBExtractor
|
2
|
-
|
3
|
-
|
4
|
-
class AsyncTEJDailyTechDBExtractor(BaseDailyTechDBExtractor):
|
5
|
-
|
6
|
-
def __init__(self, ticker, client):
|
7
|
-
super().__init__(ticker, client)
|
8
|
-
|
9
|
-
def _get_collection_name(self):
|
10
|
-
self.collection_name_map = {"tw": "TEJ_share_price"}
|
11
|
-
|
12
|
-
return self.collection_name_map.get(self.zone, None)
|
File without changes
|
@@ -1 +0,0 @@
|
|
1
|
-
from .tech import DailyTechTransformer
|
@@ -1 +0,0 @@
|
|
1
|
-
from .finance_statement import TEJFinanceStatementTransformer
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/db_extractors/base.py
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
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/factory/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/base.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/cash_flow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/us_chip.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/async_mode/fetchers/value.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/tw.json
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/company_list/us.json
RENAMED
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/tej_db/tej_db_index.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/balance_sheet.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/config/twse/profit_lose.yaml
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/balance_sheet.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/finance_overview.py
RENAMED
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/margin_trading.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/month_revenue.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/fetchers/tej_finance_report.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/balance_sheet/us.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/base.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/twse.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/cash_flow/us.py
RENAMED
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/base.py
RENAMED
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_chip/us.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/daily_tech/base.py
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
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/base.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/twse.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/profit_lose/us.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/__init__.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/base.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/tej.py
RENAMED
File without changes
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API/transformers/value/twse.py
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
|
{neurostats_api-1.0.2rc3 → neurostats_api-1.0.3rc1}/neurostats_API.egg-info/dependency_links.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|