mcp-hydrolix 0.1.5__tar.gz → 0.1.6__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 (36) hide show
  1. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/PKG-INFO +9 -9
  2. mcp_hydrolix-0.1.6/fastmcp.json +13 -0
  3. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/auth/__init__.py +2 -2
  4. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/auth/mcp_providers.py +1 -1
  5. mcp_hydrolix-0.1.6/mcp_hydrolix/log/__init__.py +6 -0
  6. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/log/utils.py +1 -1
  7. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/mcp_env.py +1 -1
  8. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/mcp_server.py +3 -8
  9. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/pyproject.toml +9 -9
  10. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/uv.lock +414 -36
  11. mcp_hydrolix-0.1.5/mcp_hydrolix/log/__init__.py +0 -6
  12. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.dockerignore +0 -0
  13. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.editorconfig +0 -0
  14. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.github/pull_request_template.md +0 -0
  15. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.github/workflows/publish.yml +0 -0
  16. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.github/workflows/tests.yaml +0 -0
  17. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.gitignore +0 -0
  18. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.pre-commit-config.yaml +0 -0
  19. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/.python-version +0 -0
  20. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/Dockerfile +0 -0
  21. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/LICENSE +0 -0
  22. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/README.md +0 -0
  23. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/docker-compose.yaml +0 -0
  24. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/glama.json +0 -0
  25. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/__init__.py +0 -0
  26. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/auth/credentials.py +0 -0
  27. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/log/log.py +0 -0
  28. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/log/log.yaml +0 -0
  29. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/main.py +0 -0
  30. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/mcp_hydrolix/utils.py +0 -0
  31. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/test-services/docker-compose.yaml +0 -0
  32. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/tests/__init__.py +0 -0
  33. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/tests/test_log.py +0 -0
  34. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/tests/test_mcp_server.py +0 -0
  35. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/tests/test_tool.py +0 -0
  36. {mcp_hydrolix-0.1.5 → mcp_hydrolix-0.1.6}/tests/test_utils.py +0 -0
@@ -1,20 +1,20 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-hydrolix
3
- Version: 0.1.5
3
+ Version: 0.1.6
4
4
  Summary: An MCP server for Hydrolix.
5
5
  Project-URL: Home, https://github.com/hydrolix/mcp-hydrolix
6
6
  License-Expression: Apache-2.0
7
7
  License-File: LICENSE
8
8
  Requires-Python: >=3.13
9
- Requires-Dist: clickhouse-connect>=0.10.0
10
- Requires-Dist: fastmcp>=2.13.3
11
- Requires-Dist: gunicorn>=23.0.0
12
- Requires-Dist: pip-system-certs>=4.0
13
- Requires-Dist: pyjwt>=2.10.1
14
- Requires-Dist: python-dotenv>=1.0.1
9
+ Requires-Dist: clickhouse-connect<0.11,>=0.10
10
+ Requires-Dist: fastmcp<2.15,>=2.14
11
+ Requires-Dist: gunicorn<24.0,>=23.0
12
+ Requires-Dist: pip-system-certs<5.0,>=4.0
13
+ Requires-Dist: pyjwt<2.11,>=2.10
14
+ Requires-Dist: python-dotenv<1.2,>=1.1
15
15
  Provides-Extra: dev
16
- Requires-Dist: fastapi>=0.124.0; extra == 'dev'
17
- Requires-Dist: mcp-clickhouse>=0.1.12; extra == 'dev'
16
+ Requires-Dist: fastapi>=0.124; extra == 'dev'
17
+ Requires-Dist: mcp-clickhouse==0.1.13; extra == 'dev'
18
18
  Requires-Dist: pre-commit; extra == 'dev'
19
19
  Requires-Dist: pytest; extra == 'dev'
20
20
  Requires-Dist: pytest-asyncio; extra == 'dev'
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "https://gofastmcp.com/public/schemas/fastmcp.json/v1.json",
3
+ "source": {
4
+ "type": "filesystem",
5
+ "path": "mcp_hydrolix/mcp_server.py",
6
+ "entrypoint": "mcp"
7
+ },
8
+ "environment": {
9
+ "type": "uv",
10
+ "python": ">=3.13",
11
+ "editable": ["."]
12
+ }
13
+ }
@@ -4,12 +4,12 @@ This package contains authentication-related types used to define hydrolix auth
4
4
  in terms of FastMCP infrastructure
