amsdal 0.5.9__cp311-cp311-macosx_10_9_universal2.whl → 0.5.11__cp311-cp311-macosx_10_9_universal2.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. amsdal/__about__.py +1 -1
  2. amsdal/__migrations__/0004_update_class_file.py +45 -0
  3. amsdal/cloud/__init__.cpython-311-darwin.so +0 -0
  4. amsdal/cloud/client.cpython-311-darwin.so +0 -0
  5. amsdal/cloud/constants.cpython-311-darwin.so +0 -0
  6. amsdal/cloud/enums.cpython-311-darwin.so +0 -0
  7. amsdal/cloud/models/__init__.cpython-311-darwin.so +0 -0
  8. amsdal/cloud/models/base.cpython-311-darwin.so +0 -0
  9. amsdal/cloud/services/__init__.cpython-311-darwin.so +0 -0
  10. amsdal/cloud/services/actions/__init__.cpython-311-darwin.so +0 -0
  11. amsdal/cloud/services/actions/add_allowlist_ip.cpython-311-darwin.so +0 -0
  12. amsdal/cloud/services/actions/add_basic_auth.cpython-311-darwin.so +0 -0
  13. amsdal/cloud/services/actions/add_dependency.cpython-311-darwin.so +0 -0
  14. amsdal/cloud/services/actions/add_secret.cpython-311-darwin.so +0 -0
  15. amsdal/cloud/services/actions/base.cpython-311-darwin.so +0 -0
  16. amsdal/cloud/services/actions/create_deploy.cpython-311-darwin.so +0 -0
  17. amsdal/cloud/services/actions/create_env.cpython-311-darwin.so +0 -0
  18. amsdal/cloud/services/actions/create_session.cpython-311-darwin.so +0 -0
  19. amsdal/cloud/services/actions/delete_allowlist_ip.cpython-311-darwin.so +0 -0
  20. amsdal/cloud/services/actions/delete_basic_auth.cpython-311-darwin.so +0 -0
  21. amsdal/cloud/services/actions/delete_dependency.cpython-311-darwin.so +0 -0
  22. amsdal/cloud/services/actions/delete_env.cpython-311-darwin.so +0 -0
  23. amsdal/cloud/services/actions/delete_secret.cpython-311-darwin.so +0 -0
  24. amsdal/cloud/services/actions/destroy_deploy.cpython-311-darwin.so +0 -0
  25. amsdal/cloud/services/actions/expose_db.cpython-311-darwin.so +0 -0
  26. amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-311-darwin.so +0 -0
  27. amsdal/cloud/services/actions/get_monitoring_info.cpython-311-darwin.so +0 -0
  28. amsdal/cloud/services/actions/list_dependencies.cpython-311-darwin.so +0 -0
  29. amsdal/cloud/services/actions/list_deploys.cpython-311-darwin.so +0 -0
  30. amsdal/cloud/services/actions/list_envs.cpython-311-darwin.so +0 -0
  31. amsdal/cloud/services/actions/list_secrets.cpython-311-darwin.so +0 -0
  32. amsdal/cloud/services/actions/manager.cpython-311-darwin.so +0 -0
  33. amsdal/cloud/services/actions/signup_action.cpython-311-darwin.so +0 -0
  34. amsdal/cloud/services/actions/update_deploy.cpython-311-darwin.so +0 -0
  35. amsdal/cloud/services/auth/__init__.cpython-311-darwin.so +0 -0
  36. amsdal/cloud/services/auth/base.cpython-311-darwin.so +0 -0
  37. amsdal/cloud/services/auth/credentials.cpython-311-darwin.so +0 -0
  38. amsdal/cloud/services/auth/manager.cpython-311-darwin.so +0 -0
  39. amsdal/cloud/services/auth/signup_service.cpython-311-darwin.so +0 -0
  40. amsdal/cloud/services/auth/token.cpython-311-darwin.so +0 -0
  41. amsdal/contrib/__init__.cpython-311-darwin.so +0 -0
  42. amsdal/contrib/frontend_configs/migrations/0001_update_frontend_control_config.py +245 -0
  43. amsdal/contrib/frontend_configs/models/frontend_control_config.py +57 -46
  44. amsdal/fixtures/__init__.cpython-311-darwin.so +0 -0
  45. amsdal/fixtures/manager.cpython-311-darwin.so +0 -0
  46. amsdal/fixtures/utils.cpython-311-darwin.so +0 -0
  47. amsdal/manager.cpython-311-darwin.so +0 -0
  48. amsdal/mixins/__init__.cpython-311-darwin.so +0 -0
  49. amsdal/mixins/class_versions_mixin.cpython-311-darwin.so +0 -0
  50. amsdal/models/core/file.py +10 -17
  51. amsdal/schemas/manager.cpython-311-darwin.so +0 -0
  52. amsdal/services/__init__.cpython-311-darwin.so +0 -0
  53. amsdal/services/transaction_execution.cpython-311-darwin.so +0 -0
  54. {amsdal-0.5.9.dist-info → amsdal-0.5.11.dist-info}/METADATA +1 -1
  55. {amsdal-0.5.9.dist-info → amsdal-0.5.11.dist-info}/RECORD +58 -56
  56. {amsdal-0.5.9.dist-info → amsdal-0.5.11.dist-info}/WHEEL +0 -0
  57. {amsdal-0.5.9.dist-info → amsdal-0.5.11.dist-info}/licenses/LICENSE.txt +0 -0
  58. {amsdal-0.5.9.dist-info → amsdal-0.5.11.dist-info}/top_level.txt +0 -0
amsdal/__about__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present
2
2
  #
3
3
  # SPDX-License-Identifier: AMSDAL End User License Agreement
