ksxt 0.0.7__py3-none-any.whl → 0.0.9__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.
Files changed (141) hide show
  1. ksxt/__init__.py +3 -1
  2. ksxt/__pycache__/__init__.cpython-312.pyc +0 -0
  3. ksxt/__pycache__/bithumb.cpython-312.pyc +0 -0
  4. ksxt/__pycache__/koreainvest.cpython-312.pyc +0 -0
  5. ksxt/__pycache__/upbit.cpython-312.pyc +0 -0
  6. ksxt/api/__init__.py +26 -0
  7. ksxt/api/__pycache__/__init__.cpython-312.pyc +0 -0
  8. ksxt/api/__pycache__/bithumb.cpython-312.pyc +0 -0
  9. ksxt/api/__pycache__/koreainvest.cpython-312.pyc +0 -0
  10. ksxt/api/__pycache__/upbit.cpython-312.pyc +0 -0
  11. ksxt/api/auto/api_generator.py +54 -0
  12. ksxt/api/auto/bithumb.py +35 -0
  13. ksxt/api/auto/koreainvest.py +49 -0
  14. ksxt/api/auto/upbit.py +39 -0
  15. ksxt/api/bithumb.py +42 -0
  16. ksxt/api/koreainvest.py +40 -0
  17. ksxt/api/upbit.py +54 -0
  18. ksxt/async_/__init__.py +4 -0
  19. ksxt/async_/__pycache__/__init__.cpython-312.pyc +0 -0
  20. ksxt/async_/__pycache__/bithumb.cpython-312.pyc +0 -0
  21. ksxt/async_/__pycache__/koreainvest.cpython-312.pyc +0 -0
  22. ksxt/async_/__pycache__/upbit.cpython-312.pyc +0 -0
  23. ksxt/async_/base/__init__.py +0 -0
  24. ksxt/async_/base/__pycache__/__init__.cpython-312.pyc +0 -0
  25. ksxt/async_/base/__pycache__/async_exchange.cpython-312.pyc +0 -0
  26. ksxt/async_/base/__pycache__/throttler.cpython-312.pyc +0 -0
  27. ksxt/async_/base/async_exchange.py +232 -0
  28. ksxt/async_/base/throttler.py +63 -0
  29. ksxt/async_/bithumb.py +455 -0
  30. ksxt/async_/koreainvest.py +849 -0
  31. ksxt/async_/upbit.py +488 -0
  32. ksxt/base/__pycache__/__init__.cpython-312.pyc +0 -0
  33. ksxt/base/__pycache__/errors.cpython-312.pyc +0 -0
  34. ksxt/base/__pycache__/exchange.cpython-312.pyc +0 -0
  35. ksxt/base/__pycache__/rest_exchange.cpython-312.pyc +0 -0
  36. ksxt/base/__pycache__/types.cpython-312.pyc +0 -0
  37. ksxt/base/com_exchange.py +2 -2
  38. ksxt/base/errors.py +10 -0
  39. ksxt/base/exchange.py +188 -497
  40. ksxt/base/rest_exchange.py +297 -113
  41. ksxt/base/types.py +1 -36
  42. ksxt/bithumb.py +504 -0
  43. ksxt/config/__init__.py +2 -1
  44. ksxt/config/__pycache__/__init__.cpython-312.pyc +0 -0
  45. ksxt/config/bithumb.toml +380 -0
  46. ksxt/config/koreainvest.toml +312 -0
  47. ksxt/config/token.toml +7 -0
  48. ksxt/config/upbit.toml +428 -0
  49. ksxt/koreainvest.py +409 -1055
  50. ksxt/market/__pycache__/base.cpython-312.pyc +0 -0
  51. ksxt/market/__pycache__/db.cpython-312.pyc +0 -0
  52. ksxt/market/__pycache__/logging.cpython-312.pyc +0 -0
  53. ksxt/market/__pycache__/manager.cpython-312.pyc +0 -0
  54. ksxt/market/__pycache__/markets.cpython-312.pyc +0 -0
  55. ksxt/market/base.py +50 -50
  56. ksxt/market/db.py +5 -4
  57. ksxt/market/krx/__pycache__/kosdaq.cpython-312.pyc +0 -0
  58. ksxt/market/krx/__pycache__/kospi.cpython-312.pyc +0 -0
  59. ksxt/market/krx/__pycache__/stock.cpython-312.pyc +0 -0
  60. ksxt/market/krx/kosdaq.py +150 -147
  61. ksxt/market/krx/kospi.py +179 -175
  62. ksxt/market/krx/stock.py +136 -134
  63. ksxt/market/logging.py +4 -4
  64. ksxt/market/manager.py +11 -13
  65. ksxt/market/markets.py +1 -1
  66. ksxt/market/us/__pycache__/amex.cpython-312.pyc +0 -0
  67. ksxt/market/us/__pycache__/nasdaq.cpython-312.pyc +0 -0
  68. ksxt/market/us/__pycache__/nyse.cpython-312.pyc +0 -0
  69. ksxt/market/us/__pycache__/stock.cpython-312.pyc +0 -0
  70. ksxt/market/us/amex.py +31 -31
  71. ksxt/market/us/nasdaq.py +31 -31
  72. ksxt/market/us/nyse.py +31 -31
  73. ksxt/market/us/stock.py +20 -28
  74. ksxt/models/__init__.py +16 -0
  75. ksxt/models/__pycache__/__init__.cpython-312.pyc +0 -0
  76. ksxt/models/__pycache__/balance.cpython-312.pyc +0 -0
  77. ksxt/models/__pycache__/cash.cpython-312.pyc +0 -0
  78. ksxt/models/__pycache__/common.cpython-312.pyc +0 -0
  79. ksxt/models/__pycache__/error.cpython-312.pyc +0 -0
  80. ksxt/models/__pycache__/historical.cpython-312.pyc +0 -0
  81. ksxt/models/__pycache__/market.cpython-312.pyc +0 -0
  82. ksxt/models/__pycache__/order.cpython-312.pyc +0 -0
  83. ksxt/models/__pycache__/orderbook.cpython-312.pyc +0 -0
  84. ksxt/models/__pycache__/ticker.cpython-312.pyc +0 -0
  85. ksxt/models/__pycache__/token.cpython-312.pyc +0 -0
  86. ksxt/models/__pycache__/transaction.cpython-312.pyc +0 -0
  87. ksxt/models/balance.py +30 -0
  88. ksxt/models/cash.py +15 -0
  89. ksxt/models/common.py +31 -0
  90. ksxt/models/error.py +13 -0
  91. ksxt/models/historical.py +26 -0
  92. ksxt/models/market.py +81 -0
  93. ksxt/models/order.py +42 -0
  94. ksxt/models/orderbook.py +32 -0
  95. ksxt/models/ticker.py +25 -0
  96. ksxt/models/token.py +14 -0
  97. ksxt/models/transaction.py +79 -0
  98. ksxt/parser/__pycache__/bithumb.cpython-312.pyc +0 -0
  99. ksxt/parser/__pycache__/koreainvest.cpython-312.pyc +0 -0
  100. ksxt/parser/__pycache__/parser.cpython-312.pyc +0 -0
  101. ksxt/parser/__pycache__/upbit.cpython-312.pyc +0 -0
  102. ksxt/parser/bithumb.py +300 -0
  103. ksxt/parser/koreainvest.py +323 -0
  104. ksxt/parser/parser.py +114 -0
  105. ksxt/parser/upbit.py +308 -0
  106. ksxt/upbit.py +499 -0
  107. ksxt/utils/__pycache__/safer.cpython-312.pyc +0 -0
  108. ksxt/utils/__pycache__/sorter.cpython-312.pyc +0 -0
  109. ksxt/utils/__pycache__/timer.cpython-312.pyc +0 -0
  110. ksxt/utils/safer.py +48 -0
  111. ksxt/utils/sorter.py +8 -0
  112. ksxt/utils/timer.py +47 -0
  113. {ksxt-0.0.7.dist-info → ksxt-0.0.9.dist-info}/METADATA +11 -1
  114. ksxt-0.0.9.dist-info/RECORD +119 -0
  115. {ksxt-0.0.7.dist-info → ksxt-0.0.9.dist-info}/WHEEL +1 -1
  116. ksxt/__pycache__/__init__.cpython-39.pyc +0 -0
  117. ksxt/__pycache__/koreainvest.cpython-39.pyc +0 -0
  118. ksxt/base/__pycache__/__init__.cpython-39.pyc +0 -0
  119. ksxt/base/__pycache__/exchange.cpython-39.pyc +0 -0
  120. ksxt/base/__pycache__/rest_exchange.cpython-39.pyc +0 -0
  121. ksxt/base/__pycache__/restexchange.cpython-39.pyc +0 -0
  122. ksxt/base/__pycache__/types.cpython-39.pyc +0 -0
  123. ksxt/base/api_response.py +0 -68
  124. ksxt/config/__pycache__/__init__.cpython-39.pyc +0 -0
  125. ksxt/config/tr_app.json +0 -381
  126. ksxt/config/tr_dev.json +0 -446
  127. ksxt/market/__pycache__/base.cpython-39.pyc +0 -0
  128. ksxt/market/__pycache__/db.cpython-39.pyc +0 -0
  129. ksxt/market/__pycache__/logging.cpython-39.pyc +0 -0
  130. ksxt/market/__pycache__/manager.cpython-39.pyc +0 -0
  131. ksxt/market/__pycache__/markets.cpython-39.pyc +0 -0
  132. ksxt/market/krx/__pycache__/kosdaq.cpython-39.pyc +0 -0
  133. ksxt/market/krx/__pycache__/kospi.cpython-39.pyc +0 -0
  134. ksxt/market/krx/__pycache__/stock.cpython-39.pyc +0 -0
  135. ksxt/market/us/__pycache__/amex.cpython-39.pyc +0 -0
  136. ksxt/market/us/__pycache__/nasdaq.cpython-39.pyc +0 -0
  137. ksxt/market/us/__pycache__/nyse.cpython-39.pyc +0 -0
  138. ksxt/market/us/__pycache__/stock.cpython-39.pyc +0 -0
  139. ksxt-0.0.7.dist-info/RECORD +0 -49
  140. {ksxt-0.0.7.dist-info → ksxt-0.0.9.dist-info}/LICENSE.txt +0 -0
  141. {ksxt-0.0.7.dist-info → ksxt-0.0.9.dist-info}/top_level.txt +0 -0
