ksxt 1.0.1__py3-none-any.whl → 1.0.2__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/base/exchange.py CHANGED
@@ -1,10 +1,10 @@
1
1
  import collections
2
- from distutils.util import strtobool
3
2
  import json
4
3
  from datetime import datetime
5
4
  import time
6
5
  import pytz
7
6
  from typing import Dict, Optional
7
+ import ast
8
8
 
9
9
  from requests import Session
10
10
  import urllib.parse as _urlencode
@@ -480,8 +480,8 @@ class Exchange:
480
480
  return default_value
481
481
 
482
482
  try:
483
- return bool(strtobool(value))
484
- except Exception:
483
+ return bool(ast.literal_eval(value.capitalize()))
484
+ except (ValueError, SyntaxError):
485
485
  return default_value
486
486
 
487
487
  # endregion safe method
ksxt/models/market.py CHANGED
@@ -35,6 +35,11 @@ class SecurityData(BaseModel):
35
35
  # 최대 매도 주문 수량
36
36
  ask_max_qty: Optional[float] = 0
37
37
 
38
+ # 매수 주문 금액 단위
39
+ bid_amount_unit: Optional[float] = 0
40
+ # 매도 주문 금액 단위
41
+ ask_amount_unit: Optional[float] = 0
42
+
38
43
  # 최소 매수 주문 금액
39
44
  bid_min_amount: Optional[float] = 0
40
45
  # 최소 매도 주문 금액
ksxt/parser/bithumb.py CHANGED
@@ -226,6 +226,8 @@ class BithumbParser(BaseParser):
226
226
  ask_min_qty=safer.safe_number(market_info["ask"], "min_total"),
227
227
  bid_max_qty=safer.safe_number(market_info, "max_total"),
228
228
  ask_max_qty=safer.safe_number(market_info, "max_total"),
229
+ bid_amount_unit=1,
230
+ ask_amount_unit=1,
229
231
  bid_min_amount=safer.safe_number(market_info["bid"], "min_total"),
230
232
  ask_min_amount=safer.safe_number(market_info["ask"], "min_total"),
231
233
  bid_max_amount=safer.safe_number(market_info, "max_total"),
@@ -210,6 +210,8 @@ class KoreaInvestParser(BaseParser):
210
210
  ask_min_qty=0, # TODO : where is information?
211
211
  bid_max_qty=0, # TODO : where is information?
212
212
  ask_max_qty=0, # TODO : where is information?
213
+ bid_amount_unit=1, # TODO: where is information?
214
+ ask_amount_unit=1, # TODO : where is information?
213
215
  bid_min_amount=0, # TODO : where is information?
214
216
  ask_min_amount=0, # TODO : where is information?
215
217
  bid_max_amount=0, # TODO : where is information?
ksxt/parser/upbit.py CHANGED
@@ -232,6 +232,8 @@ class UpbitParser(BaseParser):
232
232
  ask_min_qty=safer.safe_number(market_info.get("ask", {}), "min_total"),
233
233
  bid_max_qty=safer.safe_number(market_info, "max_total"),
234
234
  ask_max_qty=safer.safe_number(market_info, "max_total"),
235
+ bid_amount_unit=1,
236
+ ask_amount_unit=1,
235
237
  bid_min_amount=safer.safe_number(market_info.get("bid", {}), "min_total"),
236
238
  ask_min_amount=safer.safe_number(market_info.get("ask", {}), "min_total"),
237
239
  bid_max_amount=safer.safe_number(market_info, "max_total"),
ksxt/utils/safer.py CHANGED
@@ -1,4 +1,4 @@
1
- from distutils.util import strtobool
1
+ import ast
2
2
 
3
3
 
4
4
  @staticmethod
@@ -43,6 +43,6 @@ def safe_boolean(dictionary, key, default_value=False):
43
43
  return default_value
44
44
 
45
45
  try:
46
- return bool(strtobool(value))
47
- except Exception:
46
+ return bool(ast.literal_eval(value.capitalize()))
47
+ except (ValueError, SyntaxError):
48
48
  return default_value
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ksxt
3
- Version: 1.0.1
3
+ Version: 1.0.2
4
4
  License: MIT License
