amsdal 0.4.1__cp312-cp312-macosx_10_13_universal2.whl → 0.4.3__cp312-cp312-macosx_10_13_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.

Potentially problematic release.


This version of amsdal might be problematic. Click here for more details.

Files changed (65) hide show
  1. amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md +28 -2
  2. amsdal/__about__.py +1 -1
  3. amsdal/__migrations__/0000_initial.py +9 -4
  4. amsdal/__migrations__/0002_fixture_order.py +2 -2
  5. amsdal/cloud/__init__.cpython-312-darwin.so +0 -0
  6. amsdal/cloud/client.cpython-312-darwin.so +0 -0
  7. amsdal/cloud/constants.cpython-312-darwin.so +0 -0
  8. amsdal/cloud/enums.cpython-312-darwin.so +0 -0
  9. amsdal/cloud/models/__init__.cpython-312-darwin.so +0 -0
  10. amsdal/cloud/models/base.cpython-312-darwin.so +0 -0
  11. amsdal/cloud/services/__init__.cpython-312-darwin.so +0 -0
  12. amsdal/cloud/services/actions/__init__.cpython-312-darwin.so +0 -0
  13. amsdal/cloud/services/actions/add_allowlist_ip.cpython-312-darwin.so +0 -0
  14. amsdal/cloud/services/actions/add_basic_auth.cpython-312-darwin.so +0 -0
  15. amsdal/cloud/services/actions/add_dependency.cpython-312-darwin.so +0 -0
  16. amsdal/cloud/services/actions/add_secret.cpython-312-darwin.so +0 -0
  17. amsdal/cloud/services/actions/base.cpython-312-darwin.so +0 -0
  18. amsdal/cloud/services/actions/create_deploy.cpython-312-darwin.so +0 -0
  19. amsdal/cloud/services/actions/create_env.cpython-312-darwin.so +0 -0
  20. amsdal/cloud/services/actions/create_session.cpython-312-darwin.so +0 -0
  21. amsdal/cloud/services/actions/delete_allowlist_ip.cpython-312-darwin.so +0 -0
  22. amsdal/cloud/services/actions/delete_basic_auth.cpython-312-darwin.so +0 -0
  23. amsdal/cloud/services/actions/delete_dependency.cpython-312-darwin.so +0 -0
  24. amsdal/cloud/services/actions/delete_env.cpython-312-darwin.so +0 -0
  25. amsdal/cloud/services/actions/delete_secret.cpython-312-darwin.so +0 -0
  26. amsdal/cloud/services/actions/destroy_deploy.cpython-312-darwin.so +0 -0
  27. amsdal/cloud/services/actions/expose_db.cpython-312-darwin.so +0 -0
  28. amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-312-darwin.so +0 -0
  29. amsdal/cloud/services/actions/get_monitoring_info.cpython-312-darwin.so +0 -0
  30. amsdal/cloud/services/actions/list_dependencies.cpython-312-darwin.so +0 -0
  31. amsdal/cloud/services/actions/list_deploys.cpython-312-darwin.so +0 -0
  32. amsdal/cloud/services/actions/list_envs.cpython-312-darwin.so +0 -0
  33. amsdal/cloud/services/actions/list_secrets.cpython-312-darwin.so +0 -0
  34. amsdal/cloud/services/actions/manager.cpython-312-darwin.so +0 -0
  35. amsdal/cloud/services/actions/signup_action.cpython-312-darwin.so +0 -0
  36. amsdal/cloud/services/actions/update_deploy.cpython-312-darwin.so +0 -0
  37. amsdal/cloud/services/auth/__init__.cpython-312-darwin.so +0 -0
  38. amsdal/cloud/services/auth/base.cpython-312-darwin.so +0 -0
  39. amsdal/cloud/services/auth/credentials.cpython-312-darwin.so +0 -0
  40. amsdal/cloud/services/auth/manager.cpython-312-darwin.so +0 -0
  41. amsdal/cloud/services/auth/signup_service.cpython-312-darwin.so +0 -0
  42. amsdal/cloud/services/auth/token.cpython-312-darwin.so +0 -0
  43. amsdal/contrib/__init__.cpython-312-darwin.so +0 -0
  44. amsdal/contrib/auth/migrations/0000_initial.py +10 -9
  45. amsdal/contrib/frontend_configs/migrations/0000_initial.py +1 -1
  46. amsdal/fixtures/__init__.cpython-312-darwin.so +0 -0
  47. amsdal/fixtures/manager.cpython-312-darwin.so +0 -0
  48. amsdal/fixtures/utils.cpython-312-darwin.so +0 -0
  49. amsdal/manager.cpython-312-darwin.so +0 -0
  50. amsdal/mixins/__init__.cpython-312-darwin.so +0 -0
  51. amsdal/mixins/class_versions_mixin.cpython-312-darwin.so +0 -0
  52. amsdal/models/core/class_object.py +1 -1
  53. amsdal/models/core/class_object.pyi +1 -1
  54. amsdal/models/core/class_property.py +1 -0
  55. amsdal/models/core/class_property.pyi +1 -0
  56. amsdal/schemas/manager.cpython-312-darwin.so +0 -0
  57. amsdal/services/__init__.cpython-312-darwin.so +0 -0
  58. amsdal/services/transaction_execution.cpython-312-darwin.so +0 -0
  59. amsdal/utils/tests/helpers.py +80 -39
  60. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/METADATA +2 -1
  61. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/RECORD +65 -65
  62. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/WHEEL +1 -1
  63. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/LICENSE.txt +0 -0
  64. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/licenses/LICENSE.txt +0 -0
  65. {amsdal-0.4.1.dist-info → amsdal-0.4.3.dist-info}/top_level.txt +0 -0
@@ -1100,7 +1100,6 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
1100
1100
 
1101
1101
  ## bcrypt **4.0 or later**
1102
1102
 
1103
-
1104
1103
  ### [https://github.com/pyca/bcrypt](https://github.com/pyca/bcrypt)
1105
1104
 
1106
1105
  ### **Apache License 2.0**
@@ -1305,4 +1304,31 @@ Unless required by applicable law or agreed to in writing, software
1305
1304
  distributed under the License is distributed on an "AS IS" BASIS,
1306
1305
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1307
1306
  See the License for the specific language governing permissions and
1308
- limitations under the License.
1307
+ limitations under the License.
1308
+
1309
+ ## pip **21.3.1 or later**
1310
+
1311
+ ### [https://github.com/pypa/pip](https://github.com/pypa/pip)
1312
+
1313
+ ### **MIT License**
1314
+
1315
+ Copyright (c) 2008-present The pip developers (see AUTHORS.txt file)
1316
+
1317
+ Permission is hereby granted, free of charge, to any person obtaining
1318
+ a copy of this software and associated documentation files (the
1319
+ "Software"), to deal in the Software without restriction, including
1320
+ without limitation the rights to use, copy, modify, merge, publish,
1321
+ distribute, sublicense, and/or sell copies of the Software, and to
1322
+ permit persons to whom the Software is furnished to do so, subject to
1323
+ the following conditions:
1324
+
1325
+ The above copyright notice and this permission notice shall be
1326
+ included in all copies or substantial portions of the Software.
1327
+
1328
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
1329
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
1330
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
1331
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
1332
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
1333
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
1334
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
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.4.1'
4
+ __version__ = '0.4.3'
@@ -121,6 +121,11 @@ class Migration(migrations.Migration):
121
121
  'items': {'key': {'type': 'string'}, 'value': {'type': 'anything'}},
122
122
  'title': 'Items',
123
123
  },
124
+ 'db_field': {
125
+ 'type': 'array',
126
+ 'items': {'type': 'string'},
127
+ 'title': 'DB Fields',
128
+ },
124
129
  },
125
130
  'meta_class': 'TypeMeta',
126
131
  },
@@ -138,8 +143,8 @@ class Migration(migrations.Migration):
138
143
  'title': 'Properties',
139
144
  },
140
145
  'primary_key': {
141
- 'type': 'dictionary',
142
- 'items': {'key': {'type': 'string'}, 'value': {'type': 'array', 'items': {'type': 'string'}}},
146
+ 'type': 'array',
147
+ 'items': {'type': 'string'},
143
148
  'title': 'Primary key fields',
144
149
  },
145
150
  'indexed': {'type': 'array', 'items': {'type': 'string'}, 'title': 'Indexed'},
@@ -188,7 +193,7 @@ class Migration(migrations.Migration):
188
193
  'title': 'Data',
189
194
  },
190
195
  },
191
- "primary_key": {"partition_key": ["partition_key"]},
196
+ "primary_key": ["partition_key"],
192
197
  "table_name": "Fixture",
193
198
  'unique': [['external_id']],
194
199
  },
@@ -204,7 +209,7 @@ class Migration(migrations.Migration):
204
209
  'data': {'type': 'binary', 'title': 'Data'},
205
210
  'size': {'type': 'number', 'title': 'Size'},
206
211
  },
207
- "primary_key": {"partition_key": ["partition_key"]},
212
+ "primary_key": ["partition_key"],
208
213
  "table_name": "File",
