base-api-utils 1.1.112__tar.gz → 1.1.113__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.112/src/base_api_utils.egg-info → base_api_utils-1.1.113}/PKG-INFO +1 -1
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/pyproject.toml +1 -1
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/circuit_breaker.py +8 -2
- {base_api_utils-1.1.112 → base_api_utils-1.1.113/src/base_api_utils.egg-info}/PKG-INFO +1 -1
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/tests/test_circuit_breaker.py +47 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/LICENSE +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/README.md +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/setup.cfg +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/commands/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/commands/failed_task_management_mixin.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/event_message.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/event_message_factory.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/events.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/dtos/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/dtos/authz_user.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/fields/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/fields/email_list_field.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/filters/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/filters/base_filter.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/filters/custom_ordering_filter.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/filters/filter_utils_mixin.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/base_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/sponsor_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/sponsorship_addon_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/sponsorship_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/summit_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/ioc/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/ioc/container.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/models/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/models/item_image.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/abstract_access_token_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/abstract_oauth2_api_client.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/access_token_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/check_sponsor_user_permissions.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/group_required.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/oauth2_authentication.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/oauth2_client_factory.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/oauth2_scope_required.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/permission_event_handler.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/shared.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/user_permissions_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/base_model_serializer.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/email_list_char_field.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/nullable_slug_related_field.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/serializers_registry.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/task_result_serializer.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/timestamp_field.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/abstract_serializer.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/base_model_serializer.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/expands.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/query_params.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/spectacular.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_domain_events_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_event_dispatcher.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_images_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_sponsor_metadata_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_storage_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/abstract_summit_metadata_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/amqp_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/celery_failed.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/event_dispatcher.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/images_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/s3_service.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/strategies/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/strategies/abstract_task_runner_strategy.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/strategies/publish_domain_event_strategy.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/tests/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/tests/test_failed_celery_task_management.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/urls.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/async_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/config.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/custom_auto_schema.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/db_connection_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/debounce_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/enums.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/env_var_eval.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/exceptions.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/expand_queryset_optimization_mixin.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/external_errors.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/file_lock.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/fingerprint_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/http_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/inject_job.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/look_up_value_mixin.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/model_helpers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/oauth2_custom_schema_base.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/pagination.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/rate_utils.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/read_write_serializer_mixin.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/serializers.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/service_utils.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/string.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/tests.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/__init__.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/base_view.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/parent_children_crud.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/root_entity_crud.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/tasks_result_view.py +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils.egg-info/SOURCES.txt +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils.egg-info/dependency_links.txt +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils.egg-info/requires.txt +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils.egg-info/top_level.txt +0 -0
- {base_api_utils-1.1.112 → base_api_utils-1.1.113}/tests/test_lazy_imports.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.113
|
|
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.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/circuit_breaker.py
RENAMED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import pybreaker
|
|
2
2
|
import requests
|
|
3
|
+
from rest_framework.exceptions import NotFound, ValidationError
|
|
3
4
|
|
|
4
5
|
from .external_errors import NamedCircuitBreakerError
|
|
5
6
|
|
|
@@ -18,10 +19,15 @@ class NamedCircuitBreaker(pybreaker.CircuitBreaker):
|
|
|
18
19
|
if isinstance(exception, requests.exceptions.HTTPError):
|
|
19
20
|
status_code = exception.response.status_code
|
|
20
21
|
return 400 <= status_code < 500
|
|
22
|
+
# invoke_with_retry converts HTTP 404 → DRF NotFound and HTTP 412 → DRF
|
|
23
|
+
# ValidationError before the exception reaches the breaker. These are still
|
|
24
|
+
# 4xx business errors and must not count as circuit breaker failures.
|
|
25
|
+
if isinstance(exception, (NotFound, ValidationError)):
|
|
26
|
+
return True
|
|
21
27
|
return False
|
|
22
28
|
|
|
23
|
-
#
|
|
24
|
-
exclude = kwargs.
|
|
29
|
+
# Pop existing exclude from kwargs to avoid passing it twice to super()
|
|
30
|
+
exclude = kwargs.pop('exclude', []) or []
|
|
25
31
|
if not isinstance(exclude, list):
|
|
26
32
|
exclude = list(exclude)
|
|
27
33
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: base-api-utils
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.113
|
|
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
|
|
@@ -7,6 +7,7 @@ import time
|
|
|
7
7
|
import pybreaker
|
|
8
8
|
import pytest
|
|
9
9
|
import requests
|
|
10
|
+
from rest_framework.exceptions import NotFound, ValidationError
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
def _load_module(name, file_path):
|
|
@@ -148,6 +149,52 @@ class TestNamedCircuitBreaker:
|
|
|
148
149
|
# Breaker should still be closed
|
|
149
150
|
assert breaker.current_state == "closed"
|
|
150
151
|
|
|
152
|
+
def test_drf_not_found_does_not_trip_breaker(self):
|
|
153
|
+
"""DRF NotFound (converted from HTTP 404 by invoke_with_retry) must not trip the breaker."""
|
|
154
|
+
breaker = self._make_breaker(fail_max=2)
|
|
155
|
+
|
|
156
|
+
def raise_not_found():
|
|
157
|
+
raise NotFound("Resource not found")
|
|
158
|
+
|
|
159
|
+
for _ in range(5):
|
|
160
|
+
with pytest.raises(NotFound):
|
|
161
|
+
breaker.call(raise_not_found)
|
|
162
|
+
|
|
163
|
+
assert breaker.current_state == "closed"
|
|
164
|
+
|
|
165
|
+
def test_drf_validation_error_does_not_trip_breaker(self):
|
|
166
|
+
"""DRF ValidationError (converted from HTTP 412 by invoke_with_retry) must not trip the breaker."""
|
|
167
|
+
breaker = self._make_breaker(fail_max=2)
|
|
168
|
+
|
|
169
|
+
def raise_validation_error():
|
|
170
|
+
raise ValidationError("Precondition failed")
|
|
171
|
+
|
|
172
|
+
for _ in range(5):
|
|
173
|
+
with pytest.raises(ValidationError):
|
|
174
|
+
breaker.call(raise_validation_error)
|
|
175
|
+
|
|
176
|
+
assert breaker.current_state == "closed"
|
|
177
|
+
|
|
178
|
+
def test_exclude_kwarg_not_passed_twice(self):
|
|
179
|
+
"""Passing exclude= to NamedCircuitBreaker should not cause TypeError."""
|
|
180
|
+
custom_exclude = [lambda e: isinstance(e, ValueError)]
|
|
181
|
+
breaker = NamedCircuitBreaker(
|
|
182
|
+
name="test_service",
|
|
183
|
+
fail_max=2,
|
|
184
|
+
reset_timeout=1,
|
|
185
|
+
exclude=custom_exclude,
|
|
186
|
+
)
|
|
187
|
+
|
|
188
|
+
# Custom exclusion should work alongside built-in 4xx exclusion
|
|
189
|
+
def raise_value_error():
|
|
190
|
+
raise ValueError("excluded")
|
|
191
|
+
|
|
192
|
+
for _ in range(5):
|
|
193
|
+
with pytest.raises(ValueError):
|
|
194
|
+
breaker.call(raise_value_error)
|
|
195
|
+
|
|
196
|
+
assert breaker.current_state == "closed"
|
|
197
|
+
|
|
151
198
|
|
|
152
199
|
@pytest.mark.unit
|
|
153
200
|
class TestCallWithBreaker:
|
|
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.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/event_message.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/domain/event_message_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/fields/email_list_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/filters/filter_utils_mixin.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/handlers/base_event_handler.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
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/security/group_required.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.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/timestamp_field.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/expands.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/query_params.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/serializers/v2/spectacular.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.112 → base_api_utils-1.1.113}/src/base_api_utils/services/amqp_service.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/celery_failed.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/event_dispatcher.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/images_service.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/services/strategies/__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
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/custom_auto_schema.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/db_connection_helpers.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/debounce_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/external_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/fingerprint_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/utils/look_up_value_mixin.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
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/parent_children_crud.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/root_entity_crud.py
RENAMED
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils/views/tasks_result_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{base_api_utils-1.1.112 → base_api_utils-1.1.113}/src/base_api_utils.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|