base-api-utils 1.1.108__tar.gz → 1.1.110.dev1__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.
- {base_api_utils-1.1.108/src/base_api_utils.egg-info → base_api_utils-1.1.110.dev1}/PKG-INFO +1 -1
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/pyproject.toml +1 -1
- base_api_utils-1.1.110.dev1/src/base_api_utils/__init__.py +1 -0
- base_api_utils-1.1.110.dev1/src/base_api_utils/serializers/__init__.py +5 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/abstract_serializer.py +14 -1
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/expand_queryset_optimization_mixin.py +4 -5
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1/src/base_api_utils.egg-info}/PKG-INFO +1 -1
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/SOURCES.txt +2 -1
- base_api_utils-1.1.110.dev1/tests/test_lazy_imports.py +58 -0
- base_api_utils-1.1.108/src/base_api_utils/__init__.py +0 -1
- base_api_utils-1.1.108/src/base_api_utils/serializers/__init__.py +0 -5
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/LICENSE +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/README.md +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/setup.cfg +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/commands/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/commands/failed_task_management_mixin.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/event_message.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/event_message_factory.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/events.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/dtos/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/dtos/authz_user.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/fields/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/fields/email_list_field.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/base_filter.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/custom_ordering_filter.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/filter_utils_mixin.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/base_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/sponsor_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/sponsorship_addon_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/sponsorship_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/summit_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/ioc/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/ioc/container.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/models/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/models/item_image.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/abstract_access_token_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/abstract_oauth2_api_client.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/access_token_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/check_sponsor_user_permissions.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/group_required.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/oauth2_authentication.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/oauth2_client_factory.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/oauth2_scope_required.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/permission_event_handler.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/shared.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/user_permissions_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/base_model_serializer.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/email_list_char_field.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/nullable_slug_related_field.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/serializers_registry.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/task_result_serializer.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/timestamp_field.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/base_model_serializer.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/expands.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/query_params.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_domain_events_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_event_dispatcher.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_images_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_sponsor_metadata_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_storage_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/abstract_summit_metadata_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/amqp_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/celery_failed.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/event_dispatcher.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/images_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/s3_service.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/strategies/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/strategies/abstract_task_runner_strategy.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/strategies/publish_domain_event_strategy.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/tests/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/tests/test_failed_celery_task_management.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/urls.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/async_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/circuit_breaker.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/config.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/custom_auto_schema.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/db_connection_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/debounce_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/enums.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/env_var_eval.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/exceptions.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/external_errors.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/file_lock.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/fingerprint_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/http_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/inject_job.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/look_up_value_mixin.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/model_helpers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/oauth2_custom_schema_base.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/pagination.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/rate_utils.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/read_write_serializer_mixin.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/serializers.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/service_utils.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/string.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/tests.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/__init__.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/base_view.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/parent_children_crud.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/root_entity_crud.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/tasks_result_view.py +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/dependency_links.txt +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/requires.txt +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/top_level.txt +0 -0
- {base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/tests/test_circuit_breaker.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: base-api-utils
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.110.dev1
|
|
4
4
|
Summary: Django Rest Framework micro services common utilities
|
|
5
5
|
Author-email: Román Gutierrez <roman@tipit.net>, Sebastian Marcet <sebastian@tipit.net>
|
|
6
6
|
Project-URL: Homepage, https://github.com/fntechgit/base-api-utils
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .urls import private_tasks_admin_patterns # noqa: F401
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
from .base_model_serializer import BaseModelSerializer # noqa: F401
|
|
2
|
+
from .email_list_char_field import EmailListCharField # noqa: F401
|
|
3
|
+
from .serializers_registry import SerializersRegistry # noqa: F401
|
|
4
|
+
from .task_result_serializer import TaskResultSerializer # noqa: F401
|
|
5
|
+
from .timestamp_field import TimestampField # noqa: F401
|
|
@@ -156,4 +156,17 @@ class AbstractSerializer:
|
|
|
156
156
|
context=self._own_context,
|
|
157
157
|
)
|
|
158
158
|
|
|
159
|
-
return fields
|
|
159
|
+
return fields
|
|
160
|
+
|
|
161
|
+
def get_expand(self):
|
|
162
|
+
"""Return relation names requested for expansion at this serializer's level."""
|
|
163
|
+
return list(self._own_context.get("expand_tree", {}).keys())
|
|
164
|
+
|
|
165
|
+
def get_child_context(self, attr):
|
|
166
|
+
"""Build a scoped context for a child serializer being expanded at *attr*.
|
|
167
|
+
|
|
168
|
+
Use in custom SerializerMethodField getters:
|
|
169
|
+
return ChildSerializer(context=self.get_child_context('field_name')).to_representation(obj)
|
|
170
|
+
"""
|
|
171
|
+
from .expands import _child_context
|
|
172
|
+
return _child_context(self._own_context, attr)
|
|
@@ -2,17 +2,14 @@ from typing import Any, Iterable, List, Set, Tuple
|
|
|
2
2
|
|
|
3
3
|
from rest_framework.response import Response
|
|
4
4
|
|
|
5
|
-
from base_api_utils.serializers.v2.query_params import (
|
|
6
|
-
parse_request_trees,
|
|
7
|
-
should_expand,
|
|
8
|
-
subtree,
|
|
9
|
-
)
|
|
10
5
|
|
|
11
6
|
class ExpandQuerysetOptimizationMixin:
|
|
12
7
|
# Auto-optimizes queryset from serializer.expand_mappings (recursive),
|
|
13
8
|
# plus runs bulk hooks for computed relations."""
|
|
14
9
|
|
|
15
10
|
def _parse_trees(self):
|
|
11
|
+
from base_api_utils.serializers.v2.query_params import parse_request_trees
|
|
12
|
+
|
|
16
13
|
return parse_request_trees(self.request)
|
|
17
14
|
|
|
18
15
|
def _include_field(self, fields_tree: dict | None, attr: str) -> bool:
|
|
@@ -29,6 +26,8 @@ class ExpandQuerysetOptimizationMixin:
|
|
|
29
26
|
relations_tree: dict | None,
|
|
30
27
|
prefix: str = "",
|
|
31
28
|
) -> Tuple[Set[str], Set[str], List[Tuple[str, dict, dict | None, dict | None]]]:
|
|
29
|
+
from base_api_utils.serializers.v2.query_params import should_expand, subtree
|
|
30
|
+
|
|
32
31
|
select_paths: Set[str] = set()
|
|
33
32
|
prefetch_paths: Set[str] = set()
|
|
34
33
|
bulk_hooks: List[Tuple[str, dict, dict | None, dict | None]] = []
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: base-api-utils
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.110.dev1
|
|
4
4
|
Summary: Django Rest Framework micro services common utilities
|
|
5
5
|
Author-email: Román Gutierrez <roman@tipit.net>, Sebastian Marcet <sebastian@tipit.net>
|
|
6
6
|
Project-URL: Homepage, https://github.com/fntechgit/base-api-utils
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/SOURCES.txt
RENAMED
|
@@ -104,4 +104,5 @@ src/base_api_utils/views/base_view.py
|
|
|
104
104
|
src/base_api_utils/views/parent_children_crud.py
|
|
105
105
|
src/base_api_utils/views/root_entity_crud.py
|
|
106
106
|
src/base_api_utils/views/tasks_result_view.py
|
|
107
|
-
tests/test_circuit_breaker.py
|
|
107
|
+
tests/test_circuit_breaker.py
|
|
108
|
+
tests/test_lazy_imports.py
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import importlib.util
|
|
2
|
+
import sys
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def _load_module(name, file_path):
|
|
9
|
+
"""Load a module directly from file path, bypassing package __init__.py."""
|
|
10
|
+
spec = importlib.util.spec_from_file_location(name, file_path)
|
|
11
|
+
if spec is None or spec.loader is None:
|
|
12
|
+
raise ImportError(f"Could not load module {name} from {file_path}")
|
|
13
|
+
module = importlib.util.module_from_spec(spec)
|
|
14
|
+
sys.modules[name] = module
|
|
15
|
+
spec.loader.exec_module(module)
|
|
16
|
+
return module
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
_utils_dir = Path(__file__).resolve().parent.parent / "src" / "base_api_utils" / "utils"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
@pytest.mark.unit
|
|
23
|
+
class TestExpandQuerysetOptimizationMixinImports:
|
|
24
|
+
"""Regression: ExpandQuerysetOptimizationMixin must not trigger
|
|
25
|
+
serializers/__init__.py at module load time, because that chain
|
|
26
|
+
reaches django_celery_results.models.TaskResult (a Django model
|
|
27
|
+
that requires the app registry to be ready).
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
def test_mixin_module_loads_without_triggering_serializers_init(self):
|
|
31
|
+
"""Loading the mixin module should NOT execute serializers/__init__.py."""
|
|
32
|
+
# Clear any cached state
|
|
33
|
+
mod_name = "base_api_utils.utils.expand_queryset_optimization_mixin"
|
|
34
|
+
for key in list(sys.modules):
|
|
35
|
+
if key.startswith("base_api_utils.serializers"):
|
|
36
|
+
del sys.modules[key]
|
|
37
|
+
if mod_name in sys.modules:
|
|
38
|
+
del sys.modules[mod_name]
|
|
39
|
+
|
|
40
|
+
module = _load_module(mod_name, _utils_dir / "expand_queryset_optimization_mixin.py")
|
|
41
|
+
|
|
42
|
+
# Module should load successfully and define the mixin class
|
|
43
|
+
assert hasattr(module, "ExpandQuerysetOptimizationMixin")
|
|
44
|
+
|
|
45
|
+
# serializers/__init__.py should NOT have been executed during load
|
|
46
|
+
assert "base_api_utils.serializers" not in sys.modules
|
|
47
|
+
assert "base_api_utils.serializers.task_result_serializer" not in sys.modules
|
|
48
|
+
|
|
49
|
+
def test_mixin_has_no_module_level_query_params_import(self):
|
|
50
|
+
"""The query_params import should be deferred to method level."""
|
|
51
|
+
mod_name = "base_api_utils.utils.expand_queryset_optimization_mixin"
|
|
52
|
+
if mod_name in sys.modules:
|
|
53
|
+
del sys.modules[mod_name]
|
|
54
|
+
|
|
55
|
+
module = _load_module(mod_name, _utils_dir / "expand_queryset_optimization_mixin.py")
|
|
56
|
+
|
|
57
|
+
# query_params should NOT be loaded at module level
|
|
58
|
+
assert "base_api_utils.serializers.v2.query_params" not in sys.modules
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
from .urls import private_tasks_admin_patterns
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/commands/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/__init__.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/domain/event_message.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/dtos/authz_user.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/fields/__init__.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/fields/email_list_field.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/__init__.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/filters/base_filter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/handlers/__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
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/models/__init__.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/models/item_image.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/group_required.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/security/shared.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
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/serializers/v2/expands.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/amqp_service.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/celery_failed.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/images_service.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/services/s3_service.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
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/async_helpers.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/circuit_breaker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/debounce_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/env_var_eval.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/exceptions.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/external_errors.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/file_lock.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/http_helpers.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/inject_job.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/model_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/pagination.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/rate_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/serializers.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/utils/service_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/base_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/root_entity_crud.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils/views/tasks_result_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/requires.txt
RENAMED
|
File without changes
|
{base_api_utils-1.1.108 → base_api_utils-1.1.110.dev1}/src/base_api_utils.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|