4
- __version__ = '0.5.9'
4
+ __version__ = '0.5.11'
@@ -0,0 +1,45 @@
1
+ from amsdal_models.migration import migrations
2
+ from amsdal_utils.models.enums import ModuleType
3
+
4
+
5
+ class Migration(migrations.Migration):
6
+ operations: list[migrations.Operation] = [
7
+ migrations.UpdateClass(
8
+ module_type=ModuleType.CORE,
9
+ class_name="File",
10
+ old_schema={
11
+ "title": "File",
12
+ "required": ["filename"],
13
+ "properties": {
14
+ "filename": {"type": "string", "title": "Filename"},
15
+ "data": {"type": "binary", "title": "Data"},
16
+ "size": {"type": "number", "title": "Size"},
17
+ "storage_address": {"type": "anything", "title": "Storage Reference"},
18
+ },
19
+ "custom_code": 'import base64\nimport io\nfrom contextlib import suppress\nfrom pathlib import Path\nfrom typing import IO\nfrom typing import Any\nfrom typing import BinaryIO\n\nfrom amsdal_models.storage.backends.db import DBStorage\nfrom amsdal_models.storage.base import Storage\nfrom pydantic import model_validator\n\n\n@classmethod\ndef data_base64_decode(cls, data: Any) -> bytes:\n if isinstance(data, str):\n data = data.encode(\'utf-8\')\n is_base64: bool = False\n with suppress(Exception):\n is_base64 = base64.b64encode(base64.b64decode(data)) == data\n if is_base64:\n return base64.b64decode(data)\n return data\n\n@classmethod\ndef from_bytes(cls, filename: str, data: bytes) -> \'File\':\n """\n Creates a `File` object from a byte string.\n\n Args:\n filename (str): The filename of the file.\n data (bytes): The byte string containing the file data.:\n\n Returns:\n File: The created `File` object.\n """\n obj = cls(filename=filename, data=data, size=len(data))\n obj._needs_persist = True\n return obj\n\n@classmethod\ndef from_file(cls, file_or_path: Path | BinaryIO) -> \'File\':\n """\n Creates a `File` object from a file path or a binary file object.\n\n Args:\n file_or_path (Path | BinaryIO): The file path or binary file object.\n\n Returns:\n File: The created `File` object.\n\n Raises:\n ValueError: If the provided path is a directory.\n """\n f: BinaryIO | io.BufferedReader\n if isinstance(file_or_path, Path):\n if file_or_path.is_dir():\n msg = f\'{file_or_path} is a directory\'\n raise ValueError(msg)\n f = file_or_path.open(\'rb\')\n filename = file_or_path.name\n size = file_or_path.stat().st_size\n else:\n f = file_or_path\n filename = Path(getattr(f, \'name\', \'unnamed\')).name\n try:\n if f.seekable():\n f.seek(0, io.SEEK_END)\n size = f.tell()\n f.seek(0)\n else:\n size = None\n except (OSError, AttributeError):\n size = None\n obj = cls(filename=filename, size=size)\n obj._source = f\n obj._needs_persist = True\n return obj\n\n@model_validator(mode=\'before\')\n@classmethod\ndef validate_model_data(cls, data: Any) -> Any:\n if isinstance(data, dict):\n if \'data\' in data:\n if data[\'data\']:\n data[\'data\'] = cls.data_base64_decode(data[\'data\'])\n data[\'size\'] = len(data[\'data\'])\n else:\n data[\'size\'] = 0\n return data\n\n@property\ndef mimetype(self) -> str | None:\n """\n Returns the MIME type of the file based on its filename.\n\n This method uses the `mimetypes` module to guess the MIME type of the file.\n\n Returns:\n str | None: The guessed MIME type of the file, or None if it cannot be determined.\n """\n import mimetypes\n return mimetypes.guess_type(self.filename)[0]\n\n@property\ndef storage(self) -> Storage:\n from amsdal.storages import default_storage\n if self._storage:\n return self._storage\n if self.storage_address:\n return Storage.from_storage_spec({\'storage_class\': self.storage_address.ref.resource})\n return default_storage()\n\nasync def aopen(self, mode: str=\'rb\') -> Any:\n """\n Async variant of open().\n\n Uses the resolved storage to call aopen(); if the backend does not implement\n async, falls back to the sync open().\n """\n try:\n return await self.storage.aopen(self, mode)\n except NotImplementedError:\n return self.storage.open(self, mode)\n\nasync def apre_create(self) -> None:\n if self._needs_persist:\n from amsdal_models.storage.persistence import apersist_file\n await apersist_file(self, storage=self.storage)\n\nasync def apre_update(self) -> None:\n if self._needs_persist:\n from amsdal_models.storage.persistence import apersist_file\n await apersist_file(self, storage=self.storage)\n\nasync def aread_bytes(self) -> bytes:\n async with await self.aopen() as f:\n return await f.read()\n\nasync def aurl(self) -> str:\n """\n Async variant of url().\n\n Uses the resolved storage to call aurl(); if the backend does not implement\n async, falls back to the sync url().\n """\n try:\n return await self.storage.aurl(self)\n except NotImplementedError:\n return self.storage.url(self)\n\ndef __repr__(self) -> str:\n return f"File<{self.filename}>({self.size or len(self.data or \'\') or 0} bytes)"\n\ndef __str__(self) -> str:\n return repr(self)\n\ndef open(self, mode: str=\'rb\') -> IO[Any]:\n """\n Open a binary stream for reading (or other modes if supported) using storage_address.\n\n Raises StateError if storage_address is missing.\n """\n return self.storage.open(self, mode)\n\ndef pre_create(self) -> None:\n if self._needs_persist:\n from amsdal_models.storage.persistence import persist_file\n persist_file(self, storage=self.storage)\n\ndef pre_update(self) -> None:\n if self._needs_persist:\n from amsdal_models.storage.persistence import persist_file\n persist_file(self, storage=self.storage)\n\ndef read_bytes(self) -> bytes:\n with self.open() as f:\n return f.read()\n\ndef set_data(self, data: bytes | str) -> None:\n if not isinstance(self.storage, DBStorage):\n msg = \'Cannot set data on a file that is not stored in a database. Use `File.from_bytes` instead.\'\n raise ValueError(msg)\n self.data = self.data_base64_decode(data)\n self.size = len(self.data)\n self._needs_persist = True\n\ndef to_file(self, file_or_path: Path | BinaryIO) -> None:\n """\n Writes the object\'s data to a file path or a binary file object.\n\n Args:\n file_or_path (Path | BinaryIO): The file path or binary file object where the data will be written.\n\n Returns:\n None\n\n Raises:\n ValueError: If the provided path is a directory.\n """\n with self.open() as f:\n if isinstance(file_or_path, Path):\n if file_or_path.is_dir():\n file_or_path = file_or_path / self.name\n file_or_path.write_bytes(f.read())\n else:\n file_or_path.write(f.read())\n file_or_path.seek(0)\n\ndef url(self) -> str:\n """\n Return a URL for this file using its storage_address.\n\n Raises StateError if storage_address is missing.\n """\n return self.storage.url(self)',
20
+ "storage_metadata": {
21
+ "table_name": "File",
22
+ "db_fields": {},
23
+ "primary_key": ["partition_key"],
24
+ "foreign_keys": {},
25
+ },
26
+ },
27
+ new_schema={
28
+ "title": "File",
29
+ "required": ["filename"],
30
+ "properties": {
31
+ "filename": {"type": "string", "title": "Filename"},
32
+ "data": {"type": "binary", "title": "Data"},
33
+ "size": {"type": "number", "title": "Size"},
34
+ "storage_address": {"type": "anything", "title": "Storage Reference"},
35
+ },
36
+ "custom_code": 'import base64\nimport io\nfrom contextlib import suppress\nfrom pathlib import Path\nfrom typing import IO\nfrom typing import Any\nfrom typing import BinaryIO\n\nfrom amsdal_models.storage.backends.db import AsyncFileWrapper\nfrom amsdal_models.storage.backends.db import DBStorage\nfrom amsdal_models.storage.base import Storage\nfrom pydantic import model_validator\n\n\n@classmethod\ndef data_base64_decode(cls, data: Any) -> bytes:\n if isinstance(data, str):\n data = data.encode(\'utf-8\')\n is_base64: bool = False\n with suppress(Exception):\n is_base64 = base64.b64encode(base64.b64decode(data)) == data\n if is_base64:\n return base64.b64decode(data)\n return data\n\n@classmethod\ndef from_bytes(cls, filename: str, data: bytes) -> \'File\':\n """\n Creates a `File` object from a byte string.\n\n Args:\n filename (str): The filename of the file.\n data (bytes): The byte string containing the file data.:\n\n Returns:\n File: The created `File` object.\n """\n obj = cls(filename=filename, data=data, size=len(data))\n return obj\n\n@classmethod\ndef from_file(cls, file_or_path: Path | BinaryIO) -> \'File\':\n """\n Creates a `File` object from a file path or a binary file object.\n\n Args:\n file_or_path (Path | BinaryIO): The file path or binary file object.\n\n Returns:\n File: The created `File` object.\n\n Raises:\n ValueError: If the provided path is a directory.\n """\n f: BinaryIO | io.BufferedReader\n if isinstance(file_or_path, Path):\n if file_or_path.is_dir():\n msg = f\'{file_or_path} is a directory\'\n raise ValueError(msg)\n f = file_or_path.open(\'rb\')\n filename = file_or_path.name\n size = file_or_path.stat().st_size\n else:\n f = file_or_path\n filename = Path(getattr(f, \'name\', \'unnamed\')).name\n try:\n if f.seekable():\n f.seek(0, io.SEEK_END)\n size = f.tell()\n f.seek(0)\n else:\n size = None\n except (OSError, AttributeError):\n size = None\n obj = cls(filename=filename, size=size)\n obj._source = f\n return obj\n\n@model_validator(mode=\'before\')\n@classmethod\ndef validate_model_data(cls, data: Any) -> Any:\n if isinstance(data, dict):\n if \'data\' in data:\n if data[\'data\']:\n data[\'data\'] = cls.data_base64_decode(data[\'data\'])\n data[\'size\'] = len(data[\'data\'])\n else:\n data[\'size\'] = 0\n return data\n\n@property\ndef mimetype(self) -> str | None:\n """\n Returns the MIME type of the file based on its filename.\n\n This method uses the `mimetypes` module to guess the MIME type of the file.\n\n Returns:\n str | None: The guessed MIME type of the file, or None if it cannot be determined.\n """\n import mimetypes\n return mimetypes.guess_type(self.filename)[0]\n\n@property\ndef storage(self) -> Storage:\n from amsdal.storages import default_storage\n if self._storage:\n return self._storage\n if self.storage_address:\n return Storage.from_storage_spec({\'storage_class\': self.storage_address.ref.resource})\n return default_storage()\n\nasync def aopen(self, mode: str=\'rb\') -> Any:\n """\n Async variant of open().\n\n Uses the resolved storage to call aopen(); if the backend does not implement\n async, falls back to the sync open().\n """\n try:\n return await self.storage.aopen(self, mode)\n except NotImplementedError:\n return AsyncFileWrapper(self.storage.open(self, mode))\n\nasync def apre_create(self) -> None:\n from amsdal_models.storage.persistence import apersist_file\n await apersist_file(self, storage=self.storage)\n\nasync def apre_update(self) -> None:\n from amsdal_models.storage.persistence import apersist_file\n await apersist_file(self, storage=self.storage)\n\nasync def aread_bytes(self) -> bytes:\n async with await self.aopen() as f:\n return await f.read()\n\nasync def aurl(self) -> str:\n """\n Async variant of url().\n\n Uses the resolved storage to call aurl(); if the backend does not implement\n async, falls back to the sync url().\n """\n try:\n return await self.storage.aurl(self)\n except NotImplementedError:\n return self.storage.url(self)\n\ndef __repr__(self) -> str:\n return f"File<{self.filename}>({self.size or len(self.data or \'\') or 0} bytes)"\n\ndef __str__(self) -> str:\n return repr(self)\n\ndef open(self, mode: str=\'rb\') -> IO[Any]:\n """\n Open a binary stream for reading (or other modes if supported) using storage_address.\n\n Raises StateError if storage_address is missing.\n """\n return self.storage.open(self, mode)\n\ndef pre_create(self) -> None:\n from amsdal_models.storage.persistence import persist_file\n persist_file(self, storage=self.storage)\n\ndef pre_update(self) -> None:\n from amsdal_models.storage.persistence import persist_file\n persist_file(self, storage=self.storage)\n\ndef read_bytes(self) -> bytes:\n with self.open() as f:\n return f.read()\n\ndef set_data(self, data: bytes | str) -> None:\n if not isinstance(self.storage, DBStorage):\n msg = \'Cannot set data on a file that is not stored in a database. Use `File.from_bytes` instead.\'\n raise ValueError(msg)\n self.data = self.data_base64_decode(data)\n self.size = len(self.data)\n\ndef to_file(self, file_or_path: Path | BinaryIO) -> None:\n """\n Writes the object\'s data to a file path or a binary file object.\n\n Args:\n file_or_path (Path | BinaryIO): The file path or binary file object where the data will be written.\n\n Returns:\n None\n\n Raises:\n ValueError: If the provided path is a directory.\n """\n with self.open() as f:\n if isinstance(file_or_path, Path):\n if file_or_path.is_dir():\n file_or_path = file_or_path / self.name\n file_or_path.write_bytes(f.read())\n else:\n file_or_path.write(f.read())\n file_or_path.seek(0)\n\ndef url(self) -> str:\n """\n Return a URL for this file using its storage_address.\n\n Raises StateError if storage_address is missing.\n """\n return self.storage.url(self)',
37
+ "storage_metadata": {
38
+ "table_name": "File",
39
+ "db_fields": {},
40
+ "primary_key": ["partition_key"],
41
+ "foreign_keys": {},
42
+ },
43
+ },
44
+ ),
45
+ ]
Binary file
Binary file
Binary file
@@ -0,0 +1,245 @@
1
+ from amsdal_models.migration import migrations
2
+ from amsdal_utils.models.enums import ModuleType
3
+
4
+
5
+ class Migration(migrations.Migration):
6
+ operations: list[migrations.Operation] = [
7
+ migrations.CreateClass(
8
+ module_type=ModuleType.CONTRIB,
9
+ class_name="Condition",
10
+ new_schema={
11
+ "title": "Condition",
12
+ "type": "FrontendConfigSkipNoneBase",
13
+ "required": ["operation", "conditions"],
14
+ "properties": {
15
+ "operation": {
16
+ "type": "string",
17
+ "options": [
18
+ {"key": "and", "value": "and"},
19
+ {"key": "or", "value": "or"},
20
+ {"key": "not", "value": "not"},
21
+ ],
22
+ "title": "Operation",
23
+ "enum": ["and", "or", "not"],
24
+ },
25
+ "conditions": {
26
+ "type": "array",
27
+ "items": {"type": "ConditionItem", "title": "ConditionItem"},
28
+ "title": "Conditions",
29
+ },
30
+ },
31
+ "meta_class": "TypeMeta",
32
+ "custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_activator_config import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_async_validator import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_control_action import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_slider_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_text_mask import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_validator import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
33
+ "storage_metadata": {"table_name": "Condition", "db_fields": {}, "foreign_keys": {}},
34
+ },
35
+ ),
36
+ migrations.CreateClass(
37
+ module_type=ModuleType.CONTRIB,
38
+ class_name="ConditionItem",
39
+ new_schema={
40
+ "title": "ConditionItem",
41
+ "type": "FrontendConfigSkipNoneBase",
42
+ "required": ["path", "condition"],
43
+ "properties": {
44
+ "path": {"type": "string", "title": "Path"},
45
+ "condition": {"type": "string", "title": "Condition"},
46
+ "value": {"type": "anything", "title": "Value"},
47
+ },
48
+ "meta_class": "TypeMeta",
49
+ "custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_activator_config import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_async_validator import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_control_action import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_slider_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_text_mask import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_validator import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
50
+ "storage_metadata": {"table_name": "ConditionItem", "db_fields": {}, "foreign_keys": {}},
51
+ },
52
+ ),
53
+ migrations.UpdateClass(
54
+ module_type=ModuleType.CONTRIB,
55
+ class_name="FrontendControlConfig",
56
+ old_schema={
57
+ "title": "FrontendControlConfig",
58
+ "type": "FrontendConfigSkipNoneBase",
59
+ "required": ["type", "name"],
60
+ "properties": {
61
+ "type": {"type": "string", "title": "Type"},
62
+ "name": {"type": "string", "title": "Name"},
63
+ "label": {"type": "string", "title": "Label"},
64
+ "required": {"type": "boolean", "title": "Required"},
65
+ "hideLabel": {"type": "boolean", "title": "Hide Label"},
66
+ "actions": {
67
+ "type": "array",
68
+ "items": {"type": "FrontendConfigControlAction", "title": "FrontendConfigControlAction"},
69
+ "title": "Actions",
70
+ },
71
+ "validators": {
72
+ "type": "array",
73
+ "items": {"type": "FrontendConfigValidator", "title": "FrontendConfigValidator"},
74
+ "title": "Validators",
75
+ },
76
+ "asyncValidators": {
77
+ "type": "array",
78
+ "items": {"type": "FrontendConfigAsyncValidator", "title": "FrontendConfigAsyncValidator"},
79
+ "title": "Async Validators",
80
+ },
81
+ "activators": {
82
+ "type": "array",
83
+ "items": {"type": "FrontendActivatorConfig", "title": "FrontendActivatorConfig"},
84
+ "title": "Activators",
85
+ },
86
+ "additionalText": {"type": "string", "title": "Additional Text"},
87
+ "value": {"type": "anything", "title": "Value"},
88
+ "placeholder": {"type": "string", "title": "Placeholder"},
89
+ "options": {
90
+ "type": "array",
91
+ "items": {"type": "FrontendConfigOption", "title": "FrontendConfigOption"},
92
+ "title": "Options",
93
+ },
94
+ "mask": {"type": "FrontendConfigTextMask", "title": "Mask"},
95
+ "controls": {
96
+ "type": "array",
97
+ "items": {"type": "FrontendControlConfig", "title": "FrontendControlConfig"},
98
+ "title": "Controls",
99
+ },
100
+ "showSearch": {"type": "boolean", "title": "Show Search"},
101
+ "sliderOptions": {"type": "FrontendConfigSliderOption", "title": "Slider Option"},
102
+ "customLabel": {"type": "array", "items": {"type": "string"}, "title": "Custom Label"},
103
+ "control": {"type": "FrontendControlConfig", "title": "Control"},
104
+ "entityType": {"type": "string", "title": "Entity Type"},
105
+ },
106
+ "meta_class": "TypeMeta",
107
+ "custom_code": "from typing import Any\n\nfrom amsdal_models.builder.validators.options_validators import validate_options\nfrom pydantic.functional_validators import field_validator\n\nfrom amsdal.contrib.frontend_configs.models.frontend_activator_config import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_async_validator import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_control_action import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_slider_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_text_mask import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_validator import *\n\n\n@field_validator('type')\n@classmethod\ndef validate_value_in_options_type(cls: type, value: Any) -> Any:\n return validate_options(value, options=['Bytes', 'array', 'checkbox', 'date', 'dateTriplet', 'datetime', 'dict', 'dropzone', 'email', 'file', 'group', 'group_switch', 'group_toggle', 'info-group', 'infoscreen', 'multiselect', 'number', 'number-operations', 'number-slider', 'number_equals', 'number_initial', 'number_minus', 'number_plus', 'object', 'object_group', 'object_latest', 'password', 'phone', 'radio', 'select', 'text', 'textarea', 'time', 'toggle'])\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
108
+ "storage_metadata": {"table_name": "FrontendControlConfig", "db_fields": {}, "foreign_keys": {}},
109
+ },
110
+ new_schema={
111
+ "title": "FrontendControlConfig",
112
+ "type": "FrontendConfigSkipNoneBase",
113
+ "required": ["type", "name"],
114
+ "properties": {
115
+ "type": {
116
+ "type": "string",
117
+ "options": [
118
+ {"key": "Bytes", "value": "Bytes"},
119
+ {"key": "array", "value": "array"},
120
+ {"key": "checkbox", "value": "checkbox"},
121
+ {"key": "date", "value": "date"},
122
+ {"key": "dateTriplet", "value": "dateTriplet"},
123
+ {"key": "datetime", "value": "datetime"},
124
+ {"key": "dict", "value": "dict"},
125
+ {"key": "dropzone", "value": "dropzone"},
126
+ {"key": "email", "value": "email"},
127
+ {"key": "file", "value": "file"},
128
+ {"key": "group", "value": "group"},
129
+ {"key": "group_switch", "value": "group_switch"},
130
+ {"key": "group_toggle", "value": "group_toggle"},
131
+ {"key": "info-group", "value": "info-group"},
132
+ {"key": "infoscreen", "value": "infoscreen"},
133
+ {"key": "multiselect", "value": "multiselect"},
134
+ {"key": "number", "value": "number"},
135
+ {"key": "number-operations", "value": "number-operations"},
136
+ {"key": "number-slider", "value": "number-slider"},
137
+ {"key": "number_equals", "value": "number_equals"},
138
+ {"key": "number_initial", "value": "number_initial"},
139
+ {"key": "number_minus", "value": "number_minus"},
140
+ {"key": "number_plus", "value": "number_plus"},
141
+ {"key": "object", "value": "object"},
142
+ {"key": "object_group", "value": "object_group"},
143
+ {"key": "object_latest", "value": "object_latest"},
144
+ {"key": "password", "value": "password"},
145
+ {"key": "phone", "value": "phone"},
146
+ {"key": "radio", "value": "radio"},
147
+ {"key": "select", "value": "select"},
148
+ {"key": "text", "value": "text"},
149
+ {"key": "textarea", "value": "textarea"},
150
+ {"key": "time", "value": "time"},
151
+ {"key": "toggle", "value": "toggle"},
152
+ {"key": "sections", "value": "sections"},
153
+ {"key": "section", "value": "section"},
154
+ ],
155
+ "title": "Type",
156
+ "enum": [
157
+ "Bytes",
158
+ "array",
159
+ "checkbox",
160
+ "date",
161
+ "dateTriplet",
162
+ "datetime",
163
+ "dict",
164
+ "dropzone",
165
+ "email",
166
+ "file",
167
+ "group",
168
+ "group_switch",
169
+ "group_toggle",
170
+ "info-group",
171
+ "infoscreen",
172
+ "multiselect",
173
+ "number",
174
+ "number-operations",
175
+ "number-slider",
176
+ "number_equals",
177
+ "number_initial",
178
+ "number_minus",
179
+ "number_plus",
180
+ "object",
181
+ "object_group",
182
+ "object_latest",
183
+ "password",
184
+ "phone",
185
+ "radio",
186
+ "select",
187
+ "text",
188
+ "textarea",
189
+ "time",
190
+ "toggle",
191
+ "sections",
192
+ "section",
193
+ ],
194
+ },
195
+ "name": {"type": "string", "title": "Name"},
196
+ "label": {"type": "string", "title": "Label"},
197
+ "required": {"type": "boolean", "title": "Required"},
198
+ "hideLabel": {"type": "boolean", "title": "Hide Label"},
199
+ "actions": {
200
+ "type": "array",
201
+ "items": {"type": "FrontendConfigControlAction", "title": "FrontendConfigControlAction"},
202
+ "title": "Actions",
203
+ },
204
+ "validators": {
205
+ "type": "array",
206
+ "items": {"type": "FrontendConfigValidator", "title": "FrontendConfigValidator"},
207
+ "title": "Validators",
208
+ },
209
+ "asyncValidators": {
210
+ "type": "array",
211
+ "items": {"type": "FrontendConfigAsyncValidator", "title": "FrontendConfigAsyncValidator"},
212
+ "title": "Async Validators",
213
+ },
214
+ "activators": {
215
+ "type": "array",
216
+ "items": {"type": "FrontendActivatorConfig", "title": "FrontendActivatorConfig"},
217
+ "title": "Activators",
218
+ },
219
+ "additionalText": {"type": "string", "title": "Additional Text"},
220
+ "value": {"type": "anything", "title": "Value"},
221
+ "placeholder": {"type": "string", "title": "Placeholder"},
222
+ "options": {
223
+ "type": "array",
224
+ "items": {"type": "FrontendConfigOption", "title": "FrontendConfigOption"},
225
+ "title": "Options",
226
+ },
227
+ "mask": {"type": "FrontendConfigTextMask", "title": "Mask"},
228
+ "controls": {
229
+ "type": "array",
230
+ "items": {"type": "FrontendControlConfig", "title": "FrontendControlConfig"},
231
+ "title": "Controls",
232
+ },
233
+ "showSearch": {"type": "boolean", "title": "Show Search"},
234
+ "sliderOptions": {"type": "FrontendConfigSliderOption", "title": "Slider Option"},
235
+ "customLabel": {"type": "array", "items": {"type": "string"}, "title": "Custom Label"},
236
+ "control": {"type": "FrontendControlConfig", "title": "Control"},
237
+ "entityType": {"type": "string", "title": "Entity Type"},
238
+ "condition": {"type": "Condition", "title": "Condition"},
239
+ },
240
+ "meta_class": "TypeMeta",
241
+ "custom_code": "from typing import Any\n\nfrom amsdal.contrib.frontend_configs.models.frontend_activator_config import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_async_validator import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_control_action import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_skip_none_base import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_slider_option import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_text_mask import *\nfrom amsdal.contrib.frontend_configs.models.frontend_config_validator import *\n\n\ndef model_dump(self, **kwargs: Any) -> dict[str, Any]:\n kwargs['exclude_none'] = True\n return super().model_dump(**kwargs)\n\ndef model_dump_json(self, **kwargs: Any) -> str:\n kwargs['exclude_none'] = True\n return super().model_dump_json(**kwargs)",
242
+ "storage_metadata": {"table_name": "FrontendControlConfig", "db_fields": {}, "foreign_keys": {}},
243
+ },
244
+ ),
245
+ ]
@@ -1,11 +1,10 @@
1
1
  from typing import Any