ksxt/market/krx/kosdaq.py CHANGED
@@ -98,219 +98,220 @@ from ksxt.market.db import Base
98
98
  # } ST_KSQ_CODE;
99
99
  # endregion typedef struct
100
100
 
101
+
101
102
  @dataclass
102
103
  class KosdaqItem(KrxStockItem):
103
104
  CONTROL = [
104
- ('mksc_shrn_iscd', 9),
105
- ('stnd_iscd', 12),
106
- ('hts_kor_isnm', (9+12, -222)),
107
- ('_index', -1),
108
- ('_reverse', True),
109
- ('scrt_grp_cls_code', 2),
110
- ('avls_scal_cls_code', 1),
111
- ('bstp_larg_div_code', 4),
112
- ('bstp_medm_div_code', 4),
113
- ('bstp_smal_div_code', 4),
114
- ('vntr_issu_yn', 1),
115
- ('low_current_yn', 1),
116
- ('krx_issu_yn', 1),
117
- ('etp_prod_cls_code', 1),
118
- ('krx100_issu_yn', 1),
119
- ('krx_car_yn', 1),
120
- ('krx_smcn_yn', 1),
121
- ('krx_bio_yn', 1),
122
- ('krx_bank_yn', 1),
123
- ('etpr_undt_objt_co_yn', 1),
124
- ('krx_enrg_chms_yn', 1),
125
- ('krx_stel_yn', 1),
126
- ('short_over_cls_code', 1),
127
- ('krx_medi_cmnc_yn', 1),
128
- ('krx_cnst_yn', 1),
129
- ('invt_alrm_yn', 1),
130
- ('krx_scrt_yn', 1),
131
- ('krx_ship_yn', 1),
132
- ('krx_insu_yn', 1),
133
- ('krx_trnp_yn', 1),
134
- ('ksq150_nmix_yn', 1),
135
- ('stck_sdpr', 9),
136
- ('frml_mrkt_deal_qty_unit', 5),
137
- ('ovtm_mrkt_deal_qty_unit', 5),
138
- ('trht_yn', 1),
139
- ('sltr_yn', 1),
140
- ('mang_issu_yn', 1),
141
- ('mrkt_alrm_cls_code', 2),
142
- ('mrkt_alrm_risk_adnt_yn', 1),
143
- ('insn_pbnt_yn', 1),
144
- ('byps_lstn_yn', 1),
145
- ('flng_cls_code', 2),
146
- ('fcam_mod_cls_code', 2),
147
- ('icic_cls_code', 2),
148
- ('marg_rate', 3),
149
- ('crdt_able', 1),
150
- ('crdt_days', 3),
151
- ('prdy_vol', 12),
152
- ('stck_fcam', 12),
153
- ('stck_lstn_date', 8),
154
- ('lstn_stcn', 15),
155
- ('cpfn', 21),
156
- ('stac_month', 2),
157
- ('po_prc', 7),
158
- ('prst_cls_code', 1),
159
- ('ssts_hot_yn', 1),
160
- ('stange_runup_yn', 1),
161
- ('krx300_issu_yn', 1),
162
- ('sale_account', 9),
163
- ('bsop_prfi', 9),
164
- ('op_prfi', 9),
165
- ('thtr_ntin', 5),
166
- ('roe', 9),
167
- ('base_date', 8),
168
- ('prdy_avls_scal', 9),
169
- ('grp_code', 3),
170
- ('co_crdt_limt_over_yn', 1),
171
- ('secu_lend_able_yn', 1),
172
- ('stln_able_yn', 1),
105
+ ("mksc_shrn_iscd", 9),
106
+ ("stnd_iscd", 12),
107
+ ("hts_kor_isnm", (9 + 12, -222)),
108
+ ("_index", -1),
109
+ ("_reverse", True),
110
+ ("scrt_grp_cls_code", 2),
111
+ ("avls_scal_cls_code", 1),
112
+ ("bstp_larg_div_code", 4),
113
+ ("bstp_medm_div_code", 4),
114
+ ("bstp_smal_div_code", 4),
115
+ ("vntr_issu_yn", 1),
116
+ ("low_current_yn", 1),
117
+ ("krx_issu_yn", 1),
118
+ ("etp_prod_cls_code", 1),
119
+ ("krx100_issu_yn", 1),
120
+ ("krx_car_yn", 1),
121
+ ("krx_smcn_yn", 1),
122
+ ("krx_bio_yn", 1),
123
+ ("krx_bank_yn", 1),
124
+ ("etpr_undt_objt_co_yn", 1),
125
+ ("krx_enrg_chms_yn", 1),
126
+ ("krx_stel_yn", 1),
127
+ ("short_over_cls_code", 1),
128
+ ("krx_medi_cmnc_yn", 1),
129
+ ("krx_cnst_yn", 1),
130
+ ("invt_alrm_yn", 1),
131
+ ("krx_scrt_yn", 1),
132
+ ("krx_ship_yn", 1),
133
+ ("krx_insu_yn", 1),
134
+ ("krx_trnp_yn", 1),
135
+ ("ksq150_nmix_yn", 1),
136
+ ("stck_sdpr", 9),
137
+ ("frml_mrkt_deal_qty_unit", 5),
138
+ ("ovtm_mrkt_deal_qty_unit", 5),
139
+ ("trht_yn", 1),
140
+ ("sltr_yn", 1),
141
+ ("mang_issu_yn", 1),
142
+ ("mrkt_alrm_cls_code", 2),
143
+ ("mrkt_alrm_risk_adnt_yn", 1),
144
+ ("insn_pbnt_yn", 1),
145
+ ("byps_lstn_yn", 1),
146
+ ("flng_cls_code", 2),
147
+ ("fcam_mod_cls_code", 2),
148
+ ("icic_cls_code", 2),
149
+ ("marg_rate", 3),
150
+ ("crdt_able", 1),
151
+ ("crdt_days", 3),
152
+ ("prdy_vol", 12),
153
+ ("stck_fcam", 12),
154
+ ("stck_lstn_date", 8),
155
+ ("lstn_stcn", 15),
156
+ ("cpfn", 21),
157
+ ("stac_month", 2),
158
+ ("po_prc", 7),
159
+ ("prst_cls_code", 1),
160
+ ("ssts_hot_yn", 1),
161
+ ("stange_runup_yn", 1),
162
+ ("krx300_issu_yn", 1),
163
+ ("sale_account", 9),
164
+ ("bsop_prfi", 9),
165
+ ("op_prfi", 9),
166
+ ("thtr_ntin", 5),
167
+ ("roe", 9),
168
+ ("base_date", 8),
169
+ ("prdy_avls_scal", 9),
170
+ ("grp_code", 3),
171
+ ("co_crdt_limt_over_yn", 1),
172
+ ("secu_lend_able_yn", 1),
173
+ ("stln_able_yn", 1),
173
174
  ]
