ksxt 1.0.5__py3-none-any.whl → 1.0.7__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.
- ksxt/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/__pycache__/bithumb.cpython-312.pyc +0 -0
- ksxt/__pycache__/koreainvest.cpython-312.pyc +0 -0
- ksxt/__pycache__/upbit.cpython-312.pyc +0 -0
- ksxt/api/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/api/__pycache__/bithumb.cpython-312.pyc +0 -0
- ksxt/api/__pycache__/koreainvest.cpython-312.pyc +0 -0
- ksxt/api/__pycache__/upbit.cpython-312.pyc +0 -0
- ksxt/async_/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/async_/__pycache__/bithumb.cpython-312.pyc +0 -0
- ksxt/async_/__pycache__/koreainvest.cpython-312.pyc +0 -0
- ksxt/async_/__pycache__/upbit.cpython-312.pyc +0 -0
- ksxt/async_/base/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/async_/base/__pycache__/async_exchange.cpython-312.pyc +0 -0
- ksxt/async_/base/async_exchange.py +7 -1
- ksxt/async_/bithumb.py +19 -2
- ksxt/async_/koreainvest.py +13 -2
- ksxt/async_/upbit.py +15 -4
- ksxt/base/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/base/__pycache__/errors.cpython-312.pyc +0 -0
- ksxt/base/__pycache__/exchange.cpython-312.pyc +0 -0
- ksxt/base/__pycache__/rate_limiter.cpython-312.pyc +0 -0
- ksxt/base/__pycache__/rest_exchange.cpython-312.pyc +0 -0
- ksxt/base/__pycache__/types.cpython-312.pyc +0 -0
- ksxt/base/exchange.py +12 -1
- ksxt/base/rest_exchange.py +7 -1
- ksxt/bithumb.py +19 -2
- ksxt/config/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/config/token.toml +2 -6
- ksxt/koreainvest.py +13 -2
- ksxt/market/__pycache__/base.cpython-312.pyc +0 -0
- ksxt/market/__pycache__/db.cpython-312.pyc +0 -0
- ksxt/market/__pycache__/logging.cpython-312.pyc +0 -0
- ksxt/market/__pycache__/manager.cpython-312.pyc +0 -0
- ksxt/market/__pycache__/markets.cpython-312.pyc +0 -0
- ksxt/market/krx/__pycache__/kosdaq.cpython-312.pyc +0 -0
- ksxt/market/krx/__pycache__/kospi.cpython-312.pyc +0 -0
- ksxt/market/krx/__pycache__/stock.cpython-312.pyc +0 -0
- ksxt/market/us/__pycache__/amex.cpython-312.pyc +0 -0
- ksxt/market/us/__pycache__/nasdaq.cpython-312.pyc +0 -0
- ksxt/market/us/__pycache__/nyse.cpython-312.pyc +0 -0
- ksxt/market/us/__pycache__/stock.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/__init__.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/balance.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/cash.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/common.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/error.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/historical.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/market.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/order.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/orderbook.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/ticker.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/token.cpython-312.pyc +0 -0
- ksxt/models/__pycache__/transaction.cpython-312.pyc +0 -0
- ksxt/models/balance.py +17 -4
- ksxt/models/transaction.py +22 -30
- ksxt/parser/__pycache__/bithumb.cpython-312.pyc +0 -0
- ksxt/parser/__pycache__/koreainvest.cpython-312.pyc +0 -0
- ksxt/parser/__pycache__/parser.cpython-312.pyc +0 -0
- ksxt/parser/__pycache__/upbit.cpython-312.pyc +0 -0
- ksxt/parser/bithumb.py +41 -17
- ksxt/parser/koreainvest.py +28 -13
- ksxt/parser/parser.py +9 -5
- ksxt/parser/upbit.py +50 -19
- ksxt/upbit.py +13 -2
- ksxt/utils/__pycache__/safer.cpython-312.pyc +0 -0
- ksxt/utils/__pycache__/sorter.cpython-312.pyc +0 -0
- ksxt/utils/__pycache__/timer.cpython-312.pyc +0 -0
- {ksxt-1.0.5.dist-info → ksxt-1.0.7.dist-info}/LICENSE.txt +1 -1
- {ksxt-1.0.5.dist-info → ksxt-1.0.7.dist-info}/METADATA +2 -2
- ksxt-1.0.7.dist-info/RECORD +119 -0
- ksxt/api/auto/__pycache__/bithumb.cpython-312.pyc +0 -0
- ksxt/api/auto/__pycache__/koreainvest.cpython-312.pyc +0 -0
- ksxt/api/auto/__pycache__/upbit.cpython-312.pyc +0 -0
- ksxt/async_/base/__pycache__/throttler.cpython-312.pyc +0 -0
- ksxt-1.0.5.dist-info/RECORD +0 -123
- {ksxt-1.0.5.dist-info → ksxt-1.0.7.dist-info}/WHEEL +0 -0
- {ksxt-1.0.5.dist-info → ksxt-1.0.7.dist-info}/top_level.txt +0 -0
ksxt/parser/koreainvest.py
CHANGED
@@ -11,10 +11,9 @@ from ksxt.models.ticker import MultiSymbolTickerInfo, TickerInfo
|
|
11
11
|
from ksxt.models.token import TokenInfo
|
12
12
|
from ksxt.models.transaction import (
|
13
13
|
ClosedOrderHistory,
|
14
|
-
ClosedOrderInfo,
|
15
14
|
DepositHistory,
|
16
15
|
OpenedOrderHistory,
|
17
|
-
|
16
|
+
TransactionInfo,
|
18
17
|
)
|
19
18
|
from ksxt.parser.parser import BaseParser
|
20
19
|
from ksxt.utils import safer, sorter, timer
|
@@ -182,7 +181,13 @@ class KoreaInvestParser(BaseParser):
|
|
182
181
|
return ask_data, bid_data
|
183
182
|
|
184
183
|
def parse_balance(
|
185
|
-
self,
|
184
|
+
self,
|
185
|
+
response: List[Dict],
|
186
|
+
base_market: str = "KRW",
|
187
|
+
excluded_symbols: Optional[list[str]] = None,
|
188
|
+
included_symbols: list[str] | None = None,
|
189
|
+
filter_delisted: bool = True,
|
190
|
+
min_amount: float = 0,
|
186
191
|
) -> BalanceInfo:
|
187
192
|
safe_response = safer.safe_value(response, "output1")
|
188
193
|
|
@@ -190,9 +195,16 @@ class KoreaInvestParser(BaseParser):
|
|
190
195
|
balances = [
|
191
196
|
self._parse_balance(_, base_market)
|
192
197
|
for _ in safe_response
|
193
|
-
if excluded_symbols is None or safer.safe_string(_, "pdno") not in excluded_symbols
|
198
|
+
if (excluded_symbols is None or safer.safe_string(_, "pdno") not in excluded_symbols)
|
199
|
+
and (included_symbols is None or safer.safe_string(_, "pdno") in included_symbols)
|
194
200
|
]
|
195
201
|
|
202
|
+
if filter_delisted:
|
203
|
+
balances = [balance for balance in balances if balance.price > 0]
|
204
|
+
|
205
|
+
if min_amount > 0:
|
206
|
+
balances = [balance for balance in balances if balance.amount > min_amount]
|
207
|
+
|
196
208
|
# 총 매입금액
|
197
209
|
total_amount = sum(bal.price * bal.qty for bal in balances)
|
198
210
|
total_evaluation_amount = sum(bal.evaluation_price * bal.qty for bal in balances)
|
@@ -214,7 +226,7 @@ class KoreaInvestParser(BaseParser):
|
|
214
226
|
name=safer.safe_string(data, "prdt_name"),
|
215
227
|
evaluation_price=safer.safe_number(data, "evlu_amt"),
|
216
228
|
price=safer.safe_number(data, "pchs_avg_pric"),
|
217
|
-
|
229
|
+
pnl=safer.safe_number(data, "evlu_pfls_amt"),
|
218
230
|
pnl_ratio=safer.safe_number(data, "evlu_pfls_rt"),
|
219
231
|
qty=safer.safe_number(data, "hldg_qty"),
|
220
232
|
free_qty=safer.safe_number(data, "ord_psbl_qty"),
|
@@ -284,15 +296,17 @@ class KoreaInvestParser(BaseParser):
|
|
284
296
|
|
285
297
|
return ClosedOrderHistory(history=orders)
|
286
298
|
|
287
|
-
def _parse_closed_order_info(self, order: Dict, base_market: str = "KRW") ->
|
299
|
+
def _parse_closed_order_info(self, order: Dict, base_market: str = "KRW") -> TransactionInfo:
|
288
300
|
if safer.safe_string(order, "sll_buy_dvsn_cd") == "01":
|
289
301
|
_type = "ask"
|
290
302
|
else:
|
291
303
|
_type = "bid"
|
292
304
|
|
293
|
-
return
|
305
|
+
return TransactionInfo(
|
294
306
|
uuid=safer.safe_string(order, "odno"),
|
295
|
-
|
307
|
+
account_id="",
|
308
|
+
# account_id=f'{safer.safe_string(order, "CANO")}-{safer.safe_string(order, "ACNT_PRDT_CD")}',
|
309
|
+
transaction_type=_type,
|
296
310
|
symbol=safer.safe_string(order, "pdno"),
|
297
311
|
price=safer.safe_number(order, "avg_prvs"),
|
298
312
|
qty=safer.safe_number(order, "tot_ccld_qty"),
|
@@ -300,8 +314,8 @@ class KoreaInvestParser(BaseParser):
|
|
300
314
|
tax=0,
|
301
315
|
# 단일 주문 이력에는 수수료 관련 정보가 없고, 조회한 전체 목록에 대해 수수료 정보만 존재한다.
|
302
316
|
fee=0,
|
303
|
-
created_at=datetime.fromisoformat(safer.safe_string(order, "ord_dt")),
|
304
317
|
order_type=safer.safe_string(order, "avg_prvs"),
|
318
|
+
created_at=datetime.fromisoformat(safer.safe_string(order, "ord_dt")),
|
305
319
|
)
|
306
320
|
|
307
321
|
def parse_open_order_history(
|
@@ -318,15 +332,15 @@ class KoreaInvestParser(BaseParser):
|
|
318
332
|
|
319
333
|
return OpenedOrderHistory(history=orders)
|
320
334
|
|
321
|
-
def _parse_open_order_info(self, order: Dict, base_market: str = "KRW") ->
|
335
|
+
def _parse_open_order_info(self, order: Dict, base_market: str = "KRW") -> TransactionInfo:
|
322
336
|
if safer.safe_string(order, "sll_buy_dvsn_cd") == "01":
|
323
337
|
_type = "ask"
|
324
338
|
else:
|
325
339
|
_type = "bid"
|
326
340
|
|
327
|
-
return
|
341
|
+
return TransactionInfo(
|
328
342
|
uuid=safer.safe_string(order, "odno"),
|
329
|
-
|
343
|
+
transaction_type=_type,
|
330
344
|
symbol=safer.safe_string(order, "pdno"),
|
331
345
|
price=safer.safe_number(order, "avg_prvs"),
|
332
346
|
qty=safer.safe_number(order, "tot_ccld_qty"),
|
@@ -334,8 +348,9 @@ class KoreaInvestParser(BaseParser):
|
|
334
348
|
tax=0,
|
335
349
|
# 단일 주문 이력에는 수수료 관련 정보가 없고, 조회한 전체 목록에 대해 수수료 정보만 존재한다.
|
336
350
|
fee=0,
|
337
|
-
|
351
|
+
currency=base_market,
|
338
352
|
order_type=safer.safe_string(order, "avg_prvs"),
|
353
|
+
created_at=datetime.fromisoformat(safer.safe_string(order, "ord_dt")),
|
339
354
|
)
|
340
355
|
|
341
356
|
def parse_create_order(self, response: Dict, base_market: str = "KRW") -> CreateOrderResponse:
|
ksxt/parser/parser.py
CHANGED
@@ -11,10 +11,8 @@ from ksxt.models.orderbook import MultiSymbolOrderBookInfos, OrderBookData, Orde
|
|
11
11
|
from ksxt.models.ticker import MultiSymbolTickerInfo, TickerInfo
|
12
12
|
from ksxt.models.transaction import (
|
13
13
|
ClosedOrderHistory,
|
14
|
-
ClosedOrderInfo,
|
15
14
|
DepositHistory,
|
16
15
|
OpenedOrderHistory,
|
17
|
-
OpenedOrderInfo,
|
18
16
|
TransactionInfo,
|
19
17
|
WithdrawalHistory,
|
20
18
|
)
|
@@ -71,7 +69,13 @@ class BaseParser:
|
|
71
69
|
self._raise_not_implemented_error()
|
72
70
|
|
73
71
|
def parse_balance(
|
74
|
-
self,
|
72
|
+
self,
|
73
|
+
response: List[Dict],
|
74
|
+
base_market: str = "KRW",
|
75
|
+
excluded_symbols: Optional[list[str]] = None,
|
76
|
+
included_symbols: list[str] | None = None,
|
77
|
+
filter_delisted: bool = True,
|
78
|
+
min_amount: float = 0,
|
75
79
|
) -> BalanceInfo:
|
76
80
|
self._raise_not_implemented_error()
|
77
81
|
|
@@ -92,7 +96,7 @@ class BaseParser:
|
|
92
96
|
) -> OpenedOrderHistory:
|
93
97
|
self._raise_not_implemented_error()
|
94
98
|
|
95
|
-
def _parse_open_order_info(self, order: dict, base_market: str = "KRW") ->
|
99
|
+
def _parse_open_order_info(self, order: dict, base_market: str = "KRW") -> TransactionInfo:
|
96
100
|
self._raise_not_implemented_error()
|
97
101
|
|
98
102
|
def parse_closed_order_history(
|
@@ -100,7 +104,7 @@ class BaseParser:
|
|
100
104
|
) -> ClosedOrderHistory:
|
101
105
|
self._raise_not_implemented_error()
|
102
106
|
|
103
|
-
def _parse_closed_order_info(self, order: dict, base_market: str = "KRW") ->
|
107
|
+
def _parse_closed_order_info(self, order: dict, base_market: str = "KRW") -> TransactionInfo:
|
104
108
|
self._raise_not_implemented_error()
|
105
109
|
|
106
110
|
def parse_modify_order(self, response: dict, base_market: str = "KRW") -> ModifyOrderResponse:
|
ksxt/parser/upbit.py
CHANGED
@@ -11,10 +11,8 @@ from ksxt.models.orderbook import MultiSymbolOrderBookInfos, OrderBookData, Orde
|
|
11
11
|
from ksxt.models.ticker import MultiSymbolTickerInfo, TickerInfo
|
12
12
|
from ksxt.models.transaction import (
|
13
13
|
ClosedOrderHistory,
|
14
|
-
ClosedOrderInfo,
|
15
14
|
DepositHistory,
|
16
15
|
OpenedOrderHistory,
|
17
|
-
OpenedOrderInfo,
|
18
16
|
TransactionInfo,
|
19
17
|
WithdrawalHistory,
|
20
18
|
)
|
@@ -181,7 +179,13 @@ class UpbitParser(BaseParser):
|
|
181
179
|
return ask_data, bid_data
|
182
180
|
|
183
181
|
def parse_balance(
|
184
|
-
self,
|
182
|
+
self,
|
183
|
+
response: List[Dict],
|
184
|
+
base_market: str = "KRW",
|
185
|
+
excluded_symbols: Optional[list[str]] = None,
|
186
|
+
included_symbols: list[str] | None = None,
|
187
|
+
filter_delisted: bool = True,
|
188
|
+
min_amount: float = 0,
|
185
189
|
) -> BalanceInfo:
|
186
190
|
# 1. Filter out entries where 'currency' is not the base_market
|
187
191
|
# 2. Ensure 'unit_currency' is the base_market
|
@@ -192,11 +196,18 @@ class UpbitParser(BaseParser):
|
|
192
196
|
if data["currency"] != base_market
|
193
197
|
and data["unit_currency"] == base_market
|
194
198
|
and (excluded_symbols is None or data["currency"] not in excluded_symbols)
|
199
|
+
and (included_symbols is None or self.safe_symbol(base_market, data["currency"]) in included_symbols)
|
195
200
|
]
|
196
201
|
|
197
202
|
# Initialize balance list
|
198
203
|
balances = [self._parse_balance(data, base_market) for data in filtered_data]
|
199
204
|
|
205
|
+
if filter_delisted:
|
206
|
+
balances = [balance for balance in balances if balance.price > 0]
|
207
|
+
|
208
|
+
if min_amount > 0:
|
209
|
+
balances = [balance for balance in balances if balance.amount > min_amount]
|
210
|
+
|
200
211
|
# 총 매입금액
|
201
212
|
total_amount = sum(bal.price * bal.qty for bal in balances)
|
202
213
|
total_evaluation_amount = sum(bal.evaluation_price * bal.qty for bal in balances)
|
@@ -216,10 +227,8 @@ class UpbitParser(BaseParser):
|
|
216
227
|
return BalanceData(
|
217
228
|
symbol=self.safe_symbol(base_market, safer.safe_string(data, "currency")),
|
218
229
|
name=self.safe_symbol(base_market, safer.safe_string(data, "currency")),
|
219
|
-
evaluation_price=safer.safe_number(data, "avg_buy_price"),
|
220
230
|
price=safer.safe_number(data, "avg_buy_price"),
|
221
|
-
|
222
|
-
pnl_ratio=0, # 필요에 따라 적절히 설정
|
231
|
+
evaluation_price=safer.safe_number(data, "avg_buy_price"),
|
223
232
|
qty=safer.safe_number(data, "balance"),
|
224
233
|
free_qty=safer.safe_number(data, "balance") - safer.safe_number(data, "locked"),
|
225
234
|
used_qty=safer.safe_number(data, "locked"),
|
@@ -293,18 +302,27 @@ class UpbitParser(BaseParser):
|
|
293
302
|
|
294
303
|
return ClosedOrderHistory(history=orders)
|
295
304
|
|
296
|
-
def _parse_closed_order_info(self, order: dict, base_market: str = "KRW") ->
|
297
|
-
|
305
|
+
def _parse_closed_order_info(self, order: dict, base_market: str = "KRW") -> TransactionInfo:
|
306
|
+
# 현재 API에서 price 값을 제대로 전달해주지 않음.
|
307
|
+
if safer.safe_number(order, "price") == 0:
|
308
|
+
price = price = safer.safe_number(order, "executed_funds") / safer.safe_number(order, "volume")
|
309
|
+
else:
|
310
|
+
price = safer.safe_number(order, "price")
|
311
|
+
|
312
|
+
return TransactionInfo(
|
298
313
|
uuid=safer.safe_string(order, "uuid"),
|
299
|
-
|
314
|
+
account_id="",
|
315
|
+
transaction_type=safer.safe_string(order, "side"),
|
316
|
+
order_type=safer.safe_string(order, "ord_type"),
|
317
|
+
tr_position="long",
|
300
318
|
symbol=self.safe_symbol(base_market, safer.safe_string(order, "market")),
|
301
|
-
price=
|
319
|
+
price=price,
|
302
320
|
qty=safer.safe_number(order, "volume"),
|
303
321
|
amount=safer.safe_number(order, "executed_funds"),
|
304
322
|
tax=0,
|
305
|
-
fee=safer.safe_number(order, "paid_fee"),
|
323
|
+
fee=safer.safe_number(order, "paid_fee"),
|
324
|
+
currency=base_market,
|
306
325
|
created_at=datetime.fromisoformat(safer.safe_string(order, "created_at")),
|
307
|
-
order_type=safer.safe_string(order, "ord_type"),
|
308
326
|
)
|
309
327
|
|
310
328
|
def parse_open_order_history(
|
@@ -324,18 +342,26 @@ class UpbitParser(BaseParser):
|
|
324
342
|
|
325
343
|
return OpenedOrderHistory(history=orders)
|
326
344
|
|
327
|
-
def _parse_open_order_info(self, order: dict, base_market: str = "KRW") ->
|
328
|
-
|
345
|
+
def _parse_open_order_info(self, order: dict, base_market: str = "KRW") -> TransactionInfo:
|
346
|
+
# 현재 API에서 price 값을 제대로 전달해주지 않음.
|
347
|
+
if safer.safe_number(order, "price") == 0:
|
348
|
+
price = price = safer.safe_number(order, "executed_funds") / safer.safe_number(order, "volume")
|
349
|
+
else:
|
350
|
+
price = safer.safe_number(order, "price")
|
351
|
+
|
352
|
+
return TransactionInfo(
|
329
353
|
uuid=safer.safe_string(order, "uuid"),
|
330
|
-
|
354
|
+
account_id="",
|
355
|
+
transaction_type=safer.safe_string(order, "side"),
|
331
356
|
symbol=self.safe_symbol(base_market, safer.safe_string(order, "market")),
|
332
|
-
price=
|
357
|
+
price=price,
|
333
358
|
qty=safer.safe_number(order, "volume"),
|
334
359
|
amount=safer.safe_number(order, "executed_funds"),
|
335
360
|
tax=0,
|
336
|
-
fee=safer.safe_number(order, "
|
337
|
-
|
361
|
+
fee=safer.safe_number(order, "paid_fee"),
|
362
|
+
currency=base_market,
|
338
363
|
order_type=safer.safe_string(order, "ord_type"),
|
364
|
+
created_at=datetime.fromisoformat(safer.safe_string(order, "created_at")),
|
339
365
|
)
|
340
366
|
|
341
367
|
def parse_withdrawal_history(
|
@@ -383,11 +409,16 @@ class UpbitParser(BaseParser):
|
|
383
409
|
def _parse_transaction_history_item(self, item: Dict, base_market: str = "KRW") -> TransactionInfo:
|
384
410
|
return TransactionInfo(
|
385
411
|
uuid=safer.safe_string(item, "uuid"),
|
386
|
-
|
412
|
+
account_id="",
|
413
|
+
transaction_type=safer.safe_string(item, "type"),
|
414
|
+
symbol=safer.safe_string(item, "currency"),
|
415
|
+
price=1,
|
416
|
+
qty=safer.safe_number(item, "amount"),
|
387
417
|
amount=safer.safe_number(item, "amount"),
|
388
418
|
tax=0,
|
389
419
|
fee=safer.safe_number(item, "fee"),
|
390
420
|
currency=safer.safe_string(item, "currency"),
|
421
|
+
order_type=safer.safe_string(item, "transaction_type"),
|
391
422
|
created_at=datetime.fromisoformat(safer.safe_string(item, "done_at")),
|
392
423
|
)
|
393
424
|
|
ksxt/upbit.py
CHANGED
@@ -238,7 +238,13 @@ class Upbit(RestExchange, ImplicitAPI):
|
|
238
238
|
return ksxt.models.KsxtMultiOrderBookResponse(header=common_header, response=common_response, info=parsed_info)
|
239
239
|
|
240
240
|
def fetch_balance(
|
241
|
-
self,
|
241
|
+
self,
|
242
|
+
acc_num: str,
|
243
|
+
base_market: str = "KRW",
|
244
|
+
excluded_symbols: list[str] | None = None,
|
245
|
+
included_symbols: list[str] | None = None,
|
246
|
+
filter_delisted: bool = True,
|
247
|
+
min_amount: float = 0,
|
242
248
|
) -> ksxt.models.KsxtBalanceResponse:
|
243
249
|
params = {}
|
244
250
|
|
@@ -251,7 +257,12 @@ class Upbit(RestExchange, ImplicitAPI):
|
|
251
257
|
return ksxt.models.KsxtBalanceResponse(header=common_header, response=common_response, info=None)
|
252
258
|
|
253
259
|
parsed_info = self.parser.parse_balance(
|
254
|
-
response=response,
|
260
|
+
response=response,
|
261
|
+
base_market=base_market,
|
262
|
+
excluded_symbols=excluded_symbols,
|
263
|
+
included_symbols=included_symbols,
|
264
|
+
filter_delisted=filter_delisted,
|
265
|
+
min_amount=min_amount,
|
255
266
|
)
|
256
267
|
|
257
268
|
return ksxt.models.KsxtBalanceResponse(header=common_header, response=common_response, info=parsed_info)
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,9 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ksxt
|
3
|
-
Version: 1.0.
|
3
|
+
Version: 1.0.7
|
4
4
|
License: MIT License
|
5
5
|
|
6
|
-
Copyright ©
|
6
|
+
Copyright © 2025 AMOSA
|
7
7
|
|
8
8
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
9
9
|
of this software and associated documentation files (the "Software"), to deal
|
@@ -0,0 +1,119 @@
|
|
1
|
+
ksxt/__init__.py,sha256=Q4kbXuxaCcQg5Z1T2z31lrUc5Cr95RIyv-y6hNf3R0E,131
|
2
|
+
ksxt/bithumb.py,sha256=jiN9hIopmXwUTQn71mR13Z_c0ZDJOXhbJhgpzHRniLs,22641
|
3
|
+
ksxt/koreainvest.py,sha256=_3ZbMw7O-I0lWhMcDMRTcb3lCcuUFFp-OeDtUs8S5hA,20805
|
4
|
+
ksxt/upbit.py,sha256=2nfO-x_1C9XOoXRm2_cB4hXRV7jxoTP-s7Eqm8u8EJc,22861
|
5
|
+
ksxt/__pycache__/__init__.cpython-312.pyc,sha256=99OafUFiZDEhtstgud7UXpCCcOfy20LUICQC7vNbNPc,310
|
6
|
+
ksxt/__pycache__/bithumb.cpython-312.pyc,sha256=SI-IV1_1cTRt54m0z5G_Qys0f2jqJ_e91QIGucD1Jrg,25686
|
7
|
+
ksxt/__pycache__/koreainvest.cpython-312.pyc,sha256=38FJ1f8w7PnSCALogXBPjVTAoRursY6sIKmNqOxlx08,22472
|
8
|
+
ksxt/__pycache__/upbit.cpython-312.pyc,sha256=C3Bv5Gw5FvBjK3hgKeu4Loh7em94wyqTV9qgAdYhhC0,26035
|
9
|
+
ksxt/api/__init__.py,sha256=CZ8AedRG8O9vEdSqTaot5sV3nwpxPZoVOYwrFCLUo6M,736
|
10
|
+
ksxt/api/bithumb.py,sha256=6apoSNoiEOIkR6xQu4rtCSz7sdNdx3BHeu8-m8omh6E,2177
|
11
|
+
ksxt/api/koreainvest.py,sha256=93BASTUUsw39APRFxVqlaOu-keEFuIO3MvHX_6g-AAs,2159
|
12
|
+
ksxt/api/upbit.py,sha256=CQN-A0gVoeNoHTZhH8kCaGk1svaOvo5HDyVFfXou_6A,2704
|
13
|
+
ksxt/api/__pycache__/__init__.cpython-312.pyc,sha256=1tMXRXoUs6u2hiKjL8_5209aEWMLxAIEABmUj8iNqw4,1374
|
14
|
+
ksxt/api/__pycache__/bithumb.cpython-312.pyc,sha256=-tF6txgvtDIqXxIroDh28pgIrEvA9DK_NCzw6DBKcgk,2559
|
15
|
+
ksxt/api/__pycache__/koreainvest.cpython-312.pyc,sha256=VftBw8Krzp9VYAZ3RSeBWrqiNkAUyqQfinE2ZjxRueM,2087
|
16
|
+
ksxt/api/__pycache__/upbit.cpython-312.pyc,sha256=38hbV6oBqrh4hXrkooxTJluIryuDuSBkbv119mq3Ewg,3014
|
17
|
+
ksxt/api/auto/api_generator.py,sha256=R8Q7uFN1wDr_0CUsJJ1nmZhoDBwzjPlKUXrNCsY9QKU,2540
|
18
|
+
ksxt/api/auto/bithumb.py,sha256=n6ctGefq28i5CMiItLF1xOZgeDP9F9em4HXfoPUcmqw,1261
|
19
|
+
ksxt/api/auto/koreainvest.py,sha256=z4Bf3C7g2W-eQP99oBeM_J0mq2D3PkbQaulrDwxJB04,1582
|
20
|
+
ksxt/api/auto/upbit.py,sha256=CtSG0jziqJR4FInHvwDisJfMWCUrUIQQcNPuCGGR7Do,1467
|
21
|
+
ksxt/async_/__init__.py,sha256=ztfV65aN2mXamQSfVm3GLYB6cszkvsCSlUyhfe2H_2M,186
|
22
|
+
ksxt/async_/bithumb.py,sha256=sVGUSHSm9CKLbhUoz9bDkpxlSJAzqnRaNt30ocWBsKI,20534
|
23
|
+
ksxt/async_/koreainvest.py,sha256=6HV-miG50khuvyr634eQb9GlaIIfo8asI_qfDATX90E,23132
|
24
|
+
ksxt/async_/upbit.py,sha256=Y0cPAkiZluBCpNj2jX1d-V0olzMZMT8Dyzup2BAnSH0,22783
|
25
|
+
ksxt/async_/__pycache__/__init__.cpython-312.pyc,sha256=JMmqx3WOUqRd8bNVJetVrh4iuOE0ihwajLyI0OaHB7U,379
|
26
|
+
ksxt/async_/__pycache__/bithumb.cpython-312.pyc,sha256=qL2X3-e3ulLiWHWJQrCYhsNDkxK1mqT4GdH_nVF8GDM,24418
|
27
|
+
ksxt/async_/__pycache__/koreainvest.cpython-312.pyc,sha256=Oy71u-nws5BJEiT0mBgi_AxlmqM1Bn7LRRGjguFwCNM,25680
|
28
|
+
ksxt/async_/__pycache__/upbit.cpython-312.pyc,sha256=ssF1mktP57F243a0IEogVCuXFoIfYANZvpmCs95DNoo,27751
|
29
|
+
ksxt/async_/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
+
ksxt/async_/base/async_exchange.py,sha256=wUZySn7TE5FMMmJpi1Whpm6pXPObxVaS87HS0jJ35R8,9721
|
31
|
+
ksxt/async_/base/__pycache__/__init__.cpython-312.pyc,sha256=S4bPuB8OeLTMdU22fAKRges3VlhAuVM6EBIbb_92gOM,152
|
32
|
+
ksxt/async_/base/__pycache__/async_exchange.cpython-312.pyc,sha256=ZiEzacI9o9ppGsg8B9vuyD9F3ZHzMXHwOLlJ4NXtXyw,15858
|
33
|
+
ksxt/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
+
ksxt/base/com_exchange.py,sha256=q7C3Bc5q4ENvNGoghnQCN7YLttgwmFoNj9WsH5qxXNQ,287
|
35
|
+
ksxt/base/errors.py,sha256=msGHmm9YGUOXOaK_VhOUEt5LvIDMMm6G-io8nQbNgA0,141
|
36
|
+
ksxt/base/exchange.py,sha256=tKU37qlYarwGmTySzGu_kQGowc_QRMdm31SGSjeLoZI,16598
|
37
|
+
ksxt/base/rate_limiter.py,sha256=9iF6OB-2u0q4nqtng8Tafn-fM3CVQ-DvdNRJ1aSCS3w,3005
|
38
|
+
ksxt/base/rest_exchange.py,sha256=_fQqoq7LkJIR8S2YkMF8PqWH-Zx4ibth_f_0BuI8PTo,16103
|
39
|
+
ksxt/base/types.py,sha256=3bd3obJhhX1njy_o4LW8hSAHX2MThOI-mZm6iifwno4,59
|
40
|
+
ksxt/base/__pycache__/__init__.cpython-312.pyc,sha256=sRTaTlUmf1BjkcBImIDu9hF2H1CO1uFRqOTXjkpSeMo,145
|
41
|
+
ksxt/base/__pycache__/errors.cpython-312.pyc,sha256=AcQa0ZFWVvPHzZ_qo7uMQUOTQwwt71FLroolBT77Tgw,621
|
42
|
+
ksxt/base/__pycache__/exchange.cpython-312.pyc,sha256=ZjDZ29l8IDEU8GZrw4cnDwBwB9tUYIIDMf4JUIRQCPw,21760
|
43
|
+
ksxt/base/__pycache__/rate_limiter.cpython-312.pyc,sha256=b-OiLzKiXR8I8GcuPAYjpDGwHOgywFfOMPJDTxHDDgA,5417
|
44
|
+
ksxt/base/__pycache__/rest_exchange.cpython-312.pyc,sha256=dRotNlB7p_iuLMOu9yeQ5_veOr5chTjpmv7TSnuUuS4,23248
|
45
|
+
ksxt/base/__pycache__/types.cpython-312.pyc,sha256=JZdcCrwjXkLpp1F5kPwUb8M2Rs3HJxpx0WuhJk-X0kc,231
|
46
|
+
ksxt/config/__init__.py,sha256=hkQx56FVJD8Gq1A_KzfOqO8BoqJRTX5TnUmqIignnlc,148
|
47
|
+
ksxt/config/bithumb.toml,sha256=JgKgHQVATsLcbxKYvekSRonJ4PjJ5x2ejp1eZHHusrQ,11693
|
48
|
+
ksxt/config/koreainvest.toml,sha256=XQRSdEgkWlhbfS6AvJRqQJ_8210i__nfFSI9n3GcgqY,11526
|
49
|
+
ksxt/config/token.toml,sha256=L71hM8EBBcZmMtuHUKPGa8sQqg7SUxKCL_ecu98SU1I,431
|
50
|
+
ksxt/config/upbit.toml,sha256=1aGKZ3HAV28rrTVGZQ418I9NJwhoRh70Vx03oKacIfY,13439
|
51
|
+
ksxt/config/__pycache__/__init__.cpython-312.pyc,sha256=1jLyeKuG_1Uy5_K3mrBPd8h4uRR_9psing5ZdeOKUkw,424
|
52
|
+
ksxt/market/base.py,sha256=SzNPJECU2iWaQEUesI_REW_A0by_Tv4hs4Hv8p_sr0I,6856
|
53
|
+
ksxt/market/db.py,sha256=ZPr2WlQRUOjhJm1fwFBrdwWG7UJkEpy5Pr0oEQ3Nqb0,386
|
54
|
+
ksxt/market/logging.py,sha256=hkyAhzA72-KCGcVavSOHFSz2FU5QJq_gn6WA6kXs_Pw,698
|
55
|
+
ksxt/market/manager.py,sha256=kgXrsjFw4O_BPVM2VxQJbm5ryWPG3L-NX1Pm-pN68jE,7301
|
56
|
+
ksxt/market/markets.py,sha256=pExEvlLhoLvs2Ipkp-p8_yG3tFgz3U3yB5VAVqD8qdM,545
|
57
|
+
ksxt/market/__pycache__/base.cpython-312.pyc,sha256=rKw82jppSUh3WKj-ZTwMe7f0bb45S7BiS0QJVYIf6Ag,11238
|
58
|
+
ksxt/market/__pycache__/db.cpython-312.pyc,sha256=UqAmDamjS6fG0HAPbgq9ZZAB1gbmkIgVpvPpdXQTByI,691
|
59
|
+
ksxt/market/__pycache__/logging.cpython-312.pyc,sha256=cF9xFQUauuncKAumkOk7ZTOogfwvS_W6xgJ6OBF7gGA,1401
|
60
|
+
ksxt/market/__pycache__/manager.cpython-312.pyc,sha256=KBjTJ90x1dSo4_8Vc4pRngsMldrioBsduFXgNlmeh-4,11783
|
61
|
+
ksxt/market/__pycache__/markets.cpython-312.pyc,sha256=kuzNGgwZoNVwZ4pC_VdiIek9hxP7yarLxR5YltUYkgs,744
|
62
|
+
ksxt/market/krx/kosdaq.py,sha256=CJDKMPp3utH-bmPrrEAzmFx5GSXk_KVhLDdGCAaxaBQ,18626
|
63
|
+
ksxt/market/krx/kospi.py,sha256=lRyA-xCjqdyuB87eHFGooIHtpbjy7WcrQ0Rk2ZnCt40,20466
|
64
|
+
ksxt/market/krx/stock.py,sha256=IXx4xNYsQgKhuLz1_S0Bd9Scqd6fip75gafRePAFW7U,8111
|
65
|
+
ksxt/market/krx/__pycache__/kosdaq.cpython-312.pyc,sha256=rk9C1APZmW42WH8OISrlR-EwpMHrgyGCMRGbaOtPMEE,7516
|
66
|
+
ksxt/market/krx/__pycache__/kospi.cpython-312.pyc,sha256=vEzv-Mg9Jq0lwWRySoJIh9g13LOLkpzyxys3mxJJ6CQ,8608
|
67
|
+
ksxt/market/krx/__pycache__/stock.cpython-312.pyc,sha256=k9hUlFzTKcTa1pY_VMKOVKvIlzJxdoGYx9APJUjEloA,9012
|
68
|
+
ksxt/market/us/amex.py,sha256=ZYlfh1x2eiA8P3DfO2PKj6nIE-O4WQNgDM-CsLqFUVs,5510
|
69
|
+
ksxt/market/us/nasdaq.py,sha256=OIBJn16veH36Um-Bhr14K0qBu3ZZwPSWi5sj6zxmkVA,5524
|
70
|
+
ksxt/market/us/nyse.py,sha256=eCAcz0saj1RFuyfmJc8cjecwGEDIhvkYVkUp941ZOIw,5507
|
71
|
+
ksxt/market/us/stock.py,sha256=hRb4RH2kf-1RaNcWLvE5tg2uCcu6LoPZ0Nc1u6Wpzbc,3675
|
72
|
+
ksxt/market/us/__pycache__/amex.cpython-312.pyc,sha256=ISJeRZ9bQHYmH9ltf7aHXUdpGaq2MgRriFm0m182iGU,3380
|
73
|
+
ksxt/market/us/__pycache__/nasdaq.cpython-312.pyc,sha256=CmTxTMsNZFWUFkZo_S7pkGWmMQoIQ-gnsfjefvz389k,3394
|
74
|
+
ksxt/market/us/__pycache__/nyse.cpython-312.pyc,sha256=ERLmlKoyXwbcK1A1Tep8i-K7v3MUvAlKQrh2pANzZqo,3377
|
75
|
+
ksxt/market/us/__pycache__/stock.cpython-312.pyc,sha256=AAb5L9s3z8F7OT0WZl20lWUKg6iEyIifU-Yc1hGsO2w,4975
|
76
|
+
ksxt/models/__init__.py,sha256=V7Nr0RHOOXithVTQW12hveavnapS8nGhWQ3JIMwDFTc,706
|
77
|
+
ksxt/models/balance.py,sha256=YarLzTXuqqdXYHoOWDx5Hh_K2DXqEoKtNgdii0UINjM,1138
|
78
|
+
ksxt/models/cash.py,sha256=sNexdR6Ek-YZ6cVAmre-zf3K30R-6hreHuBQKYzMsPU,303
|
79
|
+
ksxt/models/common.py,sha256=HvsNa2wlTeLdnB67untL0UzOQ5r6f2s6Gkfxeh7LTpM,827
|
80
|
+
ksxt/models/error.py,sha256=yzpTweHMB-bi7hzD8ATKsK2klJAsbfPEBBa1A5tY6tw,291
|
81
|
+
ksxt/models/historical.py,sha256=fWcst4WPimI2Avb4b1kOswfyf3nB4XSMgpTSmm7uTpY,655
|
82
|
+
ksxt/models/market.py,sha256=kkH-P1m1HQjJOPT1k4bk9ZgW-_kwIBO_fXHcrRlWlVE,2013
|
83
|
+
ksxt/models/order.py,sha256=LJJd-licLirI5WrAM1MItViOX_u5U_fmpBFPpDSdHxE,867
|
84
|
+
ksxt/models/orderbook.py,sha256=S1c03QBu1hupN87CMWLgEsh8u2GrZ_Z_BcTUuiKGnR0,773
|
85
|
+
ksxt/models/ticker.py,sha256=pPc7GqUOJchLg7qOpKfxhTVpXygF1Otc_M9_KfHFEgY,544
|
86
|
+
ksxt/models/token.py,sha256=eUBoX7O0ffC63BN12-1aUjcfE_R1Ylyxr6_U79FLDv0,319
|
87
|
+
ksxt/models/transaction.py,sha256=E086NQkIfTuVhmJNmr8_vYGn84c1Vf8_8sgHyBMZFU0,1491
|
88
|
+
ksxt/models/__pycache__/__init__.cpython-312.pyc,sha256=juNSOa40CKXj3FcqX7uufkG-nGRv7BeymAsD5iFbtDg,1032
|
89
|
+
ksxt/models/__pycache__/balance.cpython-312.pyc,sha256=ojawyH9i68QXJ1ZiQ8KtS2F0iQdSYIahundVhdghYns,2118
|
90
|
+
ksxt/models/__pycache__/cash.cpython-312.pyc,sha256=PNyyB9eKOU0OyaMP7p3dg3BYDb21wA0v8zzkXUXTg5E,721
|
91
|
+
ksxt/models/__pycache__/common.cpython-312.pyc,sha256=UiwBy-d1G_BCST5Ercj3HnBEO3uURPc1K71nQ25_xjs,1362
|
92
|
+
ksxt/models/__pycache__/error.cpython-312.pyc,sha256=PaFS6ijLZsNmHeIEd6M2RKAElyZ1GdmufAspqE1Y78A,773
|
93
|
+
ksxt/models/__pycache__/historical.cpython-312.pyc,sha256=9mcQEc1p9YyVovIKOYQlGwYk4s6AdPlg9WY2WQlyMIQ,1290
|
94
|
+
ksxt/models/__pycache__/market.cpython-312.pyc,sha256=1JH7CXMZ8kvbdlHqrongsmoq99p5S-vqTYhqK5eMfYQ,3077
|
95
|
+
ksxt/models/__pycache__/order.cpython-312.pyc,sha256=2pcwKS9_-I25plh92Gii3d67noYABixnrOjpkMZPnsc,1790
|
96
|
+
ksxt/models/__pycache__/orderbook.cpython-312.pyc,sha256=YL_iiIMMfKdjlkNIN4lC-olNrK8LmCBoj56GGpe9ghM,1516
|
97
|
+
ksxt/models/__pycache__/ticker.cpython-312.pyc,sha256=SQ4PMAMdWrUomHeyBY-P5STecg1EC46wRmwcCvdx0Sc,1164
|
98
|
+
ksxt/models/__pycache__/token.cpython-312.pyc,sha256=NuH6VnrVsPRhUFUspVJwcEl4KyA8hMHdZwsguCxD6M8,794
|
99
|
+
ksxt/models/__pycache__/transaction.cpython-312.pyc,sha256=_3vlu_CTVyFd5Zvil8DrDWnc9QODYCg-K3xyhOmZhdQ,2435
|
100
|
+
ksxt/parser/bithumb.py,sha256=jPNISv-LBKjATGPx-ukyoZcpurSjCBlHoHva5UBEj8E,18152
|
101
|
+
ksxt/parser/koreainvest.py,sha256=6sJ_yMmDb4IVZnEI4facxdTybtW45s9kEeiWrVXxEzs,17328
|
102
|
+
ksxt/parser/parser.py,sha256=xdqRS69VMxFupv5dNE4Cb6vq-rmDjlIOuouHj4RP72I,5801
|
103
|
+
ksxt/parser/upbit.py,sha256=8C4TYwYgdu8tOiIlrJ4QhBhUVYI57hmXwMMD2GPxObM,18908
|
104
|
+
ksxt/parser/__pycache__/bithumb.cpython-312.pyc,sha256=sOd7Q5S7o6PmvuV1i1Hn1WHj6wUB7Vt13YTR_XuCMvA,21763
|
105
|
+
ksxt/parser/__pycache__/koreainvest.cpython-312.pyc,sha256=hLywsOyhmk0sI7-P9y7VYGd5icB1FVjGYc5ULgIKFW4,20909
|
106
|
+
ksxt/parser/__pycache__/parser.cpython-312.pyc,sha256=tyRu43UBQ7e4T-y1Pk2R4SOVWPPjUmuEdaxvGODxq6Y,9029
|
107
|
+
ksxt/parser/__pycache__/upbit.cpython-312.pyc,sha256=HU4xvFJ-sxJJTbtnwAGLqDo5rVB856u-YWhcKjHq8IY,23406
|
108
|
+
ksxt/sample/symbol_sync.ipynb,sha256=dnUOgEKdUuEkDo_6LZjmDtVuNh4PPmCN4Ht7Pz-0L9Y,640081
|
109
|
+
ksxt/utils/safer.py,sha256=tlXDU9KDxrrM0HT2bv45hkblIgbEYr02NygdYS0jj6c,1289
|
110
|
+
ksxt/utils/sorter.py,sha256=j7eN1Qy7Wx3cXcWyRWyO1fVq-M24TrXvcfewPR5axF4,227
|
111
|
+
ksxt/utils/timer.py,sha256=4_rhXdQDFkKshS5utWrgTteIe71tVSTL1zNW-IjOngM,1228
|
112
|
+
ksxt/utils/__pycache__/safer.cpython-312.pyc,sha256=w-dkk_sa768g7ViIk-YrnhaxKmOu1loBlDFfjHu4PxM,1990
|
113
|
+
ksxt/utils/__pycache__/sorter.cpython-312.pyc,sha256=fg2obPlufrTQZLqIrzDKkX6bZQkUbdXyzZNqLjZiG3A,625
|
114
|
+
ksxt/utils/__pycache__/timer.cpython-312.pyc,sha256=9YXIdgCoGYeTR2gV86pZO9dG6_ZZ_IUNjJ318Tnb0m0,2004
|
115
|
+
ksxt-1.0.7.dist-info/LICENSE.txt,sha256=p2JwEVHDRuJx8UL5Xnt_pFhdC73ppwp7rYQhHqviWB8,1080
|
116
|
+
ksxt-1.0.7.dist-info/METADATA,sha256=2Yw99Tp0SO2JBNo3-WqphruPpxmkhj3QHCql9BBbcuI,1649
|
117
|
+
ksxt-1.0.7.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
118
|
+
ksxt-1.0.7.dist-info/top_level.txt,sha256=XLUhkZCur5Pe0BPUV3J0syngIPz7jBb2YlQR4epo5kI,5
|
119
|
+
ksxt-1.0.7.dist-info/RECORD,,
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
ksxt-1.0.5.dist-info/RECORD
DELETED
@@ -1,123 +0,0 @@
|
|
1
|
-
ksxt/__init__.py,sha256=Q4kbXuxaCcQg5Z1T2z31lrUc5Cr95RIyv-y6hNf3R0E,131
|
2
|
-
ksxt/bithumb.py,sha256=1_pA-dFJvFnrnj5jP5wXy1wLUivPuKNd9SfW6AZwtFk,22149
|
3
|
-
ksxt/koreainvest.py,sha256=ohXxbhPphLmAYPtEmEQw_3kzQOnGn80e2y4K8tdbGb4,20500
|
4
|
-
ksxt/upbit.py,sha256=WE9sTqTOu3409YY3aCxOz0nWdYngP_ylu2BLsNzH7qU,22556
|
5
|
-
ksxt/__pycache__/__init__.cpython-312.pyc,sha256=aBHVFPn-w8foaTpyyvHjFAb4fVLkO3orauFpozqpvv8,309
|
6
|
-
ksxt/__pycache__/bithumb.cpython-312.pyc,sha256=68w6VqfuUl-N_oMdl1U0NVoI0GokNpBKAiH90OjQvyA,25447
|
7
|
-
ksxt/__pycache__/koreainvest.cpython-312.pyc,sha256=J6TqEj-oMtdzC9BssoxlCjd8a63xFor_5Ln0B_9hIng,22244
|
8
|
-
ksxt/__pycache__/upbit.cpython-312.pyc,sha256=ha8t5Ubp5CAoz4p9-rcmaaeVnaJjFMEIXdTo4NApJHA,25839
|
9
|
-
ksxt/api/__init__.py,sha256=CZ8AedRG8O9vEdSqTaot5sV3nwpxPZoVOYwrFCLUo6M,736
|
10
|
-
ksxt/api/bithumb.py,sha256=6apoSNoiEOIkR6xQu4rtCSz7sdNdx3BHeu8-m8omh6E,2177
|
11
|
-
ksxt/api/koreainvest.py,sha256=93BASTUUsw39APRFxVqlaOu-keEFuIO3MvHX_6g-AAs,2159
|
12
|
-
ksxt/api/upbit.py,sha256=CQN-A0gVoeNoHTZhH8kCaGk1svaOvo5HDyVFfXou_6A,2704
|
13
|
-
ksxt/api/__pycache__/__init__.cpython-312.pyc,sha256=ADtdUmNtVvjoBuPDCkQpCcl62eIdev63nkOnSu8FRjo,1373
|
14
|
-
ksxt/api/__pycache__/bithumb.cpython-312.pyc,sha256=YCkBbJj8uNqjuxUQF0Ko9X0VSYsteksIbutP09zKrG4,2558
|
15
|
-
ksxt/api/__pycache__/koreainvest.cpython-312.pyc,sha256=sCCOv9RV7cTn6LXVpdFNEqrWakpm97bl5AbA3AMDzMo,2086
|
16
|
-
ksxt/api/__pycache__/upbit.cpython-312.pyc,sha256=exLCsTut235Sryu1WxtFJJgw_k7z2xwwtqh6svw_o3Q,3013
|
17
|
-
ksxt/api/auto/api_generator.py,sha256=R8Q7uFN1wDr_0CUsJJ1nmZhoDBwzjPlKUXrNCsY9QKU,2540
|
18
|
-
ksxt/api/auto/bithumb.py,sha256=n6ctGefq28i5CMiItLF1xOZgeDP9F9em4HXfoPUcmqw,1261
|
19
|
-
ksxt/api/auto/koreainvest.py,sha256=z4Bf3C7g2W-eQP99oBeM_J0mq2D3PkbQaulrDwxJB04,1582
|
20
|
-
ksxt/api/auto/upbit.py,sha256=CtSG0jziqJR4FInHvwDisJfMWCUrUIQQcNPuCGGR7Do,1467
|
21
|
-
ksxt/api/auto/__pycache__/bithumb.cpython-312.pyc,sha256=s-R5UHnDxV2DxOugrUdHyu2OWyGpKmf8YoUK3gVKw_8,834
|
22
|
-
ksxt/api/auto/__pycache__/koreainvest.cpython-312.pyc,sha256=kz6DHIlhPARI_GfYsZzwVz7NoQ6We_yCFrMWLpW0JTQ,968
|
23
|
-
ksxt/api/auto/__pycache__/upbit.cpython-312.pyc,sha256=LVxuy6pD2QGXmM1kYou2-xWhb4075o9lkPFDpv2z004,965
|
24
|
-
ksxt/async_/__init__.py,sha256=ztfV65aN2mXamQSfVm3GLYB6cszkvsCSlUyhfe2H_2M,186
|
25
|
-
ksxt/async_/bithumb.py,sha256=pbbiUYz_jwir_ec-vWg6oHMQjgWUQ209WrmESxJ2FG4,20042
|
26
|
-
ksxt/async_/koreainvest.py,sha256=PzIRsAsP2pLkNgxBaiHY3Nq4arYAKW4OA8EE1iMmVGQ,22827
|
27
|
-
ksxt/async_/upbit.py,sha256=y3jwVSccJ9zSLOwiRzShu_q-VZvHpizf7p-cyqMqcT4,22478
|
28
|
-
ksxt/async_/__pycache__/__init__.cpython-312.pyc,sha256=0kYmKTHaRVZMai7hLh6lRtbRBJYn-b7m8NpMgJ7NmHg,378
|
29
|
-
ksxt/async_/__pycache__/bithumb.cpython-312.pyc,sha256=PNU5CWHVwxGesTRb0ZQQU12esCxLDxJh6PTu2wVGytQ,24179
|
30
|
-
ksxt/async_/__pycache__/koreainvest.cpython-312.pyc,sha256=kBFxY26xmn05yXFRpiaqekuo3bLDTcKSBLiFaLupk-8,25452
|
31
|
-
ksxt/async_/__pycache__/upbit.cpython-312.pyc,sha256=Hq-N2dexzioMKo8DkF6cifFhKrdlHMC0nUpnSHt0hGU,27541
|
32
|
-
ksxt/async_/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
ksxt/async_/base/async_exchange.py,sha256=pAjsHuSzv9BbU26icfzn0t53TIC62VEJ6Q1oHT4pxQc,9570
|
34
|
-
ksxt/async_/base/__pycache__/__init__.cpython-312.pyc,sha256=6FPlac0sgVrNi5Ln3bOjRTq9zF2XysE9qQXl4j3nKok,151
|
35
|
-
ksxt/async_/base/__pycache__/async_exchange.cpython-312.pyc,sha256=gD1kbby6oj6dmQR-cfgqBctsufg-OnxL3rdBi2gAIqE,15640
|
36
|
-
ksxt/async_/base/__pycache__/throttler.cpython-312.pyc,sha256=R-LT5NWQWnX74cdMJYKM1rjSpCGCdN7t1m8V5QUOwK8,3190
|
37
|
-
ksxt/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
ksxt/base/com_exchange.py,sha256=q7C3Bc5q4ENvNGoghnQCN7YLttgwmFoNj9WsH5qxXNQ,287
|
39
|
-
ksxt/base/errors.py,sha256=msGHmm9YGUOXOaK_VhOUEt5LvIDMMm6G-io8nQbNgA0,141
|
40
|
-
ksxt/base/exchange.py,sha256=S-ZKsh--yRHLfZ4-Yx_u5A1CrVEQzsYDb9sjYslCEO0,16098
|
41
|
-
ksxt/base/rate_limiter.py,sha256=9iF6OB-2u0q4nqtng8Tafn-fM3CVQ-DvdNRJ1aSCS3w,3005
|
42
|
-
ksxt/base/rest_exchange.py,sha256=vMDvojZsN5YzP1BVPtFdR8UxoF8y-bu655KkJiAkq3o,15952
|
43
|
-
ksxt/base/types.py,sha256=3bd3obJhhX1njy_o4LW8hSAHX2MThOI-mZm6iifwno4,59
|
44
|
-
ksxt/base/__pycache__/__init__.cpython-312.pyc,sha256=bNBz2l_g_6uoMfpg84oTHcjKkwBVVRavk1RlYg6N-to,144
|
45
|
-
ksxt/base/__pycache__/errors.cpython-312.pyc,sha256=Cqv1BFN_hzWP_5aJyEUUQqpG8eDiGmKROqaRmg9CCU8,620
|
46
|
-
ksxt/base/__pycache__/exchange.cpython-312.pyc,sha256=19yIHgTh1OabVwLIo0r_DXAmkgFCY9hvneu1uhorBks,21259
|
47
|
-
ksxt/base/__pycache__/rate_limiter.cpython-312.pyc,sha256=h1UefCyC3UBW2izVXNt6OXLLXrAcP3ZubJEzdLaoSL4,5416
|
48
|
-
ksxt/base/__pycache__/rest_exchange.cpython-312.pyc,sha256=NgGJdTGSl1zp1ckXmEl7tWP6VpoBGvbXmRlMboPq978,23036
|
49
|
-
ksxt/base/__pycache__/types.cpython-312.pyc,sha256=7bugAIz0poOTdpogxGqmiFcjhrgCfMDlu1gZ2l3Qo0c,230
|
50
|
-
ksxt/config/__init__.py,sha256=hkQx56FVJD8Gq1A_KzfOqO8BoqJRTX5TnUmqIignnlc,148
|
51
|
-
ksxt/config/bithumb.toml,sha256=JgKgHQVATsLcbxKYvekSRonJ4PjJ5x2ejp1eZHHusrQ,11693
|
52
|
-
ksxt/config/koreainvest.toml,sha256=XQRSdEgkWlhbfS6AvJRqQJ_8210i__nfFSI9n3GcgqY,11526
|
53
|
-
ksxt/config/token.toml,sha256=F3RnfRe8ArAtriXQsDF3k5attyJ4gGbH9rcHRrgFU2E,860
|
54
|
-
ksxt/config/upbit.toml,sha256=1aGKZ3HAV28rrTVGZQ418I9NJwhoRh70Vx03oKacIfY,13439
|
55
|
-
ksxt/config/__pycache__/__init__.cpython-312.pyc,sha256=mHDOgIn3JKvJ85BM8nn459aRhoUmWJzlnrVYyGRDbZg,423
|
56
|
-
ksxt/market/base.py,sha256=SzNPJECU2iWaQEUesI_REW_A0by_Tv4hs4Hv8p_sr0I,6856
|
57
|
-
ksxt/market/db.py,sha256=ZPr2WlQRUOjhJm1fwFBrdwWG7UJkEpy5Pr0oEQ3Nqb0,386
|
58
|
-
ksxt/market/logging.py,sha256=hkyAhzA72-KCGcVavSOHFSz2FU5QJq_gn6WA6kXs_Pw,698
|
59
|
-
ksxt/market/manager.py,sha256=kgXrsjFw4O_BPVM2VxQJbm5ryWPG3L-NX1Pm-pN68jE,7301
|
60
|
-
ksxt/market/markets.py,sha256=pExEvlLhoLvs2Ipkp-p8_yG3tFgz3U3yB5VAVqD8qdM,545
|
61
|
-
ksxt/market/__pycache__/base.cpython-312.pyc,sha256=ljzyywdEdu8zKN38eWh6r6D4NYL96W_Zm1xFcXMwSZI,11237
|
62
|
-
ksxt/market/__pycache__/db.cpython-312.pyc,sha256=Ej-HqAnaNQKWQHndwkbm4nNeVGR8ERbvC4vLs_vZ2j0,690
|
63
|
-
ksxt/market/__pycache__/logging.cpython-312.pyc,sha256=lj3L123QmJeAjP0p_YTlY-ZuYS3Ujusy3swOeUMDCls,1400
|
64
|
-
ksxt/market/__pycache__/manager.cpython-312.pyc,sha256=i4bOmK_AtgcoHl4uwx-SqrbiKg0e3RcLQB4Q_Uz0uCk,11782
|
65
|
-
ksxt/market/__pycache__/markets.cpython-312.pyc,sha256=hDMXIz5i38AOJv0MIuJiUO19_7iEn5c5GXFfBeNE5V8,743
|
66
|
-
ksxt/market/krx/kosdaq.py,sha256=CJDKMPp3utH-bmPrrEAzmFx5GSXk_KVhLDdGCAaxaBQ,18626
|
67
|
-
ksxt/market/krx/kospi.py,sha256=lRyA-xCjqdyuB87eHFGooIHtpbjy7WcrQ0Rk2ZnCt40,20466
|
68
|
-
ksxt/market/krx/stock.py,sha256=IXx4xNYsQgKhuLz1_S0Bd9Scqd6fip75gafRePAFW7U,8111
|
69
|
-
ksxt/market/krx/__pycache__/kosdaq.cpython-312.pyc,sha256=JLFNvSwg9vko59DBhOwM1g9T5yM3XzrKVjCsvYCg6mo,7515
|
70
|
-
ksxt/market/krx/__pycache__/kospi.cpython-312.pyc,sha256=TuUo2YVL-V-5TmlEEAQl-2Bb5fcCVSOgWDuj0joTARw,8607
|
71
|
-
ksxt/market/krx/__pycache__/stock.cpython-312.pyc,sha256=vE6kr-bP9_qtj3oA7YQnV7zbJ9ofIlPYnN1iGtyp3wU,9011
|
72
|
-
ksxt/market/us/amex.py,sha256=ZYlfh1x2eiA8P3DfO2PKj6nIE-O4WQNgDM-CsLqFUVs,5510
|
73
|
-
ksxt/market/us/nasdaq.py,sha256=OIBJn16veH36Um-Bhr14K0qBu3ZZwPSWi5sj6zxmkVA,5524
|
74
|
-
ksxt/market/us/nyse.py,sha256=eCAcz0saj1RFuyfmJc8cjecwGEDIhvkYVkUp941ZOIw,5507
|
75
|
-
ksxt/market/us/stock.py,sha256=hRb4RH2kf-1RaNcWLvE5tg2uCcu6LoPZ0Nc1u6Wpzbc,3675
|
76
|
-
ksxt/market/us/__pycache__/amex.cpython-312.pyc,sha256=FtW2C1PoQdPoO6OG91baKWkeA-e9G4P8NbMSpImXQVw,3379
|
77
|
-
ksxt/market/us/__pycache__/nasdaq.cpython-312.pyc,sha256=1BqqOszEL9GGXbBqdKC2C7iswlf5VX1YMwi4Wi5FoOI,3393
|
78
|
-
ksxt/market/us/__pycache__/nyse.cpython-312.pyc,sha256=S7Pngjx_aPoTC_h6x43BXNvqGWV3PmEXr1tJvXe-wlQ,3376
|
79
|
-
ksxt/market/us/__pycache__/stock.cpython-312.pyc,sha256=Gh7sugnsiHbTlJST-Tuqu24vNdKz7Pw_2NOusiaKduI,4974
|
80
|
-
ksxt/models/__init__.py,sha256=V7Nr0RHOOXithVTQW12hveavnapS8nGhWQ3JIMwDFTc,706
|
81
|
-
ksxt/models/balance.py,sha256=zOYclyZA0A-DU8ZIsTDOxXZw3VUYQhfp1u3sTrzXWuE,651
|
82
|
-
ksxt/models/cash.py,sha256=sNexdR6Ek-YZ6cVAmre-zf3K30R-6hreHuBQKYzMsPU,303
|
83
|
-
ksxt/models/common.py,sha256=HvsNa2wlTeLdnB67untL0UzOQ5r6f2s6Gkfxeh7LTpM,827
|
84
|
-
ksxt/models/error.py,sha256=yzpTweHMB-bi7hzD8ATKsK2klJAsbfPEBBa1A5tY6tw,291
|
85
|
-
ksxt/models/historical.py,sha256=fWcst4WPimI2Avb4b1kOswfyf3nB4XSMgpTSmm7uTpY,655
|
86
|
-
ksxt/models/market.py,sha256=kkH-P1m1HQjJOPT1k4bk9ZgW-_kwIBO_fXHcrRlWlVE,2013
|
87
|
-
ksxt/models/order.py,sha256=LJJd-licLirI5WrAM1MItViOX_u5U_fmpBFPpDSdHxE,867
|
88
|
-
ksxt/models/orderbook.py,sha256=S1c03QBu1hupN87CMWLgEsh8u2GrZ_Z_BcTUuiKGnR0,773
|
89
|
-
ksxt/models/ticker.py,sha256=pPc7GqUOJchLg7qOpKfxhTVpXygF1Otc_M9_KfHFEgY,544
|
90
|
-
ksxt/models/token.py,sha256=eUBoX7O0ffC63BN12-1aUjcfE_R1Ylyxr6_U79FLDv0,319
|
91
|
-
ksxt/models/transaction.py,sha256=AOIf3VdIbYNtafyFdDmmO1n5W3teY_GCP5F_erAAq8o,1643
|
92
|
-
ksxt/models/__pycache__/__init__.cpython-312.pyc,sha256=uln0kH0-sy3WsBbbAjvV-E-D6L3Dtb6ph0oQki4yxjQ,1031
|
93
|
-
ksxt/models/__pycache__/balance.cpython-312.pyc,sha256=_r64PniIdeptVO7zbVxYeh6nTH2UCnmnK8EzOr2jPzo,1279
|
94
|
-
ksxt/models/__pycache__/cash.cpython-312.pyc,sha256=XXk7d17aZCvNf0_-pszEHqp0iBVNmT6PGANun6TUUBo,720
|
95
|
-
ksxt/models/__pycache__/common.cpython-312.pyc,sha256=WcB1khTiUQPMLU_JuNJJq0zG7iv72X-WVTg91Xeklyk,1361
|
96
|
-
ksxt/models/__pycache__/error.cpython-312.pyc,sha256=3674NIk6nnWW5sJh8xesC7c2ky7Id0dowXDn8axOJ1w,772
|
97
|
-
ksxt/models/__pycache__/historical.cpython-312.pyc,sha256=CrFkLdryZRyVBCnqii-t7AEOWq-9JqafuUSoM__KoCk,1289
|
98
|
-
ksxt/models/__pycache__/market.cpython-312.pyc,sha256=uZzrbwpf5QFtTKM5QaoDrkiRBEuEir8liuCgZxRT7sg,3076
|
99
|
-
ksxt/models/__pycache__/order.cpython-312.pyc,sha256=j5LVaexWVroh3TC3Mrf11dH2prGEoqKETWDAdYDeHwQ,1789
|
100
|
-
ksxt/models/__pycache__/orderbook.cpython-312.pyc,sha256=Yzm2_c3BjdgWgTMWKPCfwXj4dVxJV-GFG8May6ahfFg,1515
|
101
|
-
ksxt/models/__pycache__/ticker.cpython-312.pyc,sha256=9kKIXZ1a6S_0Fpb3kjccZmrxcD1jYhChIRLvYpgnB6I,1163
|
102
|
-
ksxt/models/__pycache__/token.cpython-312.pyc,sha256=HETJcEemd8gsaz4dLneFM2cqlaFHiXRixzt34_Ejzik,793
|
103
|
-
ksxt/models/__pycache__/transaction.cpython-312.pyc,sha256=JBag20Aw6sx_-caWqi82Qxm7BgFJR0F4ME0vGugsxII,2821
|
104
|
-
ksxt/parser/bithumb.py,sha256=wGt52wGgFDH7zkWyhhqOg3ABH-tv_YwsoZ3MWcozAQc,17203
|
105
|
-
ksxt/parser/koreainvest.py,sha256=UzZGR6JgLrT9Z2lFH3V-6E-Uj_BnbSHqqHB0Pr7gaKQ,16684
|
106
|
-
ksxt/parser/parser.py,sha256=Ic40whJb2osDWuctVBjeFLYSXItcONAtawKkFbhHySw,5694
|
107
|
-
ksxt/parser/upbit.py,sha256=tDbt0Dhd6HG4qXe7OuzLks0zx8era3meSRafYRIGTWA,17746
|
108
|
-
ksxt/parser/__pycache__/bithumb.cpython-312.pyc,sha256=O_9hCKXYGnmjfaJWwzlT0Sqs0sjNxyDmT9W_yADmgwA,21282
|
109
|
-
ksxt/parser/__pycache__/koreainvest.cpython-312.pyc,sha256=PxFVti7Q-zhFwEmJxOPmDqyPH7pOHYsfi-Yy3nckL-c,20111
|
110
|
-
ksxt/parser/__pycache__/parser.cpython-312.pyc,sha256=U_FtyOVWAAeCUsH1QU41Yw2u6bu06sqF72Tv_tBJWpU,8910
|
111
|
-
ksxt/parser/__pycache__/upbit.cpython-312.pyc,sha256=NOtBxO5IHbzIH6S5octbpqU4T0J9CpOw2VSJjHA-eOs,22384
|
112
|
-
ksxt/sample/symbol_sync.ipynb,sha256=dnUOgEKdUuEkDo_6LZjmDtVuNh4PPmCN4Ht7Pz-0L9Y,640081
|
113
|
-
ksxt/utils/safer.py,sha256=tlXDU9KDxrrM0HT2bv45hkblIgbEYr02NygdYS0jj6c,1289
|
114
|
-
ksxt/utils/sorter.py,sha256=j7eN1Qy7Wx3cXcWyRWyO1fVq-M24TrXvcfewPR5axF4,227
|
115
|
-
ksxt/utils/timer.py,sha256=4_rhXdQDFkKshS5utWrgTteIe71tVSTL1zNW-IjOngM,1228
|
116
|
-
ksxt/utils/__pycache__/safer.cpython-312.pyc,sha256=oPbGln-szGLBGYR0JVFxjE5v3jbzsSvGhqbmFSIcJQE,1989
|
117
|
-
ksxt/utils/__pycache__/sorter.cpython-312.pyc,sha256=4vNlq0bWtItRlsRjXANLnBuThidmM6m_0YY_-PLA2Go,624
|
118
|
-
ksxt/utils/__pycache__/timer.cpython-312.pyc,sha256=IXsQV8yPC92ExFaWgvwn-MgEfiLZxSP5pjU6xqYx8Sw,2003
|
119
|
-
ksxt-1.0.5.dist-info/LICENSE.txt,sha256=vyuXQcPOZ9BriMQz3h1k3jQTrKGsAjohf8WQHHf6xqo,1080
|
120
|
-
ksxt-1.0.5.dist-info/METADATA,sha256=ha9_CoiYs1RP85pPFK69W1o7y1cHZPnlRtm6csp7Pec,1649
|
121
|
-
ksxt-1.0.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
|
122
|
-
ksxt-1.0.5.dist-info/top_level.txt,sha256=XLUhkZCur5Pe0BPUV3J0syngIPz7jBb2YlQR4epo5kI,5
|
123
|
-
ksxt-1.0.5.dist-info/RECORD,,
|
File without changes
|
File without changes
|