kaq-quant-common 0.2.12__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 (67) hide show
  1. kaq_quant_common/__init__.py +0 -0
  2. kaq_quant_common/api/__init__.py +0 -0
  3. kaq_quant_common/api/common/__init__.py +1 -0
  4. kaq_quant_common/api/common/api_interface.py +38 -0
  5. kaq_quant_common/api/common/auth.py +118 -0
  6. kaq_quant_common/api/rest/__init__.py +0 -0
  7. kaq_quant_common/api/rest/api_client_base.py +42 -0
  8. kaq_quant_common/api/rest/api_server_base.py +135 -0
  9. kaq_quant_common/api/rest/instruction/helper/order_helper.py +342 -0
  10. kaq_quant_common/api/rest/instruction/instruction_client.py +86 -0
  11. kaq_quant_common/api/rest/instruction/instruction_server_base.py +154 -0
  12. kaq_quant_common/api/rest/instruction/models/__init__.py +17 -0
  13. kaq_quant_common/api/rest/instruction/models/account.py +49 -0
  14. kaq_quant_common/api/rest/instruction/models/order.py +248 -0
  15. kaq_quant_common/api/rest/instruction/models/position.py +70 -0
  16. kaq_quant_common/api/rest/instruction/models/transfer.py +32 -0
  17. kaq_quant_common/api/ws/__init__.py +0 -0
  18. kaq_quant_common/api/ws/exchange/models.py +23 -0
  19. kaq_quant_common/api/ws/exchange/ws_exchange_client.py +31 -0
  20. kaq_quant_common/api/ws/exchange/ws_exchange_server.py +440 -0
  21. kaq_quant_common/api/ws/instruction/__init__.py +0 -0
  22. kaq_quant_common/api/ws/instruction/ws_instruction_client.py +82 -0
  23. kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py +139 -0
  24. kaq_quant_common/api/ws/models.py +46 -0
  25. kaq_quant_common/api/ws/ws_client_base.py +235 -0
  26. kaq_quant_common/api/ws/ws_server_base.py +288 -0
  27. kaq_quant_common/common/__init__.py +0 -0
  28. kaq_quant_common/common/ddb_table_monitor.py +106 -0
  29. kaq_quant_common/common/http_monitor.py +69 -0
  30. kaq_quant_common/common/modules/funding_rate_helper.py +137 -0
  31. kaq_quant_common/common/modules/limit_order_helper.py +158 -0
  32. kaq_quant_common/common/modules/limit_order_symbol_monitor.py +76 -0
  33. kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py +69 -0
  34. kaq_quant_common/common/monitor_base.py +84 -0
  35. kaq_quant_common/common/monitor_group.py +97 -0
  36. kaq_quant_common/common/redis_table_monitor.py +123 -0
  37. kaq_quant_common/common/statistics/funding_rate_history_statistics.py +208 -0
  38. kaq_quant_common/common/statistics/kline_history_statistics.py +211 -0
  39. kaq_quant_common/common/ws_wrapper.py +21 -0
  40. kaq_quant_common/config/config.yaml +5 -0
  41. kaq_quant_common/resources/__init__.py +0 -0
  42. kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py +56 -0
  43. kaq_quant_common/resources/kaq_ddb_stream_init_resources.py +88 -0
  44. kaq_quant_common/resources/kaq_ddb_stream_read_resources.py +81 -0
  45. kaq_quant_common/resources/kaq_ddb_stream_write_resources.py +359 -0
  46. kaq_quant_common/resources/kaq_mysql_init_resources.py +23 -0
  47. kaq_quant_common/resources/kaq_mysql_resources.py +341 -0
  48. kaq_quant_common/resources/kaq_postgresql_resources.py +58 -0
  49. kaq_quant_common/resources/kaq_quant_hive_resources.py +107 -0
  50. kaq_quant_common/resources/kaq_redis_resources.py +117 -0
  51. kaq_quant_common/utils/__init__.py +0 -0
  52. kaq_quant_common/utils/dagster_job_check_utils.py +29 -0
  53. kaq_quant_common/utils/dagster_utils.py +19 -0
  54. kaq_quant_common/utils/date_util.py +204 -0
  55. kaq_quant_common/utils/enums_utils.py +79 -0
  56. kaq_quant_common/utils/error_utils.py +22 -0
  57. kaq_quant_common/utils/hash_utils.py +48 -0
  58. kaq_quant_common/utils/log_time_utils.py +32 -0
  59. kaq_quant_common/utils/logger_utils.py +97 -0
  60. kaq_quant_common/utils/mytt_utils.py +372 -0
  61. kaq_quant_common/utils/signal_utils.py +23 -0
  62. kaq_quant_common/utils/sqlite_utils.py +169 -0
  63. kaq_quant_common/utils/uuid_utils.py +5 -0
  64. kaq_quant_common/utils/yml_utils.py +148 -0
  65. kaq_quant_common-0.2.12.dist-info/METADATA +66 -0
  66. kaq_quant_common-0.2.12.dist-info/RECORD +67 -0
  67. kaq_quant_common-0.2.12.dist-info/WHEEL +4 -0
