fastapi-factory-utilities 0.4.1__tar.gz → 0.4.2__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.
Potentially problematic release.
This version of fastapi-factory-utilities might be problematic. Click here for more details.
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/PKG-INFO +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/pyproject.toml +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/__init__.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/__init__.py +4 -2
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/builder.py +2 -2
- fastapi_factory_utilities-0.4.2/src/fastapi_factory_utilities/core/plugins/odm_plugin/helpers.py +16 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/yaml_reader.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/app.py +2 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/__init__.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/__init__.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/LICENSE +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/README.md +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/__main__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/tags.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/health.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/readiness.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/__init__.py +4 -4
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/application.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/builder.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/config.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/enums.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/fastapi_builder.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/plugin_manager/__init__.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/plugin_manager/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/plugin_manager/plugin_manager.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/example/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/httpx_plugin/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/configs.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/depends.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/documents.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/repositories.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/__init__.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/builder.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/configs.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/helpers.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/protocols.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/security/jwt.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/security/kratos.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/objects.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/services.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/enums.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/objects.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/services.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/__init__.py +2 -2
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/enums.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/exceptions.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/health_calculator_strategies.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/readiness_calculator_strategies.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/services.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/types.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/configs.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/importlib.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/log.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/status.py +1 -1
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/uvicorn.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/__main__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/responses.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/routes.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/application.yaml +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/entities.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/enums.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/types.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/document.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/repository.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/services/books/__init__.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/services/books/services.py +0 -0
- {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/py.typed +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: fastapi_factory_utilities
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.2
|
|
4
4
|
Summary: Consolidate libraries and utilities to create microservices in Python with FastAPI, Beanie, Httpx, AioPika and OpenTelemetry.
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: python,fastapi,beanie,httpx,opentelemetry,microservices
|
|
@@ -3,7 +3,7 @@ name = "fastapi_factory_utilities"
|
|
|
3
3
|
homepage = "https://github.com/miragecentury/fastapi_factory_utilities"
|
|
4
4
|
repository = "https://github.com/miragecentury/fastapi_factory_utilities"
|
|
5
5
|
keywords = ["python", "fastapi", "beanie", "httpx", "opentelemetry", "microservices"]
|
|
6
|
-
version = "0.4.
|
|
6
|
+
version = "0.4.2"
|
|
7
7
|
description = "Consolidate libraries and utilities to create microservices in Python with FastAPI, Beanie, Httpx, AioPika and OpenTelemetry."
|
|
8
8
|
authors = ["miragecentury <victorien.vanroye@gmail.com>"]
|
|
9
9
|
maintainers = ["miragecentury <victorien.vanroye@gmail.com>"]
|
|
@@ -25,6 +25,7 @@ from .builder import ODMBuilder
|
|
|
25
25
|
from .depends import depends_odm_client, depends_odm_database
|
|
26
26
|
from .documents import BaseDocument
|
|
27
27
|
from .exceptions import OperationError, UnableToCreateEntityDueToDuplicateKeyError
|
|
28
|
+
from .helpers import PersistedEntity
|
|
28
29
|
from .repositories import AbstractRepository
|
|
29
30
|
|
|
30
31
|
_logger: BoundLogger = get_logger()
|
|
@@ -94,7 +95,7 @@ async def on_startup(
|
|
|
94
95
|
|
|
95
96
|
if odm_factory.odm_database is None or odm_factory.odm_client is None:
|
|
96
97
|
_logger.error(
|
|
97
|
-
f"ODM plugin failed to start. Database: {odm_factory.odm_database} -
|
|
98
|
+
f"ODM plugin failed to start. Database: {odm_factory.odm_database} - Client: {odm_factory.odm_client}"
|
|
98
99
|
)
|
|
99
100
|
# TODO: Report the error to the status_service
|
|
100
101
|
# this will report the application as unhealthy
|
|
@@ -160,9 +161,10 @@ async def on_shutdown(application: ApplicationAbstractProtocol) -> None:
|
|
|
160
161
|
|
|
161
162
|
|
|
162
163
|
__all__: list[str] = [
|
|
163
|
-
"BaseDocument",
|
|
164
164
|
"AbstractRepository",
|
|
165
|
+
"BaseDocument",
|
|
165
166
|
"OperationError",
|
|
167
|
+
"PersistedEntity",
|
|
166
168
|
"UnableToCreateEntityDueToDuplicateKeyError",
|
|
167
169
|
"depends_odm_client",
|
|
168
170
|
"depends_odm_database",
|
|
@@ -215,7 +215,7 @@ class ODMBuilder:
|
|
|
215
215
|
|
|
216
216
|
if self._odm_client is None:
|
|
217
217
|
raise ODMPluginConfigError(
|
|
218
|
-
"ODM client is not set. Provide the ODM client using
|
|
218
|
+
"ODM client is not set. Provide the ODM client using build_client method or through parameter."
|
|
219
219
|
)
|
|
220
220
|
|
|
221
221
|
self._odm_database = self._odm_client.get_database(
|
|
@@ -250,7 +250,7 @@ class ODMBuilder:
|
|
|
250
250
|
"""
|
|
251
251
|
if self._odm_client is None:
|
|
252
252
|
raise ODMPluginConfigError(
|
|
253
|
-
"ODM client is not set. Provide the ODM client using
|
|
253
|
+
"ODM client is not set. Provide the ODM client using build_client method or through parameter."
|
|
254
254
|
)
|
|
255
255
|
|
|
256
256
|
try:
|
fastapi_factory_utilities-0.4.2/src/fastapi_factory_utilities/core/plugins/odm_plugin/helpers.py
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Helper functions for ODM plugins."""
|
|
2
|
+
|
|
3
|
+
import datetime
|
|
4
|
+
import uuid
|
|
5
|
+
|
|
6
|
+
from pydantic import BaseModel, Field
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class PersistedEntity(BaseModel):
|
|
10
|
+
"""Base class for persisted entities."""
|
|
11
|
+
|
|
12
|
+
id: uuid.UUID = Field(default_factory=uuid.uuid4)
|
|
13
|
+
|
|
14
|
+
revision_id: uuid.UUID | None = Field(default=None)
|
|
15
|
+
created_at: datetime.datetime = Field(default_factory=datetime.datetime.now)
|
|
16
|
+
updated_at: datetime.datetime = Field(default_factory=datetime.datetime.now)
|
|
@@ -72,7 +72,7 @@ class YamlFileReader:
|
|
|
72
72
|
try:
|
|
73
73
|
yaml_data = yaml_data[key]
|
|
74
74
|
except KeyError:
|
|
75
|
-
logger.warning(f"Base key {key}
|
|
75
|
+
logger.warning(f"Base key {key} not found in YAML file" + " from {self._yaml_base_key}")
|
|
76
76
|
return dict()
|
|
77
77
|
return yaml_data
|
|
78
78
|
|
|
@@ -31,7 +31,8 @@ class App(ApplicationAbstract):
|
|
|
31
31
|
def configure(self) -> None:
|
|
32
32
|
"""Configure the application."""
|
|
33
33
|
# Prevent circular import
|
|
34
|
-
|
|
34
|
+
# pylint: disable=import-outside-toplevel
|
|
35
|
+
from .api import api_router # noqa: PLC0415
|
|
35
36
|
|
|
36
37
|
self.get_asgi_app().include_router(router=api_router)
|
|
37
38
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -12,12 +12,12 @@ from .config import (
|
|
|
12
12
|
from .enums import EnvironmentEnum
|
|
13
13
|
|
|
14
14
|
__all__: list[str] = [
|
|
15
|
-
"BaseApplicationConfig",
|
|
16
|
-
"EnvironmentEnum",
|
|
17
15
|
"ApplicationAbstract",
|
|
18
16
|
"ApplicationGenericBuilder",
|
|
19
|
-
"
|
|
20
|
-
"HttpServiceDependencyConfig",
|
|
17
|
+
"BaseApplicationConfig",
|
|
21
18
|
"DependencyConfig",
|
|
19
|
+
"EnvironmentEnum",
|
|
20
|
+
"HttpServiceDependencyConfig",
|
|
21
|
+
"RootConfig",
|
|
22
22
|
"depends_dependency_config",
|
|
23
23
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -20,8 +20,8 @@ from .exceptions import OpenTelemetryPluginBaseException, OpenTelemetryPluginCon
|
|
|
20
20
|
__all__: list[str] = [
|
|
21
21
|
"OpenTelemetryConfig",
|
|
22
22
|
"OpenTelemetryPluginBaseException",
|
|
23
|
-
"OpenTelemetryPluginConfigError",
|
|
24
23
|
"OpenTelemetryPluginBuilder",
|
|
24
|
+
"OpenTelemetryPluginConfigError",
|
|
25
25
|
]
|
|
26
26
|
|
|
27
27
|
_logger: BoundLogger = get_logger()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -5,10 +5,10 @@ from .services import StatusService
|
|
|
5
5
|
from .types import ComponentInstanceType, Status
|
|
6
6
|
|
|
7
7
|
__all__: list[str] = [
|
|
8
|
-
"ComponentTypeEnum",
|
|
9
8
|
"ComponentInstanceType",
|
|
9
|
+
"ComponentTypeEnum",
|
|
10
10
|
"HealthStatusEnum",
|
|
11
11
|
"ReadinessStatusEnum",
|
|
12
|
-
"StatusService",
|
|
13
12
|
"Status",
|
|
13
|
+
"StatusService",
|
|
14
14
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|