ksxt 1.0.7__py3-none-any.whl → 1.0.8__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 (115) hide show
  1. ksxt/__pycache__/__init__.cpython-311.pyc +0 -0
  2. ksxt/__pycache__/bithumb.cpython-311.pyc +0 -0
  3. ksxt/__pycache__/koreainvest.cpython-311.pyc +0 -0
  4. ksxt/__pycache__/upbit.cpython-311.pyc +0 -0
  5. ksxt/api/__pycache__/__init__.cpython-311.pyc +0 -0
  6. ksxt/api/__pycache__/bithumb.cpython-311.pyc +0 -0
  7. ksxt/api/__pycache__/koreainvest.cpython-311.pyc +0 -0
  8. ksxt/api/__pycache__/upbit.cpython-311.pyc +0 -0
  9. ksxt/async_/__pycache__/__init__.cpython-311.pyc +0 -0
  10. ksxt/async_/__pycache__/bithumb.cpython-311.pyc +0 -0
  11. ksxt/async_/__pycache__/koreainvest.cpython-311.pyc +0 -0
  12. ksxt/async_/__pycache__/upbit.cpython-311.pyc +0 -0
  13. ksxt/async_/base/__pycache__/__init__.cpython-311.pyc +0 -0
  14. ksxt/async_/base/__pycache__/async_exchange.cpython-311.pyc +0 -0
  15. ksxt/async_/base/async_exchange.py +64 -0
  16. ksxt/async_/bithumb.py +2 -2
  17. ksxt/async_/koreainvest.py +1 -1
  18. ksxt/base/__pycache__/__init__.cpython-311.pyc +0 -0
  19. ksxt/base/__pycache__/errors.cpython-311.pyc +0 -0
  20. ksxt/base/__pycache__/exchange.cpython-311.pyc +0 -0
  21. ksxt/base/__pycache__/rate_limiter.cpython-311.pyc +0 -0
  22. ksxt/base/__pycache__/rest_exchange.cpython-311.pyc +0 -0
  23. ksxt/base/__pycache__/types.cpython-311.pyc +0 -0
  24. ksxt/bithumb.py +2 -2
  25. ksxt/config/__pycache__/__init__.cpython-311.pyc +0 -0
  26. ksxt/config/token.toml +3 -3
  27. ksxt/market/__pycache__/base.cpython-311.pyc +0 -0
  28. ksxt/market/__pycache__/db.cpython-311.pyc +0 -0
  29. ksxt/market/__pycache__/logging.cpython-311.pyc +0 -0
  30. ksxt/market/__pycache__/manager.cpython-311.pyc +0 -0
  31. ksxt/market/__pycache__/markets.cpython-311.pyc +0 -0
  32. ksxt/market/krx/__pycache__/kosdaq.cpython-311.pyc +0 -0
  33. ksxt/market/krx/__pycache__/kospi.cpython-311.pyc +0 -0
  34. ksxt/market/krx/__pycache__/stock.cpython-311.pyc +0 -0
  35. ksxt/market/us/__pycache__/amex.cpython-311.pyc +0 -0
  36. ksxt/market/us/__pycache__/nasdaq.cpython-311.pyc +0 -0
  37. ksxt/market/us/__pycache__/nyse.cpython-311.pyc +0 -0
  38. ksxt/market/us/__pycache__/stock.cpython-311.pyc +0 -0
  39. ksxt/models/__pycache__/__init__.cpython-311.pyc +0 -0
  40. ksxt/models/__pycache__/balance.cpython-311.pyc +0 -0
  41. ksxt/models/__pycache__/cash.cpython-311.pyc +0 -0
  42. ksxt/models/__pycache__/common.cpython-311.pyc +0 -0
  43. ksxt/models/__pycache__/error.cpython-311.pyc +0 -0
  44. ksxt/models/__pycache__/historical.cpython-311.pyc +0 -0
  45. ksxt/models/__pycache__/market.cpython-311.pyc +0 -0
  46. ksxt/models/__pycache__/order.cpython-311.pyc +0 -0
  47. ksxt/models/__pycache__/orderbook.cpython-311.pyc +0 -0
  48. ksxt/models/__pycache__/ticker.cpython-311.pyc +0 -0
  49. ksxt/models/__pycache__/token.cpython-311.pyc +0 -0
  50. ksxt/models/__pycache__/transaction.cpython-311.pyc +0 -0
  51. ksxt/parser/__pycache__/bithumb.cpython-311.pyc +0 -0
  52. ksxt/parser/__pycache__/koreainvest.cpython-311.pyc +0 -0
  53. ksxt/parser/__pycache__/parser.cpython-311.pyc +0 -0
  54. ksxt/parser/__pycache__/upbit.cpython-311.pyc +0 -0
  55. ksxt/utils/__pycache__/safer.cpython-311.pyc +0 -0
  56. ksxt/utils/__pycache__/sorter.cpython-311.pyc +0 -0
  57. ksxt/utils/__pycache__/timer.cpython-311.pyc +0 -0
  58. {ksxt-1.0.7.dist-info → ksxt-1.0.8.dist-info}/METADATA +3 -2
  59. ksxt-1.0.8.dist-info/RECORD +119 -0
  60. {ksxt-1.0.7.dist-info → ksxt-1.0.8.dist-info}/WHEEL +1 -1
  61. ksxt/__pycache__/__init__.cpython-312.pyc +0 -0
  62. ksxt/__pycache__/bithumb.cpython-312.pyc +0 -0
  63. ksxt/__pycache__/koreainvest.cpython-312.pyc +0 -0
  64. ksxt/__pycache__/upbit.cpython-312.pyc +0 -0
  65. ksxt/api/__pycache__/__init__.cpython-312.pyc +0 -0
  66. ksxt/api/__pycache__/bithumb.cpython-312.pyc +0 -0
  67. ksxt/api/__pycache__/koreainvest.cpython-312.pyc +0 -0
  68. ksxt/api/__pycache__/upbit.cpython-312.pyc +0 -0
  69. ksxt/async_/__pycache__/__init__.cpython-312.pyc +0 -0
  70. ksxt/async_/__pycache__/bithumb.cpython-312.pyc +0 -0
  71. ksxt/async_/__pycache__/koreainvest.cpython-312.pyc +0 -0
  72. ksxt/async_/__pycache__/upbit.cpython-312.pyc +0 -0
  73. ksxt/async_/base/__pycache__/__init__.cpython-312.pyc +0 -0
  74. ksxt/async_/base/__pycache__/async_exchange.cpython-312.pyc +0 -0
  75. ksxt/base/__pycache__/__init__.cpython-312.pyc +0 -0
  76. ksxt/base/__pycache__/errors.cpython-312.pyc +0 -0
  77. ksxt/base/__pycache__/exchange.cpython-312.pyc +0 -0
  78. ksxt/base/__pycache__/rate_limiter.cpython-312.pyc +0 -0
  79. ksxt/base/__pycache__/rest_exchange.cpython-312.pyc +0 -0
  80. ksxt/base/__pycache__/types.cpython-312.pyc +0 -0
  81. ksxt/config/__pycache__/__init__.cpython-312.pyc +0 -0
  82. ksxt/market/__pycache__/base.cpython-312.pyc +0 -0
  83. ksxt/market/__pycache__/db.cpython-312.pyc +0 -0
  84. ksxt/market/__pycache__/logging.cpython-312.pyc +0 -0
  85. ksxt/market/__pycache__/manager.cpython-312.pyc +0 -0
  86. ksxt/market/__pycache__/markets.cpython-312.pyc +0 -0
  87. ksxt/market/krx/__pycache__/kosdaq.cpython-312.pyc +0 -0
  88. ksxt/market/krx/__pycache__/kospi.cpython-312.pyc +0 -0
  89. ksxt/market/krx/__pycache__/stock.cpython-312.pyc +0 -0
  90. ksxt/market/us/__pycache__/amex.cpython-312.pyc +0 -0
  91. ksxt/market/us/__pycache__/nasdaq.cpython-312.pyc +0 -0
  92. ksxt/market/us/__pycache__/nyse.cpython-312.pyc +0 -0
  93. ksxt/market/us/__pycache__/stock.cpython-312.pyc +0 -0
  94. ksxt/models/__pycache__/__init__.cpython-312.pyc +0 -0
  95. ksxt/models/__pycache__/balance.cpython-312.pyc +0 -0
  96. ksxt/models/__pycache__/cash.cpython-312.pyc +0 -0
  97. ksxt/models/__pycache__/common.cpython-312.pyc +0 -0
  98. ksxt/models/__pycache__/error.cpython-312.pyc +0 -0
  99. ksxt/models/__pycache__/historical.cpython-312.pyc +0 -0
  100. ksxt/models/__pycache__/market.cpython-312.pyc +0 -0
  101. ksxt/models/__pycache__/order.cpython-312.pyc +0 -0
  102. ksxt/models/__pycache__/orderbook.cpython-312.pyc +0 -0
  103. ksxt/models/__pycache__/ticker.cpython-312.pyc +0 -0
  104. ksxt/models/__pycache__/token.cpython-312.pyc +0 -0
  105. ksxt/models/__pycache__/transaction.cpython-312.pyc +0 -0
  106. ksxt/parser/__pycache__/bithumb.cpython-312.pyc +0 -0
  107. ksxt/parser/__pycache__/koreainvest.cpython-312.pyc +0 -0
  108. ksxt/parser/__pycache__/parser.cpython-312.pyc +0 -0
  109. ksxt/parser/__pycache__/upbit.cpython-312.pyc +0 -0
  110. ksxt/utils/__pycache__/safer.cpython-312.pyc +0 -0
  111. ksxt/utils/__pycache__/sorter.cpython-312.pyc +0 -0
  112. ksxt/utils/__pycache__/timer.cpython-312.pyc +0 -0
  113. ksxt-1.0.7.dist-info/RECORD +0 -119
  114. {ksxt-1.0.7.dist-info → ksxt-1.0.8.dist-info/licenses}/LICENSE.txt +0 -0
  115. {ksxt-1.0.7.dist-info → ksxt-1.0.8.dist-info}/top_level.txt +0 -0
