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.
Files changed (134) hide show
  1. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/PKG-INFO +2 -2
  2. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/README.md +1 -1
  3. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/__init__.py +1 -1
  4. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/__init__.py +1 -0
  5. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/__init__.py +1 -0
  6. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/base.py +11 -4
  7. neurostats_api-1.0.1rc1/neurostats_API/async_mode/db_extractors/daily/us_chip.py +66 -0
  8. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/extractor_factory.py +14 -2
  9. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/__init__.py +2 -1
  10. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/finance_overview.py +0 -5
  11. neurostats_api-1.0.1rc1/neurostats_API/async_mode/fetchers/us_chip.py +46 -0
  12. neurostats_api-1.0.1rc1/neurostats_API/config/company_list/ticker_to_cik.json +12086 -0
  13. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/finance_overview.py +3 -9
  14. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/__init__.py +2 -1
  15. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/__init__.py +1 -0
  16. neurostats_api-1.0.1rc1/neurostats_API/transformers/daily_chip/us.py +40 -0
  17. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/__init__.py +1 -1
  18. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/PKG-INFO +2 -2
  19. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/SOURCES.txt +4 -0
  20. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/setup.py +1 -1
  21. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/test/test_async_fetcher.py +27 -3
  22. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/MANIFEST.in +0 -0
  23. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/__init__.py +0 -0
  24. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/__init__.py +0 -0
  25. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/base.py +0 -0
  26. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/tej.py +0 -0
  27. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/twse.py +0 -0
  28. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db/us.py +0 -0
  29. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/base.py +0 -0
  30. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/tej_chip.py +0 -0
  31. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/tej_tech.py +0 -0
  32. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/twse_chip.py +0 -0
  33. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/value.py +0 -0
  34. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/daily/yf.py +0 -0
  35. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/__init__.py +0 -0
  36. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/base.py +0 -0
  37. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/month_revenue/twse.py +0 -0
  38. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/__init__.py +0 -0
  39. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/balance_sheet.py +0 -0
  40. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/base.py +0 -0
  41. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/cashflow.py +0 -0
  42. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py +0 -0
  43. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/db_extractors/seasonal/tej.py +0 -0
  44. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/__init__.py +0 -0
  45. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/factory/transformer_factory.py +0 -0
  46. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/balance_sheet.py +0 -0
  47. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/base.py +0 -0
  48. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/cash_flow.py +0 -0
  49. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/month_revenue.py +0 -0
  50. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/profit_lose.py +0 -0
  51. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tech.py +0 -0
  52. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/__init__.py +0 -0
  53. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/seasonal_data.py +0 -0
  54. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/tej/tech.py +0 -0
  55. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/twse_institution.py +0 -0
  56. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/twse_margin.py +0 -0
  57. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/async_mode/fetchers/value.py +0 -0
  58. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/cli.py +0 -0
  59. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/ticker_index_industry_map.json +0 -0
  60. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/tw.json +0 -0
  61. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/us.json +0 -0
  62. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/company_list/us_TradingView_list.json +0 -0
  63. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_index.yaml +0 -0
  64. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_percent_index.yaml +0 -0
  65. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_skip_index.yaml +0 -0
  66. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/tej_db/tej_db_thousand_index.yaml +0 -0
  67. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/balance_sheet.yaml +0 -0
  68. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/cash_flow_percentage.yaml +0 -0
  69. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/finance_overview_dict.yaml +0 -0
  70. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/profit_lose.yaml +0 -0
  71. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/config/twse/seasonal_data_field_dict.txt +0 -0
  72. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/__init__.py +0 -0
  73. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/balance_sheet.py +0 -0
  74. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/base.py +0 -0
  75. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/cash_flow.py +0 -0
  76. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/institution.py +0 -0
  77. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/margin_trading.py +0 -0
  78. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/month_revenue.py +0 -0
  79. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/profit_lose.py +0 -0
  80. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/tech.py +0 -0
  81. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/tej_finance_report.py +0 -0
  82. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/fetchers/value_invest.py +0 -0
  83. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/main.py +0 -0
  84. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/__init__.py +0 -0
  85. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/base.py +0 -0
  86. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/twse.py +0 -0
  87. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/balance_sheet/us.py +0 -0
  88. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/base.py +0 -0
  89. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/__init__.py +0 -0
  90. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/base.py +0 -0
  91. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/twse.py +0 -0
  92. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/cash_flow/us.py +0 -0
  93. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/base.py +0 -0
  94. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/tej.py +0 -0
  95. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/twse_chip.py +0 -0
  96. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/__init__.py +0 -0
  97. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/institution.py +0 -0
  98. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/margin_trading.py +0 -0
  99. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_chip/utils/security_lending.py +0 -0
  100. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/__init__.py +0 -0
  101. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/base.py +0 -0
  102. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/tech.py +0 -0
  103. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/utils/__init__.py +0 -0
  104. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/daily_tech/utils/processor.py +0 -0
  105. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/__init__.py +0 -0
  106. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/agent_overview.py +0 -0
  107. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/base.py +0 -0
  108. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/finance_overview/stats_overview.py +0 -0
  109. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/__init__.py +0 -0
  110. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/base.py +0 -0
  111. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/month_revenue/twse.py +0 -0
  112. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/__init__.py +0 -0
  113. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/base.py +0 -0
  114. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/twse.py +0 -0
  115. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/profit_lose/us.py +0 -0
  116. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/__init__.py +0 -0
  117. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/base.py +0 -0
  118. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/tej/finance_statement.py +0 -0
  119. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/__init__.py +0 -0
  120. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/base.py +0 -0
  121. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/tej.py +0 -0
  122. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/transformers/value/twse.py +0 -0
  123. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/calculate_value.py +0 -0
  124. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/data_process.py +0 -0
  125. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/datetime.py +0 -0
  126. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/db_client.py +0 -0
  127. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/exception.py +0 -0
  128. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API/utils/logger.py +0 -0
  129. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/dependency_links.txt +0 -0
  130. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/requires.txt +0 -0
  131. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/neurostats_API.egg-info/top_level.txt +0 -0
  132. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/setup.cfg +0 -0
  133. {neurostats_api-1.0.0rc6 → neurostats_api-1.0.1rc1}/test/test_fetchers.py +0 -0
  134. {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.0rc6
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.0rc6
74
+ 1.0.0
75
75
  ```
76
76
 
77
77
  ### 下載舊版
@@ -54,7 +54,7 @@ pip install neurostats-API
54
54
  ```Python
55
55
  >>> import neurostats_API
56
56
  >>> print(neurostats_API.__version__)
57
- 1.0.0rc6
57
+ 1.0.0
58
58
  ```
59
59
 
60
60
  ### 下載舊版
@@ -1,4 +1,4 @@
1
- __version__='1.0.0rc5'
1
+ __version__='1.0.0'
2
2
 
3
3
  from .fetchers import (
4
4
  AgentFinanceOverviewFetcher,
@@ -4,6 +4,7 @@ from .daily import (
4
4
  AsyncDailyValueDBExtractor,
5
5
  AsyncTEJDailyValueDBExtractor,
6
6
  AsyncTWSEChipDBExtractor,
7
+ AsyncUS_F13DBExtractor
7
8
 
8
9
  )
9
10
 
@@ -4,4 +4,5 @@ from .value import (
4
4
  AsyncDailyValueDBExtractor,
5
5
  AsyncTEJDailyValueDBExtractor
6
6
  )
7
+ from .us_chip import AsyncUS_F13DBExtractor
7
8
  from .yf import AsyncYFDailyTechDBExtractor
@@ -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
- return datetime.strptime(date, "%Y-%m-%d")
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
- return date
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
 
@@ -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
@@ -14,11 +14,6 @@ import pytz
14
14
  import holidays
15
15
  import warnings
16
16
 
17
- warnings.filterwarnings(
18
- "ignore",
19
- category=holidays.deprecations.v1_incompatibility.
20
- FutureIncompatibilityWarning
21
- )
22
17
  import yaml
23
18
 
24
19
 
@@ -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