Add your description here
Project description
Fast-Craftsmanship CLI Tool
Fast-Craftsmanship is a CLI tool designed to streamline the management and scaffolding of FastAPI projects. It follows best practices to help you create a clean, consistent, and scalable project structure, whether you are starting a new project or adding features to an existing one.
📚 Documentation: https://fguedes90.github.io/fast-craftsmanship/
Features
- Project Initialization: Quickly scaffold a new FastAPI project with a pre-defined structure.
- DDD Structure Generation: Generate files for domain, service, API, repository, and tests following Domain-Driven Design principles.
- Database Migrations: Easily create, apply, and rollback database migrations.
- Code Verification: Run type checking, linting, tests, and formatting checks using a single command.
- Extensibility: Easily extend the CLI with custom templates and commands.
Installation
From PyPI
If the package is available on PyPI:
pip install fast-craftsmanship
From Source
Clone the repository and install in editable mode:
git clone <repository-URL>
cd fcship
pip install -e ".[dev]"
Usage
After installation, use the CLI by invoking craftsmanship followed by the desired command.
Basic Commands
-
Project Initialization
craftsmanship project init <project_name>
-
Domain Generation
craftsmanship domain create <domain_name>
-
Service Layer Generation
craftsmanship service create <service_name>
-
API Endpoint Generation
craftsmanship api create <api_name>
-
Repository Implementation
craftsmanship repo create <repository_name>
-
Test File Generation
craftsmanship test create <unit|integration> <test_name>
-
Database Migrations
craftsmanship db migration <migration_name> craftsmanship db migrate craftsmanship db rollback
-
Code Verification
craftsmanship verify <all|type|lint|test|format>
Additional
- Version Information
craftsmanship --version
Project Structure
When a new project is initialized, the following structure is created:
├── api/ # API endpoints and schemas
├── domain/ # Domain entities and interfaces
├── service/ # Service layer implementation
├── infrastructure/ # Database and external services
└── tests/ # Test suites (unit and integration)
Development
Setup
# Clone the repository
git clone <repository-URL>
cd fast-craftsmanship
# Install in development mode
make dev-install
Available Commands
Run make help to see all available commands:
clean Clean up build artifacts
check-all Run linting and tests
dev-install Install the package with development dependencies
docs Generate documentation (placeholder - add your documentation command)
format Format code with ruff
help Show this help
install Install the package
lint Lint code with ruff
release Create a new release (placeholder - add your release commands)
test Run all tests
test-cov Run tests with coverage report
Releasing New Versions
This project uses GitHub Actions for CI/CD with semantic versioning:
- To create a new release, go to the GitHub Actions tab and run the "Bump Version" workflow
- Choose the version type (patch, minor, or major)
- The workflow will:
- Update the version in pyproject.toml
- Commit and push the changes
- Create a tag for the new version
- Trigger the release workflow
Documentation
Full documentation is available at https://fguedes90.github.io/fast-craftsmanship/.
Our documentation includes:
- Detailed command references
- Tutorials and guides
- Architecture explanations
- Development workflows
- Best practices for functional programming
To run the documentation locally:
# Install the docs dependencies
pip install -e ".[docs]"
# Serve the documentation
mkdocs serve
Contributing
Contributions are welcome! To contribute:
- Fork the repository.
- Create a new branch:
git checkout -b feature/my-feature - Commit your changes.
- Push your branch:
git push origin feature/my-feature - Open a pull request describing your feature.
License
This project is licensed under the MIT License. See the LICENSE file for details.
Support
If you encounter issues or have suggestions, please open an issue in the repository.
Happy coding with Fast-Craftsmanship! 🚀
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fast_craftsmanship-0.2.4.tar.gz.
File metadata
- Download URL: fast_craftsmanship-0.2.4.tar.gz
- Upload date:
- Size: 81.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd1c58eb13865417d207e46a858ba8dd9f7b2158573b382b4a80e4b5695f9847
|
|
| MD5 |
14193862bf6b542eecbb1d34a5bf678e
|
|
| BLAKE2b-256 |
7ae48f5ef24c046720f5b14311c34190e9d31fc6b4432a6aaa0b9654df343031
|
File details
Details for the file fast_craftsmanship-0.2.4-py3-none-any.whl.
File metadata
- Download URL: fast_craftsmanship-0.2.4-py3-none-any.whl
- Upload date:
- Size: 100.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9781a62830058e14c1eb75f4a809daae05919c042316aeab946dd1d31e2fe39
|
|
| MD5 |
2bc57540aec3c74846fe37d6c35c3936
|
|
| BLAKE2b-256 |
9193e4dcc3db8d1b8b13324a7d78389e1949dc683c1143faa5cd5f7fe25fb22b
|