csrd-utils 0.3.37__tar.gz → 0.3.39__tar.gz
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.
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/PKG-INFO +1 -1
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/pyproject.toml +1 -1
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/augmentor.py +15 -2
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/doctor.py +24 -12
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/generator.py +35 -3
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/templates/cookiecutter-service/hooks/post_gen_project.py +12 -12
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/Dockerfile +1 -1
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/README.md +1 -1
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/.gitignore +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/README.md +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/__init__.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/__main__.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/audit.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/cluster.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/conftest.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/manifest.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/requirements.fragment +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/settings.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/src/app/cache.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/tests/test_cache.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/conftest.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/manifest.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/requirements.fragment +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/settings.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/src/app/middleware/logging.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/tests/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/conftest.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/manifest.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/requirements.fragment +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/settings.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/src/app/middleware/metrics.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/tests/test_metrics_middleware.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/conftest.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/manifest.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/requirements.fragment +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/settings.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/src/app/middleware/tracing.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/tests/test_tracing_middleware.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/conftest.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/manifest.yaml +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/requirements.fragment +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/settings.fragment.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/src/app/workers/__init__.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/src/app/workers/celery_app.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/src/app/workers/tasks.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/tests/test_workers.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/fragments.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/resources.py +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/templates/cookiecutter-service/README.md +0 -0
- {csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/templates/cookiecutter-service/cookiecutter.json +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/.cookiecutterignore +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/.dockerignore +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/cache.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/delegates/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/delegates/upstreams.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/dependencies/delegates.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/dependencies/item_repository.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/dependencies/worker_broker.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/docker-compose.yml +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/middleware/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/middleware/logging.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/py.typed +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/pyproject.toml +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/repositories/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/repositories/item_repository.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/requirements.txt +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/settings.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/acceptance/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/conftest.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/test_items.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/unit/test_cache.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/unit/test_database_settings.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/unit/test_delegates.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/unit/test_settings_contracts.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}}/tests/unit/test_worker_broker.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/views/unversioned/items_view.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/workers/__init__.py +0 -0
- {csrd_utils-0.3.37/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}} → csrd_utils-0.3.39/src/csrd_utils/templates/cookiecutter-service}/{{cookiecutter.__service_name_snake}}/workers/tasks.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: csrd-utils
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.39
|
|
4
4
|
Summary: CLI utilities for csrd service generation and feature augmentation
|
|
5
5
|
Project-URL: Repository, https://github.com/csrd-api/fastapi-common
|
|
6
6
|
Project-URL: Documentation, https://github.com/csrd-api/fastapi-common/tree/main/packages/utils
|
|
@@ -39,14 +39,27 @@ class ServiceAugmentor:
|
|
|
39
39
|
|
|
40
40
|
@property
|
|
41
41
|
def _pkg_dir(self) -> Path:
|
|
42
|
-
"""Return the service package directory
|
|
42
|
+
"""Return the service package directory — src/ layout first, then flat."""
|
|
43
|
+
src_dir = self.service_root / "src"
|
|
44
|
+
if src_dir.is_dir():
|
|
45
|
+
candidate = next(
|
|
46
|
+
(
|
|
47
|
+
p
|
|
48
|
+
for p in src_dir.iterdir()
|
|
49
|
+
if p.is_dir() and not p.name.startswith(".") and (p / "__init__.py").is_file()
|
|
50
|
+
),
|
|
51
|
+
None,
|
|
52
|
+
)
|
|
53
|
+
if candidate is not None:
|
|
54
|
+
return candidate
|
|
55
|
+
# Flat layout fallback
|
|
43
56
|
candidate = next(
|
|
44
57
|
(
|
|
45
58
|
p
|
|
46
59
|
for p in self.service_root.iterdir()
|
|
47
60
|
if p.is_dir()
|
|
48
61
|
and not p.name.startswith(".")
|
|
49
|
-
and p.name
|
|
62
|
+
and p.name not in {"tests", "src"}
|
|
50
63
|
and (p / "__init__.py").is_file()
|
|
51
64
|
),
|
|
52
65
|
None,
|
|
@@ -37,18 +37,30 @@ def run_doctor(service_root: Path) -> DoctorReport:
|
|
|
37
37
|
if not any(path.is_file() for path in compose_candidates):
|
|
38
38
|
errors.append("Missing required file: docker-compose.yml")
|
|
39
39
|
|
|
40
|
-
# Find the service package dir
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
40
|
+
# Find the service package dir — check src/ layout first, then flat layout
|
|
41
|
+
src_dir = root / "src"
|
|
42
|
+
pkg_dir = None
|
|
43
|
+
if src_dir.is_dir():
|
|
44
|
+
pkg_dir = next(
|
|
45
|
+
(
|
|
46
|
+
p
|
|
47
|
+
for p in src_dir.iterdir()
|
|
48
|
+
if p.is_dir() and not p.name.startswith(".") and (p / "__init__.py").is_file()
|
|
49
|
+
),
|
|
50
|
+
None,
|
|
51
|
+
)
|
|
52
|
+
if pkg_dir is None:
|
|
53
|
+
pkg_dir = next(
|
|
54
|
+
(
|
|
55
|
+
p
|
|
56
|
+
for p in root.iterdir()
|
|
57
|
+
if p.is_dir()
|
|
58
|
+
and not p.name.startswith(".")
|
|
59
|
+
and p.name not in {"tests", "src"}
|
|
60
|
+
and (p / "__init__.py").is_file()
|
|
61
|
+
),
|
|
62
|
+
None,
|
|
63
|
+
)
|
|
52
64
|
|
|
53
65
|
marker_files: dict[str, str] = {}
|
|
54
66
|
if pkg_dir is not None:
|
|
@@ -66,8 +66,9 @@ def generate_service(
|
|
|
66
66
|
) -> Path:
|
|
67
67
|
"""Generate a service from the bundled cookiecutter-service template."""
|
|
68
68
|
output_root = output_dir.resolve()
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
src_dir = output_root / "src"
|
|
70
|
+
src_dir.mkdir(parents=True, exist_ok=True)
|
|
71
|
+
target = src_dir / name.replace("-", "_")
|
|
71
72
|
|
|
72
73
|
if target.exists() and any(target.iterdir()) and not overwrite_if_exists:
|
|
73
74
|
raise FileExistsError(
|
|
@@ -104,7 +105,7 @@ def generate_service(
|
|
|
104
105
|
str(template),
|
|
105
106
|
no_input=True,
|
|
106
107
|
extra_context=context,
|
|
107
|
-
output_dir=str(
|
|
108
|
+
output_dir=str(src_dir),
|
|
108
109
|
overwrite_if_exists=overwrite_if_exists,
|
|
109
110
|
)
|
|
110
111
|
finally:
|
|
@@ -118,4 +119,35 @@ def generate_service(
|
|
|
118
119
|
for pycache_dir in generated_path.rglob("__pycache__"):
|
|
119
120
|
shutil.rmtree(pycache_dir, ignore_errors=True)
|
|
120
121
|
|
|
122
|
+
# Move docker files to workspace root and update Dockerfile
|
|
123
|
+
_move_docker_files_to_workspace_root(generated_path, output_root, name)
|
|
124
|
+
|
|
121
125
|
return generated_path
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def _move_docker_files_to_workspace_root(
|
|
129
|
+
service_path: Path, workspace_root: Path, service_name: str
|
|
130
|
+
) -> None:
|
|
131
|
+
"""Move docker-compose.yml and Dockerfile to workspace root, updating paths in Dockerfile."""
|
|
132
|
+
service_name_snake = service_name.replace("-", "_")
|
|
133
|
+
|
|
134
|
+
# Move docker-compose.yml to workspace root (create if doesn't exist)
|
|
135
|
+
docker_compose_src = service_path / "docker-compose.yml"
|
|
136
|
+
docker_compose_dst = workspace_root / "docker-compose.yml"
|
|
137
|
+
if docker_compose_src.exists():
|
|
138
|
+
if not docker_compose_dst.exists():
|
|
139
|
+
shutil.copy2(docker_compose_src, docker_compose_dst)
|
|
140
|
+
docker_compose_src.unlink()
|
|
141
|
+
|
|
142
|
+
# Move Dockerfile to workspace root as Dockerfile.{service_name}
|
|
143
|
+
dockerfile_src = service_path / "Dockerfile"
|
|
144
|
+
dockerfile_dst = workspace_root / f"Dockerfile.{service_name}"
|
|
145
|
+
if dockerfile_src.exists():
|
|
146
|
+
# Read and update the Dockerfile to account for workspace root context
|
|
147
|
+
dockerfile_content = dockerfile_src.read_text()
|
|
148
|
+
# Update COPY . to COPY src/{service_name}/
|
|
149
|
+
dockerfile_content = dockerfile_content.replace(
|
|
150
|
+
"COPY . /app", f"COPY src/{service_name_snake} /app"
|
|
151
|
+
)
|
|
152
|
+
dockerfile_dst.write_text(dockerfile_content)
|
|
153
|
+
dockerfile_src.unlink()
|
|
@@ -31,32 +31,32 @@ def _prune_disabled_files() -> None:
|
|
|
31
31
|
path.rmdir()
|
|
32
32
|
|
|
33
33
|
if not HAS_DATABASE:
|
|
34
|
-
_unlink(
|
|
35
|
-
_unlink(
|
|
34
|
+
_unlink("dependencies/item_repository.py")
|
|
35
|
+
_unlink("repositories/item_repository.py")
|
|
36
36
|
_unlink("tests/unit/test_database_settings.py")
|
|
37
37
|
|
|
38
38
|
if not HAS_DELEGATES:
|
|
39
|
-
_unlink(
|
|
40
|
-
_unlink(
|
|
39
|
+
_unlink("dependencies/delegates.py")
|
|
40
|
+
_unlink("delegates/upstreams.py")
|
|
41
41
|
_unlink("tests/unit/test_delegates.py")
|
|
42
42
|
|
|
43
43
|
if not HAS_WORKERS:
|
|
44
|
-
_unlink(
|
|
45
|
-
_unlink(
|
|
44
|
+
_unlink("dependencies/worker_broker.py")
|
|
45
|
+
_unlink("workers/tasks.py")
|
|
46
46
|
_unlink("tests/unit/test_worker_broker.py")
|
|
47
47
|
|
|
48
48
|
if not HAS_CACHING:
|
|
49
|
-
_unlink(
|
|
49
|
+
_unlink("cache.py")
|
|
50
50
|
_unlink("tests/unit/test_cache.py")
|
|
51
51
|
|
|
52
52
|
if not HAS_STRUCTURED_LOGGING:
|
|
53
|
-
_unlink(
|
|
53
|
+
_unlink("middleware/logging.py")
|
|
54
54
|
_unlink("tests/acceptance/test_logging_middleware.py")
|
|
55
55
|
|
|
56
|
-
_rmdir_if_empty(
|
|
57
|
-
_rmdir_if_empty(
|
|
58
|
-
_rmdir_if_empty(
|
|
59
|
-
_rmdir_if_empty(
|
|
56
|
+
_rmdir_if_empty("repositories")
|
|
57
|
+
_rmdir_if_empty("delegates")
|
|
58
|
+
_rmdir_if_empty("workers")
|
|
59
|
+
_rmdir_if_empty("middleware")
|
|
60
60
|
_rmdir_if_empty("tests/unit")
|
|
61
61
|
_rmdir_if_empty("tests/acceptance")
|
|
62
62
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
## Run locally
|
|
25
25
|
|
|
26
26
|
```bash
|
|
27
|
-
uvicorn {{cookiecutter.__service_name_snake}}:build_app --factory --reload --port {{ cookiecutter.port }}
|
|
27
|
+
PYTHONPATH=src uvicorn {{cookiecutter.__service_name_snake}}:build_app --factory --reload --port {{ cookiecutter.port }}
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
## Run with compose
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/caching/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/logging/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/metrics/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/tracing/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/settings.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/src/app/workers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/src/app/workers/tasks.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/features/workers/tests/test_workers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.37 → csrd_utils-0.3.39}/src/csrd_utils/templates/cookiecutter-service/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|