174
175
 
175
176
  excd: str
176
- '''거래소정보'''
177
+ """거래소정보"""
177
178
  curr: str
178
- '''화폐 정보'''
179
+ """화폐 정보"""
179
180
 
180
181
  mksc_shrn_iscd: str
181
- '''단축코드'''
182
+ """단축코드"""
182
183
  stnd_iscd: str
183
- '''표준코드'''
184
+ """표준코드"""
184
185
  hts_kor_isnm: str
185
- '''한글종목명'''
186
- scrt_grp_cls_code: Literal['ST', 'MF', 'RT', 'SC', 'IF', 'DR', 'EW', 'EF', 'SW', 'SR', 'BC', 'FE', 'FS']
187
- '''증권그룹구분코드'''
188
- avls_scal_cls_code: Literal['0', '1', '2', '3']
189
- '''시가총액 규모 구분 코드 유가'''
186
+ """한글종목명"""
187
+ scrt_grp_cls_code: Literal["ST", "MF", "RT", "SC", "IF", "DR", "EW", "EF", "SW", "SR", "BC", "FE", "FS"]
188
+ """증권그룹구분코드"""
189
+ avls_scal_cls_code: Literal["0", "1", "2", "3"]
190
+ """시가총액 규모 구분 코드 유가"""
190
191
  bstp_larg_div_code: str
