amsdal 0.4.10__cp312-cp312-macosx_10_13_universal2.whl → 0.5.33__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.
- amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md +28 -0
- amsdal/__about__.py +1 -1
- amsdal/__migrations__/0000_initial.py +22 -203
- amsdal/__migrations__/0001_create_class_file.py +61 -0
- amsdal/__migrations__/0002_create_class_file.py +109 -0
- amsdal/__migrations__/0003_update_class_file.py +91 -0
- amsdal/__migrations__/0004_update_class_file.py +45 -0
- amsdal/cloud/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/client.cpython-312-darwin.so +0 -0
- amsdal/cloud/constants.cpython-312-darwin.so +0 -0
- amsdal/cloud/enums.cpython-312-darwin.so +0 -0
- amsdal/cloud/models/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/models/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_allowlist_ip.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_basic_auth.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_dependency.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/add_secret.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_env.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/create_session.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_allowlist_ip.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_basic_auth.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_dependency.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_env.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_secret.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/destroy_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/expose_db.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/get_monitoring_info.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_dependencies.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_deploys.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_envs.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/list_secrets.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/manager.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/signup_action.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/actions/update_deploy.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/__init__.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/base.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/credentials.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/manager.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/signup_service.cpython-312-darwin.so +0 -0
- amsdal/cloud/services/auth/token.cpython-312-darwin.so +0 -0
- amsdal/configs/main.py +17 -1
- amsdal/configs/main.pyi +7 -3
- amsdal/contrib/__init__.cpython-312-darwin.so +0 -0
- amsdal/contrib/auth/errors.py +36 -0
- amsdal/contrib/auth/errors.pyi +12 -0
- amsdal/contrib/auth/lifecycle/consumer.py +3 -3
- amsdal/contrib/auth/lifecycle/consumer.pyi +3 -0
- amsdal/contrib/auth/migrations/0000_initial.py +55 -52
- amsdal/contrib/auth/migrations/0001_add_mfa_support.py +188 -0
- amsdal/contrib/auth/models/__init__.py +1 -0
- amsdal/contrib/auth/models/backup_code.py +85 -0
- amsdal/contrib/auth/models/email_mfa_device.py +108 -0
- amsdal/contrib/auth/models/login_session.py +117 -0
- amsdal/contrib/auth/models/mfa_device.py +86 -0
- amsdal/contrib/auth/models/sms_device.py +113 -0
- amsdal/contrib/auth/models/totp_device.py +58 -0
- amsdal/contrib/auth/models/user.py +50 -0
- amsdal/contrib/auth/services/__init__.py +1 -0
- amsdal/contrib/auth/services/mfa_device_service.py +544 -0
- amsdal/contrib/auth/services/mfa_device_service.pyi +216 -0
- amsdal/contrib/auth/services/totp_service.py +358 -0
- amsdal/contrib/auth/services/totp_service.pyi +158 -0
- amsdal/contrib/auth/settings.py +8 -0
- amsdal/contrib/auth/settings.pyi +8 -0
- amsdal/contrib/auth/transactions/__init__.py +1 -0
- amsdal/contrib/auth/transactions/mfa_device_transactions.py +458 -0
- amsdal/contrib/auth/transactions/mfa_device_transactions.pyi +226 -0
- amsdal/contrib/auth/transactions/totp_transactions.py +203 -0
- amsdal/contrib/auth/transactions/totp_transactions.pyi +113 -0
- amsdal/contrib/auth/utils/mfa.py +257 -0
- amsdal/contrib/auth/utils/mfa.pyi +119 -0
- amsdal/contrib/frontend_configs/conversion/convert.py +32 -5
- amsdal/contrib/frontend_configs/migrations/0000_initial.py +154 -183
- amsdal/contrib/frontend_configs/migrations/0001_update_frontend_control_config.py +245 -0
- amsdal/contrib/frontend_configs/migrations/0002_add_button_and_invoke_actions.py +352 -0
- amsdal/contrib/frontend_configs/migrations/0003_create_class_frontendconfigdashboardelement.py +145 -0
- amsdal/contrib/frontend_configs/models/frontend_config_control_action.py +57 -1
- amsdal/contrib/frontend_configs/models/frontend_config_dashboard.py +51 -0
- amsdal/contrib/frontend_configs/models/frontend_control_config.py +69 -46
- amsdal/fixtures/__init__.cpython-312-darwin.so +0 -0
- amsdal/fixtures/manager.cpython-312-darwin.so +0 -0
- amsdal/fixtures/utils.cpython-312-darwin.so +0 -0
- amsdal/manager.cpython-312-darwin.so +0 -0
- amsdal/manager.pyi +5 -0
- amsdal/mixins/__init__.cpython-312-darwin.so +0 -0
- amsdal/mixins/class_versions_mixin.cpython-312-darwin.so +0 -0
- amsdal/models/core/class_object.py +7 -6
- amsdal/models/core/class_property.py +7 -1
- amsdal/models/core/file.py +168 -81
- amsdal/models/core/storage_metadata.py +15 -0
- amsdal/models/mixins.py +31 -0
- amsdal/models/types/object.py +3 -3
- amsdal/schemas/core/class_object/model.json +20 -0
- amsdal/schemas/core/class_property/model.json +19 -0
- amsdal/schemas/core/file/properties/validate_data.py +2 -3
- amsdal/schemas/core/storage_metadata/model.json +52 -0
- amsdal/schemas/interfaces.pyi +1 -1
- amsdal/schemas/manager.cpython-312-darwin.so +0 -0
- amsdal/schemas/mixins/check_dependencies_mixin.py +23 -8
- amsdal/schemas/mixins/check_dependencies_mixin.pyi +5 -2
- amsdal/schemas/utils.pyi +2 -2
- amsdal/services/__init__.py +11 -0
- amsdal/services/__init__.pyi +4 -0
- amsdal/services/external_connections.py +262 -0
- amsdal/services/external_connections.pyi +190 -0
- amsdal/services/external_model_generator.py +350 -0
- amsdal/services/external_model_generator.pyi +134 -0
- amsdal/services/transaction_execution.cpython-312-darwin.so +0 -0
- amsdal/services/transaction_execution.pyi +1 -0
- amsdal/storages/__init__.py +20 -0
- amsdal/storages/__init__.pyi +8 -0
- amsdal/storages/file_system.py +214 -0
- amsdal/storages/file_system.pyi +36 -0
- amsdal/utils/rollback/__init__.pyi +6 -0
- amsdal/utils/tests/enums.py +0 -2
- amsdal/utils/tests/helpers.py +213 -381
- amsdal/utils/tests/migrations.py +157 -0
- {amsdal-0.4.10.dist-info → amsdal-0.5.33.dist-info}/METADATA +17 -11
- {amsdal-0.4.10.dist-info → amsdal-0.5.33.dist-info}/RECORD +131 -124
- {amsdal-0.4.10.dist-info → amsdal-0.5.33.dist-info}/WHEEL +1 -1
- amsdal/__migrations__/0001_datetime_type.py +0 -18
- amsdal/__migrations__/0002_fixture_order.py +0 -44
- amsdal/__migrations__/0003_schema_type_in_class_meta.py +0 -44
- amsdal/contrib/auth/models/login_session.pyi +0 -37
- amsdal/contrib/auth/models/permission.pyi +0 -18
- amsdal/contrib/auth/models/user.pyi +0 -46
- amsdal/contrib/frontend_configs/models/frontend_activator_config.pyi +0 -12
- amsdal/contrib/frontend_configs/models/frontend_config_async_validator.pyi +0 -7
- amsdal/contrib/frontend_configs/models/frontend_config_control_action.pyi +0 -32
- amsdal/contrib/frontend_configs/models/frontend_config_group_validator.pyi +0 -11
- amsdal/contrib/frontend_configs/models/frontend_config_option.pyi +0 -8
- amsdal/contrib/frontend_configs/models/frontend_config_skip_none_base.pyi +0 -8
- amsdal/contrib/frontend_configs/models/frontend_config_slider_option.pyi +0 -9
- amsdal/contrib/frontend_configs/models/frontend_config_text_mask.pyi +0 -10
- amsdal/contrib/frontend_configs/models/frontend_config_validator.pyi +0 -15
- amsdal/contrib/frontend_configs/models/frontend_control_config.pyi +0 -35
- amsdal/contrib/frontend_configs/models/frontend_model_config.pyi +0 -9
- amsdal/models/__init__.pyi +0 -9
- amsdal/models/core/class_object.pyi +0 -24
- amsdal/models/core/class_object_meta.py +0 -26
- amsdal/models/core/class_object_meta.pyi +0 -15
- amsdal/models/core/class_property.pyi +0 -11
- amsdal/models/core/class_property_meta.py +0 -15
- amsdal/models/core/class_property_meta.pyi +0 -10
- amsdal/models/core/file.pyi +0 -104
- amsdal/models/core/fixture.pyi +0 -14
- amsdal/models/core/option.pyi +0 -8
- amsdal/models/core/validator.pyi +0 -8
- amsdal/models/types/object.pyi +0 -16
- amsdal/schemas/core/class_object_meta/model.json +0 -59
- amsdal/schemas/core/class_property_meta/model.json +0 -23
- amsdal/services/__init__.cpython-312-darwin.so +0 -0
- /amsdal/contrib/auth/{models → services}/__init__.pyi +0 -0
- /amsdal/contrib/{frontend_configs/models → auth/transactions}/__init__.pyi +0 -0
- /amsdal/{models/core/__init__.pyi → contrib/auth/utils/__init__.py} +0 -0
- /amsdal/{models/types → contrib/auth/utils}/__init__.pyi +0 -0
- {amsdal-0.4.10.dist-info → amsdal-0.5.33.dist-info}/licenses/LICENSE.txt +0 -0
- {amsdal-0.4.10.dist-info → amsdal-0.5.33.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import contextlib
|
|
2
|
+
from asyncio import iscoroutine
|
|
3
|
+
|
|
4
|
+
from amsdal_data.connections.historical.schema_version_manager import AsyncHistoricalSchemaVersionManager
|
|
5
|
+
from amsdal_data.connections.historical.schema_version_manager import HistoricalSchemaVersionManager
|
|
6
|
+
from amsdal_models.migration import migrations
|
|
7
|
+
from amsdal_models.migration.executors.default_executor import DefaultAsyncMigrationExecutor
|
|
8
|
+
from amsdal_models.migration.executors.default_executor import DefaultMigrationExecutor
|
|
9
|
+
from amsdal_models.migration.file_migration_executor import AsyncFileMigrationExecutorManager
|
|
10
|
+
from amsdal_models.migration.file_migration_executor import FileMigrationExecutorManager
|
|
11
|
+
from amsdal_models.migration.file_migration_generator import SimpleFileMigrationGenerator
|
|
12
|
+
from amsdal_models.migration.file_migration_store import AsyncFileMigrationStore
|
|
13
|
+
from amsdal_models.migration.file_migration_store import FileMigrationStore
|
|
14
|
+
from amsdal_models.migration.file_migration_writer import FileMigrationWriter
|
|
15
|
+
from amsdal_models.migration.migrations import MigrationSchemas
|
|
16
|
+
from amsdal_models.migration.migrations_loader import MigrationsLoader
|
|
17
|
+
from amsdal_models.schemas.class_schema_loader import ClassSchemaLoader
|
|
18
|
+
from amsdal_utils.models.enums import ModuleType
|
|
19
|
+
|
|
20
|
+
from amsdal.configs.constants import CORE_MIGRATIONS_PATH
|
|
21
|
+
from amsdal.configs.main import settings
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def migrate() -> None:
|
|
25
|
+
schemas = MigrationSchemas()
|
|
26
|
+
executor = DefaultMigrationExecutor(schemas, use_foreign_keys=True)
|
|
27
|
+
store = FileMigrationStore(settings.migrations_root_path)
|
|
28
|
+
store.init_migration_table()
|
|
29
|
+
|
|
30
|
+
class UserMigrationsLoader(MigrationsLoader):
|
|
31
|
+
def __init__(self):
|
|
32
|
+
super().__init__(settings.migrations_root_path, ModuleType.USER)
|
|
33
|
+
self._migrations_files = []
|
|
34
|
+
|
|
35
|
+
with contextlib.suppress(Exception):
|
|
36
|
+
HistoricalSchemaVersionManager().object_classes # noqa: B018
|
|
37
|
+
|
|
38
|
+
# migrate core and contrib due to applied migrations
|
|
39
|
+
executor_manager = FileMigrationExecutorManager(
|
|
40
|
+
core_migrations_path=CORE_MIGRATIONS_PATH,
|
|
41
|
+
app_migrations_loader=UserMigrationsLoader(),
|
|
42
|
+
executor=executor,
|
|
43
|
+
store=store,
|
|
44
|
+
contrib=settings.CONTRIBS,
|
|
45
|
+
)
|
|
46
|
+
executor_manager.execute()
|
|
47
|
+
|
|
48
|
+
# always apply migrations for user models
|
|
49
|
+
user_schema_loader = ClassSchemaLoader(
|
|
50
|
+
settings.USER_MODELS_MODULE,
|
|
51
|
+
class_filter=lambda cls: cls.__module_type__ == ModuleType.USER,
|
|
52
|
+
)
|
|
53
|
+
_schemas, _cycle_schemas = user_schema_loader.load_sorted()
|
|
54
|
+
_schemas_map = {_schema.title: _schema for _schema in _schemas}
|
|
55
|
+
|
|
56
|
+
for object_schema in _schemas:
|
|
57
|
+
for _operation_data in SimpleFileMigrationGenerator.build_operations(
|
|
58
|
+
ModuleType.USER,
|
|
59
|
+
object_schema,
|
|
60
|
+
None,
|
|
61
|
+
):
|
|
62
|
+
_operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
|
|
63
|
+
_operation = getattr(migrations, _operation_name)(
|
|
64
|
+
module_type=ModuleType.USER,
|
|
65
|
+
class_name=_operation_data.class_name,
|
|
66
|
+
new_schema=_operation_data.new_schema.model_dump(),
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
_operation.forward(executor)
|
|
70
|
+
|
|
71
|
+
for object_schema in _cycle_schemas:
|
|
72
|
+
for _operation_data in SimpleFileMigrationGenerator.build_operations(
|
|
73
|
+
ModuleType.USER,
|
|
74
|
+
object_schema,
|
|
75
|
+
_schemas_map[object_schema.title],
|
|
76
|
+
):
|
|
77
|
+
_operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
|
|
78
|
+
_operation = getattr(migrations, _operation_name)(
|
|
79
|
+
module_type=ModuleType.USER,
|
|
80
|
+
class_name=_operation_data.class_name,
|
|
81
|
+
new_schema=_operation_data.new_schema.model_dump(),
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
_operation.forward(executor)
|
|
85
|
+
|
|
86
|
+
executor.flush_buffer()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
async def async_migrate() -> None:
|
|
90
|
+
schemas = MigrationSchemas()
|
|
91
|
+
executor = DefaultAsyncMigrationExecutor(schemas)
|
|
92
|
+
store = AsyncFileMigrationStore(settings.migrations_root_path)
|
|
93
|
+
await store.init_migration_table()
|
|
94
|
+
|
|
95
|
+
class UserMigrationsLoader(MigrationsLoader):
|
|
96
|
+
def __init__(self):
|
|
97
|
+
super().__init__(settings.migrations_root_path, ModuleType.USER)
|
|
98
|
+
self._migrations_files = []
|
|
99
|
+
|
|
100
|
+
with contextlib.suppress(Exception):
|
|
101
|
+
await AsyncHistoricalSchemaVersionManager().object_classes
|
|
102
|
+
|
|
103
|
+
# migrate core and contrib due to applied migrations
|
|
104
|
+
executor_manager = AsyncFileMigrationExecutorManager(
|
|
105
|
+
core_migrations_path=CORE_MIGRATIONS_PATH,
|
|
106
|
+
app_migrations_loader=UserMigrationsLoader(),
|
|
107
|
+
executor=executor,
|
|
108
|
+
store=store,
|
|
109
|
+
contrib=settings.CONTRIBS,
|
|
110
|
+
)
|
|
111
|
+
await executor_manager.execute()
|
|
112
|
+
|
|
113
|
+
# always apply migrations for user models
|
|
114
|
+
user_schema_loader = ClassSchemaLoader(
|
|
115
|
+
settings.USER_MODELS_MODULE,
|
|
116
|
+
class_filter=lambda cls: cls.__module_type__ == ModuleType.USER,
|
|
117
|
+
)
|
|
118
|
+
_schemas, _cycle_schemas = user_schema_loader.load_sorted()
|
|
119
|
+
_schemas_map = {_schema.title: _schema for _schema in _schemas}
|
|
120
|
+
|
|
121
|
+
for object_schema in _schemas:
|
|
122
|
+
for _operation_data in SimpleFileMigrationGenerator.build_operations(
|
|
123
|
+
ModuleType.USER,
|
|
124
|
+
object_schema,
|
|
125
|
+
None,
|
|
126
|
+
):
|
|
127
|
+
_operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
|
|
128
|
+
_operation = getattr(migrations, _operation_name)(
|
|
129
|
+
module_type=ModuleType.USER,
|
|
130
|
+
class_name=_operation_data.class_name,
|
|
131
|
+
new_schema=_operation_data.new_schema.model_dump(),
|
|
132
|
+
)
|
|
133
|
+
|
|
134
|
+
forward_result = _operation.forward(executor)
|
|
135
|
+
|
|
136
|
+
if iscoroutine(forward_result):
|
|
137
|
+
await forward_result
|
|
138
|
+
|
|
139
|
+
for object_schema in _cycle_schemas:
|
|
140
|
+
for _operation_data in SimpleFileMigrationGenerator.build_operations(
|
|
141
|
+
ModuleType.USER,
|
|
142
|
+
object_schema,
|
|
143
|
+
_schemas_map[object_schema.title],
|
|
144
|
+
):
|
|
145
|
+
_operation_name = FileMigrationWriter.operation_name_map[_operation_data.type]
|
|
146
|
+
_operation = getattr(migrations, _operation_name)(
|
|
147
|
+
module_type=ModuleType.USER,
|
|
148
|
+
class_name=_operation_data.class_name,
|
|
149
|
+
new_schema=_operation_data.new_schema.model_dump(),
|
|
150
|
+
)
|
|
151
|
+
|
|
152
|
+
forward_result = _operation.forward(executor)
|
|
153
|
+
|
|
154
|
+
if iscoroutine(forward_result):
|
|
155
|
+
await forward_result
|
|
156
|
+
|
|
157
|
+
await executor.flush_buffer()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: amsdal
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.33
|
|
4
4
|
Summary: AMSDAL
|
|
5
5
|
License: AMSDAL End User License Agreement
|
|
6
6
|
|
|
@@ -117,32 +117,38 @@ Classifier: Development Status :: 4 - Beta
|
|
|
117
117
|
Classifier: Programming Language :: Python
|
|
118
118
|
Classifier: Programming Language :: Python :: 3.11
|
|
119
119
|
Classifier: Programming Language :: Python :: 3.12
|
|
120
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
120
121
|
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
121
122
|
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
122
|
-
Requires-Python:
|
|
123
|
+
Requires-Python: <3.14,>=3.11
|
|
123
124
|
Description-Content-Type: text/markdown
|
|
124
125
|
License-File: LICENSE.txt
|
|
125
|
-
Requires-Dist: pydantic~=2.
|
|
126
|
-
Requires-Dist: pydantic-settings~=2.
|
|
126
|
+
Requires-Dist: pydantic~=2.12
|
|
127
|
+
Requires-Dist: pydantic-settings~=2.12
|
|
127
128
|
Requires-Dist: PyJWT~=2.8
|
|
128
129
|
Requires-Dist: cryptography~=42.0
|
|
129
130
|
Requires-Dist: httpx~=0.25
|
|
130
131
|
Requires-Dist: bcrypt~=4.0
|
|
132
|
+
Requires-Dist: pyotp~=2.9
|
|
131
133
|
Requires-Dist: black>=24.3.0
|
|
132
|
-
Requires-Dist: amsdal_utils==0.
|
|
133
|
-
Requires-Dist: amsdal_data
|
|
134
|
-
Requires-Dist: amsdal_models
|
|
134
|
+
Requires-Dist: amsdal_utils==0.5.*
|
|
135
|
+
Requires-Dist: amsdal_data>=0.5.8
|
|
136
|
+
Requires-Dist: amsdal_models==0.5.*
|
|
135
137
|
Requires-Dist: pip>=21.3.1
|
|
136
138
|
Provides-Extra: cli
|
|
137
|
-
Requires-Dist: amsdal-cli==0.
|
|
139
|
+
Requires-Dist: amsdal-cli==0.5.*; extra == "cli"
|
|
138
140
|
Provides-Extra: server
|
|
139
|
-
Requires-Dist: amsdal-server==0.
|
|
141
|
+
Requires-Dist: amsdal-server==0.5.*; extra == "server"
|
|
140
142
|
Provides-Extra: factory
|
|
141
143
|
Requires-Dist: polyfactory==2.*; extra == "factory"
|
|
142
144
|
Provides-Extra: celery
|
|
143
145
|
Requires-Dist: celery==5.4.0; extra == "celery"
|
|
144
|
-
Provides-Extra:
|
|
145
|
-
Requires-Dist:
|
|
146
|
+
Provides-Extra: async-sqlite
|
|
147
|
+
Requires-Dist: amsdal-data[async-sqlite]; extra == "async-sqlite"
|
|
148
|
+
Provides-Extra: postgres-binary
|
|
149
|
+
Requires-Dist: amsdal-data[postgres-binary]; extra == "postgres-binary"
|
|
150
|
+
Provides-Extra: postgres-c
|
|
151
|
+
Requires-Dist: amsdal-data[postgres-c]; extra == "postgres-c"
|
|
146
152
|
Dynamic: license-file
|
|
147
153
|
|
|
148
154
|
# AMSDAL
|