Binary file
Binary file
@@ -1,4 +1,8 @@
1
+ import logging
1
2
  import asyncio
3
+ import toml
4
+ import os
5
+ import aiofiles
2
6
  import time
3
7
  import aiohttp
4
8
  from datetime import datetime
@@ -8,6 +12,7 @@ from typing import Any, Dict, Literal, Optional
8
12
  from ksxt.base.errors import NotSupportedError
9
13
  from ksxt.base.rate_limiter import RateLimiterContext
10
14
  from ksxt.base.rest_exchange import RestExchange
15
+ from ksxt.config import CONFIG_DIR
11
16
  from ksxt.config import VALID_METHODS
12
17
  import ksxt.models
13
18
 
@@ -46,6 +51,65 @@ class AsyncExchange(RestExchange):
46
51
  async def __aexit__(self, *args):
47
52
  await self.close()
48
53
 
54
+ def check_token(func):
55
+ async def wrapper(self, *args, **kwargs):
56
+ if not await self.is_valid_token():
57
+ await self.create_token()
58
+
59
+ return await func(self, *args, **kwargs)
60
+
61
+ return wrapper
62
+
63
+ async def is_valid_token(self) -> bool:
64
+ await self.load_token()
65
+ if self.token_expired is None:
66
+ return False
67
+
68
+ return datetime.now(self.timezone) <= self.timezone.localize(self.token_expired)
69
+
70
+ async def read_token(self):
71
+ try:
72
+ token_path = os.path.join(CONFIG_DIR, "token.toml")
73
+ async with aiofiles.open(token_path, mode="r") as f:
74
+ c = toml.loads(await f.read())
75
+ return c
76
+ except Exception as e:
77
+ return {}
78
+
79
+ async def load_token(self):
80
+ try:
81
+ data = await self.read_token()
82
+
83
+ if self.open_key in data.keys():
84
+ self.token = data[self.open_key]["token"]
85
+ self.token_expired = data[self.open_key]["expired"]
86
+ except Exception as e:
87
+ pass
88
+
89
+ async def save_token(self, open_key, token, expired):
90
+ try:
91
+ logging.info("save token")
92
+ logging.info(open_key)
93
+ logging.info(token)
94
+ logging.info(expired)
95
+
96
+ data = await self.read_token()
97
+ if open_key not in data:
98
+ data[open_key] = {}
99
+ data[open_key]["token"] = token
100
+ data[open_key]["expired"] = expired
101
+
102
+ token_path = os.path.join(CONFIG_DIR, "token.toml")
103
+ async with aiofiles.open(token_path, "w") as file:
104
+ await file.write(toml.dumps(data))
105
+
106
+ await self.load_token()
107
+ except Exception as e:
108
+ pass
109
+
110
+ async def create_token(self):
111
+ pass
112
+
49
113
  async def fetch(self, url, method="GET", headers=None, body=None, params=None):
