mountaineer-cloud 0.1.2__tar.gz → 0.2.0.dev1__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 (67) hide show
  1. mountaineer_cloud-0.2.0.dev1/.dockerignore +22 -0
  2. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/PKG-INFO +2 -1
  3. mountaineer_cloud-0.2.0.dev1/mountaineer_cloud/__tests__/test_mountaineer_integration.py +42 -0
  4. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/pyproject.toml +3 -3
  5. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/uv.lock +68 -59
  6. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/.github/scripts/update_version.py +0 -0
  7. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/.github/workflows/test.yml +0 -0
  8. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/.gitignore +0 -0
  9. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/Makefile +0 -0
  10. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/README.md +0 -0
  11. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/docs/Email.md +0 -0
  12. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/docs/ses_prod.png +0 -0
  13. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__init__.py +0 -0
  14. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/__init__.py +0 -0
  15. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/conftest.py +0 -0
  16. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/dependencies/__init__.py +0 -0
  17. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/dependencies/test_core.py +0 -0
  18. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/test_email.py +0 -0
  19. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/aws/test_s3.py +0 -0
  20. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/cloudflare/__init__.py +0 -0
  21. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/cloudflare/dependencies/__init__.py +0 -0
  22. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/cloudflare/dependencies/test_core.py +0 -0
  23. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/digitalocean/__init__.py +0 -0
  24. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/digitalocean/dependencies/__init__.py +0 -0
  25. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/digitalocean/dependencies/test_core.py +0 -0
  26. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/providers/__init__.py +0 -0
  27. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/providers/test_definition.py +0 -0
  28. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/resend/__init__.py +0 -0
  29. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/resend/dependencies/__init__.py +0 -0
  30. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/resend/dependencies/test_core.py +0 -0
  31. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/resend/test_email.py +0 -0
  32. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/test_utilities/__init__.py +0 -0
  33. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/__tests__/test_utilities/test_mock_aws.py +0 -0
  34. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/logging.py +0 -0
  35. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/mixin.py +0 -0
  36. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/primitives/__init__.py +0 -0
  37. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/primitives/base.py +0 -0
  38. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/primitives/email.py +0 -0
  39. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/primitives/storage.py +0 -0
  40. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/__init__.py +0 -0
  41. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/aws/__init__.py +0 -0
  42. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/aws/config.py +0 -0
  43. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/aws/core.py +0 -0
  44. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/aws/dependencies.py +0 -0
  45. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/base.py +0 -0
  46. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/cloudflare/__init__.py +0 -0
  47. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/cloudflare/config.py +0 -0
  48. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/cloudflare/core.py +0 -0
  49. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/cloudflare/dependencies.py +0 -0
  50. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/definition.py +0 -0
  51. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/digitalocean/__init__.py +0 -0
  52. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/digitalocean/config.py +0 -0
  53. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/digitalocean/core.py +0 -0
  54. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/digitalocean/dependencies.py +0 -0
  55. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/resend/__init__.py +0 -0
  56. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/resend/config.py +0 -0
  57. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/resend/core.py +0 -0
  58. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers/resend/dependencies.py +0 -0
  59. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers_common/__init__.py +0 -0
  60. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers_common/email.py +0 -0
  61. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers_common/s3_compat.py +0 -0
  62. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/providers_common/storage.py +0 -0
  63. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/py.typed +0 -0
  64. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/test_utilities/__init__.py +0 -0
  65. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/test_utilities/fixtures.py +0 -0
  66. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/test_utilities/mock_aws.py +0 -0
  67. {mountaineer_cloud-0.1.2 → mountaineer_cloud-0.2.0.dev1}/mountaineer_cloud/typing.py +0 -0
@@ -0,0 +1,22 @@
1
+ .git
2
+ .gitignore
3
+ .venv
4
+ **/.venv
5
+ __pycache__
6
+ **/__pycache__
7
+ *.pyc
8
+ *.pyo
9
+ .mypy_cache
10
+ .pytest_cache
11
+ .ruff_cache
12
+ **/.mypy_cache
13
+ **/.pytest_cache
14
+ **/.ruff_cache
15
+ .DS_Store
16
+ **/.DS_Store
17
+ dist
18
+ build
19
+ *.egg-info
20
+ **/*.egg-info
21
+ node_modules
22
+ **/node_modules
@@ -1,10 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mountaineer-cloud
3
- Version: 0.1.2
3
+ Version: 0.2.0.dev1
4
4
  Author-email: Pierce Freeman <pierce@freeman.vc>
5
5
  Requires-Python: >=3.11
6
6
  Requires-Dist: aioboto3>=14.0.0
7
7
  Requires-Dist: httpx>=0.28.1
8
+ Requires-Dist: mountaineer>=0.20.0.dev1
8
9
  Requires-Dist: pydantic-settings>=2.2.1
9
10
  Provides-Extra: mocks
10
11
  Requires-Dist: moto[all,server]>=5.0.0; extra == 'mocks'
@@ -0,0 +1,42 @@
1
+ from pathlib import Path
2
+
3
+ from fastapi.testclient import TestClient
4
+
5
+ from mountaineer import AppController, ConfigBase, Depends
6
+ from mountaineer.config import unregister_config
7
+
8
+ from mountaineer_cloud.providers.resend import (
9
+ ResendConfig,
10
+ ResendCore,
11
+ ResendDependencies,
12
+ )
13
+
14
+
15
+ class AppConfig(ConfigBase, ResendConfig):
16
+ pass
17
+
18
+
19
+ def test_resend_component_boots_with_mountaineer(tmp_path: Path) -> None:
20
+ unregister_config()
21
+ component = AppController(
22
+ view_root=tmp_path,
23
+ config=AppConfig(
24
+ RESEND_API_KEY="re_test_key",
25
+ RESEND_BASE_URL="https://api.resend.test",
26
+ ),
27
+ )
28
+
29
+ @component.app.get("/cloud")
30
+ async def cloud(
31
+ resend: ResendCore = Depends(ResendDependencies.get_resend_core),
32
+ ) -> dict[str, str]:
33
+ return {"base_url": str(resend.session.base_url)}
34
+
35
+ try:
36
+ with TestClient(component.app) as client:
37
+ response = client.get("/cloud")
38
+ finally:
39
+ unregister_config()
40
+
41
+ assert response.status_code == 200
42
+ assert response.json() == {"base_url": "https://api.resend.test"}
@@ -1,10 +1,10 @@
1
1
  [project]