5
5
 
6
6
  Copyright © 2023 AMOSA
@@ -34,13 +34,13 @@ ksxt/async_/base/__pycache__/throttler.cpython-312.pyc,sha256=wNDfiAHgLIXbSPtK4B
34
34
  ksxt/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  ksxt/base/com_exchange.py,sha256=q7C3Bc5q4ENvNGoghnQCN7YLttgwmFoNj9WsH5qxXNQ,287
36
36
  ksxt/base/errors.py,sha256=msGHmm9YGUOXOaK_VhOUEt5LvIDMMm6G-io8nQbNgA0,141
37
- ksxt/base/exchange.py,sha256=z4Xhkkc0VRZoaoO8QMSHDvHLU6cgIi9VfpaWu7w8kp0,16787
37
+ ksxt/base/exchange.py,sha256=rJ-cXfhZ00nBxgDUlwP_-kVhPI3Si5YC1f0zXok9kXM,16797
38
38
  ksxt/base/rate_limiter.py,sha256=9iF6OB-2u0q4nqtng8Tafn-fM3CVQ-DvdNRJ1aSCS3w,3005
39
39
  ksxt/base/rest_exchange.py,sha256=4DpSpLYVPZ-WGGV0oBQIDEUDjAAmj7DrsaI1_7GjGUo,15835
40
40
  ksxt/base/types.py,sha256=3bd3obJhhX1njy_o4LW8hSAHX2MThOI-mZm6iifwno4,59
41
41
  ksxt/base/__pycache__/__init__.cpython-312.pyc,sha256=WnqBpy7gGuw6RNmEVSFdxy4sOZJgZD-fZCJRUbhOHmU,146
42
42
  ksxt/base/__pycache__/errors.cpython-312.pyc,sha256=rAZ-JEC6Ga8eAk4FbYv1foQvMiwK2qj8yVSOzPmKAKo,622
43
- ksxt/base/__pycache__/exchange.cpython-312.pyc,sha256=fTNuJeA4AGMHSzEFEiAiwyIBtNzmhB53L7_xP2zw4ok,21658
43
+ ksxt/base/__pycache__/exchange.cpython-312.pyc,sha256=DmLd_GSYliWt4lAIuaO6zCwCQwJtYX0b6Rl2e3WtU2Q,21753
44
44
  ksxt/base/__pycache__/rate_limiter.cpython-312.pyc,sha256=fWueaBMHMPK7Z3_YLJV9bPNPQBax_MF_sEIoqorqwx8,5418
45
45
  ksxt/base/__pycache__/rest_exchange.cpython-312.pyc,sha256=yL-rNG758IYojfx-y39L-cPWuPrZQ1RRKEFetOI7hBk,22849
46
46
  ksxt/base/__pycache__/types.cpython-312.pyc,sha256=iF742YNlqCX4ZSIJP4FDPd-3765zIr1VWr-XWXisCsA,232
@@ -80,7 +80,7 @@ ksxt/models/cash.py,sha256=sNexdR6Ek-YZ6cVAmre-zf3K30R-6hreHuBQKYzMsPU,303
80
80
  ksxt/models/common.py,sha256=HvsNa2wlTeLdnB67untL0UzOQ5r6f2s6Gkfxeh7LTpM,827
81
81
  ksxt/models/error.py,sha256=yzpTweHMB-bi7hzD8ATKsK2klJAsbfPEBBa1A5tY6tw,291
82
82
  ksxt/models/historical.py,sha256=fWcst4WPimI2Avb4b1kOswfyf3nB4XSMgpTSmm7uTpY,655
83
- ksxt/models/market.py,sha256=SBV-LEQcM6_GnSpueInMwweQUENAMy4jptpFkW6XRzM,1857
83
+ ksxt/models/market.py,sha256=kkH-P1m1HQjJOPT1k4bk9ZgW-_kwIBO_fXHcrRlWlVE,2013
84
84
  ksxt/models/order.py,sha256=LJJd-licLirI5WrAM1MItViOX_u5U_fmpBFPpDSdHxE,867
