stinger-python-utils 0.3.0__tar.gz → 0.5.0__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.
@@ -38,6 +38,8 @@ Read the current version from `pyproject.toml`. Then ask the user:
38
38
 
39
39
  Apply the chosen version to the `version` field in `pyproject.toml`.
40
40
 
41
+ After changing the version, run `uv sync` to update the `uv.lock` file before committing.
42
+
41
43
  ### 4. Confirm commit and push
42
44
 
43
45
  Ask the user:
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: stinger-python-utils
3
- Version: 0.3.0
3
+ Version: 0.5.0
4
4
  Summary: Common utilities for Stinger Python services.
5
5
  License-Expression: MIT
6
6
  License-File: LICENSE
7
7
  Requires-Python: >=3.7
8
+ Requires-Dist: py-stinger-conn-iface>=0.1.3
8
9
  Requires-Dist: pydantic>=2.5.3
9
- Requires-Dist: pyqttier>=0.2.0
10
+ Requires-Dist: pyqttier>=0.3.0
10
11
  Description-Content-Type: text/markdown
11
12
 
12
13
  # stinger-python-utils
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "stinger-python-utils"
7
- version = "0.3.0"
7
+ version = "0.5.0"
8
8
  description = "Common utilities for Stinger Python services."
9
9
  readme = "README.md"
10
10
  license = "MIT"
@@ -12,7 +12,8 @@ requires-python = ">=3.7"
12
12
 
13
13
  dependencies = [
14
14
  "pydantic>=2.5.3",
15
- "pyqttier>=0.2.0",
15
+ "pyqttier>=0.3.0",
16
+ "py-stinger-conn-iface>=0.1.3",
16
17
  ]
17
18
 
18
19
  [tool.uv]
@@ -23,4 +24,5 @@ dev = [
23
24
  "black>=23.3.0",
24
25
  "mypy>=1.4.1",
25
26
  "pytest>=7.0.0; python_version >= '3.10'",
27
+ "pytest>=6.2.0,<7.0.0; python_version < '3.10'",
26
28
  ]
@@ -1,4 +1,4 @@
1
- from pyqttier.message import Message
1
+ from pystingerconniface import Message
2
2
  from pydantic import BaseModel
3
3
  from typing import Union, Optional
4
4
  import uuid
@@ -246,6 +246,7 @@ class MessageCreator:
246
246
  retain=False,
247
247
  content_type=content_type,
248
248
  response_topic=response_topic,
249
+ message_expiry_interval=5,
249
250
  correlation_data=(
250
251
  correlation_id.encode("utf-8")
251
252
  if isinstance(correlation_id, str)
@@ -325,6 +326,7 @@ class MessageCreator:
325
326
  request_obj: BaseModel,
326
327
  response_topic: str,
327
328
  correlation_id: Union[str, bytes, None] = None,
329
+ expiry_seconds: Optional[int] = None,
328
330
  ) -> Message:
329
331
  return cls.binary_request_message(
330
332
  topic,
@@ -332,6 +334,7 @@ class MessageCreator:
332
334
  "application/json",
333
335
  response_topic,
334
336
  correlation_id,
337
+ expiry_seconds,
335
338
  )
336
339
 
337
340
  @classmethod
@@ -342,12 +345,13 @@ class MessageCreator:
342
345
  content_type: str,
343
346
  response_topic: str,
344
347
  correlation_id: Union[str, bytes, None] = None,
348
+ expiry_seconds: Optional[int] = None,
345
349
  ) -> Message:
346
350
  cls._validate_topic(topic)
347
351
  cls._validate_topic(response_topic, "response_topic")
348
352
  if correlation_id is None:
349
353
  correlation_id = str(uuid.uuid4())
350
- return Message(
354
+ msg = Message(
351
355
  topic=topic,
352
356
  payload=payload,
353
357
  qos=1,
@@ -360,3 +364,6 @@ class MessageCreator:
360
364
  else correlation_id
361
365
  ),
362
366
  )
367
+ if expiry_seconds is not None:
368
+ msg.message_expiry_interval = expiry_seconds
369
+ return msg
@@ -1,6 +1,6 @@
1
1
  from typing import Optional