5
5
  """
6
6
 
7
- from .credentials import (
7
+ from mcp_hydrolix.auth.credentials import (
8
8
  HydrolixCredential,
9
9
  ServiceAccountToken,
10
10
  UsernamePassword,
11
11
  )
12
- from .mcp_providers import (
12
+ from mcp_hydrolix.auth.mcp_providers import (
13
13
  TOKEN_PARAM,
14
14
  AccessToken,
15
15
  ChainedAuthBackend,
@@ -18,7 +18,7 @@ from starlette.middleware import Middleware
18
18
  from starlette.middleware.authentication import AuthenticationMiddleware
19
19
  from starlette.requests import HTTPConnection, Request
20
20
 
21
- from .credentials import HydrolixCredential, ServiceAccountToken
21
+ from mcp_hydrolix.auth.credentials import HydrolixCredential, ServiceAccountToken
22
22
 
23
23
  TOKEN_PARAM: Final[str] = "token"
24
24
 
@@ -0,0 +1,6 @@
1
+ from mcp_hydrolix.log.log import JsonFormatter, setup_logging
2
+
3
+ __all__ = [
4
+ "setup_logging",
5
+ "JsonFormatter",
6
+ ]
@@ -3,7 +3,7 @@
3
3
  import logging
4
4
  import re
5
5
 
6
- from ..auth import TOKEN_PARAM
6
+ from mcp_hydrolix.auth import TOKEN_PARAM
7
7
 
8
8
 
9
9
  class AccessLogTokenRedactingFilter(logging.Filter):
@@ -9,7 +9,7 @@ from dataclasses import dataclass
9
9
  from enum import Enum
10
10
  from typing import Optional
11
11
 
12
- from .auth.credentials import HydrolixCredential, ServiceAccountToken, UsernamePassword
12
+ from mcp_hydrolix.auth.credentials import HydrolixCredential, ServiceAccountToken, UsernamePassword
13
13
 
14
14
 
15
15
  class TransportType(str, Enum):
@@ -18,15 +18,15 @@ from pydantic.dataclasses import dataclass
18
18
  from starlette.requests import Request
19
19
  from starlette.responses import PlainTextResponse
20
20
 
21
- from .auth import (
21
+ from mcp_hydrolix.auth import (
22
22
  AccessToken,
23
23
  HydrolixCredential,
24
24
  HydrolixCredentialChain,
25
25
  ServiceAccountToken,
26
26
  UsernamePassword,
27
27
  )
28
- from .mcp_env import HydrolixConfig, get_config
29
- from .utils import with_serializer
28
+ from mcp_hydrolix.mcp_env import HydrolixConfig, get_config
29
+ from mcp_hydrolix.utils import with_serializer
30
30
 
31
31
 
32
32
  @dataclass
@@ -76,11 +76,6 @@ HYDROLIX_CONFIG: Final[HydrolixConfig] = get_config()
76
76
 
77
77
  mcp = FastMCP(
78
78
  name=MCP_SERVER_NAME,
79
- dependencies=[
80
- "clickhouse-connect",
81
- "python-dotenv",
82
- "pip-system-certs",
83
- ],
84
79
  auth=HydrolixCredentialChain(f"https://{HYDROLIX_CONFIG.host}/config"),
85
80
  )
86
81
 
@@ -1,18 +1,18 @@
1
1
  [project]
2
2
  name = "mcp-hydrolix"
3
- version = "0.1.5"
3
+ version = "0.1.6"
4
4
  description = "An MCP server for Hydrolix."
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
7
7
  license-files = ["LICENSE"]
8
8
  requires-python = ">=3.13"
9
9
  dependencies = [
10
- "fastmcp>=2.13.3",
11
- "python-dotenv>=1.0.1",
12
- "clickhouse-connect>=0.10.0",
13
- "pip-system-certs>=4.0",
14
- "gunicorn>=23.0.0",
15
- "pyjwt>=2.10.1",
10
+ "fastmcp>=2.14,<2.15",
11
+ "python-dotenv>=1.1,<1.2",
12
+ "clickhouse-connect>=0.10,<0.11",
13
+ "pip-system-certs>=4.0,<5.0",
14
+ "gunicorn>=23.0,<24.0",
15
+ "pyjwt>=2.10,<2.11",
16
16
  ]
17
17
 
18
18
  [project.scripts]
@@ -29,8 +29,8 @@ dev = [
29
29
  "pytest-xdist",
30
30
  "pytest-repeat",
31
31
  "pre-commit",
32
- "mcp-clickhouse>=0.1.12",
33
- "fastapi>=0.124.0",
32
+ "mcp-clickhouse==0.1.13",
33
+ "fastapi>=0.124",
34
34
  ]
35
35
 
36
36
  [tool.hatch.build.targets.wheel]
@@ -239,6 +239,15 @@ wheels = [
239
239
  { url = "https://files.pythonhosted.org/packages/ff/47/716fc7f481d850d649cac2bf9a74e64658e1ff1e98c449691d5ca87d4a90/clickhouse_connect-0.10.0-cp314-cp314-win_amd64.whl", hash = "sha256:93bf4869d27d9e86469f8fa4f0f27a618e4e63a970c3084f531c0d4706efba49", size = 266059, upload-time = "2025-11-14T20:30:35.999Z" },
240
240
  ]
241
241
 
242
+ [[package]]
243
+ name = "cloudpickle"
244
+ version = "3.1.2"
245
+ source = { registry = "https://pypi.org/simple" }
246
+ sdist = { url = "https://files.pythonhosted.org/packages/27/fb/576f067976d320f5f0114a8d9fa1215425441bb35627b1993e5afd8111e5/cloudpickle-3.1.2.tar.gz", hash = "sha256:7fda9eb655c9c230dab534f1983763de5835249750e85fbcef43aaa30a9a2414", size = 22330, upload-time = "2025-11-03T09:25:26.604Z" }
247
+ wheels = [
248
+ { url = "https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl", hash = "sha256:9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a", size = 22228, upload-time = "2025-11-03T09:25:25.534Z" },
249
+ ]
250
+
242
251
  [[package]]
243
252
  name = "colorama"
244
253
  version = "0.4.6"
@@ -395,6 +404,24 @@ wheels = [
395
404
  { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708, upload-time = "2025-11-12T09:56:36.333Z" },
396
405
  ]
397
406
 
407
+ [[package]]
408
+ name = "fakeredis"
409
+ version = "2.32.1"
410
+ source = { registry = "https://pypi.org/simple" }
411
+ dependencies = [
412
+ { name = "redis" },
413
+ { name = "sortedcontainers" },
414
+ ]
415
+ sdist = { url = "https://files.pythonhosted.org/packages/56/14/b47b8471303af7deed7080290c14cff27a831fa47b38f45643e6bf889cee/fakeredis-2.32.1.tar.gz", hash = "sha256:dd8246db159f0b66a1ced7800c9d5ef07769e3d2fde44b389a57f2ce2834e444", size = 171582, upload-time = "2025-11-06T01:40:57.836Z" }
416
+ wheels = [
417
+ { url = "https://files.pythonhosted.org/packages/c2/d2/c28f6909864bfdb7411bb8f39fabedb5a50da1cbd7da5a1a3a46dfea2eab/fakeredis-2.32.1-py3-none-any.whl", hash = "sha256:e80c8886db2e47ba784f7dfe66aad6cd2eab76093c6bfda50041e5bc890d46cf", size = 118964, upload-time = "2025-11-06T01:40:55.885Z" },
418
+ ]
419
+
420
+ [package.optional-dependencies]
421
+ lua = [
422
+ { name = "lupa" },
423
+ ]
424
+
398
425
  [[package]]
399
426
  name = "fastapi"
400
427
  version = "0.124.2"
@@ -412,7 +439,7 @@ wheels = [
412
439
 
413
440
  [[package]]
414
441
  name = "fastmcp"
415
- version = "2.13.3"
442
+ version = "2.14.1"
416
443
  source = { registry = "https://pypi.org/simple" }
417
444
  dependencies = [
418
445
  { name = "authlib" },
@@ -423,17 +450,18 @@ dependencies = [
423
450
  { name = "mcp" },
424
451
  { name = "openapi-pydantic" },
425
452
  { name = "platformdirs" },
426
- { name = "py-key-value-aio", extra = ["disk", "memory"] },
453
+ { name = "py-key-value-aio", extra = ["disk", "keyring", "memory"] },
427
454
  { name = "pydantic", extra = ["email"] },
455
+ { name = "pydocket" },
428
456
  { name = "pyperclip" },
429
457
  { name = "python-dotenv" },
430
458
  { name = "rich" },
431
459
  { name = "uvicorn" },
432
460
  { name = "websockets" },
433
461
  ]
434
- sdist = { url = "https://files.pythonhosted.org/packages/21/a1/a507bfb73f51983759cbbc3702b6f4780128cff68ebbc51db2f10170c950/fastmcp-2.13.3.tar.gz", hash = "sha256:ebca59e99412c596dd75ebdd5147800f6abc2490d025af76fa8ea4fc5f68781d", size = 8185958, upload-time = "2025-12-03T23:58:00.434Z" }
462
+ sdist = { url = "https://files.pythonhosted.org/packages/9e/50/d38e4371bdc34e709f4731b1e882cb7bc50e51c1a224859d4cd381b3a79b/fastmcp-2.14.1.tar.gz", hash = "sha256:132725cbf77b68fa3c3d165eff0cfa47e40c1479457419e6a2cfda65bd84c8d6", size = 8263331, upload-time = "2025-12-15T02:26:27.102Z" }
435
463
  wheels = [
436
- { url = "https://files.pythonhosted.org/packages/db/bc/56925f1202357dbfcfdfd0c75afc6c27ec1e6ef1d89b7e7410df3945ceb4/fastmcp-2.13.3-py3-none-any.whl", hash = "sha256:5173d335f4e6aabcfb5a5131af3fa092f604b303130fd3a49226b7a844a48e65", size = 385644, upload-time = "2025-12-03T23:58:02.246Z" },
464
+ { url = "https://files.pythonhosted.org/packages/1d/82/72401d09dc27c27fdf72ad6c2fe331e553e3c3646e01b5ff16473191033d/fastmcp-2.14.1-py3-none-any.whl", hash = "sha256:fb3e365cc1d52573ab89caeba9944dd4b056149097be169bce428e011f0a57e5", size = 412176, upload-time = "2025-12-15T02:26:25.356Z" },
437
465
  ]
438
466
 
439
467
  [[package]]
@@ -521,6 +549,18 @@ wheels = [
521
549
  { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" },
522
550
  ]
523
551
 
552
+ [[package]]
553
+ name = "importlib-metadata"
554
+ version = "8.7.0"
555
+ source = { registry = "https://pypi.org/simple" }
556
+ dependencies = [
557
+ { name = "zipp" },
558
+ ]
559
+ sdist = { url = "https://files.pythonhosted.org/packages/76/66/650a33bd90f786193e4de4b3ad86ea60b53c89b669a5c7be931fac31cdb0/importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000", size = 56641, upload-time = "2025-04-27T15:29:01.736Z" }
560
+ wheels = [
561
+ { url = "https://files.pythonhosted.org/packages/20/b0/36bd937216ec521246249be3bf9855081de4c5e06a0c9b4219dbeda50373/importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd", size = 27656, upload-time = "2025-04-27T15:29:00.214Z" },
562
+ ]
563
+
524
564
  [[package]]
525
565
  name = "iniconfig"
526
566
  version = "2.3.0"
@@ -530,6 +570,48 @@ wheels = [
530
570
  { 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" },
531
571
  ]
532
572
 
573
+ [[package]]
574
+ name = "jaraco-classes"
575
+ version = "3.4.0"
576
+ source = { registry = "https://pypi.org/simple" }
577
+ dependencies = [
578
+ { name = "more-itertools" },
579
+ ]
580
+ sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" }
581
+ wheels = [
582
+ { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" },
583
+ ]
584
+
585
+ [[package]]
586
+ name = "jaraco-context"
587
+ version = "6.0.1"
588
+ source = { registry = "https://pypi.org/simple" }
589
+ sdist = { url = "https://files.pythonhosted.org/packages/df/ad/f3777b81bf0b6e7bc7514a1656d3e637b2e8e15fab2ce3235730b3e7a4e6/jaraco_context-6.0.1.tar.gz", hash = "sha256:9bae4ea555cf0b14938dc0aee7c9f32ed303aa20a3b73e7dc80111628792d1b3", size = 13912, upload-time = "2024-08-20T03:39:27.358Z" }
590
+ wheels = [
591
+ { url = "https://files.pythonhosted.org/packages/ff/db/0c52c4cf5e4bd9f5d7135ec7669a3a767af21b3a308e1ed3674881e52b62/jaraco.context-6.0.1-py3-none-any.whl", hash = "sha256:f797fc481b490edb305122c9181830a3a5b76d84ef6d1aef2fb9b47ab956f9e4", size = 6825, upload-time = "2024-08-20T03:39:25.966Z" },
592
+ ]
593
+
594
+ [[package]]
595
+ name = "jaraco-functools"
596
+ version = "4.3.0"
597
+ source = { registry = "https://pypi.org/simple" }
598
+ dependencies = [
599
+ { name = "more-itertools" },
600
+ ]
601
+ sdist = { url = "https://files.pythonhosted.org/packages/f7/ed/1aa2d585304ec07262e1a83a9889880701079dde796ac7b1d1826f40c63d/jaraco_functools-4.3.0.tar.gz", hash = "sha256:cfd13ad0dd2c47a3600b439ef72d8615d482cedcff1632930d6f28924d92f294", size = 19755, upload-time = "2025-08-18T20:05:09.91Z" }
602
+ wheels = [
603
+ { url = "https://files.pythonhosted.org/packages/b4/09/726f168acad366b11e420df31bf1c702a54d373a83f968d94141a8c3fde0/jaraco_functools-4.3.0-py3-none-any.whl", hash = "sha256:227ff8ed6f7b8f62c56deff101545fa7543cf2c8e7b82a7c2116e672f29c26e8", size = 10408, upload-time = "2025-08-18T20:05:08.69Z" },
604
+ ]
605
+
606
+ [[package]]
607
+ name = "jeepney"
608
+ version = "0.9.0"
609
+ source = { registry = "https://pypi.org/simple" }
610
+ sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" }
611
+ wheels = [
612
+ { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" },
613
+ ]
614
+
533
615
  [[package]]
534
616
  name = "jsonschema"
535
617
  version = "4.25.1"
@@ -572,6 +654,64 @@ wheels = [
572
654
  { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" },
573
655
  ]
574
656
 
657
+ [[package]]
658
+ name = "keyring"
659
+ version = "25.7.0"
660
+ source = { registry = "https://pypi.org/simple" }
661
+ dependencies = [
662
+ { name = "jaraco-classes" },
663
+ { name = "jaraco-context" },
664
+ { name = "jaraco-functools" },
665
+ { name = "jeepney", marker = "sys_platform == 'linux'" },
666
+ { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" },
667
+ { name = "secretstorage", marker = "sys_platform == 'linux'" },
668
+ ]
669
+ sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" }
670
+ wheels = [
671
+ { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" },
672
+ ]
673
+
674
+ [[package]]
675
+ name = "lupa"
676
+ version = "2.6"
677
+ source = { registry = "https://pypi.org/simple" }
678
+ sdist = { url = "https://files.pythonhosted.org/packages/b8/1c/191c3e6ec6502e3dbe25a53e27f69a5daeac3e56de1f73c0138224171ead/lupa-2.6.tar.gz", hash = "sha256:9a770a6e89576be3447668d7ced312cd6fd41d3c13c2462c9dc2c2ab570e45d9", size = 7240282, upload-time = "2025-10-24T07:20:29.738Z" }
679
+ wheels = [
680
+ { url = "https://files.pythonhosted.org/packages/28/1d/21176b682ca5469001199d8b95fa1737e29957a3d185186e7a8b55345f2e/lupa-2.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:663a6e58a0f60e7d212017d6678639ac8df0119bc13c2145029dcba084391310", size = 947232, upload-time = "2025-10-24T07:18:27.878Z" },
681
+ { url = "https://files.pythonhosted.org/packages/ce/4c/d327befb684660ca13cf79cd1f1d604331808f9f1b6fb6bf57832f8edf80/lupa-2.6-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:d1f5afda5c20b1f3217a80e9bc1b77037f8a6eb11612fd3ada19065303c8f380", size = 1908625, upload-time = "2025-10-24T07:18:29.944Z" },
682
+ { url = "https://files.pythonhosted.org/packages/66/8e/ad22b0a19454dfd08662237a84c792d6d420d36b061f239e084f29d1a4f3/lupa-2.6-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:26f2b3c085fe76e9119e48c1013c1cccdc1f51585d456858290475aa38e7089e", size = 981057, upload-time = "2025-10-24T07:18:31.553Z" },
683
+ { url = "https://files.pythonhosted.org/packages/5c/48/74859073ab276bd0566c719f9ca0108b0cfc1956ca0d68678d117d47d155/lupa-2.6-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:60d2f902c7b96fb8ab98493dcff315e7bb4d0b44dc9dd76eb37de575025d5685", size = 1156227, upload-time = "2025-10-24T07:18:33.981Z" },
684
+ { url = "https://files.pythonhosted.org/packages/09/6c/0e9ded061916877253c2266074060eb71ed99fb21d73c8c114a76725bce2/lupa-2.6-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a02d25dee3a3250967c36590128d9220ae02f2eda166a24279da0b481519cbff", size = 1035752, upload-time = "2025-10-24T07:18:36.32Z" },
685
+ { url = "https://files.pythonhosted.org/packages/dd/ef/f8c32e454ef9f3fe909f6c7d57a39f950996c37a3deb7b391fec7903dab7/lupa-2.6-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6eae1ee16b886b8914ff292dbefbf2f48abfbdee94b33a88d1d5475e02423203", size = 2069009, upload-time = "2025-10-24T07:18:38.072Z" },
686
+ { url = "https://files.pythonhosted.org/packages/53/dc/15b80c226a5225815a890ee1c11f07968e0aba7a852df41e8ae6fe285063/lupa-2.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0edd5073a4ee74ab36f74fe61450148e6044f3952b8d21248581f3c5d1a58be", size = 1056301, upload-time = "2025-10-24T07:18:40.165Z" },
687
+ { url = "https://files.pythonhosted.org/packages/31/14/2086c1425c985acfb30997a67e90c39457122df41324d3c179d6ee2292c6/lupa-2.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0c53ee9f22a8a17e7d4266ad48e86f43771951797042dd51d1494aaa4f5f3f0a", size = 1170673, upload-time = "2025-10-24T07:18:42.426Z" },
688
+ { url = "https://files.pythonhosted.org/packages/10/e5/b216c054cf86576c0191bf9a9f05de6f7e8e07164897d95eea0078dca9b2/lupa-2.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:de7c0f157a9064a400d828789191a96da7f4ce889969a588b87ec80de9b14772", size = 2162227, upload-time = "2025-10-24T07:18:46.112Z" },
689
+ { url = "https://files.pythonhosted.org/packages/59/2f/33ecb5bedf4f3bc297ceacb7f016ff951331d352f58e7e791589609ea306/lupa-2.6-cp313-cp313-win32.whl", hash = "sha256:ee9523941ae0a87b5b703417720c5d78f72d2f5bc23883a2ea80a949a3ed9e75", size = 1419558, upload-time = "2025-10-24T07:18:48.371Z" },
690
+ { url = "https://files.pythonhosted.org/packages/f9/b4/55e885834c847ea610e111d87b9ed4768f0afdaeebc00cd46810f25029f6/lupa-2.6-cp313-cp313-win_amd64.whl", hash = "sha256:b1335a5835b0a25ebdbc75cf0bda195e54d133e4d994877ef025e218c2e59db9", size = 1683424, upload-time = "2025-10-24T07:18:50.976Z" },
691
+ { url = "https://files.pythonhosted.org/packages/66/9d/d9427394e54d22a35d1139ef12e845fd700d4872a67a34db32516170b746/lupa-2.6-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcb6d0a3264873e1653bc188499f48c1fb4b41a779e315eba45256cfe7bc33c1", size = 953818, upload-time = "2025-10-24T07:18:53.378Z" },
692
+ { url = "https://files.pythonhosted.org/packages/10/41/27bbe81953fb2f9ecfced5d9c99f85b37964cfaf6aa8453bb11283983721/lupa-2.6-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:a37e01f2128f8c36106726cb9d360bac087d58c54b4522b033cc5691c584db18", size = 1915850, upload-time = "2025-10-24T07:18:55.259Z" },
693
+ { url = "https://files.pythonhosted.org/packages/a3/98/f9ff60db84a75ba8725506bbf448fb085bc77868a021998ed2a66d920568/lupa-2.6-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:458bd7e9ff3c150b245b0fcfbb9bd2593d1152ea7f0a7b91c1d185846da033fe", size = 982344, upload-time = "2025-10-24T07:18:57.05Z" },
694
+ { url = "https://files.pythonhosted.org/packages/41/f7/f39e0f1c055c3b887d86b404aaf0ca197b5edfd235a8b81b45b25bac7fc3/lupa-2.6-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:052ee82cac5206a02df77119c325339acbc09f5ce66967f66a2e12a0f3211cad", size = 1156543, upload-time = "2025-10-24T07:18:59.251Z" },
695
+ { url = "https://files.pythonhosted.org/packages/9e/9c/59e6cffa0d672d662ae17bd7ac8ecd2c89c9449dee499e3eb13ca9cd10d9/lupa-2.6-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96594eca3c87dd07938009e95e591e43d554c1dbd0385be03c100367141db5a8", size = 1047974, upload-time = "2025-10-24T07:19:01.449Z" },
696
+ { url = "https://files.pythonhosted.org/packages/23/c6/a04e9cef7c052717fcb28fb63b3824802488f688391895b618e39be0f684/lupa-2.6-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8faddd9d198688c8884091173a088a8e920ecc96cda2ffed576a23574c4b3f6", size = 2073458, upload-time = "2025-10-24T07:19:03.369Z" },
697
+ { url = "https://files.pythonhosted.org/packages/e6/10/824173d10f38b51fc77785228f01411b6ca28826ce27404c7c912e0e442c/lupa-2.6-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:daebb3a6b58095c917e76ba727ab37b27477fb926957c825205fbda431552134", size = 1067683, upload-time = "2025-10-24T07:19:06.2Z" },
698
+ { url = "https://files.pythonhosted.org/packages/b6/dc/9692fbcf3c924d9c4ece2d8d2f724451ac2e09af0bd2a782db1cef34e799/lupa-2.6-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:f3154e68972befe0f81564e37d8142b5d5d79931a18309226a04ec92487d4ea3", size = 1171892, upload-time = "2025-10-24T07:19:08.544Z" },
699
+ { url = "https://files.pythonhosted.org/packages/84/ff/e318b628d4643c278c96ab3ddea07fc36b075a57383c837f5b11e537ba9d/lupa-2.6-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e4dadf77b9fedc0bfa53417cc28dc2278a26d4cbd95c29f8927ad4d8fe0a7ef9", size = 2166641, upload-time = "2025-10-24T07:19:10.485Z" },
700
+ { url = "https://files.pythonhosted.org/packages/12/f7/a6f9ec2806cf2d50826980cdb4b3cffc7691dc6f95e13cc728846d5cb793/lupa-2.6-cp314-cp314-win32.whl", hash = "sha256:cb34169c6fa3bab3e8ac58ca21b8a7102f6a94b6a5d08d3636312f3f02fafd8f", size = 1456857, upload-time = "2025-10-24T07:19:37.989Z" },
701
+ { url = "https://files.pythonhosted.org/packages/c5/de/df71896f25bdc18360fdfa3b802cd7d57d7fede41a0e9724a4625b412c85/lupa-2.6-cp314-cp314-win_amd64.whl", hash = "sha256:b74f944fe46c421e25d0f8692aef1e842192f6f7f68034201382ac440ef9ea67", size = 1731191, upload-time = "2025-10-24T07:19:40.281Z" },
702
+ { url = "https://files.pythonhosted.org/packages/47/3c/a1f23b01c54669465f5f4c4083107d496fbe6fb45998771420e9aadcf145/lupa-2.6-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:0e21b716408a21ab65723f8841cf7f2f37a844b7a965eeabb785e27fca4099cf", size = 999343, upload-time = "2025-10-24T07:19:12.519Z" },
703
+ { url = "https://files.pythonhosted.org/packages/c5/6d/501994291cb640bfa2ccf7f554be4e6914afa21c4026bd01bff9ca8aac57/lupa-2.6-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:589db872a141bfff828340079bbdf3e9a31f2689f4ca0d88f97d9e8c2eae6142", size = 2000730, upload-time = "2025-10-24T07:19:14.869Z" },
704
+ { url = "https://files.pythonhosted.org/packages/53/a5/457ffb4f3f20469956c2d4c4842a7675e884efc895b2f23d126d23e126cc/lupa-2.6-cp314-cp314t-macosx_11_0_x86_64.whl", hash = "sha256:cd852a91a4a9d4dcbb9a58100f820a75a425703ec3e3f049055f60b8533b7953", size = 1021553, upload-time = "2025-10-24T07:19:17.123Z" },
705
+ { url = "https://files.pythonhosted.org/packages/51/6b/36bb5a5d0960f2a5c7c700e0819abb76fd9bf9c1d8a66e5106416d6e9b14/lupa-2.6-cp314-cp314t-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:0334753be028358922415ca97a64a3048e4ed155413fc4eaf87dd0a7e2752983", size = 1133275, upload-time = "2025-10-24T07:19:20.51Z" },
706
+ { url = "https://files.pythonhosted.org/packages/19/86/202ff4429f663013f37d2229f6176ca9f83678a50257d70f61a0a97281bf/lupa-2.6-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:661d895cd38c87658a34780fac54a690ec036ead743e41b74c3fb81a9e65a6aa", size = 1038441, upload-time = "2025-10-24T07:19:22.509Z" },
707
+ { url = "https://files.pythonhosted.org/packages/a7/42/d8125f8e420714e5b52e9c08d88b5329dfb02dcca731b4f21faaee6cc5b5/lupa-2.6-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aa58454ccc13878cc177c62529a2056be734da16369e451987ff92784994ca7", size = 2058324, upload-time = "2025-10-24T07:19:24.979Z" },
708
+ { url = "https://files.pythonhosted.org/packages/2b/2c/47bf8b84059876e877a339717ddb595a4a7b0e8740bacae78ba527562e1c/lupa-2.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:1425017264e470c98022bba8cff5bd46d054a827f5df6b80274f9cc71dafd24f", size = 1060250, upload-time = "2025-10-24T07:19:27.262Z" },
709
+ { url = "https://files.pythonhosted.org/packages/c2/06/d88add2b6406ca1bdec99d11a429222837ca6d03bea42ca75afa169a78cb/lupa-2.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:224af0532d216e3105f0a127410f12320f7c5f1aa0300bdf9646b8d9afb0048c", size = 1151126, upload-time = "2025-10-24T07:19:29.522Z" },
710
+ { url = "https://files.pythonhosted.org/packages/b4/a0/89e6a024c3b4485b89ef86881c9d55e097e7cb0bdb74efb746f2fa6a9a76/lupa-2.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:9abb98d5a8fd27c8285302e82199f0e56e463066f88f619d6594a450bf269d80", size = 2153693, upload-time = "2025-10-24T07:19:31.379Z" },
711
+ { url = "https://files.pythonhosted.org/packages/b6/36/a0f007dc58fc1bbf51fb85dcc82fcb1f21b8c4261361de7dab0e3d8521ef/lupa-2.6-cp314-cp314t-win32.whl", hash = "sha256:1849efeba7a8f6fb8aa2c13790bee988fd242ae404bd459509640eeea3d1e291", size = 1590104, upload-time = "2025-10-24T07:19:33.514Z" },
712
+ { url = "https://files.pythonhosted.org/packages/7d/5e/db903ce9cf82c48d6b91bf6d63ae4c8d0d17958939a4e04ba6b9f38b8643/lupa-2.6-cp314-cp314t-win_amd64.whl", hash = "sha256:fc1498d1a4fc028bc521c26d0fad4ca00ed63b952e32fb95949bda76a04bad52", size = 1913818, upload-time = "2025-10-24T07:19:36.039Z" },
713
+ ]
714
+
575
715
  [[package]]
576
716
  name = "lz4"
577
717
  version = "4.4.5"
@@ -618,7 +758,7 @@ wheels = [
618
758
 
619
759
  [[package]]
620
760
  name = "mcp"
621
- version = "1.22.0"
761
+ version = "1.24.0"
622
762
  source = { registry = "https://pypi.org/simple" }
623
763
  dependencies = [
624
764
  { name = "anyio" },
@@ -636,30 +776,31 @@ dependencies = [
636
776
  { name = "typing-inspection" },
637
777
  { name = "uvicorn", marker = "sys_platform != 'emscripten'" },
638
778
  ]
639
- sdist = { url = "https://files.pythonhosted.org/packages/a3/a2/c5ec0ab38b35ade2ae49a90fada718fbc76811dc5aa1760414c6aaa6b08a/mcp-1.22.0.tar.gz", hash = "sha256:769b9ac90ed42134375b19e777a2858ca300f95f2e800982b3e2be62dfc0ba01", size = 471788, upload-time = "2025-11-20T20:11:28.095Z" }
779
+ sdist = { url = "https://files.pythonhosted.org/packages/d6/2c/db9ae5ab1fcdd9cd2bcc7ca3b7361b712e30590b64d5151a31563af8f82d/mcp-1.24.0.tar.gz", hash = "sha256:aeaad134664ce56f2721d1abf300666a1e8348563f4d3baff361c3b652448efc", size = 604375, upload-time = "2025-12-12T14:19:38.205Z" }
640
780
  wheels = [
641
- { url = "https://files.pythonhosted.org/packages/a9/bb/711099f9c6bb52770f56e56401cdfb10da5b67029f701e0df29362df4c8e/mcp-1.22.0-py3-none-any.whl", hash = "sha256:bed758e24df1ed6846989c909ba4e3df339a27b4f30f1b8b627862a4bade4e98", size = 175489, upload-time = "2025-11-20T20:11:26.542Z" },
781
+ { url = "https://files.pythonhosted.org/packages/61/0d/5cf14e177c8ae655a2fd9324a6ef657ca4cafd3fc2201c87716055e29641/mcp-1.24.0-py3-none-any.whl", hash = "sha256:db130e103cc50ddc3dffc928382f33ba3eaef0b711f7a87c05e7ded65b1ca062", size = 232896, upload-time = "2025-12-12T14:19:36.14Z" },
642
782
  ]
643
783
 
644
784
  [[package]]
645
785
  name = "mcp-clickhouse"
646
- version = "0.1.12"
786
+ version = "0.1.13"
647
787
  source = { registry = "https://pypi.org/simple" }
648
788
  dependencies = [
789
+ { name = "cachetools" },
649
790
  { name = "chdb" },
650
791
  { name = "clickhouse-connect" },
651
792
  { name = "fastmcp" },
652
- { name = "pip-system-certs" },
653
793
  { name = "python-dotenv" },
794
+ { name = "truststore" },
654
795
  ]
655
- sdist = { url = "https://files.pythonhosted.org/packages/0e/fc/502039cb05ce8d6b92c13704fd9419c9400d6ec44314d6db66df1ed5909e/mcp_clickhouse-0.1.12.tar.gz", hash = "sha256:976741554666034e52c30e5716d0c6ceed6545cfdca150aeb022ea5fafca359b", size = 133823, upload-time = "2025-09-15T13:26:23.177Z" }
796
+ sdist = { url = "https://files.pythonhosted.org/packages/3c/a7/199c9ac3e7f5e9e1b9bf6ac6c869ca415bc92f62dd70dc6de5294d54eba4/mcp_clickhouse-0.1.13.tar.gz", hash = "sha256:e55740dafb144088aa48305e8eeefc3edb7385f9d507e7aea7b9c3722df6956d", size = 149238, upload-time = "2025-12-16T16:52:46.28Z" }
656
797
  wheels = [
657
- { url = "https://files.pythonhosted.org/packages/ce/c2/59f031b65be2f6b50376fedf6b98f829e52896d043c6b797f7269c34bb9a/mcp_clickhouse-0.1.12-py3-none-any.whl", hash = "sha256:0edf04b189148950ea6c40872bc8395f6c78f353757d304603a8137c703b890f", size = 18710, upload-time = "2025-09-15T13:26:21.929Z" },
798
+ { url = "https://files.pythonhosted.org/packages/4f/88/ac8533cbc000c8ade6267170eebf3da7b853bb86c6ce784633c91ee6a6fa/mcp_clickhouse-0.1.13-py3-none-any.whl", hash = "sha256:e9cc40f6b1867f0b88dc9da42af73577211ae4a0b43cd357ec43c64557339364", size = 21118, upload-time = "2025-12-16T16:52:44.977Z" },
658
799
  ]
659
800
 
660
801
  [[package]]
661
802
  name = "mcp-hydrolix"
662
- version = "0.1.5"
803
+ version = "0.1.6"
663
804
  source = { editable = "." }
664
805
  dependencies = [
665
806
  { name = "clickhouse-connect" },
@@ -684,19 +825,19 @@ dev = [
684
825
 
685
826
  [package.metadata]
686
827
  requires-dist = [
687
- { name = "clickhouse-connect", specifier = ">=0.10.0" },
688
- { name = "fastapi", marker = "extra == 'dev'", specifier = ">=0.124.0" },
689
- { name = "fastmcp", specifier = ">=2.13.3" },
690
- { name = "gunicorn", specifier = ">=23.0.0" },
691
- { name = "mcp-clickhouse", marker = "extra == 'dev'", specifier = ">=0.1.12" },
692
- { name = "pip-system-certs", specifier = ">=4.0" },
828
+ { name = "clickhouse-connect", specifier = ">=0.10,<0.11" },
829
+ { name = "fastapi", marker = "extra == 'dev'", specifier = ">=0.124" },
830
+ { name = "fastmcp", specifier = ">=2.14,<2.15" },
831
+ { name = "gunicorn", specifier = ">=23.0,<24.0" },
832
+ { name = "mcp-clickhouse", marker = "extra == 'dev'", specifier = "==0.1.13" },
833
+ { name = "pip-system-certs", specifier = ">=4.0,<5.0" },
693
834
  { name = "pre-commit", marker = "extra == 'dev'" },
694
- { name = "pyjwt", specifier = ">=2.10.1" },
835
+ { name = "pyjwt", specifier = ">=2.10,<2.11" },
695
836
  { name = "pytest", marker = "extra == 'dev'" },
696
837
  { name = "pytest-asyncio", marker = "extra == 'dev'" },
697
838
  { name = "pytest-repeat", marker = "extra == 'dev'" },
698
839
  { name = "pytest-xdist", marker = "extra == 'dev'" },
699
- { name = "python-dotenv", specifier = ">=1.0.1" },
840
+ { name = "python-dotenv", specifier = ">=1.1,<1.2" },
700
841
  { name = "ruff", marker = "extra == 'dev'" },
701
842
  ]
702
843
  provides-extras = ["dev"]
@@ -710,6 +851,15 @@ wheels = [
710
851
  { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" },
711
852
  ]
712
853
 
854
+ [[package]]
855
+ name = "more-itertools"
856
+ version = "10.8.0"
857
+ source = { registry = "https://pypi.org/simple" }
858
+ sdist = { url = "https://files.pythonhosted.org/packages/ea/5d/38b681d3fce7a266dd9ab73c66959406d565b3e85f21d5e66e1181d93721/more_itertools-10.8.0.tar.gz", hash = "sha256:f638ddf8a1a0d134181275fb5d58b086ead7c6a72429ad725c67503f13ba30bd", size = 137431, upload-time = "2025-09-02T15:23:11.018Z" }
859
+ wheels = [
860
+ { url = "https://files.pythonhosted.org/packages/a4/8e/469e5a4a2f5855992e425f3cb33804cc07bf18d48f2db061aec61ce50270/more_itertools-10.8.0-py3-none-any.whl", hash = "sha256:52d4362373dcf7c52546bc4af9a86ee7c4579df9a8dc268be0a2f949d376cc9b", size = 69667, upload-time = "2025-09-02T15:23:09.635Z" },
861
+ ]
862
+
713
863
  [[package]]
714
864
  name = "nodeenv"
715
865
  version = "1.9.1"
@@ -783,6 +933,75 @@ wheels = [
783
933
  { url = "https://files.pythonhosted.org/packages/12/cf/03675d8bd8ecbf4445504d8071adab19f5f993676795708e36402ab38263/openapi_pydantic-0.5.1-py3-none-any.whl", hash = "sha256:a3a09ef4586f5bd760a8df7f43028b60cafb6d9f61de2acba9574766255ab146", size = 96381, upload-time = "2025-01-08T19:29:25.275Z" },
784
934
  ]
785
935
 
936
+ [[package]]
937
+ name = "opentelemetry-api"
938
+ version = "1.39.1"
939
+ source = { registry = "https://pypi.org/simple" }
940
+ dependencies = [
941
+ { name = "importlib-metadata" },
942
+ { name = "typing-extensions" },
943
+ ]
944
+ sdist = { url = "https://files.pythonhosted.org/packages/97/b9/3161be15bb8e3ad01be8be5a968a9237c3027c5be504362ff800fca3e442/opentelemetry_api-1.39.1.tar.gz", hash = "sha256:fbde8c80e1b937a2c61f20347e91c0c18a1940cecf012d62e65a7caf08967c9c", size = 65767, upload-time = "2025-12-11T13:32:39.182Z" }
945
+ wheels = [
946
+ { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" },
947
+ ]
948
+
949
+ [[package]]
950
+ name = "opentelemetry-exporter-prometheus"
951
+ version = "0.60b1"
952
+ source = { registry = "https://pypi.org/simple" }
953
+ dependencies = [
954
+ { name = "opentelemetry-api" },
955
+ { name = "opentelemetry-sdk" },
956
+ { name = "prometheus-client" },
957
+ ]
958
+ sdist = { url = "https://files.pythonhosted.org/packages/14/39/7dafa6fff210737267bed35a8855b6ac7399b9e582b8cf1f25f842517012/opentelemetry_exporter_prometheus-0.60b1.tar.gz", hash = "sha256:a4011b46906323f71724649d301b4dc188aaa068852e814f4df38cc76eac616b", size = 14976, upload-time = "2025-12-11T13:32:42.944Z" }
959
+ wheels = [
960
+ { url = "https://files.pythonhosted.org/packages/9b/0d/4be6bf5477a3eb3d917d2f17d3c0b6720cd6cb97898444a61d43cc983f5c/opentelemetry_exporter_prometheus-0.60b1-py3-none-any.whl", hash = "sha256:49f59178de4f4590e3cef0b8b95cf6e071aae70e1f060566df5546fad773b8fd", size = 13019, upload-time = "2025-12-11T13:32:23.974Z" },
961
+ ]
962
+
963
+ [[package]]
964
+ name = "opentelemetry-instrumentation"
965
+ version = "0.60b1"
966
+ source = { registry = "https://pypi.org/simple" }
967
+ dependencies = [
968
+ { name = "opentelemetry-api" },
969
+ { name = "opentelemetry-semantic-conventions" },
970
+ { name = "packaging" },
971
+ { name = "wrapt" },
972
+ ]
973
+ sdist = { url = "https://files.pythonhosted.org/packages/41/0f/7e6b713ac117c1f5e4e3300748af699b9902a2e5e34c9cf443dde25a01fa/opentelemetry_instrumentation-0.60b1.tar.gz", hash = "sha256:57ddc7974c6eb35865af0426d1a17132b88b2ed8586897fee187fd5b8944bd6a", size = 31706, upload-time = "2025-12-11T13:36:42.515Z" }
974
+ wheels = [
975
+ { url = "https://files.pythonhosted.org/packages/77/d2/6788e83c5c86a2690101681aeef27eeb2a6bf22df52d3f263a22cee20915/opentelemetry_instrumentation-0.60b1-py3-none-any.whl", hash = "sha256:04480db952b48fb1ed0073f822f0ee26012b7be7c3eac1a3793122737c78632d", size = 33096, upload-time = "2025-12-11T13:35:33.067Z" },
976
+ ]
977
+
978
+ [[package]]
979
+ name = "opentelemetry-sdk"
980
+ version = "1.39.1"
981
+ source = { registry = "https://pypi.org/simple" }
982
+ dependencies = [
983
+ { name = "opentelemetry-api" },
984
+ { name = "opentelemetry-semantic-conventions" },
985
+ { name = "typing-extensions" },
986
+ ]
987
+ sdist = { url = "https://files.pythonhosted.org/packages/eb/fb/c76080c9ba07e1e8235d24cdcc4d125ef7aa3edf23eb4e497c2e50889adc/opentelemetry_sdk-1.39.1.tar.gz", hash = "sha256:cf4d4563caf7bff906c9f7967e2be22d0d6b349b908be0d90fb21c8e9c995cc6", size = 171460, upload-time = "2025-12-11T13:32:49.369Z" }
988
+ wheels = [
989
+ { url = "https://files.pythonhosted.org/packages/7c/98/e91cf858f203d86f4eccdf763dcf01cf03f1dae80c3750f7e635bfa206b6/opentelemetry_sdk-1.39.1-py3-none-any.whl", hash = "sha256:4d5482c478513ecb0a5d938dcc61394e647066e0cc2676bee9f3af3f3f45f01c", size = 132565, upload-time = "2025-12-11T13:32:35.069Z" },
990
+ ]
991
+
992
+ [[package]]
993
+ name = "opentelemetry-semantic-conventions"
994
+ version = "0.60b1"
995
+ source = { registry = "https://pypi.org/simple" }
996
+ dependencies = [
997
+ { name = "opentelemetry-api" },
998
+ { name = "typing-extensions" },
999
+ ]
1000
+ sdist = { url = "https://files.pythonhosted.org/packages/91/df/553f93ed38bf22f4b999d9be9c185adb558982214f33eae539d3b5cd0858/opentelemetry_semantic_conventions-0.60b1.tar.gz", hash = "sha256:87c228b5a0669b748c76d76df6c364c369c28f1c465e50f661e39737e84bc953", size = 137935, upload-time = "2025-12-11T13:32:50.487Z" }
1001
+ wheels = [
1002
+ { url = "https://files.pythonhosted.org/packages/7a/5e/5958555e09635d09b75de3c4f8b9cae7335ca545d77392ffe7331534c402/opentelemetry_semantic_conventions-0.60b1-py3-none-any.whl", hash = "sha256:9fa8c8b0c110da289809292b0591220d3a7b53c1526a23021e977d68597893fb", size = 219982, upload-time = "2025-12-11T13:32:36.955Z" },
1003
+ ]
1004
+
786
1005
  [[package]]
787
1006
  name = "packaging"
788
1007
  version = "25.0"
@@ -850,25 +1069,16 @@ wheels = [
850
1069
  { url = "https://files.pythonhosted.org/packages/9a/70/875f4a23bfc4731703a5835487d0d2fb999031bd415e7d17c0ae615c18b7/pathvalidate-3.3.1-py3-none-any.whl", hash = "sha256:5263baab691f8e1af96092fa5137ee17df5bdfbd6cff1fcac4d6ef4bc2e1735f", size = 24305, upload-time = "2025-06-15T09:07:19.117Z" },
851
1070
  ]
852
1071
 
853
- [[package]]
854
- name = "pip"
855
- version = "25.3"
856
- source = { registry = "https://pypi.org/simple" }
857
- sdist = { url = "https://files.pythonhosted.org/packages/fe/6e/74a3f0179a4a73a53d66ce57fdb4de0080a8baa1de0063de206d6167acc2/pip-25.3.tar.gz", hash = "sha256:8d0538dbbd7babbd207f261ed969c65de439f6bc9e5dbd3b3b9a77f25d95f343", size = 1803014, upload-time = "2025-10-25T00:55:41.394Z" }
858
- wheels = [
859
- { url = "https://files.pythonhosted.org/packages/44/3c/d717024885424591d5376220b5e836c2d5293ce2011523c9de23ff7bf068/pip-25.3-py3-none-any.whl", hash = "sha256:9655943313a94722b7774661c21049070f6bbb0a1516bf02f7c8d5d9201514cd", size = 1778622, upload-time = "2025-10-25T00:55:39.247Z" },
860
- ]
861
-
862
1072
  [[package]]
863
1073
  name = "pip-system-certs"
864
- version = "5.3"
1074
+ version = "4.0"
865
1075
  source = { registry = "https://pypi.org/simple" }
866
1076
  dependencies = [
867
- { name = "pip" },
1077
+ { name = "wrapt" },
868
1078
  ]
869
- sdist = { url = "https://files.pythonhosted.org/packages/7d/6a/563b05a4f6c9ddc205c98bb413e74221368efb98b8fb9cca96b578b8930c/pip_system_certs-5.3.tar.gz", hash = "sha256:19c8bf9957bcce7d69c4dbc2d0b2ef13de1984d53f50a59012e6dbbad0af67c6", size = 6395, upload-time = "2025-10-16T06:14:55.217Z" }
1079
+ sdist = { url = "https://files.pythonhosted.org/packages/27/9a/4e949d0a281c5dd45c8d5b02b03fe32044936234675e967de49317a1daee/pip_system_certs-4.0.tar.gz", hash = "sha256:db8e6a31388d9795ec9139957df1a89fa5274fb66164456fd091a5d3e94c350c", size = 5622, upload-time = "2022-11-04T11:01:12.537Z" }
870
1080
  wheels = [
871
- { url = "https://files.pythonhosted.org/packages/9f/57/752b63c609affae8f26ae0f1d1103d6ea7e707ad45943f62f7422936071d/pip_system_certs-5.3-py3-none-any.whl", hash = "sha256:3fbb5de62e374a99b688b1ad06e64ee5c4aeb633ef23e3a677d32e3e84fd863c", size = 6896, upload-time = "2025-10-16T06:14:54.072Z" },
1081
+ { url = "https://files.pythonhosted.org/packages/70/82/78c30a18858d484acd13a3aea22ead89c66f200e118d1aa4b4bae392efee/pip_system_certs-4.0-py2.py3-none-any.whl", hash = "sha256:47202b9403a6f40783a9674bbc8873f5fc86544ec01a49348fa913e99e2ff68b", size = 6070, upload-time = "2022-11-04T11:01:11.169Z" },
872
1082
  ]
873
1083
 
874
1084
  [[package]]
@@ -905,6 +1115,15 @@ wheels = [
905
1115
  { url = "https://files.pythonhosted.org/packages/5d/c4/b2d28e9d2edf4f1713eb3c29307f1a63f3d67cf09bdda29715a36a68921a/pre_commit-4.5.0-py2.py3-none-any.whl", hash = "sha256:25e2ce09595174d9c97860a95609f9f852c0614ba602de3561e267547f2335e1", size = 226429, upload-time = "2025-11-22T21:02:40.836Z" },
906
1116
  ]
907
1117
 
1118
+ [[package]]
1119
+ name = "prometheus-client"
1120
+ version = "0.23.1"
1121
+ source = { registry = "https://pypi.org/simple" }
1122
+ sdist = { url = "https://files.pythonhosted.org/packages/23/53/3edb5d68ecf6b38fcbcc1ad28391117d2a322d9a1a3eff04bfdb184d8c3b/prometheus_client-0.23.1.tar.gz", hash = "sha256:6ae8f9081eaaaf153a2e959d2e6c4f4fb57b12ef76c8c7980202f1e57b48b2ce", size = 80481, upload-time = "2025-09-18T20:47:25.043Z" }
1123
+ wheels = [
1124
+ { url = "https://files.pythonhosted.org/packages/b8/db/14bafcb4af2139e046d03fd00dea7873e48eafe18b7d2797e73d6681f210/prometheus_client-0.23.1-py3-none-any.whl", hash = "sha256:dd1913e6e76b59cfe44e7a4b83e01afc9873c1bdfd2ed8739f1e76aeca115f99", size = 61145, upload-time = "2025-09-18T20:47:23.875Z" },
1125
+ ]
1126
+
908
1127
  [[package]]
909
1128
  name = "py-key-value-aio"
910
1129
  version = "0.3.0"
@@ -923,9 +1142,15 @@ disk = [
923
1142
  { name = "diskcache" },
924
1143
  { name = "pathvalidate" },
925
1144
  ]
1145
+ keyring = [
1146
+ { name = "keyring" },
1147
+ ]
926
1148
  memory = [
927
1149
  { name = "cachetools" },
928
1150
  ]
1151
+ redis = [
1152
+ { name = "redis" },
1153
+ ]
929
1154
 
930
1155
  [[package]]
931
1156
  name = "py-key-value-shared"
@@ -1072,6 +1297,29 @@ wheels = [
1072
1297
  { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" },
1073
1298
  ]
1074
1299
 
1300
+ [[package]]
1301
+ name = "pydocket"
1302
+ version = "0.15.5"
1303
+ source = { registry = "https://pypi.org/simple" }
1304
+ dependencies = [
1305
+ { name = "cloudpickle" },
1306
+ { name = "fakeredis", extra = ["lua"] },
1307
+ { name = "opentelemetry-api" },
1308
+ { name = "opentelemetry-exporter-prometheus" },
1309
+ { name = "opentelemetry-instrumentation" },
1310
+ { name = "prometheus-client" },
1311
+ { name = "py-key-value-aio", extra = ["memory", "redis"] },
1312
+ { name = "python-json-logger" },
1313
+ { name = "redis" },
1314
+ { name = "rich" },
1315
+ { name = "typer" },
1316
+ { name = "typing-extensions" },
1317
+ ]
1318
+ sdist = { url = "https://files.pythonhosted.org/packages/86/77/842e41be3cf3592b971cf42b24cae76e282294f474dc2dbf7cd6808d1b09/pydocket-0.15.5.tar.gz", hash = "sha256:b3af47702a293dd1da2e5e0f8f73f27fd3b3c95e36de72a2f71026d16908d5ba", size = 277245, upload-time = "2025-12-12T22:28:47.32Z" }
1319
+ wheels = [
1320
+ { url = "https://files.pythonhosted.org/packages/e5/c0/fdbc6e04e3369b90c6bf6567bc62871cf59e88550b94529821500dc807c1/pydocket-0.15.5-py3-none-any.whl", hash = "sha256:ad0d86c9a1bea394e875bcf8c793be2d0a7ebd1891bfe99e2e9eaf99ef0cb42e", size = 58517, upload-time = "2025-12-12T22:28:45.598Z" },
1321
+ ]
1322
+
1075
1323
  [[package]]
1076
1324
  name = "pygments"
1077
1325
  version = "2.19.2"
@@ -1171,11 +1419,20 @@ wheels = [
1171
1419
 
1172
1420
  [[package]]
1173
1421
  name = "python-dotenv"
1174
- version = "1.2.1"
1422
+ version = "1.1.1"
1175
1423
  source = { registry = "https://pypi.org/simple" }
1176
- sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" }
1424
+ sdist = { url = "https://files.pythonhosted.org/packages/f6/b0/4bc07ccd3572a2f9df7e6782f52b0c6c90dcbb803ac4a167702d7d0dfe1e/python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab", size = 41978, upload-time = "2025-06-24T04:21:07.341Z" }
1177
1425
  wheels = [
1178
- { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" },
1426
+ { url = "https://files.pythonhosted.org/packages/5f/ed/539768cf28c661b5b068d66d96a2f155c4971a5d55684a514c1a0e0dec2f/python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc", size = 20556, upload-time = "2025-06-24T04:21:06.073Z" },
1427
+ ]
1428
+
1429
+ [[package]]
1430
+ name = "python-json-logger"
1431
+ version = "4.0.0"
1432
+ source = { registry = "https://pypi.org/simple" }
1433
+ sdist = { url = "https://files.pythonhosted.org/packages/29/bf/eca6a3d43db1dae7070f70e160ab20b807627ba953663ba07928cdd3dc58/python_json_logger-4.0.0.tar.gz", hash = "sha256:f58e68eb46e1faed27e0f574a55a0455eecd7b8a5b88b85a784519ba3cff047f", size = 17683, upload-time = "2025-10-06T04:15:18.984Z" }
1434
+ wheels = [
1435
+ { url = "https://files.pythonhosted.org/packages/51/e5/fecf13f06e5e5f67e8837d777d1bc43fac0ed2b77a676804df5c34744727/python_json_logger-4.0.0-py3-none-any.whl", hash = "sha256:af09c9daf6a813aa4cc7180395f50f2a9e5fa056034c9953aec92e381c5ba1e2", size = 15548, upload-time = "2025-10-06T04:15:17.553Z" },
1179
1436
  ]
1180
1437
 
1181
1438
  [[package]]
@@ -1209,6 +1466,15 @@ wheels = [
1209
1466
  { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" },
1210
1467
  ]
1211
1468
 
1469
+ [[package]]
1470
+ name = "pywin32-ctypes"
1471
+ version = "0.2.3"
1472
+ source = { registry = "https://pypi.org/simple" }
1473
+ sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" }
1474
+ wheels = [
1475
+ { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" },
1476
+ ]
1477
+
1212
1478
  [[package]]
1213
1479
  name = "pyyaml"
1214
1480
  version = "6.0.3"
@@ -1245,6 +1511,15 @@ wheels = [
1245
1511
  { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" },
1246
1512
  ]
1247
1513
 
1514
+ [[package]]
1515
+ name = "redis"
1516
+ version = "7.1.0"
1517
+ source = { registry = "https://pypi.org/simple" }
1518
+ sdist = { url = "https://files.pythonhosted.org/packages/43/c8/983d5c6579a411d8a99bc5823cc5712768859b5ce2c8afe1a65b37832c81/redis-7.1.0.tar.gz", hash = "sha256:b1cc3cfa5a2cb9c2ab3ba700864fb0ad75617b41f01352ce5779dabf6d5f9c3c", size = 4796669, upload-time = "2025-11-19T15:54:39.961Z" }
1519
+ wheels = [
1520
+ { url = "https://files.pythonhosted.org/packages/89/f0/8956f8a86b20d7bb9d6ac0187cf4cd54d8065bc9a1a09eb8011d4d326596/redis-7.1.0-py3-none-any.whl", hash = "sha256:23c52b208f92b56103e17c5d06bdc1a6c2c0b3106583985a76a18f83b265de2b", size = 354159, upload-time = "2025-11-19T15:54:38.064Z" },
1521
+ ]
1522
+
1248
1523
  [[package]]
1249
1524
  name = "referencing"
1250
1525
  version = "0.36.2"
@@ -1391,6 +1666,28 @@ wheels = [
1391
1666
  { url = "https://files.pythonhosted.org/packages/6d/63/8b41cea3afd7f58eb64ac9251668ee0073789a3bc9ac6f816c8c6fef986d/ruff-0.14.8-py3-none-win_arm64.whl", hash = "sha256:965a582c93c63fe715fd3e3f8aa37c4b776777203d8e1d8aa3cc0c14424a4b99", size = 13634522, upload-time = "2025-12-04T15:06:43.212Z" },
1392
1667
  ]
1393
1668
 
1669
+ [[package]]
1670
+ name = "secretstorage"
1671
+ version = "3.5.0"
1672
+ source = { registry = "https://pypi.org/simple" }
1673
+ dependencies = [
1674
+ { name = "cryptography" },
1675
+ { name = "jeepney" },
1676
+ ]
1677
+ sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" }
1678
+ wheels = [
1679
+ { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload-time = "2025-11-23T19:02:51.545Z" },
1680
+ ]
1681
+
1682
+ [[package]]
1683
+ name = "shellingham"
1684
+ version = "1.5.4"
1685
+ source = { registry = "https://pypi.org/simple" }
1686
+ sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" }
1687
+ wheels = [
1688
+ { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" },
1689
+ ]
1690
+
1394
1691
  [[package]]
1395
1692
  name = "six"
1396
1693
  version = "1.17.0"
@@ -1400,6 +1697,15 @@ wheels = [
1400
1697
  { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" },
1401
1698
  ]
1402
1699
 
1700
+ [[package]]
1701
+ name = "sortedcontainers"
1702
+ version = "2.4.0"
1703
+ source = { registry = "https://pypi.org/simple" }
1704
+ sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" }
1705
+ wheels = [
1706
+ { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" },
1707
+ ]
1708
+
1403
1709
  [[package]]
1404
1710
  name = "sse-starlette"
1405
1711
  version = "3.0.3"
@@ -1424,6 +1730,30 @@ wheels = [
1424
1730
  { url = "https://files.pythonhosted.org/packages/d9/52/1064f510b141bd54025f9b55105e26d1fa970b9be67ad766380a3c9b74b0/starlette-0.50.0-py3-none-any.whl", hash = "sha256:9e5391843ec9b6e472eed1365a78c8098cfceb7a74bfd4d6b1c0c0095efb3bca", size = 74033, upload-time = "2025-11-01T15:25:25.461Z" },
1425
1731
  ]
1426
1732
 
1733
+ [[package]]
1734
+ name = "truststore"
1735
+ version = "0.10.4"
1736
+ source = { registry = "https://pypi.org/simple" }
1737
+ sdist = { url = "https://files.pythonhosted.org/packages/53/a3/1585216310e344e8102c22482f6060c7a6ea0322b63e026372e6dcefcfd6/truststore-0.10.4.tar.gz", hash = "sha256:9d91bd436463ad5e4ee4aba766628dd6cd7010cf3e2461756b3303710eebc301", size = 26169, upload-time = "2025-08-12T18:49:02.73Z" }
1738
+ wheels = [
1739
+ { url = "https://files.pythonhosted.org/packages/19/97/56608b2249fe206a67cd573bc93cd9896e1efb9e98bce9c163bcdc704b88/truststore-0.10.4-py3-none-any.whl", hash = "sha256:adaeaecf1cbb5f4de3b1959b42d41f6fab57b2b1666adb59e89cb0b53361d981", size = 18660, upload-time = "2025-08-12T18:49:01.46Z" },
1740
+ ]
1741
+
1742
+ [[package]]
1743
+ name = "typer"
1744
+ version = "0.20.0"
1745
+ source = { registry = "https://pypi.org/simple" }
1746
+ dependencies = [
1747
+ { name = "click" },
1748
+ { name = "rich" },
1749
+ { name = "shellingham" },
1750
+ { name = "typing-extensions" },
1751
+ ]
1752
+ sdist = { url = "https://files.pythonhosted.org/packages/8f/28/7c85c8032b91dbe79725b6f17d2fffc595dff06a35c7a30a37bef73a1ab4/typer-0.20.0.tar.gz", hash = "sha256:1aaf6494031793e4876fb0bacfa6a912b551cf43c1e63c800df8b1a866720c37", size = 106492, upload-time = "2025-10-20T17:03:49.445Z" }
1753
+ wheels = [
1754
+ { url = "https://files.pythonhosted.org/packages/78/64/7713ffe4b5983314e9d436a90d5bd4f63b6054e2aca783a3cfc44cb95bbf/typer-0.20.0-py3-none-any.whl", hash = "sha256:5b463df6793ec1dca6213a3cf4c0f03bc6e322ac5e16e13ddd622a889489784a", size = 47028, upload-time = "2025-10-20T17:03:47.617Z" },
1755
+ ]
1756
+
1427
1757
  [[package]]
1428
1758
  name = "typing-extensions"
1429
1759
  version = "4.15.0"
@@ -1510,6 +1840,54 @@ wheels = [
1510
1840
  { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743, upload-time = "2025-03-05T20:03:39.41Z" },
1511
1841
  ]
1512
1842
 
1843
+ [[package]]
1844
+ name = "wrapt"
1845
+ version = "1.17.3"
1846
+ source = { registry = "https://pypi.org/simple" }
1847
+ sdist = { url = "https://files.pythonhosted.org/packages/95/8f/aeb76c5b46e273670962298c23e7ddde79916cb74db802131d49a85e4b7d/wrapt-1.17.3.tar.gz", hash = "sha256:f66eb08feaa410fe4eebd17f2a2c8e2e46d3476e9f8c783daa8e09e0faa666d0", size = 55547, upload-time = "2025-08-12T05:53:21.714Z" }
1848
+ wheels = [
1849
+ { url = "https://files.pythonhosted.org/packages/fc/f6/759ece88472157acb55fc195e5b116e06730f1b651b5b314c66291729193/wrapt-1.17.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a47681378a0439215912ef542c45a783484d4dd82bac412b71e59cf9c0e1cea0", size = 54003, upload-time = "2025-08-12T05:51:48.627Z" },
1850
+ { url = "https://files.pythonhosted.org/packages/4f/a9/49940b9dc6d47027dc850c116d79b4155f15c08547d04db0f07121499347/wrapt-1.17.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:54a30837587c6ee3cd1a4d1c2ec5d24e77984d44e2f34547e2323ddb4e22eb77", size = 39025, upload-time = "2025-08-12T05:51:37.156Z" },
1851
+ { url = "https://files.pythonhosted.org/packages/45/35/6a08de0f2c96dcdd7fe464d7420ddb9a7655a6561150e5fc4da9356aeaab/wrapt-1.17.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:16ecf15d6af39246fe33e507105d67e4b81d8f8d2c6598ff7e3ca1b8a37213f7", size = 39108, upload-time = "2025-08-12T05:51:58.425Z" },
1852
+ { url = "https://files.pythonhosted.org/packages/0c/37/6faf15cfa41bf1f3dba80cd3f5ccc6622dfccb660ab26ed79f0178c7497f/wrapt-1.17.3-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:6fd1ad24dc235e4ab88cda009e19bf347aabb975e44fd5c2fb22a3f6e4141277", size = 88072, upload-time = "2025-08-12T05:52:37.53Z" },
1853
+ { url = "https://files.pythonhosted.org/packages/78/f2/efe19ada4a38e4e15b6dff39c3e3f3f73f5decf901f66e6f72fe79623a06/wrapt-1.17.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ed61b7c2d49cee3c027372df5809a59d60cf1b6c2f81ee980a091f3afed6a2d", size = 88214, upload-time = "2025-08-12T05:52:15.886Z" },
1854
+ { url = "https://files.pythonhosted.org/packages/40/90/ca86701e9de1622b16e09689fc24b76f69b06bb0150990f6f4e8b0eeb576/wrapt-1.17.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:423ed5420ad5f5529db9ce89eac09c8a2f97da18eb1c870237e84c5a5c2d60aa", size = 87105, upload-time = "2025-08-12T05:52:17.914Z" },
1855
+ { url = "https://files.pythonhosted.org/packages/fd/e0/d10bd257c9a3e15cbf5523025252cc14d77468e8ed644aafb2d6f54cb95d/wrapt-1.17.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e01375f275f010fcbf7f643b4279896d04e571889b8a5b3f848423d91bf07050", size = 87766, upload-time = "2025-08-12T05:52:39.243Z" },
1856
+ { url = "https://files.pythonhosted.org/packages/e8/cf/7d848740203c7b4b27eb55dbfede11aca974a51c3d894f6cc4b865f42f58/wrapt-1.17.3-cp313-cp313-win32.whl", hash = "sha256:53e5e39ff71b3fc484df8a522c933ea2b7cdd0d5d15ae82e5b23fde87d44cbd8", size = 36711, upload-time = "2025-08-12T05:53:10.074Z" },
1857
+ { url = "https://files.pythonhosted.org/packages/57/54/35a84d0a4d23ea675994104e667ceff49227ce473ba6a59ba2c84f250b74/wrapt-1.17.3-cp313-cp313-win_amd64.whl", hash = "sha256:1f0b2f40cf341ee8cc1a97d51ff50dddb9fcc73241b9143ec74b30fc4f44f6cb", size = 38885, upload-time = "2025-08-12T05:53:08.695Z" },
1858
+ { url = "https://files.pythonhosted.org/packages/01/77/66e54407c59d7b02a3c4e0af3783168fff8e5d61def52cda8728439d86bc/wrapt-1.17.3-cp313-cp313-win_arm64.whl", hash = "sha256:7425ac3c54430f5fc5e7b6f41d41e704db073309acfc09305816bc6a0b26bb16", size = 36896, upload-time = "2025-08-12T05:52:55.34Z" },
1859
+ { url = "https://files.pythonhosted.org/packages/02/a2/cd864b2a14f20d14f4c496fab97802001560f9f41554eef6df201cd7f76c/wrapt-1.17.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cf30f6e3c077c8e6a9a7809c94551203c8843e74ba0c960f4a98cd80d4665d39", size = 54132, upload-time = "2025-08-12T05:51:49.864Z" },
1860
+ { url = "https://files.pythonhosted.org/packages/d5/46/d011725b0c89e853dc44cceb738a307cde5d240d023d6d40a82d1b4e1182/wrapt-1.17.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:e228514a06843cae89621384cfe3a80418f3c04aadf8a3b14e46a7be704e4235", size = 39091, upload-time = "2025-08-12T05:51:38.935Z" },
1861
+ { url = "https://files.pythonhosted.org/packages/2e/9e/3ad852d77c35aae7ddebdbc3b6d35ec8013af7d7dddad0ad911f3d891dae/wrapt-1.17.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:5ea5eb3c0c071862997d6f3e02af1d055f381b1d25b286b9d6644b79db77657c", size = 39172, upload-time = "2025-08-12T05:51:59.365Z" },
1862
+ { url = "https://files.pythonhosted.org/packages/c3/f7/c983d2762bcce2326c317c26a6a1e7016f7eb039c27cdf5c4e30f4160f31/wrapt-1.17.3-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:281262213373b6d5e4bb4353bc36d1ba4084e6d6b5d242863721ef2bf2c2930b", size = 87163, upload-time = "2025-08-12T05:52:40.965Z" },
1863
+ { url = "https://files.pythonhosted.org/packages/e4/0f/f673f75d489c7f22d17fe0193e84b41540d962f75fce579cf6873167c29b/wrapt-1.17.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc4a8d2b25efb6681ecacad42fca8859f88092d8732b170de6a5dddd80a1c8fa", size = 87963, upload-time = "2025-08-12T05:52:20.326Z" },
1864
+ { url = "https://files.pythonhosted.org/packages/df/61/515ad6caca68995da2fac7a6af97faab8f78ebe3bf4f761e1b77efbc47b5/wrapt-1.17.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:373342dd05b1d07d752cecbec0c41817231f29f3a89aa8b8843f7b95992ed0c7", size = 86945, upload-time = "2025-08-12T05:52:21.581Z" },
1865
+ { url = "https://files.pythonhosted.org/packages/d3/bd/4e70162ce398462a467bc09e768bee112f1412e563620adc353de9055d33/wrapt-1.17.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d40770d7c0fd5cbed9d84b2c3f2e156431a12c9a37dc6284060fb4bec0b7ffd4", size = 86857, upload-time = "2025-08-12T05:52:43.043Z" },
1866
+ { url = "https://files.pythonhosted.org/packages/2b/b8/da8560695e9284810b8d3df8a19396a6e40e7518059584a1a394a2b35e0a/wrapt-1.17.3-cp314-cp314-win32.whl", hash = "sha256:fbd3c8319de8e1dc79d346929cd71d523622da527cca14e0c1d257e31c2b8b10", size = 37178, upload-time = "2025-08-12T05:53:12.605Z" },
1867
+ { url = "https://files.pythonhosted.org/packages/db/c8/b71eeb192c440d67a5a0449aaee2310a1a1e8eca41676046f99ed2487e9f/wrapt-1.17.3-cp314-cp314-win_amd64.whl", hash = "sha256:e1a4120ae5705f673727d3253de3ed0e016f7cd78dc463db1b31e2463e1f3cf6", size = 39310, upload-time = "2025-08-12T05:53:11.106Z" },
1868
+ { url = "https://files.pythonhosted.org/packages/45/20/2cda20fd4865fa40f86f6c46ed37a2a8356a7a2fde0773269311f2af56c7/wrapt-1.17.3-cp314-cp314-win_arm64.whl", hash = "sha256:507553480670cab08a800b9463bdb881b2edeed77dc677b0a5915e6106e91a58", size = 37266, upload-time = "2025-08-12T05:52:56.531Z" },
1869
+ { url = "https://files.pythonhosted.org/packages/77/ed/dd5cf21aec36c80443c6f900449260b80e2a65cf963668eaef3b9accce36/wrapt-1.17.3-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:ed7c635ae45cfbc1a7371f708727bf74690daedc49b4dba310590ca0bd28aa8a", size = 56544, upload-time = "2025-08-12T05:51:51.109Z" },
1870
+ { url = "https://files.pythonhosted.org/packages/8d/96/450c651cc753877ad100c7949ab4d2e2ecc4d97157e00fa8f45df682456a/wrapt-1.17.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:249f88ed15503f6492a71f01442abddd73856a0032ae860de6d75ca62eed8067", size = 40283, upload-time = "2025-08-12T05:51:39.912Z" },
1871
+ { url = "https://files.pythonhosted.org/packages/d1/86/2fcad95994d9b572db57632acb6f900695a648c3e063f2cd344b3f5c5a37/wrapt-1.17.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a03a38adec8066d5a37bea22f2ba6bbf39fcdefbe2d91419ab864c3fb515454", size = 40366, upload-time = "2025-08-12T05:52:00.693Z" },
1872
+ { url = "https://files.pythonhosted.org/packages/64/0e/f4472f2fdde2d4617975144311f8800ef73677a159be7fe61fa50997d6c0/wrapt-1.17.3-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5d4478d72eb61c36e5b446e375bbc49ed002430d17cdec3cecb36993398e1a9e", size = 108571, upload-time = "2025-08-12T05:52:44.521Z" },
1873
+ { url = "https://files.pythonhosted.org/packages/cc/01/9b85a99996b0a97c8a17484684f206cbb6ba73c1ce6890ac668bcf3838fb/wrapt-1.17.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:223db574bb38637e8230eb14b185565023ab624474df94d2af18f1cdb625216f", size = 113094, upload-time = "2025-08-12T05:52:22.618Z" },
1874
+ { url = "https://files.pythonhosted.org/packages/25/02/78926c1efddcc7b3aa0bc3d6b33a822f7d898059f7cd9ace8c8318e559ef/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e405adefb53a435f01efa7ccdec012c016b5a1d3f35459990afc39b6be4d5056", size = 110659, upload-time = "2025-08-12T05:52:24.057Z" },
1875
+ { url = "https://files.pythonhosted.org/packages/dc/ee/c414501ad518ac3e6fe184753632fe5e5ecacdcf0effc23f31c1e4f7bfcf/wrapt-1.17.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:88547535b787a6c9ce4086917b6e1d291aa8ed914fdd3a838b3539dc95c12804", size = 106946, upload-time = "2025-08-12T05:52:45.976Z" },
1876
+ { url = "https://files.pythonhosted.org/packages/be/44/a1bd64b723d13bb151d6cc91b986146a1952385e0392a78567e12149c7b4/wrapt-1.17.3-cp314-cp314t-win32.whl", hash = "sha256:41b1d2bc74c2cac6f9074df52b2efbef2b30bdfe5f40cb78f8ca22963bc62977", size = 38717, upload-time = "2025-08-12T05:53:15.214Z" },
1877
+ { url = "https://files.pythonhosted.org/packages/79/d9/7cfd5a312760ac4dd8bf0184a6ee9e43c33e47f3dadc303032ce012b8fa3/wrapt-1.17.3-cp314-cp314t-win_amd64.whl", hash = "sha256:73d496de46cd2cdbdbcce4ae4bcdb4afb6a11234a1df9c085249d55166b95116", size = 41334, upload-time = "2025-08-12T05:53:14.178Z" },
1878
+ { url = "https://files.pythonhosted.org/packages/46/78/10ad9781128ed2f99dbc474f43283b13fea8ba58723e98844367531c18e9/wrapt-1.17.3-cp314-cp314t-win_arm64.whl", hash = "sha256:f38e60678850c42461d4202739f9bf1e3a737c7ad283638251e79cc49effb6b6", size = 38471, upload-time = "2025-08-12T05:52:57.784Z" },
1879
+ { url = "https://files.pythonhosted.org/packages/1f/f6/a933bd70f98e9cf3e08167fc5cd7aaaca49147e48411c0bd5ae701bb2194/wrapt-1.17.3-py3-none-any.whl", hash = "sha256:7171ae35d2c33d326ac19dd8facb1e82e5fd04ef8c6c0e394d7af55a55051c22", size = 23591, upload-time = "2025-08-12T05:53:20.674Z" },
1880
+ ]
1881
+
1882
+ [[package]]
1883
+ name = "zipp"
1884
+ version = "3.23.0"
1885
+ source = { registry = "https://pypi.org/simple" }
1886
+ sdist = { url = "https://files.pythonhosted.org/packages/e3/02/0f2892c661036d50ede074e376733dca2ae7c6eb617489437771209d4180/zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166", size = 25547, upload-time = "2025-06-08T17:06:39.4Z" }
1887
+ wheels = [
1888
+ { url = "https://files.pythonhosted.org/packages/2e/54/647ade08bf0db230bfea292f893923872fd20be6ac6f53b2b936ba839d75/zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e", size = 10276, upload-time = "2025-06-08T17:06:38.034Z" },
1889
+ ]
1890
+
1513
1891
  [[package]]
1514
1892
  name = "zstandard"
1515
1893
  version = "0.25.0"
@@ -1,6 +0,0 @@
1
- from .log import JsonFormatter, setup_logging
2
-
3
- __all__ = [
4
- "setup_logging",
5
- "JsonFormatter",
6
- ]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes