maleo-foundation 0.1.40__tar.gz → 0.1.42__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 (77) hide show
  1. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/PKG-INFO +6 -1
  2. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/service.py +42 -9
  3. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation.egg-info/PKG-INFO +6 -1
  4. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation.egg-info/requires.txt +5 -0
  5. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/pyproject.toml +6 -1
  6. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/README.md +0 -0
  7. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/__init__.py +0 -0
  8. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/authentication.py +0 -0
  9. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/constants.py +0 -0
  10. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/enums.py +0 -0
  11. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/__init__.py +0 -0
  12. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/client.py +0 -0
  13. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/general.py +0 -0
  14. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/query.py +0 -0
  15. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/service.py +0 -0
  16. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/expanded_types/token.py +0 -0
  17. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/extended_types.py +0 -0
  18. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/__init__.py +0 -0
  19. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/__init__.py +0 -0
  20. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/base.py +0 -0
  21. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/google/__init__.py +0 -0
  22. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/google/base.py +0 -0
  23. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/google/secret.py +0 -0
  24. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/google/storage.py +0 -0
  25. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/client/maleo.py +0 -0
  26. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/db.py +0 -0
  27. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/managers/middleware.py +0 -0
  28. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/middlewares/__init__.py +0 -0
  29. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/middlewares/authentication.py +0 -0
  30. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/middlewares/base.py +0 -0
  31. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/middlewares/cors.py +0 -0
  32. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/__init__.py +0 -0
  33. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/responses.py +0 -0
  34. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/schemas/__init__.py +0 -0
  35. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/schemas/general.py +0 -0
  36. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/schemas/parameter.py +0 -0
  37. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/schemas/result.py +0 -0
  38. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/schemas/token.py +0 -0
  39. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/table.py +0 -0
  40. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/__init__.py +0 -0
  41. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/general/__init__.py +0 -0
  42. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/general/token.py +0 -0
  43. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/parameters/__init__.py +0 -0
  44. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/parameters/client.py +0 -0
  45. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/parameters/general.py +0 -0
  46. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/parameters/service.py +0 -0
  47. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/parameters/token.py +0 -0
  48. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/__init__.py +0 -0
  49. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/client/__init__.py +0 -0
  50. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/client/controllers/__init__.py +0 -0
  51. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/client/controllers/http.py +0 -0
  52. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/client/service.py +0 -0
  53. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/service/__init__.py +0 -0
  54. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/service/controllers/__init__.py +0 -0
  55. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/service/controllers/rest.py +0 -0
  56. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/service/general.py +0 -0
  57. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/service/query.py +0 -0
  58. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/models/transfers/results/token.py +0 -0
  59. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/services/__init__.py +0 -0
  60. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/services/token.py +0 -0
  61. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/types.py +0 -0
  62. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/__init__.py +0 -0
  63. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/controller.py +0 -0
  64. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/exceptions.py +0 -0
  65. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/extractor.py +0 -0
  66. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/formatter/__init__.py +0 -0
  67. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/formatter/case.py +0 -0
  68. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/loaders/__init__.py +0 -0
  69. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/loaders/json.py +0 -0
  70. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/loaders/key.py +0 -0
  71. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/loaders/yaml.py +0 -0
  72. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/logging.py +0 -0
  73. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation/utils/query.py +0 -0
  74. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation.egg-info/SOURCES.txt +0 -0
  75. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation.egg-info/dependency_links.txt +0 -0
  76. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/maleo_foundation.egg-info/top_level.txt +0 -0
  77. {maleo_foundation-0.1.40 → maleo_foundation-0.1.42}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.40
3
+ Version: 0.1.42
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -13,6 +13,7 @@ Requires-Dist: cachetools>=5.5.2
13
13
  Requires-Dist: certifi>=2025.1.31
14
14
  Requires-Dist: cffi>=1.17.1
15
15
  Requires-Dist: charset-normalizer>=3.4.1
16
+ Requires-Dist: click>=8.1.8
16
17
  Requires-Dist: cryptography>=44.0.2
17
18
  Requires-Dist: Deprecated>=1.2.18
18
19
  Requires-Dist: docutils>=0.21.2
@@ -55,10 +56,13 @@ Requires-Dist: pyasn1>=0.6.1
55
56
  Requires-Dist: pyasn1_modules>=0.4.2
56
57
  Requires-Dist: pycparser>=2.22
57
58
  Requires-Dist: pydantic>=2.11.3
59
+ Requires-Dist: pydantic-settings>=2.9.1
58
60
  Requires-Dist: pydantic_core>=2.33.1
59
61
  Requires-Dist: Pygments>=2.19.1
60
62
  Requires-Dist: PyJWT>=2.10.1
61
63
  Requires-Dist: pyproject_hooks>=1.2.0
64
+ Requires-Dist: python-dotenv>=1.1.0
65
+ Requires-Dist: PyYAML>=6.0.2
62
66
  Requires-Dist: readme_renderer>=44.0
63
67
  Requires-Dist: requests>=2.32.3
64
68
  Requires-Dist: requests-toolbelt>=1.0.0
@@ -73,6 +77,7 @@ Requires-Dist: twine>=6.1.0
73
77
  Requires-Dist: typing-inspection>=0.4.0
74
78
  Requires-Dist: typing_extensions>=4.13.2
75
79
  Requires-Dist: urllib3>=2.4.0
80
+ Requires-Dist: uvicorn>=0.34.2
76
81
  Requires-Dist: wrapt>=1.17.2
77
82
  Requires-Dist: zipp>=3.21.0
78
83
 
@@ -15,13 +15,14 @@ from maleo_foundation.managers.client.google.secret import GoogleSecretManager
15
15
  from maleo_foundation.managers.client.google.storage import GoogleCloudStorage
16
16
  from maleo_foundation.managers.client.maleo import MaleoClientManager
17
17
  from maleo_foundation.managers.db import DatabaseManager
18
- from maleo_foundation.managers.middleware import MiddlewareConfigurations, MiddlewareLoggers, MiddlewareManager
18
+ from maleo_foundation.managers.middleware import MiddlewareConfigurations, BaseMiddlewareConfigurations, CORSMiddlewareConfigurations, GeneralMiddlewareConfigurations, MiddlewareLoggers, MiddlewareManager
19
19
  from maleo_foundation.middlewares.base import RequestProcessor
20
20
  from maleo_foundation.services.token import BaseTokenService
21
21
  from maleo_foundation.types import BaseTypes
22
22
  from maleo_foundation.utils.exceptions import BaseExceptions
23
23
  from maleo_foundation.utils.loaders.json import JSONLoader
24
24
  from maleo_foundation.utils.loaders.key import KeyLoader
25
+ from maleo_foundation.utils.loaders.yaml import YAMLLoader
25
26
  from maleo_foundation.utils.logging import GoogleCloudLogging, ServiceLogger, MiddlewareLogger
26
27
 
27
28
  class LogConfig(BaseModel):
@@ -33,12 +34,13 @@ class LogConfig(BaseModel):
33
34
 
34
35
  class Settings(BaseSettings):
35
36
  ENVIRONMENT:BaseEnums.EnvironmentType = Field(..., description="Environment")
36
- GOOGLE_CREDENTIALS_PATH:str = Field("/creds/maleo-google-service-account.json", description="Internal credential's file path")
37
- INTERNAL_CREDENTIALS_PATH:str = Field("/creds/maleo-internal-service-account.json", description="Internal credential's file path")
38
- PRIVATE_KEY_PATH:str = Field("/keys/maleo-private-key.pem", description="Maleo's private key path")
39
- PUBLIC_KEY_PATH:str = Field("/keys/maleo-public-key.pem", description="Maleo's public key path")
37
+ GOOGLE_CREDENTIALS_PATH:str = Field("credentials/maleo-google-service-account.json", description="Internal credential's file path")
38
+ INTERNAL_CREDENTIALS_PATH:str = Field("credentials/maleo-internal-service-account.json", description="Internal credential's file path")
39
+ PRIVATE_KEY_PATH:str = Field("keys/maleo-private-key.pem", description="Maleo's private key path")
40
+ PUBLIC_KEY_PATH:str = Field("keys/maleo-public-key.pem", description="Maleo's public key path")
40
41
  KEY_PASSWORD:str = Field(..., description="Maleo key's password")
41
- CONFIGURATIONS_PATH:str = Field(..., description="Service's configuration file path")
42
+ STATIC_CONFIGURATIONS_PATH:str = Field("configs/static.yaml", description="Maleo's static configurations path")
43
+ RUNTIME_CONFIGURATIONS_PATH:str = Field("configs/runtime.yaml", description="Service's runtime configurations path")
42
44
  DB_PASSWORD:str = Field(..., description="Database's password")
43
45
 
44
46
  class Keys(BaseModel):
@@ -72,6 +74,12 @@ class Credentials(BaseModel):
72
74
  class Config:
