persistence-kit 3.7.0__tar.gz → 3.8.0__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 (99) hide show
  1. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/PKG-INFO +2 -2
  2. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/__init__.py +2 -0
  3. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/provider.py +10 -0
  4. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/registry.py +9 -0
  5. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/pyproject.toml +2 -2
  6. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/LICENSE +0 -0
  7. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/README.md +0 -0
  8. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/__init__.py +0 -0
  9. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/__init__.py +0 -0
  10. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/common.py +0 -0
  11. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/error_handlers.py +0 -0
  12. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/exceptions.py +0 -0
  13. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/rate_limit.py +0 -0
  14. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/api/route_loader.py +0 -0
  15. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/authenticated_user.py +0 -0
  16. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/bootstrap/__init__.py +0 -0
  17. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/bootstrap/configuration.py +0 -0
  18. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/bootstrap/seeders.py +0 -0
  19. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/bootstrap/startup.py +0 -0
  20. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/__init__.py +0 -0
  21. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/contracts.py +0 -0
  22. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/factory.py +0 -0
  23. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/memory.py +0 -0
  24. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/mongo.py +0 -0
  25. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/cache/namespaced.py +0 -0
  26. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/contracts/__init__.py +0 -0
  27. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/contracts/repository.py +0 -0
  28. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/contracts/view_repository.py +0 -0
  29. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/py.typed +0 -0
  30. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/__init__.py +0 -0
  31. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/dynamodb_repo/dynamodb_mapper.py +0 -0
  32. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/dynamodb_repo/dynamodb_repo.py +0 -0
  33. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/filter_ops.py +0 -0
  34. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/memory_repo/__init__.py +0 -0
  35. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/memory_repo/memory_repo.py +0 -0
  36. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/mongo_repo/__init__.py +0 -0
  37. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/mongo_repo/mongo_mapper.py +0 -0
  38. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/mongo_repo/mongo_repo.py +0 -0
  39. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/__init__.py +0 -0
  40. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/schema_evolve.py +0 -0
  41. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_dataclass_mapper.py +0 -0
  42. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_engine.py +0 -0
  43. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_repo.py +0 -0
  44. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository/sqlalchemy_repo/table_factory.py +0 -0
  45. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/__init__.py +0 -0
  46. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/factory/__init__.py +0 -0
  47. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/factory/repository_factory.py +0 -0
  48. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/registry/__init__.py +0 -0
  49. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/registry/entity_registry.py +0 -0
  50. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/view/__init__.py +0 -0
  51. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/repository_factory/view/populating_repository.py +0 -0
  52. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/resilience/__init__.py +0 -0
  53. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/resilience/circuit.py +0 -0
  54. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/aggregate.py +0 -0
  55. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/__init__.py +0 -0
  56. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/api_key.py +0 -0
  57. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/base.py +0 -0
  58. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/basic.py +0 -0
  59. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/bearer.py +0 -0
  60. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/login.py +0 -0
  61. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/auth/oauth2.py +0 -0
  62. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/caching.py +0 -0
  63. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/client.py +0 -0
  64. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/config.py +0 -0
  65. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/contracts.py +0 -0
  66. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/errors.py +0 -0
  67. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/factory.py +0 -0
  68. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/mapping.py +0 -0
  69. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/memory.py +0 -0
  70. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/payload.py +0 -0
  71. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/populate.py +0 -0
  72. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/resolver.py +0 -0
  73. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/restclient/retry.py +0 -0
  74. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/__init__.py +0 -0
  75. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/factory.py +0 -0
  76. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/ports.py +0 -0
  77. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/providers/__init__.py +0 -0
  78. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/providers/cognito_identity_provider.py +0 -0
  79. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/providers/memory_security_provider.py +0 -0
  80. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/registration.py +0 -0
  81. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/token_verifiers/__init__.py +0 -0
  82. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/token_verifiers/cognito_jwt_verifier.py +0 -0
  83. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/security/token_verifiers/memory_jwt_verifier.py +0 -0
  84. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/__init__.py +0 -0
  85. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/app_settings.py +0 -0
  86. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/cache_settings.py +0 -0
  87. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/constants.py +0 -0
  88. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/parsers.py +0 -0
  89. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/settings/repo_settings.py +0 -0
  90. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/__init__.py +0 -0
  91. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/contracts.py +0 -0
  92. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/errors.py +0 -0
  93. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/factory.py +0 -0
  94. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/local.py +0 -0
  95. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/media.py +0 -0
  96. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/routes.py +0 -0
  97. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/storage/s3.py +0 -0
  98. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/utils/__init__.py +0 -0
  99. {persistence_kit-3.7.0 → persistence_kit-3.8.0}/persistence_kit/utils/upsert.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: persistence-kit