209
214
  'custom_code': "def pre_update(self): # type: ignore[no-untyped-def]\n self.size = len(self.data or b'')\n\ndef pre_create(self) -> None: # type: ignore[no-untyped-def]\n self.size = len(self.data or b'')\n\nfrom pathlib import Path\nfrom typing import BinaryIO\n\n\ndef to_file(self, file_or_path: Path | BinaryIO) -> None: # type: ignore[no-untyped-def]\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(self.data) # type: ignore[union-attr]\n else:\n file_or_path.write(self.data)\n file_or_path.seek(0)\n\nfrom pathlib import Path\nfrom typing import BinaryIO\n\n\n@classmethod # type: ignore[misc, no-untyped-def]\ndef from_file(\n cls,\n file_or_path: Path | BinaryIO,\n) -> 'File': # type: ignore[name-defined] # noqa: F821\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\n data = file_or_path.read_bytes()\n filename = file_or_path.name\n else:\n file_or_path.seek(0)\n data = file_or_path.read()\n filename = Path(file_or_path.name).name\n\n return cls(data=data, filename=filename)\n\nimport base64\n\nfrom pydantic import field_validator\n\n\n@field_validator('data') # type: ignore[misc]\n@classmethod\ndef data_base64_decode(cls, v: bytes) -> bytes: # type: ignore[no-untyped-def] # noqa: ARG001\n is_base64: bool = False\n\n try:\n is_base64 = base64.b64encode(base64.b64decode(v)) == v\n except Exception:\n ...\n\n if is_base64:\n return base64.b64decode(v)\n\n return v\n\n@property # type: ignore[misc]\ndef mimetype(self) -> str | None: # type: ignore[no-untyped-def]\n import mimetypes\n\n return mimetypes.guess_type(self.filename)[0]",
210
215
  },
@@ -19,7 +19,7 @@ class Migration(migrations.Migration):
19
19
  'title': 'Data',
20
20
  },
21
21
  },
22
- "primary_key": {"partition_key": ["partition_key"]},
22
+ "primary_key": ["partition_key"],
23
23
  "table_name": "Fixture",
24
24
  'unique': [['external_id']],
25
25
  },
@@ -36,7 +36,7 @@ class Migration(migrations.Migration):
36
36
  'title': 'Data',
37
37
  },
38
38
  },
39
- "primary_key": {"partition_key": ["partition_key"]},
39
+ "primary_key": ["partition_key"],
40
40
  "table_name": "Fixture",
41
41
  'unique': [['external_id']],
42
42
  },
Binary file
Binary file
Binary file
@@ -14,7 +14,7 @@ class Migration(migrations.Migration):
14
14
  'model': {'type': 'string', 'title': 'Model'},
15
15
  'action': {'type': 'string', 'title': 'Action'},
16
16
  },
17
- "primary_key": {"partition_key": ["partition_key"]},
17
+ "primary_key": ["partition_key"],
18
18
  "table_name": "Permission",
19
19
  'custom_code': "@property # type: ignore[misc]\ndef display_name(self) -> str: # type: ignore[no-untyped-def]\n return f'{self.model}:{self.action}'",
20
20
  },
@@ -30,7 +30,7 @@ class Migration(migrations.Migration):
30
30
  'password': {'type': 'binary', 'title': 'Password (hash)'},
31
31
  'permissions': {'type': 'array', 'items': {'type': 'Permission'}, 'title': 'Permissions'},
32
32
  },
33
- "primary_key": {"partition_key": ["partition_key"]},
33
+ "primary_key": ["partition_key"],
34
34
  "table_name": "User",
35
35
  'custom_code': "from typing import Any\n\n\ndef pre_init(self, *, is_new_object: bool, kwargs: dict[str, Any]) -> None: # type: ignore[no-untyped-def] # noqa: ARG001\n import bcrypt\n\n from amsdal.contrib.auth.errors import UserCreationError\n\n email = kwargs.get('email', None)\n password = kwargs.get('password', None)\n\n if email is None or email == '':\n msg = \"Email can't be empty\"\n raise UserCreationError(msg)\n\n if password is None or password == '':\n msg = \"Password can't be empty\"\n raise UserCreationError(msg)\n\n kwargs['email'] = email.lower()\n\n if is_new_object and '_metadata' not in kwargs:\n hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt())\n kwargs['password'] = hashed_password\n kwargs['_object_id'] = email.lower()\n\ndef pre_create(self) -> None: # type: ignore[no-untyped-def] # noqa: ARG001\n pass\n\n@property # type: ignore[misc]\ndef display_name(self) -> str: # type: ignore[no-untyped-def]\n return self.email",
36
36
  },
@@ -42,13 +42,14 @@ class Migration(migrations.Migration):
42
42
  'title': 'UserPermission',
43
43
  'required': ['user', 'permission'],
44
44
  'properties': {
45
- 'user': {'type': 'User', 'title': 'User'},
46
- 'permission': {'type': 'Permission', 'title': 'Permission'},
47
- },
48
- "primary_key": {
49
- "user": ["user_partition_key"],
50
- "permission": ["permission_partition_key"],
45
+ 'user': {'type': 'User', 'title': 'User', 'db_field': ['user_partition_key']},
46
+ 'permission': {
47
+ 'type': 'Permission',
48
+ 'title': 'Permission',
49
+ 'db_field': ['permission_partition_key'],
50
+ },
51
51
  },
52
+ "primary_key": ["user", "permission"],
52
53
  "foreign_keys": {
53
54
  "user": [
54
55
  {"user_partition_key": "string"},
@@ -75,7 +76,7 @@ class Migration(migrations.Migration):
75
76
  'password': {'type': 'string', 'title': 'Password (hash)'},
76
77
  'token': {'type': 'string', 'title': 'Token', 'mark_as_read_only': True},
77
78
  },
78
- "primary_key": {"partition_key": ["partition_key"]},
79
+ "primary_key": ["partition_key"],
79
80
  "table_name": "LoginSession",
80
81
  'custom_code': "from datetime import datetime\nfrom datetime import timedelta\nfrom datetime import timezone\nfrom typing import Any\n\nimport bcrypt\nimport jwt\nfrom amsdal_utils.models.enums import Versions\n\n\ndef pre_init(self, *, is_new_object: bool, kwargs: dict[str, Any]) -> None: # type: ignore[no-untyped-def] # noqa: ARG001\n if not is_new_object or '_metadata' in kwargs:\n return\n\n from amsdal.contrib.auth.errors import AuthenticationError\n from amsdal.contrib.auth.settings import auth_settings\n\n email = kwargs.get('email', None)\n password = kwargs.get('password', None)\n\n if not email:\n msg = \"Email can't be empty\"\n raise AuthenticationError(msg)\n\n if not password:\n msg = \"Password can't be empty\"\n raise AuthenticationError(msg)\n\n lowercased_email = email.lower()\n\n from amsdal.contrib.auth.models.user import User # type: ignore[import-not-found]\n\n user = User.objects.filter(email=lowercased_email, _address__object_version=Versions.LATEST).get_or_none().execute()\n\n if not user:\n msg = 'Invalid email / password'\n raise AuthenticationError(msg)\n\n if not bcrypt.checkpw(password.encode('utf-8') if isinstance(password, str) else password, user.password):\n msg = 'Invalid email / password'\n raise AuthenticationError(msg)\n\n kwargs['password'] = 'validated'\n expiration_time = datetime.now(tz=timezone.utc) + timedelta(seconds=1200)\n token = jwt.encode(\n {'email': lowercased_email, 'exp': expiration_time},\n key=auth_settings.AUTH_JWT_KEY, # type: ignore[arg-type]\n algorithm='HS256',\n )\n\n kwargs['token'] = token\n\n@property # type: ignore[misc]\ndef display_name(self) -> str: # type: ignore[no-untyped-def]\n return self.email",
81
82
  },
@@ -249,7 +249,7 @@ class Migration(migrations.Migration):
249
249
  'class_name': {'type': 'string', 'title': 'Class Name'},
250
250
  'control': {'type': 'FrontendControlConfig', 'title': 'Control'},
251
251
  },
252
- "primary_key": {"partition_key": ["partition_key"]},
252
+ "primary_key": ["partition_key"],
253
253
  "table_name": "FrontendModelConfig",
254
254
  },
255
255
  ),
Binary file
Binary file
@@ -15,7 +15,7 @@ class ClassObject(Model):
15
15
  __module_type__: ClassVar[ModuleType] = ModuleType.CORE
16
16
  properties: Optional[dict[str, Optional['ClassProperty']]] = Field(None, title='Properties') # noqa: F405, UP007
17
17
  table_name: Optional[str] = Field(None, title='Table name') # noqa: UP007
18
- primary_key: Optional[dict[str, list[str]]] = Field(None, title='Primary key fields') # noqa: UP007
18
+ primary_key: Optional[list[str]] = Field(None, title='Primary key fields') # noqa: UP007
19
19
  indexed: Optional[list[str]] = Field(None, title='Indexed') # noqa: UP007
20
20
  unique: Optional[list[list[str]]] = Field(None, title='Unique Fields') # noqa: UP007