73
75
  arbitrary_types_allowed=True
74
76
 
77
+ class MiddlewareRuntimeConfigurations(BaseModel):
78
+ base:BaseMiddlewareConfigurations = Field(..., description="Base middleware's configurations")
79
+
80
+ class Config:
81
+ arbitrary_types_allowed=True
82
+
75
83
  class ServiceConfigurations(BaseModel):
76
84
  key:str = Field(..., description="Service's key")
77
85
  name:str = Field(..., description="Service's name")
@@ -98,6 +106,21 @@ class DatabaseConfigurations(BaseModel):
98
106
  def url(self) -> str:
99
107
  return f"postgresql://{self.username}:{self.password}@{self.host}:{self.port}/{self.database}"
100
108
 
109
+ class RuntimeConfigurations(BaseModel):
110
+ service:ServiceConfigurations = Field(..., description="Service's configurations")
111
+ middleware:MiddlewareRuntimeConfigurations = Field(..., description="Middleware's runtime configurations")
112
+ database:DatabaseConfigurations = Field(..., description="Database's configurations")
113
+
114
+ class Config:
115
+ arbitrary_types_allowed=True
116
+
117
+ class MiddlewareStaticConfigurations(BaseModel):
118
+ general:GeneralMiddlewareConfigurations = Field(..., description="Middleware's general configurations")
119
+ cors:CORSMiddlewareConfigurations = Field(..., description="CORS middleware's configurations")
120
+
121
+ class Config:
122
+ arbitrary_types_allowed=True
123
+
101
124
  class GoogleCloudStorageConfigurations(BaseModel):
102
125
  bucket_name:str = Field(..., description="Bucket's name")
103
126
 
@@ -133,11 +156,18 @@ class ClientConfigurations(BaseModel):
133
156
  class Config:
134
157
  arbitrary_types_allowed=True
135
158
 
159
+ class StaticConfigurations(BaseModel):
160
+ middleware:MiddlewareStaticConfigurations = Field(..., description="Middleware's static configurations")
161
+ client:ClientConfigurations = Field(..., description="Client's configurations")
162
+
163
+ class Config:
164
+ arbitrary_types_allowed=True
165
+
136
166
  class Configurations(BaseModel):
137
167
  service:ServiceConfigurations = Field(..., description="Service's configurations")
138
168
  middleware:MiddlewareConfigurations = Field(..., description="Middleware's configurations")
139
169
  database:DatabaseConfigurations = Field(..., description="Database's configurations")
140
- client:ClientConfigurations = Field(..., description="Service's configurations")
170
+ client:ClientConfigurations = Field(..., description="Client's configurations")
141
171
 
142
172
  class Config:
143
173
  arbitrary_types_allowed=True
@@ -265,8 +295,11 @@ class ServiceManager:
265
295
  return self._settings
266
296
 
267
297
  def _load_configs(self) -> None:
268
- data = JSONLoader.load(self._settings.CONFIGURATIONS_PATH)
269
- self._configs = Configurations.model_validate(data)
298
+ static_configurations = YAMLLoader.load(self._settings.STATIC_CONFIGURATIONS_PATH)
299
+ self._static_configs = StaticConfigurations.model_validate(static_configurations)
300
+ runtime_configurations = YAMLLoader.load(self._settings.RUNTIME_CONFIGURATIONS_PATH)
301
+ self._runtime_configs = RuntimeConfigurations.model_validate(runtime_configurations)
302
+ self._configs = Configurations.model_validate(self._static_configs.model_dump() | self._runtime_configs.model_dump())
270
303
 
271
304
  @property
272
305
  def configs(self) -> Configurations:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: maleo_foundation
3
- Version: 0.1.40
3
+ Version: 0.1.42
4
4
  Summary: Foundation package for Maleo
5
5
  Author-email: Agra Bima Yuda <agra@nexmedis.com>
6
6
  License: MIT
@@ -13,6 +13,7 @@ Requires-Dist: cachetools>=5.5.2
13
13
  Requires-Dist: certifi>=2025.1.31
14
14
  Requires-Dist: cffi>=1.17.1
15
15
  Requires-Dist: charset-normalizer>=3.4.1
16
+ Requires-Dist: click>=8.1.8
16
17
  Requires-Dist: cryptography>=44.0.2
17
18
  Requires-Dist: Deprecated>=1.2.18
18
19
  Requires-Dist: docutils>=0.21.2
