Structura
Automated Folder Structure & Dependency Management for Python Projects
Overview
Structura is a powerful project scaffolding tool designed to automate the creation of consistent and standardized folder structures for Python projects. It supports multiple frameworks and architectures, making it easy to initialize production-ready projects with just a few commands.
Whether you're building a Flask or FastAPI project, Structura handles:
- Folder structuring
- Dependency installation
- Environment setup
- Custom configurations via YAML
Features
- Multiple Architectures: MVC, MVCS, Hexagonal, and more
- Auto-Generates Folders & Boilerplate Files
- Dependency Management: Supports
venv
, pipenv
, and poetry
- YAML Configuration for flexible project initialization
- Extensible: Easily customize folder structures and dependencies
- Cross-Platform Compatibility: Works on Windows, Linux, and macOS
Installation
You can install Structura using pip
:
pip install structura-py
Usage
Initialize a New Project
Create a new Python project with the desired architecture:
structura init myproject --framework flask
For FastAPI:
structura init myproject --framework fastapi
Generate Project Files
If you already have a project, you can simply generate the structure:
structura init
Folder Structure Example
When you run structura-py init
, it generates the following folder structure based on the chosen architecture (e.g., MVC):
/myproject
βββ app
β βββ __init__.py
β βββ models
β β βββ user.py
β βββ services
β β βββ user_service.py
β βββ controllers
β β βββ user_controller.py
β βββ routes
β β βββ user_routes.py
βββ config
β βββ settings.py
β βββ config.yaml
βββ tests
β βββ test_user.py
βββ requirements.txt
βββ .env
βββ README.md
βββ main.py
Architecture Variations:
MVC
: models
, services
, controllers
, routes
MVCS
: Adds services
layer for business logic separation
Hexagonal
: Adds adapters
and ports
folders for dependency inversion
Contributing
We welcome contributions!
To contribute:
- Fork the repository
- Create a new feature branch
- Commit your changes
- Open a Pull Request (PR)
License
Structura is licensed under the MIT License.
Feel free to use, modify, and distribute it.
Feedback & Issues
If you encounter any issues or have suggestions, feel free to open an issue on GitHub.