neurostats-API 1.0.2rc1__tar.gz → 1.0.2rc3__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 (136) hide show
  1. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/PKG-INFO +2 -2
  2. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/README.md +1 -1
  3. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/__init__.py +1 -1
  4. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/base.py +14 -1
  5. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/us_chip.py +14 -8
  6. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/tech.py +9 -4
  7. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/tech.py +1 -1
  8. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/us.py +1 -0
  9. neurostats_api-1.0.2rc3/neurostats_API/transformers/tej/chip.py +0 -0
  10. neurostats_api-1.0.2rc3/neurostats_API/utils/datetime.py +52 -0
  11. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API.egg-info/PKG-INFO +2 -2
  12. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API.egg-info/SOURCES.txt +1 -0
  13. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/setup.py +1 -1
  14. neurostats_api-1.0.2rc1/neurostats_API/utils/datetime.py +0 -29
  15. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/MANIFEST.in +0 -0
  16. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/__init__.py +0 -0
  17. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db/__init__.py +0 -0
  18. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db/base.py +0 -0
  19. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db/tej.py +0 -0
  20. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db/twse.py +0 -0
  21. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db/us.py +0 -0
  22. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/__init__.py +0 -0
  23. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/__init__.py +0 -0
  24. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/base.py +0 -0
  25. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/tej_chip.py +0 -0
  26. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/tej_tech.py +0 -0
  27. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/twse_chip.py +0 -0
  28. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/value.py +0 -0
  29. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/daily/yf.py +0 -0
  30. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/month_revenue/__init__.py +0 -0
  31. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/month_revenue/base.py +0 -0
  32. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/month_revenue/twse.py +0 -0
  33. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/__init__.py +0 -0
  34. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/balance_sheet.py +0 -0
  35. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/base.py +0 -0
  36. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/cashflow.py +0 -0
  37. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/profit_lose.py +0 -0
  38. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/db_extractors/seasonal/tej.py +0 -0
  39. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/factory/__init__.py +0 -0
  40. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/factory/extractor_factory.py +0 -0
  41. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/factory/transformer_factory.py +0 -0
  42. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/__init__.py +0 -0
  43. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/balance_sheet.py +0 -0
  44. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/base.py +0 -0
  45. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/cash_flow.py +0 -0
  46. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/finance_overview.py +0 -0
  47. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/month_revenue.py +0 -0
  48. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/profit_lose.py +0 -0
  49. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/tej/__init__.py +0 -0
  50. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/tej/seasonal_data.py +0 -0
  51. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/tej/tech.py +0 -0
  52. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/twse_institution.py +0 -0
  53. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/twse_margin.py +0 -0
  54. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/us_chip.py +0 -0
  55. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/async_mode/fetchers/value.py +0 -0
  56. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/cli.py +0 -0
  57. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/company_list/ticker_index_industry_map.json +0 -0
  58. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/company_list/ticker_to_cik.json +0 -0
  59. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/company_list/tw.json +0 -0
  60. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/company_list/us.json +0 -0
  61. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/company_list/us_TradingView_list.json +0 -0
  62. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/tej_db/tej_db_index.yaml +0 -0
  63. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/tej_db/tej_db_percent_index.yaml +0 -0
  64. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/tej_db/tej_db_skip_index.yaml +0 -0
  65. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/tej_db/tej_db_thousand_index.yaml +0 -0
  66. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/twse/balance_sheet.yaml +0 -0
  67. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/twse/cash_flow_percentage.yaml +0 -0
  68. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/twse/finance_overview_dict.yaml +0 -0
  69. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/twse/profit_lose.yaml +0 -0
  70. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/config/twse/seasonal_data_field_dict.txt +0 -0
  71. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/__init__.py +0 -0
  72. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/balance_sheet.py +0 -0
  73. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/base.py +0 -0
  74. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/cash_flow.py +0 -0
  75. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/finance_overview.py +0 -0
  76. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/institution.py +0 -0
  77. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/margin_trading.py +0 -0
  78. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/month_revenue.py +0 -0
  79. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/profit_lose.py +0 -0
  80. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/tej_finance_report.py +0 -0
  81. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/fetchers/value_invest.py +0 -0
  82. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/main.py +0 -0
  83. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/__init__.py +0 -0
  84. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/balance_sheet/__init__.py +0 -0
  85. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/balance_sheet/base.py +0 -0
  86. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/balance_sheet/twse.py +0 -0
  87. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/balance_sheet/us.py +0 -0
  88. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/base.py +0 -0
  89. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/cash_flow/__init__.py +0 -0
  90. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/cash_flow/base.py +0 -0
  91. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/cash_flow/twse.py +0 -0
  92. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/cash_flow/us.py +0 -0
  93. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/__init__.py +0 -0
  94. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/base.py +0 -0
  95. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/tej.py +0 -0
  96. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/twse_chip.py +0 -0
  97. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/utils/__init__.py +0 -0
  98. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/utils/institution.py +0 -0
  99. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/utils/margin_trading.py +0 -0
  100. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_chip/utils/security_lending.py +0 -0
  101. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_tech/__init__.py +0 -0
  102. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_tech/base.py +0 -0
  103. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_tech/tech.py +0 -0
  104. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_tech/utils/__init__.py +0 -0
  105. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/daily_tech/utils/processor.py +0 -0
  106. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/finance_overview/__init__.py +0 -0
  107. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/finance_overview/agent_overview.py +0 -0
  108. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/finance_overview/base.py +0 -0
  109. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/finance_overview/stats_overview.py +0 -0
  110. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/month_revenue/__init__.py +0 -0
  111. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/month_revenue/base.py +0 -0
  112. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/month_revenue/twse.py +0 -0
  113. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/profit_lose/__init__.py +0 -0
  114. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/profit_lose/base.py +0 -0
  115. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/profit_lose/twse.py +0 -0
  116. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/profit_lose/us.py +0 -0
  117. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/tej/__init__.py +0 -0
  118. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/tej/base.py +0 -0
  119. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/tej/finance_statement.py +0 -0
  120. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/value/__init__.py +0 -0
  121. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/value/base.py +0 -0
  122. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/value/tej.py +0 -0
  123. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/transformers/value/twse.py +0 -0
  124. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/__init__.py +0 -0
  125. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/calculate_value.py +0 -0
  126. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/data_process.py +0 -0
  127. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/db_client.py +0 -0
  128. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/exception.py +0 -0
  129. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API/utils/logger.py +0 -0
  130. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API.egg-info/dependency_links.txt +0 -0
  131. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API.egg-info/requires.txt +0 -0
  132. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/neurostats_API.egg-info/top_level.txt +0 -0
  133. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/setup.cfg +0 -0
  134. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/test/test_async_fetcher.py +0 -0
  135. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/test/test_fetchers.py +0 -0
  136. {neurostats_api-1.0.2rc1 → neurostats_api-1.0.2rc3}/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.2rc1
