amsdal_cli 0.5.5__py3-none-any.whl → 0.5.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. amsdal_cli/__about__.py +1 -1
  2. amsdal_cli/commands/build/services/builder.py +1 -2
  3. amsdal_cli/commands/cloud/deploy/sub_commands/deploy_new.py +1 -2
  4. amsdal_cli/commands/generate/enums.py +0 -1
  5. amsdal_cli/commands/generate/sub_commands/generate_model.py +3 -4
  6. amsdal_cli/commands/generate/sub_commands/generate_permission.py +1 -2
  7. amsdal_cli/commands/generate/sub_commands/generate_tests.py +1 -2
  8. amsdal_cli/commands/generate/sub_commands/generate_transaction.py +1 -2
  9. amsdal_cli/commands/generate/utils/build_base_path.py +1 -2
  10. amsdal_cli/commands/generate/utils/tests/conftest_utils.py +1 -2
  11. amsdal_cli/commands/generate/utils/tests/unit.py +2 -3
  12. amsdal_cli/commands/migrations/sub_commands/make.py +5 -4
  13. amsdal_cli/commands/migrations/sub_commands/make_contrib.py +2 -4
  14. amsdal_cli/commands/new/command.py +1 -2
  15. amsdal_cli/commands/plugin/command.py +19 -8
  16. amsdal_cli/commands/plugin/templates/.amsdal-cli +1 -0
  17. amsdal_cli/commands/plugin/templates/pyproject.toml +1 -1
  18. amsdal_cli/commands/plugin/templates/src/transactions/example_transaction.py +4 -4
  19. amsdal_cli/commands/register_connection/command.py +1 -2
  20. amsdal_cli/commands/register_connection/utils/build.py +1 -2
  21. amsdal_cli/commands/restore/command.py +1 -2
  22. amsdal_cli/commands/serve/command.py +1 -2
  23. amsdal_cli/commands/serve/utils.py +2 -4
  24. amsdal_cli/commands/tests/command.py +2 -3
  25. amsdal_cli/commands/verify/command.py +1 -2
  26. amsdal_cli/commands/worker/sub_commands/run.py +1 -2
  27. amsdal_cli/utils/cli_config.py +1 -0
  28. amsdal_cli/utils/schema_repository.py +5 -4
  29. {amsdal_cli-0.5.5.dist-info → amsdal_cli-0.5.7.dist-info}/METADATA +1 -1
  30. {amsdal_cli-0.5.5.dist-info → amsdal_cli-0.5.7.dist-info}/RECORD +33 -33
  31. {amsdal_cli-0.5.5.dist-info → amsdal_cli-0.5.7.dist-info}/WHEEL +0 -0
  32. {amsdal_cli-0.5.5.dist-info → amsdal_cli-0.5.7.dist-info}/entry_points.txt +0 -0
  33. {amsdal_cli-0.5.5.dist-info → amsdal_cli-0.5.7.dist-info}/licenses/LICENSE.txt +0 -0
amsdal_cli/__about__.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2023-present
2
2
  #
3
3
  # SPDX-License-Identifier: AMSDAL End User License Agreement
4
- __version__ = '0.5.5'
4
+ __version__ = '0.5.7'
@@ -4,7 +4,6 @@ from typing import TYPE_CHECKING
4
4
  from rich import print as rprint
5
5
 
6
6
  from amsdal_cli.commands.build.services.mixin import BuildMixin
7
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
8
7
 
9
8
  if TYPE_CHECKING:
10
9
  from amsdal_cli.utils.cli_config import CliConfig
@@ -15,7 +14,7 @@ class AppBuilder(BuildMixin):
15
14
  from amsdal_models.classes.class_manager import ClassManager
16
15
 
17
16
  self.cli_config = cli_config
18
- self.source_path = cli_config.app_directory / SOURCES_DIR
17
+ self.source_path = cli_config.app_directory / cli_config.src_dir
19
18
  self.config_path = config_path
20
19
  self.class_manager = ClassManager()
21
20
 