21
21
  required: Optional[list[str]] = Field(None, title='Required') # noqa: UP007
@@ -7,7 +7,7 @@ class ClassObject(Model):
7
7
  __module_type__: ClassVar[ModuleType] = ...
8
8
  properties: dict[str, ClassProperty | None] | None = ...
9
9
  table_name: str | None = ...
10
- primary_key: dict[str, list[str]] | None = ...
10
+ primary_key: list[str] | None = ...
11
11
  indexed: list[str] | None = ...
12
12
  unique: list[list[str]] | None = ...
13
13
  required: list[str] | None = ...
@@ -12,6 +12,7 @@ class ClassProperty(TypeModel):
12
12
  __module_type__: ClassVar[ModuleType] = ModuleType.CORE
13
13
  type: str = Field(title='Type')
14
14
  items: dict[str, Any | None] | None = Field(None, title='Items')
15
+ db_field: list[str] | None = Field(None, title='DB Fields')
15
16
 
16
17
  @field_validator('items')
17
18
  @classmethod
@@ -6,5 +6,6 @@ class ClassProperty(TypeModel):
6
6
  __module_type__: ClassVar[ModuleType]
7
7
  type: str
8
8
  items: dict[str, Any | None] | None
9
+ db_field: list[str] | None
9
10
  @classmethod
10
11
  def _non_empty_keys_items(cls, value: Any) -> Any: ...
@@ -1,3 +1,4 @@
1
+ import contextlib
1
2
  import os
2
3
  import random
3
4
  import string
@@ -14,7 +15,8 @@ from typing import Any
14
15
 
15
16
  import yaml
16
17
  from amsdal_data.application import AsyncDataApplication
17
- from amsdal_models.migration import MigrationsLoader
18
+ from amsdal_data.connections.historical.schema_version_manager import AsyncHistoricalSchemaVersionManager
19
+ from amsdal_data.connections.historical.schema_version_manager import HistoricalSchemaVersionManager
18
20
  from amsdal_models.migration import migrations
19
21
  from amsdal_models.migration.executors.default_executor import DefaultAsyncMigrationExecutor
20
22
  from amsdal_models.migration.executors.default_executor import DefaultMigrationExecutor
@@ -23,8 +25,9 @@ from amsdal_models.migration.file_migration_generator import FileMigrationGenera
23
25
  from amsdal_models.migration.file_migration_writer import FileMigrationWriter
24
26
  from amsdal_models.migration.migrations import MigrateData
25
27
  from amsdal_models.migration.migrations import MigrationSchemas
26
- from amsdal_models.migration.schemas_loaders import JsonClassSchemaLoader # type: ignore
28
+ from amsdal_models.migration.migrations_loader import MigrationsLoader
27
29
  from amsdal_models.migration.utils import contrib_to_module_root_path
30
+ from amsdal_models.schemas.class_schema_loader import ClassSchemaLoader
28
31
  from amsdal_utils.config.manager import AmsdalConfigManager
29
32
  from amsdal_utils.models.enums import ModuleType
30
33
 