191
- '''지수업종 대분류 코드'''
192
+ """지수업종 대분류 코드"""
192
193
  bstp_medm_div_code: str
193
- '''지수 업종 중분류 코드'''
194
+ """지수 업종 중분류 코드"""
194
195
  bstp_smal_div_code: str
195
- '''지수업종 소분류 코드'''
196
+ """지수업종 소분류 코드"""
196
197
  vntr_issu_yn: bool
197
- '''벤처기업 여부'''
198
+ """벤처기업 여부"""
198
199
  low_current_yn: bool
199
- '''저유동성종목 여부'''
200
+ """저유동성종목 여부"""
200
201
  krx_issu_yn: bool
201
- '''KRX 종목 여부'''
202
- etp_prod_cls_code: Literal['0', '1', '2', '3', '4']
203
- '''ETP 상품구분코드'''
202
+ """KRX 종목 여부"""
203
+ etp_prod_cls_code: Literal["0", "1", "2", "3", "4"]
204
+ """ETP 상품구분코드"""
204
205
  krx100_issu_yn: bool
205
- '''KRX100 종목 여부'''
206
+ """KRX100 종목 여부"""
206
207
  krx_car_yn: bool
207
- '''KRX 자동차 여부'''
208
+ """KRX 자동차 여부"""
208
209
  krx_smcn_yn: bool
