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.
Files changed (87) hide show
  1. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/PKG-INFO +5 -5
  2. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/README.md +4 -4
  3. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/pyproject.toml +1 -1
  4. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/README.md +4 -4
  5. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/.gitignore +0 -0
  6. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/__init__.py +0 -0
  7. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/__main__.py +0 -0
  8. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/audit.py +0 -0
  9. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/augmentor.py +0 -0
  10. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/cluster.py +0 -0
  11. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/doctor.py +0 -0
  12. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/conftest.fragment.py +0 -0
  13. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/docker-compose.fragment.yaml +0 -0
  14. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/manifest.yaml +0 -0
  15. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/requirements.fragment +0 -0
  16. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/settings.fragment.py +0 -0
  17. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/src/app/cache.py +0 -0
  18. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/caching/tests/test_cache.py +0 -0
  19. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/conftest.fragment.py +0 -0
  20. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/manifest.yaml +0 -0
  21. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/requirements.fragment +0 -0
  22. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/settings.fragment.py +0 -0
  23. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/src/app/middleware/logging.py +0 -0
  24. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/logging/tests/test_logging_middleware.py +0 -0
  25. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/conftest.fragment.py +0 -0
  26. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/docker-compose.fragment.yaml +0 -0
  27. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/manifest.yaml +0 -0
  28. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/requirements.fragment +0 -0
  29. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/settings.fragment.py +0 -0
  30. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/src/app/middleware/metrics.py +0 -0
  31. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/metrics/tests/test_metrics_middleware.py +0 -0
  32. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/conftest.fragment.py +0 -0
  33. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/manifest.yaml +0 -0
  34. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/requirements.fragment +0 -0
  35. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/settings.fragment.py +0 -0
  36. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/src/app/middleware/tracing.py +0 -0
  37. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/tracing/tests/test_tracing_middleware.py +0 -0
  38. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/conftest.fragment.py +0 -0
  39. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/docker-compose.fragment.yaml +0 -0
  40. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/manifest.yaml +0 -0
  41. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/requirements.fragment +0 -0
  42. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/settings.fragment.py +0 -0
  43. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/__init__.py +0 -0
  44. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/celery_app.py +0 -0
  45. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/src/app/workers/tasks.py +0 -0
  46. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/features/workers/tests/test_workers.py +0 -0
  47. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/fragments.py +0 -0
  48. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/generator.py +0 -0
  49. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/resources.py +0 -0
  50. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/cookiecutter.json +0 -0
  51. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/hooks/post_gen_project.py +0 -0
  52. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.dockerignore +0 -0
  53. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.env.example +0 -0
  54. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/.gitignore +0 -0
  55. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/Dockerfile +0 -0
  56. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/README.md +0 -0
  57. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/docker-compose.yml +0 -0
  58. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/pyproject.toml +0 -0
  59. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/requirements.txt +0 -0
  60. {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
  61. {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
  62. {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
  63. {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
  64. {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
  65. {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
  66. {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
  67. {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
  68. {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
  69. {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
  70. {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
  71. {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
  72. {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
  73. {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
  74. {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
  75. {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
  76. {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
  77. {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
  78. {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
  79. {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
  80. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/__init__.py +0 -0
  81. {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
  82. {csrd_utils-0.3.23 → csrd_utils-0.3.24}/src/csrd_utils/templates/cookiecutter-service/{{cookiecutter.service_name}}/tests/conftest.py +0 -0
  83. {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
  84. {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
  85. {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
  86. {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
  87. {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.23
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
- ### Planned: workspace extraction command
47
+ ### Workspace extraction command
48
48
 
49
- Service extraction into a sibling workspace is planned as a future command:
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
- ### Planned: workspace extraction command
34
+ ### Workspace extraction command
35
35
 
36
- Service extraction into a sibling workspace is planned as a future command:
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.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "csrd-utils"
3
- version = "0.3.23"
3
+ version = "0.3.24"
4
4
  description = "CLI utilities for csrd service generation and feature augmentation"
5
5
  license = { text = "MIT" }
6
6
  requires-python = ">=3.12"
@@ -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 starters/cookiecutter-service
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 starters/cookiecutter-service \
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 starters/cookiecutter-service \
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 starters/cookiecutter-service \
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