kaq-quant-common 0.1.93__tar.gz → 0.1.94__tar.gz

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 (66) hide show
  1. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/PKG-INFO +1 -1
  2. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_ddb_stream_write_resources.py +38 -3
  3. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/pyproject.toml +1 -1
  4. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/README.md +0 -0
  5. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/__init__.py +0 -0
  6. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/__init__.py +0 -0
  7. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/common/__init__.py +0 -0
  8. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/common/api_interface.py +0 -0
  9. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/common/auth.py +0 -0
  10. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/__init__.py +0 -0
  11. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/api_client_base.py +0 -0
  12. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/api_server_base.py +0 -0
  13. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/helper/order_helper.py +0 -0
  14. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/instruction_client.py +0 -0
  15. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/instruction_server_base.py +0 -0
  16. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/models/__init__.py +0 -0
  17. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/models/account.py +0 -0
  18. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/models/order.py +0 -0
  19. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/models/position.py +0 -0
  20. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/rest/instruction/models/transfer.py +0 -0
  21. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/__init__.py +0 -0
  22. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/exchange/models.py +0 -0
  23. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/exchange/ws_exchange_client.py +0 -0
  24. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/exchange/ws_exchange_server.py +0 -0
  25. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/instruction/__init__.py +0 -0
  26. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/instruction/ws_instruction_client.py +0 -0
  27. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py +0 -0
  28. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/models.py +0 -0
  29. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/ws_client_base.py +0 -0
  30. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/api/ws/ws_server_base.py +0 -0
  31. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/__init__.py +0 -0
  32. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/ddb_table_monitor.py +0 -0
  33. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/http_monitor.py +0 -0
  34. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/modules/limit_order_helper.py +0 -0
  35. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/modules/limit_order_symbol_monitor.py +0 -0
  36. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py +0 -0
  37. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/monitor_base.py +0 -0
  38. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/monitor_group.py +0 -0
  39. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/redis_table_monitor.py +0 -0
  40. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/statistics/funding_rate_history_statistics.py +0 -0
  41. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/statistics/kline_history_statistics.py +0 -0
  42. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/common/ws_wrapper.py +0 -0
  43. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/config/config.yaml +0 -0
  44. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/__init__.py +0 -0
  45. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py +0 -0
  46. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_ddb_stream_init_resources.py +0 -0
  47. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_ddb_stream_read_resources.py +0 -0
  48. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_mysql_init_resources.py +0 -0
  49. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_mysql_resources.py +0 -0
  50. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_postgresql_resources.py +0 -0
  51. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_quant_hive_resources.py +0 -0
  52. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/resources/kaq_redis_resources.py +0 -0
  53. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/__init__.py +0 -0
  54. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/dagster_job_check_utils.py +0 -0
  55. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/dagster_utils.py +0 -0
  56. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/date_util.py +0 -0
  57. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/enums_utils.py +0 -0
  58. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/error_utils.py +0 -0
  59. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/hash_utils.py +0 -0
  60. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/log_time_utils.py +0 -0
  61. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/logger_utils.py +0 -0
  62. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/mytt_utils.py +0 -0
  63. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/signal_utils.py +0 -0
  64. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/sqlite_utils.py +0 -0
  65. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/uuid_utils.py +0 -0
  66. {kaq_quant_common-0.1.93 → kaq_quant_common-0.1.94}/kaq_quant_common/utils/yml_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: kaq_quant_common
3
- Version: 0.1.93
3
+ Version: 0.1.94
4
4
  Summary:
5
5
  Author: kevinfuture
6
6
  Author-email: liuenbofuture@foxmail.com
@@ -11,9 +11,10 @@ from typing_extensions import deprecated
11
11
 
12
12
  mutex = threading.Lock()
13
13
 
14
+ # 方式一: 异步调用
14
15
  class KaqQuantDdbStreamWriteRepository:
15
16
  '''
16
- 定义 asof_join的级联方式, 合并数据到一起, 然后可以订阅判断
17
+ 异步不等待写入
17
18
  '''
18
19
  def __init__(self, host, port, user, passwd):
19
20
  self.logger = get_logger(self)
@@ -88,7 +89,7 @@ class KaqQuantDdbStreamWriteRepository:
88
89
  except Exception as e:
89
90
  self.logger.error(f'KaqQuantDdbStreamWriteRepository.save2stream_batch is occured error: tableName is {ddb_table_name} - {str(e)} - {str(traceback.format_exc())}')
90
91
 
91
-
92
+ # 方式二: 同步调用,但有python端的队列等待
92
93
  class DDBAsyncDFWriter:
93
94
  def __init__(self, appender, batch_size=1000, flush_interval_ms=80):
94
95
  self.logger = get_logger()
@@ -196,7 +197,41 @@ class KaqQuantDdbStreamWriteSyncRepository:
196
197
  except Exception as e:
197
198
  self.logger.error(f'KaqQuantDdbTableStreamWriteRepository.insert is occured error: {str(e)} - {str(traceback.format_exc())}')
198
199
 
199
-
200
+ # 方式三: 异步调用, 但属于ddb的client内部的c++多线程解析与写入,适合一条条写入
201
+ class KaqQuantDdbStreamMTWWriteRepository:
202
+ def __init__(self, host, port, user, passwd, tableName=None, batch_size=1000, throttle=50, partitionCol=''):
203
+ self.logger = get_logger(self)
204
+ '''
205
+ 创建ddb连接 && 添加ddb流数据表支持
206
+ '''
207
+ try:
208
+ mutex.acquire()
209
+ self.session = ddb.session(enableASYNC=True)
210
+ self.session.connect(host, port, user, passwd, tryReconnectNums=10, reconnect=True, keepAliveTime=1000, readTimeout=10, writeTimeout=5)
211
+ self.batch_writer = ddb.MultithreadedTableWriter(
212
+ host, port, user, passwd, tableName=tableName, dbPath='',
213
+ batchSize=batch_size, throttle=throttle, threadCount=1, partitionCol=partitionCol
214
+ )
215
+ except Exception as e:
216
+ self.logger.error(f'KaqQuantDdbStreamMTWWriteRepository.__init__ is occured error: {str(e)} - {str(traceback.format_exc())}')
217
+ finally:
218
+ mutex.release()
219
+
220
+ def insert(self, df:pd.DataFrame=pd.DataFrame()):
221
+ try:
222
+ for _, row in df.iterrows():
223
+ _args = row.tolist()
224
+ self.batch_writer.insert(*_args)
225
+ except Exception as e:
226
+ self.logger.error(f'KaqQuantDdbStreamMTWWriteRepository.insert is occured error: {str(e)} - {str(traceback.format_exc())}')
227
+
228
+ def stop(self):
229
+ '''
230
+ 结束调用
231
+ '''
232
+ self.batch_writer.waitForThreadCompletion()
233
+
234
+
200
235
  if __name__ == '__main__':
201
236
  host, port, user, passwd = yml_utils.get_ddb_info(os.getcwd())
202
237
  kaq = KaqQuantDdbStreamWriteRepository(host, port, user, passwd)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "kaq_quant_common"
3
- version = "0.1.93"
3
+ version = "0.1.94"
4
4
  description = ""
5
5
  authors = [
6
6
  {name = "kevinfuture",email = "liuenbofuture@foxmail.com"}