3
- Version: 3.7.0
3
+ Version: 3.8.0
4
4
  Summary: Reusable persistence and repository toolkit
5
5
  License: MIT
6
6
  License-File: LICENSE
@@ -29,7 +29,7 @@ Provides-Extra: storage-s3
29
29
  Provides-Extra: testing
30
30
  Requires-Dist: asyncpg (>=0.30.0,<0.31.0)
31
31
  Requires-Dist: boto3 (>=1.35.0,<2.0.0) ; extra == "storage-s3" or extra == "security-cognito" or extra == "dynamodb" or extra == "all"
32
- Requires-Dist: fastapi (>=0.115.0,<0.116.0) ; extra == "api" or extra == "storage-routes" or extra == "security" or extra == "security-cognito" or extra == "testing" or extra == "all"
32
+ Requires-Dist: fastapi (>=0.115.0,<1.0.0) ; extra == "api" or extra == "storage-routes" or extra == "security" or extra == "security-cognito" or extra == "testing" or extra == "all"
33
33
  Requires-Dist: httpx (>=0.28.0,<0.29.0) ; extra == "restclient" or extra == "testing" or extra == "all"
34
34
  Requires-Dist: motor (>=3.7.1,<4.0.0)
35
35
  Requires-Dist: pydantic-settings (>=2.3.0,<3.0.0)
@@ -48,6 +48,7 @@ from persistence_kit.restclient.provider import (
48
48
  default_rest_registry,
49
49
  get_rest_client,
50
50
  provide_rest_client,
51
+ register_rest_client,
51
52
  register_rest_service,
52
53
  reset_rest_registry,
53
54
  set_rest_registry_initializer,
@@ -95,6 +96,7 @@ __all__ = [
95
96
  "RestClientRegistry",
96
97
  "RegisteredService",
97
98
  "build_rest_client",
99
+ "register_rest_client",
98
100
  "register_rest_service",
99
101
  "set_rest_registry_initializer",
100
102
  "provide_rest_client",
@@ -62,6 +62,16 @@ def register_rest_service(
62
62
  )
63
63
 
64
64
 
65
+ def register_rest_client(name: str, client: RestClient) -> None:
66
+ """Registra un cliente ya construido bajo un nombre.
67
+
68
+ Pensado para inyectar stubs o dobles de prueba: el consumidor sigue pidiendo
69
+ el servicio por nombre con :func:`provide_rest_client`, pero recibe este
70
+ cliente en vez de uno HTTP.
71
+ """
72
+ default_rest_registry().set_client(name, client)
73
+
74
+
65
75
  def get_rest_client(name: str) -> RestClient:
66
76
  _init_registry()
67
77
  return default_rest_registry().get(name)
@@ -77,6 +77,15 @@ class RestClientRegistry:
77
77
  self._clients.pop(name, None)
78
78
  return self
79
79
 
80
+ def set_client(self, name: str, client: RestClient) -> "RestClientRegistry":
81
+ """Registra un cliente ya construido bajo un nombre.
82
+
83
+ Inyecta dobles de prueba o stubs sin pasar por el transporte HTTP: ``get``
84
+ devuelve este cliente tal cual, sin construir un ``HttpxRestClient``.
85
+ """
86
+ self._clients[name] = client
87
+ return self
88
+
80
89
  def get(self, name: str) -> RestClient:
81
90
  cached = self._clients.get(name)
82
91
  if cached is not None:
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "persistence-kit"
3
- version = "3.7.0"
3
+ version = "3.8.0"
4
4
  description = "Reusable persistence and repository toolkit"
5
5
  authors = ["Andres Felipe Serrano Barrios <andresfserrano1@gmail.com>"]
6
6
  readme = "README.md"
@@ -30,7 +30,7 @@ sqlalchemy = {extras = ["asyncio"], version = "^2.0.43"}
30
30
  asyncpg = "^0.30.0"
31
31
  typing-extensions = "^4.12.0"
32
32
  pydantic-settings = "^2.3.0"
33
- fastapi = {version = "^0.115.0", optional = true}
33
+ fastapi = {version = ">=0.115.0,<1.0.0", optional = true}
34
34
  boto3 = {version = "^1.35.0", optional = true}
35
35
  pyjwt = {version = "^2.10.1", extras = ["crypto"], optional = true}
36
36
  python-multipart = {version = "^0.0.20", optional = true}
File without changes