2
2
  from typing import ClassVar
3
+ from typing import Literal
3
4
  from typing import Optional
4
5
 
5
- from amsdal_models.builder.validators.options_validators import validate_options
6
6
  from amsdal_utils.models.enums import ModuleType
7
7
  from pydantic.fields import Field
8
- from pydantic.functional_validators import field_validator
9
8
 
10
9
  from amsdal.contrib.frontend_configs.models.frontend_activator_config import * # noqa: F403
11
10
  from amsdal.contrib.frontend_configs.models.frontend_config_async_validator import * # noqa: F403
@@ -16,10 +15,64 @@ from amsdal.contrib.frontend_configs.models.frontend_config_slider_option import
16
15
  from amsdal.contrib.frontend_configs.models.frontend_config_text_mask import * # noqa: F403
17
16
  from amsdal.contrib.frontend_configs.models.frontend_config_validator import * # noqa: F403
18
17
 
18
+ ConfigType = Literal[
19
+ 'Bytes',
20
+ 'array',
21
+ 'checkbox',
22
+ 'date',
23
+ 'dateTriplet',
24
+ 'datetime',
25
+ 'dict',
26
+ 'dropzone',
27
+ 'email',
28
+ 'file',
29
+ 'group',
30
+ 'group_switch',
31
+ 'group_toggle',
32
+ 'info-group',
33
+ 'infoscreen',
34
+ 'multiselect',
35
+ 'number',
36
+ 'number-operations',
37
+ 'number-slider',
38
+ 'number_equals',
39
+ 'number_initial',
40
+ 'number_minus',
41
+ 'number_plus',
42
+ 'object',
43
+ 'object_group',
44
+ 'object_latest',
45
+ 'password',
46
+ 'phone',
47
+ 'radio',
48
+ 'select',
49
+ 'text',
50
+ 'textarea',
51
+ 'time',
52
+ 'toggle',
53
+ 'sections',
54
+ 'section',
55
+ ]
56
+
57
+
58
+ class ConditionItem(FrontendConfigSkipNoneBase): # noqa: F405
59
+ path: str = Field(title='Path')
60
+ condition: str = Field(title='Condition')
61
+ value: Any = Field(default=None, title='Value')
62
+
63
+
64
+ class Condition(FrontendConfigSkipNoneBase): # noqa: F405
65
+ __module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
66
+ operation: Literal['and', 'or', 'not'] = Field(title='Operation')
67
+ conditions: list[ConditionItem] = Field(title='Conditions') # noqa: F405
68
+
69
+
70
+ Condition.model_rebuild()
71
+
19
72
 