2
2
  from enum import IntEnum
3
- from pyqttier.message import Message
3
+ from pystingerconniface import Message
4
4
 
5
5
 
6
6
  class MethodReturnCode(IntEnum):
@@ -94,6 +94,51 @@ wheels = [
94
94
  { url = "https://files.pythonhosted.org/packages/45/19/cc8bd127d28a43da249aa955cfd164cf8fd534e79e42cea96c4854d72fd0/ast_serialize-0.5.0-cp39-abi3-win_arm64.whl", hash = "sha256:92a31c9c20d25a076edaeec76b128a3535d74a24f340b9a8a7e96c9b86dc9642", size = 1081181, upload-time = "2026-05-17T17:48:28.122Z" },
95
95
  ]
96
96
 
97
+ [[package]]
98
+ name = "atomicwrites"
99
+ version = "1.4.1"
100
+ source = { registry = "https://pypi.org/simple" }
101
+ sdist = { url = "https://files.pythonhosted.org/packages/87/c6/53da25344e3e3a9c01095a89f16dbcda021c609ddb42dd6d7c0528236fb2/atomicwrites-1.4.1.tar.gz", hash = "sha256:81b2c9071a49367a7f770170e5eec8cb66567cfbbc8c73d20ce5ca4a8d71cf11", size = 14227, upload-time = "2022-07-08T18:31:40.459Z" }
102
+
103
+ [[package]]
104
+ name = "attrs"
105
+ version = "24.2.0"
106
+ source = { registry = "https://pypi.org/simple" }
107
+ resolution-markers = [
108
+ "python_full_version < '3.8'",
109
+ ]
110
+ dependencies = [
111
+ { name = "importlib-metadata" },
112
+ ]
113
+ sdist = { url = "https://files.pythonhosted.org/packages/fc/0f/aafca9af9315aee06a89ffde799a10a582fe8de76c563ee80bbcdc08b3fb/attrs-24.2.0.tar.gz", hash = "sha256:5cfb1b9148b5b086569baec03f20d7b6bf3bcacc9a42bebf87ffaaca362f6346", size = 792678, upload-time = "2024-08-06T14:37:38.364Z" }
114
+ wheels = [
115
+ { url = "https://files.pythonhosted.org/packages/6a/21/5b6702a7f963e95456c0de2d495f67bf5fd62840ac655dc451586d23d39a/attrs-24.2.0-py3-none-any.whl", hash = "sha256:81921eb96de3191c8258c199618104dd27ac608d9366f5e35d011eae1867ede2", size = 63001, upload-time = "2024-08-06T14:37:36.958Z" },
116
+ ]
117
+
118
+ [[package]]
119
+ name = "attrs"
120
+ version = "25.3.0"
121
+ source = { registry = "https://pypi.org/simple" }
122
+ resolution-markers = [
123
+ "python_full_version == '3.8.*'",
124
+ ]
125
+ sdist = { url = "https://files.pythonhosted.org/packages/5a/b0/1367933a8532ee6ff8d63537de4f1177af4bff9f3e829baf7331f595bb24/attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b", size = 812032, upload-time = "2025-03-13T11:10:22.779Z" }
126
+ wheels = [
127
+ { url = "https://files.pythonhosted.org/packages/77/06/bb80f5f86020c4551da315d78b3ab75e8228f89f0162f2c3a819e407941a/attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3", size = 63815, upload-time = "2025-03-13T11:10:21.14Z" },
128
+ ]
129
+
130
+ [[package]]
131
+ name = "attrs"
132
+ version = "26.1.0"
133
+ source = { registry = "https://pypi.org/simple" }
134
+ resolution-markers = [
135
+ "python_full_version == '3.9.*'",
136
+ ]
137
+ sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" }
138
+ wheels = [
139
+ { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" },
140
+ ]
141
+
97
142
  [[package]]
98
143
  name = "black"
99
144
  version = "23.3.0"
@@ -354,10 +399,45 @@ wheels = [
354
399
  { url = "https://files.pythonhosted.org/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5", size = 22934, upload-time = "2023-06-18T21:44:33.441Z" },
355
400
  ]
356
401
 
402
+ [[package]]
403
+ name = "iniconfig"
404
+ version = "2.0.0"
405
+ source = { registry = "https://pypi.org/simple" }
406
+ resolution-markers = [
407
+ "python_full_version < '3.8'",
408
+ ]
409
+ sdist = { url = "https://files.pythonhosted.org/packages/d7/4b/cbd8e699e64a6f16ca3a8220661b5f83792b3017d0f79807cb8708d33913/iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3", size = 4646, upload-time = "2023-01-07T11:08:11.254Z" }
410
+ wheels = [
411
+ { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892, upload-time = "2023-01-07T11:08:09.864Z" },
412
+ ]
413
+
414
+ [[package]]
415
+ name = "iniconfig"
416
+ version = "2.1.0"
417
+ source = { registry = "https://pypi.org/simple" }
418
+ resolution-markers = [
419
+ "python_full_version == '3.9.*'",
420
+ "python_full_version == '3.8.*'",
421
+ ]
422
+ sdist = { url = "https://files.pythonhosted.org/packages/f2/97/ebf4da567aa6827c909642694d71c9fcf53e5b504f2d96afea02718862f3/iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7", size = 4793, upload-time = "2025-03-19T20:09:59.721Z" }
423
+ wheels = [
424
+ { url = "https://files.pythonhosted.org/packages/2c/e1/e6716421ea10d38022b952c159d5161ca1193197fb744506875fbb87ea7b/iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760", size = 6050, upload-time = "2025-03-19T20:10:01.071Z" },
425
+ ]
426
+
357
427
  [[package]]
358
428
  name = "iniconfig"
359
429
  version = "2.3.0"
360
430
  source = { registry = "https://pypi.org/simple" }
431
+ resolution-markers = [
432
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
433
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
434
+ "python_full_version >= '3.15' and sys_platform != 'win32'",
435
+ "python_full_version == '3.14.*' and sys_platform != 'win32'",
436
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
437
+ "python_full_version == '3.10.*' and sys_platform == 'win32'",
438
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'win32'",
439
+ "python_full_version == '3.10.*' and sys_platform != 'win32'",
440
+ ]
361
441
  sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" }
362
442
  wheels = [
363
443
  { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" },
@@ -856,15 +936,71 @@ wheels = [
856
936
  { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743, upload-time = "2026-05-28T03:32:52.175Z" },
857
937
  ]
858
938
 
939
+ [[package]]
940
+ name = "pluggy"
941
+ version = "1.2.0"
942
+ source = { registry = "https://pypi.org/simple" }
943
+ resolution-markers = [
944
+ "python_full_version < '3.8'",
945
+ ]
946
+ dependencies = [
947
+ { name = "importlib-metadata" },
948
+ ]
949
+ sdist = { url = "https://files.pythonhosted.org/packages/8a/42/8f2833655a29c4e9cb52ee8a2be04ceac61bcff4a680fb338cbd3d1e322d/pluggy-1.2.0.tar.gz", hash = "sha256:d12f0c4b579b15f5e054301bb226ee85eeeba08ffec228092f8defbaa3a4c4b3", size = 61613, upload-time = "2023-06-21T09:12:28.745Z" }
950
+ wheels = [
951
+ { url = "https://files.pythonhosted.org/packages/51/32/4a79112b8b87b21450b066e102d6608907f4c885ed7b04c3fdb085d4d6ae/pluggy-1.2.0-py3-none-any.whl", hash = "sha256:c2fd55a7d7a3863cba1a013e4e2414658b1d07b6bc57b3919e0c63c9abb99849", size = 17695, upload-time = "2023-06-21T09:12:27.397Z" },
952
+ ]
953
+
954
+ [[package]]
955
+ name = "pluggy"
956
+ version = "1.5.0"
957
+ source = { registry = "https://pypi.org/simple" }
958
+ resolution-markers = [
959
+ "python_full_version == '3.8.*'",
960
+ ]
961
+ sdist = { url = "https://files.pythonhosted.org/packages/96/2d/02d4312c973c6050a18b314a5ad0b3210edb65a906f868e31c111dede4a6/pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1", size = 67955, upload-time = "2024-04-20T21:34:42.531Z" }
962
+ wheels = [
963
+ { url = "https://files.pythonhosted.org/packages/88/5f/e351af9a41f866ac3f1fac4ca0613908d9a41741cfcf2228f4ad853b697d/pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669", size = 20556, upload-time = "2024-04-20T21:34:40.434Z" },
964
+ ]
965
+
859
966
  [[package]]
860
967
  name = "pluggy"
861
968
  version = "1.6.0"
862
969
  source = { registry = "https://pypi.org/simple" }
970
+ resolution-markers = [
971
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
972
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
973
+ "python_full_version >= '3.15' and sys_platform != 'win32'",
974
+ "python_full_version == '3.14.*' and sys_platform != 'win32'",
975
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
976
+ "python_full_version == '3.10.*' and sys_platform == 'win32'",
977
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'win32'",
978
+ "python_full_version == '3.10.*' and sys_platform != 'win32'",
979
+ "python_full_version == '3.9.*'",
980
+ ]
863
981
  sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" }
864
982
  wheels = [
865
983
  { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" },
866
984
  ]
867
985
 
986
+ [[package]]
987
+ name = "py"
988
+ version = "1.11.0"
989
+ source = { registry = "https://pypi.org/simple" }
990
+ sdist = { url = "https://files.pythonhosted.org/packages/98/ff/fec109ceb715d2a6b4c4a85a61af3b40c723a961e8828319fbcb15b868dc/py-1.11.0.tar.gz", hash = "sha256:51c75c4126074b472f746a24399ad32f6053d1b34b68d2fa41e558e6f4a98719", size = 207796, upload-time = "2021-11-04T17:17:01.377Z" }
991
+ wheels = [
992
+ { url = "https://files.pythonhosted.org/packages/f6/f0/10642828a8dfb741e5f3fbaac830550a518a775c7fff6f04a007259b0548/py-1.11.0-py2.py3-none-any.whl", hash = "sha256:607c53218732647dff4acdfcd50cb62615cedf612e72d1724fb1a0cc6405b378", size = 98708, upload-time = "2021-11-04T17:17:00.152Z" },
993
+ ]
994
+
995
+ [[package]]
996
+ name = "py-stinger-conn-iface"
997
+ version = "0.1.3"
998
+ source = { registry = "https://pypi.org/simple" }
999
+ sdist = { url = "https://files.pythonhosted.org/packages/92/26/db82f184c55ad7c8db4b44339c8038e0caff2d611aa4f93256c84bbddb36/py_stinger_conn_iface-0.1.3.tar.gz", hash = "sha256:81a274ef64beac11e3f6512a481aa4fdc4d852da47347c8a55f6fc927888d520", size = 36415, upload-time = "2026-09-18T23:09:24.294Z" }
1000
+ wheels = [
1001
+ { url = "https://files.pythonhosted.org/packages/e9/33/18e802b27d6154c6fdd6dc0632ec5a27ed1f4f657643972f07cdf7c9ea66/py_stinger_conn_iface-0.1.3-py3-none-any.whl", hash = "sha256:47d0eb708ba69aa75f1af0dd16266cecfcbae118ff0d175e8afbdb142f086152", size = 8444, upload-time = "2026-09-18T23:09:23.394Z" },
1002
+ ]
1003
+
868
1004
  [[package]]
869
1005
  name = "pydantic"
870
1006
  version = "2.5.3"
@@ -1309,26 +1445,68 @@ wheels = [
1309
1445
 
1310
1446
  [[package]]
1311
1447
  name = "pyqttier"
1312
- version = "0.2.6"
1448
+ version = "0.3.0"
1313
1449
  source = { registry = "https://pypi.org/simple" }
1314
1450
  dependencies = [
1315
1451
  { name = "paho-mqtt" },
1452
+ { name = "py-stinger-conn-iface" },
1453
+ ]
1454
+ sdist = { url = "https://files.pythonhosted.org/packages/84/cd/7212490a43bec131e565082d9a959956f7625445bdd930ea2005d400964c/pyqttier-0.3.0.tar.gz", hash = "sha256:dcdfe072106ab7deb40706c96a0c57f975ab860735096aad5e4e51afaaee491a", size = 68791, upload-time = "2026-09-18T23:13:57.09Z" }
1455
+ wheels = [
1456
+ { url = "https://files.pythonhosted.org/packages/87/d4/96a30d2172b94affbea218121967ab9b5f35a0fbf29c26377b0a8b2edc2a/pyqttier-0.3.0-py3-none-any.whl", hash = "sha256:f9b09aac0b687d5e7da4ae1fb9955e51249ba8b33ed823f85919eb9138e2abb4", size = 9659, upload-time = "2026-09-18T23:13:55.671Z" },
1316
1457
  ]
1317
- sdist = { url = "https://files.pythonhosted.org/packages/f8/f4/a4eea2ff905c575a7968cf5fa8c4c7eebb10a2a77cc81dc26269dcef3280/pyqttier-0.2.6.tar.gz", hash = "sha256:27f1221403a4dc49582829d95f17801c2d8cacea7c2e05b1b86149e74d02351d", size = 61712, upload-time = "2026-06-01T21:48:20.054Z" }
1458
+
1459
+ [[package]]
1460
+ name = "pytest"
1461
+ version = "6.2.5"
1462
+ source = { registry = "https://pypi.org/simple" }
1463
+ resolution-markers = [
1464
+ "python_full_version == '3.9.*'",
1465
+ "python_full_version == '3.8.*'",
1466
+ "python_full_version < '3.8'",
1467
+ ]
1468
+ dependencies = [
1469
+ { name = "atomicwrites", marker = "sys_platform == 'win32'" },
1470
+ { name = "attrs", version = "24.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8' or python_full_version >= '3.10'" },
1471
+ { name = "attrs", version = "25.3.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.8.*'" },
1472
+ { name = "attrs", version = "26.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
1473
+ { name = "colorama", marker = "sys_platform == 'win32'" },
1474
+ { name = "importlib-metadata", marker = "python_full_version < '3.8' or python_full_version >= '3.10'" },
1475
+ { name = "iniconfig", version = "2.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8' or python_full_version >= '3.10'" },
1476
+ { name = "iniconfig", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.8' and python_full_version < '3.10'" },
1477
+ { name = "packaging", version = "24.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8' or python_full_version >= '3.10'" },
1478
+ { name = "packaging", version = "26.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.8' and python_full_version < '3.10'" },
1479
+ { name = "pluggy", version = "1.2.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8' or python_full_version >= '3.10'" },
1480
+ { name = "pluggy", version = "1.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.8.*'" },
1481
+ { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
1482
+ { name = "py" },
1483
+ { name = "toml" },
1484
+ ]
1485
+ sdist = { url = "https://files.pythonhosted.org/packages/4b/24/7d1f2d2537de114bdf1e6875115113ca80091520948d370c964b88070af2/pytest-6.2.5.tar.gz", hash = "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89", size = 1118720, upload-time = "2021-08-30T17:39:02.823Z" }
1318
1486
  wheels = [
1319
- { url = "https://files.pythonhosted.org/packages/3e/c4/fbfb3e163d4d0c53c64ac0e1d77e37a7bbf94d25cf92179d5a1731576192/pyqttier-0.2.6-py3-none-any.whl", hash = "sha256:052202496a3a91f0a2a03282d89b2464a640011ba7c14d97cfce180f88d340e4", size = 11057, upload-time = "2026-06-01T21:48:22.794Z" },
1487
+ { url = "https://files.pythonhosted.org/packages/40/76/86f886e750b81a4357b6ed606b2bcf0ce6d6c27ad3c09ebf63ed674fc86e/pytest-6.2.5-py3-none-any.whl", hash = "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134", size = 280654, upload-time = "2021-08-30T17:39:00.918Z" },
1320
1488
  ]
1321
1489
 
1322
1490
  [[package]]
1323
1491
  name = "pytest"
1324
1492
  version = "9.1.1"
1325
1493
  source = { registry = "https://pypi.org/simple" }
1494
+ resolution-markers = [
1495
+ "python_full_version >= '3.15' and sys_platform == 'win32'",
1496
+ "python_full_version == '3.14.*' and sys_platform == 'win32'",
1497
+ "python_full_version >= '3.15' and sys_platform != 'win32'",
1498
+ "python_full_version == '3.14.*' and sys_platform != 'win32'",
1499
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform == 'win32'",
1500
+ "python_full_version == '3.10.*' and sys_platform == 'win32'",
1501
+ "python_full_version >= '3.11' and python_full_version < '3.14' and sys_platform != 'win32'",
1502
+ "python_full_version == '3.10.*' and sys_platform != 'win32'",
1503
+ ]
1326
1504
  dependencies = [
1327
1505
  { name = "colorama", marker = "sys_platform == 'win32'" },
1328
1506
  { name = "exceptiongroup", marker = "python_full_version < '3.11'" },
1329
- { name = "iniconfig" },
1507
+ { name = "iniconfig", version = "2.3.0", source = { registry = "https://pypi.org/simple" } },
1330
1508
  { name = "packaging", version = "26.2", source = { registry = "https://pypi.org/simple" } },
1331
- { name = "pluggy" },
1509
+ { name = "pluggy", version = "1.6.0", source = { registry = "https://pypi.org/simple" } },
1332
1510
  { name = "pygments" },
1333
1511
  { name = "tomli", version = "2.4.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" },
1334
1512
  ]
@@ -1388,9 +1566,10 @@ wheels = [
1388
1566
 
1389
1567
  [[package]]
1390
1568
  name = "stinger-python-utils"
1391
- version = "0.3.0"
1569
+ version = "0.4.0"
1392
1570
  source = { editable = "." }
1393
1571
  dependencies = [
1572
+ { name = "py-stinger-conn-iface" },
1394
1573
  { name = "pydantic", version = "2.5.3", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.8'" },
1395
1574
  { name = "pydantic", version = "2.10.6", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.8.*'" },
1396
1575
  { name = "pydantic", version = "2.13.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.9'" },
@@ -1407,22 +1586,34 @@ dev = [
1407
1586
  { name = "mypy", version = "1.14.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.8.*'" },
1408
1587
  { name = "mypy", version = "1.19.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.9.*'" },
1409
1588
  { name = "mypy", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
1410
- { name = "pytest", marker = "python_full_version >= '3.10'" },
1589
+ { name = "pytest", version = "6.2.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" },
1590
+ { name = "pytest", version = "9.1.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" },
1411
1591
  ]
1412
1592
 
1413
1593
  [package.metadata]
1414
1594
  requires-dist = [
1595
+ { name = "py-stinger-conn-iface", specifier = ">=0.1.3" },
1415
1596
  { name = "pydantic", specifier = ">=2.5.3" },
1416
- { name = "pyqttier", specifier = ">=0.2.0" },
1597
+ { name = "pyqttier", specifier = ">=0.3.0" },
1417
1598
  ]
1418
1599
 
1419
1600
  [package.metadata.requires-dev]
1420
1601
  dev = [
1421
1602
  { name = "black", specifier = ">=23.3.0" },
1422
1603
  { name = "mypy", specifier = ">=1.4.1" },
1604
+ { name = "pytest", marker = "python_full_version < '3.10'", specifier = ">=6.2.0,<7.0.0" },
1423
1605
  { name = "pytest", marker = "python_full_version >= '3.10'", specifier = ">=7.0.0" },
1424
1606
  ]
1425
1607
 
1608
+ [[package]]
1609
+ name = "toml"
1610
+ version = "0.10.2"
1611
+ source = { registry = "https://pypi.org/simple" }
1612
+ sdist = { url = "https://files.pythonhosted.org/packages/be/ba/1f744cdc819428fc6b5084ec34d9b30660f6f9daaf70eead706e3203ec3c/toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f", size = 22253, upload-time = "2020-11-01T01:40:22.204Z" }
1613
+ wheels = [
1614
+ { url = "https://files.pythonhosted.org/packages/44/6f/7120676b6d73228c96e17f1f794d8ab046fc910d781c8d151120c3f1569e/toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b", size = 16588, upload-time = "2020-11-01T01:40:20.672Z" },
1615
+ ]
1616
+
1426
1617
  [[package]]
1427
1618
  name = "tomli"
1428
1619
  version = "2.0.1"