csrd-utils 0.3.49__tar.gz → 0.3.51__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.49 → csrd_utils-0.3.51}/PKG-INFO +1 -1
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/pyproject.toml +1 -1
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/generator.py +18 -11
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/.gitignore +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/README.md +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/__main__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/audit.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/augmentor.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/cluster.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/doctor.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/conftest.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/manifest.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/requirements.fragment +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/settings.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/src/app/cache.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/tests/test_cache.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/conftest.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/manifest.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/requirements.fragment +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/settings.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/src/app/middleware/logging.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/tests/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/conftest.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/manifest.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/requirements.fragment +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/settings.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/src/app/middleware/metrics.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/tests/test_metrics_middleware.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/conftest.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/manifest.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/requirements.fragment +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/settings.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/src/app/middleware/tracing.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/tests/test_tracing_middleware.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/conftest.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/manifest.yaml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/requirements.fragment +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/settings.fragment.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/src/app/workers/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/src/app/workers/celery_app.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/src/app/workers/tasks.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/tests/test_workers.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/fragments.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/resources.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/README.md +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/cookiecutter.json +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/hooks/post_gen_project.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/.cookiecutterignore +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/.dockerignore +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/Dockerfile +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/README.md +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/cache.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/delegates/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/delegates/upstreams.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/delegates.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/item_repository.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/dependencies/worker_broker.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/docker-compose.yml +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/middleware/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/middleware/logging.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/py.typed +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/repositories/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/repositories/item_repository.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/requirements.txt +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/settings.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/acceptance/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/conftest.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/test_items.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_cache.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_database_settings.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_delegates.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_settings_contracts.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/tests/unit/test_worker_broker.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/health_view.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/views/unversioned/items_view.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.__service_name_snake}}/workers/__init__.py +0 -0
- {csrd_utils-0.3.49 → csrd_utils-0.3.51}/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.51
|
|
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
|
|
@@ -15,7 +15,7 @@ requires = ["hatchling"]
|
|
|
15
15
|
build-backend = "hatchling.build"
|
|
16
16
|
|
|
17
17
|
[project]
|
|
18
|
-
name = "
|
|
18
|
+
name = "__WORKSPACE_NAME__"
|
|
19
19
|
version = "0.1.0"
|
|
20
20
|
description = "Multi-service workspace"
|
|
21
21
|
readme = "README.md"
|
|
@@ -77,26 +77,29 @@ _WORKSPACE_README = """\
|
|
|
77
77
|
|
|
78
78
|
Generated workspace with one or more microservices.
|
|
79
79
|
|
|
80
|
+
## Setup
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
uv sync
|
|
84
|
+
```
|
|
85
|
+
|
|
80
86
|
## Run tests
|
|
81
87
|
|
|
82
88
|
From the workspace root, run all tests:
|
|
83
89
|
|
|
84
90
|
```bash
|
|
85
|
-
pytest
|
|
91
|
+
uv run pytest
|
|
86
92
|
```
|
|
87
93
|
|
|
88
94
|
Run tests for a specific service:
|
|
89
95
|
|
|
90
96
|
```bash
|
|
91
|
-
pytest tests/unit/{service_name}
|
|
92
|
-
pytest tests/acceptance/{service_name}
|
|
97
|
+
uv run pytest tests/unit/{service_name}
|
|
98
|
+
uv run pytest tests/acceptance/{service_name}
|
|
93
99
|
```
|
|
94
100
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
ptw
|
|
99
|
-
```
|
|
101
|
+
> **Note:** Always use `uv run pytest` (not bare `pytest`) to ensure the
|
|
102
|
+
> workspace virtualenv and its dependencies (e.g. `pytest-asyncio`) are used.
|
|
100
103
|
|
|
101
104
|
## Run services
|
|
102
105
|
|
|
@@ -316,15 +319,19 @@ def _write_workspace_pyproject(workspace_root: Path) -> None:
|
|
|
316
319
|
only writes if the file doesn't exist or lacks [project] section (user customization).
|
|
317
320
|
"""
|
|
318
321
|
dst = workspace_root / "pyproject.toml"
|
|
322
|
+
project_name = workspace_root.name or "workspace"
|
|
323
|
+
rendered_pyproject = _WORKSPACE_PYPROJECT_BASE.replace(
|
|
324
|
+
'name = "__WORKSPACE_NAME__"', f'name = "{project_name}"', 1
|
|
325
|
+
)
|
|
319
326
|
if dst.exists():
|
|
320
327
|
existing = dst.read_text(encoding="utf-8")
|
|
321
328
|
# If user already has a [project] section, assume they customized it
|
|
322
329
|
if "[project]" in existing:
|
|
323
330
|
return
|
|
324
331
|
# Otherwise write the full base config
|
|
325
|
-
dst.write_text(
|
|
332
|
+
dst.write_text(rendered_pyproject, encoding="utf-8")
|
|
326
333
|
else:
|
|
327
|
-
dst.write_text(
|
|
334
|
+
dst.write_text(rendered_pyproject, encoding="utf-8")
|
|
328
335
|
|
|
329
336
|
|
|
330
337
|
def _write_workspace_readme(workspace_root: Path) -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/caching/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/logging/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/metrics/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/tracing/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/settings.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/src/app/workers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/src/app/workers/tasks.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/src/csrd_utils/features/workers/tests/test_workers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.49 → csrd_utils-0.3.51}/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
|
|
File without changes
|
|
File without changes
|