persistence-kit 3.5.0__tar.gz → 3.6.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.
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/PKG-INFO +1 -1
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/__init__.py +20 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/__init__.py +14 -0
- persistence_kit-3.6.0/persistence_kit/restclient/provider.py +78 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/registry.py +4 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/pyproject.toml +1 -1
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/LICENSE +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/README.md +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/common.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/error_handlers.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/exceptions.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/rate_limit.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/api/route_loader.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/authenticated_user.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/bootstrap/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/bootstrap/configuration.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/bootstrap/seeders.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/bootstrap/startup.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/contracts/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/contracts/repository.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/contracts/view_repository.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/py.typed +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/dynamodb_repo/dynamodb_mapper.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/dynamodb_repo/dynamodb_repo.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/filter_ops.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/memory_repo/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/memory_repo/memory_repo.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/mongo_repo/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/mongo_repo/mongo_mapper.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/mongo_repo/mongo_repo.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/schema_evolve.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_dataclass_mapper.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_engine.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/sqlalchemy_repo.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/sqlalchemy_repo/table_factory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/factory/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/factory/repository_factory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/registry/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/registry/entity_registry.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/view/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/view/populating_repository.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/resilience/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/resilience/circuit.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/aggregate.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/api_key.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/base.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/basic.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/bearer.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/login.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/auth/oauth2.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/client.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/config.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/contracts.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/errors.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/factory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/mapping.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/memory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/payload.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/populate.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/resolver.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/restclient/retry.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/factory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/ports.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/providers/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/providers/cognito_identity_provider.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/providers/memory_security_provider.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/registration.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/token_verifiers/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/token_verifiers/cognito_jwt_verifier.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/token_verifiers/memory_jwt_verifier.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/settings/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/settings/app_settings.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/settings/constants.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/settings/parsers.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/settings/repo_settings.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/contracts.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/errors.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/factory.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/local.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/media.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/routes.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/storage/s3.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/utils/__init__.py +0 -0
- {persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/utils/upsert.py +0 -0
|
@@ -218,6 +218,26 @@ _OPTIONAL_EXPORTS = {
|
|
|
218
218
|
),
|
|
219
219
|
"decode": ("persistence_kit.restclient.mapping", "decode", "restclient"),
|
|
220
220
|
"encode": ("persistence_kit.restclient.mapping", "encode", "restclient"),
|
|
221
|
+
"register_rest_service": (
|
|
222
|
+
"persistence_kit.restclient.provider",
|
|
223
|
+
"register_rest_service",
|
|
224
|
+
"restclient",
|
|
225
|
+
),
|
|
226
|
+
"set_rest_registry_initializer": (
|
|
227
|
+
"persistence_kit.restclient.provider",
|
|
228
|
+
"set_rest_registry_initializer",
|
|
229
|
+
"restclient",
|
|
230
|
+
),
|
|
231
|
+
"provide_rest_client": (
|
|
232
|
+
"persistence_kit.restclient.provider",
|
|
233
|
+
"provide_rest_client",
|
|
234
|
+
"restclient",
|
|
235
|
+
),
|
|
236
|
+
"get_rest_client": (
|
|
237
|
+
"persistence_kit.restclient.provider",
|
|
238
|
+
"get_rest_client",
|
|
239
|
+
"restclient",
|
|
240
|
+
),
|
|
221
241
|
"NoAuth": ("persistence_kit.restclient.auth", "NoAuth", "restclient"),
|
|
222
242
|
"ApiKeyAuth": ("persistence_kit.restclient.auth", "ApiKeyAuth", "restclient"),
|
|
223
243
|
"BearerAuth": ("persistence_kit.restclient.auth", "BearerAuth", "restclient"),
|
|
@@ -44,6 +44,14 @@ from persistence_kit.restclient.populate import (
|
|
|
44
44
|
populate,
|
|
45
45
|
)
|
|
46
46
|
from persistence_kit.restclient.payload import serialize_xml
|
|
47
|
+
from persistence_kit.restclient.provider import (
|
|
48
|
+
default_rest_registry,
|
|
49
|
+
get_rest_client,
|
|
50
|
+
provide_rest_client,
|
|
51
|
+
register_rest_service,
|
|
52
|
+
reset_rest_registry,
|
|
53
|
+
set_rest_registry_initializer,
|
|
54
|
+
)
|
|
47
55
|
from persistence_kit.restclient.registry import RegisteredService, RestClientRegistry
|
|
48
56
|
from persistence_kit.restclient.resolver import (
|
|
49
57
|
DirectoryEndpointResolver,
|
|
@@ -85,6 +93,12 @@ __all__ = [
|
|
|
85
93
|
"RestClientRegistry",
|
|
86
94
|
"RegisteredService",
|
|
87
95
|
"build_rest_client",
|
|
96
|
+
"register_rest_service",
|
|
97
|
+
"set_rest_registry_initializer",
|
|
98
|
+
"provide_rest_client",
|
|
99
|
+
"get_rest_client",
|
|
100
|
+
"default_rest_registry",
|
|
101
|
+
"reset_rest_registry",
|
|
88
102
|
"RestClientError",
|
|
89
103
|
"RestConfigError",
|
|
90
104
|
"RestAuthError",
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from functools import lru_cache
|
|
4
|
+
from typing import Callable
|
|
5
|
+
|
|
6
|
+
from persistence_kit.resilience import CircuitBreaker
|
|
7
|
+
from persistence_kit.restclient.config import ServiceConfig
|
|
8
|
+
from persistence_kit.restclient.contracts import (
|
|
9
|
+
Authenticator,
|
|
10
|
+
EndpointResolver,
|
|
11
|
+
RestClient,
|
|
12
|
+
)
|
|
13
|
+
from persistence_kit.restclient.registry import RestClientRegistry
|
|
14
|
+
from persistence_kit.restclient.retry import RetryPolicy
|
|
15
|
+
|
|
16
|
+
_default_registry_instance: RestClientRegistry | None = None
|
|
17
|
+
_registry_initializer: Callable[[], None] | None = None
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
def default_rest_registry() -> RestClientRegistry:
|
|
21
|
+
global _default_registry_instance
|
|
22
|
+
if _default_registry_instance is None:
|
|
23
|
+
from persistence_kit.settings import PersistenceKitSettings
|
|
24
|
+
|
|
25
|
+
_default_registry_instance = RestClientRegistry(settings=PersistenceKitSettings())
|
|
26
|
+
return _default_registry_instance
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def set_rest_registry_initializer(fn: Callable[[], None] | None) -> None:
|
|
30
|
+
global _registry_initializer
|
|
31
|
+
_registry_initializer = fn
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
@lru_cache(maxsize=1)
|
|
35
|
+
def _init_registry() -> None:
|
|
36
|
+
if _registry_initializer is not None:
|
|
37
|
+
_registry_initializer()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def register_rest_service(
|
|
41
|
+
name: str,
|
|
42
|
+
*,
|
|
43
|
+
base_url: str = "",
|
|
44
|
+
authenticator: Authenticator | None = None,
|
|
45
|
+
resolver: EndpointResolver | None = None,
|
|
46
|
+
config: ServiceConfig | None = None,
|
|
47
|
+
retry_policy: RetryPolicy | None = None,
|
|
48
|
+
circuit_breaker: CircuitBreaker | None = None,
|
|
49
|
+
replace: bool = False,
|
|
50
|
+
) -> None:
|
|
51
|
+
default_rest_registry().register(
|
|
52
|
+
name,
|
|
53
|
+
base_url=base_url,
|
|
54
|
+
authenticator=authenticator,
|
|
55
|
+
resolver=resolver,
|
|
56
|
+
config=config,
|
|
57
|
+
retry_policy=retry_policy,
|
|
58
|
+
circuit_breaker=circuit_breaker,
|
|
59
|
+
replace=replace,
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def get_rest_client(name: str) -> RestClient:
|
|
64
|
+
_init_registry()
|
|
65
|
+
return default_rest_registry().get(name)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def provide_rest_client(name: str) -> Callable[[], RestClient]:
|
|
69
|
+
def _dep() -> RestClient:
|
|
70
|
+
return get_rest_client(name)
|
|
71
|
+
|
|
72
|
+
return _dep
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def reset_rest_registry() -> None:
|
|
76
|
+
global _default_registry_instance
|
|
77
|
+
_init_registry.cache_clear()
|
|
78
|
+
_default_registry_instance = None
|
|
@@ -103,6 +103,10 @@ class RestClientRegistry:
|
|
|
103
103
|
def names(self) -> tuple[str, ...]:
|
|
104
104
|
return tuple(self._services)
|
|
105
105
|
|
|
106
|
+
def clear(self) -> None:
|
|
107
|
+
self._services.clear()
|
|
108
|
+
self._clients.clear()
|
|
109
|
+
|
|
106
110
|
async def aclose_all(self) -> None:
|
|
107
111
|
for client in self._clients.values():
|
|
108
112
|
await client.aclose()
|
|
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
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/contracts/view_repository.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/memory_repo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/mongo_repo/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository/mongo_repo/mongo_repo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/repository_factory/view/__init__.py
RENAMED
|
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
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{persistence_kit-3.5.0 → persistence_kit-3.6.0}/persistence_kit/security/token_verifiers/__init__.py
RENAMED
|
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
|