50
114
  # Ensure that resources are initialized before the request
51
115
  await self.initialize()
ksxt/async_/bithumb.py CHANGED
@@ -167,7 +167,7 @@ class Bithumb(AsyncExchange, ImplicitAPI):
167
167
 
168
168
  # 실패 시 오류 응답 반환
169
169
  if common_response.success != "0":
170
- return ksxt.models.KsxtTickerResponse(header=common_header, response=common_response, info=[])
170
+ return ksxt.models.KsxtTickerResponse(header=common_header, response=common_response, info=None)
171
171
 
172
172
  # 데이터 파싱
173
173
  parsed_info = self.parser.parse_ticker(response, base_market)
@@ -186,7 +186,7 @@ class Bithumb(AsyncExchange, ImplicitAPI):
186
186
 
187
187
  # 실패 시 오류 응답 반환
188
188
  if common_response.success != "0":
189
- return ksxt.models.KsxtTickersResponse(header=common_header, response=common_response, info=[])
189
+ return ksxt.models.KsxtTickersResponse(header=common_header, response=common_response, info=None)
190
190
 
191
191
  # 데이터 파싱
192
192
  parsed_info = self.parser.parse_tickers(response, base_market)
@@ -87,7 +87,7 @@ class KoreaInvest(AsyncExchange, ImplicitAPI):
87
87
 
