analyser_hj3415 2.4.0__py2.py3-none-any.whl → 2.5.1__py2.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.
- analyser_hj3415/.DS_Store +0 -0
- analyser_hj3415/analysers/eval.py +295 -289
- analyser_hj3415/analysers/report.py +182 -182
- analyser_hj3415/analysers/score.py +364 -364
- analyser_hj3415/cli.py +11 -3
- analyser_hj3415/myredis.py +16 -19
- analyser_hj3415/tools.py +1 -0
- {analyser_hj3415-2.4.0.dist-info → analyser_hj3415-2.5.1.dist-info}/METADATA +2 -2
- analyser_hj3415-2.5.1.dist-info/RECORD +14 -0
- analyser_hj3415-2.4.0.dist-info/RECORD +0 -14
- {analyser_hj3415-2.4.0.dist-info → analyser_hj3415-2.5.1.dist-info}/LICENSE +0 -0
- {analyser_hj3415-2.4.0.dist-info → analyser_hj3415-2.5.1.dist-info}/WHEEL +0 -0
- {analyser_hj3415-2.4.0.dist-info → analyser_hj3415-2.5.1.dist-info}/entry_points.txt +0 -0
analyser_hj3415/cli.py
CHANGED
@@ -3,9 +3,10 @@ from utils_hj3415 import noti
|
|
3
3
|
|
4
4
|
|
5
5
|
def analyser():
|
6
|
-
from analyser_hj3415.myredis import red_ranking
|
6
|
+
from analyser_hj3415.myredis import red_ranking, mil_n_score
|
7
7
|
commands = {
|
8
|
-
'ranking': red_ranking
|
8
|
+
'ranking': red_ranking,
|
9
|
+
'mil': mil_n_score,
|
9
10
|
}
|
10
11
|
parser = argparse.ArgumentParser()
|
11
12
|
parser.add_argument('command', help=f"Commands - {commands.keys()}")
|
@@ -17,7 +18,14 @@ def analyser():
|
|
17
18
|
if args.command == 'ranking':
|
18
19
|
print(commands['ranking']())
|
19
20
|
if args.noti:
|
20
|
-
noti.telegram_to('manager', "오늘의 red ranking을 저장했습니다.(유효 12시간)")
|
21
|
+
noti.telegram_to('manager', "오늘의 red ranking을 레디스캐시에 저장했습니다.(유효 12시간)")
|
22
|
+
elif args.command == 'mil':
|
23
|
+
print("**** mil_n_score ****")
|
24
|
+
for code, _ in red_ranking().items():
|
25
|
+
print("<<<<< ", code, ">>>>>")
|
26
|
+
print(commands['mil'](code))
|
27
|
+
if args.noti:
|
28
|
+
noti.telegram_to('manager', "오늘의 mil and score를 레디스캐시에 저장했습니다.(유효 12시간)")
|
21
29
|
else:
|
22
30
|
print(f"The command should be in {list(commands.keys())}")
|
23
31
|
|
analyser_hj3415/myredis.py
CHANGED
@@ -23,10 +23,10 @@ def red_ranking() -> OrderedDict:
|
|
23
23
|
# redis에 해당하는 값이 없는 경우
|
24
24
|
data = {}
|
25
25
|
for i, code in enumerate(db_myredis.Corps.list_all_codes()):
|
26
|
-
|
27
|
-
if
|
26
|
+
red_score = score.red(code)
|
27
|
+
if red_score <= 0:
|
28
28
|
continue
|
29
|
-
data[code] =
|
29
|
+
data[code] = red_score
|
30
30
|
# print(i, code, s)
|
31
31
|
|
32
32
|
# print(data)
|
@@ -39,14 +39,11 @@ def red_ranking() -> OrderedDict:
|
|
39
39
|
# ordereddict를 이용해서 딕셔너리의 값을 기준으로 내림차순 정렬함.
|
40
40
|
return OrderedDict(sorted(data.items(), key=lambda item: item[1], reverse=True))
|
41
41
|
else:
|
42
|
-
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600,1)}시간) - myredis.red_ranking")
|
42
|
+
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600, 1)}시간) - myredis.red_ranking")
|
43
43
|
# ordereddict를 이용해서 딕셔너리의 값을 기준으로 내림차순 정렬함.
|
44
44
|
return OrderedDict(sorted(json.loads(cached_data).items(), key=lambda item: item[1], reverse=True))
|
45
45
|
|
46
46
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
47
|
def red_n_score(code: str) -> dict:
|
51
48
|
"""
|
52
49
|
redis 사용 - 소멸타이머 사용
|
@@ -71,12 +68,12 @@ def red_n_score(code: str) -> dict:
|
|
71
68
|
if data:
|
72
69
|
# 데이터를 Redis에 캐싱
|
73
70
|
Base.redis_client.set(redis_name, json.dumps(data))
|
74
|
-
#
|
75
|
-
Base.redis_client.expire(redis_name, 3600)
|
71
|
+
# 12시간 후 키가 자동으로 제거됨
|
72
|
+
Base.redis_client.expire(redis_name, 3600 * 12)
|
76
73
|
print("analysers.eval 데이터 계산하기 - myredis.red")
|
77
74
|
return data
|
78
75
|
else:
|
79
|
-
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{Base.redis_client.ttl(redis_name)}
|
76
|
+
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600, 1)}시간) - myredis.red")
|
80
77
|
return json.loads(cached_data)
|
81
78
|
|
82
79
|
|
@@ -127,12 +124,12 @@ def mil_n_score(code: str) -> dict:
|
|
127
124
|
if data:
|
128
125
|
# 데이터를 Redis에 캐싱
|
129
126
|
Base.redis_client.set(redis_name, json.dumps(data))
|
130
|
-
#
|
131
|
-
Base.redis_client.expire(redis_name, 3600)
|
127
|
+
# 12시간 후 키가 자동으로 제거됨
|
128
|
+
Base.redis_client.expire(redis_name, 3600 * 12)
|
132
129
|
print("analysers.eval 데이터 계산하기 - myredis.mil")
|
133
130
|
return data
|
134
131
|
else:
|
135
|
-
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{Base.redis_client.ttl(redis_name)}
|
132
|
+
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600, 1)}시간) - myredis.mil")
|
136
133
|
return json.loads(cached_data)
|
137
134
|
|
138
135
|
|
@@ -179,12 +176,12 @@ def blue_n_score(code: str) -> dict:
|
|
179
176
|
if data:
|
180
177
|
# 데이터를 Redis에 캐싱
|
181
178
|
Base.redis_client.set(redis_name, json.dumps(data))
|
182
|
-
#
|
183
|
-
Base.redis_client.expire(redis_name, 3600)
|
179
|
+
# 12시간 후 키가 자동으로 제거됨
|
180
|
+
Base.redis_client.expire(redis_name, 3600 * 12)
|
184
181
|
print("analysers.eval 데이터 계산하기 - myredis.blue")
|
185
182
|
return data
|
186
183
|
else:
|
187
|
-
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{Base.redis_client.ttl(redis_name)}
|
184
|
+
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600, 1)}시간) - myredis.blue")
|
188
185
|
return json.loads(cached_data)
|
189
186
|
|
190
187
|
|
@@ -212,10 +209,10 @@ def growth_n_score(code: str) -> dict:
|
|
212
209
|
if data:
|
213
210
|
# 데이터를 Redis에 캐싱
|
214
211
|
Base.redis_client.set(redis_name, json.dumps(data))
|
215
|
-
#
|
216
|
-
Base.redis_client.expire(redis_name, 3600)
|
212
|
+
# 12시간 후 키가 자동으로 제거됨
|
213
|
+
Base.redis_client.expire(redis_name, 3600 * 12)
|
217
214
|
print("analysers.eval 데이터 계산하기 - myredis.growth")
|
218
215
|
return data
|
219
216
|
else:
|
220
|
-
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{Base.redis_client.ttl(redis_name)}
|
217
|
+
print(f"Redis 캐시에서 데이터 가져오기(남은시간:{round(Base.redis_client.ttl(redis_name)/3600, 1)}시간) - myredis.growth")
|
221
218
|
return json.loads(cached_data)
|
analyser_hj3415/tools.py
CHANGED
@@ -31,6 +31,7 @@ def calc당기순이익(code: str) -> Tuple[str, float]:
|
|
31
31
|
logger.debug(f'In the calc당기순이익... code:{code}')
|
32
32
|
c103q = C103(code, 'c103재무상태표q')
|
33
33
|
try:
|
34
|
+
# print("*(지배)당기순이익: ", c103q.latest_value_pop2('*(지배)당기순이익'))
|
34
35
|
return c103q.latest_value_pop2('*(지배)당기순이익')
|
35
36
|
except:
|
36
37
|
logger.warning(f"{code} - (지배)당기순이익이 없는 종목. 수동으로 계산합니다(금융관련업종일 가능성있음).")
|
@@ -1,12 +1,12 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: analyser_hj3415
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.5.1
|
4
4
|
Summary: Stock analyser and database processing programs
|
5
5
|
Author-email: Hyungjin Kim <hj3415@gmail.com>
|
6
6
|
Description-Content-Type: text/markdown
|
7
7
|
Classifier: License :: OSI Approved :: MIT License
|
8
8
|
Requires-Dist: utils-hj3415>=2.6.1
|
9
|
-
Requires-Dist: db-hj3415>=3.
|
9
|
+
Requires-Dist: db-hj3415>=3.6.10
|
10
10
|
Project-URL: Home, https://www.hyungjin.kr
|
11
11
|
|
12
12
|
### analyser-hj3415
|
@@ -0,0 +1,14 @@
|
|
1
|
+
analyser_hj3415/.DS_Store,sha256=qr9-0FPn5CFKe6kEu8_dWCNhzQ0sN7bwQgffKsaJEEo,6148
|
2
|
+
analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
+
analyser_hj3415/cli.py,sha256=NKE69OV8_G0HcBHnX_cM1Zr3-AmxyR7rX1kPv5cVT3o,1188
|
4
|
+
analyser_hj3415/myredis.py,sha256=T5ESGx1QBrO7mTMlSzqIm975Wks-X9WqrPWVWgFRHUE,10758
|
5
|
+
analyser_hj3415/tools.py,sha256=T7QYJekKvWNlJtiqu_FaiX3FGfDc71NY4vrbEDfBEt0,13705
|
6
|
+
analyser_hj3415/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
|
7
|
+
analyser_hj3415/analysers/eval.py,sha256=DIuy0jsF5zP2I26rDeGoeguqw3yvgud-3Pr6argDnYc,13310
|
8
|
+
analyser_hj3415/analysers/report.py,sha256=yY-AeDHOqDPrm4lpvZv3NPTJK1Z7lKsjoO5ck8AP6u4,9007
|
9
|
+
analyser_hj3415/analysers/score.py,sha256=tyc1NA_0K7b2mjTTMdJVH_OlqBAqAMrcPOvWPYFudfg,15853
|
10
|
+
analyser_hj3415-2.5.1.dist-info/entry_points.txt,sha256=vBiMpIhNh39VC3UPwgxQNPb54N8vMlr4g0zRcCOjPyo,57
|
11
|
+
analyser_hj3415-2.5.1.dist-info/LICENSE,sha256=QVKTp0dTnB5xG8RLgG17LwSWCKNEzYoVVM6KjoCPKc0,1079
|
12
|
+
analyser_hj3415-2.5.1.dist-info/WHEEL,sha256=Sgu64hAMa6g5FdzHxXv9Xdse9yxpGGMeagVtPMWpJQY,99
|
13
|
+
analyser_hj3415-2.5.1.dist-info/METADATA,sha256=mzmkIj7wOg2PFLxe0CVJWFq2AofzlUONCM-urpdyE7o,6418
|
14
|
+
analyser_hj3415-2.5.1.dist-info/RECORD,,
|
@@ -1,14 +0,0 @@
|
|
1
|
-
analyser_hj3415/.DS_Store,sha256=OQfTSOHL-zjUtnNyBpNRVUJUstR4j6I7jihKDFQQmME,6148
|
2
|
-
analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
3
|
-
analyser_hj3415/cli.py,sha256=fDLGwz5x_5Gy4yCkz1cNbhC3BhkYNZ1IqKglcGRvsu4,750
|
4
|
-
analyser_hj3415/myredis.py,sha256=i6o61be2qv41boVEM1mQG5QNCELr5zSq9mH1csVfUx8,10628
|
5
|
-
analyser_hj3415/tools.py,sha256=SNsrnL5CKmKAdFkmlwgREMIkWDRi6N9LngCdhhhop3Y,13606
|
6
|
-
analyser_hj3415/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
|
7
|
-
analyser_hj3415/analysers/eval.py,sha256=mlHi6EPc8l8O6vKnWyX4Cz1BaeGhUpWM8gVZRNhm-JU,13299
|
8
|
-
analyser_hj3415/analysers/report.py,sha256=whggmLXl7yF-BjQ6JKgxmhILT2T4uFP-rit_BSes9xM,9189
|
9
|
-
analyser_hj3415/analysers/score.py,sha256=j5bH_r2-Sc53JWgmdBmL7pJk9cc8oQ7iZkYRPPOA-so,16217
|
10
|
-
analyser_hj3415-2.4.0.dist-info/entry_points.txt,sha256=vBiMpIhNh39VC3UPwgxQNPb54N8vMlr4g0zRcCOjPyo,57
|
11
|
-
analyser_hj3415-2.4.0.dist-info/LICENSE,sha256=QVKTp0dTnB5xG8RLgG17LwSWCKNEzYoVVM6KjoCPKc0,1079
|
12
|
-
analyser_hj3415-2.4.0.dist-info/WHEEL,sha256=Sgu64hAMa6g5FdzHxXv9Xdse9yxpGGMeagVtPMWpJQY,99
|
13
|
-
analyser_hj3415-2.4.0.dist-info/METADATA,sha256=UiSrI8LK1WK8WWhrIqxcY6tAC0B4_ks-7eg3HI3m498,6417
|
14
|
-
analyser_hj3415-2.4.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|