85
85
  ksxt/models/orderbook.py,sha256=S1c03QBu1hupN87CMWLgEsh8u2GrZ_Z_BcTUuiKGnR0,773
86
86
  ksxt/models/ticker.py,sha256=pPc7GqUOJchLg7qOpKfxhTVpXygF1Otc_M9_KfHFEgY,544
@@ -92,29 +92,29 @@ ksxt/models/__pycache__/cash.cpython-312.pyc,sha256=zHfJRVx-50RgXuUvCK1aLRgJaPlO
92
92
  ksxt/models/__pycache__/common.cpython-312.pyc,sha256=G8yzihcEFUbqS5xm38_tLQahaO509Iq2iiXHdOffbWs,1363
93
93
  ksxt/models/__pycache__/error.cpython-312.pyc,sha256=nnbF5rIw8e6kr_fcn-uwD_41Ge0Du2f2vUZpK4zzRFI,774
94
94
  ksxt/models/__pycache__/historical.cpython-312.pyc,sha256=TocUsW2T7yOOU29YzSEVAKSLtDwQ77AgGGPJDJTWhlc,1291
95
- ksxt/models/__pycache__/market.cpython-312.pyc,sha256=LSMJWGMM5nzCW366uFC1jLlHDoSIBgV08p3T7I9P8L0,2964
95
+ ksxt/models/__pycache__/market.cpython-312.pyc,sha256=uGDE-2ms5RJMJv54egSQ4NiEMh-flMBYijOb46fnsgg,3078
96
96
  ksxt/models/__pycache__/order.cpython-312.pyc,sha256=jvesPAK8EDrWCsE8H7UywkNyPdMmwKDWpoHO-BHKEd8,1791
97
97
  ksxt/models/__pycache__/orderbook.cpython-312.pyc,sha256=wzEg5vuh78UOhnUvMd_K7SjfIdgPQ9lZpHlHJ4ekqs8,1517
98
98
  ksxt/models/__pycache__/ticker.cpython-312.pyc,sha256=k6_mEv_fTMtZOd6BwWUW8du_udB8LnmZqOWbZpjE1lE,1165
99
99
  ksxt/models/__pycache__/token.cpython-312.pyc,sha256=DFNk5vUNLM-McE9US441Zfmo7yyCv_Gpxxp350PmNrw,795
100
100
  ksxt/models/__pycache__/transaction.cpython-312.pyc,sha256=lSEJNLWcsivMp_DeEv2-zw75EDqKiY3YCN5hQh4fvHY,2779
101
- ksxt/parser/bithumb.py,sha256=0c0_aFkbQxHvDHOpuA4pothJbnVlO3nKYgzQgFHio_g,14236
102
- ksxt/parser/koreainvest.py,sha256=X751E-grPEY7itEGnY66ILTWG_GY3wA0XJxF-h4S1FQ,14954
101
+ ksxt/parser/bithumb.py,sha256=v6enIUbxIf5EKdKaw8Gwu1G6EgyaE96H8x3UC6Kw0g0,14300
102
+ ksxt/parser/koreainvest.py,sha256=TfKmaRVc1Tns_kYnhJa2lUjtcO88oNdBWJKLMzC3ZHo,15081
103
103
  ksxt/parser/parser.py,sha256=8H6RmI6XUBhwp3r7pFcdtUuf-7bZ5RvnObXKrcOMfyI,5147
104
- ksxt/parser/upbit.py,sha256=ZTID_1YESUcL5T44LVB9j61lj1FW-1XU6tEEj7vZqHE,14677
105
- ksxt/parser/__pycache__/bithumb.cpython-312.pyc,sha256=xsC_8d9PNgK5J490dfcsB_195PRwoGGOFraBn3FaQtY,17986
106
- ksxt/parser/__pycache__/koreainvest.cpython-312.pyc,sha256=eVc0zrgcFn39meAfemhhRfGR_dSL3rMb3fOtsMr1elQ,18284
104
+ ksxt/parser/upbit.py,sha256=13Gmnj15YV9G5C53efj4uZ-nQSaMFcPkmCuHTZ44bh4,14741
105
+ ksxt/parser/__pycache__/bithumb.cpython-312.pyc,sha256=GA6CCsqGAogCxtV0A_4TLbdEn0PT56AAwHasvA4K4Pw,18201
106
+ ksxt/parser/__pycache__/koreainvest.cpython-312.pyc,sha256=I0rSJMRPuOF1GFRDKeX-LT05psYc3sTLJd9DO0_cv1c,18505
107
107
  ksxt/parser/__pycache__/parser.cpython-312.pyc,sha256=D6qWG4dfxiRPUv6L_XAUPSnne4N_FWh1HV5URSUWo3Q,8326