20
73
  class FrontendControlConfig(FrontendConfigSkipNoneBase): # noqa: F405
21
74
  __module_type__: ClassVar[ModuleType] = ModuleType.CONTRIB
22
- type: str = Field(title='Type')
75
+ type: ConfigType = Field(title='Type')
23
76
  name: str = Field(title='Name')
24
77
  label: str | None = Field(None, title='Label')
25
78
  required: bool | None = Field(None, title='Required')
@@ -42,46 +95,4 @@ class FrontendControlConfig(FrontendConfigSkipNoneBase): # noqa: F405
42
95
  customLabel: list[str] | None = Field(None, title='Custom Label') # noqa: N815
43
96
  control: Optional['FrontendControlConfig'] = Field(None, title='Control')
44
97
  entityType: str | None = Field(None, title='Entity Type') # noqa: N815
45
-
46
- @field_validator('type')
47
- @classmethod
48
- def validate_value_in_options_type(cls: type, value: Any) -> Any: # type: ignore # noqa: A003
49
- return validate_options(
50
- value,
51
- options=[
52
- 'Bytes',
53
- 'array',
54
- 'checkbox',
55
- 'date',
56
- 'dateTriplet',
57
- 'datetime',
58
- 'dict',
59
- 'dropzone',
60
- 'email',
61
- 'file',
62
- 'group',
63
- 'group_switch',
64
- 'group_toggle',
65
- 'info-group',
66
- 'infoscreen',
67
- 'multiselect',
68
- 'number',
69
- 'number-operations',
70
- 'number-slider',
71
- 'number_equals',
72
- 'number_initial',
73
- 'number_minus',
74
- 'number_plus',
75
- 'object',
76
- 'object_group',
77
- 'object_latest',
78
- 'password',
79
- 'phone',
80
- 'radio',
81
- 'select',
82
- 'text',
83
- 'textarea',
84
- 'time',
85
- 'toggle',
86
- ],
87
- )
98
+ condition: Condition | None = Field(None, title='Condition') # noqa: F405
Binary file
Binary file
@@ -8,6 +8,7 @@ from typing import BinaryIO
8
8
  from typing import ClassVar
9
9
 
10
10
  from amsdal_models.classes.model import Model
11
+ from amsdal_models.storage.backends.db import AsyncFileWrapper
11
12
  from amsdal_models.storage.backends.db import DBStorage
12
13
  from amsdal_models.storage.base import Storage
13
14
  from amsdal_utils.models.data_models.reference import Reference
@@ -25,7 +26,6 @@ class File(Model):
25
26
  storage_address: Reference | None = Field(default=None, title='Storage Reference')
26
27
 
27
28
  _source: BinaryIO | None = PrivateAttr(default=None)
28
- _needs_persist: bool = PrivateAttr(default=False)
29
29
  _storage: Storage | None = PrivateAttr(default=None)
30
30
 
31
31
  @property
@@ -47,28 +47,24 @@ class File(Model):
47
47
  return repr(self)
48
48
 
49
49
  def pre_create(self) -> None:
50
- if self._needs_persist:
51
- from amsdal_models.storage.persistence import persist_file
50
+ from amsdal_models.storage.persistence import persist_file
52
51
 
53
- persist_file(self, storage=self.storage)
52
+ persist_file(self, storage=self.storage)
54
53
 
55
54
  def pre_update(self) -> None:
56
- if self._needs_persist:
57
- from amsdal_models.storage.persistence import persist_file
55
+ from amsdal_models.storage.persistence import persist_file
58
56
 
59
- persist_file(self, storage=self.storage)
57
+ persist_file(self, storage=self.storage)
60
58
 
61
59
  async def apre_create(self) -> None:
62
- if self._needs_persist:
63
- from amsdal_models.storage.persistence import apersist_file
60
+ from amsdal_models.storage.persistence import apersist_file
64
61
 
65
- await apersist_file(self, storage=self.storage)
62
+ await apersist_file(self, storage=self.storage)
66
63
 
67
64
  async def apre_update(self) -> None:
68
- if self._needs_persist:
69
- from amsdal_models.storage.persistence import apersist_file
65
+ from amsdal_models.storage.persistence import apersist_file
70
66
 
