From 99c32fb1fd77dc8d405c927badfcc4593ac415d4 Mon Sep 17 00:00:00 2001 From: Hayri Cicek Date: Wed, 31 Jan 2024 11:07:57 +0100 Subject: [PATCH] Refactor directory path generation for clarity and conciseness --- inspira/cli/cli.py | 5 +++-- inspira/cli/create_app.py | 24 ++++++++++++------------ inspira/constants.py | 1 + 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/inspira/cli/cli.py b/inspira/cli/cli.py index 31180d3..85852bd 100644 --- a/inspira/cli/cli.py +++ b/inspira/cli/cli.py @@ -127,8 +127,9 @@ def migrate(down): @cli.command() -def init(): - generate_project() +@click.option("--only-controller", "only_controller", is_flag=True, required=False, help="Generates only controller module") +def init(only_controller): + generate_project(only_controller) click.echo("App file created successfully.") diff --git a/inspira/cli/create_app.py b/inspira/cli/create_app.py index 34fe147..2e1d785 100644 --- a/inspira/cli/create_app.py +++ b/inspira/cli/create_app.py @@ -3,13 +3,13 @@ import click from inspira.cli.init_file import create_init_file -from inspira.constants import SRC_DIRECTORY +from inspira.constants import SRC_DIRECTORY, INIT_DOT_PY from inspira.utils import get_random_secret_key -def generate_project(): +def generate_project(only_controller): create_app_file() - create_directory_structure() + create_directory_structure(only_controller) create_test_directory() click.echo("Project created successfully") @@ -21,21 +21,21 @@ def create_test_directory(): create_init_file(test_directory) -def create_directory_structure(): +def create_directory_structure(only_controller): base_dir = SRC_DIRECTORY dirs = [ base_dir, - os.path.join(base_dir, "__init__.py"), + os.path.join(base_dir, INIT_DOT_PY), os.path.join(base_dir, "controller"), - os.path.join(base_dir, "controller", "__init__.py"), - os.path.join(base_dir, "model"), - os.path.join(base_dir, "model", "__init__.py"), - os.path.join(base_dir, "repository"), - os.path.join(base_dir, "repository", "__init__.py"), - os.path.join(base_dir, "service"), - os.path.join(base_dir, "service", "__init__.py"), + os.path.join(base_dir, "controller", INIT_DOT_PY), ] + if not only_controller: + subdirectories = ["model", "repository", "service"] + for subdirectory in subdirectories: + dirs.append(os.path.join(base_dir, subdirectory)) + dirs.append(os.path.join(base_dir, subdirectory, INIT_DOT_PY)) + for dir_path in dirs: if not os.path.exists(dir_path): if "." in dir_path: diff --git a/inspira/constants.py b/inspira/constants.py index c9bddb5..4cdbda0 100644 --- a/inspira/constants.py +++ b/inspira/constants.py @@ -15,3 +15,4 @@ SRC_DIRECTORY = "src" MIGRATION_DIRECTORY = "migrations" +INIT_DOT_PY = "__init__.py"