108
- ksxt/parser/__pycache__/upbit.cpython-312.pyc,sha256=u-4h94dVoYiZ9WgIp_d6L2-afs1ybHhJYxfwOyoMRcI,18843
108
+ ksxt/parser/__pycache__/upbit.cpython-312.pyc,sha256=gANx4wRq38GlsXrZCEH7TPWbPkOZS0LKHpMiQiKSqqI,19058
109
109
  ksxt/sample/symbol_sync.ipynb,sha256=dnUOgEKdUuEkDo_6LZjmDtVuNh4PPmCN4Ht7Pz-0L9Y,640081
110
- ksxt/utils/safer.py,sha256=raRU2CBDtsZyyipb6xduRoTgasEtNnpZKHpbTK9wkh4,1279
110
+ ksxt/utils/safer.py,sha256=tlXDU9KDxrrM0HT2bv45hkblIgbEYr02NygdYS0jj6c,1289
111
111
  ksxt/utils/sorter.py,sha256=j7eN1Qy7Wx3cXcWyRWyO1fVq-M24TrXvcfewPR5axF4,227
112
112
  ksxt/utils/timer.py,sha256=4_rhXdQDFkKshS5utWrgTteIe71tVSTL1zNW-IjOngM,1228
113
- ksxt/utils/__pycache__/safer.cpython-312.pyc,sha256=GxRVIQqkB2OhLPrnBuQtFAtytEocdxWqykuutRkJuA8,1893
113
+ ksxt/utils/__pycache__/safer.cpython-312.pyc,sha256=UhwkADGcSzG-ZYboesTzUHMGgn5C27UvslVZLp_SsF4,1991
114
114
  ksxt/utils/__pycache__/sorter.cpython-312.pyc,sha256=7VUIekH9h5SDsz4L5bjCdSQln-fLgQZII46URitryHI,626
115
115
  ksxt/utils/__pycache__/timer.cpython-312.pyc,sha256=8coj4_LWUtYOdFVhaEHyDbDwkt3JKtmQ1pXPtnsROyY,2005
116
- ksxt-1.0.1.dist-info/LICENSE.txt,sha256=vyuXQcPOZ9BriMQz3h1k3jQTrKGsAjohf8WQHHf6xqo,1080
117
- ksxt-1.0.1.dist-info/METADATA,sha256=kLTzqD_vS4HMmnf8LA1SFHdCFgOx9n-xfii-MngXo-c,1649
118
- ksxt-1.0.1.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
119
- ksxt-1.0.1.dist-info/top_level.txt,sha256=XLUhkZCur5Pe0BPUV3J0syngIPz7jBb2YlQR4epo5kI,5
120
- ksxt-1.0.1.dist-info/RECORD,,
116
+ ksxt-1.0.2.dist-info/LICENSE.txt,sha256=vyuXQcPOZ9BriMQz3h1k3jQTrKGsAjohf8WQHHf6xqo,1080
117
+ ksxt-1.0.2.dist-info/METADATA,sha256=44Se9OMQUCPOs0Ol4b3183PpFOrFQx7h0xUoz0fI2BY,1649
118
+ ksxt-1.0.2.dist-info/WHEEL,sha256=cVxcB9AmuTcXqmwrtPhNK88dr7IR_b6qagTj0UvIEbY,91
119
+ ksxt-1.0.2.dist-info/top_level.txt,sha256=XLUhkZCur5Pe0BPUV3J0syngIPz7jBb2YlQR4epo5kI,5
120
+ ksxt-1.0.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (74.0.0)
2
+ Generator: setuptools (74.1.2)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5