209
- '''KRX 반도체 여부'''
210
+ """KRX 반도체 여부"""
210
211
  krx_bio_yn: bool
211
- '''KRX 바이오 여부'''
212
+ """KRX 바이오 여부"""
212
213
  krx_bank_yn: bool
213
- '''KRX 은행 여부'''
214
+ """KRX 은행 여부"""
214
215
  etpr_undt_objt_co_yn: bool
215
- '''기업인수목적회사여부'''
216
+ """기업인수목적회사여부"""
216
217
  krx_enrg_chms_yn: bool
217
- '''KRX 에너지 화학 여부'''
218
+ """KRX 에너지 화학 여부"""
218
219
  krx_stel_yn: bool
219
- '''KRX 철강 여부'''
220
- short_over_cls_code: Literal['0', '1', '2', '3']
221
- '''단기과열종목구분코드'''
220
+ """KRX 철강 여부"""
221
+ short_over_cls_code: Literal["0", "1", "2", "3"]
222
+ """단기과열종목구분코드"""
222
223
  krx_medi_cmnc_yn: bool
223
- '''KRX 미디어 통신 여부'''
224
+ """KRX 미디어 통신 여부"""
224
225
  krx_cnst_yn: bool
225
- '''KRX 건설 여부'''
226
+ """KRX 건설 여부"""
226
227
  invt_alrm_yn: bool