@@ -0,0 +1,148 @@
1
+ import os
2
+ from pathlib import Path
3
+ import yaml
4
+ import pkgutil
5
+ import importlib.resources as resources
6
+ from loguru import logger
7
+
8
+
9
+ def read_config(pkg_name='kaq_quant_common'):
10
+ config_path = pkgutil.get_data(pkg_name, f'config{os.sep}config.yaml')
11
+ data = yaml.load(config_path, Loader=yaml.FullLoader)
12
+ return data
13
+
14
+ def get(pkg_name='kaq_quant_common', *args):
15
+ '''
16
+ 根据key获取配置,支持:
17
+ - 单个值: get_by_key('mysql', 'host') → 获取 kaq.mysql.host
18
+ - 多个值: get_by_key('mysql', ['host', 'port']) → 获取 (kaq.mysql.host, kaq.mysql.port)
19
+ - 多层级: get_by_key('a', 'b', 'c') → 获取 kaq.a.b.c
20
+ - 顶层多个值: get_by_key(['api_key', 'api_secret']) → 获取 (kaq.api_key, kaq.api_secret)
21
+ '''
22
+ if not args: # 没有提供key参数
23
+ return None
24
+ data = read_config(pkg_name)
25
+ if data is None or 'kaq' not in data:
26
+ return None
27
+ data = data['kaq'] # 已定位到kaq节点
28
+
29
+ last_arg = args[-1]
30
+ if isinstance(last_arg, list):
31
+ # 最后一个参数是列表,获取多个key的值
32
+ keys = last_arg
33
+ path_parts = args[:-1] # 路径部分
34
+ if not keys: # 列表为空
35
+ return None
36
+
37
+ # 遍历路径部分
38
+ current_data = data
39
+ for part in path_parts:
40
+ if not isinstance(current_data, dict) or part not in current_data:
41
+ return None
42
+ current_data = current_data[part]
43
+
44
+ # 检查并获取所有key的值
45
+ for key in keys:
46
+ if key not in current_data:
47
+ return None
48
+ return tuple(current_data[key] for key in keys)
49
+ else:
50
+ # 所有参数均为路径,获取单个值
51
+ current_data = data
52
+ for part in args:
53
+ if not isinstance(current_data, dict) or part not in current_data:
54
+ return None
55
+ current_data = current_data[part]
56
+ return current_data
57
+
58
+ def get_path_file(_path=Path(__file__).parent, file_name='config.yaml', key_levels:list=['kaq', 'SECRET_KEY']):
59
+ if file_name is None:
60
+ logger.error('yml_utils.get_path_file file_name is None')
61
+ return None
62
+ config_path = f'{_path}{os.sep}{file_name}'
63
+ with open(config_path, "r", encoding="utf-8") as f:
64
+ config = yaml.safe_load(f)
65
+ if config is None:
66
+ return None
67
+
68
+ for key in key_levels:
69
+ if isinstance(config, dict) and key in config:
70
+ config = config[key]
71
+ if not isinstance(config, str) and not isinstance(config, int) and not isinstance(config, float):
72
+ return None
73
+ return config
74
+
75
+
76
+
77
+ def get_spot_list(pkg_name='kaq_quant_common'):
78
+ '''
79
+ 获取合约对应的现货列表
80
+ '''
81
+ return get(pkg_name, 'spot_list')
82
+
83
+ def get_future_list(pkg_name='kaq_quant_common'):
84
+ '''
85
+ 获取合约的symbol列表
86
+ '''
87
+ return get(pkg_name, 'future_list')
88
+
89
+ def get_api_key_secret(pkg_name='kaq_quant_common'):
90
+ '''
91
+ 获取api_key,api_secret
92
+ '''
93
+ return get(pkg_name, ['api_key','api_secret'])
94
+
95
+ def get_proxies(pkg_name='kaq_quant_common'):
96
+ '''
97
+ 获取代理配置
98
+ '''
99
+ return get(pkg_name, 'proxies')
100
+
101
+ def get_mysql_info(pkg_name='kaq_quant_common'):
102
+ '''
103
+ mysql配置
104
+ '''
105
+ return get(pkg_name, 'mysql', ['host', 'port', 'user', 'passwd', 'database', 'charset'])
106
+
107
+ def get_redis_info(pkg_name='kaq_quant_common'):
108
+ '''
109
+ redis配置
110
+ '''
111
+ return get(pkg_name, 'redis', ['host', 'port', 'passwd'])
112
+
113
+ def get_posgresql_info(pkg_name='kaq_quant_common'):
114
+ '''
115
+ posgresql配置
116
+ '''
117
+ return get(pkg_name, 'posgresql', ['host', 'port', 'user', 'passwd', 'database', 'charset'])
118
+
119
+ def get_mysql_table_prefix(pkg_name='kaq_quant_common'):
120
+ return get(pkg_name, 'mysql_table_prefix')
121
+
122
+ def get_ddb_info(pkg_name='kaq_quant_common'):
123
+ '''
124
+ ddb配置
125
+ '''
126
+ return get(pkg_name, 'ddb', ['host', 'port', 'user', 'passwd'])
127
+
128
+ def get_pkg_file(pkg=None, file_name=''):
129
+ if pkg is None:
130
+ logger.error('yml_utils.get_pkg_script pkg is None')
131
+ return None
132
+ '''
133
+ 读取文件
134
+ '''
135
+ with resources.path(pkg, file_name) as file_path:
136
+ # file_path 是一个 Path 对象, 输出文件的绝对路径
137
+ config_path = str(file_path)
138
+ if os.path.exists(config_path):
139
+ return config_path
140
+ logger.error(f'yml_utils.get_pkg_script {config_path} is not exits!')
141
+ return None
142
+
143
+
144
+
145
+ if __name__ == '__main__':
146
+ kv = get_ddb_info()
147
+ print(kv)
148
+
@@ -0,0 +1,66 @@
1
+ Metadata-Version: 2.4
2
+ Name: kaq_quant_common
3
+ Version: 0.2.12
4
+ Summary:
5
+ Author: kevinfuture
6
+ Author-email: liuenbofuture@foxmail.com
7
+ Requires-Python: >=3.11, <3.13
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.11
10
+ Classifier: Programming Language :: Python :: 3.12
11
+ Requires-Dist: aiohttp (>=3.13.2,<4.0.0)
12
+ Requires-Dist: certifi (>=2025.11.12,<2026.0.0)
13
+ Requires-Dist: cryptography (>=46.0.3,<47.0.0)
14
+ Requires-Dist: dagster (==1.11.16)
15
+ Requires-Dist: dagster-embedded-elt (==0.27.16)
16
+ Requires-Dist: dagster-mysql (==0.27.16)
17
+ Requires-Dist: dagster-webserver (==1.11.16)
18
+ Requires-Dist: dlt (==1.19.1)
19
+ Requires-Dist: dolphindb (>=3.0.4.0,<4.0.0.0)
20
+ Requires-Dist: flask (>=3.1.2)
21
+ Requires-Dist: loguru (>=0.7.3,<0.8.0)
22
+ Requires-Dist: mysql-connector-python (>=9.5.0,<10.0.0)
23
+ Requires-Dist: mysqlclient (>=2.2.7,<3.0.0)
24
+ Requires-Dist: natsort (>=8.4.0,<9.0.0)
25
+ Requires-Dist: plotly (>=6.5.0,<7.0.0)
26
+ Requires-Dist: psycopg2-binary (>=2.9.11,<3.0.0)
27
+ Requires-Dist: pyarrow (>=21.0.0,<22.0.0)
28
+ Requires-Dist: pycryptodome (>=3.23.0)
29
+ Requires-Dist: pydantic (>=2.12.5)
30
+ Requires-Dist: pyhive (>=0.7.0,<0.8.0)
31
+ Requires-Dist: pyyaml (>=6.0.3,<7.0.0)
32
+ Requires-Dist: redis (>=6.4.0,<7.0.0)
33
+ Requires-Dist: requests (>=2.32.0)
34
+ Requires-Dist: requests (>=2.32.5,<3.0.0)
35
+ Requires-Dist: retrying (>=1.4.2,<2.0.0)
36
+ Requires-Dist: sqlalchemy (>=2.0.44,<3.0.0)
37
+ Requires-Dist: thrift (>=0.22.0,<0.23.0)
38
+ Requires-Dist: twine (>=6.2.0,<7.0.0)
39
+ Requires-Dist: uuid (>=1.30,<2.0)
40
+ Requires-Dist: vectorbt (>=0.28.1,<0.29.0)
41
+ Requires-Dist: websocket-client (>=1.9.0,<2.0.0)
42
+ Requires-Dist: websockets (>=15.0.1)
43
+ Requires-Dist: werkzeug (>=3.1.4)
44
+ Description-Content-Type: text/markdown
45
+
46
+ # KAQ_QUANT_COMMON
47
+
48
+ A simple Python package that does amazing things.
49
+
50
+ ## Features
51
+
52
+ - Feature 1: Does X
53
+ - Feature 2: Does Y
54
+
55
+ ## Installation
56
+
57
+ You can install this package using:
58
+
59
+ ```bash
60
+ pip install my-package
61
+ ```
62
+
63
+ ## Pub
64
+ Command:
65
+ ```bash
66
+ twine upload dist/* --verbose
@@ -0,0 +1,67 @@
1
+ kaq_quant_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
2
+ kaq_quant_common/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
+ kaq_quant_common/api/common/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
4
+ kaq_quant_common/api/common/api_interface.py,sha256=E59C2Gh51wmy9NpD9y_SnCh_J-ZbZhT7rUsaORWzXHI,962
5
+ kaq_quant_common/api/common/auth.py,sha256=XqirJRL4D01YfSrBY4hyugw-Op6OJveNE--AnaqhYTQ,3987
6
+ kaq_quant_common/api/rest/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
+ kaq_quant_common/api/rest/api_client_base.py,sha256=LYpqjjVGbVRVyP8qdmlgMelUtEY-jGA0JlMJy9d1r4w,1673
8
+ kaq_quant_common/api/rest/api_server_base.py,sha256=URrvzerHIE6XQLERYFcFH1ftLbCYTz3sENAxFD0HWY0,4653
9
+ kaq_quant_common/api/rest/instruction/helper/order_helper.py,sha256=eZ-iEZ7HegHYkqpflwKicbdLlp12gcV2wEtBVNLMBiQ,13195
10
+ kaq_quant_common/api/rest/instruction/instruction_client.py,sha256=NwTEypC4eajGq8oWIgvKSbIAO-KMPH4jQ-7J2b9iN4g,4037
11
+ kaq_quant_common/api/rest/instruction/instruction_server_base.py,sha256=pq1wghAlgtm10aWz70-x1OAqtoRH3lBu-HsIuVRHkqY,6223
12
+ kaq_quant_common/api/rest/instruction/models/__init__.py,sha256=fx5pnfcf9L5KvAqhsQBZkl9fUf9oABuroLGZqDNycpc,312
13
+ kaq_quant_common/api/rest/instruction/models/account.py,sha256=Lj12EvWNxEt7k9dAKSsFhTJDmLX553duMRa5NroJW30,1375
14
+ kaq_quant_common/api/rest/instruction/models/order.py,sha256=F941DPXlbsklpc8jHLaJ2nQZiUmjPt0zyL_bagijSzI,6847
15
+ kaq_quant_common/api/rest/instruction/models/position.py,sha256=OqtfWWcpGhbijJbwJqERkeFxPiIkzdBnhPx5CfXj8W0,1744
16
+ kaq_quant_common/api/rest/instruction/models/transfer.py,sha256=htjk4hb9THUZP4REW5gtyPdo850jHPtHPWFLPA2ERzo,775
17
+ kaq_quant_common/api/ws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
+ kaq_quant_common/api/ws/exchange/models.py,sha256=RPD5cDRQyISguTjO5Si1V5hJza8Uyr4u2EZEHNFtLb8,664
19
+ kaq_quant_common/api/ws/exchange/ws_exchange_client.py,sha256=Q9ymPcehpUW-lYilBlL7HU4JXkW9jA3kHFYLxnd-pJU,996
20
+ kaq_quant_common/api/ws/exchange/ws_exchange_server.py,sha256=z2aJfpx-iHIs7V1PmGFwqZS8t4-I9RiicbQOrfF4d7c,19910
21
+ kaq_quant_common/api/ws/instruction/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
22
+ kaq_quant_common/api/ws/instruction/ws_instruction_client.py,sha256=j8FgMUeuZvz8siknEYoLwElVRgHSX0x29F7dxNWPrsE,3154
23
+ kaq_quant_common/api/ws/instruction/ws_instruction_server_base.py,sha256=zXS0gO8eKkz6sVzY4Ei1RcQhW5_Tb32OQ-g3lbQD_pc,5033
24
+ kaq_quant_common/api/ws/models.py,sha256=onvZydQBWIoSSTmabZDlLgYCa1TppuCQJb5noO3XeNU,999
25
+ kaq_quant_common/api/ws/ws_client_base.py,sha256=QiQnZN3DJUIpP0YDLskx_A5Axu9pdSoQm4slnAQYhUE,9463
26
+ kaq_quant_common/api/ws/ws_server_base.py,sha256=-JFA5fnYHXPYBZ09aZmhYuhgDHFfJbkX-ppnbLfTexY,11574
27
+ kaq_quant_common/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
+ kaq_quant_common/common/ddb_table_monitor.py,sha256=7Yihz_uGGujo_QqqPl45Gp8fwUMMw1auXx5egbzyYlE,3662
29
+ kaq_quant_common/common/http_monitor.py,sha256=_yChiwfVv1c5g_lKgYUjWY40fX61BWVK8SL4kXwRfwk,2375
30
+ kaq_quant_common/common/modules/funding_rate_helper.py,sha256=Q6GfEF1J78ynw-FSNG8DvoCd_FkrkeLaWh9dddP89l0,5738
31
+ kaq_quant_common/common/modules/limit_order_helper.py,sha256=bFeg3xEiFNeNm2PzVdntcGZ9-XwGbbfK3wXb2tD97ng,6810
32
+ kaq_quant_common/common/modules/limit_order_symbol_monitor.py,sha256=TBK48qyeCSQvkfDMv3J_0UM7f3OuBRKRFYDcL9kG6Cs,2876
33
+ kaq_quant_common/common/modules/limit_order_symbol_monitor_group.py,sha256=oEqHIwxhqAzckmluHJHZHiHUNmAyaS2JyK2nXO58UhY,2394
34
+ kaq_quant_common/common/monitor_base.py,sha256=E4EUMsO3adNltCDNRgxkvUSbTTfKOL9S1zzN3WkZvpU,2467
35
+ kaq_quant_common/common/monitor_group.py,sha256=cNLD-vU6CI8_2u5oV_joxDavK64weaUD0UND1__Hfuo,2862
36
+ kaq_quant_common/common/redis_table_monitor.py,sha256=nckt1-Jq2hU2fBA-OWSRyoSwOCmDZg79u1VRaAI7ArA,4464
37
+ kaq_quant_common/common/statistics/funding_rate_history_statistics.py,sha256=DFEhotfQkv83pzkGghDXb0sSFJo4rYpS2AkVXLANIl0,8533
38
+ kaq_quant_common/common/statistics/kline_history_statistics.py,sha256=pQgWkP7Z0nRUm1FBb3ssy_uHFs4mnYLuTXFkz36PHWk,7839
39
+ kaq_quant_common/common/ws_wrapper.py,sha256=JNJ0CIjDXgCsRjOLSbCi7ysYDHw7tT_aK7V4ADqw3vA,452
40
+ kaq_quant_common/config/config.yaml,sha256=ST_QBLo7kwVaoNOvuN3mpeSF7LPNSWdD7EjxrBYZYBs,230
41
+ kaq_quant_common/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
+ kaq_quant_common/resources/kaq_ddb_pool_stream_read_resources.py,sha256=q4P96rSrEcWn9ki09UD0vw00iFq_bpgOFTrRzVG7uCA,2537
43
+ kaq_quant_common/resources/kaq_ddb_stream_init_resources.py,sha256=0MxxbajocTFzcRD344rfZQPKOwwuqCbyoT6dQpIox-o,3349
44
+ kaq_quant_common/resources/kaq_ddb_stream_read_resources.py,sha256=WShsXMoL8o-JZvrtAd7H2Cg-vrE47QbsdGgURaQwiZs,3165
45
+ kaq_quant_common/resources/kaq_ddb_stream_write_resources.py,sha256=Z_-CHXh390OTMUx9Cf1I1rTWE7RLC_GwFVxopcYOKoQ,15148
46
+ kaq_quant_common/resources/kaq_mysql_init_resources.py,sha256=UcqWey6LgoMqvLq1SxK33nS6-rkViGYhzUPxcrucOks,827
47
+ kaq_quant_common/resources/kaq_mysql_resources.py,sha256=282jpXvYlEQNx-hicYTNBHDii85KYgN7BQQSMS9aPFM,13211
48
+ kaq_quant_common/resources/kaq_postgresql_resources.py,sha256=iG1eYkciI0xUIBdEpGqKGOLBFxvVrfbBoTuaOmhQ0v0,1762
49
+ kaq_quant_common/resources/kaq_quant_hive_resources.py,sha256=r114aeRzWkp6ReFPOkNOImY4o3AFQNomdVkivdOD13Y,3438
50
+ kaq_quant_common/resources/kaq_redis_resources.py,sha256=MFBdl0v6ehbtUVhQw0XzH_DmpxNTfjWqlOG210NWYAo,4480
51
+ kaq_quant_common/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
52
+ kaq_quant_common/utils/dagster_job_check_utils.py,sha256=tiijAt_jAc08DJOAa3z43sOTCi-4lizPI-IqWqbBI20,1488
53
+ kaq_quant_common/utils/dagster_utils.py,sha256=Zp9tYKVoF-9i9KcC00hrhKwiECOY7a3HyfLkZBR0o8A,668
54
+ kaq_quant_common/utils/date_util.py,sha256=ur-h8kUVqNYUW2P2t4cZL8oRRXXo8oPMV9S_w5lZCPM,6928
55
+ kaq_quant_common/utils/enums_utils.py,sha256=8pswCiVH4rf0vhGduhxgxt4xkNIqkBcJkTFtQRtQzNA,2492
56
+ kaq_quant_common/utils/error_utils.py,sha256=u9jGnfQItSSgCeFJf8_67ud_F_uV_sY5Dh5HcbILJDs,423
57
+ kaq_quant_common/utils/hash_utils.py,sha256=uAiRbiIpPjVLWD-6X0EZtn6_zDkiMDIcjVqEhWn54vU,1672
58
+ kaq_quant_common/utils/log_time_utils.py,sha256=thuCD6j6eu9YUuhBBq2DGkrDpXVh1PvuoUozR1S8q9g,832
59
+ kaq_quant_common/utils/logger_utils.py,sha256=uj4Z0QEdm8-BnUdqvWHmg9BT-mhS35KefQhHTi1U9gY,2526
60
+ kaq_quant_common/utils/mytt_utils.py,sha256=gMdxJu_PV140Sxwjtnv5ppf483PPgsudPDlbNRsk_PU,14078
61
+ kaq_quant_common/utils/signal_utils.py,sha256=zBSyEltNTKqkQCsrETd47kEBb3Q_OWUBUn2W5wonFyU,711
62
+ kaq_quant_common/utils/sqlite_utils.py,sha256=UDDFKfwL0N-jFifl40HdyOCENh2YQfW5so6hRaSJpv0,5722
63
+ kaq_quant_common/utils/uuid_utils.py,sha256=pm_pnXpd8n9CI66x3A20cOEUiriJyqHaKGCeLrgkBxU,71
64
+ kaq_quant_common/utils/yml_utils.py,sha256=gcKjb_-uuUajBGAl5QBPIZTg2wXm7qeeJvtHflj_zOE,4513
65
+ kaq_quant_common-0.2.12.dist-info/METADATA,sha256=01-VmQRR1xKShnvPmuQq13AHY2vuATgs_xPf31wuHAo,1971
66
+ kaq_quant_common-0.2.12.dist-info/WHEEL,sha256=zp0Cn7JsFoX2ATtOhtaFYIiE2rmFAD4OcMhtUki8W3U,88
67
+ kaq_quant_common-0.2.12.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 2.2.1
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any