amsdal 0.3.3__cp311-cp311-macosx_10_9_universal2.whl → 0.5.29__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.
- amsdal/Third-Party Materials - AMSDAL Dependencies - License Notices.md +56 -2
- amsdal/__about__.py +1 -1
- amsdal/__init__.py +20 -0
- amsdal/__init__.pyi +9 -0
- amsdal/__migrations__/0000_initial.py +23 -190
- 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-311-darwin.so +0 -0
- amsdal/cloud/client.cpython-311-darwin.so +0 -0
- amsdal/cloud/constants.cpython-311-darwin.so +0 -0
- amsdal/cloud/enums.cpython-311-darwin.so +0 -0
- amsdal/cloud/models/__init__.cpython-311-darwin.so +0 -0
- amsdal/cloud/models/base.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/__init__.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/__init__.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/add_allowlist_ip.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/add_basic_auth.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/add_dependency.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/add_secret.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/base.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/create_deploy.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/create_env.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/create_session.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_allowlist_ip.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_basic_auth.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_dependency.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_env.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/delete_secret.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/destroy_deploy.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/expose_db.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/get_basic_auth_credentials.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/get_monitoring_info.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/list_dependencies.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/list_deploys.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/list_envs.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/list_secrets.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/manager.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/signup_action.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/actions/update_deploy.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/__init__.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/base.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/credentials.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/credentials.pyi +0 -1
- amsdal/cloud/services/auth/manager.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/signup_service.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/token.cpython-311-darwin.so +0 -0
- amsdal/cloud/services/auth/token.pyi +0 -1
- amsdal/configs/main.py +40 -20
- amsdal/configs/main.pyi +19 -18
- amsdal/contrib/__init__.cpython-311-darwin.so +0 -0
- amsdal/contrib/auth/errors.py +36 -0
- amsdal/contrib/auth/errors.pyi +12 -0
- amsdal/contrib/auth/fixtures/basic_permissions.json +64 -0
- amsdal/contrib/auth/lifecycle/consumer.py +13 -13
- amsdal/contrib/auth/lifecycle/consumer.pyi +3 -0
- amsdal/contrib/auth/migrations/0000_initial.py +69 -31
- 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 +235 -0
- amsdal/contrib/auth/models/mfa_device.py +86 -0
- amsdal/contrib/auth/models/permission.py +23 -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 +156 -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 +463 -0
- amsdal/contrib/auth/transactions/mfa_device_transactions.pyi +226 -0
- amsdal/contrib/auth/transactions/totp_transactions.py +206 -0
- amsdal/contrib/auth/transactions/totp_transactions.pyi +113 -0
- amsdal/contrib/auth/utils/__init__.py +0 -0
- amsdal/contrib/auth/utils/__init__.pyi +0 -0
- amsdal/contrib/auth/utils/mfa.py +257 -0
- amsdal/contrib/auth/utils/mfa.pyi +119 -0
- amsdal/contrib/frontend_configs/conversion/convert.py +85 -25
- amsdal/contrib/frontend_configs/conversion/convert.pyi +0 -1
- amsdal/contrib/frontend_configs/lifecycle/consumer.py +32 -13
- amsdal/contrib/frontend_configs/lifecycle/consumer.pyi +1 -1
- amsdal/contrib/frontend_configs/migrations/0000_initial.py +167 -195
- 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/__init__.py +0 -0
- amsdal/contrib/frontend_configs/models/frontend_activator_config.py +22 -0
- amsdal/contrib/frontend_configs/models/frontend_config_async_validator.py +11 -0
- amsdal/contrib/frontend_configs/models/frontend_config_control_action.py +110 -0
- amsdal/contrib/frontend_configs/models/frontend_config_dashboard.py +51 -0
- amsdal/contrib/frontend_configs/models/frontend_config_group_validator.py +21 -0
- amsdal/contrib/frontend_configs/models/frontend_config_option.py +12 -0
- amsdal/contrib/frontend_configs/models/frontend_config_skip_none_base.py +17 -0
- amsdal/contrib/frontend_configs/models/frontend_config_slider_option.py +13 -0
- amsdal/contrib/frontend_configs/models/frontend_config_text_mask.py +14 -0
- amsdal/contrib/frontend_configs/models/frontend_config_validator.py +28 -0
- amsdal/contrib/frontend_configs/models/frontend_control_config.py +110 -0
- amsdal/contrib/frontend_configs/models/frontend_model_config.py +14 -0
- amsdal/errors.py +0 -3
- amsdal/errors.pyi +0 -1
- amsdal/fixtures/__init__.cpython-311-darwin.so +0 -0
- amsdal/fixtures/manager.cpython-311-darwin.so +0 -0
- amsdal/fixtures/manager.pyi +73 -123
- amsdal/fixtures/utils.cpython-311-darwin.so +0 -0
- amsdal/fixtures/utils.pyi +9 -0
- amsdal/manager.cpython-311-darwin.so +0 -0
- amsdal/manager.pyi +9 -96
- amsdal/mixins/__init__.cpython-311-darwin.so +0 -0
- amsdal/mixins/class_versions_mixin.cpython-311-darwin.so +0 -0
- amsdal/models/__init__.py +19 -0
- amsdal/models/core/__init__.py +0 -0
- amsdal/models/core/class_object.py +38 -0
- amsdal/models/core/class_property.py +26 -0
- amsdal/models/core/file.py +243 -0
- amsdal/models/core/fixture.py +25 -0
- amsdal/models/core/option.py +11 -0
- amsdal/models/core/storage_metadata.py +15 -0
- amsdal/models/core/validator.py +12 -0
- amsdal/models/mixins.py +31 -0
- amsdal/models/types/__init__.py +0 -0
- amsdal/models/types/object.py +26 -0
- amsdal/queryset/__init__.py +21 -0
- amsdal/queryset/__init__.pyi +6 -0
- amsdal/schemas/core/class_object/model.json +20 -0
- amsdal/schemas/core/class_property/model.json +19 -0
- amsdal/schemas/core/file/properties/from_file.py +1 -1
- amsdal/schemas/core/file/properties/validate_data.py +3 -4
- amsdal/schemas/core/storage_metadata/model.json +52 -0
- amsdal/schemas/interfaces.py +25 -0
- amsdal/schemas/interfaces.pyi +20 -0
- amsdal/schemas/manager.cpython-311-darwin.so +0 -0
- amsdal/schemas/manager.py +0 -116
- amsdal/schemas/manager.pyi +0 -65
- amsdal/schemas/mixins/__init__.py +0 -0
- amsdal/schemas/mixins/__init__.pyi +0 -0
- amsdal/schemas/mixins/check_dependencies_mixin.py +130 -0
- amsdal/schemas/mixins/check_dependencies_mixin.pyi +45 -0
- amsdal/schemas/mixins/verify_schemas_mixin.py +96 -0
- amsdal/schemas/mixins/verify_schemas_mixin.pyi +33 -0
- amsdal/schemas/repository.py +84 -0
- amsdal/schemas/repository.pyi +22 -0
- amsdal/schemas/utils.py +16 -0
- amsdal/schemas/utils.pyi +10 -0
- 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-311-darwin.so +0 -0
- amsdal/services/transaction_execution.pyi +2 -1
- 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/transactions/__init__.py +13 -0
- amsdal/transactions/__init__.pyi +4 -0
- amsdal/utils/rollback/__init__.py +99 -54
- amsdal/utils/rollback/__init__.pyi +6 -0
- amsdal/utils/tests/enums.py +0 -2
- amsdal/utils/tests/helpers.py +253 -231
- amsdal/utils/tests/migrations.py +157 -0
- {amsdal-0.3.3.dist-info → amsdal-0.5.29.dist-info}/METADATA +17 -10
- amsdal-0.5.29.dist-info/RECORD +276 -0
- {amsdal-0.3.3.dist-info → amsdal-0.5.29.dist-info}/WHEEL +1 -1
- amsdal/__migrations__/0001_datetime_type.py +0 -18
- amsdal/__migrations__/0002_fixture_order.py +0 -40
- amsdal/__migrations__/0003_schema_type_in_class_meta.py +0 -56
- amsdal/contrib/auth/models/login_session/hooks/pre_init.py +0 -68
- amsdal/contrib/auth/models/login_session/model.json +0 -23
- amsdal/contrib/auth/models/login_session/modifiers/display_name.py +0 -11
- amsdal/contrib/auth/models/permission/fixtures/basic_permissions.json +0 -62
- amsdal/contrib/auth/models/permission/model.json +0 -18
- amsdal/contrib/auth/models/permission/modifiers/display_name.py +0 -11
- amsdal/contrib/auth/models/user/hooks/post_init.py +0 -76
- amsdal/contrib/auth/models/user/hooks/pre_create.py +0 -8
- amsdal/contrib/auth/models/user/model.json +0 -25
- amsdal/contrib/auth/models/user/modifiers/display_name.py +0 -19
- amsdal/contrib/frontend_configs/models/frontend_activator_config/model.json +0 -11
- amsdal/contrib/frontend_configs/models/frontend_config_async_validator/model.json +0 -11
- amsdal/contrib/frontend_configs/models/frontend_config_group_validator/model.json +0 -52
- amsdal/contrib/frontend_configs/models/frontend_config_option/model.json +0 -15
- amsdal/contrib/frontend_configs/models/frontend_config_skip_none_base/model.json +0 -6
- amsdal/contrib/frontend_configs/models/frontend_config_skip_none_base/properties/model_dump.py +0 -13
- amsdal/contrib/frontend_configs/models/frontend_config_slider_option/model.json +0 -19
- amsdal/contrib/frontend_configs/models/frontend_config_text_mask/model.json +0 -26
- amsdal/contrib/frontend_configs/models/frontend_config_validator/model.json +0 -41
- amsdal/contrib/frontend_configs/models/frontend_control_config/model.json +0 -250
- amsdal/contrib/frontend_configs/models/frontend_model_config/fixtures/permissions.json +0 -24
- amsdal/contrib/frontend_configs/models/frontend_model_config/model.json +0 -17
- amsdal/contrib/frontend_configs/models/frontent_config_control_action/model.json +0 -54
- amsdal/contrib/frontend_configs/models/frontent_config_control_action/properties/action_validate.py +0 -33
- amsdal/migration/__init__.cpython-311-darwin.so +0 -0
- amsdal/migration/base_migration_schemas.cpython-311-darwin.so +0 -0
- amsdal/migration/base_migration_schemas.pyi +0 -120
- amsdal/migration/data_classes.cpython-311-darwin.so +0 -0
- amsdal/migration/data_classes.pyi +0 -172
- amsdal/migration/executors/__init__.cpython-311-darwin.so +0 -0
- amsdal/migration/executors/base.cpython-311-darwin.so +0 -0
- amsdal/migration/executors/base.pyi +0 -118
- amsdal/migration/executors/default_executor.cpython-311-darwin.so +0 -0
- amsdal/migration/executors/default_executor.pyi +0 -184
- amsdal/migration/executors/state_executor.cpython-311-darwin.so +0 -0
- amsdal/migration/executors/state_executor.pyi +0 -78
- amsdal/migration/file_migration_executor.cpython-311-darwin.so +0 -0
- amsdal/migration/file_migration_executor.pyi +0 -68
- amsdal/migration/file_migration_generator.cpython-311-darwin.so +0 -0
- amsdal/migration/file_migration_generator.pyi +0 -139
- amsdal/migration/file_migration_store.cpython-311-darwin.so +0 -0
- amsdal/migration/file_migration_store.pyi +0 -61
- amsdal/migration/file_migration_writer.cpython-311-darwin.so +0 -0
- amsdal/migration/file_migration_writer.pyi +0 -73
- amsdal/migration/migrations.cpython-311-darwin.so +0 -0
- amsdal/migration/migrations.pyi +0 -166
- amsdal/migration/migrations_loader.cpython-311-darwin.so +0 -0
- amsdal/migration/migrations_loader.pyi +0 -32
- amsdal/migration/schemas_loaders.cpython-311-darwin.so +0 -0
- amsdal/migration/schemas_loaders.pyi +0 -37
- amsdal/migration/templates/data_migration.tmpl +0 -18
- amsdal/migration/templates/dict_validator.tmpl +0 -4
- amsdal/migration/templates/migration.tmpl +0 -6
- amsdal/migration/templates/model_class.tmpl +0 -8
- amsdal/migration/templates/model_class_layout.tmpl +0 -24
- amsdal/migration/templates/options_validator.tmpl +0 -4
- amsdal/migration/utils.cpython-311-darwin.so +0 -0
- amsdal/migration/utils.pyi +0 -58
- amsdal/mixins/build_mixin.cpython-311-darwin.so +0 -0
- amsdal/mixins/build_mixin.pyi +0 -78
- amsdal/schemas/core/class_object_meta/model.json +0 -59
- amsdal/schemas/core/class_property_meta/model.json +0 -23
- amsdal/services/__init__.cpython-311-darwin.so +0 -0
- amsdal-0.3.3.dist-info/RECORD +0 -257
- amsdal-0.3.3.dist-info/licenses/LICENSE.txt +0 -107
- /amsdal/{migration → contrib/auth/services}/__init__.pyi +0 -0
- /amsdal/{migration/executors → contrib/auth/transactions}/__init__.pyi +0 -0
- {amsdal-0.3.3.dist-info → amsdal-0.5.29.dist-info/licenses}/LICENSE.txt +0 -0
- {amsdal-0.3.3.dist-info → amsdal-0.5.29.dist-info}/top_level.txt +0 -0
|
@@ -1,250 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "FrontendControlConfig",
|
|
3
|
-
"type": "FrontendConfigSkipNoneBase",
|
|
4
|
-
"properties": {
|
|
5
|
-
"type": {
|
|
6
|
-
"title": "Type",
|
|
7
|
-
"type": "string",
|
|
8
|
-
"options": [
|
|
9
|
-
{
|
|
10
|
-
"key": "Infoscreen",
|
|
11
|
-
"value": "infoscreen"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"key": "Info Group",
|
|
15
|
-
"value": "info-group"
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
"key": "Text",
|
|
19
|
-
"value": "text"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"key": "Number",
|
|
23
|
-
"value": "number"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"key": "Select",
|
|
27
|
-
"value": "select"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"key": "Object Group",
|
|
31
|
-
"value": "object_group"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"key": "Group",
|
|
35
|
-
"value": "group"
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
"key": "Group Toggle",
|
|
39
|
-
"value": "group_toggle"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"key": "Group Switch",
|
|
43
|
-
"value": "group_switch"
|
|
44
|
-
},
|
|
45
|
-
{
|
|
46
|
-
"key": "Password",
|
|
47
|
-
"value": "password"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"key": "Email",
|
|
51
|
-
"value": "email"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"key": "Phone",
|
|
55
|
-
"value": "phone"
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
"key": "textarea",
|
|
59
|
-
"value": "textarea"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"key": "Multiselect",
|
|
63
|
-
"value": "multiselect"
|
|
64
|
-
},
|
|
65
|
-
{
|
|
66
|
-
"key": "number_initial",
|
|
67
|
-
"value": "number_initial"
|
|
68
|
-
},
|
|
69
|
-
{
|
|
70
|
-
"key": "number_plus",
|
|
71
|
-
"value": "number_plus"
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
"key": "number_minus",
|
|
75
|
-
"value": "number_minus"
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"key": "number_equals",
|
|
79
|
-
"value": "number_equals"
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"key": "toggle",
|
|
83
|
-
"value": "toggle"
|
|
84
|
-
},
|
|
85
|
-
{
|
|
86
|
-
"key": "radio",
|
|
87
|
-
"value": "radio"
|
|
88
|
-
},
|
|
89
|
-
{
|
|
90
|
-
"key": "checkbox",
|
|
91
|
-
"value": "checkbox"
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
"key": "number-slider",
|
|
95
|
-
"value": "number-slider"
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
"key": "number-operations",
|
|
99
|
-
"value": "number-operations"
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
"key": "date",
|
|
103
|
-
"value": "date"
|
|
104
|
-
},
|
|
105
|
-
{
|
|
106
|
-
"key": "dateTriplet",
|
|
107
|
-
"value": "dateTriplet"
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
"key": "array",
|
|
111
|
-
"value": "array"
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
"key": "object",
|
|
115
|
-
"value": "object"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"key": "file",
|
|
119
|
-
"value": "file"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"key": "dropzone",
|
|
123
|
-
"value": "dropzone"
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
"key": "object_latest",
|
|
127
|
-
"value": "object_latest"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
"key": "Dictionary",
|
|
131
|
-
"value": "dict"
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
"key": "Time",
|
|
135
|
-
"value": "time"
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
"key": "Datetime",
|
|
139
|
-
"value": "datetime"
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"key": "Bytes",
|
|
143
|
-
"value": "Bytes"
|
|
144
|
-
}
|
|
145
|
-
]
|
|
146
|
-
},
|
|
147
|
-
"name": {
|
|
148
|
-
"title": "Name",
|
|
149
|
-
"type": "string"
|
|
150
|
-
},
|
|
151
|
-
"label": {
|
|
152
|
-
"title": "Label",
|
|
153
|
-
"type": "string"
|
|
154
|
-
},
|
|
155
|
-
"required": {
|
|
156
|
-
"title": "Required",
|
|
157
|
-
"type": "boolean"
|
|
158
|
-
},
|
|
159
|
-
"hideLabel": {
|
|
160
|
-
"title": "Hide Label",
|
|
161
|
-
"type": "boolean"
|
|
162
|
-
},
|
|
163
|
-
"actions": {
|
|
164
|
-
"title": "Actions",
|
|
165
|
-
"type": "array",
|
|
166
|
-
"items": {
|
|
167
|
-
"type": "FrontendConfigControlAction"
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
"validators": {
|
|
171
|
-
"title": "Validators",
|
|
172
|
-
"type": "array",
|
|
173
|
-
"items": {
|
|
174
|
-
"type": "FrontendConfigValidator"
|
|
175
|
-
}
|
|
176
|
-
},
|
|
177
|
-
"asyncValidators": {
|
|
178
|
-
"title": "Async Validators",
|
|
179
|
-
"type": "array",
|
|
180
|
-
"items": {
|
|
181
|
-
"type": "FrontendConfigAsyncValidator"
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
"activators": {
|
|
185
|
-
"title": "Activators",
|
|
186
|
-
"type": "array",
|
|
187
|
-
"items": {
|
|
188
|
-
"type": "FrontendActivatorConfig"
|
|
189
|
-
}
|
|
190
|
-
},
|
|
191
|
-
"additionalText": {
|
|
192
|
-
"title": "Additional Text",
|
|
193
|
-
"type": "string"
|
|
194
|
-
},
|
|
195
|
-
"value": {
|
|
196
|
-
"title": "Value",
|
|
197
|
-
"type": "anything"
|
|
198
|
-
},
|
|
199
|
-
"placeholder": {
|
|
200
|
-
"title": "Placeholder",
|
|
201
|
-
"type": "string"
|
|
202
|
-
},
|
|
203
|
-
"options": {
|
|
204
|
-
"title": "Options",
|
|
205
|
-
"type": "array",
|
|
206
|
-
"items": {
|
|
207
|
-
"type": "FrontendConfigOption"
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
"mask": {
|
|
211
|
-
"title": "Mask",
|
|
212
|
-
"type": "FrontendConfigTextMask"
|
|
213
|
-
},
|
|
214
|
-
"controls": {
|
|
215
|
-
"title": "Controls",
|
|
216
|
-
"type": "array",
|
|
217
|
-
"items": {
|
|
218
|
-
"type": "FrontendControlConfig"
|
|
219
|
-
}
|
|
220
|
-
},
|
|
221
|
-
"showSearch": {
|
|
222
|
-
"title": "Show Search",
|
|
223
|
-
"type": "boolean"
|
|
224
|
-
},
|
|
225
|
-
"sliderOptions": {
|
|
226
|
-
"title": "Slider Option",
|
|
227
|
-
"type": "FrontendConfigSliderOption"
|
|
228
|
-
},
|
|
229
|
-
"customLabel": {
|
|
230
|
-
"title": "Custom Label",
|
|
231
|
-
"type": "array",
|
|
232
|
-
"items": {
|
|
233
|
-
"type": "string"
|
|
234
|
-
}
|
|
235
|
-
},
|
|
236
|
-
"control": {
|
|
237
|
-
"title": "Control",
|
|
238
|
-
"type": "FrontendControlConfig"
|
|
239
|
-
},
|
|
240
|
-
"entityType": {
|
|
241
|
-
"title": "Entity Type",
|
|
242
|
-
"type": "string"
|
|
243
|
-
}
|
|
244
|
-
},
|
|
245
|
-
"required": [
|
|
246
|
-
"type",
|
|
247
|
-
"name"
|
|
248
|
-
],
|
|
249
|
-
"meta_class": "TypeMeta"
|
|
250
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"Permission": [
|
|
3
|
-
{
|
|
4
|
-
"external_id": "frontend_model_config_read",
|
|
5
|
-
"model": "FrontendModelConfig",
|
|
6
|
-
"action": "read"
|
|
7
|
-
},
|
|
8
|
-
{
|
|
9
|
-
"external_id": "frontend_model_config_update",
|
|
10
|
-
"model": "FrontendModelConfig",
|
|
11
|
-
"action": "update"
|
|
12
|
-
},
|
|
13
|
-
{
|
|
14
|
-
"external_id": "frontend_model_config_delete",
|
|
15
|
-
"model": "FrontendModelConfig",
|
|
16
|
-
"action": "delete"
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
"external_id": "frontend_model_config_create",
|
|
20
|
-
"model": "FrontendModelConfig",
|
|
21
|
-
"action": "create"
|
|
22
|
-
}
|
|
23
|
-
]
|
|
24
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "FrontendModelConfig",
|
|
3
|
-
"type": "object",
|
|
4
|
-
"properties": {
|
|
5
|
-
"class_name": {
|
|
6
|
-
"title": "Class Name",
|
|
7
|
-
"type": "string"
|
|
8
|
-
},
|
|
9
|
-
"control": {
|
|
10
|
-
"title": "Control",
|
|
11
|
-
"type": "FrontendControlConfig"
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"required": [
|
|
15
|
-
"class_name"
|
|
16
|
-
]
|
|
17
|
-
}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"title": "FrontendConfigControlAction",
|
|
3
|
-
"type": "FrontendConfigSkipNoneBase",
|
|
4
|
-
"properties": {
|
|
5
|
-
"action": {
|
|
6
|
-
"title": "Action",
|
|
7
|
-
"type": "string"
|
|
8
|
-
},
|
|
9
|
-
"text": {
|
|
10
|
-
"title": "Text",
|
|
11
|
-
"type": "string"
|
|
12
|
-
},
|
|
13
|
-
"type": {
|
|
14
|
-
"title": "Type",
|
|
15
|
-
"type": "string",
|
|
16
|
-
"options": [
|
|
17
|
-
{
|
|
18
|
-
"key": "Arrow Next",
|
|
19
|
-
"value": "arrow-next"
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"key": "Arrow Prev",
|
|
23
|
-
"value": "arrow-prev"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
"key": "Action Button",
|
|
27
|
-
"value": "action-button"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"key": "Text Next",
|
|
31
|
-
"value": "text-next"
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
"key": "Text Prev",
|
|
35
|
-
"value": "text-prev"
|
|
36
|
-
}
|
|
37
|
-
]
|
|
38
|
-
},
|
|
39
|
-
"dataLayerEvent": {
|
|
40
|
-
"title": "Data Layer Event",
|
|
41
|
-
"type": "string"
|
|
42
|
-
},
|
|
43
|
-
"activator": {
|
|
44
|
-
"title": "Activator",
|
|
45
|
-
"type": "string"
|
|
46
|
-
},
|
|
47
|
-
"icon": {
|
|
48
|
-
"title": "Icon",
|
|
49
|
-
"type": "string"
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
"required": ["action", "text", "type"],
|
|
53
|
-
"meta_class": "TypeMeta"
|
|
54
|
-
}
|
amsdal/contrib/frontend_configs/models/frontent_config_control_action/properties/action_validate.py
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
from pydantic import field_validator
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
@field_validator('action', mode='after') # type: ignore[misc]
|
|
5
|
-
@classmethod
|
|
6
|
-
def validate_action(cls, v: str) -> str: # type: ignore[no-untyped-def] # noqa: ARG001
|
|
7
|
-
"""
|
|
8
|
-
Validates the action string to ensure it is one of the allowed values.
|
|
9
|
-
|
|
10
|
-
This method checks if the action string starts with 'navigate::' or is one of the predefined
|
|
11
|
-
actions. If the action string is invalid, it raises a ValueError.
|
|
12
|
-
|
|
13
|
-
Args:
|
|
14
|
-
cls: The class this method is attached to.
|
|
15
|
-
v (str): The action string to validate.
|
|
16
|
-
|
|
17
|
-
Returns:
|
|
18
|
-
str: The validated action string.
|
|
19
|
-
|
|
20
|
-
Raises:
|
|
21
|
-
ValueError: If the action string is not valid.
|
|
22
|
-
"""
|
|
23
|
-
if not v.startswith('navigate::') and v not in [
|
|
24
|
-
'goPrev',
|
|
25
|
-
'goNext',
|
|
26
|
-
'goNextWithSubmit',
|
|
27
|
-
'submit',
|
|
28
|
-
'submitWithDataLayer',
|
|
29
|
-
]:
|
|
30
|
-
msg = 'Action must be one of: goPrev, goNext, goNextWithSubmit, submit, submitWithDataLayer, navigate::{string}'
|
|
31
|
-
raise ValueError(msg)
|
|
32
|
-
|
|
33
|
-
return v
|
|
Binary file
|
|
Binary file
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import abc
|
|
2
|
-
from _typeshed import Incomplete
|
|
3
|
-
from abc import ABC, abstractmethod
|
|
4
|
-
from amsdal.configs.constants import BASE_DIR as BASE_DIR
|
|
5
|
-
from amsdal_models.classes.model import Model
|
|
6
|
-
from amsdal_utils.models.data_models.core import DictSchema, LegacyDictSchema, TypeData as TypeData
|
|
7
|
-
from amsdal_utils.models.data_models.schema import ObjectSchema as ObjectSchema, PropertyData as PropertyData
|
|
8
|
-
from amsdal_utils.models.enums import SchemaTypes as SchemaTypes, Versions
|
|
9
|
-
from pathlib import Path
|
|
10
|
-
|
|
11
|
-
class BaseMigrationSchemas(ABC, metaclass=abc.ABCMeta):
|
|
12
|
-
"""
|
|
13
|
-
Abstract base class for migration schemas.
|
|
14
|
-
|
|
15
|
-
This class provides the interface for managing and compiling database schema migrations.
|
|
16
|
-
It includes methods for registering, unregistering, and compiling classes, as well as
|
|
17
|
-
managing class versions.
|
|
18
|
-
"""
|
|
19
|
-
_classes: Incomplete
|
|
20
|
-
_classes_versions: Incomplete
|
|
21
|
-
_buffered_classes: Incomplete
|
|
22
|
-
def __init__(self) -> None: ...
|
|
23
|
-
def get_model(self, name: str) -> type[Model]:
|
|
24
|
-
"""
|
|
25
|
-
Retrieves the model type for the given class name.
|
|
26
|
-
|
|
27
|
-
Args:
|
|
28
|
-
name (str): The name of the class whose model type is to be retrieved.
|
|
29
|
-
|
|
30
|
-
Returns:
|
|
31
|
-
type[Model]: The model type associated with the given class name.
|
|
32
|
-
"""
|
|
33
|
-
@abstractmethod
|
|
34
|
-
def register_model(self, class_name: str, object_schema: ObjectSchema, schema_type: SchemaTypes, class_version: str | Versions = ...) -> None: ...
|
|
35
|
-
@abstractmethod
|
|
36
|
-
def unregister_model(self, class_name: str) -> None: ...
|
|
37
|
-
@abstractmethod
|
|
38
|
-
def compile_buffered_classes(self) -> None: ...
|
|
39
|
-
@staticmethod
|
|
40
|
-
def register_model_version(class_name: str, class_version: str | Versions) -> None:
|
|
41
|
-
"""
|
|
42
|
-
Registers a specific version of a model class.
|
|
43
|
-
|
|
44
|
-
This method registers a specific version of a model class using the ClassVersionManager.
|
|
45
|
-
|
|
46
|
-
Args:
|
|
47
|
-
class_name (str): The name of the class to register the version for.
|
|
48
|
-
class_version (str | Versions): The version of the class to be registered.
|
|
49
|
-
|
|
50
|
-
Returns:
|
|
51
|
-
None
|
|
52
|
-
"""
|
|
53
|
-
|
|
54
|
-
class DefaultMigrationSchemas(BaseMigrationSchemas):
|
|
55
|
-
"""
|
|
56
|
-
Default implementation of the BaseMigrationSchemas.
|
|
57
|
-
|
|
58
|
-
This class provides the default implementation for managing and compiling database schema migrations.
|
|
59
|
-
It includes methods for registering, unregistering, and compiling classes, as well as managing class versions.
|
|
60
|
-
|
|
61
|
-
Attributes:
|
|
62
|
-
model_class_template_layout (Path): Path to the model class layout template.
|
|
63
|
-
model_class_template (Path): Path to the model class template.
|
|
64
|
-
dict_validator_template (Path): Path to the dictionary validator template.
|
|
65
|
-
options_validator_template (Path): Path to the options validator template.
|
|
66
|
-
"""
|
|
67
|
-
model_class_template_layout: Path
|
|
68
|
-
model_class_template: Path
|
|
69
|
-
dict_validator_template: Path
|
|
70
|
-
options_validator_template: Path
|
|
71
|
-
def register_model(self, class_name: str, object_schema: ObjectSchema, schema_type: SchemaTypes, class_version: str | Versions = ...) -> None:
|
|
72
|
-
"""
|
|
73
|
-
Registers a model class for migration.
|
|
74
|
-
|
|
75
|
-
This method registers a model class for migration by adding it to the buffered classes
|
|
76
|
-
and registering its latest version.
|
|
77
|
-
|
|
78
|
-
Args:
|
|
79
|
-
class_name (str): The name of the class to be registered.
|
|
80
|
-
object_schema (ObjectSchema): The schema of the object to be registered.
|
|
81
|
-
schema_type (SchemaTypes): The type of the schema.
|
|
82
|
-
|
|
83
|
-
Returns:
|
|
84
|
-
None
|
|
85
|
-
"""
|
|
86
|
-
def compile_buffered_classes(self) -> None:
|
|
87
|
-
"""
|
|
88
|
-
Compiles all buffered classes for migration.
|
|
89
|
-
|
|
90
|
-
This method compiles all classes that have been buffered for migration and updates the
|
|
91
|
-
internal class dictionary with the compiled class types. It clears the buffer after
|
|
92
|
-
compilation.
|
|
93
|
-
|
|
94
|
-
Returns:
|
|
95
|
-
None
|
|
96
|
-
"""
|
|
97
|
-
def unregister_model(self, class_name: str) -> None:
|
|
98
|
-
"""
|
|
99
|
-
Unregisters a model class from the migration schemas.
|
|
100
|
-
|
|
101
|
-
This method removes the specified model class from the internal class dictionary,
|
|
102
|
-
effectively unregistering it from the migration schemas.
|
|
103
|
-
|
|
104
|
-
Args:
|
|
105
|
-
class_name (str): The name of the class to be unregistered.
|
|
106
|
-
|
|
107
|
-
Returns:
|
|
108
|
-
None
|
|
109
|
-
"""
|
|
110
|
-
def _compile_buffered_classes(self) -> list[tuple[str, type[Model]]]: ...
|
|
111
|
-
def _build_class_source(self, class_name: str, schema: ObjectSchema, schema_type: SchemaTypes) -> tuple[str, str]: ...
|
|
112
|
-
@staticmethod
|
|
113
|
-
def _resolve_class_inheritance(schema: ObjectSchema) -> str: ...
|
|
114
|
-
@staticmethod
|
|
115
|
-
def _process_custom_code(custom_code: str | None) -> tuple[str, str]: ...
|
|
116
|
-
def _render_property(self, name: str, property_schema: PropertyData, required: list[str]) -> str: ...
|
|
117
|
-
def _render_type_annotation(self, type_: str, items: TypeData | DictSchema | LegacyDictSchema | None) -> str: ...
|
|
118
|
-
def _render_validators(self, schema: ObjectSchema) -> list[str]: ...
|
|
119
|
-
def _get_all_types(self, type_: str, items: TypeData | DictSchema | LegacyDictSchema | None) -> set[str]: ...
|
|
120
|
-
def _is_reference(self, type_: str) -> bool: ...
|
|
Binary file
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
from amsdal_models.classes.model import Model
|
|
2
|
-
from amsdal_utils.models.data_models.address import Address as Address
|
|
3
|
-
from amsdal_utils.models.data_models.schema import ObjectSchema as ObjectSchema, PropertyData as PropertyData
|
|
4
|
-
from amsdal_utils.models.enums import SchemaTypes as SchemaTypes
|
|
5
|
-
from dataclasses import dataclass
|
|
6
|
-
from enum import Enum
|
|
7
|
-
from pathlib import Path
|
|
8
|
-
|
|
9
|
-
class Action(str, Enum):
|
|
10
|
-
"""
|
|
11
|
-
Enumeration for different types of actions.
|
|
12
|
-
|
|
13
|
-
Attributes:
|
|
14
|
-
CREATED (str): Represents a created action.
|
|
15
|
-
UPDATED (str): Represents an updated action.
|
|
16
|
-
NO_ACTION (str): Represents no action.
|
|
17
|
-
"""
|
|
18
|
-
CREATE = 'CREATE'
|
|
19
|
-
UPDATE = 'UPDATE'
|
|
20
|
-
NO_ACTION = 'NO_ACTION'
|
|
21
|
-
|
|
22
|
-
@dataclass
|
|
23
|
-
class ClassSaveResult:
|
|
24
|
-
"""
|
|
25
|
-
Data class representing the result of a class save operation.
|
|
26
|
-
|
|
27
|
-
Attributes:
|
|
28
|
-
action (Action): The action performed during the save operation.
|
|
29
|
-
instance (Model): The instance of the model that was saved.
|
|
30
|
-
"""
|
|
31
|
-
action: Action
|
|
32
|
-
instance: Model
|
|
33
|
-
def __init__(self, action, instance) -> None: ...
|
|
34
|
-
|
|
35
|
-
@dataclass
|
|
36
|
-
class ClassUpdateResult:
|
|
37
|
-
"""
|
|
38
|
-
Data class representing the result of a class update operation.
|
|
39
|
-
|
|
40
|
-
Attributes:
|
|
41
|
-
is_updated (bool): Indicates whether the class was updated.
|
|
42
|
-
class_instance (Model): The instance of the model that was updated.
|
|
43
|
-
"""
|
|
44
|
-
is_updated: bool
|
|
45
|
-
class_instance: Model
|
|
46
|
-
def __init__(self, is_updated, class_instance) -> None: ...
|
|
47
|
-
|
|
48
|
-
@dataclass
|
|
49
|
-
class MigrateResult:
|
|
50
|
-
"""
|
|
51
|
-
Data class representing the result of a migration operation.
|
|
52
|
-
|
|
53
|
-
Attributes:
|
|
54
|
-
class_instance (Model): The instance of the model that was migrated.
|
|
55
|
-
is_table_created (bool): Indicates whether the table was created during the migration.
|
|
56
|
-
is_data_migrated (bool): Indicates whether the data was migrated.
|
|
57
|
-
"""
|
|
58
|
-
class_instance: Model
|
|
59
|
-
is_table_created: bool
|
|
60
|
-
is_data_migrated: bool
|
|
61
|
-
def __init__(self, class_instance, is_table_created, is_data_migrated) -> None: ...
|
|
62
|
-
|
|
63
|
-
class ModuleTypes(str, Enum):
|
|
64
|
-
"""
|
|
65
|
-
Enumeration for different types of modules.
|
|
66
|
-
|
|
67
|
-
Attributes:
|
|
68
|
-
APP (str): Represents an application module.
|
|
69
|
-
CORE (str): Represents a core module.
|
|
70
|
-
CONTRIB (str): Represents a contributed module.
|
|
71
|
-
"""
|
|
72
|
-
APP = 'APP'
|
|
73
|
-
CORE = 'CORE'
|
|
74
|
-
CONTRIB = 'CONTRIB'
|
|
75
|
-
|
|
76
|
-
@dataclass
|
|
77
|
-
class MigrationFile:
|
|
78
|
-
"""
|
|
79
|
-
Data class representing a migration file.
|
|
80
|
-
|
|
81
|
-
Attributes:
|
|
82
|
-
path (Path): The file path of the migration.
|
|
83
|
-
type (ModuleTypes): The type of module the migration belongs to.
|
|
84
|
-
number (int): The migration number.
|
|
85
|
-
module (str | None): The module name, if applicable.
|
|
86
|
-
applied_at (float | None): The timestamp when the migration was applied.
|
|
87
|
-
stored_address (Address | None): The stored address associated with the migration.
|
|
88
|
-
"""
|
|
89
|
-
path: Path
|
|
90
|
-
type: ModuleTypes
|
|
91
|
-
number: int
|
|
92
|
-
module: str | None = ...
|
|
93
|
-
applied_at: float | None = ...
|
|
94
|
-
stored_address: Address | None = ...
|
|
95
|
-
@property
|
|
96
|
-
def is_initial(self) -> bool:
|
|
97
|
-
"""
|
|
98
|
-
Indicates whether this migration is the initial migration.
|
|
99
|
-
|
|
100
|
-
Returns:
|
|
101
|
-
bool: True if this is the initial migration, False otherwise.
|
|
102
|
-
"""
|
|
103
|
-
def __init__(self, path, type, number, module=..., applied_at=..., stored_address=...) -> None: ...
|
|
104
|
-
|
|
105
|
-
@dataclass
|
|
106
|
-
class ClassSchema:
|
|
107
|
-
"""
|
|
108
|
-
Data class representing a class schema.
|
|
109
|
-
|
|
110
|
-
Attributes:
|
|
111
|
-
object_schema (ObjectSchema): The object schema associated with the class.
|
|
112
|
-
type (ModuleTypes): The type of module the class belongs to.
|
|
113
|
-
"""
|
|
114
|
-
object_schema: ObjectSchema
|
|
115
|
-
type: ModuleTypes
|
|
116
|
-
def __init__(self, object_schema, type) -> None: ...
|
|
117
|
-
|
|
118
|
-
class OperationTypes(str, Enum):
|
|
119
|
-
"""
|
|
120
|
-
Enumeration for different types of operations.
|
|
121
|
-
|
|
122
|
-
Attributes:
|
|
123
|
-
CREATE_CLASS (str): Represents the operation to create a class.
|
|
124
|
-
UPDATE_CLASS (str): Represents the operation to update a class.
|
|
125
|
-
DELETE_CLASS (str): Represents the operation to delete a class.
|
|
126
|
-
"""
|
|
127
|
-
CREATE_CLASS = 'CREATE_CLASS'
|
|
128
|
-
UPDATE_CLASS = 'UPDATE_CLASS'
|
|
129
|
-
DELETE_CLASS = 'DELETE_CLASS'
|
|
130
|
-
|
|
131
|
-
@dataclass
|
|
132
|
-
class MigrateOperation:
|
|
133
|
-
"""
|
|
134
|
-
Data class representing a migration operation.
|
|
135
|
-
|
|
136
|
-
Attributes:
|
|
137
|
-
type (OperationTypes): The type of operation being performed.
|
|
138
|
-
class_name (str): The name of the class involved in the migration.
|
|
139
|
-
schema_type (SchemaTypes): The type of schema associated with the migration.
|
|
140
|
-
old_schema (ObjectSchema | PropertyData | None): The old schema before the migration, if applicable.
|
|
141
|
-
new_schema (ObjectSchema | PropertyData | None): The new schema after the migration, if applicable.
|
|
142
|
-
"""
|
|
143
|
-
type: OperationTypes
|
|
144
|
-
class_name: str
|
|
145
|
-
schema_type: SchemaTypes
|
|
146
|
-
old_schema: ObjectSchema | PropertyData | None = ...
|
|
147
|
-
new_schema: ObjectSchema | PropertyData | None = ...
|
|
148
|
-
def __init__(self, type, class_name, schema_type, old_schema=..., new_schema=...) -> None: ...
|
|
149
|
-
|
|
150
|
-
class MigrationDirection(str, Enum):
|
|
151
|
-
"""
|
|
152
|
-
Enumeration for the direction of a migration.
|
|
153
|
-
|
|
154
|
-
Attributes:
|
|
155
|
-
FORWARD (str): Represents a forward migration.
|
|
156
|
-
BACKWARD (str): Represents a backward migration.
|
|
157
|
-
"""
|
|
158
|
-
FORWARD = 'forward'
|
|
159
|
-
BACKWARD = 'backward'
|
|
160
|
-
|
|
161
|
-
@dataclass
|
|
162
|
-
class MigrationResult:
|
|
163
|
-
"""
|
|
164
|
-
Data class representing the result of a migration.
|
|
165
|
-
|
|
166
|
-
Attributes:
|
|
167
|
-
direction (MigrationDirection): The direction of the migration.
|
|
168
|
-
migration (MigrationFile): The migration file associated with the migration.
|
|
169
|
-
"""
|
|
170
|
-
direction: MigrationDirection
|
|
171
|
-
migration: MigrationFile
|
|
172
|
-
def __init__(self, direction, migration) -> None: ...
|
|
Binary file
|
|
Binary file
|