Skip to main content

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 project-types

Mostra todos os tipos de projetos disponíveis que podem ser usados com o comando new.


🧱 Tipos de projetos disponíveis

pym project-types

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 project-types para 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.toml
  • setup.cfg
  • README.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pymodularizer-1.0.2.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pymodularizer-1.0.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file pymodularizer-1.0.2.tar.gz.

File metadata

  • Download URL: pymodularizer-1.0.2.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for pymodularizer-1.0.2.tar.gz
Algorithm Hash digest
SHA256 7d5eac92a8c27f0929348d1305e43d3b3e4523ffe48f3d7ea6ed392fac40be76
MD5 ecccc6af56adf243f591e45dde8cfefb
BLAKE2b-256 d6a52ddf15ac8d09522d326ff8071bb405d99c517b768501b6df20443bbca97a

See more details on using hashes here.

File details

Details for the file pymodularizer-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: pymodularizer-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for pymodularizer-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d62f913a2af903cb0ef4d75fd371c94ffe42d7a2d9268d873b7135f63f0a9b80
MD5 129d187e3c07c53038d37e0b5847949b
BLAKE2b-256 355f9c42be1a28f9a1f2cce241639f46b399a25c491cd2b437c98fde87925389

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page