fast-clean-architecture 1.1.0__tar.gz → 1.1.2__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.
- fast_clean_architecture-1.1.2/.pre-commit-config.yaml +105 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/PKG-INFO +124 -67
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/README.md +123 -66
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/CHANGELOG.md +52 -2
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/__init__.py +2 -2
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/cli.py +18 -13
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/validation_config.py +3 -3
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fca_config.yaml +111 -3
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/pyproject.toml +1 -1
- fast_clean_architecture-1.1.2/systems/__init__.py +3 -0
- fast_clean_architecture-1.1.0/.pre-commit-config.yaml +0 -17
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/.gitignore +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/LICENSE +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/CODE_OF_CONDUCT.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/CONTRIBUTING.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/DEPENDENCY_INJECTION_GUIDE.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/ENHANCED_TYPE_SAFETY.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/TEMPLATE_VALIDATION_REFACTOR.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/getting-started.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/template_validation_guide.md +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/examples/components_spec.yaml +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/examples/error_handling_examples.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/analytics.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/config.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/error_tracking.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/exceptions.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/__init__.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/component_generator.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/config_updater.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/generator_factory.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/package_generator.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/template_validator.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/generators/validation_metrics.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/health.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/logging_config.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/metrics.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/protocols.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/__init__.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/__init__.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/api.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/command.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/entity.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/external.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/infrastructure_repository.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/model.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/query.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/repository.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/schemas.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/service.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/templates/value_object.py.j2 +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/utils.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/validation.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/poetry.lock +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/requirements-dev.txt +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/requirements.txt +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/__init__.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/conftest.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_cli.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_component_generator.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_config.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_cross_platform_compatibility.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_enhanced_type_safety.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_generator_factory.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_integration.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_security.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_symlink_security.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_template_security.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_template_validation.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_utils.py +0 -0
- {fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/update-requirements.sh +0 -0
@@ -0,0 +1,105 @@
|
|
1
|
+
repos:
|
2
|
+
# Dependency Management (Current)
|
3
|
+
- repo: local
|
4
|
+
hooks:
|
5
|
+
- id: export-requirements
|
6
|
+
name: Export requirements.txt
|
7
|
+
entry: poetry export -f requirements.txt --output requirements.txt
|
8
|
+
language: system
|
9
|
+
files: pyproject.toml
|
10
|
+
pass_filenames: false
|
11
|
+
stages: [commit]
|
12
|
+
- id: export-dev-requirements
|
13
|
+
name: Export dev requirements.txt
|
14
|
+
entry: poetry export -f requirements.txt --output requirements-dev.txt --extras dev
|
15
|
+
language: system
|
16
|
+
files: pyproject.toml
|
17
|
+
pass_filenames: false
|
18
|
+
stages: [commit]
|
19
|
+
|
20
|
+
# Code Formatting
|
21
|
+
- repo: https://github.com/psf/black
|
22
|
+
rev: 23.12.1
|
23
|
+
hooks:
|
24
|
+
- id: black
|
25
|
+
name: Format code with Black
|
26
|
+
language_version: python3
|
27
|
+
types: [python]
|
28
|
+
|
29
|
+
- repo: https://github.com/pycqa/isort
|
30
|
+
rev: 5.13.2
|
31
|
+
hooks:
|
32
|
+
- id: isort
|
33
|
+
name: Sort imports with isort
|
34
|
+
args: ["--profile", "black"]
|
35
|
+
types: [python]
|
36
|
+
|
37
|
+
# Code Quality & Linting
|
38
|
+
- repo: https://github.com/pycqa/flake8
|
39
|
+
rev: 7.0.0
|
40
|
+
hooks:
|
41
|
+
- id: flake8
|
42
|
+
name: Lint with flake8
|
43
|
+
args: ["--max-line-length=88", "--extend-ignore=E203,W503"]
|
44
|
+
types: [python]
|
45
|
+
|
46
|
+
# Type Checking
|
47
|
+
- repo: https://github.com/pre-commit/mirrors-mypy
|
48
|
+
rev: v1.8.0
|
49
|
+
hooks:
|
50
|
+
- id: mypy
|
51
|
+
name: Type check with mypy
|
52
|
+
additional_dependencies: [types-all]
|
53
|
+
args: ["--ignore-missing-imports"]
|
54
|
+
types: [python]
|
55
|
+
|
56
|
+
# Security Scanning
|
57
|
+
- repo: https://github.com/pycqa/bandit
|
58
|
+
rev: 1.7.5
|
59
|
+
hooks:
|
60
|
+
- id: bandit
|
61
|
+
name: Security scan with bandit
|
62
|
+
args: ["-r", "fast_clean_architecture"]
|
63
|
+
types: [python]
|
64
|
+
|
65
|
+
# General Code Quality
|
66
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
67
|
+
rev: v4.5.0
|
68
|
+
hooks:
|
69
|
+
- id: trailing-whitespace
|
70
|
+
name: Remove trailing whitespace
|
71
|
+
- id: end-of-file-fixer
|
72
|
+
name: Fix end of files
|
73
|
+
- id: check-yaml
|
74
|
+
name: Check YAML syntax
|
75
|
+
- id: check-toml
|
76
|
+
name: Check TOML syntax
|
77
|
+
- id: check-json
|
78
|
+
name: Check JSON syntax
|
79
|
+
- id: check-merge-conflict
|
80
|
+
name: Check for merge conflicts
|
81
|
+
- id: check-added-large-files
|
82
|
+
name: Check for large files
|
83
|
+
args: ['--maxkb=500']
|
84
|
+
- id: debug-statements
|
85
|
+
name: Check for debug statements
|
86
|
+
types: [python]
|
87
|
+
|
88
|
+
# Documentation
|
89
|
+
- repo: https://github.com/pycqa/pydocstyle
|
90
|
+
rev: 6.3.0
|
91
|
+
hooks:
|
92
|
+
- id: pydocstyle
|
93
|
+
name: Check docstring style
|
94
|
+
args: ["--convention=google"]
|
95
|
+
types: [python]
|
96
|
+
|
97
|
+
# Dependency Security
|
98
|
+
- repo: local
|
99
|
+
hooks:
|
100
|
+
- id: safety-check
|
101
|
+
name: Check dependencies for security vulnerabilities
|
102
|
+
entry: poetry run safety check
|
103
|
+
language: system
|
104
|
+
pass_filenames: false
|
105
|
+
stages: [commit]
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: fast-clean-architecture
|
3
|
-
Version: 1.1.
|
3
|
+
Version: 1.1.2
|
4
4
|
Summary: CLI tool for scaffolding clean architecture in FastAPI projects
|
5
5
|
Project-URL: Homepage, https://github.com/alden-technologies/fast-clean-architecture
|
6
6
|
Project-URL: Repository, https://github.com/alden-technologies/fast-clean-architecture
|
@@ -37,7 +37,7 @@ Description-Content-Type: text/markdown
|
|
37
37
|
|
38
38
|
# Fast Clean Architecture
|
39
39
|
|
40
|
-
[](https://www.python.org/downloads/)
|
41
41
|
[](https://opensource.org/licenses/MIT)
|
42
42
|
[](https://github.com/psf/black)
|
43
43
|
|
@@ -50,7 +50,10 @@ A powerful CLI tool for scaffolding clean architecture in FastAPI projects. Gene
|
|
50
50
|
- **Code Generation**: Automated scaffolding for entities, repositories, services, and more
|
51
51
|
- **Template System**: Customizable Jinja2 templates for code generation
|
52
52
|
- **Type Safety**: Full type hints and Pydantic validation
|
53
|
-
- **Modern Python**: Built for Python 3.
|
53
|
+
- **Modern Python**: Built for Python 3.9+ with async/await support
|
54
|
+
- **Analytics & Monitoring**: Built-in usage analytics, error tracking, and health monitoring
|
55
|
+
- **Security Features**: Template validation, input sanitization, and secure file operations
|
56
|
+
- **Batch Operations**: Create multiple components from YAML specifications
|
54
57
|
- **CLI Interface**: Intuitive command-line interface with rich output
|
55
58
|
- **Configuration Management**: YAML-based project configuration with versioning
|
56
59
|
|
@@ -68,52 +71,6 @@ pip install fast-clean-architecture
|
|
68
71
|
poetry add fast-clean-architecture
|
69
72
|
```
|
70
73
|
|
71
|
-
### From Source
|
72
|
-
|
73
|
-
#### Using Poetry (Recommended)
|
74
|
-
```bash
|
75
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
76
|
-
cd fast-clean-architecture
|
77
|
-
poetry install
|
78
|
-
```
|
79
|
-
|
80
|
-
#### Using pip with requirements.txt
|
81
|
-
```bash
|
82
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
83
|
-
cd fast-clean-architecture
|
84
|
-
pip install -r requirements.txt
|
85
|
-
```
|
86
|
-
|
87
|
-
#### Using pip (editable install)
|
88
|
-
```bash
|
89
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
90
|
-
cd fast-clean-architecture
|
91
|
-
pip install -e .
|
92
|
-
```
|
93
|
-
|
94
|
-
### Development Installation
|
95
|
-
|
96
|
-
#### Using Poetry (Recommended)
|
97
|
-
```bash
|
98
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
99
|
-
cd fast-clean-architecture
|
100
|
-
poetry install --extras dev
|
101
|
-
```
|
102
|
-
|
103
|
-
#### Using pip with dev requirements
|
104
|
-
```bash
|
105
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
106
|
-
cd fast-clean-architecture
|
107
|
-
pip install -r requirements-dev.txt
|
108
|
-
```
|
109
|
-
|
110
|
-
#### Using pip (editable install with dev dependencies)
|
111
|
-
```bash
|
112
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
113
|
-
cd fast-clean-architecture
|
114
|
-
pip install -e ".[dev]"
|
115
|
-
```
|
116
|
-
|
117
74
|
**Note**: This project uses Poetry for dependency management. The `requirements.txt` and `requirements-dev.txt` files are provided for convenience and compatibility with pip-based workflows.
|
118
75
|
|
119
76
|
## 🏗️ Architecture Overview
|
@@ -147,7 +104,7 @@ Fast Clean Architecture follows the clean architecture pattern with these layers
|
|
147
104
|
|
148
105
|
**Important**: This tool is designed to scaffold clean architecture components for FastAPI projects. You should have:
|
149
106
|
|
150
|
-
- **Python 3.
|
107
|
+
- **Python 3.9+** installed on your system
|
151
108
|
- **Basic understanding of FastAPI** and web API development
|
152
109
|
- **Familiarity with clean architecture principles** (recommended but not required)
|
153
110
|
- **A new or existing directory** where you want to create your FastAPI project structure
|
@@ -316,19 +273,47 @@ Your API will be available at `http://localhost:8000` with automatic documentati
|
|
316
273
|
| **Presentation** | `api` | FastAPI routers and endpoints |
|
317
274
|
| | `schemas` | Pydantic request/response schemas |
|
318
275
|
|
319
|
-
### CLI
|
276
|
+
### CLI Commands
|
277
|
+
|
278
|
+
#### Core Commands
|
279
|
+
```bash
|
280
|
+
# Project initialization
|
281
|
+
fca-scaffold init # Initialize new project
|
282
|
+
fca-scaffold create-system-context # Create system (bounded context)
|
283
|
+
fca-scaffold create-module # Create module within system
|
284
|
+
fca-scaffold create-component # Create individual components
|
285
|
+
```
|
286
|
+
|
287
|
+
#### Batch Operations
|
288
|
+
```bash
|
289
|
+
# Create multiple components from YAML specification
|
290
|
+
fca-scaffold batch-create components_spec.yaml
|
291
|
+
fca-scaffold batch-create my-spec.yaml --dry-run # Preview only
|
292
|
+
```
|
320
293
|
|
294
|
+
#### Project Management
|
321
295
|
```bash
|
322
|
-
#
|
323
|
-
fca-scaffold
|
324
|
-
fca-scaffold
|
325
|
-
fca-scaffold
|
326
|
-
fca-scaffold
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
296
|
+
# Project status and configuration
|
297
|
+
fca-scaffold status # Show project overview
|
298
|
+
fca-scaffold config show # Display configuration
|
299
|
+
fca-scaffold config validate # Validate configuration
|
300
|
+
fca-scaffold system-status # Show system health and analytics
|
301
|
+
```
|
302
|
+
|
303
|
+
#### Help and Information
|
304
|
+
```bash
|
305
|
+
# Get help and version info
|
306
|
+
fca-scaffold version # Show version information
|
307
|
+
fca-scaffold --help # General help
|
308
|
+
```
|
309
|
+
|
310
|
+
#### Global Options
|
311
|
+
```bash
|
312
|
+
# Available for most commands
|
313
|
+
--dry-run # Preview changes without writing files
|
314
|
+
--force # Overwrite existing files
|
315
|
+
--verbose # Detailed output
|
316
|
+
--config # Specify custom config file
|
332
317
|
```
|
333
318
|
|
334
319
|
### Configuration File
|
@@ -362,6 +347,71 @@ project:
|
|
362
347
|
api: ["user"]
|
363
348
|
```
|
364
349
|
|
350
|
+
## 📊 Batch Component Creation
|
351
|
+
|
352
|
+
### YAML Specification Format
|
353
|
+
|
354
|
+
Create multiple components efficiently using YAML specifications:
|
355
|
+
|
356
|
+
```yaml
|
357
|
+
# components_spec.yaml
|
358
|
+
systems:
|
359
|
+
- name: admin
|
360
|
+
description: "Admin management system"
|
361
|
+
modules:
|
362
|
+
- name: authentication
|
363
|
+
description: "Admin authentication module"
|
364
|
+
components:
|
365
|
+
domain:
|
366
|
+
entities: [AdminUser, AdminRole]
|
367
|
+
value_objects: [AdminEmail, AdminPassword]
|
368
|
+
repositories: [AdminUserRepository]
|
369
|
+
application:
|
370
|
+
services: [AdminAuthService]
|
371
|
+
commands: [CreateAdminUser, UpdateAdminUser]
|
372
|
+
queries: [GetAdminUser, ListAdminUsers]
|
373
|
+
infrastructure:
|
374
|
+
repositories: [AdminUserRepository]
|
375
|
+
models: [AdminUserModel]
|
376
|
+
external: [AdminEmailService]
|
377
|
+
presentation:
|
378
|
+
api: [AdminAuthRouter]
|
379
|
+
schemas: [AdminUserSchema, AdminAuthSchema]
|
380
|
+
```
|
381
|
+
|
382
|
+
### Usage
|
383
|
+
|
384
|
+
```bash
|
385
|
+
# Create all components from specification
|
386
|
+
fca-scaffold batch-create components_spec.yaml
|
387
|
+
|
388
|
+
# Preview what would be created
|
389
|
+
fca-scaffold batch-create components_spec.yaml --dry-run
|
390
|
+
|
391
|
+
# Force overwrite existing files
|
392
|
+
fca-scaffold batch-create components_spec.yaml --force
|
393
|
+
```
|
394
|
+
|
395
|
+
## 📊 System Monitoring
|
396
|
+
|
397
|
+
### Health and Analytics
|
398
|
+
|
399
|
+
Fast Clean Architecture includes built-in monitoring capabilities:
|
400
|
+
|
401
|
+
```bash
|
402
|
+
# View system health and usage analytics
|
403
|
+
fca-scaffold system-status
|
404
|
+
|
405
|
+
# Detailed system information
|
406
|
+
fca-scaffold system-status --verbose
|
407
|
+
```
|
408
|
+
|
409
|
+
**Features:**
|
410
|
+
- **Usage Analytics**: Track command usage and component creation patterns
|
411
|
+
- **Error Tracking**: Monitor and log errors with detailed context
|
412
|
+
- **Health Monitoring**: System resource usage and performance metrics
|
413
|
+
- **Security Monitoring**: Template validation and input sanitization tracking
|
414
|
+
|
365
415
|
## 🎨 Customization
|
366
416
|
|
367
417
|
### Custom Templates
|
@@ -433,9 +483,7 @@ pytest -v
|
|
433
483
|
```bash
|
434
484
|
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
435
485
|
cd fast-clean-architecture
|
436
|
-
|
437
|
-
source venv/bin/activate # On Windows: venv\Scripts\activate
|
438
|
-
pip install -e ".[dev]"
|
486
|
+
poetry install --with dev
|
439
487
|
```
|
440
488
|
|
441
489
|
### Code Quality
|
@@ -457,11 +505,20 @@ bandit -r fast_clean_architecture
|
|
457
505
|
safety check
|
458
506
|
```
|
459
507
|
|
508
|
+
### Security Updates
|
509
|
+
|
510
|
+
This project maintains up-to-date dependencies with security patches:
|
511
|
+
|
512
|
+
- **Black 24.3.0+**: Fixes CVE-2024-21503 (ReDoS vulnerability)
|
513
|
+
- **Pip 25.0+**: Fixes PVE-2025-75180 (malicious wheel execution)
|
514
|
+
- **Setuptools 78.1.1+**: Fixes CVE-2025-47273 (path traversal vulnerability)
|
515
|
+
|
516
|
+
All dependencies are pinned with SHA256 hashes for supply chain security.
|
517
|
+
|
460
518
|
### Pre-commit Hooks
|
461
519
|
|
462
520
|
```bash
|
463
|
-
|
464
|
-
pre-commit install
|
521
|
+
poetry run pre-commit install
|
465
522
|
```
|
466
523
|
|
467
524
|
## 📖 Examples
|
@@ -548,4 +605,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
548
605
|
|
549
606
|
---
|
550
607
|
|
551
|
-
**Made with ❤️ by [Alden Technologies](https://aldentechnologies.com)**
|
608
|
+
**Made with ❤️ by [Adegbenga Agoro](https://www.adegbengaagoro.co), [Founder of Alden Technologies](https://www.aldentechnologies.com)**
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# Fast Clean Architecture
|
2
2
|
|
3
|
-
[](https://www.python.org/downloads/)
|
4
4
|
[](https://opensource.org/licenses/MIT)
|
5
5
|
[](https://github.com/psf/black)
|
6
6
|
|
@@ -13,7 +13,10 @@ A powerful CLI tool for scaffolding clean architecture in FastAPI projects. Gene
|
|
13
13
|
- **Code Generation**: Automated scaffolding for entities, repositories, services, and more
|
14
14
|
- **Template System**: Customizable Jinja2 templates for code generation
|
15
15
|
- **Type Safety**: Full type hints and Pydantic validation
|
16
|
-
- **Modern Python**: Built for Python 3.
|
16
|
+
- **Modern Python**: Built for Python 3.9+ with async/await support
|
17
|
+
- **Analytics & Monitoring**: Built-in usage analytics, error tracking, and health monitoring
|
18
|
+
- **Security Features**: Template validation, input sanitization, and secure file operations
|
19
|
+
- **Batch Operations**: Create multiple components from YAML specifications
|
17
20
|
- **CLI Interface**: Intuitive command-line interface with rich output
|
18
21
|
- **Configuration Management**: YAML-based project configuration with versioning
|
19
22
|
|
@@ -31,52 +34,6 @@ pip install fast-clean-architecture
|
|
31
34
|
poetry add fast-clean-architecture
|
32
35
|
```
|
33
36
|
|
34
|
-
### From Source
|
35
|
-
|
36
|
-
#### Using Poetry (Recommended)
|
37
|
-
```bash
|
38
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
39
|
-
cd fast-clean-architecture
|
40
|
-
poetry install
|
41
|
-
```
|
42
|
-
|
43
|
-
#### Using pip with requirements.txt
|
44
|
-
```bash
|
45
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
46
|
-
cd fast-clean-architecture
|
47
|
-
pip install -r requirements.txt
|
48
|
-
```
|
49
|
-
|
50
|
-
#### Using pip (editable install)
|
51
|
-
```bash
|
52
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
53
|
-
cd fast-clean-architecture
|
54
|
-
pip install -e .
|
55
|
-
```
|
56
|
-
|
57
|
-
### Development Installation
|
58
|
-
|
59
|
-
#### Using Poetry (Recommended)
|
60
|
-
```bash
|
61
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
62
|
-
cd fast-clean-architecture
|
63
|
-
poetry install --extras dev
|
64
|
-
```
|
65
|
-
|
66
|
-
#### Using pip with dev requirements
|
67
|
-
```bash
|
68
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
69
|
-
cd fast-clean-architecture
|
70
|
-
pip install -r requirements-dev.txt
|
71
|
-
```
|
72
|
-
|
73
|
-
#### Using pip (editable install with dev dependencies)
|
74
|
-
```bash
|
75
|
-
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
76
|
-
cd fast-clean-architecture
|
77
|
-
pip install -e ".[dev]"
|
78
|
-
```
|
79
|
-
|
80
37
|
**Note**: This project uses Poetry for dependency management. The `requirements.txt` and `requirements-dev.txt` files are provided for convenience and compatibility with pip-based workflows.
|
81
38
|
|
82
39
|
## 🏗️ Architecture Overview
|
@@ -110,7 +67,7 @@ Fast Clean Architecture follows the clean architecture pattern with these layers
|
|
110
67
|
|
111
68
|
**Important**: This tool is designed to scaffold clean architecture components for FastAPI projects. You should have:
|
112
69
|
|
113
|
-
- **Python 3.
|
70
|
+
- **Python 3.9+** installed on your system
|
114
71
|
- **Basic understanding of FastAPI** and web API development
|
115
72
|
- **Familiarity with clean architecture principles** (recommended but not required)
|
116
73
|
- **A new or existing directory** where you want to create your FastAPI project structure
|
@@ -279,19 +236,47 @@ Your API will be available at `http://localhost:8000` with automatic documentati
|
|
279
236
|
| **Presentation** | `api` | FastAPI routers and endpoints |
|
280
237
|
| | `schemas` | Pydantic request/response schemas |
|
281
238
|
|
282
|
-
### CLI
|
239
|
+
### CLI Commands
|
240
|
+
|
241
|
+
#### Core Commands
|
242
|
+
```bash
|
243
|
+
# Project initialization
|
244
|
+
fca-scaffold init # Initialize new project
|
245
|
+
fca-scaffold create-system-context # Create system (bounded context)
|
246
|
+
fca-scaffold create-module # Create module within system
|
247
|
+
fca-scaffold create-component # Create individual components
|
248
|
+
```
|
249
|
+
|
250
|
+
#### Batch Operations
|
251
|
+
```bash
|
252
|
+
# Create multiple components from YAML specification
|
253
|
+
fca-scaffold batch-create components_spec.yaml
|
254
|
+
fca-scaffold batch-create my-spec.yaml --dry-run # Preview only
|
255
|
+
```
|
283
256
|
|
257
|
+
#### Project Management
|
284
258
|
```bash
|
285
|
-
#
|
286
|
-
fca-scaffold
|
287
|
-
fca-scaffold
|
288
|
-
fca-scaffold
|
289
|
-
fca-scaffold
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
259
|
+
# Project status and configuration
|
260
|
+
fca-scaffold status # Show project overview
|
261
|
+
fca-scaffold config show # Display configuration
|
262
|
+
fca-scaffold config validate # Validate configuration
|
263
|
+
fca-scaffold system-status # Show system health and analytics
|
264
|
+
```
|
265
|
+
|
266
|
+
#### Help and Information
|
267
|
+
```bash
|
268
|
+
# Get help and version info
|
269
|
+
fca-scaffold version # Show version information
|
270
|
+
fca-scaffold --help # General help
|
271
|
+
```
|
272
|
+
|
273
|
+
#### Global Options
|
274
|
+
```bash
|
275
|
+
# Available for most commands
|
276
|
+
--dry-run # Preview changes without writing files
|
277
|
+
--force # Overwrite existing files
|
278
|
+
--verbose # Detailed output
|
279
|
+
--config # Specify custom config file
|
295
280
|
```
|
296
281
|
|
297
282
|
### Configuration File
|
@@ -325,6 +310,71 @@ project:
|
|
325
310
|
api: ["user"]
|
326
311
|
```
|
327
312
|
|
313
|
+
## 📊 Batch Component Creation
|
314
|
+
|
315
|
+
### YAML Specification Format
|
316
|
+
|
317
|
+
Create multiple components efficiently using YAML specifications:
|
318
|
+
|
319
|
+
```yaml
|
320
|
+
# components_spec.yaml
|
321
|
+
systems:
|
322
|
+
- name: admin
|
323
|
+
description: "Admin management system"
|
324
|
+
modules:
|
325
|
+
- name: authentication
|
326
|
+
description: "Admin authentication module"
|
327
|
+
components:
|
328
|
+
domain:
|
329
|
+
entities: [AdminUser, AdminRole]
|
330
|
+
value_objects: [AdminEmail, AdminPassword]
|
331
|
+
repositories: [AdminUserRepository]
|
332
|
+
application:
|
333
|
+
services: [AdminAuthService]
|
334
|
+
commands: [CreateAdminUser, UpdateAdminUser]
|
335
|
+
queries: [GetAdminUser, ListAdminUsers]
|
336
|
+
infrastructure:
|
337
|
+
repositories: [AdminUserRepository]
|
338
|
+
models: [AdminUserModel]
|
339
|
+
external: [AdminEmailService]
|
340
|
+
presentation:
|
341
|
+
api: [AdminAuthRouter]
|
342
|
+
schemas: [AdminUserSchema, AdminAuthSchema]
|
343
|
+
```
|
344
|
+
|
345
|
+
### Usage
|
346
|
+
|
347
|
+
```bash
|
348
|
+
# Create all components from specification
|
349
|
+
fca-scaffold batch-create components_spec.yaml
|
350
|
+
|
351
|
+
# Preview what would be created
|
352
|
+
fca-scaffold batch-create components_spec.yaml --dry-run
|
353
|
+
|
354
|
+
# Force overwrite existing files
|
355
|
+
fca-scaffold batch-create components_spec.yaml --force
|
356
|
+
```
|
357
|
+
|
358
|
+
## 📊 System Monitoring
|
359
|
+
|
360
|
+
### Health and Analytics
|
361
|
+
|
362
|
+
Fast Clean Architecture includes built-in monitoring capabilities:
|
363
|
+
|
364
|
+
```bash
|
365
|
+
# View system health and usage analytics
|
366
|
+
fca-scaffold system-status
|
367
|
+
|
368
|
+
# Detailed system information
|
369
|
+
fca-scaffold system-status --verbose
|
370
|
+
```
|
371
|
+
|
372
|
+
**Features:**
|
373
|
+
- **Usage Analytics**: Track command usage and component creation patterns
|
374
|
+
- **Error Tracking**: Monitor and log errors with detailed context
|
375
|
+
- **Health Monitoring**: System resource usage and performance metrics
|
376
|
+
- **Security Monitoring**: Template validation and input sanitization tracking
|
377
|
+
|
328
378
|
## 🎨 Customization
|
329
379
|
|
330
380
|
### Custom Templates
|
@@ -396,9 +446,7 @@ pytest -v
|
|
396
446
|
```bash
|
397
447
|
git clone https://github.com/alden-technologies/fast-clean-architecture.git
|
398
448
|
cd fast-clean-architecture
|
399
|
-
|
400
|
-
source venv/bin/activate # On Windows: venv\Scripts\activate
|
401
|
-
pip install -e ".[dev]"
|
449
|
+
poetry install --with dev
|
402
450
|
```
|
403
451
|
|
404
452
|
### Code Quality
|
@@ -420,11 +468,20 @@ bandit -r fast_clean_architecture
|
|
420
468
|
safety check
|
421
469
|
```
|
422
470
|
|
471
|
+
### Security Updates
|
472
|
+
|
473
|
+
This project maintains up-to-date dependencies with security patches:
|
474
|
+
|
475
|
+
- **Black 24.3.0+**: Fixes CVE-2024-21503 (ReDoS vulnerability)
|
476
|
+
- **Pip 25.0+**: Fixes PVE-2025-75180 (malicious wheel execution)
|
477
|
+
- **Setuptools 78.1.1+**: Fixes CVE-2025-47273 (path traversal vulnerability)
|
478
|
+
|
479
|
+
All dependencies are pinned with SHA256 hashes for supply chain security.
|
480
|
+
|
423
481
|
### Pre-commit Hooks
|
424
482
|
|
425
483
|
```bash
|
426
|
-
|
427
|
-
pre-commit install
|
484
|
+
poetry run pre-commit install
|
428
485
|
```
|
429
486
|
|
430
487
|
## 📖 Examples
|
@@ -511,4 +568,4 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
|
|
511
568
|
|
512
569
|
---
|
513
570
|
|
514
|
-
**Made with ❤️ by [Alden Technologies](https://aldentechnologies.com)**
|
571
|
+
**Made with ❤️ by [Adegbenga Agoro](https://www.adegbengaagoro.co), [Founder of Alden Technologies](https://www.aldentechnologies.com)**
|
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
### Added
|
11
|
+
### Changed
|
12
|
+
### Fixed
|
13
|
+
### Security
|
14
|
+
|
15
|
+
## [1.1.2] - 2025-06-27
|
16
|
+
|
10
17
|
### Added
|
11
18
|
- Comprehensive template validation system
|
12
19
|
- Robust error handling with rollback mechanisms
|
@@ -16,6 +23,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
16
23
|
- Improved entity and service templates with validation
|
17
24
|
- Type hints and metadata in generated code
|
18
25
|
- Atomic file operations for configuration management
|
26
|
+
- Analytics and error tracking modules
|
27
|
+
- Health monitoring and metrics collection
|
28
|
+
- Structured logging with configurable levels
|
29
|
+
- File locking mechanisms for concurrent operations
|
30
|
+
- Enhanced CLI commands (batch-create, help-guide, system-status)
|
19
31
|
|
20
32
|
### Changed
|
21
33
|
- Repository templates now use proper abstract base classes
|
@@ -23,6 +35,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
23
35
|
- Improved template variable consistency across components
|
24
36
|
- Better error messages and validation feedback
|
25
37
|
- Updated documentation with comprehensive examples
|
38
|
+
- Python version requirement updated to >=3.9
|
39
|
+
- Improved project structure with better separation of concerns
|
26
40
|
|
27
41
|
### Fixed
|
28
42
|
- Template rendering validation issues
|
@@ -30,6 +44,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
30
44
|
- Configuration backup and restore mechanisms
|
31
45
|
- Import path generation in templates
|
32
46
|
- Timestamp format validation
|
47
|
+
- **create-module command**: Implemented fail-fast validation to prevent creating modules in non-existent systems, avoiding inconsistent state between file system and configuration
|
48
|
+
- Version synchronization across project files
|
33
49
|
|
34
50
|
### Security
|
35
51
|
- Added dependency vulnerability scanning
|
@@ -43,8 +59,38 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
43
59
|
- Replaced MD5 hashing with SHA256 for error ID generation
|
44
60
|
- Enabled Jinja2 autoescape to prevent XSS vulnerabilities
|
45
61
|
- Replaced assert statements with proper exception handling
|
62
|
+
- Implemented secure template validation and sanitization
|
63
|
+
|
64
|
+
## [1.1.1] - 2025-06-26
|
65
|
+
|
66
|
+
### Fixed
|
67
|
+
- Minor bug fixes and stability improvements
|
68
|
+
- Documentation updates
|
69
|
+
|
70
|
+
## [1.1.0] - 2025-06-25
|
71
|
+
|
72
|
+
### Added
|
73
|
+
- Enhanced template system with validation
|
74
|
+
- Improved error handling mechanisms
|
75
|
+
- Additional CLI functionality
|
76
|
+
|
77
|
+
### Changed
|
78
|
+
- Performance optimizations
|
79
|
+
- Code quality improvements
|
80
|
+
|
81
|
+
## [1.0.0] - 2025-06-24
|
82
|
+
|
83
|
+
### Added
|
84
|
+
- Production-ready release
|
85
|
+
- Comprehensive test coverage
|
86
|
+
- Full documentation
|
87
|
+
- Stable API
|
88
|
+
|
89
|
+
### Changed
|
90
|
+
- Upgraded from beta to stable release
|
91
|
+
- Enhanced reliability and performance
|
46
92
|
|
47
|
-
## [0.1.0] -
|
93
|
+
## [0.1.0] - 2025-06-23
|
48
94
|
|
49
95
|
### Added
|
50
96
|
- Initial release of Fast Clean Architecture
|
@@ -90,5 +136,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
90
136
|
- Architecture guidelines
|
91
137
|
- Template customization guide
|
92
138
|
|
93
|
-
[Unreleased]: https://github.com/alden-technologies/fast-clean-architecture/compare/
|
139
|
+
[Unreleased]: https://github.com/alden-technologies/fast-clean-architecture/compare/v1.1.2...HEAD
|
140
|
+
[1.1.2]: https://github.com/alden-technologies/fast-clean-architecture/compare/v1.1.1...v1.1.2
|
141
|
+
[1.1.1]: https://github.com/alden-technologies/fast-clean-architecture/compare/v1.1.0...v1.1.1
|
142
|
+
[1.1.0]: https://github.com/alden-technologies/fast-clean-architecture/compare/v1.0.0...v1.1.0
|
143
|
+
[1.0.0]: https://github.com/alden-technologies/fast-clean-architecture/compare/v0.1.0...v1.0.0
|
94
144
|
[0.1.0]: https://github.com/alden-technologies/fast-clean-architecture/releases/tag/v0.1.0
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/__init__.py
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
"""Fast Clean Architecture - CLI tool for scaffolding clean architecture in FastAPI projects."""
|
2
2
|
|
3
|
-
__version__ = "1.
|
3
|
+
__version__ = "1.1.2"
|
4
4
|
__author__ = "Agoro, Adegbenga. B (IAM)"
|
5
|
-
__email__ = "
|
5
|
+
__email__ = "opensource@aldentechnologies.com"
|
6
6
|
|
7
7
|
from .cli import app
|
8
8
|
from .config import Config
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/cli.py
RENAMED
@@ -335,11 +335,23 @@ def create_module(
|
|
335
335
|
if not validate_python_identifier(sanitized_module):
|
336
336
|
raise ValidationError(f"Invalid module name: {module_name}")
|
337
337
|
|
338
|
-
# Initialize
|
338
|
+
# Initialize config updater for validation
|
339
339
|
config_updater = ConfigUpdater(config_path, console)
|
340
|
+
|
341
|
+
# Validate system exists BEFORE creating any directory structure
|
342
|
+
if sanitized_system not in config_updater.config.project.systems:
|
343
|
+
raise ValidationError(
|
344
|
+
f"System '{sanitized_system}' not found.\n\n"
|
345
|
+
f"To create the module, first create the system:\n"
|
346
|
+
f' fca-scaffold create-system-context {sanitized_system} --description "[SYSTEM_DESCRIPTION]"\n\n'
|
347
|
+
f"Then create your module:\n"
|
348
|
+
f" fca-scaffold create-module {sanitized_system} {sanitized_module}"
|
349
|
+
)
|
350
|
+
|
351
|
+
# Initialize package generator
|
340
352
|
package_generator = PackageGenerator(console)
|
341
353
|
|
342
|
-
# Create module structure
|
354
|
+
# Create module structure (only after validation passes)
|
343
355
|
package_generator.create_module_structure(
|
344
356
|
base_path=project_root,
|
345
357
|
system_name=sanitized_system,
|
@@ -348,7 +360,7 @@ def create_module(
|
|
348
360
|
)
|
349
361
|
|
350
362
|
if not dry_run:
|
351
|
-
# Update configuration
|
363
|
+
# Update configuration (system existence already validated)
|
352
364
|
config_updater.add_module(sanitized_system, sanitized_module, description)
|
353
365
|
|
354
366
|
console.print(
|
@@ -878,8 +890,8 @@ def system_status(
|
|
878
890
|
|
879
891
|
console.print("\n[bold blue]📊 Fast Clean Architecture Status[/bold blue]\n")
|
880
892
|
|
881
|
-
# Health
|
882
|
-
console.print("[bold yellow]🏥 System Health[/bold yellow]")
|
893
|
+
# FCA System Health
|
894
|
+
console.print("[bold yellow]🏥 FCA System Health[/bold yellow]")
|
883
895
|
health_monitor = get_health_monitor()
|
884
896
|
health_data = health_monitor.get_system_health()
|
885
897
|
|
@@ -887,20 +899,13 @@ def system_status(
|
|
887
899
|
console.print(f"[red]❌ Health check failed: {health_data['error']}[/red]")
|
888
900
|
else:
|
889
901
|
process_data = health_data.get("process", {})
|
890
|
-
system_data = health_data.get("system", {})
|
891
902
|
|
892
903
|
console.print(
|
893
904
|
f" • Memory Usage: {process_data.get('memory_rss_mb', 0):.1f} MB ({process_data.get('memory_percent', 0):.1f}%)"
|
894
905
|
)
|
895
906
|
console.print(f" • CPU Usage: {process_data.get('cpu_percent', 0):.1f}%")
|
896
907
|
console.print(
|
897
|
-
f" •
|
898
|
-
)
|
899
|
-
console.print(
|
900
|
-
f" • Disk Space: {system_data.get('disk_used_percent', 0):.1f}% used"
|
901
|
-
)
|
902
|
-
console.print(
|
903
|
-
f" • Uptime: {health_data.get('uptime_seconds', 0):.1f} seconds"
|
908
|
+
f" • Session Duration: {health_data.get('uptime_seconds', 0):.1f} seconds"
|
904
909
|
)
|
905
910
|
|
906
911
|
# Error Tracking
|
@@ -39,9 +39,9 @@ class ValidationConfig:
|
|
39
39
|
|
40
40
|
# Basic monitoring
|
41
41
|
enable_metrics: bool = False # Disabled by default to reduce complexity
|
42
|
-
log_level: Literal[
|
43
|
-
"
|
44
|
-
|
42
|
+
log_level: Literal["DEBUG", "INFO", "WARNING", "ERROR"] = (
|
43
|
+
"WARNING" # Reduced logging
|
44
|
+
)
|
45
45
|
|
46
46
|
def __post_init__(self) -> None:
|
47
47
|
"""Validate configuration after initialization."""
|
@@ -3,12 +3,12 @@ project:
|
|
3
3
|
description: My FastAPI project
|
4
4
|
version: 0.1.0
|
5
5
|
created_at: '2025-06-26T09:30:07.373319Z'
|
6
|
-
updated_at: '2025-06-
|
6
|
+
updated_at: '2025-06-27T12:40:08.759840Z'
|
7
7
|
systems:
|
8
8
|
test_system:
|
9
9
|
description: Test system for module API naming
|
10
10
|
created_at: '2025-06-26T09:30:07.378077Z'
|
11
|
-
updated_at: '2025-06-
|
11
|
+
updated_at: '2025-06-27T12:40:08.759840Z'
|
12
12
|
modules:
|
13
13
|
auth:
|
14
14
|
description: Authentication module
|
@@ -24,7 +24,115 @@ project:
|
|
24
24
|
queries: []
|
25
25
|
models: []
|
26
26
|
external: []
|
27
|
-
|
27
|
+
api: []
|
28
|
+
schemas: []
|
29
|
+
default_imports:
|
30
|
+
entities:
|
31
|
+
- dataclasses
|
32
|
+
- typing
|
33
|
+
- datetime
|
34
|
+
repositories:
|
35
|
+
- typing
|
36
|
+
services:
|
37
|
+
- typing
|
38
|
+
api:
|
39
|
+
- fastapi
|
40
|
+
- typing
|
41
|
+
schemas:
|
42
|
+
- pydantic
|
43
|
+
- typing
|
44
|
+
application:
|
45
|
+
entities: []
|
46
|
+
repositories: []
|
47
|
+
value_objects: []
|
48
|
+
services: []
|
49
|
+
commands: []
|
50
|
+
queries: []
|
51
|
+
models: []
|
52
|
+
external: []
|
53
|
+
api: []
|
54
|
+
schemas: []
|
55
|
+
default_imports:
|
56
|
+
entities:
|
57
|
+
- dataclasses
|
58
|
+
- typing
|
59
|
+
- datetime
|
60
|
+
repositories:
|
61
|
+
- typing
|
62
|
+
services:
|
63
|
+
- typing
|
64
|
+
api:
|
65
|
+
- fastapi
|
66
|
+
- typing
|
67
|
+
schemas:
|
68
|
+
- pydantic
|
69
|
+
- typing
|
70
|
+
infrastructure:
|
71
|
+
entities: []
|
72
|
+
repositories: []
|
73
|
+
value_objects: []
|
74
|
+
services: []
|
75
|
+
commands: []
|
76
|
+
queries: []
|
77
|
+
models: []
|
78
|
+
external: []
|
79
|
+
api: []
|
80
|
+
schemas: []
|
81
|
+
default_imports:
|
82
|
+
entities:
|
83
|
+
- dataclasses
|
84
|
+
- typing
|
85
|
+
- datetime
|
86
|
+
repositories:
|
87
|
+
- typing
|
88
|
+
services:
|
89
|
+
- typing
|
90
|
+
api:
|
91
|
+
- fastapi
|
92
|
+
- typing
|
93
|
+
schemas:
|
94
|
+
- pydantic
|
95
|
+
- typing
|
96
|
+
presentation:
|
97
|
+
entities: []
|
98
|
+
repositories: []
|
99
|
+
value_objects: []
|
100
|
+
services: []
|
101
|
+
commands: []
|
102
|
+
queries: []
|
103
|
+
models: []
|
104
|
+
external: []
|
105
|
+
api: []
|
106
|
+
schemas: []
|
107
|
+
default_imports:
|
108
|
+
entities:
|
109
|
+
- dataclasses
|
110
|
+
- typing
|
111
|
+
- datetime
|
112
|
+
repositories:
|
113
|
+
- typing
|
114
|
+
services:
|
115
|
+
- typing
|
116
|
+
api:
|
117
|
+
- fastapi
|
118
|
+
- typing
|
119
|
+
schemas:
|
120
|
+
- pydantic
|
121
|
+
- typing
|
122
|
+
test_module:
|
123
|
+
description: Test module for validation
|
124
|
+
created_at: '2025-06-27T12:40:08.759840Z'
|
125
|
+
updated_at: '2025-06-27T12:40:08.759840Z'
|
126
|
+
components:
|
127
|
+
domain:
|
128
|
+
entities: []
|
129
|
+
repositories: []
|
130
|
+
value_objects: []
|
131
|
+
services: []
|
132
|
+
commands: []
|
133
|
+
queries: []
|
134
|
+
models: []
|
135
|
+
external: []
|
28
136
|
api: []
|
29
137
|
schemas: []
|
30
138
|
default_imports:
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "fast-clean-architecture"
|
7
|
-
version = "1.1.
|
7
|
+
version = "1.1.2"
|
8
8
|
description = "CLI tool for scaffolding clean architecture in FastAPI projects"
|
9
9
|
authors = [{name = "Adegbenga Agoro", email = "adegbenga@aldentechnologies.com"}]
|
10
10
|
license = {text = "MIT"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
repos:
|
2
|
-
- repo: local
|
3
|
-
hooks:
|
4
|
-
- id: export-requirements
|
5
|
-
name: Export requirements.txt
|
6
|
-
entry: poetry export -f requirements.txt --output requirements.txt
|
7
|
-
language: system
|
8
|
-
files: pyproject.toml
|
9
|
-
pass_filenames: false
|
10
|
-
stages: [commit]
|
11
|
-
- id: export-dev-requirements
|
12
|
-
name: Export dev requirements.txt
|
13
|
-
entry: poetry export -f requirements.txt --output requirements-dev.txt --extras dev
|
14
|
-
language: system
|
15
|
-
files: pyproject.toml
|
16
|
-
pass_filenames: false
|
17
|
-
stages: [commit]
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/DEPENDENCY_INJECTION_GUIDE.md
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/ENHANCED_TYPE_SAFETY.md
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/TEMPLATE_VALIDATION_REFACTOR.md
RENAMED
File without changes
|
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/docs/template_validation_guide.md
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/examples/components_spec.yaml
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/examples/error_handling_examples.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/analytics.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/config.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
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/health.py
RENAMED
File without changes
|
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/metrics.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/protocols.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
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/fast_clean_architecture/utils.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
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_component_generator.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_enhanced_type_safety.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_generator_factory.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_symlink_security.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_template_security.py
RENAMED
File without changes
|
{fast_clean_architecture-1.1.0 → fast_clean_architecture-1.1.2}/tests/test_template_validation.py
RENAMED
File without changes
|
File without changes
|
File without changes
|