neurostats-API 1.0.2rc2__py3-none-any.whl → 1.0.2rc4__py3-none-any.whl
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/__init__.py +3 -2
- neurostats_API/async_mode/__init__.py +2 -1
- neurostats_API/async_mode/db_extractors/__init__.py +2 -1
- neurostats_API/async_mode/db_extractors/daily/__init__.py +1 -1
- neurostats_API/async_mode/db_extractors/daily/tej_tech.py +75 -1
- neurostats_API/async_mode/fetchers/__init__.py +1 -1
- neurostats_API/async_mode/fetchers/tech.py +30 -3
- neurostats_API/transformers/__init__.py +2 -1
- neurostats_API/transformers/daily_chip/us.py +1 -0
- neurostats_API/transformers/daily_tech/__init__.py +1 -1
- neurostats_API/transformers/daily_tech/tech.py +34 -3
- {neurostats_API-1.0.2rc2.dist-info → neurostats_API-1.0.2rc4.dist-info}/METADATA +2 -2
- {neurostats_API-1.0.2rc2.dist-info → neurostats_API-1.0.2rc4.dist-info}/RECORD +15 -17
- neurostats_API/async_mode/fetchers/tej/chip.py +0 -0
- neurostats_API/transformers/tej/chip.py +0 -0
- {neurostats_API-1.0.2rc2.dist-info → neurostats_API-1.0.2rc4.dist-info}/WHEEL +0 -0
- {neurostats_API-1.0.2rc2.dist-info → neurostats_API-1.0.2rc4.dist-info}/top_level.txt +0 -0
neurostats_API/__init__.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
__version__='1.0.
|
1
|
+
__version__='1.0.2rc4'
|
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
|
)
|
@@ -1,5 +1,5 @@
|
|
1
1
|
from .base import BaseDailyTechDBExtractor
|
2
|
-
|
2
|
+
from pymongo import AsyncMongoClient, ASCENDING, DESCENDING
|
3
3
|
|
4
4
|
class AsyncTEJDailyTechDBExtractor(BaseDailyTechDBExtractor):
|
5
5
|
|
@@ -10,3 +10,77 @@ class AsyncTEJDailyTechDBExtractor(BaseDailyTechDBExtractor):
|
|
10
10
|
self.collection_name_map = {"tw": "TEJ_share_price"}
|
11
11
|
|
12
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
|
@@ -1,7 +1,7 @@
|
|
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
|
@@ -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
|
@@ -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
|
"""
|
@@ -1 +1 @@
|
|
1
|
-
from .tech import DailyTechTransformer
|
1
|
+
from .tech import DailyTechTransformer, BatchTechTransformer
|
@@ -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)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: neurostats_API
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.2rc4
|
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.2rc4
|
75
75
|
```
|
76
76
|
|
77
77
|
### 下載舊版
|
@@ -1,18 +1,18 @@
|
|
1
|
-
neurostats_API/__init__.py,sha256=
|
1
|
+
neurostats_API/__init__.py,sha256=lqzvOX1tBwUlQfW87tzsn5C-nkRFIjP-cip26QsCBtg,731
|
2
2
|
neurostats_API/cli.py,sha256=UJSWLIw03P24p-gkBb6JSEI5dW5U12UvLf1L8HjQD-o,873
|
3
3
|
neurostats_API/main.py,sha256=QcsfmWivg2Dnqw3MTJWiI0QvEiRs0VuH-BjwQHFCv00,677
|
4
|
-
neurostats_API/async_mode/__init__.py,sha256=
|
4
|
+
neurostats_API/async_mode/__init__.py,sha256=QEXBsl8djMMnsrdbPVIun1CmZ7NqAGekwhIAGkbeijU,404
|
5
5
|
neurostats_API/async_mode/db/__init__.py,sha256=7g0OJXgPsIDWRmH25h666cLlvVYpEDyWGXAVCHsNht0,86
|
6
6
|
neurostats_API/async_mode/db/base.py,sha256=63kW2cKBSrs0B4RJaX_3Jv12UYD2APH8sRh2UEVKucw,676
|
7
7
|
neurostats_API/async_mode/db/tej.py,sha256=ku7CfhrSJ8gfUQ_NRjyjSz-OFmqyCGGnXz8Tpue5gP0,324
|
8
8
|
neurostats_API/async_mode/db/twse.py,sha256=YZA-NUZ01EAUKPsaNEaZn3cuzeL9n1fi03aBiHUJGAA,220
|
9
9
|
neurostats_API/async_mode/db/us.py,sha256=SgoU_OpSkpmrlBiNvy5xgyssb7-xK8ptezi4SR00t4I,271
|
10
|
-
neurostats_API/async_mode/db_extractors/__init__.py,sha256=
|
10
|
+
neurostats_API/async_mode/db_extractors/__init__.py,sha256=sxxMBCiCLqG0lNEpoqX5HNnShd-fRIVQjA7aGT-Xzeo,543
|
11
11
|
neurostats_API/async_mode/db_extractors/base.py,sha256=DLtNONV5F9Lj3OlXeGm_bnR6AMA5d6tL3r7na4H7FRE,2221
|
12
|
-
neurostats_API/async_mode/db_extractors/daily/__init__.py,sha256=
|
12
|
+
neurostats_API/async_mode/db_extractors/daily/__init__.py,sha256=LiXk4Ai3ZQ31JapQ_t-BVY6Pf4ULVLfbCiJ1c04tEgA,333
|
13
13
|
neurostats_API/async_mode/db_extractors/daily/base.py,sha256=ePvYxqOypy0F9VI33nSJQGpG5zMNO_EGZ3owVUeKFLw,3204
|
14
14
|
neurostats_API/async_mode/db_extractors/daily/tej_chip.py,sha256=Ywc0iIIPWw1VdtVc2_s1CNrgj0_G1wOaGzrgyVTN2k8,414
|
15
|
-
neurostats_API/async_mode/db_extractors/daily/tej_tech.py,sha256=
|
15
|
+
neurostats_API/async_mode/db_extractors/daily/tej_tech.py,sha256=33RGc_Pxf0FPqoG1Mdjtj9aSR3Yrdplh4bskNAPXUfk,2610
|
16
16
|
neurostats_API/async_mode/db_extractors/daily/twse_chip.py,sha256=WICwcsy2m_2ua9UnIjs_SZGFq7m2-UByx9x7TCk_rlY,1490
|
17
17
|
neurostats_API/async_mode/db_extractors/daily/us_chip.py,sha256=0Ycuqy3lqwA0kxAhv-KVqMUEMGQhOV3YMbHarWWT2PQ,4154
|
18
18
|
neurostats_API/async_mode/db_extractors/daily/value.py,sha256=j5QjFOhmvVum0D10prcZZ7_sxrojA-b8sP72Ge9lOnY,2859
|
@@ -29,20 +29,19 @@ neurostats_API/async_mode/db_extractors/seasonal/tej.py,sha256=SqObDqR3uOnxXGF12
|
|
29
29
|
neurostats_API/async_mode/factory/__init__.py,sha256=7dw36HPjV9JHfEBF7n1pA8i4f-07ACKREnGMUHxh7KY,45
|
30
30
|
neurostats_API/async_mode/factory/extractor_factory.py,sha256=NlCH2zM8Qq4zObQG9n4rixCcuFBQmkJz7dS-LARPwXA,4774
|
31
31
|
neurostats_API/async_mode/factory/transformer_factory.py,sha256=atw_-wPz2JZpJscPVE2jvFB6QNwwmcRNKQH9iai-13E,4942
|
32
|
-
neurostats_API/async_mode/fetchers/__init__.py,sha256=
|
32
|
+
neurostats_API/async_mode/fetchers/__init__.py,sha256=YBUx-xLozINmx8cMAivQxBqAFub9xJgpM3SCrg2z2DQ,628
|
33
33
|
neurostats_API/async_mode/fetchers/balance_sheet.py,sha256=wzlXW5gPh5S5MD5jIUB_yeEL_aW2_CeX2DNKBio0-EA,1129
|
34
34
|
neurostats_API/async_mode/fetchers/base.py,sha256=fWlPmvsQWHcgv8z36BsXj8Y92-VKmr8cUW1EjkqI3_8,1785
|
35
35
|
neurostats_API/async_mode/fetchers/cash_flow.py,sha256=uj2JEbilgn595yJcMNvlTZHdkvu7E9y2e7rqs_ne270,2130
|
36
36
|
neurostats_API/async_mode/fetchers/finance_overview.py,sha256=YETx7uxS6OQgzJ0v_3JMJoUfuWciWmKAzitm91XffHk,4441
|
37
37
|
neurostats_API/async_mode/fetchers/month_revenue.py,sha256=GDrFrjTe81uAzeKvd5HghH9iPXouXL8JTt8hfaFkig4,1258
|
38
38
|
neurostats_API/async_mode/fetchers/profit_lose.py,sha256=-YMqO6hEbGntAeAf9y66LX56fj6VrHWr1_IIbQ_bUBQ,1483
|
39
|
-
neurostats_API/async_mode/fetchers/tech.py,sha256=
|
39
|
+
neurostats_API/async_mode/fetchers/tech.py,sha256=HVP_hUic_M7iKsrhrx2gzr1Am_ql0-3GY4Hg6kl610s,7896
|
40
40
|
neurostats_API/async_mode/fetchers/twse_institution.py,sha256=DKyecoIa_2-CUfDXKp2dBFJk0lfCBIr2steVVa-jq9o,2055
|
41
41
|
neurostats_API/async_mode/fetchers/twse_margin.py,sha256=wra84uFh9ooCoyFWhRuV4vP3Uhojc13XHx51UD90uYo,3173
|
42
42
|
neurostats_API/async_mode/fetchers/us_chip.py,sha256=1C7wsdgXkf4SOHUyqGKNEsr0Ijds7l4jLLsPMYyMRQo,2365
|
43
43
|
neurostats_API/async_mode/fetchers/value.py,sha256=7FpO0_BOOvq4ZlwwaIfSD8xO_s1O8ykxz147fkiZIt4,2883
|
44
44
|
neurostats_API/async_mode/fetchers/tej/__init__.py,sha256=QNXGg1gE_bnkZWybulRZXtcCPWV6Aj1nLz7r0Mo4BN0,93
|
45
|
-
neurostats_API/async_mode/fetchers/tej/chip.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
46
45
|
neurostats_API/async_mode/fetchers/tej/seasonal_data.py,sha256=oeMpj4GMzw22KHjVDTcVO2hwVfxmnO291N6O_dKp0sw,2836
|
47
46
|
neurostats_API/async_mode/fetchers/tej/tech.py,sha256=0wG2bep_nJp3kBS0nIzH6191R5bwEeS-upK40DTGpjU,1110
|
48
47
|
neurostats_API/config/company_list/ticker_index_industry_map.json,sha256=JPSrkMrxOg5GB6HoOhOKeCatznvGAFJpWt92iAhutak,162681
|
@@ -71,7 +70,7 @@ neurostats_API/fetchers/profit_lose.py,sha256=MUTPPXHWZhhvcq1YzrY1dalFIXljUUG3Uu
|
|
71
70
|
neurostats_API/fetchers/tech.py,sha256=_718Na2r3K3c9f-3cIx42jIg5g_mDHNrV6aZYFFba8A,16020
|
72
71
|
neurostats_API/fetchers/tej_finance_report.py,sha256=mlIm2Qzs8-Xlzeb8uET8qGPWD3VGUx3g8qFFcY4UbAw,13022
|
73
72
|
neurostats_API/fetchers/value_invest.py,sha256=QxQS2GcoLIU9ZBDEo8iRK2yHd8YLmBS70Bq42F3IsSw,8295
|
74
|
-
neurostats_API/transformers/__init__.py,sha256=
|
73
|
+
neurostats_API/transformers/__init__.py,sha256=97chXti5azul51ywTgl1Yk22t6oRX_yoGSBZGhcBVNY,755
|
75
74
|
neurostats_API/transformers/base.py,sha256=gFRuLmFzZl0HObEtMr78oscFP3ePBseMW7tB4s51-_c,4795
|
76
75
|
neurostats_API/transformers/balance_sheet/__init__.py,sha256=RCScBsR3zeC5UdyuiHD1CGRQufoFL5LkN8WbtI5JeA4,87
|
77
76
|
neurostats_API/transformers/balance_sheet/base.py,sha256=sEap9uHe-nri8F4gPV_FCVm0Qe6KWgpHt6a2ryAPd_8,1676
|
@@ -85,14 +84,14 @@ neurostats_API/transformers/daily_chip/__init__.py,sha256=-9y52t5cSvLq3ve9STe_Qh
|
|
85
84
|
neurostats_API/transformers/daily_chip/base.py,sha256=KBsnpACakJh2W-k4Kvv-dVNnSNbUCGMeqvQsTQkz-aE,184
|
86
85
|
neurostats_API/transformers/daily_chip/tej.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
86
|
neurostats_API/transformers/daily_chip/twse_chip.py,sha256=miMu5Si0tFndznf7E_T26c1hYtNqwHplbuB3htVzeGQ,14655
|
88
|
-
neurostats_API/transformers/daily_chip/us.py,sha256=
|
87
|
+
neurostats_API/transformers/daily_chip/us.py,sha256=PX_pRKDcYOZLqEFazbouH6dIXsAEZnTPQ4a9Wg1Y2Is,2007
|
89
88
|
neurostats_API/transformers/daily_chip/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
90
89
|
neurostats_API/transformers/daily_chip/utils/institution.py,sha256=1Zj9mxIhvwkmA599a1OYmdorPEAN_U3sl8uhvddxUW0,3384
|
91
90
|
neurostats_API/transformers/daily_chip/utils/margin_trading.py,sha256=oVY_OW63pcSc1TyM_jSPNAoj4HLyZCRshkdsHQsnxyk,38
|
92
91
|
neurostats_API/transformers/daily_chip/utils/security_lending.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
|
-
neurostats_API/transformers/daily_tech/__init__.py,sha256=
|
92
|
+
neurostats_API/transformers/daily_tech/__init__.py,sha256=u7rzSvzA6HfjEY-48Ko2rl0fT2wgIyvZWtJHqHjMI4Q,60
|
94
93
|
neurostats_API/transformers/daily_tech/base.py,sha256=95pN3EussgbYbDCwCP8x4aVnJtGpuEe8b1y1W53CTzA,185
|
95
|
-
neurostats_API/transformers/daily_tech/tech.py,sha256=
|
94
|
+
neurostats_API/transformers/daily_tech/tech.py,sha256=Vhx6YfZQT6kLZXwLIN70UNKLOam7BPAfIhiiEOnPK4s,3650
|
96
95
|
neurostats_API/transformers/daily_tech/utils/__init__.py,sha256=QvkOMEvBW5pIMjTKDBiyaJKq4_Z2NtpbLD7fiu_U6XM,36
|
97
96
|
neurostats_API/transformers/daily_tech/utils/processor.py,sha256=9zOjVFyWqzRXD5jIq2YkBGI4WZ8HFrI_ufssZgvKpdc,9314
|
98
97
|
neurostats_API/transformers/finance_overview/__init__.py,sha256=mWFn13YrugExrSQ7oJvnvP95W20_rQ1wOesrZY3XnSU,107
|
@@ -108,7 +107,6 @@ neurostats_API/transformers/profit_lose/twse.py,sha256=RwAJWQBdsjFaLlW-HL6oUGxLA
|
|
108
107
|
neurostats_API/transformers/profit_lose/us.py,sha256=q7Vbxp_xzB0SUsxIqQYENi3RayfqR6Nfynvt7p-KHlI,847
|
109
108
|
neurostats_API/transformers/tej/__init__.py,sha256=WihARZhphkvApsKr4U0--68m1M-Dc_rpV7xoV2fUV7E,61
|
110
109
|
neurostats_API/transformers/tej/base.py,sha256=YD6M3Iok-KXb5EDhqa_fUzJ-zWXLeoXPsavdDJD-ks4,5436
|
111
|
-
neurostats_API/transformers/tej/chip.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
112
110
|
neurostats_API/transformers/tej/finance_statement.py,sha256=rE-Kc94hzW8-xcKn6ry8LwwT8dSoGRKGsmvd5W4_SUs,2798
|
113
111
|
neurostats_API/transformers/value/__init__.py,sha256=D8qMk0aLsv7CBBJHo5zsq_UuBKmZYNyqS3s-RWfhvy8,73
|
114
112
|
neurostats_API/transformers/value/base.py,sha256=wR2LDiwGET126mwrPxYoApyl4lwx1MjWxFpOKLso_As,186
|
@@ -121,7 +119,7 @@ neurostats_API/utils/datetime.py,sha256=e6p2XIXaDMOWNJ2qnwqZBScC9J6kB6h0Ef1A7fuW
|
|
121
119
|
neurostats_API/utils/db_client.py,sha256=OYe6yazcR4Aa6jYmy47JrryUeh2NnKGqY2K_lSZe6i8,455
|
122
120
|
neurostats_API/utils/exception.py,sha256=yv92GVh5uHV1BgRmO4DwJcX_PtE0-TSgQoo3VnZ5hOQ,277
|
123
121
|
neurostats_API/utils/logger.py,sha256=egBiiPGTi5l1FoX_o6EvdGh81R0_k8hFPctSxq8RCoo,693
|
124
|
-
neurostats_API-1.0.
|
125
|
-
neurostats_API-1.0.
|
126
|
-
neurostats_API-1.0.
|
127
|
-
neurostats_API-1.0.
|
122
|
+
neurostats_API-1.0.2rc4.dist-info/METADATA,sha256=LQTUwcMFRU47PLST2IiXTp7PDVaStvfMxIpScTS-7O8,2964
|
123
|
+
neurostats_API-1.0.2rc4.dist-info/WHEEL,sha256=R06PA3UVYHThwHvxuRWMqaGcr-PuniXahwjmQRFMEkY,91
|
124
|
+
neurostats_API-1.0.2rc4.dist-info/top_level.txt,sha256=nSlQPMG0VtXivJyedp4Bkf86EOy2TpW10VGxolXrqnU,15
|
125
|
+
neurostats_API-1.0.2rc4.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|