3
+ Version: 1.0.2rc3
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.2rc1
74
+ 1.0.2rc3
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.2rc1
57
+ 1.0.2rc3
58
58
  ```
59
59
 
60
60
  ### 下載舊版
@@ -1,4 +1,4 @@
1
- __version__='1.0.2rc1'
1
+ __version__='1.0.2rc3'
2
2
 
3
3
  from .fetchers import (
4
4
  AgentFinanceOverviewFetcher,
@@ -18,6 +18,19 @@ class BaseDBExtractor(abc.ABC):
18
18
  self.db_client = self._set_db_connection()
19
19
 
20
20
  def _set_company_name(self, ticker):
21
+
22
+ index_dict = {
23
+ "^TWII": ("台灣加權指數", 'tw'),
24
+ "^GSPC": ("S&P 500", 'us'),
25
+ "^DJI": ("Dow Jones Indices", 'us'),
26
+ "^IXIC": ("NASDAQ Composite", 'us')
27
+ }
28
+
29
+ for key, values in index_dict.items():
30
+ if (key == ticker):
31
+ company_name, zone = values
32
+ return company_name, zone
33
+
21
34
  company_lists = [
22
35
  (self.tw_company_list, 'tw'),
23
36
  (self.us_company_list, 'us')
@@ -28,6 +41,7 @@ class BaseDBExtractor(abc.ABC):
28
41
  if (company_name):
29
42
  return company_name, zone
30
43
  # 沒找到公司名稱
44
+
31
45
  raise NoCompanyError(f"Ticker-{ticker} not found in any company lists")
32
46
 
33
47
  def _set_db_connection(self):
@@ -38,7 +52,6 @@ class BaseDBExtractor(abc.ABC):
38
52
  db_client = db_map.get(self.zone, TWSEDBClient)
39
53
  return db_client(self.client)
40
54
 
41
-
42
55
 
43
56
  async def query_data(self):
44
57
  """
@@ -88,14 +88,20 @@ class AsyncUS_CelebrityDBExtractor(AsyncUS_F13DBExtractor):
88
88
  self, start_date=None, end_date=None, get_latest=False,
89
89
  value_throshold=None, title=None
90
90
  ):
91
-
92
- start_date = self._transform_date(start_date)
93
- end_date = self._transform_date(end_date)
94
-
95
- query = {
96
- "manager": self.manager,
97
- "reportDate": {"$gte": start_date, "$lte": end_date}
98
- }
91
+ query = {"manager": self.manager}
92
+
93
+ if start_date:
94
+ start_date = self._transform_date(start_date)
95
+ if end_date:
96
+ end_date = self._transform_date(end_date)
97
+
98
+ if start_date or end_date:
99
+ date_range = {}
100
+ if start_date:
101
+ date_range["$gte"] = start_date
102
+ if end_date:
103
+ date_range["$lte"] = end_date
104
+ query["reportDate"] = date_range
99
105
 
100
106
  if value_throshold:
101
107
  query["value"] = {"$gt": value_throshold}
@@ -7,6 +7,8 @@ from neurostats_API.async_mode.factory import get_extractor
7
7
  from neurostats_API.transformers import DailyTechTransformer
8
8
  from neurostats_API.utils import NotSupportedError
9
9
  import pandas as pd
10
+ from pytz import timezone
11
+ from neurostats_API.utils import StatsDateTime
10
12
  import yfinance as yf
11
13
 
12
14
 
@@ -79,9 +81,8 @@ class AsyncTechFetcher(AsyncBaseFetcher):
79
81
 
80
82
  async def _fetch_data(self, start_date, end_date):
81
83
 
82
- if (self.ticker in ['GSPC', 'IXIC', 'DJI', 'TWII']):
83
- full_tick = f'^{self.ticker}'
84
- df = self._conduct_yf_search(full_tick, start_date, end_date)
84
+ if (self.ticker in ['^GSPC', '^IXIC', '^DJI', '^TWII']):
85
+ df = self._conduct_yf_search(self.ticker, start_date, end_date)
85
86
 
86
87
  return df[self.required_cols]
87
88
 
@@ -97,11 +98,14 @@ class AsyncTechFetcher(AsyncBaseFetcher):
97
98
 
98
99
  def _conduct_yf_search(self, ticker, start_date, end_date):
99
100
  yf_ticker = yf.Ticker(ticker)
100
- origin_df = yf_ticker.history(period="10y")
101
+ origin_df = yf_ticker.history(period="max")
101
102
 
102
103
  if origin_df.empty:
103
104
  return origin_df
104
105
 
106
+ start_date = StatsDateTime.transform_date(start_date, tz=str(origin_df.index.tz)) # 跟隨yf搜尋結果的時區
107
+ end_date = StatsDateTime.transform_date(end_date, tz=str(origin_df.index.tz))
108
+
105
109
  origin_df = origin_df.reset_index()
106
110
  origin_df["Date"] = pd.to_datetime(origin_df["Date"])
107
111
  df = origin_df.rename(
@@ -116,6 +120,7 @@ class AsyncTechFetcher(AsyncBaseFetcher):
116
120
  )
117
121
 
118
122
  df = df.loc[(df['date'] >= start_date) & (df['date'] <= end_date)]
123
+ df['date'] = df['date'].dt.tz_convert("Asia/Taipei")
119
124
  return df
120
125
 
121
126
  async def _conduct_tw_db_search(self, start_date, end_date):
@@ -8,7 +8,7 @@ class TechFetcher(StatsFetcher):
8
8
  def __init__(self, ticker: str, db_client):
9
9
  """
10
10
  The Capitalization-Weighted Index includes the following tickers:
11
- ['GSPC', 'IXIC', 'DJI', 'TWII']
11
+ ['^GSPC', '^IXIC', '^DJI', '^TWII']
12
12
  """
13
13
 
14
14
  super().__init__(ticker, db_client)
@@ -10,6 +10,7 @@ from typing import List, Optional, Union
10
10
  class US_F13_Transformer(BaseChipTransformer):
11
11
  def __init__(self, ticker, company_name, zone):
12
12
  super().__init__(ticker, company_name, zone)
13
+ self.return_keys = ['chip_data']
13
14
 
14
15
  def process_transform(self, fetched_datas):
15
16
  """
@@ -0,0 +1,52 @@
1
+ from datetime import datetime
2
+ from pytz import timezone
3
+
4
+ class StatsDateTime():
5
+
6
+ def __init__(self, date, year, month, day, season):
7
+ self.date = date
8
+ self.year = year
9
+ self.month = month
10
+ self.day = day
11
+ self.season = season
12
+
13
+ @classmethod
14
+ def get_today(cls):
15
+ today = datetime.today()
16
+ this_year = today.year
17
+ this_month = today.month
18
+ this_day = today.day
19
+ this_season = ((this_month - 1) // 3) + 1
20
+
21
+ return StatsDateTime(today, this_year, this_month, this_day,
22
+ this_season)
23
+
24
+ @classmethod
25
+ def get_latest_time(cls, ticker, collection):
26
+ return collection.find_one(
27
+ { "ticker" : ticker },
28
+ { "_id": 0, "last_update_time": 1 }
29
+ )
30
+
31
+ @classmethod
32
+ def transform_date(cls, date, tz:str = None):
33
+ if (isinstance(date, str)):
34
+ try:
35
+ date = datetime.strptime(date, "%Y-%m-%d")
36
+ if (tz):
37
+ date = date.astimezone(tz = timezone(tz))
38
+ return date
39
+ except Exception as e:
40
+ print(e)
41
+ raise ValueError(
42
+ "date string format imcompatible, should be \"YYYY-MM-DD\""
43
+ )
44
+ elif (isinstance(date, datetime)):
45
+ if (tz):
46
+ return date.astimezone(tz = timezone(tz))
47
+ else:
48
+ return date
49
+ else:
50
+ raise ValueError(
51
+ "date type imcompatible, should be string(\"YYYY-MM-DD\") or datetime.datetime"
52
+ )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: neurostats_API
3
- Version: 1.0.2rc1
3
+ Version: 1.0.2rc3
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.2rc1
74
+ 1.0.2rc3
75
75
  ```