2
2
  name = "mountaineer-cloud"
3
- version = "0.1.2"
3
+ version = "0.2.0.dev1"
4
4
  description = ""
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
7
- dependencies = [ "pydantic-settings>=2.2.1", "aioboto3>=14.0.0", "httpx>=0.28.1",]
7
+ dependencies = [ "pydantic-settings>=2.2.1", "aioboto3>=14.0.0", "httpx>=0.28.1", "mountaineer>=0.20.0.dev1",]
8
8
  [[project.authors]]
9
9
  name = "Pierce Freeman"
10
10
  email = "pierce@freeman.vc"
@@ -14,7 +14,7 @@ requires = [ "hatchling",]
14
14
  build-backend = "hatchling.build"
15
15
 
16
16
  [dependency-groups]
17
- dev = [ "ruff>=0.3.1", "ty>=0.0.22", "pytest>=8.0.2", "pytest-asyncio>=0.23.5.post1", "types-aioboto3[full]>=12.3.0", "moto[all,server]>=5.0.0", "brotli>=1.1.0", "mountaineer>=0.10.0.dev2", "iceaxe>=0.10.0",]
17
+ dev = [ "ruff>=0.3.1", "ty>=0.0.22", "pytest>=8.0.2", "pytest-asyncio>=0.23.5.post1", "types-aioboto3[full]>=12.3.0", "moto[all,server]>=5.0.0", "brotli>=1.1.0", "iceaxe>=0.10.0",]
18
18
 
19
19
  [project.optional-dependencies]
20
20
  mocks = [ "moto[all,server]>=5.0.0", "types-aiobotocore[full]>=2.20.0",]
@@ -566,20 +566,6 @@ wheels = [
566
566
  { url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814, upload-time = "2025-01-30T14:06:38.564Z" },
567
567
  ]
568
568
 
569
- [[package]]
570
- name = "firehot"
571
- version = "0.4.0"
572
- source = { registry = "https://pypi.org/simple" }
573
- sdist = { url = "https://files.pythonhosted.org/packages/9a/b3/20838615f249478762d48dccd3243f4ea9087e298fb6ca4cdad5bac94dee/firehot-0.4.0.tar.gz", hash = "sha256:bf0d47c5cbcae7bd8c72356cfddf4b7a45bc79dda5147fe139a794a6a5ac8196", size = 16310256, upload-time = "2025-03-15T04:31:21.212Z" }
574
- wheels = [
575
- { url = "https://files.pythonhosted.org/packages/9b/2d/413d5487ab84eadcd78de4fccab55cca2c84b332fb21951493f79731491b/firehot-0.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0f18ac687f9fa2c2567b7802ac462d10d20319cc267e0293c4d0e2046f3a799", size = 1940053, upload-time = "2025-03-15T04:31:11.213Z" },
576
- { url = "https://files.pythonhosted.org/packages/70/8a/963496e493f3bc7a1b0d3c5b25cec1589da0bbaf3038facd6fa613cdd0c1/firehot-0.4.0-cp311-cp311-manylinux_2_39_x86_64.whl", hash = "sha256:24161e10609545e09fd1b741c24eaad75ef9310d0ecc91116cb5e4c0bbea8db7", size = 2191203, upload-time = "2025-03-15T04:31:13.531Z" },
577
- { url = "https://files.pythonhosted.org/packages/22/45/4624f2d6bf157eeef0edd378ab1043972584e4743a154ccd9660c6ea81e3/firehot-0.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:97880744de074a4b6378737fdd8116064f5548f3cd449a533f17a3125a3ec45a", size = 1940863, upload-time = "2025-03-15T04:31:14.79Z" },
578
- { url = "https://files.pythonhosted.org/packages/ab/48/d1d05cb4ab0baeedf768b03c3eabee075a24d180a22f3cee30e0a0935b27/firehot-0.4.0-cp312-cp312-manylinux_2_39_x86_64.whl", hash = "sha256:43e9faa68c25898a266c9753154efc2292130ca5f71f025d772cd779f58840c9", size = 2189068, upload-time = "2025-03-15T04:31:16.533Z" },
579
- { url = "https://files.pythonhosted.org/packages/4e/d9/d9f38515e5670197eeee7c903d6df625889b4b0429f29a135c1f5ab1c6ac/firehot-0.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:293b05f142af9a370ed416c9aa6d7082165c57f11ad88c75f607a9328d7203f3", size = 1940859, upload-time = "2025-03-15T04:31:17.895Z" },
580
- { url = "https://files.pythonhosted.org/packages/22/60/1beaf8bd296f9b17bfdc008f15979b6c7b8be752ddc9f156c399de6d9f75/firehot-0.4.0-cp313-cp313-manylinux_2_39_x86_64.whl", hash = "sha256:f5b422279c650b92c2e717c5467840c829c11dc78dc33b1015a7724ed85fbbff", size = 2189068, upload-time = "2025-03-15T04:31:19.268Z" },
581
- ]
582
-
583
569
  [[package]]
584
570
  name = "flask"
585
571
  version = "3.1.0"
