csrd-utils 0.3.23__tar.gz → 0.3.24__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.23 → csrd_utils-0.3.24}/PKG-INFO +5 -5
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/README.md +4 -4
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/pyproject.toml +1 -1
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/README.md +4 -4
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/.gitignore +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/__main__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/audit.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/augmentor.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/cluster.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/doctor.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/conftest.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/manifest.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/requirements.fragment +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/settings.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/src/app/cache.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/tests/test_cache.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/conftest.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/manifest.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/requirements.fragment +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/settings.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/src/app/middleware/logging.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/tests/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/conftest.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/manifest.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/requirements.fragment +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/settings.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/src/app/middleware/metrics.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/tests/test_metrics_middleware.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/conftest.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/manifest.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/requirements.fragment +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/settings.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/src/app/middleware/tracing.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/tests/test_tracing_middleware.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/conftest.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/docker-compose.fragment.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/manifest.yaml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/requirements.fragment +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/settings.fragment.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/celery_app.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/tasks.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/tests/test_workers.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/fragments.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/generator.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/resources.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/cookiecutter.json +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/hooks/post_gen_project.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.dockerignore +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.env.example +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.gitignore +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/Dockerfile +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/README.md +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/docker-compose.yml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/pyproject.toml +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/requirements.txt +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/cache.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/delegates/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/delegates/upstreams.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/dependencies/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/dependencies/delegates.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/dependencies/item_repository.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/dependencies/worker_broker.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/middleware/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/middleware/logging.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/py.typed +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/repositories/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/repositories/item_repository.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/settings.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/views/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/views/unversioned/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/views/unversioned/health_view.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/views/unversioned/items_view.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/workers/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/src/app/workers/tasks.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/__init__.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/acceptance/test_logging_middleware.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/conftest.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/test_items.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/unit/test_cache.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/unit/test_database_settings.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/unit/test_delegates.py +0 -0
- {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/unit/test_worker_broker.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.24
|
|
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
|
|
@@ -44,16 +44,16 @@ csrd audit --service . # explicitly audit one servi
|
|
|
44
44
|
|
|
45
45
|
`feature plan --json` is useful for CI or tooling wrappers.
|
|
46
46
|
|
|
47
|
-
###
|
|
47
|
+
### Workspace extraction command
|
|
48
48
|
|
|
49
|
-
Service extraction into a sibling workspace is
|
|
49
|
+
Service extraction into a sibling workspace is supported:
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --mode copy
|
|
53
|
+
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --mode move
|
|
54
|
+
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --dry-run --json
|
|
53
55
|
```
|
|
54
56
|
|
|
55
|
-
Until that lands, follow `docs/SERVICE_EXTRACTION_PLAYBOOK.md` for the current manual workflow.
|
|
56
|
-
|
|
57
57
|
### Interactive generation behavior
|
|
58
58
|
|
|
59
59
|
- `csrd new service` and `csrd new cluster` are workspace-first commands.
|
|
@@ -31,16 +31,16 @@ csrd audit --service . # explicitly audit one servi
|
|
|
31
31
|
|
|
32
32
|
`feature plan --json` is useful for CI or tooling wrappers.
|
|
33
33
|
|
|
34
|
-
###
|
|
34
|
+
### Workspace extraction command
|
|
35
35
|
|
|
36
|
-
Service extraction into a sibling workspace is
|
|
36
|
+
Service extraction into a sibling workspace is supported:
|
|
37
37
|
|
|
38
38
|
```bash
|
|
39
39
|
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --mode copy
|
|
40
|
+
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --mode move
|
|
41
|
+
csrd workspace extract-service --service ./source-ws/src/pricing --target-workspace ../pricing-ws --dry-run --json
|
|
40
42
|
```
|
|
41
43
|
|
|
42
|
-
Until that lands, follow `docs/SERVICE_EXTRACTION_PLAYBOOK.md` for the current manual workflow.
|
|
43
|
-
|
|
44
44
|
### Interactive generation behavior
|
|
45
45
|
|
|
46
46
|
- `csrd new service` and `csrd new cluster` are workspace-first commands.
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/README.md
RENAMED
|
@@ -5,7 +5,7 @@ Generate a FastAPI service with composable feature toggles (database, delegates,
|
|
|
5
5
|
## Generate a service
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
uvx cookiecutter . --directory
|
|
8
|
+
uvx cookiecutter . --directory packages/utils/src/csrd_utils/templates/cookiecutter-service
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
Key prompts:
|
|
@@ -31,18 +31,18 @@ Key prompts:
|
|
|
31
31
|
|
|
32
32
|
```bash
|
|
33
33
|
# DB-only SQLite service
|
|
34
|
-
uvx cookiecutter . --directory
|
|
34
|
+
uvx cookiecutter . --directory packages/utils/src/csrd_utils/templates/cookiecutter-service \
|
|
35
35
|
--no-input service_name=inventory has_database=true database=sqlite \
|
|
36
36
|
has_delegates=false has_workers=false has_caching=false
|
|
37
37
|
|
|
38
38
|
# Postgres + delegates + caching
|
|
39
|
-
uvx cookiecutter . --directory
|
|
39
|
+
uvx cookiecutter . --directory packages/utils/src/csrd_utils/templates/cookiecutter-service \
|
|
40
40
|
--no-input service_name=pricing has_database=true database=postgres \
|
|
41
41
|
has_delegates=true upstreams=http://inventory:8081 \
|
|
42
42
|
has_workers=false has_caching=true
|
|
43
43
|
|
|
44
44
|
# Worker-focused service with RabbitMQ and no DB
|
|
45
|
-
uvx cookiecutter . --directory
|
|
45
|
+
uvx cookiecutter . --directory packages/utils/src/csrd_utils/templates/cookiecutter-service \
|
|
46
46
|
--no-input service_name=jobs has_database=false has_workers=true broker=rabbitmq \
|
|
47
47
|
has_delegates=false has_caching=false
|
|
48
48
|
```
|
|
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.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/conftest.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/settings.fragment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/conftest.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/docker-compose.fragment.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/requirements.fragment
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/settings.fragment.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/tasks.py
RENAMED
|
File without changes
|
{csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/tests/test_workers.py
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|