@@ -55,10 +56,13 @@ Requires-Dist: pyasn1>=0.6.1
55
56
  Requires-Dist: pyasn1_modules>=0.4.2
56
57
  Requires-Dist: pycparser>=2.22
57
58
  Requires-Dist: pydantic>=2.11.3
59
+ Requires-Dist: pydantic-settings>=2.9.1
58
60
  Requires-Dist: pydantic_core>=2.33.1
59
61
  Requires-Dist: Pygments>=2.19.1
60
62
  Requires-Dist: PyJWT>=2.10.1
61
63
  Requires-Dist: pyproject_hooks>=1.2.0
64
+ Requires-Dist: python-dotenv>=1.1.0
65
+ Requires-Dist: PyYAML>=6.0.2
62
66
  Requires-Dist: readme_renderer>=44.0
63
67
  Requires-Dist: requests>=2.32.3
64
68
  Requires-Dist: requests-toolbelt>=1.0.0
@@ -73,6 +77,7 @@ Requires-Dist: twine>=6.1.0
73
77
  Requires-Dist: typing-inspection>=0.4.0
74
78
  Requires-Dist: typing_extensions>=4.13.2
75
79
  Requires-Dist: urllib3>=2.4.0
80
+ Requires-Dist: uvicorn>=0.34.2
76
81
  Requires-Dist: wrapt>=1.17.2
77
82
  Requires-Dist: zipp>=3.21.0
78
83
 
@@ -5,6 +5,7 @@ cachetools>=5.5.2
5
5
  certifi>=2025.1.31
6
6
  cffi>=1.17.1
7
7
  charset-normalizer>=3.4.1
8
+ click>=8.1.8
8
9
  cryptography>=44.0.2
9
10
  Deprecated>=1.2.18
10
11
  docutils>=0.21.2
@@ -47,10 +48,13 @@ pyasn1>=0.6.1
47
48
  pyasn1_modules>=0.4.2
48
49
  pycparser>=2.22
49
50
  pydantic>=2.11.3
51
+ pydantic-settings>=2.9.1
50
52
  pydantic_core>=2.33.1
51
53
  Pygments>=2.19.1
52
54
  PyJWT>=2.10.1
53
55
  pyproject_hooks>=1.2.0
56
+ python-dotenv>=1.1.0
57
+ PyYAML>=6.0.2
54
58
  readme_renderer>=44.0
55
59
  requests>=2.32.3
56
60
  requests-toolbelt>=1.0.0
@@ -65,5 +69,6 @@ twine>=6.1.0
65
69
  typing-inspection>=0.4.0
66
70
  typing_extensions>=4.13.2
67
71
  urllib3>=2.4.0
72
+ uvicorn>=0.34.2
68
73
  wrapt>=1.17.2
69
74
  zipp>=3.21.0
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "maleo_foundation"
7
- version = "0.1.40"
7
+ version = "0.1.42"
8
8
  description = "Foundation package for Maleo"
9
9
  authors = [
10
10
  { name = "Agra Bima Yuda", email = "agra@nexmedis.com" }
@@ -20,6 +20,7 @@ dependencies = [
20
20
  "certifi>=2025.1.31",
21
21
  "cffi>=1.17.1",
22
22
  "charset-normalizer>=3.4.1",
23
+ "click>=8.1.8",
23
24
  "cryptography>=44.0.2",
24
25
  "Deprecated>=1.2.18",
25
26
  "docutils>=0.21.2",
@@ -62,10 +63,13 @@ dependencies = [
62
63
  "pyasn1_modules>=0.4.2",
63
64
  "pycparser>=2.22",
64
65
  "pydantic>=2.11.3",
66
+ "pydantic-settings>=2.9.1",
65
67
  "pydantic_core>=2.33.1",
66
68
  "Pygments>=2.19.1",
67
69
  "PyJWT>=2.10.1",
68
70
  "pyproject_hooks>=1.2.0",
71
+ "python-dotenv>=1.1.0",
72
+ "PyYAML>=6.0.2",
69
73
  "readme_renderer>=44.0",
70
74
  "requests>=2.32.3",
71
75
  "requests-toolbelt>=1.0.0",
@@ -80,6 +84,7 @@ dependencies = [
80
84
  "typing-inspection>=0.4.0",
81
85
  "typing_extensions>=4.13.2",
82
86
  "urllib3>=2.4.0",
87
+ "uvicorn>=0.34.2",
83
88
  "wrapt>=1.17.2",
84
89
  "zipp>=3.21.0"
85
90
  ]