ul-api-utils 7.10.7__tar.gz → 7.11.1__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 ul-api-utils might be problematic. Click here for more details.
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/PKG-INFO +1 -1
- ul-api-utils-7.11.1/example/redis_repository.py +22 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/routes/api_some.py +15 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/setup.py +1 -1
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/socketio.py +0 -2
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_three_specifier.py +56 -19
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/memory_db/repository.py +7 -1
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/PKG-INFO +1 -1
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/SOURCES.txt +1 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/LICENSE +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/README.md +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/conf.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/main.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/models/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/permissions.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/pure_flask_example.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/rate_limit_load.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/routes/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/on_connect.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/on_disconnect.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/on_json.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/on_message.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/sockets/on_open.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/workers/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/example/workers/worker.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/setup.cfg +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/access/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_request.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_config.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_error_handling.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_fn_typing.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_response.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_response_db.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_response_payload_alias.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/db_types.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/signature_check.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_enc_keys.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_gen_api_user_token.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_gen_new_api_user.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_generate_api_docs.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_start.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/cmd_worker_start.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/start/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/start/gunicorn.conf.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/commands/start/wsgi.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/conf/ul-debugger-main.js +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/conf/ul-debugger-ui.js +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/conf.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/const.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/debug/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/debug/debugger.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/debug/malloc.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/debug/stat.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/encrypt/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/errors.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/__tests__/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/__tests__/internal_api.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/__tests__/internal_api_content_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api_check_context.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api_error.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api_response.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/main.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/__tests__/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/api_sdk.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/api_sdk_config.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/api_sdk_jwt.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/intermediate_state.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/worker_context.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/worker_sdk.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/worker_sdk_config.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/py.typed +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/caching.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/debugger_scripts.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/const.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/health_check.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/health_check_template.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/resource.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/not_implemented.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/permissions.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/rate_limitter.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/swagger.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/custom_fields/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/custom_fields/custom_checkbox_select.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/custom_widgets/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/custom_widgets/custom_select_widget.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/custom_widgets/custom_text_input_widget.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/web_forms/uni_form.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/sentry.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/__tests__/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/__tests__/api_path_version.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/__tests__/unwrap_typing.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_encoding.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_format.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_method.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_pagination.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_path_version.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/api_request_info.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/avro.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/broker_topics_message_count.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/cached_per_request.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/colors.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/constants.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/decode_base64.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/deprecated.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flags.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/conf.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/exceptions.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/specifiers/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_models.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_specifier.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/specifiers/swagger_version.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/input_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/parameter_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/replace_in_dict.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/request_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/schema_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/utils/security_type.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/imports.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/instance_checks.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/jinja/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/jinja/t_url_for.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/jinja/to_pretty_json.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/json_encoder.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/load_modules.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/memory_db/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/memory_db/__tests__/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/memory_db/errors.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/token_check.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/token_check_through_request.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/unwrap_typing.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/uuid_converter.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/__tests__/__init__.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/__tests__/test_custom_fields.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/custom_fields.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/validate_empty_object.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/validate_uuid.py +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/dependency_links.txt +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/entry_points.txt +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/requires.txt +0 -0
- {ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
from typing import Any
|
|
2
|
+
|
|
3
|
+
import redis
|
|
4
|
+
from pydantic import BaseModel, UUID4
|
|
5
|
+
from uuid import uuid4
|
|
6
|
+
from ul_api_utils.utils.memory_db.repository import BaseMemoryDbRepository
|
|
7
|
+
|
|
8
|
+
redis_client: Any = redis.StrictRedis.from_url("redis://172.19.0.2:6379")
|
|
9
|
+
redis_db = BaseMemoryDbRepository(redis_client=redis_client)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Person(BaseModel):
|
|
13
|
+
id: UUID4
|
|
14
|
+
name: str = 'Slava'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
slava = Person(id=uuid4())
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
redis_db['slava'] = 35
|
|
21
|
+
value = redis_db['slava', Person]
|
|
22
|
+
value2 = redis_db.get('slava', default=1)
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import logging
|
|
2
|
+
from enum import IntEnum, Enum
|
|
2
3
|
from time import sleep
|
|
3
4
|
from datetime import datetime, timedelta
|
|
4
5
|
from typing import List, Optional, Tuple
|
|
@@ -43,13 +44,20 @@ class RespObject(JsonApiResponsePayload):
|
|
|
43
44
|
notes: str = ''
|
|
44
45
|
|
|
45
46
|
|
|
47
|
+
class Eeenum(IntEnum):
|
|
48
|
+
one = 1
|
|
49
|
+
two = 2
|
|
50
|
+
|
|
51
|
+
|
|
46
52
|
class SomeBody(BaseModel):
|
|
47
53
|
seconds: float
|
|
54
|
+
eenum: Optional[Eeenum]
|
|
48
55
|
|
|
49
56
|
|
|
50
57
|
class Some2Query(ApiRequestQuery):
|
|
51
58
|
sleep: float = 0.4
|
|
52
59
|
some: QueryParamsSeparatedList[str] = '' # type: ignore
|
|
60
|
+
eenum: Optional[Eeenum]
|
|
53
61
|
|
|
54
62
|
|
|
55
63
|
logger = logging.getLogger(__name__)
|
|
@@ -79,8 +87,15 @@ def some5(api_resource: ApiResource, body: SomeBody) -> JsonApiResponse[List[Res
|
|
|
79
87
|
], 2)
|
|
80
88
|
|
|
81
89
|
|
|
90
|
+
class Eennum(Enum):
|
|
91
|
+
one = 'one'
|
|
92
|
+
two = 'two'
|
|
93
|
+
|
|
94
|
+
|
|
82
95
|
class Some7Query(ApiRequestQuery):
|
|
83
96
|
need_redirect: int
|
|
97
|
+
eenum: Optional[Eeenum]
|
|
98
|
+
eennum: Optional[Eennum]
|
|
84
99
|
|
|
85
100
|
|
|
86
101
|
@sdk.rest_api('POST', '/example-resource-simple-any', access=sdk.ACCESS_PUBLIC)
|
|
@@ -48,9 +48,7 @@ def init_socket_io(config: SocketIOConfig | None) -> SocketIO | None:
|
|
|
48
48
|
if config.app_type is SocketIOConfigType.EXTERNAL_PROCESS:
|
|
49
49
|
socket_io = SocketIO(
|
|
50
50
|
message_queue=config.message_queue,
|
|
51
|
-
async_mode=SocketAsyncModesEnum.GEVENT.value,
|
|
52
51
|
channel=config.channel,
|
|
53
|
-
cors_allowed_origins=config.cors_allowed_origins,
|
|
54
52
|
logger=config.logs_enabled,
|
|
55
53
|
engineio_logger=config.engineio_logs_enabled,
|
|
56
54
|
)
|
|
@@ -378,6 +378,7 @@ class SwaggerQueryParameter(SwaggerModel):
|
|
|
378
378
|
name: Optional[str] = None,
|
|
379
379
|
description: Optional[str] = None,
|
|
380
380
|
required: bool = True,
|
|
381
|
+
enum: Optional[list] = None, # type: ignore
|
|
381
382
|
) -> None:
|
|
382
383
|
super(SwaggerQueryParameter, self).__init__()
|
|
383
384
|
self.input_type = InputType.from_string(input_type) # type: ignore
|
|
@@ -386,6 +387,7 @@ class SwaggerQueryParameter(SwaggerModel):
|
|
|
386
387
|
self.name = name
|
|
387
388
|
self.description = f'description: {description}' if description else ''
|
|
388
389
|
self.required = required
|
|
390
|
+
self.enum = enum
|
|
389
391
|
|
|
390
392
|
def perform_write(self, file) -> None: # type: ignore
|
|
391
393
|
if self.input_type.value == InputType.UUID:
|
|
@@ -407,25 +409,48 @@ class SwaggerQueryParameter(SwaggerModel):
|
|
|
407
409
|
),
|
|
408
410
|
)
|
|
409
411
|
else:
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
412
|
+
if self.enum is not None:
|
|
413
|
+
parameter_entry = inspect.cleandoc(
|
|
414
|
+
"""
|
|
415
|
+
- in: query
|
|
416
|
+
name: {name}
|
|
417
|
+
schema:
|
|
418
|
+
type: {input_type}
|
|
419
|
+
{input_format}
|
|
420
|
+
enum: {enum}
|
|
421
|
+
{default_value}
|
|
422
|
+
{description}
|
|
423
|
+
required: {required}
|
|
424
|
+
""".format(
|
|
425
|
+
name=self.name,
|
|
426
|
+
required=self.required,
|
|
427
|
+
description=self.description,
|
|
428
|
+
input_type=self.input_type.value,
|
|
429
|
+
input_format=self.input_format,
|
|
430
|
+
default_value=self.default_value,
|
|
431
|
+
enum=self.enum,
|
|
432
|
+
),
|
|
433
|
+
)
|
|
434
|
+
else:
|
|
435
|
+
parameter_entry = inspect.cleandoc(
|
|
436
|
+
"""
|
|
437
|
+
- in: query
|
|
438
|
+
name: {name}
|
|
439
|
+
schema:
|
|
440
|
+
type: {input_type}
|
|
441
|
+
{input_format}
|
|
442
|
+
{default_value}
|
|
443
|
+
{description}
|
|
444
|
+
required: {required}
|
|
445
|
+
""".format(
|
|
446
|
+
name=self.name,
|
|
447
|
+
required=self.required,
|
|
448
|
+
description=self.description,
|
|
449
|
+
input_type=self.input_type.value,
|
|
450
|
+
input_format=self.input_format,
|
|
451
|
+
default_value=self.default_value,
|
|
452
|
+
),
|
|
453
|
+
)
|
|
429
454
|
|
|
430
455
|
param = self.indent(parameter_entry, 3 * self.TAB)
|
|
431
456
|
file.write(param)
|
|
@@ -484,6 +509,7 @@ class SwaggerPath(SwaggerModel):
|
|
|
484
509
|
swagger_request_type.add_swagger_model(parameters)
|
|
485
510
|
query_schema = query_model.schema()
|
|
486
511
|
query_required_fields = set(query_schema.get('required')) if query_schema.get('required') is not None else set()
|
|
512
|
+
query_definitions = query_schema.get('definitions')
|
|
487
513
|
for parameter_name, parameter_spec in query_schema.get('properties').items():
|
|
488
514
|
if parameter_spec.get('type') is not None:
|
|
489
515
|
parameter_models.add(SwaggerQueryParameter(
|
|
@@ -494,6 +520,17 @@ class SwaggerPath(SwaggerModel):
|
|
|
494
520
|
description=parameter_spec.get('description'),
|
|
495
521
|
required=parameter_name in query_required_fields,
|
|
496
522
|
))
|
|
523
|
+
elif parameter_spec.get('$ref') is not None:
|
|
524
|
+
definition = query_definitions.get(parameter_spec.get('$ref', '').split('/')[-1], {})
|
|
525
|
+
parameter_models.add(SwaggerQueryParameter(
|
|
526
|
+
input_type=definition.get('type', 'string'),
|
|
527
|
+
input_format=definition.get('format'),
|
|
528
|
+
default_value=definition.get('default'),
|
|
529
|
+
name=parameter_name,
|
|
530
|
+
description=definition.get('description'),
|
|
531
|
+
enum=definition.get('enum'),
|
|
532
|
+
required=parameter_name in query_required_fields,
|
|
533
|
+
))
|
|
497
534
|
if isinstance(parameters, SwaggerModel):
|
|
498
535
|
parameters.add_swagger_models(parameter_models)
|
|
499
536
|
elif isinstance(parameters, list):
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import decimal
|
|
2
|
+
from datetime import timedelta
|
|
3
|
+
|
|
2
4
|
import redis
|
|
3
5
|
import ormsgpack
|
|
4
6
|
import collections
|
|
@@ -13,6 +15,7 @@ CompositeKeyT = tuple[str, Type[BaseModel]]
|
|
|
13
15
|
AnyKeyT = str | CompositeKeyT
|
|
14
16
|
AnyT = Any
|
|
15
17
|
RedisClientT = redis.StrictRedis | redis.Redis
|
|
18
|
+
ExpiryT = int | timedelta | None
|
|
16
19
|
|
|
17
20
|
|
|
18
21
|
class BaseMemoryDbRepository(collections.abc.MutableMapping[str, AnyT]):
|
|
@@ -32,6 +35,10 @@ class BaseMemoryDbRepository(collections.abc.MutableMapping[str, AnyT]):
|
|
|
32
35
|
except KeyError:
|
|
33
36
|
return default
|
|
34
37
|
|
|
38
|
+
def set(self, __key: str, value: AnyT, *, expires: ExpiryT = None) -> None:
|
|
39
|
+
packed_value = ormsgpack.packb(value, option=ormsgpack.OPT_SERIALIZE_PYDANTIC, default=self._default_serializer)
|
|
40
|
+
self._db.set(__key, packed_value, ex=expires)
|
|
41
|
+
|
|
35
42
|
@overload
|
|
36
43
|
def __getitem__(self, key: str) -> AnyT:
|
|
37
44
|
...
|
|
@@ -48,7 +55,6 @@ class BaseMemoryDbRepository(collections.abc.MutableMapping[str, AnyT]):
|
|
|
48
55
|
return ormsgpack.unpackb(self._db[single_key])
|
|
49
56
|
|
|
50
57
|
composite_key = cast(CompositeKeyT, key)
|
|
51
|
-
|
|
52
58
|
if len(composite_key) > self._composite_key_max_length:
|
|
53
59
|
raise CompositeKeyError(f"Can't retrieve an item with {key=}. Composite key should have only two arguments.")
|
|
54
60
|
|
|
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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_config.py
RENAMED
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_error_handling.py
RENAMED
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_resource_fn_typing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/api_resource/api_response_payload_alias.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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/encrypt/encrypt_decrypt_abstract.py
RENAMED
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/encrypt/encrypt_decrypt_aes_xtea.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/__tests__/internal_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api_check_context.py
RENAMED
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/internal_api/internal_api_response.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/modules/__tests__/test_api_sdk_jwt.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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/resources/health_check/health_check.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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/__tests__/api_path_version.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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/broker_topics_message_count.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/__init__.py
RENAMED
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/conf.py
RENAMED
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/flask_swagger_generator/exceptions.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
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/memory_db/__tests__/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/utils/token_check_through_request.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/__tests__/test_custom_fields.py
RENAMED
|
File without changes
|
|
File without changes
|
{ul-api-utils-7.10.7 → ul-api-utils-7.11.1}/ul_api_utils/validators/validate_empty_object.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|