76
76
 
77
77
  ### 下載舊版
@@ -115,6 +115,7 @@ neurostats_API/transformers/profit_lose/twse.py
115
115
  neurostats_API/transformers/profit_lose/us.py
116
116
  neurostats_API/transformers/tej/__init__.py
117
117
  neurostats_API/transformers/tej/base.py
118
+ neurostats_API/transformers/tej/chip.py
118
119
  neurostats_API/transformers/tej/finance_statement.py
119
120
  neurostats_API/transformers/value/__init__.py
120
121
  neurostats_API/transformers/value/base.py
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
2
2
 
3
3
  setup(
4
4
  name='neurostats_API',
5
- version='1.0.2rc1',
5
+ version='1.0.2rc3',
6
6
  long_description=open('README.md', 'r', encoding='utf-8').read(),
7
7
  long_description_content_type='text/markdown',
8
8
  install_requires=[
@@ -1,29 +0,0 @@
1
- from datetime import datetime
2
-
3
- class StatsDateTime():
4
-
5
- def __init__(self, date, year, month, day, season):
6
- self.date = date
7
- self.year = year
8
- self.month = month
9
- self.day = day
10
- self.season = season
11
-
12
- @classmethod
13
- def get_today(cls):
14
- today = datetime.today()
15
- this_year = today.year
16
- this_month = today.month
17
- this_day = today.day
18
- this_season = ((this_month - 1) // 3) + 1
19
-
20
- return StatsDateTime(today, this_year, this_month, this_day,
21
- this_season)
22
-
23
- @classmethod
24
- def get_latest_time(cls, ticker, collection):
25
- return collection.find_one(
26
- { "ticker" : ticker },
27
- { "_id": 0, "last_update_time": 1 }
28
- )
29
-