227
- '''(코스닥)투자주의환기종목여부'''
228
+ """(코스닥)투자주의환기종목여부"""
228
229
  krx_scrt_yn: bool
229
- '''KRX 증권 구분'''
230
+ """KRX 증권 구분"""
230
231
  krx_ship_yn: bool
231
- '''KRX 선박 구분'''
232
+ """KRX 선박 구분"""
232
233
  krx_insu_yn: bool
233
- '''KRX섹터지수 보험여부'''
234
+ """KRX섹터지수 보험여부"""
234
235
  krx_trnp_yn: bool
235
- '''KRX섹터지수 운송여부'''
236
+ """KRX섹터지수 운송여부"""
236
237
  ksq150_nmix_yn: bool
237
- '''KOSDAQ150지수여부'''
238
+ """KOSDAQ150지수여부"""
238
239
  stck_sdpr: int
239
- '''주식 기준가'''
240
+ """주식 기준가"""
240
241
  frml_mrkt_deal_qty_unit: int
241
- '''정규 시장 매매 수량 단위'''
242
+ """정규 시장 매매 수량 단위"""
242
243
  ovtm_mrkt_deal_qty_unit: int
243
- '''시간외 시장 매매 수량 단위'''
244
+ """시간외 시장 매매 수량 단위"""
244
245
  trht_yn: bool
245
- '''거래정지 여부'''
246
+ """거래정지 여부"""
246
247
  sltr_yn: bool
247
- '''정리매매 여부'''
248
+ """정리매매 여부"""
248
249
  mang_issu_yn: bool
249
- '''관리 종목 여부'''
250
- mrkt_alrm_cls_code: Literal['00', '01', '02', '03']
251
- '''시장 경고 구분 코드'''
250
+ """관리 종목 여부"""
251
+ mrkt_alrm_cls_code: Literal["00", "01", "02", "03"]
252
+ """시장 경고 구분 코드"""
252
253
  mrkt_alrm_risk_adnt_yn: bool
253
- '''시장 경고위험 예고 여부'''
254
+ """시장 경고위험 예고 여부"""
254
255
  insn_pbnt_yn: bool
255
- '''불성실 공시 여부'''
256
+ """불성실 공시 여부"""
256
257
  byps_lstn_yn: bool
257
- '''우회 상장 여부'''
258
+ """우회 상장 여부"""
258
259
  flng_cls_code: Literal[0, 1, 2, 3, 4, 5, 6, 99]
259
- '''락구분 코드'''
260
+ """락구분 코드"""
260
261
  fcam_mod_cls_code: Literal[0, 1, 2, 99]
261
- '''액면가 변경 구분 코드'''
262
+ """액면가 변경 구분 코드"""
262
263
  icic_cls_code: Literal[0, 1, 2, 3, 99]
263
- '''증자 구분 코드'''
264
+ """증자 구분 코드"""
264
265
  marg_rate: int
