Structura is a CLI tool that automates folder structure generation and dependency management for Python projects. It supports multiple architectures (MVC, MVCS, Hexagonal) and frameworks (Flask, FastAPI), using YAML configuration for flexibility.
Project description
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, andpoetry - 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,routesMVCS: Addsserviceslayer for business logic separationHexagonal: Addsadaptersandportsfolders 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.
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 structura_py-1.1.0.tar.gz.
File metadata
- Download URL: structura_py-1.1.0.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cebf223edede0e33f9781825ee190f6f78603dfffd3f09e07f33609bc9bcf246
|
|
| MD5 |
5c8c15f594ac131176d25281602bae45
|
|
| BLAKE2b-256 |
6d6df95b6fe72e278f94e347f5c241edfaa34254c0c4e3b25b678873a2d7fc0b
|
File details
Details for the file structura_py-1.1.0-py3-none-any.whl.
File metadata
- Download URL: structura_py-1.1.0-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.2 CPython/3.12.3 Linux/6.14.0-1017-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
79650fbf6f1c87cfcbdac73842def466fb88aa84e4caa0de1c3405f56ef7df7a
|
|
| MD5 |
9dc787649f25c6378658c497f5de6e3c
|
|
| BLAKE2b-256 |
0abeb14773cfca5d88cb6ca798b6c9f2fd480ef2888dac684661eb72e125a0dc
|