71
- await apersist_file(self, storage=self.storage)
67
+ await apersist_file(self, storage=self.storage)
72
68
 
73
69
  @model_validator(mode='before')
74
70
  @classmethod
@@ -137,7 +133,6 @@ class File(Model):
137
133
 
138
134
  obj = cls(filename=filename, size=size)
139
135
  obj._source = f
140
- obj._needs_persist = True
141
136
  return obj
142
137
 
143
138
  @classmethod
@@ -153,7 +148,6 @@ class File(Model):
153
148
  File: The created `File` object.
154
149
  """
155
150
  obj = cls(filename=filename, data=data, size=len(data))
156
- obj._needs_persist = True
157
151
  return obj
158
152
 
159
153
  def to_file(self, file_or_path: Path | BinaryIO) -> None:
@@ -216,7 +210,7 @@ class File(Model):
216
210
  try:
217
211
  return await self.storage.aopen(self, mode)
218
212
  except NotImplementedError:
219
- return self.storage.open(self, mode)
213
+ return AsyncFileWrapper(self.storage.open(self, mode))
220
214
 
221
215
  @property
222
216
  def mimetype(self) -> str | None:
@@ -247,4 +241,3 @@ class File(Model):
247
241
 
248
242
  self.data = self.data_base64_decode(data)
249
243
  self.size = len(self.data)
250
- self._needs_persist = True
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amsdal
3
- Version: 0.5.9
3
+ Version: 0.5.11
4
4
  Summary: AMSDAL
5
5
  License: AMSDAL End User License Agreement
6
6
 
@@ -1,9 +1,9 @@
1
1
  amsdal/manager.pyi,sha256=aRX-FO3KIozgaoJg3_pAVJjPAW9PL8hMiYvaTJ_kp5E,9466
2
2
  amsdal/__init__.pyi,sha256=4FIq7rQKQXoDNIzrDxtklKrbPcE2qqKU8W0jp8Mld6Q,741
3
3
  amsdal/__init__.py,sha256=eg_kMNcJSTvb8Q32AstCARJURBhrlIVmE12Dgq0nOUk,742
4
- amsdal/manager.cpython-311-darwin.so,sha256=9PXScFSix9u-ufUymIxiUTB57bJDOkKnrKxIHfb0lIE,518288
4
+ amsdal/manager.cpython-311-darwin.so,sha256=bwJoCjsLvD6V8UL4230eV9xWPTO2tPbWEOa70OIt6OI,518288
5
5
  amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md,sha256=3YRsqickIvSW7EmjlC-yk5h-YW_GMzAz7wsT9ZPIiaM,74780
6
- amsdal/__about__.py,sha256=6kYLhdHkt8K7kGaoPcOypmOiRuisFHUqVenu6fa0rn8,124
6
+ amsdal/__about__.py,sha256=L5tj-PVMFqHOJMvqYtQckSVfhE7MXzcQWLoMxnxqIwI,125
7
7
  amsdal/errors.pyi,sha256=mcuGsQMWaIUmC9GJDIkf99dQMMsCfBy6OI_UB3NSNmc,597
8
8
  amsdal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  amsdal/errors.py,sha256=pZZKIklaDkh8jdFSAfX81TbiylvbaE70nttRjTcTSBk,616
@@ -18,8 +18,8 @@ amsdal/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
18
18
  amsdal/context/manager.py,sha256=CKGY75P2y-TCnZvK5p9NJsDgHo8KXHSE0Eg5AGRjnfk,1850
19
19
  amsdal/mixins/class_versions_mixin.pyi,sha256=oSXjkTsN35d-3YgCckclhk7xRkljKHLYtN8a8gJgj2o,548
20
20
  amsdal/mixins/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
21
- amsdal/mixins/__init__.cpython-311-darwin.so,sha256=gmWzdPPRKnH0tO0nhchW-luxqyEa_LLIDZ7SG2ZhVsM,120656
22
- amsdal/mixins/class_versions_mixin.cpython-311-darwin.so,sha256=6VfOhc2UWj3oh1bkPXf3vtfIUuyOSTwb79tMm8To8xg,180576
21
+ amsdal/mixins/__init__.cpython-311-darwin.so,sha256=im_uhzGU9q0ZsJ_e8s_zRiYb6HK582X_fNmh7IMW4QE,120656
22
+ amsdal/mixins/class_versions_mixin.cpython-311-darwin.so,sha256=njG17jVrz_WobRHnE39gK4qlqYkPp3S-puUXmSiSKxU,180576
23
23
  amsdal/utils/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  amsdal/utils/contrib_paths.py,sha256=9BpNegbPofuvaQ4bE4E5cO4IV415ZZJkTqSLHUruJ3k,787
25
25
  amsdal/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -40,12 +40,12 @@ amsdal/models/core/fixture.py,sha256=V4SS1rAYD6mtRjwZ5tEaGgZL3fgRuP2KJ4x7R3AkBWo
40
40
  amsdal/models/core/option.py,sha256=W2w9tmNrdmOF6x5QohJghRrnUY-RFCQ0YFULhVGdDzw,326
41
41
  amsdal/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
42
42
  amsdal/models/core/storage_metadata.py,sha256=q-IOcsIpZHf_bt7v2NTtXAfV2i8fip3F_wtes16WY78,716
43
- amsdal/models/core/file.py,sha256=j-i70o8NeOIlw35xysuFsuIkehf2Q67lOiO4SJN5MTc,7921
43
+ amsdal/models/core/file.py,sha256=IZIS3H_RHYYlwlgOpTROspMNHcpthofMbyzd3bD8lcY,7685
44
44
  amsdal/models/core/class_property.py,sha256=HFIMb0DE8bhmRf_l45VeJJD_tE85eUZ---IPSBdld7I,1098
45
45
  amsdal/models/core/class_object.py,sha256=Y5sdatrNZK1jkMImyeRFTxeUonuzJaDCKZzULZvJIHw,1487
46
46
  amsdal/contrib/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  amsdal/contrib/app_config.pyi,sha256=j3MYfBcn9MzhTagEczGWfVH9N5jrfiKmUhxZMoakojw,149
48
- amsdal/contrib/__init__.cpython-311-darwin.so,sha256=cwsRj1NAMFjUFSa77hPq2OkYKXP4tWPgZWEzsai6iuc,120656
48
+ amsdal/contrib/__init__.cpython-311-darwin.so,sha256=Ov1oXgAYNR-qquVdPGgw8P8yxQzrQOxqLU6kPImjddM,120656
49
49
  amsdal/contrib/app_config.py,sha256=RT3RAEE49XtzuFTXYNVuaqU9V4YIl0ZWZijtXgV-SC4,131
50
50
  amsdal/contrib/auth/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
51
51
  amsdal/contrib/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -76,6 +76,7 @@ amsdal/contrib/frontend_configs/app.pyi,sha256=Bxdz0kmOF-Poaf2wmoJdgWYmHaStFyOFY
76
76
  amsdal/contrib/frontend_configs/utils.py,sha256=IruaUNl4xkOr2IIFzlvrmi06vEu3CWx49GzLBsrCFU0,1103
77
77
  amsdal/contrib/frontend_configs/app.py,sha256=fY4GukBM6GKSZExT0EgddTamLfUJHwQZS8tOwVQyeSY,836
78
78
  amsdal/contrib/frontend_configs/migrations/0000_initial.py,sha256=-Vg5u__gvbOaz3tMOVVj_V086nb_D6IoC1Ji6ClkUoE,18952
79
+ amsdal/contrib/frontend_configs/migrations/0001_update_frontend_control_config.py,sha256=4mvgb2IyOWfi3cT4tnrM8lFVmoT3qR064anHpcUz028,17229
79
80
  amsdal/contrib/frontend_configs/lifecycle/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
81
  amsdal/contrib/frontend_configs/lifecycle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
82
  amsdal/contrib/frontend_configs/lifecycle/consumer.pyi,sha256=kRNenTrKfswS8Y3UY6XYQ03WlCuo9LFk8WIJxm--cAk,4168
@@ -84,7 +85,7 @@ amsdal/contrib/frontend_configs/models/frontend_config_control_action.py,sha256=
84
85
  amsdal/contrib/frontend_configs/models/frontend_config_option.py,sha256=n4ZcI7RDwNCpeT5gGLuNJeHzJlhqyf7U5BD4V4wbUv4,448
85
86
  amsdal/contrib/frontend_configs/models/frontend_model_config.py,sha256=UTvp-RvPnci4F7RdRj60hZXgEjSqvNhkfwdbw7ju_sU,517
86
87
  amsdal/contrib/frontend_configs/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
- amsdal/contrib/frontend_configs/models/frontend_control_config.py,sha256=ePkGaRMssOqO5NjWs2xA1ZK95hl40WAKg7Fp2QZMda4,4014
88
+ amsdal/contrib/frontend_configs/models/frontend_control_config.py,sha256=2gKp5C2CnK13PMhy0-7F_6ZneYdvgm4NxV1f9ZCHDwI,3889
88
89
  amsdal/contrib/frontend_configs/models/frontend_config_group_validator.py,sha256=vJ36_Xmweygi5UXAL6wOXLi6sGe2rkUcsmT7WzgXuAU,974
89
90
  amsdal/contrib/frontend_configs/models/frontend_config_slider_option.py,sha256=bixZRd4x4zcxykMXC3obYDp8DHORRR3BEBcqaZGcHHo,510
90
91
  amsdal/contrib/frontend_configs/models/frontend_config_text_mask.py,sha256=EEonXV4HyxiVq4AkvIxKtzXhiDYeplexMWzNSQeYpoc,583
@@ -102,7 +103,7 @@ amsdal/schemas/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
102
103
  amsdal/schemas/repository.pyi,sha256=e6YUXO248WmhWkkXWt828JrFzIJ9alTPqjXqbktjeWw,1443
103
104
  amsdal/schemas/interfaces.pyi,sha256=jUXLEKIa_af9Qrv9a4UvfRmsUV78N921i4dDXKHPaQk,725
104
105
  amsdal/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
105
- amsdal/schemas/manager.cpython-311-darwin.so,sha256=QL0aRSw1LgkpNcbUcOPmJYPW11E3I0bYYGxE48tHQi8,120656
106
+ amsdal/schemas/manager.cpython-311-darwin.so,sha256=Et35HqcYiFWGuaVX2PWERqb79pvAKFNkgnO7lHSegjw,120656
106
107
  amsdal/schemas/utils.pyi,sha256=UbeISOxetojP6HlzhiJWeaAVyYZUrnGAS5niTQ0m6n0,437
107
108
  amsdal/schemas/utils.py,sha256=t8k7QYYR6SsCPpBhp7s585eSYKVIF895EKRMK1w1y1Q,492
108
109
  amsdal/schemas/repository.py,sha256=PbskgDr8JMabQm2uf8Kfj5bBSPlPkx4cDGXn-jfIsPM,3249
@@ -141,6 +142,7 @@ amsdal/schemas/mixins/check_dependencies_mixin.py,sha256=M3Wi1g4F9pbEEpOUlXUhCnv
141
142
  amsdal/queryset/__init__.pyi,sha256=U8YdXkB_drnE4aX54kg7B8my9fyPg-pwsVct6QfM5Bc,545
142
143
  amsdal/queryset/__init__.py,sha256=CzNaFx6yHvePtd3JY1ZGF3QLfE-e_ll5iSnaCVWdKHI,676
143
144
  amsdal/__migrations__/0002_create_class_file.py,sha256=Aq72H968urji4D5aEMCsEol6gaXp1SGylmhua-hxBec,9360
145
+ amsdal/__migrations__/0004_update_class_file.py,sha256=ZxCgHFsR7WBxoAKlncEHbXusrnCLZgqVuk4yiQ9gzCg,15261
144
146
  amsdal/__migrations__/0000_initial.py,sha256=USn8u2uhHy9yFtONsTec-LMdCl3f7GQ_AgSL-yQZmO4,1874
145
147
  amsdal/__migrations__/0001_create_class_file.py,sha256=ujBYnCvk-UhswWlSIsiQqMbgSrXBsdWDFNaFLlc0Trc,3762
146
148
  amsdal/__migrations__/0003_update_class_file.py,sha256=sKzNB9Lc5w6mGIYfyN0jI7wLgkHQVVybdCkJIqw0UYk,16118
@@ -152,94 +154,94 @@ amsdal/configs/constants.py,sha256=faghdS6r3on1WKrp782WmgONd1fMf4X73LJzAwMO1po,9
152
154
  amsdal/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
153
155
  amsdal/configs/main.pyi,sha256=2pCKNMnSdnggHNGj37VSDhAxegrzXqVerz0HLtx7Ni4,6937
154
156
  amsdal/configs/main.py,sha256=9iwtIPIy3Dbpenkhq2rSl2ar1nuJjGv4PRQeEv4z71A,9756
155
- amsdal/cloud/client.cpython-311-darwin.so,sha256=010VBGaAWbtnlpDthQ2ygrgRs2OazOlSf35VxthMInQ,216208
157
+ amsdal/cloud/client.cpython-311-darwin.so,sha256=D0X4jObchgZUp9Y3tAa6XG3KisFNmcJqqTvtH4xXSx0,216208
156
158
  amsdal/cloud/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
157
159
  amsdal/cloud/constants.pyi,sha256=0qWxDqjQkETwUtgco5kV83fPHhQ4jRdJe_YPPNTnSIY,327
158
160
  amsdal/cloud/client.pyi,sha256=3VjPRtJrbUU29u_wswETrMorN0iUb4GFAXmMc73bUf4,2247
159
- amsdal/cloud/enums.cpython-311-darwin.so,sha256=sUxpzftoGQFEzJh7dahfQ-YfI4yUGRcUriuHTE9WGUM,158064
160
- amsdal/cloud/constants.cpython-311-darwin.so,sha256=0EqUrrfWr1wkifkjGEzaEYyGedNDtLvQpS7mqZpZcqA,158688
161
- amsdal/cloud/__init__.cpython-311-darwin.so,sha256=SRonp6ekTL5imZPyZ1UYmG31HzUajDwRj8RPEZTq2VU,120656
161
+ amsdal/cloud/enums.cpython-311-darwin.so,sha256=MxtNkxKyPSvfrEzsJmkmrSpAh4uXF_QJHnGDd6c7G5E,158064
162
+ amsdal/cloud/constants.cpython-311-darwin.so,sha256=rEmr-_Cdaj69Pb9AKcmYp48gr3NaL0NEBj0VstVs9Ec,158688
163
+ amsdal/cloud/__init__.cpython-311-darwin.so,sha256=Ji-xbhIitEG5jJiT2yMTFmWxAKwizUpqBFyeT3lBYF8,120656
162
164
  amsdal/cloud/enums.pyi,sha256=mX5O1FPc3aNnN108aOJT66Nn9KlcyrRTj9B23sFdDfw,1757
163
- amsdal/cloud/models/base.cpython-311-darwin.so,sha256=lWTUHUvVuIi97tlCKnqUQj3Ukd4_fW8MBpFlu4NV174,211632
165
+ amsdal/cloud/models/base.cpython-311-darwin.so,sha256=kTs7TLIrO-wTQIw7EUghPxJpn6Yih6vMqaz7xwvOmpc,211632
164
166
  amsdal/cloud/models/base.pyi,sha256=avwAj4uS4NHrXvmSKBxokFKFWSaBPXtJPl1Ig1CD6sg,7727
165
167
  amsdal/cloud/models/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
166
- amsdal/cloud/models/__init__.cpython-311-darwin.so,sha256=7b0roRG-icju6dx5l7psv6ZexLTbiIB8aI-0CpxQqng,120688
168
+ amsdal/cloud/models/__init__.cpython-311-darwin.so,sha256=UNQk9RwSb_5QXJ3IaWTI81glfWtJPE-RODY5EPFsbyg,120688
167
169
  amsdal/cloud/services/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
168
- amsdal/cloud/services/__init__.cpython-311-darwin.so,sha256=lLa87mMwyd-wHOhznSXVey6AabnjxH7uVY1zM8vqzR4,120688
169
- amsdal/cloud/services/auth/base.cpython-311-darwin.so,sha256=vgO01BxpDqWb3lquUV2VlspD9oxxqhWK74c_7Qj1fRk,163104
170
+ amsdal/cloud/services/__init__.cpython-311-darwin.so,sha256=fqmSoYmegL-eD5KJ4M_Bf0AYFmDSPCLjbMUrsL-Jfds,120688
171
+ amsdal/cloud/services/auth/base.cpython-311-darwin.so,sha256=1e4Q-PVUmPX2WYSWGXXeLqsW5HwKsDdPrgwcEeZCWhg,163104
170
172
  amsdal/cloud/services/auth/base.pyi,sha256=oj_tgwWhf02g-FzCLcNOEZjYDxfcrrDssING4jsUMb8,167
171
173
  amsdal/cloud/services/auth/manager.pyi,sha256=AhKllHgraztP3JSKta9MmQjTNRAbQbwqZg2EpQZSwhI,1243
172
174
  amsdal/cloud/services/auth/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
175
  amsdal/cloud/services/auth/signup_service.pyi,sha256=SfSN1tLIwrzGi9JbMgoLuKKH1u5uoh_MOFJ4n_NHcBY,1145
174
- amsdal/cloud/services/auth/token.cpython-311-darwin.so,sha256=z8o4SMlhZOmzOHvYJTOC70e4LV2lGd39JIyxw3fRlg4,251536
175
- amsdal/cloud/services/auth/manager.cpython-311-darwin.so,sha256=VQi_Rcw3N2i0U4o4eTPXAZ06CihLoU2Nse_uLSg11lM,214128
176
+ amsdal/cloud/services/auth/token.cpython-311-darwin.so,sha256=XihJLmTTA_kqAj2iUxCwuKxhoEoz_GjeMKMVA4cR9bw,251536
177
+ amsdal/cloud/services/auth/manager.cpython-311-darwin.so,sha256=NaOAagCm1CADnonO9CPWjg2zSwRowY6o67O_nEtkBVA,214128
176
178
  amsdal/cloud/services/auth/token.pyi,sha256=v9QDleIytAZGlYHHaO-W1fTr5d2OLGWsh5g6HDeuk90,1042
177
- amsdal/cloud/services/auth/signup_service.cpython-311-darwin.so,sha256=qRwb-wk-k8FTnDxg6E-70kukTkOkt5-nxkYDF2jO-no,216216
178
- amsdal/cloud/services/auth/__init__.cpython-311-darwin.so,sha256=_LGcldVpdYWbp0APSX7BFxmt4mF9vUFC-WngwesE-s4,120704
179
- amsdal/cloud/services/auth/credentials.cpython-311-darwin.so,sha256=FbWKIOFmk5sT-YtF6GI96NlTT1TIiWfs8GIwWGq4wD4,304408
179
+ amsdal/cloud/services/auth/signup_service.cpython-311-darwin.so,sha256=XN-VJLoodAsmgoapI7irc1C7UhwrYFwylW8Ba1lGWiI,216216
180
+ amsdal/cloud/services/auth/__init__.cpython-311-darwin.so,sha256=d82SjJjZb1kzq114DcMjZJzyqUu1dOCGGyBYxZTYySc,120704
181
+ amsdal/cloud/services/auth/credentials.cpython-311-darwin.so,sha256=RjzHCgRjKYhuALI2dEBj9wYBTmtAcBmdY0naOtjO_vc,304408
180
182
  amsdal/cloud/services/auth/credentials.pyi,sha256=ghp3r8rDq5l5xxx7UKFkCASyQJbWChkF2PQDJrQmeW4,1417
181
- amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-311-darwin.so,sha256=wHebkwRhNs8rNggjb5AzReBlqiqsMUb14c-GsChVn6c,181112
182
- amsdal/cloud/services/actions/base.cpython-311-darwin.so,sha256=xqBfOJIWNusaHALHo6HWMZkhmzEbab7qJ6tRWHQ6X9I,323552
183
+ amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-311-darwin.so,sha256=CqUEvM6fwK0PKdKld8f7GPNItO1itBAUEIC2fyQpQRQ,181112
184
+ amsdal/cloud/services/actions/base.cpython-311-darwin.so,sha256=666HkCSj52JagaXIVsfEAbdcRf5vpHk6UAIC6Dyqu-o,323552
183
185
  amsdal/cloud/services/actions/list_envs.pyi,sha256=7PylFRd1Jb6nkTt8q8iy27rLj-Q5qcwfqW02_OlfDZs,878
184
- amsdal/cloud/services/actions/delete_basic_auth.cpython-311-darwin.so,sha256=krQJczfLExme3F5K1xvdavmw3w4aQkERkhpaX7zZ5eA,180744
186
+ amsdal/cloud/services/actions/delete_basic_auth.cpython-311-darwin.so,sha256=bzvjg2vTqk9GCPjODcxtmMIY96HeoRfwKuzlcKeeeTw,180744
185
187
  amsdal/cloud/services/actions/base.pyi,sha256=J98igdu3E9-mled_kbxerja4DTLM0OAW8cHtsVOQ_fc,5880
186
- amsdal/cloud/services/actions/add_allowlist_ip.cpython-311-darwin.so,sha256=9NHRhXoJEU8DUUit-N3TXKeTIPJK9EivpYQXIv1BcCQ,180776
187
- amsdal/cloud/services/actions/signup_action.cpython-311-darwin.so,sha256=dlZ8YvCHg_qPcNU_clDyUTAaubynoUoME-n5MKFuSHA,180584
188
+ amsdal/cloud/services/actions/add_allowlist_ip.cpython-311-darwin.so,sha256=81EVHkfhwOGIMutYz912TfIFUZmcjcSfVrTZG9yfwj4,180776
189
+ amsdal/cloud/services/actions/signup_action.cpython-311-darwin.so,sha256=Hfxe-cOQ2qjqNEuleCiRhsTyWV5xrrgVCpSNpVIKals,180584
188
190
  amsdal/cloud/services/actions/manager.pyi,sha256=Tal5u1nMhi7MeuJ9lBIPYPLgKoIB6DUXPU2AokrusHI,15441
189
- amsdal/cloud/services/actions/delete_dependency.cpython-311-darwin.so,sha256=_hp1jJTLrTxqaQrV-_7dtIaNxw27tKPepfOaSo3InWg,180760
190
- amsdal/cloud/services/actions/expose_db.cpython-311-darwin.so,sha256=GpjN6vT4J0Qf8kSUQD2zq-k4TLHx1hQr7ufw5Jf-ERI,181184
191
+ amsdal/cloud/services/actions/delete_dependency.cpython-311-darwin.so,sha256=tIyt6HmgeSjABFPiQnLbWuj_mid5PmS7wfqXEr8vRnc,180760
192
+ amsdal/cloud/services/actions/expose_db.cpython-311-darwin.so,sha256=VchlhRp2ZeR8jbN2LiOjqKHgZn7Fhjq5XCI5hZky440,181184
191
193
  amsdal/cloud/services/actions/delete_allowlist_ip.pyi,sha256=W5zVq7YKL_OVigZl58bqau3rvAzsLdItAZaqDO1HGJw,933
192
- amsdal/cloud/services/actions/add_secret.cpython-311-darwin.so,sha256=WA--Q0EdAq8CmMI891YKPM6cJLYoyw_0xchLxBQ9dlA,180632
194
+ amsdal/cloud/services/actions/add_secret.cpython-311-darwin.so,sha256=dak_mKGdH-by5dhDMAI445-XaUWnp8nsdONtYCOlA6E,180632
193
195
  amsdal/cloud/services/actions/add_basic_auth.pyi,sha256=4tyTci_k_xlJrkBd71sY0ivRr8alo3Bq0KCkjIfacu4,1106
194
196
  amsdal/cloud/services/actions/list_secrets.pyi,sha256=vF-EikAy7WHdkvkGikD_oDFDIgE1GEr8nxAQKYAs9rY,1079
195
- amsdal/cloud/services/actions/list_secrets.cpython-311-darwin.so,sha256=9Pg6d9Z0sr366g3es2SnZ6SBtvZdPShOSO-McRtou5s,181304
197
+ amsdal/cloud/services/actions/list_secrets.cpython-311-darwin.so,sha256=dehqXBvBwWB4___-aO3TNfgwvsPsStGewwMkuFFDcac,181304
196
198
  amsdal/cloud/services/actions/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
197
199
  amsdal/cloud/services/actions/get_basic_auth_credentials.pyi,sha256=1FU8BtDRaGTx8fSqdhmotQK-rR7gKr4Qav_E-T_23rc,1071
198
- amsdal/cloud/services/actions/list_deploys.cpython-311-darwin.so,sha256=OUhAIBarvvUpHGCGIFVIUOV8oPE31UEIpt4WTyIZ604,181080
199
- amsdal/cloud/services/actions/list_envs.cpython-311-darwin.so,sha256=nRRpmfwQJM1j4A574XHdNNw3NoJ7GjoCmEvwEtK4rS4,180752
200
- amsdal/cloud/services/actions/list_dependencies.cpython-311-darwin.so,sha256=G_gs4c8-hzPQW1S68kNmFXyyyQJ-afFSl8OtDxj6xnU,181304
201
- amsdal/cloud/services/actions/destroy_deploy.cpython-311-darwin.so,sha256=XJWZ7pcNxmMeJoF--pFwCo_sU8e0tOqaRUXxmTJqKyI,180536
202
- amsdal/cloud/services/actions/create_session.cpython-311-darwin.so,sha256=sxustycgYoYeqab7bbkNdLMEFHH0HUKcJdlw9YcxLbQ,180984
203
- amsdal/cloud/services/actions/create_deploy.cpython-311-darwin.so,sha256=F4S-Q3ISCm3jV9vDguhQh2Wmzpp4CGWgpVURydpvNRM,269240
200
+ amsdal/cloud/services/actions/list_deploys.cpython-311-darwin.so,sha256=_6rfv-8xoOWF7ciwIv_lxUyC5eTi19juVajJhjy8AOo,181080
201
+ amsdal/cloud/services/actions/list_envs.cpython-311-darwin.so,sha256=_2kziDV7N4dcwHIikE3oO0qVOBbhZC43yQBsWslocqs,180752
202
+ amsdal/cloud/services/actions/list_dependencies.cpython-311-darwin.so,sha256=Z3r7qWtuGk0wwux89xWTEg8ZACDC2UbSDHNRtbDdPBw,181304
203
+ amsdal/cloud/services/actions/destroy_deploy.cpython-311-darwin.so,sha256=OnIHtAkw7WbsJ8xSfSeWBlsnmQxNtEHaOYuDkHAnNYw,180536
204
+ amsdal/cloud/services/actions/create_session.cpython-311-darwin.so,sha256=0x_M6hw-uYmSH_jjVga3vlrtOrg9eVk82lW7Iwo0qJU,180984
205
+ amsdal/cloud/services/actions/create_deploy.cpython-311-darwin.so,sha256=kulMsSAsFXerc_6_mXqqL2aUdxOcPL0OyI07FX-DVEI,269240
204
206
  amsdal/cloud/services/actions/delete_secret.pyi,sha256=gZi17MivNYBIfdPU2GjoJ2I2lWiefdvLuXTcxDss1P4,953
205
207
  amsdal/cloud/services/actions/delete_env.pyi,sha256=uyBHMOp_AprbpSfv6y6QfYW5FvK1-8jb2NxK_FmuPHE,969
206
- amsdal/cloud/services/actions/manager.cpython-311-darwin.so,sha256=MaFf4pGIm-oKW8LxizlcJTvtKYYWRLXYokHdD6IHghs,371312
208
+ amsdal/cloud/services/actions/manager.cpython-311-darwin.so,sha256=Ugtty5Csqdy5keMppCyLInYFIAd8lRG04KXpSVB3PDo,371312
207
209
  amsdal/cloud/services/actions/delete_dependency.pyi,sha256=VuT1w2qOpjR7I9mBi9tPXMXDPEeU8tG0vi9TXV82Frg,1021
208
- amsdal/cloud/services/actions/add_dependency.cpython-311-darwin.so,sha256=BuXdmJyqh0vGTPiaK9C-8udUpncbJKNuBN6ETmkjcS0,180712
210
+ amsdal/cloud/services/actions/add_dependency.cpython-311-darwin.so,sha256=ZRL9ufcUU2fqUeqAhq1m7tUfQ6Jx4It-fsAge8NYwO8,180712
209
211
  amsdal/cloud/services/actions/create_session.pyi,sha256=KUvx_vkhLQfGp_DM1ZvgszyT_G8LB28KoI1XpjNR7YY,674
210
- amsdal/cloud/services/actions/delete_allowlist_ip.cpython-311-darwin.so,sha256=5TJzTFZ_2SycDwA9nTLUORMX0bt7PZIepEMmZEYC-F8,180832
212
+ amsdal/cloud/services/actions/delete_allowlist_ip.cpython-311-darwin.so,sha256=nkC9Y6YvB5OjVbY_LM-GNY0RVGUrr2jmU6avIt48EUs,180832
211
213
  amsdal/cloud/services/actions/list_deploys.pyi,sha256=Q8da3PDPxICLP2V7L-A7p-9_a3qNKrARqgHhu0CA0nA,724
212
- amsdal/cloud/services/actions/add_basic_auth.cpython-311-darwin.so,sha256=I8KhQtdKG7SE0-oLB4XvkYwe0bnMXkYMBdmatnPQomg,181112
214
+ amsdal/cloud/services/actions/add_basic_auth.cpython-311-darwin.so,sha256=n6z3rbterBK7dZMPDYrgI5cnDhGSjSeiJBDZDA1oQyQ,181112
213
215
  amsdal/cloud/services/actions/add_allowlist_ip.pyi,sha256=gB2NQVz8NcSsgXYiym2Suh1RPI8eHKIAFE13RmeTHkA,883
214
216
  amsdal/cloud/services/actions/get_monitoring_info.pyi,sha256=uvtBgWvtWf-Mq4vZq_q-q8Z8hJh5voAY61KRJQPGWFk,1045
215
217
  amsdal/cloud/services/actions/add_dependency.pyi,sha256=uVEIhvDa4GRS0Lg6TkcYdOwezKcxrzL7A_Lh8BxcAeU,837
216
- amsdal/cloud/services/actions/get_monitoring_info.cpython-311-darwin.so,sha256=sKjJ38Amgat-EVMOEd-DP0CdIfiihpB0zgzbgtoyKWE,180976
217
- amsdal/cloud/services/actions/update_deploy.cpython-311-darwin.so,sha256=CdfxVQRCElkAXAeWTQuuOKkPq2-wqM6PeVT9emDxWa0,181064
218
+ amsdal/cloud/services/actions/get_monitoring_info.cpython-311-darwin.so,sha256=SQYJEZNoWu3dIQM5iOXU8Z-hq_z-9KWPFy6gQK6h-xs,180976
219
+ amsdal/cloud/services/actions/update_deploy.cpython-311-darwin.so,sha256=putBDcwGJyUuByYnoxq_U6OjNtNj9efgkBxvpweOKsc,181064
218
220
  amsdal/cloud/services/actions/signup_action.pyi,sha256=VswHjhxw2eHYqXwc---F2LpwlD7GlIuL_Ev2DmA96_4,808
219
- amsdal/cloud/services/actions/create_env.cpython-311-darwin.so,sha256=YGuV6g29TdFKTgVMLxtaeCjaNcHpp2bdN14YsuVEZ_I,180824
221
+ amsdal/cloud/services/actions/create_env.cpython-311-darwin.so,sha256=LhkEqUrSOIJUVyGq3BrwWV5j2YpSUGELgafV6XgdWng,180824
220
222
  amsdal/cloud/services/actions/add_secret.pyi,sha256=H6rS3PRwiktMfnoY8qwtmTplN9gG2yZgQKKCX8S8Q6c,890
221
- amsdal/cloud/services/actions/delete_env.cpython-311-darwin.so,sha256=XzMkW-2YBUDJY48YIN9GzScYGyctCeSgwDJZZZGqOPI,180824
222
- amsdal/cloud/services/actions/__init__.cpython-311-darwin.so,sha256=LyPTBG_uzY9Qk1VwGUiHiEECpbyYUTnLkoccZ27_-xU,120720
223
+ amsdal/cloud/services/actions/delete_env.cpython-311-darwin.so,sha256=wXJh287AvTOJef4DbaY2FZxime3e_YdvJoyxR1izTzg,180824
224
+ amsdal/cloud/services/actions/__init__.cpython-311-darwin.so,sha256=q9D80hbviK0yAarkR_KOOwunVm7ZgNKKaZ8eK-G4oOk,120720
223
225
  amsdal/cloud/services/actions/destroy_deploy.pyi,sha256=VNb0J71B3gk4SVJwxlB9XTj4vCG-37ucojcGzsvKwe8,609
224
226
  amsdal/cloud/services/actions/update_deploy.pyi,sha256=alM1nquQZ5O8PYlDIqDdSuiyuc_aj9fkd01bL9KANEI,766
225
227
  amsdal/cloud/services/actions/create_deploy.pyi,sha256=VmVMYJQmjPZce6Cm8sMQ27HomhfdzZc_0X57ZWZmCt0,1988
226
228
  amsdal/cloud/services/actions/delete_basic_auth.pyi,sha256=-I1YoOMFi0LaRsZL2JBGH_sg18PZoUL1PP9YetboDJA,915
227
229
  amsdal/cloud/services/actions/list_dependencies.pyi,sha256=C37VamSyRT-uNLuwQJ0OrHKavs8Jt0bfPbAsE5BQEvE,1035
228
230
  amsdal/cloud/services/actions/create_env.pyi,sha256=ITvyLrvwt6H36JNYURHZ_PbmGZquc5Fm07dVo7H6ll0,910
229
- amsdal/cloud/services/actions/delete_secret.cpython-311-darwin.so,sha256=txyfOvD-wFIKQXynhKw1zHkn9HOvfj0Wdo3A2_dGFCg,180680
231
+ amsdal/cloud/services/actions/delete_secret.cpython-311-darwin.so,sha256=8Sy2Ux2VpzQ-LJS5NJp9_IpGjI8HLJGFVjRQMeRTy1o,180680
230
232
  amsdal/cloud/services/actions/expose_db.pyi,sha256=uk2zuz1SiXwjDFxtKF-yyWGNEONOgfm7EcrEyVT0cMM,1049
231
233
  amsdal/fixtures/manager.pyi,sha256=fMl3nNa2A9jiZanZ_7tnUGaPigk_03KMmdcUGPoX9kI,7077
232
234
  amsdal/fixtures/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
233
- amsdal/fixtures/manager.cpython-311-darwin.so,sha256=Qold1WyPoImzfOEfwTVFjkJO_FfRuV4QBOTBTTN5amU,622896
235
+ amsdal/fixtures/manager.cpython-311-darwin.so,sha256=LvLg_c4Y0ajOviHz4bceRWIURun4ifkxWCP3Vqn3f7I,622896
234
236
  amsdal/fixtures/utils.pyi,sha256=OnFn7opJscOydj-rlcXQIdDodlIKGCt79TRy5zAUkqg,457
235
- amsdal/fixtures/utils.cpython-311-darwin.so,sha256=Z8IOo72ZNolrHTGJeT7LpKHPL4q2N5Rl_XSumf_qcKQ,306720
236
- amsdal/fixtures/__init__.cpython-311-darwin.so,sha256=dO8oXtZkixvCHF0ZQV1zmFrJxQlJsuAIuNY_aa5SH8U,120672
237
+ amsdal/fixtures/utils.cpython-311-darwin.so,sha256=zDENqFEN5efdwgUWgRTXm31j0BkvwnSBzp3II4HdaXM,306720
238
+ amsdal/fixtures/__init__.cpython-311-darwin.so,sha256=BRWZbHygbP7kbiLFkmVGkvTj_knwDR2YtYE8-Y8Nc1I,120672
237
239
  amsdal/services/transaction_execution.pyi,sha256=TwCuurOoqSHgNu9GCYYZPSpGjxXssF2eNygQ5KVwAZM,4374
238
240
  amsdal/services/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
239
- amsdal/services/__init__.cpython-311-darwin.so,sha256=TGMflDBFMKHtSyIKuwqrok_ZgxwOhEcpCtnyRzNkSwk,120672
240
- amsdal/services/transaction_execution.cpython-311-darwin.so,sha256=ThGfIe7JRmqHnD549mDUc1jgHFRSkOkHfftEJacyRBI,452176
241
- amsdal-0.5.9.dist-info/RECORD,,
242
- amsdal-0.5.9.dist-info/WHEEL,sha256=EOGtw-LpzLQPCSF3QP-yT4xdfA0v97p09Et-l29cEBs,114
243
- amsdal-0.5.9.dist-info/top_level.txt,sha256=VPQLnOP3mf7q0JuQ_vPZYQyPNGKd_uc6ouz-hZRkhSk,7
244
- amsdal-0.5.9.dist-info/METADATA,sha256=u_dS0-iVdiSiYE4SW6sHGaX7eSD9G_JDFgyfdVOQftQ,57622
245
- amsdal-0.5.9.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
241
+ amsdal/services/__init__.cpython-311-darwin.so,sha256=Xq8akVC_bqerupxt42U10KPxKu6gIPZATtf_ix7_m6M,120672
242
+ amsdal/services/transaction_execution.cpython-311-darwin.so,sha256=H-ragfO090pBXdlB3GuYYE2vkFnDMiqColrNGhxpbK4,452176
243
+ amsdal-0.5.11.dist-info/RECORD,,
244
+ amsdal-0.5.11.dist-info/WHEEL,sha256=EOGtw-LpzLQPCSF3QP-yT4xdfA0v97p09Et-l29cEBs,114
245
+ amsdal-0.5.11.dist-info/top_level.txt,sha256=VPQLnOP3mf7q0JuQ_vPZYQyPNGKd_uc6ouz-hZRkhSk,7
246
+ amsdal-0.5.11.dist-info/METADATA,sha256=blriDQBHUpEI5skBbBAUFgGaCzZjW8d0fxNURbytJpM,57623
247
+ amsdal-0.5.11.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355