@@ -696,31 +682,45 @@ wheels = [
696
682
 
697
683
  [[package]]
698
684
  name = "httptools"
699
- version = "0.6.4"
700
- source = { registry = "https://pypi.org/simple" }
701
- sdist = { url = "https://files.pythonhosted.org/packages/a7/9a/ce5e1f7e131522e6d3426e8e7a490b3a01f39a6696602e1c4f33f9e94277/httptools-0.6.4.tar.gz", hash = "sha256:4e93eee4add6493b59a5c514da98c939b244fce4a0d8879cd3f466562f4b7d5c", size = 240639, upload-time = "2024-10-16T19:45:08.902Z" }
702
- wheels = [
703
- { url = "https://files.pythonhosted.org/packages/7b/26/bb526d4d14c2774fe07113ca1db7255737ffbb119315839af2065abfdac3/httptools-0.6.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f47f8ed67cc0ff862b84a1189831d1d33c963fb3ce1ee0c65d3b0cbe7b711069", size = 199029, upload-time = "2024-10-16T19:44:18.427Z" },
704
- { url = "https://files.pythonhosted.org/packages/a6/17/3e0d3e9b901c732987a45f4f94d4e2c62b89a041d93db89eafb262afd8d5/httptools-0.6.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0614154d5454c21b6410fdf5262b4a3ddb0f53f1e1721cfd59d55f32138c578a", size = 103492, upload-time = "2024-10-16T19:44:19.515Z" },
705
- { url = "https://files.pythonhosted.org/packages/b7/24/0fe235d7b69c42423c7698d086d4db96475f9b50b6ad26a718ef27a0bce6/httptools-0.6.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8787367fbdfccae38e35abf7641dafc5310310a5987b689f4c32cc8cc3ee975", size = 462891, upload-time = "2024-10-16T19:44:21.067Z" },
706
- { url = "https://files.pythonhosted.org/packages/b1/2f/205d1f2a190b72da6ffb5f41a3736c26d6fa7871101212b15e9b5cd8f61d/httptools-0.6.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40b0f7fe4fd38e6a507bdb751db0379df1e99120c65fbdc8ee6c1d044897a636", size = 459788, upload-time = "2024-10-16T19:44:22.958Z" },
707
- { url = "https://files.pythonhosted.org/packages/6e/4c/d09ce0eff09057a206a74575ae8f1e1e2f0364d20e2442224f9e6612c8b9/httptools-0.6.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:40a5ec98d3f49904b9fe36827dcf1aadfef3b89e2bd05b0e35e94f97c2b14721", size = 433214, upload-time = "2024-10-16T19:44:24.513Z" },
708
- { url = "https://files.pythonhosted.org/packages/3e/d2/84c9e23edbccc4a4c6f96a1b8d99dfd2350289e94f00e9ccc7aadde26fb5/httptools-0.6.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:dacdd3d10ea1b4ca9df97a0a303cbacafc04b5cd375fa98732678151643d4988", size = 434120, upload-time = "2024-10-16T19:44:26.295Z" },
709
- { url = "https://files.pythonhosted.org/packages/d0/46/4d8e7ba9581416de1c425b8264e2cadd201eb709ec1584c381f3e98f51c1/httptools-0.6.4-cp311-cp311-win_amd64.whl", hash = "sha256:288cd628406cc53f9a541cfaf06041b4c71d751856bab45e3702191f931ccd17", size = 88565, upload-time = "2024-10-16T19:44:29.188Z" },
710
- { url = "https://files.pythonhosted.org/packages/bb/0e/d0b71465c66b9185f90a091ab36389a7352985fe857e352801c39d6127c8/httptools-0.6.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:df017d6c780287d5c80601dafa31f17bddb170232d85c066604d8558683711a2", size = 200683, upload-time = "2024-10-16T19:44:30.175Z" },
711
- { url = "https://files.pythonhosted.org/packages/e2/b8/412a9bb28d0a8988de3296e01efa0bd62068b33856cdda47fe1b5e890954/httptools-0.6.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:85071a1e8c2d051b507161f6c3e26155b5c790e4e28d7f236422dbacc2a9cc44", size = 104337, upload-time = "2024-10-16T19:44:31.786Z" },
712
- { url = "https://files.pythonhosted.org/packages/9b/01/6fb20be3196ffdc8eeec4e653bc2a275eca7f36634c86302242c4fbb2760/httptools-0.6.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69422b7f458c5af875922cdb5bd586cc1f1033295aa9ff63ee196a87519ac8e1", size = 508796, upload-time = "2024-10-16T19:44:32.825Z" },
713
- { url = "https://files.pythonhosted.org/packages/f7/d8/b644c44acc1368938317d76ac991c9bba1166311880bcc0ac297cb9d6bd7/httptools-0.6.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:16e603a3bff50db08cd578d54f07032ca1631450ceb972c2f834c2b860c28ea2", size = 510837, upload-time = "2024-10-16T19:44:33.974Z" },
714
- { url = "https://files.pythonhosted.org/packages/52/d8/254d16a31d543073a0e57f1c329ca7378d8924e7e292eda72d0064987486/httptools-0.6.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec4f178901fa1834d4a060320d2f3abc5c9e39766953d038f1458cb885f47e81", size = 485289, upload-time = "2024-10-16T19:44:35.111Z" },
715
- { url = "https://files.pythonhosted.org/packages/5f/3c/4aee161b4b7a971660b8be71a92c24d6c64372c1ab3ae7f366b3680df20f/httptools-0.6.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb89ecf8b290f2e293325c646a211ff1c2493222798bb80a530c5e7502494f", size = 489779, upload-time = "2024-10-16T19:44:36.253Z" },
716
- { url = "https://files.pythonhosted.org/packages/12/b7/5cae71a8868e555f3f67a50ee7f673ce36eac970f029c0c5e9d584352961/httptools-0.6.4-cp312-cp312-win_amd64.whl", hash = "sha256:db78cb9ca56b59b016e64b6031eda5653be0589dba2b1b43453f6e8b405a0970", size = 88634, upload-time = "2024-10-16T19:44:37.357Z" },
717
- { url = "https://files.pythonhosted.org/packages/94/a3/9fe9ad23fd35f7de6b91eeb60848986058bd8b5a5c1e256f5860a160cc3e/httptools-0.6.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ade273d7e767d5fae13fa637f4d53b6e961fb7fd93c7797562663f0171c26660", size = 197214, upload-time = "2024-10-16T19:44:38.738Z" },
718
- { url = "https://files.pythonhosted.org/packages/ea/d9/82d5e68bab783b632023f2fa31db20bebb4e89dfc4d2293945fd68484ee4/httptools-0.6.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:856f4bc0478ae143bad54a4242fccb1f3f86a6e1be5548fecfd4102061b3a083", size = 102431, upload-time = "2024-10-16T19:44:39.818Z" },
719
- { url = "https://files.pythonhosted.org/packages/96/c1/cb499655cbdbfb57b577734fde02f6fa0bbc3fe9fb4d87b742b512908dff/httptools-0.6.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:322d20ea9cdd1fa98bd6a74b77e2ec5b818abdc3d36695ab402a0de8ef2865a3", size = 473121, upload-time = "2024-10-16T19:44:41.189Z" },
720
- { url = "https://files.pythonhosted.org/packages/af/71/ee32fd358f8a3bb199b03261f10921716990808a675d8160b5383487a317/httptools-0.6.4-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4d87b29bd4486c0093fc64dea80231f7c7f7eb4dc70ae394d70a495ab8436071", size = 473805, upload-time = "2024-10-16T19:44:42.384Z" },
721
- { url = "https://files.pythonhosted.org/packages/8a/0a/0d4df132bfca1507114198b766f1737d57580c9ad1cf93c1ff673e3387be/httptools-0.6.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:342dd6946aa6bda4b8f18c734576106b8a31f2fe31492881a9a160ec84ff4bd5", size = 448858, upload-time = "2024-10-16T19:44:43.959Z" },
722
- { url = "https://files.pythonhosted.org/packages/1e/6a/787004fdef2cabea27bad1073bf6a33f2437b4dbd3b6fb4a9d71172b1c7c/httptools-0.6.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b36913ba52008249223042dca46e69967985fb4051951f94357ea681e1f5dc0", size = 452042, upload-time = "2024-10-16T19:44:45.071Z" },
723
- { url = "https://files.pythonhosted.org/packages/4d/dc/7decab5c404d1d2cdc1bb330b1bf70e83d6af0396fd4fc76fc60c0d522bf/httptools-0.6.4-cp313-cp313-win_amd64.whl", hash = "sha256:28908df1b9bb8187393d5b5db91435ccc9c8e891657f9cbb42a2541b44c82fc8", size = 87682, upload-time = "2024-10-16T19:44:46.46Z" },
685
+ version = "0.8.0"
686
+ source = { registry = "https://pypi.org/simple" }
687
+ sdist = { url = "https://files.pythonhosted.org/packages/43/e5/d471fcb0e14523fe1c3f4ba58ca52480e7bd70ad7109a3846bc75892f7fb/httptools-0.8.0.tar.gz", hash = "sha256:6b2a32f18d97e16e90827d7a819ffa8dbd8cc245fc4e1fa9d1095b54ef4bd999", size = 271342, upload-time = "2026-05-25T22:17:48.841Z" }
688
+ wheels = [
689
+ { url = "https://files.pythonhosted.org/packages/f8/d2/c3eedaef57de65c3cc5f8dc244cf12d09c84ad258a479055aad6db23206c/httptools-0.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ed377e64805bdba4943c82717333f8f8603a13b09aff9cead2717c6c817fb168", size = 208428, upload-time = "2026-05-25T22:16:59.717Z" },
690
+ { url = "https://files.pythonhosted.org/packages/f1/94/dfe435d90d0ef61ec0f2cc3d480eef78c59727c6c2ce039f433882f6131a/httptools-0.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9518c406d7b310f05adb1a37f80acabac40504a575d7c0da6d3e365c695ac20d", size = 113366, upload-time = "2026-05-25T22:17:00.795Z" },
691
+ { url = "https://files.pythonhosted.org/packages/cc/d4/13025f1a56e615dcb331e0bbe2d9a1143212b58c263385fc5d2e558f5bac/httptools-0.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:57278e6fa0424c42a8a3e454828ab4f0aff27b40cddf9679579b98c6dce6a376", size = 464676, upload-time = "2026-05-25T22:17:02.014Z" },
692
+ { url = "https://files.pythonhosted.org/packages/bf/95/4c1c26c0b985f8a3331682d802598f14e32dc41bf7509266eb2c04ad4801/httptools-0.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbb8caadb2b742d293169d2b458b5c001ef70e3158704aa3d3ef9597624c5d1d", size = 464235, upload-time = "2026-05-25T22:17:03.109Z" },
693
+ { url = "https://files.pythonhosted.org/packages/a2/82/6735be2b0ca527718c431cdb8e5f70c3862c0844a687df0f572c51e11497/httptools-0.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:52dd695b865fe96d9d2b16b64a895f3f57bf3cb064e8383cd3b5713a069e8085", size = 449809, upload-time = "2026-05-25T22:17:04.443Z" },
694
+ { url = "https://files.pythonhosted.org/packages/b5/f9/5811c74f37a758c8a4aa3dc430375119d335947e883efc4664d8f3559a41/httptools-0.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:20b4aac66ff65f7db06a375808b78f42a94970aa22e826b3cb2b43eb09174124", size = 452174, upload-time = "2026-05-25T22:17:05.476Z" },
695
+ { url = "https://files.pythonhosted.org/packages/cc/94/97b75870dea07b71e3ec535cebe525b08d723152e4c7d13fa887e51f4de2/httptools-0.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:a1b4c8e7a489a0d750d91894e9a8cdc295838f1924c0ca903ae993456fddec07", size = 90991, upload-time = "2026-05-25T22:17:06.75Z" },
696
+ { url = "https://files.pythonhosted.org/packages/14/88/1d21a36da8f5cb0fa49eafd4b169eba5608d57e75bbcf61845cbc6243216/httptools-0.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:880490234c10f70a9830743097e8958d6e4b9f5a0ffc24515023afeef984054d", size = 208247, upload-time = "2026-05-25T22:17:07.843Z" },
697
+ { url = "https://files.pythonhosted.org/packages/a5/42/cc4feea2945cb3051038f090c9b36bd5b8a9d7f5a894a506a8983e33fd1c/httptools-0.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5931891fb7b441b8a3853cf1b85c82c903defce084dd5f6771ca46e31bf862c5", size = 113064, upload-time = "2026-05-25T22:17:09.136Z" },
698
+ { url = "https://files.pythonhosted.org/packages/e3/a6/febbb8b8db0f58b38e44ad6cb946e6a255ae49b55f2e8543408fb7501ccd/httptools-0.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b15fc622b0f869d19207c4089a501d9bcc63ca5e071ffdd2f03f922df882dcb2", size = 523851, upload-time = "2026-05-25T22:17:10.106Z" },
699
+ { url = "https://files.pythonhosted.org/packages/b7/e4/f90a0df0b83beff265b7e3b65f2a4cefd95792d4be0ac3e16049f2acd3c2/httptools-0.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:425f83884fd6343828d8c565f046cb72b6d19063f6924093e11bcd8e1548cd09", size = 518842, upload-time = "2026-05-25T22:17:11.218Z" },
700
+ { url = "https://files.pythonhosted.org/packages/9e/2d/0c9ac76dd2c893841fbf6498d6acec4f2442e1b7067f6e3e316a80e494e8/httptools-0.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ef7c3c97f4311c7be57e2986629df89d49cb434dbff78eafcd48c2bff986b15a", size = 501238, upload-time = "2026-05-25T22:17:12.728Z" },
701
+ { url = "https://files.pythonhosted.org/packages/ca/42/906adc91ae3a5fa9c59c0a2f21c139725bd7e5b41ae6acd485cd14123ebf/httptools-0.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a1afd7c9fbff0d9f5d489c4ce2768bd09c84a46ddefc7161e6aa82ae35c85745", size = 509567, upload-time = "2026-05-25T22:17:13.842Z" },
702
+ { url = "https://files.pythonhosted.org/packages/05/0b/4240efeb672751ee5b9b380cb0e3fdc050bc05f68adc7a8aefc4fcd9a69a/httptools-0.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:cd96f29b4bab1d42fa6e3d008711c75e0f79e94e06827330160e3a304227f150", size = 90918, upload-time = "2026-05-25T22:17:15.155Z" },
703
+ { url = "https://files.pythonhosted.org/packages/5e/e5/8cfcabc5546e8022f168be28bcdaa128a240a0befdd03b59d558b4f18bd6/httptools-0.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:614ceea8ea606848bece2338ac03b3ce5324bcb4be8dc7d377ed708012fa4db8", size = 205148, upload-time = "2026-05-25T22:17:16.333Z" },
704
+ { url = "https://files.pythonhosted.org/packages/2a/0e/0fb14848c19a686c8062ff9067c1a48793e3224b47bc5b201535b6036fce/httptools-0.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2d689918c15a013c65ef52d9fd495d766893ab831a2c8d89f2ac5940a5df847c", size = 111368, upload-time = "2026-05-25T22:17:17.586Z" },
705
+ { url = "https://files.pythonhosted.org/packages/2e/1b/46f1cecf06b9bbde8e4b8c88034ac7908989e5ff7a3a388ef38392949c1f/httptools-0.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:eb3028cca2fc0a6d720e52ef61d8ebb62fcbfeb1de56874546d858d3f25a26b7", size = 486447, upload-time = "2026-05-25T22:17:18.564Z" },
706
+ { url = "https://files.pythonhosted.org/packages/77/00/258bfc0837221f81d9725c45f9b948a6a6b2994a147a4fb66e85100c668f/httptools-0.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:88bdd940f2b5d487b4d032c6afa5489a7dc4694410d43de3c38c4fb3af0dc45d", size = 482448, upload-time = "2026-05-25T22:17:19.912Z" },
707
+ { url = "https://files.pythonhosted.org/packages/04/ab/d1cef3b5523f4d272a70f42a776c3169a2dddfe3a54de4b2ce4a36341528/httptools-0.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6a43c9dd399758ccc0531acb0a3c4a6c299ee893ee9400e9c893b7bdcfae0681", size = 464460, upload-time = "2026-05-25T22:17:20.882Z" },
708
+ { url = "https://files.pythonhosted.org/packages/ce/48/5d1d072442277bb2b3434e0e60690b8e8c23840ef7de8b6ea54040a536d3/httptools-0.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:0770728beb05094c809b98e814edff5fef69d26ad7d21185f2f6d5884a0ba683", size = 471312, upload-time = "2026-05-25T22:17:22.085Z" },
709
+ { url = "https://files.pythonhosted.org/packages/0d/66/b96623b27e51a68199ef4efdda0613cced9233fe3062ac74e50749c5ad37/httptools-0.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:7685df791fad561384bfb139e77fde27a1ffd93134e016f95a0db424ffbf77b1", size = 90117, upload-time = "2026-05-25T22:17:23.074Z" },
710
+ { url = "https://files.pythonhosted.org/packages/1a/12/fa3fbf5f9517b273edea2dc982aa82a8c634091e67c590792b729017bc6f/httptools-0.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:de242a49b5d18e0a8776e654e9f6bf6d89f3875a5c35b425a0e7ce940feb3fd6", size = 206183, upload-time = "2026-05-25T22:17:24.004Z" },
711
+ { url = "https://files.pythonhosted.org/packages/30/fc/5e7c4cb443370f2090a3aba0453a07384d29ff66b7435bb90e77e1037599/httptools-0.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:159e9ab5f701ccd42e555a12f1ad8ff69702910fc1c996cf2bb66e5fcb7a231b", size = 112079, upload-time = "2026-05-25T22:17:25.216Z" },
712
+ { url = "https://files.pythonhosted.org/packages/ba/53/771bd891eb0f236f32145d6a1775777ec85745f3cc983a1f23d1a3b8ddfe/httptools-0.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c4a9f1707e4823d54dfec6c33fa3697d302aed536ed352a7ebb5a061ddb869d0", size = 481596, upload-time = "2026-05-25T22:17:26.186Z" },
713
+ { url = "https://files.pythonhosted.org/packages/62/42/94e15bc68ce3d423243c45d7f1b0c7561f13844f97dc52ae23182fb65628/httptools-0.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d76ad7b951387e3632c8716a9bb03ac5b45c5f16119aa409db0459520887944e", size = 480865, upload-time = "2026-05-25T22:17:27.542Z" },
714
+ { url = "https://files.pythonhosted.org/packages/1c/7c/fe2980fc03723272e30f135b62360b075f513dfe7cc73aef36c7f04012bd/httptools-0.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a3b7387147361c3fd47a0bde763c5c91b5b4cd4dc9989b8ece84ff436c99843b", size = 463189, upload-time = "2026-05-25T22:17:28.546Z" },
715
+ { url = "https://files.pythonhosted.org/packages/15/1b/47fc5fff68acd1bfa20b4734059c9a06cadb88119dcd5258b5b0d21d91c8/httptools-0.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f256d6ce930c52ca1cb2a960b7da03548c454e7d28b06059ad41bfe789036ce0", size = 466610, upload-time = "2026-05-25T22:17:29.816Z" },
716
+ { url = "https://files.pythonhosted.org/packages/60/bd/07b13c93ffd9bec9546e0d43f8e19378dd696dbd278511406bc07371ef1f/httptools-0.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:19d1ee275bb59ba2643ba9a3a1e51cc0c788caf2b8df506368e03f56fdd08527", size = 92705, upload-time = "2026-05-25T22:17:31.133Z" },
717
+ { url = "https://files.pythonhosted.org/packages/fd/c4/121648f68ce066d7bd762d6b6d97e620847642d38d54f3d90ff11d947629/httptools-0.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:de1ed58a974e75d56560acc7e7fed01a454994429456f65209789992e41f2568", size = 215023, upload-time = "2026-05-25T22:17:32.401Z" },
718
+ { url = "https://files.pythonhosted.org/packages/b9/b0/312a062ae741ae3e8baa8c8bf20be81b2e67337b259ab4349bebc7b6142e/httptools-0.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e93c227b595c6926c1acee96891dd9da4be338cfbe82e5cd3bb9d8dd7dc4ac0b", size = 117405, upload-time = "2026-05-25T22:17:33.742Z" },
719
+ { url = "https://files.pythonhosted.org/packages/fc/37/fccd705f795386bb05bf413012fecff2a33e5aa8c2f069096de3e9fd8702/httptools-0.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2a021c3a8e65cc125390d72f59b968afca3bdcaff25bd67965e0a055a14946ca", size = 558497, upload-time = "2026-05-25T22:17:34.732Z" },
720
+ { url = "https://files.pythonhosted.org/packages/bd/39/f172e8003576de35f5ba77ff417cf0e34429d35dc014deef15afa337a72c/httptools-0.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48774d39cbb70e2b1f71f88852a3087ae1d3a1eb80482bb48c13067ab080c14f", size = 571585, upload-time = "2026-05-25T22:17:35.813Z" },
721
+ { url = "https://files.pythonhosted.org/packages/3e/b9/f5564760af99f3dbbf3f9104dc00e5da27e96cf433c6bdcf77617f70bf3f/httptools-0.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:88eead8ec8680a9f146c655bc88445a325bd7921cfd8194c7337e9467282427d", size = 543297, upload-time = "2026-05-25T22:17:37.08Z" },
722
+ { url = "https://files.pythonhosted.org/packages/99/67/8d9f2c313618e161b82f3873188e7196126da1d6e29688df40eb3997c77a/httptools-0.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c032fa028f46871ec7e1fc59fc15e8023eab3e6bbe6ece786a1611719a5d081", size = 539535, upload-time = "2026-05-25T22:17:38.032Z" },
723
+ { url = "https://files.pythonhosted.org/packages/48/63/b906c01e53f50d432c0defe43ce52764a111dc1bdd028bafbeb54dcfd008/httptools-0.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:384c17174464c8e873398b7af24f0b1f44d992c820328413951a625323155d77", size = 108209, upload-time = "2026-05-25T22:17:39.473Z" },
724
724
  ]
725
725
 
726
726
  [[package]]
@@ -1053,38 +1053,37 @@ server = [
1053
1053
 
1054
1054
  [[package]]
1055
1055
  name = "mountaineer"
1056
- version = "0.10.0.dev2"
1056
+ version = "0.20.0.dev1"
1057
1057
  source = { registry = "https://pypi.org/simple" }
1058
1058
  dependencies = [
1059
1059
  { name = "click" },
1060
1060
  { name = "fastapi" },
1061
- { name = "firehot" },
1062
1061
  { name = "inflection" },
1062
+ { name = "mountaineer-di" },
1063
1063
  { name = "mountaineer-exceptions" },
1064
1064
  { name = "packaging" },
1065
1065
  { name = "pydantic" },
1066
1066
  { name = "pydantic-settings" },
1067
1067
  { name = "rich" },
1068
1068
  { name = "uvicorn", extra = ["standard"] },
1069
- { name = "watchfiles" },
1070
- { name = "websockets" },
1071
1069
  ]
1072
- sdist = { url = "https://files.pythonhosted.org/packages/84/cc/d7183cb9af9d032a2e6f213c7676f9fb0c5718316ceddebb646b987c69b6/mountaineer-0.10.0.dev2.tar.gz", hash = "sha256:1044bad7bf98334600d602eaae543ec8c3a5be6cb8e26ef213e5756b073e36fb", size = 1558990, upload-time = "2025-05-15T13:21:54.154Z" }
1070
+ sdist = { url = "https://files.pythonhosted.org/packages/71/14/fe5839708905310577da84bea57b103b5b7e67efbcd0fa71c19ec2d03cbc/mountaineer-0.20.0.dev1.tar.gz", hash = "sha256:3f06a639a44f5667b14d2c0e4d5297047a7c21106379c1cc63ddedd39d8259f5", size = 889554, upload-time = "2026-07-31T13:30:35.961Z" }
1073
1071
  wheels = [
1074
- { url = "https://files.pythonhosted.org/packages/07/66/5d68c207b2b52c47596a068fde8d5517601086d99357bf0010899aaad63f/mountaineer-0.10.0.dev2-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d45b17f7a58db38ea4e975fac2887696f7cd89d38fd78eb28909049c517d28e9", size = 20483310, upload-time = "2025-05-15T13:21:40.061Z" },
1075
- { url = "https://files.pythonhosted.org/packages/61/01/17aa745381b4dadb4085e8d85bac57702b5a427e4a669b5a6be5fab33722/mountaineer-0.10.0.dev2-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:32abb69a9ba0c77e75e49a4010e3cbd35a7f71c8e8b2954a40f3031ee713c0ab", size = 19401430, upload-time = "2025-05-15T13:21:42.855Z" },
1076
- { url = "https://files.pythonhosted.org/packages/ac/b3/f16a7c1a42e3e24c59b8d9011e792e38a0b307d6fdc104d9264fc69572a2/mountaineer-0.10.0.dev2-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:37debc124ee18620b0b81fb14df5a4600400be34eada7a7fe782ea7243e97a57", size = 21673650, upload-time = "2025-05-15T13:21:45.216Z" },
1077
- { url = "https://files.pythonhosted.org/packages/aa/9b/c00ee543e966ef1fa6bcb11a5d706c7ef6567d6c96e339bee482bfe9744c/mountaineer-0.10.0.dev2-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c863829a066df0338e2f1a55a22fa7eb5662f1535e353835ef5acf20e8811d7d", size = 22358316, upload-time = "2025-05-15T13:21:48.407Z" },
1078
- { url = "https://files.pythonhosted.org/packages/c3/11/46a4ae9b12cbc603902bc26fae7e81aae23560ca91697c6a497cf703ae28/mountaineer-0.10.0.dev2-cp310-abi3-win_amd64.whl", hash = "sha256:d5f0faff3988c1b20e14797d5029625e641988368fab141a72841ce2de866216", size = 19070663, upload-time = "2025-05-15T13:21:51.362Z" },
1072
+ { url = "https://files.pythonhosted.org/packages/6c/0a/a719f91dbb9f3fe91d343711bd7d8d5dd0fe6440837adecbde0df2a4dd9d/mountaineer-0.20.0.dev1-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:10005e66b91aacd27c254d03a36a683d9b333891a55c137963335d4ac488fbb4", size = 17017877, upload-time = "2026-07-31T13:30:24.289Z" },
1073
+ { url = "https://files.pythonhosted.org/packages/f2/69/83b44ad6156a69a46a9cc081f8a71389d5736ec1a27020efc6e356495cf3/mountaineer-0.20.0.dev1-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:9340600b29274fd8d0de4e9f8a510e4c5b106e13b74870fffc1157c1de5e19e2", size = 16120411, upload-time = "2026-07-31T13:30:26.728Z" },
1074
+ { url = "https://files.pythonhosted.org/packages/74/f8/3fc131a4ff1aaf2982105b0283f45a8532377776806a5dee5e0a542db767/mountaineer-0.20.0.dev1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1130ac20b2459ce3c2ac7ebda99dc38380f204276720a7050f2a57e56c625e7a", size = 18342434, upload-time = "2026-07-31T13:30:28.932Z" },
1075
+ { url = "https://files.pythonhosted.org/packages/b8/f2/439a41b10db13d1b23b2b45a343f7845f7b2821b393b89230a6fbc69f04e/mountaineer-0.20.0.dev1-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f23368425fbc87183bc1182ad215b34183dcab20b4fff6b6854b195fff3501e0", size = 17912066, upload-time = "2026-07-31T13:30:31.607Z" },
1076
+ { url = "https://files.pythonhosted.org/packages/68/96/dfe4241081b5f65877a1e75e3fa2aa2a0a3478b2f29e3f210a716c54edb9/mountaineer-0.20.0.dev1-cp310-abi3-win_amd64.whl", hash = "sha256:686ea7b1cb5b8bb3cf48a69408d7cc2b7ce29a8a92cb90d731d176bbd6a35f19", size = 15787965, upload-time = "2026-07-31T13:30:33.818Z" },
1079
1077
  ]
1080
1078
 
1081
1079
  [[package]]
1082
1080
  name = "mountaineer-cloud"
1083
- version = "0.1.0"
1081
+ version = "0.1.2"
1084
1082
  source = { editable = "." }
1085
1083
  dependencies = [
1086
1084
  { name = "aioboto3" },
1087
1085
  { name = "httpx" },
1086
+ { name = "mountaineer" },
1088
1087
  { name = "pydantic-settings" },
1089
1088
  ]
1090
1089
 
@@ -1099,7 +1098,6 @@ dev = [
1099
1098
  { name = "brotli" },
1100
1099
  { name = "iceaxe" },
1101
1100
  { name = "moto", extra = ["all", "server"] },
1102
- { name = "mountaineer" },
1103
1101
  { name = "pytest" },
1104
1102
  { name = "pytest-asyncio" },
1105
1103
  { name = "ruff" },
@@ -1112,6 +1110,7 @@ requires-dist = [
1112
1110
  { name = "aioboto3", specifier = ">=14.0.0" },
1113
1111
  { name = "httpx", specifier = ">=0.28.1" },
1114
1112
  { name = "moto", extras = ["all", "server"], marker = "extra == 'mocks'", specifier = ">=5.0.0" },
1113
+ { name = "mountaineer", specifier = ">=0.20.0.dev1" },
1115
1114
  { name = "pydantic-settings", specifier = ">=2.2.1" },
1116
1115
  { name = "types-aiobotocore", extras = ["full"], marker = "extra == 'mocks'", specifier = ">=2.20.0" },
1117
1116
  ]
@@ -1122,7 +1121,6 @@ dev = [
1122
1121
  { name = "brotli", specifier = ">=1.1.0" },
1123
1122
  { name = "iceaxe", specifier = ">=0.10.0" },
1124
1123
  { name = "moto", extras = ["all", "server"], specifier = ">=5.0.0" },
1125
- { name = "mountaineer", specifier = ">=0.10.0.dev2" },
1126
1124
  { name = "pytest", specifier = ">=8.0.2" },
1127
1125
  { name = "pytest-asyncio", specifier = ">=0.23.5.post1" },
1128
1126
  { name = "ruff", specifier = ">=0.3.1" },
@@ -1130,16 +1128,28 @@ dev = [
1130
1128
  { name = "types-aioboto3", extras = ["full"], specifier = ">=12.3.0" },
1131
1129
  ]
1132
1130
 
1131
+ [[package]]
1132
+ name = "mountaineer-di"
1133
+ version = "0.2.1"
1134
+ source = { registry = "https://pypi.org/simple" }
1135
+ dependencies = [
1136
+ { name = "pydantic" },
1137
+ ]
1138
+ sdist = { url = "https://files.pythonhosted.org/packages/61/f2/9482135ed6efde1eaaa903bdd7c953df65c6c8288f5a90e9501dc0562958/mountaineer_di-0.2.1.tar.gz", hash = "sha256:56406f73b2b16209b8ac2ddf95e60404ecb4c98c281e16fbefb26359464cf6d1", size = 46279, upload-time = "2026-04-22T00:41:18.485Z" }
1139
+ wheels = [
1140
+ { url = "https://files.pythonhosted.org/packages/ef/7d/6cad2a62913c4ef88948e16b6017656630d19cc874b96f7c9ad4ef28ac37/mountaineer_di-0.2.1-py3-none-any.whl", hash = "sha256:1c9157ef878b4277106753ee9209c0c4bd31bd0761f27e127842c5eb15fdc144", size = 12500, upload-time = "2026-04-22T00:41:16.899Z" },
1141
+ ]
1142
+
1133
1143
  [[package]]
1134
1144
  name = "mountaineer-exceptions"
1135
- version = "0.0.4"
1145
+ version = "0.1.1"
1136
1146
  source = { registry = "https://pypi.org/simple" }
1137
1147
  dependencies = [
1138
1148
  { name = "pygments" },
1139
1149
  ]
1140
- sdist = { url = "https://files.pythonhosted.org/packages/26/aa/dc33d4da6777ec1529166a8b7df8ecd86e70211dcbf06c0eb92e1f2096b3/mountaineer_exceptions-0.0.4.tar.gz", hash = "sha256:864398558671020260074b9fcf1554438522940be99a4214947031f78f2fa5d6", size = 1088924, upload-time = "2025-05-15T01:18:55.715Z" }
1150
+ sdist = { url = "https://files.pythonhosted.org/packages/c7/d8/b059cf20539381ee58bdd2ded15f7f10d8b238497532d4378dab78ff7697/mountaineer_exceptions-0.1.1.tar.gz", hash = "sha256:979c783e35176264354ac42e8037c4da65781df747600790c03848ec63f0c073", size = 1004780, upload-time = "2025-05-28T18:43:41.896Z" }
1141
1151
  wheels = [
1142
- { url = "https://files.pythonhosted.org/packages/3d/51/c049cd3826ec39cd5651ad0d0d2552acaa15ce3b9cc860f9b48d184efb32/mountaineer_exceptions-0.0.4-py3-none-any.whl", hash = "sha256:2fbd93713557ad9746c7111b00d309b151465536ad40be163df6acb89cc3238d", size = 346105, upload-time = "2025-05-15T01:18:53.921Z" },
1152
+ { url = "https://files.pythonhosted.org/packages/e9/0a/02ee87ee23b51734eb596aba3d292a2db4d0820fb8c147a4a1f1e2c2e27d/mountaineer_exceptions-0.1.1-py3-none-any.whl", hash = "sha256:0e5b1b5d0b913aa170dfc1ff5d30958e08bbe60194705e042f530847b008be80", size = 264917, upload-time = "2025-05-28T18:43:40.101Z" },
1143
1153
  ]
1144
1154
 
1145
1155
  [[package]]
@@ -1941,20 +1951,19 @@ wheels = [
1941
1951
 
1942
1952
  [[package]]
1943
1953
  name = "uvicorn"
1944
- version = "0.34.0"
1954
+ version = "0.52.0"
1945
1955
  source = { registry = "https://pypi.org/simple" }
1946
1956
  dependencies = [
1947
1957
  { name = "click" },
1948
1958
  { name = "h11" },
1949
1959
  ]
1950
- sdist = { url = "https://files.pythonhosted.org/packages/4b/4d/938bd85e5bf2edeec766267a5015ad969730bb91e31b44021dfe8b22df6c/uvicorn-0.34.0.tar.gz", hash = "sha256:404051050cd7e905de2c9a7e61790943440b3416f49cb409f965d9dcd0fa73e9", size = 76568, upload-time = "2024-12-15T13:33:30.42Z" }
1960
+ sdist = { url = "https://files.pythonhosted.org/packages/05/c8/2d307868453a4bca6e64fa3581d122ae0748a0869c53f159339def179c7c/uvicorn-0.52.0.tar.gz", hash = "sha256:ca8876ad6c1983f394157c168b39d52f6dd56dabf5602fa0982751cffc2293ae", size = 97504, upload-time = "2026-07-29T08:45:34.065Z" }
1951
1961
  wheels = [
1952
- { url = "https://files.pythonhosted.org/packages/61/14/33a3a1352cfa71812a3a21e8c9bfb83f60b0011f5e36f2b1399d51928209/uvicorn-0.34.0-py3-none-any.whl", hash = "sha256:023dc038422502fa28a09c7a30bf2b6991512da7dcdb8fd35fe57cfc154126f4", size = 62315, upload-time = "2024-12-15T13:33:27.467Z" },
1962
+ { url = "https://files.pythonhosted.org/packages/39/e6/b5c0630ace9757232aec07112be8146b812787db52141ff9d50674aa7634/uvicorn-0.52.0-py3-none-any.whl", hash = "sha256:3d887809810b89ed33501bcf0a9aba469b06ecd608158efce04bd6b48d8c9b08", size = 79058, upload-time = "2026-07-29T08:45:32.492Z" },
1953
1963
  ]
1954
1964
 
1955
1965
  [package.optional-dependencies]
1956
1966
  standard = [
1957
- { name = "colorama", marker = "sys_platform == 'win32'" },
1958
1967
  { name = "httptools" },
1959
1968
  { name = "python-dotenv" },
1960
1969
  { name = "pyyaml" },