Gerador de projetos Python modularizados
Project description
🛠️ PyModularizer - Gerador de Projetos Python Modularizados
PyModularizer é uma ferramenta de linha de comando para gerar rapidamente estruturas de projetos Python — desde scripts simples até aplicações modulares com FastAPI ou Flask. Ideal para acelerar a criação de pacotes reutilizáveis, APIs e sistemas organizados por módulos.
✨ Recursos
- Geração de estruturas de projeto prontas para uso
- Suporte a múltiplos tipos: script simples, pacote, aplicação modular, API com FastAPI ou Flask
- Criação de novos módulos com um único comando
- Estrutura compatível com boas práticas de organização e testes
- CLI interativa via Typer
- Pronto para publicação no PyPI
🚀 Instalação
Você pode instalar diretamente via PyPI:
pip install pymodularizer
Ou localmente, após clonar o repositório:
git clone https://github.com/havurquijo/pymodularizer.git
cd pymodularizer
pip install .
⚙️ Uso
Criar um novo projeto
pymodularizer new --name my_app --type modular_application
ou
pym new --name my_app --type modular_application
Opções disponíveis:
| Opção | Descrição | Padrão |
|---|---|---|
--name |
Nome do projeto | meu_projeto |
--version |
Versão inicial do projeto | 0.1.0 |
--src |
Nome da pasta de código fonte | src |
--main |
Nome do arquivo principal | main.py |
--type |
Tipo do projeto (custom, simple_script, etc.) |
custom |
Adicionar um módulo
pym module meu_modulo --path src
Cria um módulo com estrutura básica dentro da pasta especificada (src por padrão).
Listar tipos de projetos disponíveis
pym list_templates
Mostra todos os tipos de projetos disponíveis que podem ser usados com o comando new.
🧱 Tipos de projetos disponíveis
pym list_templates
A lista de tipos de projetos é lida automaticamente dos arquivos JSON na pasta models.
| Tipo | Descrição (exemplo) |
|---|---|
| simple_script | Projeto com um único script e módulos auxiliares |
| python_package | Pacote instalável com módulos organizados |
| modular_application | Aplicação modular com serviços, módulos e configuração separada |
| fastapi_api | Estrutura pronta para uma API com FastAPI |
| flask_api | Estrutura pronta para uma API com Flask |
| kyvi_app | Estrutura para aplicações desktop com Kivy |
| custom | Estrutura personalizada definida pelo usuário |
Use
pym list_templatespara ver a lista completa e atualizada conforme os modelos JSON.
🧪 Testes
Testes automatizados usam pytest. Execute com:
pytest
As funções são testadas sem criar arquivos reais no sistema, usando
tmp_path.
📂 Estrutura esperada
Exemplo de estrutura gerada:
my_app/
├── src/
│ ├── main.py
│ ├── modules/
│ ├── services/
│ └── config/
├── tests/
├── README.md
├── setup.cfg
├── pyproject.toml
└── requirements.txt
Exemplo de estrutura gerada para um projeto Flask:
.
flask_api/
│
├── app/
│ ├── __init__.py # Inicialização da aplicação Flask
│ ├── app.py # Ponto de entrada da aplicação
│ ├── api/ # Módulos de API (versões e endpoints)
│ │ └── v1/
│ │ └── example_api.py # Exemplo de endpoint RESTX
│ ├── config/ # Configurações da aplicação
│ ├── models/ # Modelos de dados
│ ├── routes/ # Rotas adicionais
│ ├── services/ # Lógica de negócio/serviços
│ ├── static/ # Arquivos estáticos (CSS, JS, imagens)
│ ├── templates/ # Templates HTML (Jinja2)
│ └── utils/ # Funções utilitárias
│
├── tests/ # Testes automatizados (pytest)
│ ├── test_example_api.py # Testes dos endpoints de exemplo
│ └── test_main.py # Teste da rota principal
│
├── requirements.txt # Dependências do projeto
├── pyproject.toml # Configuração de build
├── setup.cfg # Configuração adicional
└── README.md # Este arquivo
📦 Publicação no PyPI
Se você quiser clonar e adaptar para publicar seu próprio pacote, basta configurar:
pyproject.tomlsetup.cfgREADME.md
E executar:
python -m build
python -m twine upload dist/*
🤝 Contribuindo
Pull requests são bem-vindos! Sinta-se à vontade para sugerir novos tipos de projeto, comandos e melhorias.
📝 Licença
Distribuído sob a licença MIT. Veja LICENSE para mais detalhes.
Project details
Release history Release notifications | RSS feed
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 pymodularizer-1.0.3.tar.gz.
File metadata
- Download URL: pymodularizer-1.0.3.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7308280e26376dc3cd2734bd37bec05dfa19e5eb8ba22ffec127549c60f087c8
|
|
| MD5 |
76e3e23978f3217f5582d89ed19272dc
|
|
| BLAKE2b-256 |
abb520c6f5d1ee462d18add6f70ab2597e90250d43fcc438a8b3e36c1caf7b1b
|
File details
Details for the file pymodularizer-1.0.3-py3-none-any.whl.
File metadata
- Download URL: pymodularizer-1.0.3-py3-none-any.whl
- Upload date:
- Size: 15.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e802ff18c71b170319af8c42ba093020e20ca6ae874a103c469dbe6adcf5912a
|
|
| MD5 |
779e07b27bc11cbba05bdbaca72f235c
|
|
| BLAKE2b-256 |
0f3e9dcf288a2296b1e92185fa33cfb47676b08931dd45973c3fd61298caf1bd
|