265
- '''증거금 비율'''
266
+ """증거금 비율"""
266
267
  crdt_able: bool
267
- '''신용주문 가능 여부'''
268
+ """신용주문 가능 여부"""
268
269
  crdt_days: int
269
- '''신용기간'''
270
+ """신용기간"""
270
271
  prdy_vol: int
271
- '''전일 거래량'''
272
+ """전일 거래량"""
272
273
  stck_fcam: int
273
- '''주식 액면가'''
274
+ """주식 액면가"""
274
275
  stck_lstn_date: datetime
275
- '''주식 상장 일자'''
276
+ """주식 상장 일자"""
276
277
  lstn_stcn: int
277
- '''상장 주수(천)'''
278
+ """상장 주수(천)"""
278
279
  cpfn: int
279
- '''자본금'''
280
+ """자본금"""
280
281
  stac_month: int
281
- '''결산 월'''
282
+ """결산 월"""
282
283
  po_prc: int
283
- '''공모 가격'''
284
+ """공모 가격"""
284
285
  prst_cls_code: Literal[0, 1, 2]
285
- '''우선주 구분 코드'''
286
+ """우선주 구분 코드"""
286
287
  ssts_hot_yn: bool
287
- '''공매도과열종목여부'''
288
+ """공매도과열종목여부"""
288
289
  stange_runup_yn: bool
289
- '''이상급등종목여부'''
290
+ """이상급등종목여부"""
290
291
  krx300_issu_yn: bool
291
- '''KRX300 종목 여부'''
292
+ """KRX300 종목 여부"""
292
293
  sale_account: int
293
- '''매출액'''
294
+ """매출액"""
294
295
  bsop_prfi: int
295
- '''영업이익'''
296
+ """영업이익"""
296
297
  op_prfi: int
297
- '''경상이익'''
298
+ """경상이익"""
298
299
  thtr_ntin: int
299
- '''단기순이익'''
300
+ """단기순이익"""
300
301
  roe: float
301
- '''ROE(자기자본이익률)'''
302
+ """ROE(자기자본이익률)"""
302
303
  base_date: datetime
303
- '''기준년월'''
304
+ """기준년월"""
304
305
  prdy_avls_scal: int
305
- '''전일기준 시가총액 (억)'''
306
+ """전일기준 시가총액 (억)"""
306
307
  grp_code: str
307
- '''그룹사 코드'''
308
+ """그룹사 코드"""
308
309
  co_crdt_limt_over_yn: bool
309
- '''회사신용한도초과여부'''
310
+ """회사신용한도초과여부"""
310
311
  secu_lend_able_yn: bool
311
- '''담보대출가능여부'''
312
+ """담보대출가능여부"""
312
313
  stln_able_yn: bool
313
- '''대주가능여부'''
314
+ """대주가능여부"""
314
315
 
315
316
  def __init__(self, data: str = None):
316
317
  if data:
@@ -318,9 +319,9 @@ class KosdaqItem(KrxStockItem):
318
319
 
319
320
 
320
321
  class _KosdaqItem(Base):
321
- __tablename__ = 'kosdaq'
322
- excd = Column(String, default='kosdaq')
323
- curr = Column(String, default='KRW')
322
+ __tablename__ = "kosdaq"
323
+ excd = Column(String, default="kosdaq")
324
+ curr = Column(String, default="KRW")
324
325
 
325
326
  mksc_shrn_iscd = Column(String, primary_key=True)
326
327
  stnd_iscd = Column(String)
@@ -393,4 +394,6 @@ class _KosdaqItem(Base):
393
394
 
394
395
  class Kosdaq(KrxStockMarket[KosdaqItem, _KosdaqItem]):
395
396
  def __init__(self, client):
396
- super().__init__(client, 'kosdaq', '코스닥', 'https://new.real.download.dws.co.kr/common/master/kosdaq_code.mst.zip')
397
+ super().__init__(
398
+ client, "kosdaq", "코스닥", "https://new.real.download.dws.co.kr/common/master/kosdaq_code.mst.zip"
399
+ )