diff --git a/hooks/post_gen_project.py b/hooks/post_gen_project.py index 9bfbf598a49f5db7c535c381d3c9a7c4cc4545ed..50362903dda46f834c7ab0cfe6dfba323e82eb57 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 74f121061069c8ef73d40769b82398a872272f09..1fff6784600ec3616cf1dff2c20a3b9ad74a28d3 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 0000000000000000000000000000000000000000..5169557df8bcbaa31cd23c828c1f3fee0ad96294 --- /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 cf115711f5c036ec799fe7055ee6ab6c4a57a37c..0000000000000000000000000000000000000000 --- 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 59ac1cbd7227e5b566da3cb8a0d469558d0a56a1..c56950255b9a11e339794ccdb78719b64b74198d 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 9513830e95a6a5b1ffffd638c209f10589ad3fea..a41373d4bdb7c1b1e9a58d1b70e50b0e69a71c89 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 4c097857803125ff4b8851e0b7a48d813a83bc72..89bb371e221af8615cc5e67167a0f52f0763b12d 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