88
88
  parsed_info = self.parser.parse_token(response=response)
89
89
 
90
- self.save_token(self.open_key, parsed_info.access_token, expired=parsed_info.expired_datetime)
90
+ await self.save_token(self.open_key, parsed_info.access_token, expired=parsed_info.expired_datetime)
91
91
 
92
92
  return ksxt.models.KsxtTokenResponse(header=common_header, response=common_response, info=parsed_info)
93
93
 
ksxt/bithumb.py CHANGED
@@ -169,7 +169,7 @@ class Bithumb(RestExchange, ImplicitAPI):
169
169
 
170
170
  # 실패 시 오류 응답 반환
171
171
  if common_response.success != "0":
172
- return ksxt.models.KsxtTickerResponse(header=common_header, response=common_response, info=[])
172
+ return ksxt.models.KsxtTickerResponse(header=common_header, response=common_response, info=None)
173
173
 
174
174
  # 데이터 파싱
175
175
  parsed_info = self.parser.parse_ticker(response, base_market)
@@ -188,7 +188,7 @@ class Bithumb(RestExchange, ImplicitAPI):
188
188
 
189
189
  # 실패 시 오류 응답 반환
190
190
  if common_response.success != "0":
191
- return ksxt.models.KsxtTickersResponse(header=common_header, response=common_response, info=[])
191
+ return ksxt.models.KsxtTickersResponse(header=common_header, response=common_response, info=None)
192
192
 
193
193
  # 데이터 파싱
194
194
  parsed_info = self.parser.parse_tickers(response, base_market)
ksxt/config/token.toml CHANGED
@@ -1,3 +1,3 @@
1
- [PSXkvBM1hQXJDRHg2rLvC7Tr8SoyPudlbx9o]
2
- token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0b2tlbiIsImF1ZCI6IjEyYzYxZWIxLTU3YzQtNGFiZC1iN2JhLTM0OGIwOTBjY2NlMyIsInByZHRfY2QiOiIiLCJpc3MiOiJ1bm9ndyIsImV4cCI6MTcxOTM1OTE1NiwiaWF0IjoxNzE5MjcyNzU2LCJqdGkiOiJQU1hrdkJNMWhRWEpEUkhnMnJMdkM3VHI4U295UHVkbGJ4OW8ifQ.B1CJ7IMEkkqVpQ7ECM8otr6lVVmV2Yp_bRaBBRlcOo29MIQZ5z8g5oEcXyO-ghaUa8UJZguuo8Q7iQreRBYkZg"
3
- expired = "2024-06-26 08:45:56"
1
+ [PSCWKArP3T1L4qMgyZ4DXIDlqcaK48jJW1J5]
2
+ token = "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJ0b2tlbiIsImF1ZCI6IjAyNjhmZDU2LWU4YzgtNDQyZS1hOWU5LTI2YjNiOGVkNGYwYiIsInByZHRfY2QiOiIiLCJpc3MiOiJ1bm9ndyIsImV4cCI6MTc0Mzc3NDk0OSwiaWF0IjoxNzQzNjg4NTQ5LCJqdGkiOiJQU0NXS0FyUDNUMUw0cU1neVo0RFhJRGxxY2FLNDhqSlcxSjUifQ.ILzpskgzsz9igynOuTrxGOYUCWknEoEar6AAPL3DdBGWM8pi1SkU7pcNgkx6eZ1k9nsvs2YeB1OsFTJtVp6kCQ"
3
+ expired = 2025-04-04T22:55:49
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: ksxt
3
- Version: 1.0.7
3
+ Version: 1.0.8
4
4
  License: MIT License