@@ -235,6 +238,7 @@ def _init_manager(
235
238
 
236
239
  @contextmanager
237
240
  def init_manager(
241
+ src_dir_path: Path,
238
242
  db_execution_type: DbExecutionType,
239
243
  lakehouse_option: LakehouseOption,
240
244
  state_option: StateOption,
@@ -243,7 +247,13 @@ def init_manager(
243
247
  db_dir,
244
248
  config_path,
245
249
  ):
246
- with override_settings(APP_PATH=db_dir, CONFIG_PATH=config_path):
250
+ with override_settings(
251
+ APP_PATH=db_dir,
252
+ CONFIG_PATH=config_path,
253
+ USER_MODELS_MODULE_PATH=src_dir_path / 'models',
254
+ TRANSACTIONS_MODULE_PATH=src_dir_path / 'transactions',
255
+ FIXTURES_MODULE_PATH=src_dir_path / 'fixtures',
256
+ ):
247
257
  config_manager = AmsdalConfigManager()
248
258
  config_manager.load_config(config_path)
249
259
  manager = AmsdalManager()
@@ -260,6 +270,7 @@ def init_manager(
260
270
 
261
271
  @asynccontextmanager
262
272
  async def async_init_manager(
273
+ src_dir_path: Path,
263
274
  db_execution_type: DbExecutionType,
264
275
  lakehouse_option: LakehouseOption,
265
276
  state_option: StateOption,
@@ -268,6 +279,9 @@ async def async_init_manager(
268
279
  with override_settings(
269
280
  APP_PATH=db_dir,
270
281
  CONFIG_PATH=config_path,
282
+ USER_MODELS_MODULE_PATH=src_dir_path / 'models',
283
+ TRANSACTIONS_MODULE_PATH=src_dir_path / 'transactions',
284
+ FIXTURES_MODULE_PATH=src_dir_path / 'fixtures',
271
285
  ):
272
286
  config_manager = AmsdalConfigManager()
273
287
  config_manager.load_config(config_path)
@@ -285,9 +299,13 @@ async def async_init_manager(
285
299
  AsyncDataApplication.invalidate()
286
300
 
287
301
 
288
- def migrate(app_schemas_path: Path) -> None:
302
+ def migrate() -> None:
289
303
  schemas = MigrationSchemas()
290
- executor = DefaultMigrationExecutor(schemas)
304
+ executor = DefaultMigrationExecutor(schemas, use_foreign_keys=True)
305
+
306
+ with contextlib.suppress(Exception):
307
+ HistoricalSchemaVersionManager().object_classes # noqa: B018
308
+
291
309
  _migrate_per_loader(
292
310
  executor,
293
311
  MigrationsLoader(
@@ -307,27 +325,39 @@ def migrate(app_schemas_path: Path) -> None:
307
325
  ),
308
326
  )
309
327
 
310
- schema_loader = JsonClassSchemaLoader(app_schemas_path)
328
+ user_schema_loader = ClassSchemaLoader(
329
+ settings.USER_MODELS_MODULE,
330
+ class_filter=lambda cls: cls.__module_type__ == ModuleType.USER,
331
+ )
332
+ _schemas, _cycle_schemas = user_schema_loader.load_sorted()
333
+ _schemas_map = {_schema.title: _schema for _schema in _schemas}
311
334
 
312
- for class_schema in schema_loader.iter_app_schemas():
335
+ for object_schema in _schemas:
313
336
  for _operation_data in FileMigrationGenerator.build_operations(
314
337
  ModuleType.USER,
315
- class_schema.object_schema,
338
+ object_schema,
316
339
  None,
317
340
  ):
318
341
  _operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
319
- kwargs = {}
320
-
321
- if _operation_data.old_schema:
322
- kwargs['old_schema'] = _operation_data.old_schema.model_dump()
342
+ _operation = getattr(migrations, _operation_name)(
343
+ module_type=ModuleType.USER,
344
+ class_name=_operation_data.class_name,
345
+ new_schema=_operation_data.new_schema.model_dump(),
346
+ )
323
347
 
324
- if _operation_data.new_schema:
325
- kwargs['new_schema'] = _operation_data.new_schema.model_dump()
348
+ _operation.forward(executor)
326
349
 
350
+ for object_schema in _cycle_schemas:
351
+ for _operation_data in FileMigrationGenerator.build_operations(
352
+ ModuleType.USER,
353
+ object_schema,
354
+ _schemas_map[object_schema.title],
355
+ ):
356
+ _operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
327
357
  _operation = getattr(migrations, _operation_name)(
328
- schema_type=ModuleType.USER,
358
+ module_type=ModuleType.USER,
329
359
  class_name=_operation_data.class_name,
330
- **kwargs,
360
+ new_schema=_operation_data.new_schema.model_dump(),
331
361
  )
332
362
 
333
363
  _operation.forward(executor)
@@ -349,9 +379,13 @@ def _migrate_per_loader(executor: DefaultMigrationExecutor, loader: MigrationsLo
349
379
  executor.flush_buffer()
350
380
 
351
381
 
352
- async def async_migrate(app_schemas_path: Path) -> None:
382
+ async def async_migrate() -> None:
353
383
  schemas = MigrationSchemas()
354
384
  executor = DefaultAsyncMigrationExecutor(schemas)
385
+
386
+ with contextlib.suppress(Exception):
387
+ await AsyncHistoricalSchemaVersionManager().object_classes
388
+
355
389
  await _async_migrate_per_loader(
356
390
  executor,
357
391
  MigrationsLoader(
@@ -371,27 +405,39 @@ async def async_migrate(app_schemas_path: Path) -> None:
371
405
  ),
372
406
  )
373
407
 
374
- schema_loader = JsonClassSchemaLoader(app_schemas_path)
408
+ user_schema_loader = ClassSchemaLoader(
409
+ settings.USER_MODELS_MODULE,
410
+ class_filter=lambda cls: cls.__module_type__ == ModuleType.USER,
411
+ )
412
+ _schemas, _cycle_schemas = user_schema_loader.load_sorted()
413
+ _schemas_map = {_schema.title: _schema for _schema in _schemas}
375
414
 
376
- for class_schema in schema_loader.iter_app_schemas():
415
+ for object_schema in _schemas:
377
416
  for _operation_data in FileMigrationGenerator.build_operations(
378
417
  ModuleType.USER,
379
- class_schema.object_schema,
418
+ object_schema,
380
419
  None,
381
420
  ):
382
421
  _operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
383
- kwargs = {}
384
-
385
- if _operation_data.old_schema:
386
- kwargs['old_schema'] = _operation_data.old_schema.model_dump()
422
+ _operation = getattr(migrations, _operation_name)(
423
+ module_type=ModuleType.USER,
424
+ class_name=_operation_data.class_name,
425
+ new_schema=_operation_data.new_schema.model_dump(),
426
+ )
387
427
 
388
- if _operation_data.new_schema:
389
- kwargs['new_schema'] = _operation_data.new_schema.model_dump()
428
+ _operation.forward(executor)
390
429
 
430
+ for object_schema in _cycle_schemas:
431
+ for _operation_data in FileMigrationGenerator.build_operations(
432
+ ModuleType.USER,
433
+ object_schema,
434
+ _schemas_map[object_schema.title],
435
+ ):
436
+ _operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
391
437
  _operation = getattr(migrations, _operation_name)(
392
- schema_type=ModuleType.USER,
438
+ module_type=ModuleType.USER,
393
439
  class_name=_operation_data.class_name,
394
- **kwargs,
440
+ new_schema=_operation_data.new_schema.model_dump(),
395
441
  )
396
442
 
397
443
  _operation.forward(executor)
@@ -415,17 +461,19 @@ async def _async_migrate_per_loader(executor: DefaultAsyncMigrationExecutor, loa
415
461
 
416
462
  @contextmanager
417
463
  def init_manager_and_migrate(
464
+ src_dir_path: Path,
418
465
  db_execution_type: DbExecutionType,
419
466
  lakehouse_option: LakehouseOption,
420
467
  state_option: StateOption,
421
468
  ) -> Generator[AmsdalManager, Any, None]:
422
469
  with init_manager(
470
+ src_dir_path=src_dir_path,
423
471
  db_execution_type=db_execution_type,
424
472
  lakehouse_option=lakehouse_option,
425
473
  state_option=state_option,
426
474
  ) as manager:
427
- manager.authenticate()
428
475
  migrate()
476
+ manager.authenticate()
429
477
  manager.init_classes()
430
478
 
431
479
  yield manager
@@ -433,26 +481,19 @@ def init_manager_and_migrate(
433
481
 
434
482
  @asynccontextmanager
435
483
  async def async_init_manager_and_migrate(
484
+ src_dir_path: Path,
436
485
  db_execution_type: DbExecutionType,
437
486
  lakehouse_option: LakehouseOption,
438
487
  state_option: StateOption,
439
488
  ) -> AsyncGenerator[AsyncAmsdalManager, Any]:
440
489
  async with async_init_manager(
490
+ src_dir_path=src_dir_path,
441
491
  db_execution_type=db_execution_type,
442
492
  lakehouse_option=lakehouse_option,
443
493
  state_option=state_option,
444
494
  ) as manager:
445
- src_dir_path = TESTS_DIR / 'src'
446
- app_schemas_path = src_dir_path / 'models'
447
- manager.build(
448
- source_models_path=app_schemas_path,
449
- source_fixtures_path=app_schemas_path,
450
- source_transactions_path=src_dir_path,
451
- source_static_files_path=app_schemas_path,
452
- source_migrations_path=app_schemas_path,
453
- )
495
+ await async_migrate()
454
496
  manager.authenticate()
455
- await async_migrate(app_schemas_path)
456
497
  manager.init_classes()
457
498
 
458
499
  yield manager
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amsdal
3
- Version: 0.4.1
3
+ Version: 0.4.3
4
4
  Summary: AMSDAL
5
5
  License: AMSDAL End User License Agreement
6
6
 
@@ -132,6 +132,7 @@ Requires-Dist: black>=24.3.0
132
132
  Requires-Dist: amsdal_utils==0.4.*
133
133
  Requires-Dist: amsdal_data[postgres-binary]==0.4.*
134
134
  Requires-Dist: amsdal_models<0.5,>=0.4.1
135
+ Requires-Dist: pip>=21.3.1
135
136
  Provides-Extra: cli
136
137
  Requires-Dist: amsdal-cli==0.4.*; extra == "cli"
137
138
  Provides-Extra: server
@@ -1,10 +1,10 @@
1
1
  amsdal/manager.pyi,sha256=AtMObu3V45-TXD21yFqANVRVDvQ3uyTXz-e2CsaDEJg,9307
2
2
  amsdal/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
3
3
  amsdal/__init__.py,sha256=EQCJ5OevmkkIpIULumPNIbWk3UI7afDfRzIsZN5mfwg,73
4
- amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md,sha256=VcPLiGSghykwD290sS5A3hSNtPcz5hoBRgNaUTKdEnY,73573
5
- amsdal/__about__.py,sha256=pg0rW832Hw6_GNV4QGrkmybmZ80W7pzDrO4aZFceq2M,124
4
+ amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md,sha256=3YRsqickIvSW7EmjlC-yk5h-YW_GMzAz7wsT9ZPIiaM,74780
5
+ amsdal/__about__.py,sha256=MMegtTxe9XJWkK2JsFlVqJZOOD7xyqrpN6b9Ltgwkao,124
6
6
  amsdal/errors.pyi,sha256=mcuGsQMWaIUmC9GJDIkf99dQMMsCfBy6OI_UB3NSNmc,597
7
- amsdal/manager.cpython-312-darwin.so,sha256=kdfyePb2KFjtLK33MTq7qUTgFd4Thh0u2WHRAuCROoY,501968
7
+ amsdal/manager.cpython-312-darwin.so,sha256=r8qfWoSsi342tnuDa5tHl-7TK0G379w6P4zH5SP9ozI,501968
8
8
  amsdal/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
9
9
  amsdal/errors.py,sha256=pZZKIklaDkh8jdFSAfX81TbiylvbaE70nttRjTcTSBk,616
10
10
  amsdal/__about__.pyi,sha256=Y25n44pyE3vp92MiABKrcK3IWRyQ1JG1rZ4Ufqy2nC0,17
@@ -13,8 +13,8 @@ amsdal/context/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  amsdal/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  amsdal/context/manager.py,sha256=CKGY75P2y-TCnZvK5p9NJsDgHo8KXHSE0Eg5AGRjnfk,1850
15
15
  amsdal/mixins/class_versions_mixin.pyi,sha256=oSXjkTsN35d-3YgCckclhk7xRkljKHLYtN8a8gJgj2o,548
16
- amsdal/mixins/__init__.cpython-312-darwin.so,sha256=Dx4WEqkeLdCu-Ib_B99mV7ZXQfeaVE7xpJJhjiVQm70,120720
17
- amsdal/mixins/class_versions_mixin.cpython-312-darwin.so,sha256=RghcC8wA5n7nTTsBegknwO4thx6DqMx5BRhNt8c-skk,180480
16
+ amsdal/mixins/__init__.cpython-312-darwin.so,sha256=_ztZmc2qsDmgVjjQej5LGrVm6msJUAZTPfV37Vk863o,120720
17
+ amsdal/mixins/class_versions_mixin.cpython-312-darwin.so,sha256=-1UlWyR74JFAVnFzfdshKgDsnKPiHc_3qIsat_uWLaI,180480
18
18
  amsdal/mixins/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  amsdal/utils/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
20
20
  amsdal/utils/contrib_paths.py,sha256=9BpNegbPofuvaQ4bE4E5cO4IV415ZZJkTqSLHUruJ3k,787
@@ -23,7 +23,7 @@ amsdal/utils/contrib_paths.pyi,sha256=Ngb_2wCTCPJ9NSIqKiP254Ww9xrQzAV1-AiqUkVmiu
23
23
  amsdal/utils/tests/enums.py,sha256=DoVtMzvfePjfLiAVctPDehdTTHawDbWrQP3yg46Bx6k,390
24
24
  amsdal/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  amsdal/utils/tests/factories.py,sha256=SAnMjkDHg2dXgnDfxQGTvZX5MLuRmdskq7Cjbf6swVk,1926
26
- amsdal/utils/tests/helpers.py,sha256=l5K3Xim1yuTD5WXxK94b1NHa8qKLRosyCHTjuiAJtbk,15583
26
+ amsdal/utils/tests/helpers.py,sha256=VmcvdFbMbfS87XzDB0j16AWR2i1esQJVEyIPDfIiS74,17335
27
27
  amsdal/utils/rollback/__init__.pyi,sha256=ABDuUBt3_uTE600GP1Z_NAMxySPbLs9tIyTNNeu4lbU,962
28
28
  amsdal/utils/rollback/__init__.py,sha256=NBIvidqj0nKRa30mWon5onpHBPQidb0DFJGcZbkKrY8,16832
29
29
  amsdal/models/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -35,7 +35,7 @@ amsdal/models/types/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
35
35
  amsdal/models/core/validator.py,sha256=Eqn2XvJV8Kn6NT2HnIGIkAV2ubmSen3rx5Yaeiuapak,367
36
36
  amsdal/models/core/fixture.py,sha256=V4SS1rAYD6mtRjwZ5tEaGgZL3fgRuP2KJ4x7R3AkBWo,1000
37
37
  amsdal/models/core/fixture.pyi,sha256=eVGiwX79YkV6KlsxdE40D7JlA0Zan6mPY2wTMv9HWS8,537
38
- amsdal/models/core/class_property.pyi,sha256=qYDnfHBwXExh_v3hPaDgkgh3sO728qKTRl3RCZPsO4k,337
38
+ amsdal/models/core/class_property.pyi,sha256=dI3OSZ2yfpIDUtiyRXJfdQL74HuF_C0uB1ccZ6RVpF4,368
39
39
  amsdal/models/core/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  amsdal/models/core/option.py,sha256=W2w9tmNrdmOF6x5QohJghRrnUY-RFCQ0YFULhVGdDzw,326
41
41
  amsdal/models/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -44,13 +44,13 @@ amsdal/models/core/class_property_meta.py,sha256=omNSra6oPXDBda9FzLsYh9jQYhQQXTv
44
44
  amsdal/models/core/validator.pyi,sha256=7Q8muoefalIAqWa1sleORcsaQNzhkUH5MsqMy9w7l_4,231
45
45
  amsdal/models/core/class_object_meta.pyi,sha256=GRFsp1D6QSYJAga9VnR7xTFznc4h_hN7LDzzeSgBv5o,551
46
46
  amsdal/models/core/class_object_meta.py,sha256=Q_l4a1ZctV-aaBF22NF4LEkAJhEBgEjhsITuHX2PqsI,1080
47
- amsdal/models/core/class_property.py,sha256=7FmXi0ueN9lRZIZcZ7r9eXUvCDLstUbjprHzVZQCE1Y,712
47
+ amsdal/models/core/class_property.py,sha256=1MSUUwJOJvK0KNIja1kCUfc8pr3l_j_C34-98ksKvyo,776
48
48
  amsdal/models/core/option.pyi,sha256=kkZou2vvjYHRBlF0twFfAkHF3Y_vf95YWEYhcAC5_5s,223
49
- amsdal/models/core/class_object.pyi,sha256=Bs5JhN03Y9-w6ynqlhpSLdDczal4pTn-iEBXj-cZtzw,832
49
+ amsdal/models/core/class_object.pyi,sha256=mwMYnb7Gcmc0yKUrYsSrHY_o9eqdAoV-Hz0r0ePaTYo,821
50
50
  amsdal/models/core/class_property_meta.pyi,sha256=wi2kFpQffYvUSldlkMDluwxhjic3MI2sHSr2y9BClFU,332
51
- amsdal/models/core/class_object.py,sha256=226IzEzmJknv-XfjD5sq9PJ3Y4zc-b0fSD3nrXSrsi0,1544
51
+ amsdal/models/core/class_object.py,sha256=H9os4vZaVAcIQiXyates9PC4BKpXQKtg13sDzGYTN8k,1533
52
52
  amsdal/models/core/file.pyi,sha256=RZTKCfjQ4fXtwz3E1xtgDsViaB_IwGtX2icDQtw-_kk,3460
53
- amsdal/contrib/__init__.cpython-312-darwin.so,sha256=GqsIHsdh3d0ZfCeGuka7LiyqblKKW8vC3uODiAlUP1U,120736
53
+ amsdal/contrib/__init__.cpython-312-darwin.so,sha256=h-tjvVKQRRyIqhTo-IIqFBwdOzL-81OV9OwF5PrYWt4,120736
54
54
  amsdal/contrib/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
55
  amsdal/contrib/app_config.pyi,sha256=j3MYfBcn9MzhTagEczGWfVH9N5jrfiKmUhxZMoakojw,149
56
56
  amsdal/contrib/app_config.py,sha256=RT3RAEE49XtzuFTXYNVuaqU9V4YIl0ZWZijtXgV-SC4,131
@@ -62,7 +62,7 @@ amsdal/contrib/auth/errors.pyi,sha256=LXEfxHkbEZuES7PNzBwmS7yP5yqaZGDftscI10SeCx
62
62
  amsdal/contrib/auth/settings.py,sha256=4HneHyXD01s5_kAmhnA-13ryi-PfxejbE45YvC_xHHI,1227
63
63
  amsdal/contrib/auth/app.py,sha256=MY_MwhI6d1J8IRi232SbBPp-wrcleRc5BIHNW0--ji4,1181
64
64
  amsdal/contrib/auth/errors.py,sha256=nXuMLbicP_ScrPuZaSdwkPr7fN66Ox_v6UzknVRy9Jk,134
65
- amsdal/contrib/auth/migrations/0000_initial.py,sha256=6ykCsfqPNe97nMlTXlmnQLYtWoabYulTasDCcH_n0Xk,6296
65
+ amsdal/contrib/auth/migrations/0000_initial.py,sha256=uSpGAEh8lSdhUxrGa4SVtmyNHVn4RHX8eKF1s_FnH20,6299
66
66
  amsdal/contrib/auth/decorators/__init__.pyi,sha256=1DKnpx3dKyeuHyKcnXn0TzVqQxT8qrjQnYYASNSA7fM,305
67
67
  amsdal/contrib/auth/decorators/__init__.py,sha256=oBKJQtgWnWiPOjol9-KejJPuQJmfsjj14UVB_4qB4kw,1088
68
68
  amsdal/contrib/auth/lifecycle/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -86,7 +86,7 @@ amsdal/contrib/frontend_configs/utils.pyi,sha256=0LuzznNZ4NjuYYXsApfubjUpkG8EVwq
86
86
  amsdal/contrib/frontend_configs/app.pyi,sha256=Bxdz0kmOF-Poaf2wmoJdgWYmHaStFyOFYTko3b3GpTY,723
87
87
  amsdal/contrib/frontend_configs/utils.py,sha256=IruaUNl4xkOr2IIFzlvrmi06vEu3CWx49GzLBsrCFU0,1103
88
88
  amsdal/contrib/frontend_configs/app.py,sha256=fY4GukBM6GKSZExT0EgddTamLfUJHwQZS8tOwVQyeSY,836
89
- amsdal/contrib/frontend_configs/migrations/0000_initial.py,sha256=qsOddrbev6Cy7vwj8RCzIlpjMKL_m91j1weRzc4Ryj8,13629
89
+ amsdal/contrib/frontend_configs/migrations/0000_initial.py,sha256=eZjgh4WJ7lYlUGh2BJUAfgF1v4by937l4jQkCQOLqZ8,13610
90
90
  amsdal/contrib/frontend_configs/lifecycle/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
91
  amsdal/contrib/frontend_configs/lifecycle/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  amsdal/contrib/frontend_configs/lifecycle/consumer.pyi,sha256=kRNenTrKfswS8Y3UY6XYQ03WlCuo9LFk8WIJxm--cAk,4168
@@ -127,7 +127,7 @@ amsdal/schemas/interfaces.pyi,sha256=CSYdZsjj6j7m8YvnQ-iFlBV4CYrGTs_Yvan1VMpm_Ag
127
127
  amsdal/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
128
  amsdal/schemas/utils.pyi,sha256=ajyhB6MMxiiRDeCbVjp6wsbLr8s5a0d_rbXMVX4D50Y,425
129
129
  amsdal/schemas/utils.py,sha256=t8k7QYYR6SsCPpBhp7s585eSYKVIF895EKRMK1w1y1Q,492
130
- amsdal/schemas/manager.cpython-312-darwin.so,sha256=0N9s5MUekyFB9ipskrCkTFz6fvIs08nuJQQ-GqKwIMw,120736
130
+ amsdal/schemas/manager.cpython-312-darwin.so,sha256=6zCICXzCEyUZdqQJ_9Dz3zN5bY0HRbfWBpiK4aiocVI,120736
131
131
  amsdal/schemas/repository.py,sha256=PbskgDr8JMabQm2uf8Kfj5bBSPlPkx4cDGXn-jfIsPM,3249
132
132
  amsdal/schemas/manager.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
133
  amsdal/schemas/types/array/model.json,sha256=I9Z7r691yd8i-Ndy8Cf3rFGg22mnLxg_weeVU2kRtkY,117
@@ -164,103 +164,103 @@ amsdal/schemas/mixins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3h
164
164
  amsdal/schemas/mixins/check_dependencies_mixin.py,sha256=3hVkb5GuaE2GlMC14kAptgG6Z9GVjPcBvaSSeS0d87I,4677
165
165
  amsdal/__migrations__/0001_datetime_type.py,sha256=4nBz3CkcOEB_TX7TdlFKVgvzH4UrD3yOXwoAGsUq9YY,601
166
166
  amsdal/__migrations__/0003_schema_type_in_class_meta.py,sha256=fKc9JJwwX3gn7rr0BoDVKU0fuqGz1iIaJxr5SPaCwnw,1909
167
- amsdal/__migrations__/0000_initial.py,sha256=rXcs8CsYRynCC6vFg_M_1AF6FMmUOj2qufuDQjO-5jg,10881
168
- amsdal/__migrations__/0002_fixture_order.py,sha256=EQ26GtqFfvyAJJyfCb4QlYx3g_OJb92sf5THMsfDQ30,1823
167
+ amsdal/__migrations__/0000_initial.py,sha256=FzVtPq7lnJw8yPa-x9PZ95cZAXDUMakWIzsD7AJRylg,10969
168
+ amsdal/__migrations__/0002_fixture_order.py,sha256=3ESW8juUpRdSziGYYyiUyJeQVEB6kSB4wIIncvOBHok,1785
169
169
  amsdal/configs/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
170
  amsdal/configs/constants.pyi,sha256=ZoWj8V0YkrPaY0zBsXCenwuWMQIQ0K6hnzr4We9CRl0,683
171
171
  amsdal/configs/constants.py,sha256=faghdS6r3on1WKrp782WmgONd1fMf4X73LJzAwMO1po,969
172
172
  amsdal/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
173
173
  amsdal/configs/main.pyi,sha256=JjjrXf4ZPMG--f9Lw9pKdQr7NoOF9qrF_oUGDDNt8QA,6836
174
174
  amsdal/configs/main.py,sha256=lRO_iTMlmlosTAHZrVg3iXZVuKj45lEb5LrPln3wixM,9567
175
- amsdal/cloud/__init__.cpython-312-darwin.so,sha256=R_6bjSU01MBDocK1KTFdI4_MrnWiRnkedE3TEM3xulg,120720
175
+ amsdal/cloud/__init__.cpython-312-darwin.so,sha256=uBPmbXjthzJa1pmezKcYiFzcFDyQSggSAU0A3N_U30A,120720
176
176
  amsdal/cloud/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
177
177
  amsdal/cloud/constants.pyi,sha256=0qWxDqjQkETwUtgco5kV83fPHhQ4jRdJe_YPPNTnSIY,327
178
178
  amsdal/cloud/client.pyi,sha256=3VjPRtJrbUU29u_wswETrMorN0iUb4GFAXmMc73bUf4,2247
179
- amsdal/cloud/constants.cpython-312-darwin.so,sha256=kjsw078B7r2snF-65ObbmBVqfVVw6PxCH2io4X40kyM,158688
180
- amsdal/cloud/enums.cpython-312-darwin.so,sha256=1G66ulmpmY4Xa1NBJsVAih7Xih7VTvi4-uzQm0AQ5Wc,158128
181
- amsdal/cloud/client.cpython-312-darwin.so,sha256=x5xoTDHcrQfCbSXQT4aWhNTtrAIuWY69wzHkaR2EZ6c,216144
179
+ amsdal/cloud/constants.cpython-312-darwin.so,sha256=7xlJeI57LkxFKv13j4DNQSC-PpJD68OUV2kBvzGcdxw,158688
180
+ amsdal/cloud/enums.cpython-312-darwin.so,sha256=IHQSEu71bbdph5JuWGhWHd1If3EekonLS0uHslfjmrA,158128
181
+ amsdal/cloud/client.cpython-312-darwin.so,sha256=vqAVcm_gTx87em-rdgXylSSAQLebsLwFNvGbedOkycc,216144
182
182
  amsdal/cloud/enums.pyi,sha256=mX5O1FPc3aNnN108aOJT66Nn9KlcyrRTj9B23sFdDfw,1757
183
- amsdal/cloud/models/__init__.cpython-312-darwin.so,sha256=CauB9xEo6Xql_E_wEo0pMomysE90gzbgKjTDE0QTKH8,120752
183
+ amsdal/cloud/models/__init__.cpython-312-darwin.so,sha256=Hpf3i_nWQ2DNk6qMRBWDVFRwRJfaTqOvDA8NrLbVZmw,120752
184
184
  amsdal/cloud/models/base.pyi,sha256=avwAj4uS4NHrXvmSKBxokFKFWSaBPXtJPl1Ig1CD6sg,7727
185
185
  amsdal/cloud/models/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
186
- amsdal/cloud/models/base.cpython-312-darwin.so,sha256=_sMCsZRoeRvgtmSimY0qdE-3XIyzNnkQiZhftwsFIjY,195328
187
- amsdal/cloud/services/__init__.cpython-312-darwin.so,sha256=5isDaZqMM0w3OgkwQNHI4vuRfran31k130IltVFjnj8,120768
186
+ amsdal/cloud/models/base.cpython-312-darwin.so,sha256=PDK5qbNXSYZ7x717JsI62xvJSXnIZzObTS3xZsKiU0Q,195328
187
+ amsdal/cloud/services/__init__.cpython-312-darwin.so,sha256=BirrX142dZi49rlhdikFTYX0HfT7GrQGmTorbUsBxzY,120768
188
188
  amsdal/cloud/services/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
- amsdal/cloud/services/auth/__init__.cpython-312-darwin.so,sha256=fp7z9hXAa1sjUnF6fhFlfm66a8UntHLP8YQ21KlShz0,120784
189
+ amsdal/cloud/services/auth/__init__.cpython-312-darwin.so,sha256=irV28L_7PhglOhC5fv8r_Qr1ufXq5Nkjw0zoc1d89oE,120784
190
190
  amsdal/cloud/services/auth/base.pyi,sha256=oj_tgwWhf02g-FzCLcNOEZjYDxfcrrDssING4jsUMb8,167
191
191
  amsdal/cloud/services/auth/manager.pyi,sha256=AhKllHgraztP3JSKta9MmQjTNRAbQbwqZg2EpQZSwhI,1243
192
192
  amsdal/cloud/services/auth/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
- amsdal/cloud/services/auth/credentials.cpython-312-darwin.so,sha256=NQiqYdPlgAVn2opL0YxfsYVY5fL7B4ReCV6WLEkAAlQ,253224
193
+ amsdal/cloud/services/auth/credentials.cpython-312-darwin.so,sha256=iG808XNdglGijpBWCDQZHV_ed0CPrKWCnN6sjHa4vxI,253224
194
194
  amsdal/cloud/services/auth/signup_service.pyi,sha256=SfSN1tLIwrzGi9JbMgoLuKKH1u5uoh_MOFJ4n_NHcBY,1145
195
- amsdal/cloud/services/auth/signup_service.cpython-312-darwin.so,sha256=XwkzxBrjZw6qfX53DSG34gGPiPe_ZWb-AeNBb-DqtGk,216232
195
+ amsdal/cloud/services/auth/signup_service.cpython-312-darwin.so,sha256=cZ9EmG6HEVJmrgcCedJVVtrIzEhw6F9CsEVK_c3JZik,216232
196
196
  amsdal/cloud/services/auth/token.pyi,sha256=v9QDleIytAZGlYHHaO-W1fTr5d2OLGWsh5g6HDeuk90,1042
197
- amsdal/cloud/services/auth/token.cpython-312-darwin.so,sha256=MzMpH0u17ffaI4LvXmATzh34kWC_wPkBiCm9TOsoBuE,251648
198
- amsdal/cloud/services/auth/manager.cpython-312-darwin.so,sha256=3P9ZetLgceGEFtgNg3Rn1CQNmC9KPEPltDxIqxjgAoA,214144
199
- amsdal/cloud/services/auth/base.cpython-312-darwin.so,sha256=3P1mH1MsTjwAkHmeDSh-poPGIrRaplDff4EV0XYIDu8,163120
197
+ amsdal/cloud/services/auth/token.cpython-312-darwin.so,sha256=Nhtv5f1Uu0XyLIIym8eZ6pfGQ_EhVpkGyy4e75inVV0,251648
198
+ amsdal/cloud/services/auth/manager.cpython-312-darwin.so,sha256=hexyUXNzLoWNI0IIJidHOsEhVJYLn9XesNtEbh9D5G8,214144
199
+ amsdal/cloud/services/auth/base.cpython-312-darwin.so,sha256=bBBU5xKyersVOInd05kmG8_nw4sFKXj_joM8sXFGTa4,163120
200
200
  amsdal/cloud/services/auth/credentials.pyi,sha256=ghp3r8rDq5l5xxx7UKFkCASyQJbWChkF2PQDJrQmeW4,1417
201
- amsdal/cloud/services/actions/delete_env.cpython-312-darwin.so,sha256=9MqXwKdA841NsATivKNGbLo9p2qFUOa_UhoOgo0XBcg,180840
202
- amsdal/cloud/services/actions/__init__.cpython-312-darwin.so,sha256=zFJWo-qeoWZlaatnm5niZPjl0N5xcsR4V7-SCPqgGaU,120800
201
+ amsdal/cloud/services/actions/delete_env.cpython-312-darwin.so,sha256=VCWZbjfsqFu9PeBjb000euluiDx_PPhOK_vyiT-hHIo,180840
202
+ amsdal/cloud/services/actions/__init__.cpython-312-darwin.so,sha256=l8DHE6uN7X5hwuIDDNR3rE7eptQ3jJKqIuLTi_udkfw,120800
203
203
  amsdal/cloud/services/actions/list_envs.pyi,sha256=7PylFRd1Jb6nkTt8q8iy27rLj-Q5qcwfqW02_OlfDZs,878
204
204
  amsdal/cloud/services/actions/base.pyi,sha256=J98igdu3E9-mled_kbxerja4DTLM0OAW8cHtsVOQ_fc,5880
205
205
  amsdal/cloud/services/actions/manager.pyi,sha256=Tal5u1nMhi7MeuJ9lBIPYPLgKoIB6DUXPU2AokrusHI,15441
206
206
  amsdal/cloud/services/actions/delete_allowlist_ip.pyi,sha256=W5zVq7YKL_OVigZl58bqau3rvAzsLdItAZaqDO1HGJw,933
207
207
  amsdal/cloud/services/actions/add_basic_auth.pyi,sha256=4tyTci_k_xlJrkBd71sY0ivRr8alo3Bq0KCkjIfacu4,1106
208
208
  amsdal/cloud/services/actions/list_secrets.pyi,sha256=vF-EikAy7WHdkvkGikD_oDFDIgE1GEr8nxAQKYAs9rY,1079
209
- amsdal/cloud/services/actions/delete_secret.cpython-312-darwin.so,sha256=qlVXnslLUbSpTUfRNDSNJ23UENBMLUqmyuOrdiQyZj0,164312
209
+ amsdal/cloud/services/actions/delete_secret.cpython-312-darwin.so,sha256=fhEw_32EPaFCyn9fzhH0KfhoHjbqzTdAayKl4dXyj34,164312
210
210
  amsdal/cloud/services/actions/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
211
  amsdal/cloud/services/actions/get_basic_auth_credentials.pyi,sha256=1FU8BtDRaGTx8fSqdhmotQK-rR7gKr4Qav_E-T_23rc,1071
212
- amsdal/cloud/services/actions/add_basic_auth.cpython-312-darwin.so,sha256=VngD0yvLPYwJjnL7D6d5ccGHeSL-lKcolDrAEiPopx4,197512
212
+ amsdal/cloud/services/actions/add_basic_auth.cpython-312-darwin.so,sha256=0zEWxEo_OoQ8YoIdQpk-pzRqrink7B2gG0bOYZL-pLI,197512
213
213
  amsdal/cloud/services/actions/delete_secret.pyi,sha256=gZi17MivNYBIfdPU2GjoJ2I2lWiefdvLuXTcxDss1P4,953
214
214
  amsdal/cloud/services/actions/delete_env.pyi,sha256=uyBHMOp_AprbpSfv6y6QfYW5FvK1-8jb2NxK_FmuPHE,969
215
- amsdal/cloud/services/actions/delete_allowlist_ip.cpython-312-darwin.so,sha256=Ez9ORtdS9dRtQqlBd48NY-98vqPRuzWswvVcU9H02ao,180848
216
- amsdal/cloud/services/actions/add_dependency.cpython-312-darwin.so,sha256=4B-VAxbos_PH5FPq5yJ5cRfdqNHESPLom6UT_zUpOyg,164328
217
- amsdal/cloud/services/actions/create_env.cpython-312-darwin.so,sha256=FUFMa2SK9BAjod2TSx4fSQOa3KLpAA1bzSDXME5kw-g,180840
218
- amsdal/cloud/services/actions/update_deploy.cpython-312-darwin.so,sha256=rDMK1eCDHF7njoR5BpeBFHKAMjo9SujZwgwX3zh53EI,181080
219
- amsdal/cloud/services/actions/get_monitoring_info.cpython-312-darwin.so,sha256=By_xC9l-cvsOsRNH5_rqsriSub_zpfw-HC41MeXO6no,197376
215
+ amsdal/cloud/services/actions/delete_allowlist_ip.cpython-312-darwin.so,sha256=wDA9eEa6_kUHMR5oqKtPYGR-3VlyrVAZdzoleJFabm8,180848
216
+ amsdal/cloud/services/actions/add_dependency.cpython-312-darwin.so,sha256=R2KEOpKRt5HfFP76CdVO9_pW6lpn0LZ93CEYG6VTPIk,164328
217
+ amsdal/cloud/services/actions/create_env.cpython-312-darwin.so,sha256=qLo09R0i7PdKsGHB4LjZr2i_b2AFg8QC37EaLbEy44s,180840
218
+ amsdal/cloud/services/actions/update_deploy.cpython-312-darwin.so,sha256=72P8KwD7W4gc1obpfqxrx-AOIRb7qF96RM_IQCXCFKg,181080
219
+ amsdal/cloud/services/actions/get_monitoring_info.cpython-312-darwin.so,sha256=bNXZ1K5NKE-vI2VAwqA5TL1kHeEPDFJJThzIulX4DqI,197376
220
220
  amsdal/cloud/services/actions/delete_dependency.pyi,sha256=VuT1w2qOpjR7I9mBi9tPXMXDPEeU8tG0vi9TXV82Frg,1021
221
- amsdal/cloud/services/actions/destroy_deploy.cpython-312-darwin.so,sha256=NKJCxP2t9maYQrfRqiWzIjoxT-WfERWrb-4yEtVV1yQ,164168
222
- amsdal/cloud/services/actions/list_dependencies.cpython-312-darwin.so,sha256=ZDe2Iif25iCJ7X-FHDNp9rjD-2NBRH6tBO89WWleeVo,197704
223
- amsdal/cloud/services/actions/list_envs.cpython-312-darwin.so,sha256=1UZ3IqOXFjIbLYFy3qn5sVc_8r9HJo7UCkZPFizBNSg,164384
224
- amsdal/cloud/services/actions/list_deploys.cpython-312-darwin.so,sha256=wEOOJvyFrqUGjBxykZtStFHkeNlpSj3YMpYgek46HXk,181096
221
+ amsdal/cloud/services/actions/destroy_deploy.cpython-312-darwin.so,sha256=XgW3zpghv_56LvftAf79MLcX03K7SDIeNzgjX3fTfvs,164168
222
+ amsdal/cloud/services/actions/list_dependencies.cpython-312-darwin.so,sha256=Zj8bbbpTrGWrynJqOkK-Zt-a3LchKjg5dm10aPFFSTQ,197704
223
+ amsdal/cloud/services/actions/list_envs.cpython-312-darwin.so,sha256=ftqfI2r799qQND7xsq2joytmD6Z-n4J623ZIoWpEUwE,164384
224
+ amsdal/cloud/services/actions/list_deploys.cpython-312-darwin.so,sha256=EIvQtu8eKxdY2av1raS9LvBEi4HpregF55iJ21P6DB0,181096
225
225
  amsdal/cloud/services/actions/create_session.pyi,sha256=KUvx_vkhLQfGp_DM1ZvgszyT_G8LB28KoI1XpjNR7YY,674
226
226
  amsdal/cloud/services/actions/list_deploys.pyi,sha256=Q8da3PDPxICLP2V7L-A7p-9_a3qNKrARqgHhu0CA0nA,724
227
- amsdal/cloud/services/actions/create_deploy.cpython-312-darwin.so,sha256=iR4oA3lST_Tjq-OK-_1CpXaqLJcpgUfPksGP-SRXzzE,269064
228
- amsdal/cloud/services/actions/create_session.cpython-312-darwin.so,sha256=es3Elu3xY3xjrvachXD553q4mLOJfSc7jFFcoUQvS2Q,181000
227
+ amsdal/cloud/services/actions/create_deploy.cpython-312-darwin.so,sha256=rbKcIff1A6syzcGfH2DwTcakpj0NEhjcHxJ2UrUl_E8,269064
228
+ amsdal/cloud/services/actions/create_session.cpython-312-darwin.so,sha256=yobaZcV1OhwWd9n3IBPUgzQlDjUvwyYnfxHxRtVEg6U,181000
229
229
  amsdal/cloud/services/actions/add_allowlist_ip.pyi,sha256=gB2NQVz8NcSsgXYiym2Suh1RPI8eHKIAFE13RmeTHkA,883
230
230
  amsdal/cloud/services/actions/get_monitoring_info.pyi,sha256=uvtBgWvtWf-Mq4vZq_q-q8Z8hJh5voAY61KRJQPGWFk,1045
231
231
  amsdal/cloud/services/actions/add_dependency.pyi,sha256=uVEIhvDa4GRS0Lg6TkcYdOwezKcxrzL7A_Lh8BxcAeU,837
232
- amsdal/cloud/services/actions/manager.cpython-312-darwin.so,sha256=osnYjXqjZ-_u62M_leCqdmgC0ANikisvaJrF7Bppzu8,354848
232
+ amsdal/cloud/services/actions/manager.cpython-312-darwin.so,sha256=i-mM7bv8P6RWaaZdCW23HCAMHEeism5MJL1by2R8hKU,354848
233
233
  amsdal/cloud/services/actions/signup_action.pyi,sha256=VswHjhxw2eHYqXwc---F2LpwlD7GlIuL_Ev2DmA96_4,808
234
234
  amsdal/cloud/services/actions/add_secret.pyi,sha256=H6rS3PRwiktMfnoY8qwtmTplN9gG2yZgQKKCX8S8Q6c,890
235
- amsdal/cloud/services/actions/base.cpython-312-darwin.so,sha256=KXiQKlYgFbtdm2Cyc2hYUUw_XpIwzahiugW0wSZHjvU,307200
236
- amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-312-darwin.so,sha256=4UOwv25vJQnoQ-pkptODZHmuEyNt_oA3uWiXltMPJh0,197512
235
+ amsdal/cloud/services/actions/base.cpython-312-darwin.so,sha256=ySpd2Fytqt08m4ffcjvZ3f3kFE7FTjn1apaa5AtuVdo,307200
236
+ amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-312-darwin.so,sha256=P3sGVes3XZh0i_a4Fses7cgXBPQGiDBSPI2gnxPb7tA,197512
237
237
  amsdal/cloud/services/actions/destroy_deploy.pyi,sha256=VNb0J71B3gk4SVJwxlB9XTj4vCG-37ucojcGzsvKwe8,609
238
238
  amsdal/cloud/services/actions/update_deploy.pyi,sha256=alM1nquQZ5O8PYlDIqDdSuiyuc_aj9fkd01bL9KANEI,766
239
- amsdal/cloud/services/actions/add_secret.cpython-312-darwin.so,sha256=MCCfvucLvz1a2skuApzDRy-i3iaBErqXl__68IKmN7s,164264
240
- amsdal/cloud/services/actions/expose_db.cpython-312-darwin.so,sha256=kq_7rNd64CQFbYaXnCXon41N2GNIc69SVSprxJTvF8s,197568
241
- amsdal/cloud/services/actions/delete_dependency.cpython-312-darwin.so,sha256=Z00yHrpSTzauDnEie02Upg13HN5rPjGHOlj2wOV0N0U,164376
242
- amsdal/cloud/services/actions/add_allowlist_ip.cpython-312-darwin.so,sha256=t0NxrG9CRm7hIUN4qwMix2fA-agzsEafxVEES6iI5gM,180792
243
- amsdal/cloud/services/actions/signup_action.cpython-312-darwin.so,sha256=KnvG0ECFULl0JQbYkdvVLhKDvGIOJmtr8Fbbd6za0dw,164216
244
- amsdal/cloud/services/actions/delete_basic_auth.cpython-312-darwin.so,sha256=oSk5xl8T28nEmQF1O4dq9rouwG5hmeBzSEbSsUy69wQ,164376
245
- amsdal/cloud/services/actions/list_secrets.cpython-312-darwin.so,sha256=GYGuNDBs5aMnuj38jsjpL-6j1Nsb9l_xT1FBBwyoaRE,197688
239
+ amsdal/cloud/services/actions/add_secret.cpython-312-darwin.so,sha256=BU5mHwFzHktER_0Us5u7Iq8jDdvj6BiYTBqWu2_JKBM,164264
240
+ amsdal/cloud/services/actions/expose_db.cpython-312-darwin.so,sha256=Dpp7ni1IgN-kleulzI3OKrT22LAIlN3hT-04n_EsZg8,197568
241
+ amsdal/cloud/services/actions/delete_dependency.cpython-312-darwin.so,sha256=4bfBfFkTrozNUpbyRS2LRKXkUDDaavUB3JA-RBkGVvE,164376
242
+ amsdal/cloud/services/actions/add_allowlist_ip.cpython-312-darwin.so,sha256=Ng-qRi0Cd5Uaaf1JbmMvvOIY2q7eVQX2rL2JDY80JqE,180792
243
+ amsdal/cloud/services/actions/signup_action.cpython-312-darwin.so,sha256=BJtioZvfm7yVL4KPffXf3XkDESngrCbcNvES3AZbBjk,164216
244
+ amsdal/cloud/services/actions/delete_basic_auth.cpython-312-darwin.so,sha256=uoD3c7jwIbMNrxix0NP0TNQwXtZu5rhSd7jihQB9PSY,164376
245
+ amsdal/cloud/services/actions/list_secrets.cpython-312-darwin.so,sha256=KrO9y5SDZErJcSBUX5AIPgHfeXsOFEVmftG_QAWzuZg,197688
246
246
  amsdal/cloud/services/actions/create_deploy.pyi,sha256=VmVMYJQmjPZce6Cm8sMQ27HomhfdzZc_0X57ZWZmCt0,1988
247
247
  amsdal/cloud/services/actions/delete_basic_auth.pyi,sha256=-I1YoOMFi0LaRsZL2JBGH_sg18PZoUL1PP9YetboDJA,915
248
248
  amsdal/cloud/services/actions/list_dependencies.pyi,sha256=C37VamSyRT-uNLuwQJ0OrHKavs8Jt0bfPbAsE5BQEvE,1035
249
249
  amsdal/cloud/services/actions/create_env.pyi,sha256=ITvyLrvwt6H36JNYURHZ_PbmGZquc5Fm07dVo7H6ll0,910
250
250
  amsdal/cloud/services/actions/expose_db.pyi,sha256=uk2zuz1SiXwjDFxtKF-yyWGNEONOgfm7EcrEyVT0cMM,1049
251
- amsdal/fixtures/__init__.cpython-312-darwin.so,sha256=arpZhcADnypHMSu2slqkoq3KznlUHKFXe5vRdg4PIvU,120736
251
+ amsdal/fixtures/__init__.cpython-312-darwin.so,sha256=hKI_Noik0Xh04llmLuDwp1KAQBLHMhk3UhZoEJqmI6o,120736
252
252
  amsdal/fixtures/manager.pyi,sha256=fMl3nNa2A9jiZanZ_7tnUGaPigk_03KMmdcUGPoX9kI,7077
253
253
  amsdal/fixtures/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
254
- amsdal/fixtures/utils.cpython-312-darwin.so,sha256=kH1dQhfVKRFCWO3RAFFkAFwTBD6NaBKGC_8Bxt-_3aA,290128
254
+ amsdal/fixtures/utils.cpython-312-darwin.so,sha256=bOy4C_v8y6trFMqQKwZ9x_FqshooC7moL8E0KSsMJS8,290128
255
255
  amsdal/fixtures/utils.pyi,sha256=OnFn7opJscOydj-rlcXQIdDodlIKGCt79TRy5zAUkqg,457
256
- amsdal/fixtures/manager.cpython-312-darwin.so,sha256=v5EojaZC9yEOzqTQBZxI6O4DfrWJf5hNgP41_ohVlwg,655712
257
- amsdal/services/__init__.cpython-312-darwin.so,sha256=-00nkV3O7Fkry7T9zLfi3hZDUmRvphm3cdolb1w5IuU,120736
256
+ amsdal/fixtures/manager.cpython-312-darwin.so,sha256=VAB4aVfrJfF5NhgbyN5xDab3Ivid4J-FlQLcTk04R0M,655712
257
+ amsdal/services/__init__.cpython-312-darwin.so,sha256=3sGcSViLK4qYftJyMXvG_agzoLDQVSiU9e624khNKi8,120736
258
258
  amsdal/services/transaction_execution.pyi,sha256=OanrSxNmRAH4domDWqnmH_Y4fyz9puBZxFHcpvB4sMY,4320
259
- amsdal/services/transaction_execution.cpython-312-darwin.so,sha256=Lr7qNxkvEZxecW9mIpZ7644J9XTqIoUNeRxB0T81tw4,434144
259
+ amsdal/services/transaction_execution.cpython-312-darwin.so,sha256=BetPoP9f24gPoXSoQkowurtvMmMPQ7gehWFpsx0Mr9Y,434144
260
260
  amsdal/services/__init__.pyi,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
- amsdal-0.4.1.dist-info/RECORD,,
262
- amsdal-0.4.1.dist-info/WHEEL,sha256=zk4lOOJzb2MXVvdycXUiVBlsX0f1coaAUVnm_0ErqkM,115
263
- amsdal-0.4.1.dist-info/top_level.txt,sha256=VPQLnOP3mf7q0JuQ_vPZYQyPNGKd_uc6ouz-hZRkhSk,7
264
- amsdal-0.4.1.dist-info/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
265
- amsdal-0.4.1.dist-info/METADATA,sha256=vQXlufqVeG4c5cXRFErSAWsp5GO1zDvOu4cgKREb7vY,57388
266
- amsdal-0.4.1.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
261
+ amsdal-0.4.3.dist-info/RECORD,,
262
+ amsdal-0.4.3.dist-info/WHEEL,sha256=fFOVbjuXq1Laa94sCGPI7Uf9zA1mmgTMmAoKgZIw_cY,115
263
+ amsdal-0.4.3.dist-info/top_level.txt,sha256=VPQLnOP3mf7q0JuQ_vPZYQyPNGKd_uc6ouz-hZRkhSk,7
264
+ amsdal-0.4.3.dist-info/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
265
+ amsdal-0.4.3.dist-info/METADATA,sha256=AoKHpF8gYQ5E8G8JP8FKkWj41zIkkFKS4Zo-09qW814,57415
266
+ amsdal-0.4.3.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.8.1)
2
+ Generator: setuptools (75.8.2)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp312-cp312-macosx_10_13_universal2
5
5