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.

Files changed (82) hide show
  1. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/PKG-INFO +1 -1
  2. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/pyproject.toml +1 -1
  3. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/__init__.py +1 -1
  4. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/__init__.py +4 -2
  5. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/builder.py +2 -2
  6. fastapi_factory_utilities-0.4.2/src/fastapi_factory_utilities/core/plugins/odm_plugin/helpers.py +16 -0
  7. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/yaml_reader.py +1 -1
  8. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/app.py +2 -1
  9. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/__init__.py +1 -1
  10. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/__init__.py +1 -1
  11. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/LICENSE +0 -0
  12. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/README.md +0 -0
  13. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/__main__.py +0 -0
  14. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/__init__.py +0 -0
  15. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/tags.py +0 -0
  16. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/__init__.py +0 -0
  17. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/health.py +0 -0
  18. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/api/v1/sys/readiness.py +0 -0
  19. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/__init__.py +4 -4
  20. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/application.py +0 -0
  21. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/builder.py +0 -0
  22. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/config.py +0 -0
  23. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/enums.py +0 -0
  24. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/exceptions.py +0 -0
  25. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/fastapi_builder.py +0 -0
  26. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/plugin_manager/__init__.py +1 -1
  27. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/app/plugin_manager/exceptions.py +0 -0
  28. {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
  29. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/exceptions.py +0 -0
  30. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/__init__.py +0 -0
  31. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/example/__init__.py +0 -0
  32. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/httpx_plugin/__init__.py +0 -0
  33. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/configs.py +0 -0
  34. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/depends.py +0 -0
  35. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/documents.py +0 -0
  36. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/exceptions.py +0 -0
  37. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/odm_plugin/repositories.py +0 -0
  38. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/__init__.py +1 -1
  39. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/builder.py +0 -0
  40. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/configs.py +0 -0
  41. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/exceptions.py +0 -0
  42. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/plugins/opentelemetry_plugin/helpers.py +0 -0
  43. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/protocols.py +0 -0
  44. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/security/jwt.py +0 -0
  45. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/security/kratos.py +0 -0
  46. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/__init__.py +0 -0
  47. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/exceptions.py +0 -0
  48. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/objects.py +0 -0
  49. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/hydra/services.py +0 -0
  50. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/__init__.py +0 -0
  51. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/enums.py +0 -0
  52. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/exceptions.py +0 -0
  53. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/objects.py +0 -0
  54. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/kratos/services.py +0 -0
  55. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/__init__.py +2 -2
  56. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/enums.py +0 -0
  57. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/exceptions.py +0 -0
  58. {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
  59. {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
  60. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/services.py +0 -0
  61. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/services/status/types.py +0 -0
  62. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/configs.py +0 -0
  63. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/importlib.py +0 -0
  64. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/log.py +0 -0
  65. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/status.py +1 -1
  66. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/core/utils/uvicorn.py +0 -0
  67. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/__init__.py +0 -0
  68. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/__main__.py +0 -0
  69. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/__init__.py +0 -0
  70. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/__init__.py +0 -0
  71. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/responses.py +0 -0
  72. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/api/books/routes.py +0 -0
  73. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/application.yaml +0 -0
  74. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/entities.py +0 -0
  75. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/enums.py +0 -0
  76. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/entities/books/types.py +0 -0
  77. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/__init__.py +0 -0
  78. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/document.py +0 -0
  79. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/models/books/repository.py +0 -0
  80. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/services/books/__init__.py +0 -0
  81. {fastapi_factory_utilities-0.4.1 → fastapi_factory_utilities-0.4.2}/src/fastapi_factory_utilities/example/services/books/services.py +0 -0
  82. {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.1
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.1"
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>"]
@@ -22,4 +22,4 @@ api_v2: APIRouter = APIRouter(prefix="/v2")
22
22
  api.include_router(router=api_v1)
23
23
  api.include_router(router=api_v2)
24
24
 
25
- __all__: list[str] = ["api", "TagEnum"]
25
+ __all__: list[str] = ["TagEnum", "api"]
@@ -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} - " f"Client: {odm_factory.odm_client}"
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 " "build_client method or through parameter."
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 " "build_client method or through parameter."
253
+ "ODM client is not set. Provide the ODM client using build_client method or through parameter."
254
254
  )
255
255
 
256
256
  try:
@@ -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}" " not found in YAML file" + " from {self._yaml_base_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
- from .api import api_router # pylint: disable=import-outside-toplevel
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
 
@@ -4,4 +4,4 @@ from .entities import BookEntity
4
4
  from .enums import BookType
5
5
  from .types import BookName
6
6
 
7
- __all__: list[str] = ["BookEntity", "BookType", "BookName"]
7
+ __all__: list[str] = ["BookEntity", "BookName", "BookType"]
@@ -3,4 +3,4 @@
3
3
  from .document import BookDocument
4
4
  from .repository import BookRepository
5
5
 
6
- __all__: list[str] = ["BookRepository", "BookDocument"]
6
+ __all__: list[str] = ["BookDocument", "BookRepository"]
@@ -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
- "RootConfig",
20
- "HttpServiceDependencyConfig",
17
+ "BaseApplicationConfig",
21
18
  "DependencyConfig",
19
+ "EnvironmentEnum",
20
+ "HttpServiceDependencyConfig",
21
+ "RootConfig",
22
22
  "depends_dependency_config",
23
23
  ]
@@ -8,8 +8,8 @@ from .exceptions import (
8
8
  from .plugin_manager import PluginManager
9
9
 
10
10
  __all__: list[str] = [
11
+ "InvalidPluginError",
11
12
  "PluginManager",
12
13
  "PluginManagerError",
13
- "InvalidPluginError",
14
14
  "PluginPreConditionNotMetError",
15
15
  ]
@@ -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()
@@ -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
  ]
@@ -64,9 +64,9 @@ class MonitoredAbstract(ABC):
64
64
 
65
65
 
66
66
  __all__: list[str] = [
67
- "MonitoredAbstract",
68
67
  "ComponentInstanceType",
69
68
  "ComponentTypeEnum",
69
+ "MonitoredAbstract",
70
70
  "Status",
71
71
  "StatusService",
72
72
  ]