@@ -70,7 +70,6 @@ async def _deploy(
70
70
 
71
71
  from amsdal_cli.commands.build.services.builder import AppBuilder
72
72
  from amsdal_cli.commands.cloud.environments.utils import get_current_env
73
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
74
73
  from amsdal_cli.utils.cli_config import CliConfig
75
74
  from amsdal_cli.utils.text import CustomConfirm
76
75
  from amsdal_cli.utils.text import rich_error
@@ -79,7 +78,7 @@ async def _deploy(
79
78
  from amsdal_cli.utils.text import rich_warning
80
79
 
81
80
  cli_config: CliConfig = ctx.meta['config']
82
- app_source_path = cli_config.app_directory / SOURCES_DIR
81
+ app_source_path = cli_config.app_directory / cli_config.src_dir
83
82
  env_name = env_name or get_current_env(cli_config)
84
83
 
85
84
  if cli_config.verbose:
@@ -1,6 +1,5 @@
1
1
  from enum import Enum
2
2
 
3
- SOURCES_DIR = 'src'
4
3
  MODEL_JSON_FILE = 'model.json'
5
4
  MODEL_PY_FILE = 'model.py'
6
5
  FIXTURES_JSON_FILE = 'fixtures.json'
@@ -75,7 +75,6 @@ def generate_model(
75
75
  from amsdal_utils.utils.text import to_snake_case
76
76
 
77
77
  from amsdal_cli.commands.generate.enums import MODEL_JSON_FILE
78
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
79
78
  from amsdal_cli.commands.generate.utils.model_attributes import parse_attributes
80
79
  from amsdal_cli.utils.cli_config import CliConfig
81
80
  from amsdal_cli.utils.cli_config import ModelsFormat
@@ -122,7 +121,7 @@ def generate_model(
122
121
  json_schema['properties'][attr.name] = property_info
123
122
 
124
123
  if cli_config.models_format == ModelsFormat.JSON:
125
- output_path = cli_config.app_directory / SOURCES_DIR / 'models' / name
124
+ output_path = cli_config.app_directory / cli_config.src_dir / 'models' / name
126
125
 
127
126
  write_file(
128
127
  json.dumps(json_schema, indent=cli_config.indent),
@@ -138,11 +137,11 @@ def generate_model(
138
137
 
139
138
  from amsdal_cli.utils.schema_repository import build_schema_repository
140
139
 
141
- output_path = cli_config.app_directory / SOURCES_DIR / 'models'
140
+ output_path = cli_config.app_directory / cli_config.src_dir / 'models'
142
141
  output_path.mkdir(exist_ok=True, parents=True)
143
142
  (output_path / '__init__.py').touch(exist_ok=True)
144
143
 
145
- sys.path.insert(0, str((cli_config.app_directory / SOURCES_DIR).absolute()))
144
+ sys.path.insert(0, str((cli_config.app_directory / cli_config.src_dir).absolute()))
146
145
 
147
146
  schema_repository = build_schema_repository(cli_config=cli_config)
148
147
  class_builder = ClassBuilder()
@@ -24,7 +24,6 @@ def generate_permission(
24
24
  from amsdal_utils.utils.text import to_snake_case
25
25
 
26
26
  from amsdal_cli.commands.generate.enums import FIXTURES
27
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
28
27
  from amsdal_cli.utils.cli_config import CliConfig
29
28
  from amsdal_cli.utils.copier import write_file
30
29
 
@@ -57,7 +56,7 @@ def generate_permission(
57
56
  }
58
57
  )
59
58
 
60
- base_path = cli_config.app_directory / SOURCES_DIR
59
+ base_path = cli_config.app_directory / cli_config.src_dir
61
60
  (base_path / FIXTURES).mkdir(parents=True, exist_ok=True)
62
61
  permissions_file = base_path / FIXTURES / f'{model_snake_case}_permissions.json'
63
62
 
@@ -68,7 +68,6 @@ async def _generate_tests(
68
68
  from amsdal.manager import AmsdalManager
69
69
  from amsdal.manager import AsyncAmsdalManager
70
70
 
71
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
72
71
  from amsdal_cli.commands.generate.utils.tests.conftest_utils import create_conftest_if_not_exist
73
72
  from amsdal_cli.commands.generate.utils.tests.unit import generate_and_save_unit_tests
74
73
  from amsdal_cli.commands.serve.utils import async_build_app_and_check_migrations
@@ -88,7 +87,7 @@ async def _generate_tests(
88
87
  config_manager.load_config(config_path)
89
88
 
90
89
  create_conftest_if_not_exist(cli_config)
91
- app_source_path = cli_config.app_directory / SOURCES_DIR
90
+ app_source_path = cli_config.app_directory / cli_config.src_dir
92
91
 
93
92
  manager: AmsdalManager | AsyncAmsdalManager
94
93
  if config_manager.get_config().async_mode:
@@ -21,14 +21,13 @@ def generate_transaction(
21
21
  from amsdal_utils.utils.text import classify
22
22
  from amsdal_utils.utils.text import to_snake_case
23
23
 
24
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
25
24
  from amsdal_cli.utils.cli_config import CliConfig
26
25
  from amsdal_cli.utils.copier import copy_blueprint
27
26
 
28
27
  cli_config: CliConfig = ctx.meta['config']
29
28
  config_path = cli_config.config_path
30
29
  name = to_snake_case(transaction_name)
31
- output_path = cli_config.app_directory / SOURCES_DIR / 'transactions'
30
+ output_path = cli_config.app_directory / cli_config.src_dir / 'transactions'
32
31
  config_manager = AmsdalConfigManager()
33
32
  config_manager.load_config(config_path)
34
33
 
@@ -3,7 +3,6 @@ from pathlib import Path
3
3
  import typer
4
4
  from rich import print as rprint
5
5
 
6
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
7
6
  from amsdal_cli.utils.cli_config import CliConfig
8
7
  from amsdal_cli.utils.text import rich_error
9
8
 
@@ -23,7 +22,7 @@ def build_model_base_path(ctx: typer.Context, model_name: str) -> Path:
23
22
 
24
23
  cli_config: CliConfig = ctx.meta['config']
25
24
  model = to_snake_case(model_name)
26
- model_path = cli_config.app_directory / SOURCES_DIR / 'models' / model
25
+ model_path = cli_config.app_directory / cli_config.src_dir / 'models' / model
27
26
 
28
27
  if cli_config.check_model_exists and not (
29
28
  (model_path / 'model.json').exists() or (model_path / 'model.py').exists()
@@ -2,14 +2,13 @@ from pathlib import Path
2
2
 
3
3
  from amsdal_utils.config.manager import AmsdalConfigManager
4
4
 
5
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
6
5
  from amsdal_cli.utils.cli_config import CliConfig
7
6
 
8
7
  CURRENT_DIR = Path(__file__).parent
9
8
 
10
9
 
11
10
  def create_conftest_if_not_exist(cli_config: CliConfig) -> None:
12
- test_dir = cli_config.app_directory / SOURCES_DIR / 'tests'
11
+ test_dir = cli_config.app_directory / cli_config.src_dir / 'tests'
13
12
  test_dir.mkdir(parents=True, exist_ok=True)
14
13
  conftest_file_path = test_dir / 'conftest.py'
15
14
 
@@ -11,7 +11,6 @@ from amsdal_utils.utils.text import classify
11
11
  from amsdal_utils.utils.text import to_snake_case
12
12
  from black.mode import TargetVersion
13
13
 
14
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
15
14
  from amsdal_cli.commands.generate.enums import TestDataType
16
15
  from amsdal_cli.commands.generate.utils.tests.async_mode_utils import maybe_await
17
16
  from amsdal_cli.commands.generate.utils.tests.function_utils import test_function_arguments
@@ -581,7 +580,7 @@ def generate_unit_tests(
581
580
  cli_config: CliConfig,
582
581
  test_data_type: TestDataType,
583
582
  ) -> str:
584
- models_dir = cli_config.app_directory / SOURCES_DIR / 'models'
583
+ models_dir = cli_config.app_directory / cli_config.src_dir / 'models'
585
584
 
586
585
  object_schema = get_class_schema(models_dir, model_name, cli_config)
587
586
 
@@ -661,7 +660,7 @@ def generate_and_save_unit_tests(
661
660
  model_name = classify(model_name)
662
661
  model_name_snake_case = to_snake_case(model_name)
663
662
 
664
- unit_test_dir = cli_config.app_directory / SOURCES_DIR / 'tests' / 'unit'
663
+ unit_test_dir = cli_config.app_directory / cli_config.src_dir / 'tests' / 'unit'
665
664
  unit_test_dir.mkdir(parents=True, exist_ok=True)
666
665
 
667
666
  filename = f'test_{model_name_snake_case}.py'
@@ -4,6 +4,7 @@ from typing import TYPE_CHECKING
4
4
  from typing import Annotated
5
5
 
6
6
  import typer
7
+ from amsdal_utils.models.enums import ModuleType
7
8
  from rich import print as rprint
8
9
 
9
10
  from amsdal_cli.commands.migrations.app import sub_app
@@ -26,7 +27,6 @@ def _sync_make_migrations(
26
27
  from amsdal_models.migration.file_migration_generator import FileMigrationGenerator
27
28
  from amsdal_utils.utils.text import to_snake_case
28
29
 
29
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
30
30
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
31
31
  from amsdal_cli.utils.schema_repository import build_schema_repository
32
32
  from amsdal_cli.utils.text import rich_info
@@ -39,12 +39,13 @@ def _sync_make_migrations(
39
39
  amsdal_manager.post_setup() # type: ignore[call-arg]
40
40
 
41
41
  schema_repository = build_schema_repository(cli_config=cli_config)
42
- migrations_dir: Path = cli_config.app_directory / SOURCES_DIR / MIGRATIONS_DIR_NAME
42
+ migrations_dir: Path = cli_config.app_directory / cli_config.src_dir / MIGRATIONS_DIR_NAME
43
43
 
44
44
  generator = FileMigrationGenerator(
45
45
  core_migrations_path=CORE_MIGRATIONS_PATH,
46
46
  app_migrations_path=migrations_dir,
47
47
  contrib_migrations_directory_name=settings.CONTRIB_MIGRATIONS_DIRECTORY_NAME,
48
+ module_type=ModuleType.CONTRIB if cli_config.is_plugin else ModuleType.USER,
48
49
  )
49
50
 
50
51
  try:
@@ -79,7 +80,6 @@ async def _async_make_migrations(
79
80
  from amsdal_models.migration.file_migration_generator import AsyncFileMigrationGenerator
80
81
  from amsdal_utils.utils.text import to_snake_case
81
82
 
82
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
83
83
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
84
84
  from amsdal_cli.utils.schema_repository import build_schema_repository
85
85
  from amsdal_cli.utils.text import rich_info
@@ -92,12 +92,13 @@ async def _async_make_migrations(
92
92
  await amsdal_manager.post_setup() # type: ignore[call-arg, misc]
93
93
 
94
94
  schema_repository = build_schema_repository(cli_config=cli_config)
95
- migrations_dir: Path = cli_config.app_directory / SOURCES_DIR / MIGRATIONS_DIR_NAME
95
+ migrations_dir: Path = cli_config.app_directory / cli_config.src_dir / MIGRATIONS_DIR_NAME
96
96
 
97
97
  generator = AsyncFileMigrationGenerator(
98
98
  core_migrations_path=CORE_MIGRATIONS_PATH,
99
99
  app_migrations_path=migrations_dir,
100
100
  contrib_migrations_directory_name=settings.CONTRIB_MODELS_PACKAGE_NAME,
101
+ module_type=ModuleType.CONTRIB if cli_config.is_plugin else ModuleType.USER,
101
102
  )
102
103
 
103
104
  try:
@@ -26,7 +26,6 @@ def _sync_make_contrib_migrations(
26
26
  from amsdal_models.migration.file_migration_generator import FileMigrationGenerator
27
27
  from amsdal_utils.utils.text import to_snake_case
28
28
 
29
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
30
29
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
31
30
  from amsdal_cli.utils.schema_repository import build_schema_repository
32
31
  from amsdal_cli.utils.text import rich_info
@@ -39,7 +38,7 @@ def _sync_make_contrib_migrations(
39
38
  amsdal_manager.post_setup() # type: ignore[call-arg]
40
39
 
41
40
  schema_repository = build_schema_repository(cli_config=cli_config)
42
- migrations_dir: Path = cli_config.app_directory / SOURCES_DIR / MIGRATIONS_DIR_NAME
41
+ migrations_dir: Path = cli_config.app_directory / cli_config.src_dir / MIGRATIONS_DIR_NAME
43
42
 
44
43
  generator = FileMigrationGenerator(
45
44
  core_migrations_path=CORE_MIGRATIONS_PATH,
@@ -79,7 +78,6 @@ async def _async_make_contrib_migrations(
79
78
  from amsdal_models.migration.file_migration_generator import AsyncFileMigrationGenerator
80
79
  from amsdal_utils.utils.text import to_snake_case
81
80
 
82
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
83
81
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
84
82
  from amsdal_cli.utils.schema_repository import build_schema_repository
85
83
  from amsdal_cli.utils.text import rich_info
@@ -92,7 +90,7 @@ async def _async_make_contrib_migrations(
92
90
  await amsdal_manager.post_setup() # type: ignore[call-arg, misc]
93
91
 
94
92
  schema_repository = build_schema_repository(cli_config=cli_config)
95
- migrations_dir: Path = cli_config.app_directory / SOURCES_DIR / MIGRATIONS_DIR_NAME
93
+ migrations_dir: Path = cli_config.app_directory / cli_config.src_dir / MIGRATIONS_DIR_NAME
96
94
 
97
95
  generator = AsyncFileMigrationGenerator(
98
96
  core_migrations_path=CORE_MIGRATIONS_PATH,
@@ -50,7 +50,6 @@ def new_command(
50
50
  from amsdal_utils.utils.text import slugify
51
51
  from amsdal_utils.utils.text import to_snake_case
52
52
 
53
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
54
53
  from amsdal_cli.utils.copier import copy_blueprints_from_directory
55
54
  from amsdal_cli.utils.text import rich_error
56
55
  from amsdal_cli.utils.text import rich_success
@@ -90,6 +89,6 @@ def new_command(
90
89
  'state_backend': SQLITE_ASYNC_ALIAS if is_async_mode else SQLITE_STATE_ALIAS,
91
90
  },
92
91
  )
93
- (output_path / SOURCES_DIR).mkdir(exist_ok=True)
92
+ (output_path / 'src').mkdir(exist_ok=True)
94
93
 
95
94
  rprint(rich_success(f'The application is successfully created in {output_path.resolve()}'))
@@ -1,4 +1,5 @@
1
1
  import random
2
+ import shutil
2
3
  import string
3
4
  import uuid
4
5
  from pathlib import Path
@@ -47,7 +48,6 @@ def plugin_command(
47
48
  from amsdal_utils.utils.text import slugify
48
49
  from amsdal_utils.utils.text import to_snake_case
49
50
 
50
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
51
51
  from amsdal_cli.utils.copier import copy_blueprints_from_directory
52
52
  from amsdal_cli.utils.text import rich_error
53
53
  from amsdal_cli.utils.text import rich_success
@@ -73,12 +73,16 @@ def plugin_command(
73
73
 
74
74
  application_uuid = (random.choice(string.ascii_lowercase) + uuid.uuid4().hex[:31]).lower() # noqa: S311
75
75
 
76
+ src_dir = plugin_name.strip().lower().replace(' ', '_').replace('-', '_')
76
77
  context = {
78
+ 'src_dir': src_dir,
77
79
  'application_uuid': application_uuid,
78
80
  'plugin_name': plugin_name,
79
81
  'plugin_name_slugify': slugify(plugin_name),
80
82
  'plugin_name_snake': to_snake_case(plugin_name),
81
83
  'amsdal_version': amsdal_version,
84
+ 'state_backend': 'sqlite-state-async' if is_async_mode else 'sqlite-state',
85
+ 'historical_backend': 'sqlite-historical-async' if is_async_mode else 'sqlite-historical',
82
86
  'models_format': models_format.value,
83
87
  'is_async_mode': is_async_mode,
84
88
  }
@@ -88,19 +92,26 @@ def plugin_command(
88
92
  destination_path=output_path,
89
93
  context=context,
90
94
  )
91
- (output_path / SOURCES_DIR).mkdir(exist_ok=True)
95
+ # move src to src_dir
96
+ shutil.move(str(output_path / 'src'), str(output_path / src_dir))
97
+ (output_path / src_dir).mkdir(exist_ok=True)
92
98
 
93
99
  # Create example model based on format
94
- _create_example_model(output_path, models_format, context)
100
+ _create_example_model(output_path, models_format, context, src_dir=src_dir)
95
101
 
96
102
  rprint(rich_success(f'The plugin is successfully created in {output_path.resolve()}'))
97
103
 
98
104
 
99
- def _create_example_model(output_path: Path, models_format: ModelsFormat, context: dict[str, Any]) -> None:
105
+ def _create_example_model(
106
+ output_path: Path,
107
+ models_format: ModelsFormat,
108
+ context: dict[str, Any],
109
+ src_dir: str,
110
+ ) -> None:
100
111
  """Create an example model based on the specified format."""
101
112
  from amsdal_cli.utils.copier import write_file
102
113
 
103
- models_dir = output_path / 'src' / 'models'
114
+ models_dir = output_path / src_dir / 'models'
104
115
 
105
116
  if models_format == ModelsFormat.JSON:
106
117
  # Create JSON model
@@ -135,12 +146,12 @@ def _create_example_model(output_path: Path, models_format: ModelsFormat, contex
135
146
  write_file(json_content, model_dir / 'model.json', confirm_overwriting=False)
136
147
  else:
137
148
  # Create Python model
138
- py_content = f"""from amsdal.types import BaseModel
139
- from amsdal.types import Field
149
+ py_content = f"""from amsdal_models.classes.model import Model
140
150
  from amsdal_utils.models.enums import ModuleType
151
+ from pydantic.fields import Field
141
152
 
142
153
 
143
- class ExampleModel(BaseModel):
154
+ class ExampleModel(Model):
144
155
  \"\"\"Example model for {context['plugin_name']} plugin.\"\"\"
145
156
 
146
157
  __module_type__ = ModuleType.CONTRIB
@@ -1,4 +1,5 @@
1
1
  {
2
+ "src_dir": "{{ ctx.src_dir }}",
2
3
  "config_path": "./config.yml",
3
4
  "http_port": 8080,
4
5
  "check_model_exists": true,
@@ -3,7 +3,7 @@ requires = ["hatchling"]
3
3
  build-backend = "hatchling.build"
4
4
 
5
5
  [tool.hatch.build.targets.wheel]
6
- packages = ["src/"]
6
+ packages = ["{{ ctx.src_dir }}"]
7
7
 
8
8
  [project]
9
9
  name = "{{ ctx.plugin_name_slugify }}_amsdal_plugin"
@@ -1,7 +1,7 @@
1
- {% if ctx.is_async_mode %}from amsdal.core.classes.base import transaction
1
+ {% if ctx.is_async_mode %}from amsdal_data.transactions.decorators import async_transaction
2
2
 
3
3
 
4
- @transaction(name='ExampleTransaction')
4
+ @async_transaction(name='ExampleTransaction')
5
5
  async def example_transaction(name: str, description: str = "") -> None:
6
6
  """
7
7
  Example transaction for {{ ctx.plugin_name }} plugin.
@@ -21,7 +21,7 @@ async def example_transaction(name: str, description: str = "") -> None:
21
21
  # )
22
22
  # await new_model.async_save()
23
23
  pass
24
- {% else %}from amsdal.core.classes.base import transaction
24
+ {% else %}from amsdal_data.transactions.decorators import transaction
25
25
 
26
26
 
27
27
  @transaction(name='ExampleTransaction')
@@ -44,4 +44,4 @@ def example_transaction(name: str, description: str = "") -> None:
44
44
  # )
45
45
  # new_model.save()
46
46
  pass
47
- {% endif %}
47
+ {% endif %}
@@ -7,7 +7,6 @@ import typer
7
7
 
8
8
  from amsdal_cli.app import app
9
9
  from amsdal_cli.commands.cloud.enums import DBType
10
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
11
10
  from amsdal_cli.commands.register_connection.utils.config_updater import ConfigUpdater
12
11
  from amsdal_cli.commands.register_connection.utils.credentials import process_credentials
13
12
  from amsdal_cli.commands.register_connection.utils.meta import process_meta
@@ -135,7 +134,7 @@ async def _register_connection_command(
135
134
  generator = ModelGenerator(
136
135
  config_path=_config,
137
136
  meta=_meta,
138
- output_dir=cli_config.app_directory / SOURCES_DIR / 'models',
137
+ output_dir=cli_config.app_directory / cli_config.src_dir / 'models',
139
138
  models_format=cli_config.models_format,
140
139
  )
141
140
 
@@ -1,6 +1,5 @@
1
1
  from pathlib import Path
2
2
 
3
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
4
3
  from amsdal_cli.utils.cli_config import CliConfig
5
4
  from amsdal_cli.utils.cli_config import ModelsFormat
6
5
 
@@ -12,7 +11,7 @@ def build_models(
12
11
  ) -> None:
13
12
  from amsdal_cli.commands.build.services.builder import AppBuilder
14
13
 
15
- source_path = cli_config.app_directory / SOURCES_DIR
14
+ source_path = cli_config.app_directory / cli_config.src_dir
16
15
  app_builder = AppBuilder(
17
16
  cli_config=cli_config,
18
17
  config_path=config_path,
@@ -58,9 +58,8 @@ def _restore_models(cli_config: 'CliConfig', config: Path | None) -> None:
58
58
  from amsdal_utils.config.manager import AmsdalConfigManager
59
59
 
60
60
  from amsdal_cli.commands.build.services.builder import AppBuilder
61
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
62
61
 
63
- app_source_path = cli_config.app_directory / SOURCES_DIR
62
+ app_source_path = cli_config.app_directory / cli_config.src_dir
64
63
  app_source_path.mkdir(exist_ok=True)
65
64
 
66
65
  app_builder = AppBuilder(
@@ -97,14 +97,13 @@ def serve_command(
97
97
  from amsdal_utils.lifecycle.enum import LifecycleEvent
98
98
  from amsdal_utils.lifecycle.producer import LifecycleProducer
99
99
 
100
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
101
100
  from amsdal_cli.commands.serve.services.supervisor import Supervisor
102
101
  from amsdal_cli.commands.serve.utils import build_app_and_check_migrations
103
102
  from amsdal_cli.commands.serve.utils import cleanup_app
104
103
  from amsdal_cli.utils.cli_config import CliConfig
105
104
 
106
105
  cli_config: CliConfig = ctx.meta['config']
107
- app_source_path = cli_config.app_directory / SOURCES_DIR
106
+ app_source_path = cli_config.app_directory / cli_config.src_dir
108
107
  server_port = port or cli_config.http_port
109
108
 
110
109
  try:
@@ -176,13 +176,12 @@ def _check_migrations_generated_and_applied(
176
176
  from amsdal.configs.main import settings
177
177
  from amsdal_models.migration.file_migration_generator import FileMigrationGenerator
178
178
 
179
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
180
179
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
181
180
  from amsdal_cli.utils.cli_config import ModelsFormat
182
181
  from amsdal_cli.utils.schema_repository import build_schema_repository
183
182
  from amsdal_cli.utils.text import rich_warning
184
183
 
185
- app_source_path = app_path / SOURCES_DIR
184
+ app_source_path = app_path / cli_config.src_dir
186
185
  migrations_dir = app_source_path / MIGRATIONS_DIR_NAME
187
186
 
188
187
  cli_config.models_format = ModelsFormat.PY
@@ -517,13 +516,12 @@ async def _async_check_migrations_generated_and_applied(
517
516
  from amsdal.configs.main import settings
518
517
  from amsdal_models.migration.file_migration_generator import AsyncFileMigrationGenerator
519
518
 
520
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
521
519
  from amsdal_cli.commands.migrations.constants import MIGRATIONS_DIR_NAME
522
520
  from amsdal_cli.utils.cli_config import ModelsFormat
523
521
  from amsdal_cli.utils.schema_repository import build_schema_repository
524
522
  from amsdal_cli.utils.text import rich_warning
525
523
 
526
- app_source_path = app_path / SOURCES_DIR
524
+ app_source_path = app_path / cli_config.src_dir
527
525
  migrations_dir = app_source_path / MIGRATIONS_DIR_NAME
528
526
 
529
527
  cli_config.models_format = ModelsFormat.PY
@@ -90,14 +90,13 @@ def run_tests(
90
90
 
91
91
  from amsdal_utils.config.manager import AmsdalConfigManager
92
92
 
93
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
94
93
  from amsdal_cli.utils.cli_config import CliConfig
95
94
 
96
95
  cli_config: CliConfig = ctx.meta['config']
97
96
  config_manager = AmsdalConfigManager()
98
97
  config_manager.load_config(cli_config.config_path)
99
98
  config_path = cli_config.config_path
100
- app_source_path = cli_config.app_directory / SOURCES_DIR
99
+ app_source_path = cli_config.app_directory / cli_config.src_dir
101
100
 
102
101
  if AmsdalConfigManager().get_config().async_mode:
103
102
  asyncio.run(_async_init(cli_config=cli_config, app_source_path=app_source_path, config_path=config_path))
@@ -109,7 +108,7 @@ def run_tests(
109
108
  with Popen( # noqa: S603
110
109
  [
111
110
  PYTEST_COMMAND,
112
- 'src',
111
+ cli_config.src_dir,
113
112
  '--color=yes',
114
113
  '--db_execution_type',
115
114
  db_execution_type,
@@ -20,7 +20,6 @@ def verify_command(
20
20
 
21
21
  from amsdal_cli.commands.build.services.builder import AppBuilder
22
22
  from amsdal_cli.commands.generate.enums import MODEL_JSON_FILE
23
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
24
23
  from amsdal_cli.commands.verify.utils.verify_json_model import verify_json_model
25
24
  from amsdal_cli.commands.verify.utils.verify_python_file import verify_python_file
26
25
  from amsdal_cli.utils.cli_config import CliConfig
@@ -34,7 +33,7 @@ def verify_command(
34
33
 
35
34
  rprint(rich_info('Syntax checking...'), end=' ')
36
35
 
37
- for file_item in walk(cli_config.app_directory / SOURCES_DIR):
36
+ for file_item in walk(cli_config.app_directory / cli_config.src_dir):
38
37
  if file_item.name == MODEL_JSON_FILE:
39
38
  errors.extend(verify_json_model(file_item))
40
39
  elif file_item.name.endswith('.py'):
@@ -103,11 +103,10 @@ def run_worker(
103
103
  """
104
104
  from amsdal_utils.config.manager import AmsdalConfigManager
105
105
 
106
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
107
106
  from amsdal_cli.utils.cli_config import CliConfig
108
107
 
109
108
  cli_config: CliConfig = ctx.meta['config']
110
- app_source_path = cli_config.app_directory / SOURCES_DIR
109
+ app_source_path = cli_config.app_directory / cli_config.src_dir
111
110
  config_path = cli_config.config_path
112
111
  config_manager = AmsdalConfigManager()
113
112
  config_manager.load_config(config_path)
@@ -45,6 +45,7 @@ class CliConfig(BaseModel):
45
45
  verbose: bool = True
46
46
  is_plugin: bool = False
47
47
  vcs: VCSOptions | None = None
48
+ src_dir: str = 'src'
48
49
 
49
50
  @model_validator(mode='after')
50
51
  def validate_config_path(self) -> 'CliConfig':
@@ -36,7 +36,6 @@ def build_schema_repository(
36
36
 
37
37
  from amsdal_cli.commands.build.schemas.data_models.schemas_directory import SchemasDirectory
38
38
  from amsdal_cli.commands.build.schemas.schema_json_loader import SchemaJsonLoader
39
- from amsdal_cli.commands.generate.enums import SOURCES_DIR
40
39
  from amsdal_cli.utils.cli_config import ModelsFormat
41
40
 
42
41
  _contrib_modules_paths: list[str] = []
@@ -52,21 +51,23 @@ def build_schema_repository(
52
51
 
53
52
  _contrib_modules_paths.append(contrib_models_module_path)
54
53
 
54
+ target_module_type = ModuleType.CONTRIB if cli_config.is_plugin else ModuleType.USER
55
+
55
56
  if cli_config.models_format == ModelsFormat.PY:
56
57
  if skip_user_models:
57
58
  user_schema_loader = DummySchemaLoader()
58
59
  else:
59
60
  user_schema_loader = ClassSchemaLoader(
60
61
  settings.USER_MODELS_MODULE,
61
- class_filter=lambda cls: cls.__module_type__ == ModuleType.USER,
62
+ class_filter=lambda cls: cls.__module_type__ == target_module_type,
62
63
  ) # type: ignore[assignment]
63
64
  else:
64
- _models_path = cli_config.app_directory / SOURCES_DIR / 'models'
65
+ _models_path = cli_config.app_directory / cli_config.src_dir / 'models'
65
66
  user_schema_loader = SchemaJsonLoader( # type: ignore[assignment]
66
67
  SchemasDirectory(
67
68
  path=_models_path,
68
69
  module_path=settings.USER_MODELS_MODULE,
69
- module_type=ModuleType.USER,
70
+ module_type=target_module_type,
70
71
  ),
71
72
  )
72
73
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: amsdal_cli
3
- Version: 0.5.5
3
+ Version: 0.5.7
4
4
  Summary: CLI for AMSDAL framework
5
5
  Project-URL: Documentation, https://pypi.org/project/amsdal_cli/#readme
6
6
  Project-URL: Issues, https://pypi.org/project/amsdal_cli/
@@ -1,5 +1,5 @@
1
1
  amsdal_cli/Third-Party Materials - AMSDAL Dependencies - License Notices.md,sha256=uHJlGG0D4tbpUi8cq-497NNO9ltQ67a5448k-T14HTw,68241
2
- amsdal_cli/__about__.py,sha256=EPO0yn5_cRRN4L7o2A8njb26ZvPG7OJ4hIGTxQSuB6o,124
2
+ amsdal_cli/__about__.py,sha256=6iW8h6OIk_sNDiVyp7NxCzL_PEkI5J0OHZQ6VEA84jQ,124
3
3
  amsdal_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
4
  amsdal_cli/app.py,sha256=_ucuLT5ospf1ifFKEG0IMfVnxKjnvPUQ4iMhkvOfCrc,466
5
5
  amsdal_cli/main.py,sha256=LtH-BD1eJrAUecjKzC8Gx7kYFUstOMH1erdeJUVqFB8,144
@@ -42,7 +42,7 @@ amsdal_cli/commands/build/schemas/mixins/enrich_schemas_mixin.py,sha256=4TvvIuev
42
42
  amsdal_cli/commands/build/schemas/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  amsdal_cli/commands/build/schemas/utils/merger.py,sha256=8dlSV3qgGAGNbOtGGx8zQ7yC99dihxg8JwPHMDboU2w,2229
44
44
  amsdal_cli/commands/build/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
45
- amsdal_cli/commands/build/services/builder.py,sha256=vdR5rqJvjJjfrAAqkFNfnF6MUr4Nai5K_gxyvCQa8mw,3220
45
+ amsdal_cli/commands/build/services/builder.py,sha256=7g4PoF2zmy9I-XxmSyP2Ved54SHScePtbojNR0I4BK4,3168
46
46
  amsdal_cli/commands/build/services/mixin.py,sha256=8MHkasdQ1nPpBY90S4KHpr1rTHLC9Om2v89golcWE38,5749
47
47
  amsdal_cli/commands/build/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
48
48
  amsdal_cli/commands/build/utils/build_config_file.py,sha256=65s3rP_nnr5FJLQlYStGF2JNYxExq5tWZvIU_h8Ae7I,2009
@@ -69,7 +69,7 @@ amsdal_cli/commands/cloud/deploy/command.py,sha256=LIX07pTU55GUA9KmTiKDtoCj5Ytx9
69
69
  amsdal_cli/commands/cloud/deploy/sub_commands/__init__.py,sha256=I7MJEyceCIgCXP7JpX06nLvEA6HUkjj9LSDAb7VfTGo,353
70
70
  amsdal_cli/commands/cloud/deploy/sub_commands/deploy_delete.py,sha256=pRLumeigF4e_Nod32p6XkgJsYxbB9H3WSxbv0IwA5Eo,3221
71
71
  amsdal_cli/commands/cloud/deploy/sub_commands/deploy_list.py,sha256=ozr7tVbPrTnx_YscyAb1_ZockFfQQSwd6XDijrkZSWk,5534
72
- amsdal_cli/commands/cloud/deploy/sub_commands/deploy_new.py,sha256=G28mt1cMv8js80FTtzxahCCWV8AVcu7BWe4w7Nqvp04,12748
72
+ amsdal_cli/commands/cloud/deploy/sub_commands/deploy_new.py,sha256=n87MNWad-oOFYXRpQvWqZZtRo0NXaQZSb3GQkMFE0ls,12692
73
73
  amsdal_cli/commands/cloud/environments/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
74
74
  amsdal_cli/commands/cloud/environments/app.py,sha256=kkzf_kW2jpl3d44qWuIZB5C3uWXzpNpnTIvUpuuPJHE,238
75
75
  amsdal_cli/commands/cloud/environments/command.py,sha256=roeg2tpa53W1qzCa_3-zEn5z2xiVS4STWB9M7P5BVKA,283
@@ -111,16 +111,16 @@ amsdal_cli/commands/cloud/sub_commands/sync_db.py,sha256=o5yaqcanCDffaAj73jvk7vX
111
111
  amsdal_cli/commands/generate/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
112
112
  amsdal_cli/commands/generate/app.py,sha256=-wEccTR0MhZyj3Y1R2VMyO9RzyGiBSrdWNPQc4ACHqc,201
113
113
  amsdal_cli/commands/generate/command.py,sha256=j6CGiZ_7st-A6qpMTA8XYl15UeONopauQALObVWB2xc,197
114
- amsdal_cli/commands/generate/enums.py,sha256=4Nvbe4aJEUOMkFqjNbr2xtnvzqrJEh2qDiwBn9Humpg,3716
114
+ amsdal_cli/commands/generate/enums.py,sha256=SQ_ZFW6F9RbvM__Ohz5r3Ld54MlKoxid83kqiVqaZwY,3696
115
115
  amsdal_cli/commands/generate/sub_commands/__init__.py,sha256=WyZ4kE6IH9O_igOVJ31UQtqE12cCKyATi4E-qgslN3k,941
116
116
  amsdal_cli/commands/generate/sub_commands/generate_frontend_config.py,sha256=SkEzx7-mWgrPINwPXGRmYO1SVA0RZojOd6BZFQRmG0Q,2574
117
117
  amsdal_cli/commands/generate/sub_commands/generate_hook.py,sha256=C0Oy5VokM3BXPq33Kknjvtjwd7hdfSxQFKxJcHu_bgg,1738
118
- amsdal_cli/commands/generate/sub_commands/generate_model.py,sha256=nscCBi-PRa_JWdZlMo7ij5Ukg2eEk5tqMhMiLOs1Jv4,5927
118
+ amsdal_cli/commands/generate/sub_commands/generate_model.py,sha256=yjZEfadjDf2zRkXh9z5RWYqnO9vFVu8tzVQzxWZPWY4,5885
119
119
  amsdal_cli/commands/generate/sub_commands/generate_modifier.py,sha256=NyN7vMTBGaQv6u815WT1lqAlqI4xP1AmIZWq5edZ-5g,1426
120
- amsdal_cli/commands/generate/sub_commands/generate_permission.py,sha256=gfRhZsnNnd_m_HxdOCB8C22tbMkopg2FTKo-T68b13s,2824
120
+ amsdal_cli/commands/generate/sub_commands/generate_permission.py,sha256=7vnweAhPlJpX0Ji40baPXXAbE5wuGsleQD3ty4Ul3FI,2768
121
121
  amsdal_cli/commands/generate/sub_commands/generate_property.py,sha256=XrCjf48oEzuMPqsTuC5Qsn1WbIQzUVW8BNOmXssfUM8,1599
122
- amsdal_cli/commands/generate/sub_commands/generate_tests.py,sha256=9n237ZMWzxp9Bq-QooFeynG_jDmjA42EBJkRt4S3AsE,4618
123
- amsdal_cli/commands/generate/sub_commands/generate_transaction.py,sha256=hBHceRNqqxVVqIBmMkMOcRG5AM_PB3Pc7ABdm5oeytE,1640
122
+ amsdal_cli/commands/generate/sub_commands/generate_tests.py,sha256=BYCuaj36sg0SBhkku3fz0xCIL9Ww4F8Q1BqXZXByQPs,4562
123
+ amsdal_cli/commands/generate/sub_commands/generate_transaction.py,sha256=IS1vr8N09f0r93kk-k8E-_fmjWPcW0xCgzEN-FEM5d8,1584
124
124
  amsdal_cli/commands/generate/templates/async_transaction.pyt,sha256=HDnJpIzSuf5h0lYLXDYv_w4LqjJNEl6FMybeT9A19uI,173
125
125
  amsdal_cli/commands/generate/templates/hook.pyt,sha256=nqToFKu6GIxrXWlpg5IN9rK8nkZ07F4sH-aZEQaTfpY,261
126
126
  amsdal_cli/commands/generate/templates/property.pyt,sha256=ApOdptmK_KchBhMR_XgG249AK76th6ChfBdeMjyio4s,85
@@ -129,16 +129,16 @@ amsdal_cli/commands/generate/templates/modifier/constructor.pyt,sha256=ue_cMby-9
129
129
  amsdal_cli/commands/generate/templates/modifier/display_name.pyt,sha256=YN_LT4aBnkwqzAK-UVkHP1znSHYZhAETzLi-3hHl5Jk,81
130
130
  amsdal_cli/commands/generate/templates/modifier/version_name.pyt,sha256=Gt53bNJnKAgQl9cZGsNQmUt_rydZYTcsOdZztY4QnrA,81
131
131
  amsdal_cli/commands/generate/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
- amsdal_cli/commands/generate/utils/build_base_path.py,sha256=yBDkEVWJcvcUSyCd92RjPKrctJ4uH-1amH0tfZo8IlE,1022
132
+ amsdal_cli/commands/generate/utils/build_base_path.py,sha256=bFB1TpNcF9YpRR1a1FKDEoucBqKjthz2z8H7wQI8je4,970
133
133
  amsdal_cli/commands/generate/utils/cast_to_attribute_type.py,sha256=mptQHTUFWDCo463ZjV8GjPKeGGOdORL_v1szA1pFZaQ,850
134
134
  amsdal_cli/commands/generate/utils/model_attributes.py,sha256=IPfONQAgRpaoEJhIvB15QDILOztCSVOUZdBctC_AWlk,7511
135
135
  amsdal_cli/commands/generate/utils/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
136
136
  amsdal_cli/commands/generate/utils/tests/async_mode_utils.py,sha256=iub84Pj5TMa38W90Pr5HgkFQLXpUdbmcm9HOx98Oh6o,309
137
- amsdal_cli/commands/generate/utils/tests/conftest_utils.py,sha256=8KzHtDh7eQGghhj5aZkY7Mu2rrlkBgM4Khf857iGG1Y,838
137
+ amsdal_cli/commands/generate/utils/tests/conftest_utils.py,sha256=Ma0yRcrwzGwN_IdnAoYgVnYVjgLy0CgQveqXHuhn5RA,786
138
138
  amsdal_cli/commands/generate/utils/tests/function_utils.py,sha256=Bkk9JDbANX2aSreNRr1Bste5rPwVKc2HV5xLFg2dQK4,496
139
139
  amsdal_cli/commands/generate/utils/tests/model_utils.py,sha256=CBfR9AcL6Q1boEejjmOD16F0kgJFdIjYYWNE3vQMkfE,4051
140
140
  amsdal_cli/commands/generate/utils/tests/type_utils.py,sha256=yglZHcvAQ0m6JnwQEBxHdcWxlkHY65P-Cp81fCrC3q8,9325
141
- amsdal_cli/commands/generate/utils/tests/unit.py,sha256=KRqBhk_jy_1vp0RZub7HdYxfhn3Bra2v0heDNNPldeE,27741
141
+ amsdal_cli/commands/generate/utils/tests/unit.py,sha256=XEoTmgZP-8dSmFqA6lPk5U8k3AfDbDom92CviXgzFtw,27696
142
142
  amsdal_cli/commands/generate/utils/tests/templates/async/conftest.py,sha256=9GfoV_HzwuWtglI7uz0fP5_pOsPk2f56elaoinuPa80,1632
143
143
  amsdal_cli/commands/generate/utils/tests/templates/sync/conftest.py,sha256=wMmnKQnVTSJsS5MdH25ChRcc-aQevQYqIZhXwLnZl0U,1564
144
144
  amsdal_cli/commands/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -149,10 +149,10 @@ amsdal_cli/commands/migrations/utils.py,sha256=Fvu6NlIFL3OAz0MhLkvnucIsHBZlDDCOZ
149
149
  amsdal_cli/commands/migrations/sub_commands/__init__.py,sha256=HHxiJxcbJUQLv6QOLwcvcSjTYJTixiRJ89IUb1H7sRo,1100
150
150
  amsdal_cli/commands/migrations/sub_commands/apply.py,sha256=4MyO_gP7r4PBRz_agi2xnoMTHcLlvxlo4335mmLrpYQ,8696
151
151
  amsdal_cli/commands/migrations/sub_commands/list.py,sha256=vC-oeTVHjYNzI_HhiylZSNeOsIFvnDZ6TRwrqQ-wpUk,5833
152
- amsdal_cli/commands/migrations/sub_commands/make.py,sha256=5DiSp5j_iv1Mk7eVFRJ_yCVdc1lZGkctmtY-tNbqaTk,6322
153
- amsdal_cli/commands/migrations/sub_commands/make_contrib.py,sha256=KbB19I95Uh3dy00Peg9dDc09rcxI2c8FrTIazSaTVw8,6449
152
+ amsdal_cli/commands/migrations/sub_commands/make.py,sha256=Qh3_4djVgdT67oRZ46AF2dqSyUDEiipOOkW5_-n4DOY,6429
153
+ amsdal_cli/commands/migrations/sub_commands/make_contrib.py,sha256=JdlD8hGjNMrbWFIqSw5eXRSxUd1hW6D2UcxWR6-6uTg,6337
154
154
  amsdal_cli/commands/new/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
155
- amsdal_cli/commands/new/command.py,sha256=NDuDZNwreyuHsv4tbE-yrNOJViB8wk35IcKvGKQXPXo,3302
155
+ amsdal_cli/commands/new/command.py,sha256=B-chjS_TAEzH4CIr_vBtxFWn7Y4xWm8vpUetCf1lwKo,3233
156
156
  amsdal_cli/commands/new/templates/.amsdal-cli,sha256=PdXPovcT8AfPhqwDLI_4EWFYAS6e3J5JcsHVityBdF8,304
157
157
  amsdal_cli/commands/new/templates/.gitignore,sha256=u7cZFs8VyeZahreeYtkoRnAQduko23Lz4SoGCyMSOQc,153
158
158
  amsdal_cli/commands/new/templates/README.md,sha256=SM_MPq4HNWIxo2B4HJmfM1kfJYawW4YneuZxFqZnDo4,21552
@@ -162,20 +162,20 @@ amsdal_cli/commands/new/templates/.amsdal/.dependencies,sha256=47DEQpj8HBSa-_TIm
162
162
  amsdal_cli/commands/new/templates/.amsdal/.environment,sha256=DW5AeeNnA-vTfAByL1iR0osOKBHcEUsSkhUSOtzONgU,4
163
163
  amsdal_cli/commands/new/templates/.amsdal/.secrets,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
164
164
  amsdal_cli/commands/plugin/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
165
- amsdal_cli/commands/plugin/command.py,sha256=alrKEIjpy2stMIEqb0fUZ1STu9VroaaKDx03fEJKdgA,4588
166
- amsdal_cli/commands/plugin/templates/.amsdal-cli,sha256=fhvckKLvaFEzt6ePdgre01vFkr-_AmWHVfJlD6rZZaQ,289
165
+ amsdal_cli/commands/plugin/command.py,sha256=yiqf7lOKlOlTha1pVlEE0B3yYrREbAQUxa2ehDaMsk0,4982
166
+ amsdal_cli/commands/plugin/templates/.amsdal-cli,sha256=HkC4Dh_3zm3NYdk_sNgiWKzsXyBRt8Tctr3bLMONTqM,325
167
167
  amsdal_cli/commands/plugin/templates/README.md,sha256=FMwYTXOJ0ZsrhY-wq-c3pH8OeT-oAckjK48s5kh9lW4,1231
168
168
  amsdal_cli/commands/plugin/templates/config.yml,sha256=ZEjr5RA0iSG3Nwf_N11WFwpNI8xKbcqoEip_BZgtOtw,635
169
- amsdal_cli/commands/plugin/templates/pyproject.toml,sha256=fIHM2_nj1Jcw9JqFo_eE22uAazvpuj1fLTcRDr88wpY,387
169
+ amsdal_cli/commands/plugin/templates/pyproject.toml,sha256=DNwO1JotsNRbCf1U-NtuY1Bt149pMkJCxpnEWaH_D-k,400
170
170
  amsdal_cli/commands/plugin/templates/src/__about__.py,sha256=IMjkMO3twhQzluVTo8Z6rE7Eg-9U79_LGKMcsWLKBkY,22
171
171
  amsdal_cli/commands/plugin/templates/src/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
172
172
  amsdal_cli/commands/plugin/templates/src/models/__init__.py,sha256=93F5MjA9NayBY6wY_ypyf55KYER3eovgj5K0IM8w3Qs,49
173
173
  amsdal_cli/commands/plugin/templates/src/transactions/__init__.py,sha256=NzpIjXV6XKtBiZoteisyuWYjZNebuh3EAZ3tzrkAFvU,55
174
- amsdal_cli/commands/plugin/templates/src/transactions/example_transaction.py,sha256=4NZVRuZ2BXM-nREvGbZv7H36EbzQHGSWBGFaTYWc_E4,1293
174
+ amsdal_cli/commands/plugin/templates/src/transactions/example_transaction.py,sha256=UFSXw7UbYtTSAFuKji0E6c-XTIVASjduOLFAvQJmqVE,1328
175
175
  amsdal_cli/commands/register_connection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
176
- amsdal_cli/commands/register_connection/command.py,sha256=MdW8j1Q4TfufMl3Z4JVECX_OXIVya0tQ-vJj0Zc5Bdk,5145
176
+ amsdal_cli/commands/register_connection/command.py,sha256=yOeggn7aYwqWbmOEpu2M2_u9h3ilVaSyKhpoNmy5S60,5093
177
177
  amsdal_cli/commands/register_connection/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
- amsdal_cli/commands/register_connection/utils/build.py,sha256=7aE9AqUyhGM10fOtgbHdCKo6JG5f4xrM1NnjbXTBxWA,762
178
+ amsdal_cli/commands/register_connection/utils/build.py,sha256=nsx2EeN-KhZHg1IwICeRSTfUJS1ajNy1LrP33lXoD4s,710
179
179
  amsdal_cli/commands/register_connection/utils/config_updater.py,sha256=CDsaCuli5tCsHoNrzfeWoVDPlyOTWvi8TPdbM4Fzo4o,4204
180
180
  amsdal_cli/commands/register_connection/utils/credentials.py,sha256=iaAF5STbKJNIoT8vL30DafTn4uzYnrjumtM3XNHuOS8,1066
181
181
  amsdal_cli/commands/register_connection/utils/initialize.py,sha256=9NvfAWOvWQVrSfVNZnGBqeKcQ7bxpTf56oj8239jgc8,1279
@@ -184,20 +184,20 @@ amsdal_cli/commands/register_connection/utils/migrate_models.py,sha256=oU_5oZcwU
184
184
  amsdal_cli/commands/register_connection/utils/model_generator.py,sha256=w0vz-i-tMdimcQYmFbtfpOZJF8heTTRIzu1yTdbKBpc,10853
185
185
  amsdal_cli/commands/register_connection/utils/tables.py,sha256=FOwbWOpEw485Leoqe8LXCVY5osGKTKlMqWD9oqosapk,474
186
186
  amsdal_cli/commands/restore/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
- amsdal_cli/commands/restore/command.py,sha256=4ybZ_p5i7t3QHfvz__FUmdO2vaK-4D5YR1XDOjhoSgc,36032
187
+ amsdal_cli/commands/restore/command.py,sha256=yrtF0y3HHmv6RXrMKQCnUIDhEQecDWY7THI_erh6WtA,35976
188
188
  amsdal_cli/commands/restore/enums.py,sha256=6SiKMRGlSjiLyepfbfQFXGAYqlM6Bkoeko2KscntTUQ,307
189
189
  amsdal_cli/commands/serve/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
190
- amsdal_cli/commands/serve/command.py,sha256=x1_8gZDhRCUQt2-8v1K7__2uPjIlte_tY1ctJxVbl4k,6599
191
- amsdal_cli/commands/serve/utils.py,sha256=tb0OjE8uAWfEfpXt_LUJjJG7vWoLKpa152R3Svlan_w,18602
190
+ amsdal_cli/commands/serve/command.py,sha256=rdeS9obphECV6UsGIExVEWUiFL8ntqbNfLiNTMUD4nM,6543
191
+ amsdal_cli/commands/serve/utils.py,sha256=2APwAytxKBuS8PbfGJ0MVLgi_9Q3p-OfBCiZoAMt0bU,18490
192
192
  amsdal_cli/commands/serve/filters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
193
193
  amsdal_cli/commands/serve/filters/models_watch_filter.py,sha256=cnoAjrn-PYDAFq5MtgbQ6QeCvJJmcNisVNlA8QtFv4A,170
194
194
  amsdal_cli/commands/serve/filters/static_files_watch_filter.py,sha256=jKAF5RHq1au2v0kcOrqaAHP1x5IUjt_KgZURJLm29Tw,552
195
195
  amsdal_cli/commands/serve/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
196
196
  amsdal_cli/commands/serve/services/supervisor.py,sha256=YAt8pT8qev5DN_u8zpiEsDvAKJpPdoqczxAwSSlSJpU,15216
197
197
  amsdal_cli/commands/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
198
- amsdal_cli/commands/tests/command.py,sha256=26fOKdCRzQ54NsrY2pSbqr8g6_J89jCg1f5Rey_UgP0,3843
198
+ amsdal_cli/commands/tests/command.py,sha256=_UYFGYgd9VDJMjLRSPSudTh2DQuZLV3yk1fZekPlJE0,3800
199
199
  amsdal_cli/commands/verify/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
200
- amsdal_cli/commands/verify/command.py,sha256=Dgg0brt1pBqyI4ZMM02NgBg7GC5oKAwvv298teIUT0I,2242
200
+ amsdal_cli/commands/verify/command.py,sha256=WVLHI3q1g0Zx09wktM6PWsu6jUsP9AuOA7FGzmzYg7c,2186
201
201
  amsdal_cli/commands/verify/models.py,sha256=u9kvoRqNv0wbp0hDUi1GvgWbk417RifFmRvT6AVr2NE,444
202
202
  amsdal_cli/commands/verify/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
203
203
  amsdal_cli/commands/verify/utils/verify_json_model.py,sha256=95BC1kE2URW4gFaRNlccJ8wOvoumDKC7fxu68b84_VA,1110
@@ -206,25 +206,25 @@ amsdal_cli/commands/worker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJ
206
206
  amsdal_cli/commands/worker/app.py,sha256=X0irXtvo7Gq2g-tsRTPxi9KkgM38DsIvtDMaeGnqZJY,148
207
207
  amsdal_cli/commands/worker/command.py,sha256=e3uL38VYCp71-XsVYvE1xlt2FqhP54ujlhVFhK7_9Jw,186
208
208
  amsdal_cli/commands/worker/sub_commands/__init__.py,sha256=5AVFexW1UpfPpfNfYoioA6Pix1uiRSEjVEa-_wP89j4,100
209
- amsdal_cli/commands/worker/sub_commands/run.py,sha256=gQ5fuQwB4Xouyosau0X2YB38DsomkZyUt2MREXeg7jE,4355
209
+ amsdal_cli/commands/worker/sub_commands/run.py,sha256=lOqH_1VWdF1fmzE5-KHIvaxLTnPaGxs6qBDlY9ezh3Q,4299
210
210
  amsdal_cli/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
211
211
  amsdal_cli/config/main.py,sha256=leYnDJlzhzIAYWOH65QhPLu4zk3ii26ogMBWGYx3uqM,2874
212
212
  amsdal_cli/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
213
213
  amsdal_cli/utils/alias_group.py,sha256=v0ninrhZGtZFuJtUH6ZZZ97Irs96nkmIBFm2gY1NdmU,991
214
214
  amsdal_cli/utils/check_versions.py,sha256=4Q3GwY_0xgP_RV_ITuFSDigXds-f1QhqCqkUkn-CSMI,1475
215
- amsdal_cli/utils/cli_config.py,sha256=t1R-U6lh3xzKkBpTgd-Wg7scVeEmf-RAPaL_-DSDaPU,2772
215
+ amsdal_cli/utils/cli_config.py,sha256=4trzdWfbvR0jc9rgyahgl7sKGlodRJMEa7NvZAzENRM,2797
216
216
  amsdal_cli/utils/copier.py,sha256=nKo0-P1AhWIb7IjbndYr3Vnvd_avCa566iIbXLK_5a0,5122
217
217
  amsdal_cli/utils/markdown_patch.py,sha256=RW58pJhRoUYW1fhId70hw8MD2DF-UqXTYfv7JrSGz5I,1816
218
218
  amsdal_cli/utils/render_template.py,sha256=wVjw6K4JZDKz0VElC76Dkgme8di4yfhHIb6hVju9el4,645
219
- amsdal_cli/utils/schema_repository.py,sha256=RtTXrRxvt7U9jMW8Mt7VWTDIiz8Dkblk_0TLFri04A8,2933
219
+ amsdal_cli/utils/schema_repository.py,sha256=nq3PUYyghTAapzBYeRpbrEkaOHh6dkUqVsOgj0JwtAk,2973
220
220
  amsdal_cli/utils/text.py,sha256=oAC6H6nhuH_jSdKqbC3vRKpgzs2Qot7DluojWOwh9GU,2489
221
221
  amsdal_cli/utils/vcs/__init__.py,sha256=WWxqfpYP5AK9zGj6_KzKfbQCX6H1FCLqHfQyVnRof9E,513
222
222
  amsdal_cli/utils/vcs/base.py,sha256=jC05ExJZDnyHAsW7_4IDf8gQcYgK4dXq3zNlFIX66T4,422
223
223
  amsdal_cli/utils/vcs/dummy.py,sha256=Lk8MT-b0YlHHUsiXsq5cvmPwcl4jTYdo8piN5_C8ORA,434
224
224
  amsdal_cli/utils/vcs/enums.py,sha256=tYR9LN1IOr8BZFbSeX_vDlhn8fPl4IU-Yakii8lRDYs,69
225
225
  amsdal_cli/utils/vcs/git.py,sha256=xHynbZcV6p2D3RFCwu1MGGpV9D7eK-pGUtO8kVexTQM,1269
226
- amsdal_cli-0.5.5.dist-info/METADATA,sha256=-0tbpUZNEWRSiaJW4Z7hbA3e1IDEI8ASUHFkrrIXhOY,57105
227
- amsdal_cli-0.5.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
228
- amsdal_cli-0.5.5.dist-info/entry_points.txt,sha256=GC-8LZsD3W--Pd9_gD4W3tw3ZZyPbSvkZ-qWc9Fx0NI,47
229
- amsdal_cli-0.5.5.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
230
- amsdal_cli-0.5.5.dist-info/RECORD,,
226
+ amsdal_cli-0.5.7.dist-info/METADATA,sha256=xT_KeYNRJy5TYkcikn5rrkiklhNpBqgtX-RccqdtT7I,57105
227
+ amsdal_cli-0.5.7.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
228
+ amsdal_cli-0.5.7.dist-info/entry_points.txt,sha256=GC-8LZsD3W--Pd9_gD4W3tw3ZZyPbSvkZ-qWc9Fx0NI,47
229
+ amsdal_cli-0.5.7.dist-info/licenses/LICENSE.txt,sha256=hG-541PFYfNJi9WRZi_hno91UyqNg7YLK8LR3vLblZA,27355
230
+ amsdal_cli-0.5.7.dist-info/RECORD,,