5
5
 
6
6
  Copyright © 2025 AMOSA
@@ -34,6 +34,7 @@ Requires-Dist: pyjwt
34
34
  Requires-Dist: pydantic
35
35
  Requires-Dist: black
36
36
  Requires-Dist: pytz
37
+ Dynamic: license-file
37
38
 
38
39
  # ksxt
39
40
  - Krx Stock eXchange Trading library
@@ -0,0 +1,119 @@
1
+ ksxt/__init__.py,sha256=Q4kbXuxaCcQg5Z1T2z31lrUc5Cr95RIyv-y6hNf3R0E,131
2
+ ksxt/bithumb.py,sha256=KZEdoU9F1L7L_gyvAn5PVHTBvGWEFi_mdd-qn9KC9ZU,22645
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-311.pyc,sha256=FRvkjUhsAn0QaXCbvQuLTu9DonAFzzG_fcVPGpSenZY,364
6
+ ksxt/__pycache__/bithumb.cpython-311.pyc,sha256=4o_1WBfX3N25nqQFUS4_7oOygnTfT5SXoYFWP1Crqzc,27958
7
+ ksxt/__pycache__/koreainvest.cpython-311.pyc,sha256=fxPE3JAo25KYn2hlCHB4O-mNLs33iqbcOB1jBIq5gLs,24695
8
+ ksxt/__pycache__/upbit.cpython-311.pyc,sha256=00ojjn0cRf7wM6AOefI2SvlB2LFK9ZE4aDqLnvYD3N0,28444
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-311.pyc,sha256=qiOL_i4rnyQB1MufNQdlgVbD3iO1dvlCqHHrj_7Y_ts,1471
14
+ ksxt/api/__pycache__/bithumb.cpython-311.pyc,sha256=90ip5Mxe3FOMG56t4XgRxA4YTvW9K87IXMhV4PmAeJI,2911
15
+ ksxt/api/__pycache__/koreainvest.cpython-311.pyc,sha256=Icy8GGpAcHnk4Q0ysBLtHihNHaeT3eijDxCSUtDPSZs,2384
16
+ ksxt/api/__pycache__/upbit.cpython-311.pyc,sha256=aO55DqxT60V6IPu-QANc37ZFCDnfl_GEyVOv-hjBoPw,3432
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=W5tpmmkp6fBahxHAtoMFGyYVlq5pcNS5KQYgJvcQn60,20538
23
+ ksxt/async_/koreainvest.py,sha256=oT0553kpEmiIn0iMUy7prXlAfZhCXsyeEJzZrkvJcFU,23138
24
+ ksxt/async_/upbit.py,sha256=Y0cPAkiZluBCpNj2jX1d-V0olzMZMT8Dyzup2BAnSH0,22783
25
+ ksxt/async_/__pycache__/__init__.cpython-311.pyc,sha256=wjkq_RGiY1DBRk4wss6TcW0Yt0d4JNHdraSAcobP5jA,448
26
+ ksxt/async_/__pycache__/bithumb.cpython-311.pyc,sha256=jcpWKNoBe7swnBTQUGoLPgwtpy3Awzu--n3aXzjffko,26174
27
+ ksxt/async_/__pycache__/koreainvest.cpython-311.pyc,sha256=NgIbsrMCWvjNqYlf6PC77ODgc53ugfv60Rb6eXn3KxA,27691
28
+ ksxt/async_/__pycache__/upbit.cpython-311.pyc,sha256=1wgoyYecNrFT3FjPGOT9LfTYLkqjZZenY9W28KdlWVo,29834
29
+ ksxt/async_/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
+ ksxt/async_/base/async_exchange.py,sha256=NtcojJx1HeglOv3OPZbsshD4Raah0sSDiSk87ZWPkVA,11688
31
+ ksxt/async_/base/__pycache__/__init__.cpython-311.pyc,sha256=JPlbgnB0LYDFna6ojkr9SnBasoeeGgjKAmrfZpqEgmA,165
32
+ ksxt/async_/base/__pycache__/async_exchange.cpython-311.pyc,sha256=_rOfNpbFBebpQvX9r2TMTW9NFdXZKBXWuJtsodrfSbg,20536
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-311.pyc,sha256=-t9MW4yNiB-t7D0i2EE-Vk9fhstP7YhUkVh_tlQI7fc,158
41
+ ksxt/base/__pycache__/errors.cpython-311.pyc,sha256=Itt8cmHVJDLGw2JLOBkCco4mw9kOR6xWBNkBlg5dXjI,758
42
+ ksxt/base/__pycache__/exchange.cpython-311.pyc,sha256=6oqHbSuPPigxFuGYyhsIbcwnFtAkpaL9qKBzVEY19E0,23933
43
+ ksxt/base/__pycache__/rate_limiter.cpython-311.pyc,sha256=4Y6Br_xaGM5R7P6o7tBBkjSTmicOnHseJMG7Ogg1AFA,5716
44
+ ksxt/base/__pycache__/rest_exchange.cpython-311.pyc,sha256=1IExQcRMo2HbFsWZhmQ2XCX7QvgjZTLbuJGSNOjEmbk,24297
45
+ ksxt/base/__pycache__/types.cpython-311.pyc,sha256=IampLU3cyCj8rElqytacnBx8PAN4MuBHoytpiDMcw8M,259
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=sRf2gsb_cm3qs7VGFwGfEBJVpBve8Ksk8aTRN7gjUQ0,429
50
+ ksxt/config/upbit.toml,sha256=1aGKZ3HAV28rrTVGZQ418I9NJwhoRh70Vx03oKacIfY,13439
51
+ ksxt/config/__pycache__/__init__.cpython-311.pyc,sha256=qzrTlMDZ2jxn3jwDUaPHhrTxMJJEYudy1bKBvudjViw,441
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-311.pyc,sha256=SGIR-Tg4f-RY6Zaq7h1m-ArT_khWQcQDjdy1ZuXBUgA,13130
58
+ ksxt/market/__pycache__/db.cpython-311.pyc,sha256=LM45Km5nX6c5hcb5NIfklLVjjgwofY9YDVTZby9fQrg,847
59
+ ksxt/market/__pycache__/logging.cpython-311.pyc,sha256=G9sprn4GTW3ZQ5O1_886gQm0H4AgBLaHgeb0NLO3ZHk,1539
60
+ ksxt/market/__pycache__/manager.cpython-311.pyc,sha256=K2aIEkYQQBiaEuLB9KDmN_0o9YQJOH0Vb8CYVP88Cb4,13249
61
+ ksxt/market/__pycache__/markets.cpython-311.pyc,sha256=BcTw_IxTRHf4ZPLAgdFszFnZK1FpRbjv28tAu4eFrSg,890
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-311.pyc,sha256=sXJFQr1I4mhCzkPOAdR8hconbo_LSwGvHwI22QHRGww,9171
66
+ ksxt/market/krx/__pycache__/kospi.cpython-311.pyc,sha256=mBZkDQUlOcZgeX--Eeo0uealSQOUQoWZlCoAqNjgZ2w,10373
67
+ ksxt/market/krx/__pycache__/stock.cpython-311.pyc,sha256=ymlSjwqSTncpUOYTvwgAuA1G4bItK62JKnJdRZVrKFc,10213
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-311.pyc,sha256=tYJhJbIys4mWdj_ATVc2mX1B7Xc3AdF34nNVV5BW8b0,4268
73
+ ksxt/market/us/__pycache__/nasdaq.cpython-311.pyc,sha256=ZeFnlcsZp9xpDrbTiHsihDw-M2xEd2GMbcF-MDkvJR4,4282
74
+ ksxt/market/us/__pycache__/nyse.cpython-311.pyc,sha256=1ju-hwS8Zeh8hdehA3xPQ4dGsT_1u-I3zCdWyDL7RD4,4265
75
+ ksxt/market/us/__pycache__/stock.cpython-311.pyc,sha256=_0JY__bk0dPwhWAoKVtaczEgEm-IgWVxGnFqN-2HsDM,5727
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-311.pyc,sha256=Q3jeBVVK-yiSEfmkQ6Y7_GsjErb3MRJL_qJeTEMBNqU,1262
89
+ ksxt/models/__pycache__/balance.cpython-311.pyc,sha256=89V_-QD994dRuMrS1Z3UoYwST3eDZlm5LwlTBAzTJ9I,2339
90
+ ksxt/models/__pycache__/cash.cpython-311.pyc,sha256=Pd77oJh6_zJ3OB9RnIfAiJohEhWC8UGNS6fH8FtNtEQ,886
91
+ ksxt/models/__pycache__/common.cpython-311.pyc,sha256=qHRYu35rUeRpI4OkOnjMehH0diPMQJynXKOu7hkLhKk,1696
92
+ ksxt/models/__pycache__/error.cpython-311.pyc,sha256=tGs_TEaMFvg8GWguwPe4HfdmXNdsCLoWpur64kx0up0,963
93
+ ksxt/models/__pycache__/historical.cpython-311.pyc,sha256=O5duYiVoidJUW2c9s70yAUxdlnjH9adcDbFf50cel7U,1601
94
+ ksxt/models/__pycache__/market.cpython-311.pyc,sha256=Efybm3FYqwSH9G4v4R4VfpLn9gFCoMyLiJdFyt8x3dU,3859
95
+ ksxt/models/__pycache__/order.cpython-311.pyc,sha256=1y3K94reITdsTZ1yovOBI59P7ZefKEeVa_agsURVd7U,2227
96
+ ksxt/models/__pycache__/orderbook.cpython-311.pyc,sha256=AtULAniBBwp0XiH3_v7mOAkAYK_Xf-prRAxSjIUfX-c,1902
97
+ ksxt/models/__pycache__/ticker.cpython-311.pyc,sha256=80rh5fPqtoX9Vcw3rLA4qX7OQHcXWVpXCFw4BNriaOw,1465
98
+ ksxt/models/__pycache__/token.cpython-311.pyc,sha256=OE_g8JT5IamE0srCANj94fcD49Ml3FfKNmh3XnWNZVU,982
99
+ ksxt/models/__pycache__/transaction.cpython-311.pyc,sha256=6SjbXfNwYxmUz8qjlS_38eGZsxz_7CFud9HWo0O8pbk,3014
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-311.pyc,sha256=kGBDYzj7RaqxzA-JwixCPklKy9QKm2lzLIBaOQqWGzU,26521
105
+ ksxt/parser/__pycache__/koreainvest.cpython-311.pyc,sha256=qjw6X6E8z8rjndOQe9yOQPNWrLJ9GyfbEsQR3E31MDE,24925
106
+ ksxt/parser/__pycache__/parser.cpython-311.pyc,sha256=6XaxpjoRDDlX9Mnk5J2K_NihqNOiGI3zzRDZ_uWtS7Y,10374
107
+ ksxt/parser/__pycache__/upbit.cpython-311.pyc,sha256=RF87i2drR_3SQaxN8bZfrOpskpKLKW1ABCaAjSyKlqA,28250
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-311.pyc,sha256=ULGZT6puGEaHMwnGGOvoDA30pvaCzS6vOgEwYOPpF5g,2351
113
+ ksxt/utils/__pycache__/sorter.cpython-311.pyc,sha256=VXAZJeZoE8bS06nSOjsIhiV5n6SB2e1TimdG_6tCNvg,716
114
+ ksxt/utils/__pycache__/timer.cpython-311.pyc,sha256=TLJP8K2PTO1RcUMXBdFUd0u3tGz0Vs4JKYFUW_zBPNE,2143
115
+ ksxt-1.0.8.dist-info/licenses/LICENSE.txt,sha256=p2JwEVHDRuJx8UL5Xnt_pFhdC73ppwp7rYQhHqviWB8,1080
116
+ ksxt-1.0.8.dist-info/METADATA,sha256=36QksRn-I_R_U2BLnPj_KGNbFjzLUgvIvvG8zIeEnN0,1672
117
+ ksxt-1.0.8.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
118
+ ksxt-1.0.8.dist-info/top_level.txt,sha256=XLUhkZCur5Pe0BPUV3J0syngIPz7jBb2YlQR4epo5kI,5
119
+ ksxt-1.0.8.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.6.0)
2
+ Generator: setuptools (78.1.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -1,119 +0,0 @@
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,,