analyser_hj3415 2.9.3__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,232 @@
1
+ Metadata-Version: 2.1
2
+ Name: analyser_hj3415
3
+ Version: 2.9.3
4
+ Summary: Stock analyser and database processing programs
5
+ Requires-Python: >=3.6
6
+ Description-Content-Type: text/markdown
7
+ Requires-Dist: utils-hj3415>=2.9.2
8
+ Requires-Dist: db-hj3415>=4.0.3
9
+ Requires-Dist: scikit-learn>=1.5.2
10
+ Requires-Dist: plotly>=5.24.1
11
+ Requires-Dist: yfinance>=0.2.44
12
+ Requires-Dist: prophet>=1.1.6
13
+ Requires-Dist: kaleido>=0.2.1
14
+ Requires-Dist: matplotlib>=3.9.2
15
+
16
+ ### analyser-hj3415
17
+
18
+ #### Introduction
19
+ analyser_hj3415 manage the database.
20
+
21
+ ---
22
+ #### Requirements
23
+
24
+ pandas>=2.2.2
25
+ pymongo>=4.8.0
26
+ sqlalchemy>=2.0.31
27
+ utils-hj3415>=2.0.1
28
+ scraper-hj3415>=2.0.0
29
+
30
+ ---
31
+ #### API
32
+
33
+ ---
34
+ #### Install
35
+
36
+
37
+ ---
38
+ #### Composition
39
+ analyser_hj3415 모듈은 세가지 파트로 구성되어 있습니다.
40
+
41
+ 1. setting 모듈
42
+ setting 모듈은 데이터베이스를 활성화하고 주소를 설정하는 역할을 합니다.
43
+ 데이터베이스의 주소와 활성화 여부를 파일에 저장합니다.
44
+
45
+ ```python
46
+ from analyser_hj3415 import setting
47
+
48
+ # 현재 데이터 베이스 상태를 DbSetting 클래스 형식으로 반환한다.
49
+ db_setting = setting.load_df()
50
+
51
+ # 현재 데이터베이스 상태 출력
52
+ print(db_setting)
53
+
54
+ # 몽고db 주소 변경 (2가지 방식)
55
+ setting.chg_mongo_addr('mongodb://192.168.0.173:27017')
56
+ db_setting.mongo_addr = 'mongodb://192.168.0.173:27017'
57
+
58
+ # sqlite3 주소 변경 (2가지 방식)
59
+ setting.chg_sqlite3_path('/home/hj3415/Stock/_db')
60
+ db_setting.sqlite3_path = '/home/hj3415/Stock/_db'
61
+
62
+ # 데이터베이스를 기본값으로 설정합니다.
63
+ # DEF_MONGO_ADDR = 'mongodb://localhost:27017'
64
+ # DEF_WIN_SQLITE3_PATH = 'C:\\_db'
65
+ # DEF_LINUX_SQLITE3_PATH = '/home/hj3415/Stock/_db'
66
+ setting.set_default()
67
+
68
+ # 각 데이터베이스 사용 설정
69
+ setting.turn_on_mongo()
70
+ setting.turn_off_mongo()
71
+ setting.turn_off_sqlite3()
72
+ setting.turn_on_sqlite3()
73
+ ```
74
+
75
+ 2. mongo 모듈
76
+ 몽고db를 데이터베이스로 사용할 경우를 위한 함수들의 모듈입니다.
77
+ 현재는 몽고db를 비활성화 할 경우 올바로 작동하지 않기 때문에 디폴트 데이터베이스 입니다.
78
+
79
+ 1) Base 클래스
80
+
81
+ 모든 데이터베이스 클래스의 기반 클래스로 실제 직접 사용하지 않음.
82
+
83
+ ```python
84
+ from analyser_hj3415.mongo import Base
85
+ base = Base(db='mi', col='kospi')
86
+
87
+ # db 주소를 변경함. 단 파일에 저장되는 것이 아니라 클래스 내부에서 일시적으로 설정하는 것임
88
+ base.chg_addr('mongodb://192.168.0.173:27017')
89
+
90
+ # 현재 설정된 db 주소, db 명, 컬렉션을 반환함.
91
+ base.get_status()
92
+ # ('mongodb://192.168.0.173:27017', 'mi', 'kospi')
93
+
94
+ # 데이터 베이스 관리 함수
95
+ base.get_all_db()
96
+ ```
97
+
98
+ 2 - 1) Corps 클래스
99
+
100
+ DB 내에서 종목에 관련된 기반클래스로 db명은 6자리 숫자 코드명임.
101
+
102
+ ```python
103
+ from analyser_hj3415.mongo import Corps
104
+
105
+ corps = Corps(code='005930', page='c101')
106
+
107
+ # 코드를 변경함. 6자리 숫자인지 확인 후 설정함.
108
+ corps.chg_code('005490')
109
+
110
+ # 페이지를 변경함. 페이지명의 유효성 확인 후 설정함.
111
+ # ('c101', 'c104y', 'c104q', 'c106', 'c108', 'c103손익계산서q', 'c103재무상태표q', 'c103현금흐름표q', 'c103손익계산서y', 'c103재무상태표y', 'c103현금흐름표y', 'dart')
112
+ corps.chg_page(page='c108')
113
+
114
+ # 데이터 베이스 관리 함수
115
+ corps.get_all_codes()
116
+ corps.del_all_codes()
117
+ corps.drop_corp(code='005930')
118
+ corps.get_all_pages()
119
+ corps.drop_all_pages(code='005930')
120
+ corps.drop_page(code='005930', page='c101')
121
+ corps.get_all_item()
122
+ ```
123
+
124
+ 2 - 2) MI 클래스
125
+
126
+ DB 내에서 Market index 관련 클래스
127
+
128
+ ```python
129
+ from analyser_hj3415.mongo import MI
130
+ mi = MI(index='kospi')
131
+
132
+ # 인덱스를 변경함. 인덱스명의 유효성 확인 후 설정
133
+ # ('aud', 'chf', 'gbond3y', 'gold', 'silver', 'kosdaq', 'kospi', 'sp500', 'usdkrw', 'wti', 'avgper', 'yieldgap', 'usdidx')
134
+ mi.chg_index(index='gold')
135
+
136
+ # 저장된 가장 최근 값 반환
137
+ mi.get_recent()
138
+
139
+ # 데이터를 저장함.
140
+ mi.save(mi_dict={'date': '2021.07.21', 'value': '1154.50'})
141
+
142
+ # 데이터 베이스 관리 함수
143
+ mi.get_all_indexes()
144
+ mi.drop_all_indexes()
145
+ mi.drop_index(index='silver')
146
+ mi.get_all_item()
147
+ ```
148
+
149
+ 2 - 3) DartByDate 클래스
150
+
151
+ dart_hj3415의 dart 모듈에서 dart 데이터프레임을 추출하면 각 날짜별 컬렉션으로 저장하는 클래스
152
+
153
+ ```python
154
+ from dart_hj3415 import dart
155
+ from analyser_hj3415.mongo import DartByDate
156
+
157
+ date = '20210812'
158
+ dart_db = DartByDate(date=date)
159
+
160
+ # 오늘 날짜의 dart 데이터프레임을 추출하여 데이터베이스에 저장
161
+ df = dart.get_df(edate=date)
162
+ dart_db.save(df)
163
+
164
+ # 공시 데이터를 데이터프레임으로 반환한다.
165
+ dart_db.get_data()
166
+ dart_db.get_data(title='임원ㆍ주요주주특정증권등소유상황보고서')
167
+ ```
168
+
169
+ 2 - 4) EvalByDate 클래스
170
+
171
+ eval_hj3415의 eval 모듈에서 eval 데이터프레임을 추출하여 저장하거나 불러올때 사용.
172
+ (실제로 eval_hj3415.eval.make_today_eval_df()에서 오늘자 데이터프레임을 항상 저장한다)
173
+
174
+ ```python
175
+ import pandas as pd
176
+ import datetime
177
+ from analyser_hj3415.mongo import EvalByDate
178
+
179
+ today_str = datetime.datetime.today().strftime('%Y%m%d')
180
+ eval_db = EvalByDate(date=today_str)
181
+
182
+ # 오늘 날짜의 dart 데이터프레임을 추출하여 데이터베이스에 저장
183
+ eval_db.save(pd.DataFrame())
184
+
185
+ # 공시 데이터를 데이터프레임으로 반환한다.
186
+ eval_db.get_data()
187
+ ```
188
+
189
+ 2 - 5) Noti 클래스
190
+
191
+ dart_hj3415의 analysis 모듈에서 공시를 분석하여 의미있는 공시를 노티하고 노티한 기록을 저장하는 클래스
192
+
193
+ ```python
194
+ from analyser_hj3415.mongo import Noti
195
+ noti_db = Noti()
196
+
197
+ # 저장이 필요한 노티 데이터를 딕셔너리로 전달하여 데이터베이스에 저장
198
+ data = {'code': '005930',
199
+ 'rcept_no': '20210514000624',
200
+ 'rcept_dt': '20210514',
201
+ 'report_nm': '임원ㆍ주요주주특정증권등소유상황보고서',
202
+ 'point': 2,
203
+ 'text': '등기임원이 1.0억 이상 구매하지 않음.'}
204
+ noti_db.save(noti_dict=data)
205
+
206
+ # 오래된 노티 데이터를 정리하는 함수
207
+ noti_db.cleaning_data(days_ago=15)
208
+ ```
209
+
210
+ 3) Corps
211
+
212
+ C101 페이지 관리 클래스
213
+
214
+ ```python
215
+ from analyser_hj3415.mongo import C101
216
+ c101 = C101(code='005930')
217
+ ...
218
+ ```
219
+
220
+ 구현 클래스는 C101, C108, C106, C103, C104
221
+
222
+ 3. sqlite 모듈
223
+ sqlite3를 데이테베이스로 사용할 경우를 위한 함수들의 모듈입니다.
224
+ 현재 sqlite3는 사용하지 않기 때문에 작동하지 않습니다.
225
+
226
+ ```python
227
+ from analyser_hj3415 import sqlite
228
+
229
+ ```
230
+ ---
231
+
232
+
@@ -0,0 +1,14 @@
1
+ analyser_hj3415/.DS_Store,sha256=S5yjTP1issWmV5kF2CFjGHm5OJHgkuTaZHuxjIwSkfc,6148
2
+ analyser_hj3415/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ analyser_hj3415/cli.py,sha256=EW0-lIrpZHNNeDKksxC4qDBCiHPkYMGMHsZhAg6VsS8,12870
4
+ analyser_hj3415/eval.py,sha256=WWIvB4BebjW9GNGcF8rMd-MLL-lPXUBOH01_FpSq95I,38811
5
+ analyser_hj3415/tsa.py,sha256=rjhQ-JOXXQaTm8xY6o1KNkuycVGtxLPp3X1Z5jcSE14,25249
6
+ analyser_hj3415/workroom/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ analyser_hj3415/workroom/mysklearn.py,sha256=wJXKz5MqqTzADdG2mqRMMzc_G9RzwYjj5_j4gyOopxQ,2030
8
+ analyser_hj3415/workroom/mysklearn2.py,sha256=1lIy6EWEQHkOzDS-av8U0zQH6DuCLKWMI73dnJx5KRs,1495
9
+ analyser_hj3415/workroom/score.py,sha256=P6nHBJYmyhigGtT4qna4BmNtvt4B93b7SKyzdstJK24,17376
10
+ analyser_hj3415/workroom/trash.py,sha256=zF-W0piqkGr66UP6-iybo9EXh2gO0RP6R1FnIpsGkl8,12262
11
+ analyser_hj3415-2.9.3.dist-info/entry_points.txt,sha256=ZfjPnJuH8SzvhE9vftIPMBIofsc65IAWYOhqOC_L5ck,65
12
+ analyser_hj3415-2.9.3.dist-info/WHEEL,sha256=EZbGkh7Ie4PoZfRQ8I0ZuP9VklN_TvcZ6DSE5Uar4z4,81
13
+ analyser_hj3415-2.9.3.dist-info/METADATA,sha256=t3Efk2jKXtwR33FsmRkOw6Fr6jZ7Vj0zXkGJ-ZOnrhM,6490
14
+ analyser_hj3415-2.9.3.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: flit 3.9.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
@@ -0,0 +1,3 @@
1
+ [console_scripts]
2
+ analyser=analyser_hj3415.cli:analyser_manager
3
+