From cadc1a51476e3d2d7bfef3201816319e3a8f68b5 Mon Sep 17 00:00:00 2001 From: Pavel Kirilin <win10@list.ru> Date: Tue, 6 Oct 2020 21:26:21 +0400 Subject: [PATCH] Updated generation. Signed-off-by: Pavel Kirilin <win10@list.ru> --- hooks/post_gen_project.py | 6 ++-- .../.pre-commit-config.yaml | 1 + .../conditional_files.json | 29 +++++++++++++++++++ .../conditional_files.yaml | 19 ------------ {{cookiecutter.project_name}}/src/server.py | 21 ++++++-------- .../tests/conftest.py | 8 ++--- .../tests/dummy_db_test.py | 2 +- 7 files changed, 47 insertions(+), 39 deletions(-) create mode 100644 {{cookiecutter.project_name}}/conditional_files.json delete mode 100644 {{cookiecutter.project_name}}/conditional_files.yaml diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index 9bfbf59..5036290 100644 --- a/hooks/post_gen_project.py +++ b/hooks/post_gen_project.py @@ -4,9 +4,9 @@ import shutil import subprocess import sys -import yaml +import json -MANIFEST = "conditional_files.yaml" +MANIFEST = "conditional_files.json" FIRST_RUN_WIN = "first_run.bat" FIRST_RUN = "first_run.sh" @@ -22,7 +22,7 @@ def delete_resource(resource): def delete_resources_for_disabled_features(): with open(MANIFEST) as manifest_file: - manifest = yaml.safe_load(manifest_file) + manifest = json.load(manifest_file) for feature in manifest['features']: if not feature['enabled']: print("removing resources for disabled feature {}...".format(feature['name'])) diff --git a/{{cookiecutter.project_name}}/.pre-commit-config.yaml b/{{cookiecutter.project_name}}/.pre-commit-config.yaml index 74f1210..1fff678 100644 --- a/{{cookiecutter.project_name}}/.pre-commit-config.yaml +++ b/{{cookiecutter.project_name}}/.pre-commit-config.yaml @@ -35,6 +35,7 @@ repos: - "--pretty" - "--show-error-codes" - "--no-warn-return-any" + - "--implicit-reexport" - "--allow-untyped-decorators" exclude: > (?x)^( diff --git a/{{cookiecutter.project_name}}/conditional_files.json b/{{cookiecutter.project_name}}/conditional_files.json new file mode 100644 index 0000000..5169557 --- /dev/null +++ b/{{cookiecutter.project_name}}/conditional_files.json @@ -0,0 +1,29 @@ +{ + "features": [ + { + "name": "Redis support", + "enabled": {{cookiecutter.add_redis|lower}}, + "resources": [ + "src/services/redis.py", + "src/api/redis_api" + ] + }, + { + "name": "Systemd support", + "enabled": {{cookiecutter.add_systemd|lower}}, + "resources": [ + "systemd" + ] + }, + { + "name": "Dummy DB model", + "enabled": {{cookiecutter.add_dummy_model|lower}}, + "resources": [ + "src/models/dummy_db_model.py", + "migrations/versions/7ae297ab5ac1_created_dummy_model.py", + "tests/dummy_db_test.py", + "src/api/dummy_db" + ] + } + ] +} \ No newline at end of file diff --git a/{{cookiecutter.project_name}}/conditional_files.yaml b/{{cookiecutter.project_name}}/conditional_files.yaml deleted file mode 100644 index cf11571..0000000 --- a/{{cookiecutter.project_name}}/conditional_files.yaml +++ /dev/null @@ -1,19 +0,0 @@ -features: - - name: Redis support - enabled: {{cookiecutter.add_redis|lower}} - resources: - - src/services/redis.py - - src/api/redis_api - - - name: Systemd support - enabled: {{cookiecutter.add_systemd|lower}} - resources: - - systemd - - - name: Dummy DB model - enabled: {{cookiecutter.add_dummy_model|lower}} - resources: - - src/models/dummy_db_model.py - - migrations/versions/7ae297ab5ac1_created_dummy_model.py - - tests/dummy_db_test.py - - src/api/dummy_db \ No newline at end of file diff --git a/{{cookiecutter.project_name}}/src/server.py b/{{cookiecutter.project_name}}/src/server.py index 59ac1cb..c569502 100644 --- a/{{cookiecutter.project_name}}/src/server.py +++ b/{{cookiecutter.project_name}}/src/server.py @@ -13,18 +13,15 @@ from src.services.redis import redis {% endif %} from src.settings import Settings, settings -config = { - "handlers": [ - { - "sink": sys.stderr, - "backtrace": False, - "diagnose": settings.is_dev, - "catch": False, - "colorize": settings.is_dev, - }, - ] -} -logger.configure(**config) +logger.configure( + handlers=[{ + "sink": sys.stderr, + "backtrace": False, + "diagnose": settings.is_dev, + "catch": False, + "colorize": settings.is_dev, + }] +) app = FastAPI( title="{{cookiecutter.project_name}}", diff --git a/{{cookiecutter.project_name}}/tests/conftest.py b/{{cookiecutter.project_name}}/tests/conftest.py index 9513830..a41373d 100644 --- a/{{cookiecutter.project_name}}/tests/conftest.py +++ b/{{cookiecutter.project_name}}/tests/conftest.py @@ -5,7 +5,7 @@ import alembic.config import pytest from fastapi.testclient import TestClient from sqlalchemy import create_engine -from sqlalchemy.engine import Connection +from sqlalchemy.engine import Connection, Engine from sqlalchemy.engine.url import URL, make_url from sqlalchemy.exc import ProgrammingError @@ -15,7 +15,7 @@ from src.settings import settings warnings.filterwarnings("ignore", category=DeprecationWarning) -def get_engine(): +def get_engine() -> Engine: pg_db_url = make_url( URL( drivername=settings.db_driver, @@ -30,7 +30,7 @@ def get_engine(): return engine -def run_psql_without_transaction(command: str): +def run_psql_without_transaction(command: str) -> None: engine = get_engine() connection = engine.connect() connection.connection.set_isolation_level(0) @@ -40,7 +40,7 @@ def run_psql_without_transaction(command: str): @pytest.fixture(scope="session") -def create_database(): +def create_database() -> None: try: run_psql_without_transaction(f"CREATE DATABASE {settings.postgres_db}") except ProgrammingError: diff --git a/{{cookiecutter.project_name}}/tests/dummy_db_test.py b/{{cookiecutter.project_name}}/tests/dummy_db_test.py index 4c09785..89bb371 100644 --- a/{{cookiecutter.project_name}}/tests/dummy_db_test.py +++ b/{{cookiecutter.project_name}}/tests/dummy_db_test.py @@ -25,7 +25,7 @@ def test_delete_dummy_obj( ) -> None: with app_fixture as client: put_result = client.put( - f"/dummy_db_obj/", + "/dummy_db_obj/", json=test_conf.request_data["json"], ) assert put_result.status_code == 200 -- GitLab