Pular para conteúdo

python_project_tpl

Sobre

Modelo de estrutura inicial para projetos em python

Tabela de Conteudos

Status do projeto

Em desenvolvimento

Recursos

  • [X] Aplicação base
  • [X] Database
  • [ ] Logging
  • [ ] Todo CLI
  • [ ] Autenticação

Pre-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Python. Para o python utilizo o pacote Winpython. Além disto é bom ter um editor para trabalhar com o código como VSCode, Notepad++, Helix.

Dependencias

Utilizando windows powershell

Acessar o diretório da aplicação

cd <Nome do projeto/aplicação>

Instalar o Ambiente virtual python VirtualEnv

python -m venv .venv --upgrade-deps

Habilitar o ambiente virtual python

.venv\Script\activate

Instalar as dependências do projeto:

.\run.cmd --install

Instalar as dependências de desenvolvimento do projeto:

.\run.cmd --install-dev

Instalar as dependências de linter do projeto:

.\run.cmd --install-lint

Instalar as dependências de testes do projeto:

.\run.cmd --install-test

Gerar Secret Key

Para gerar o secret key da aplicação usando python execute:

import secrets
secrets.token_urlsafe(32)

Copiar o arquivo ex.secrets.toml para .secrets.toml.
Este arquivo deve ser adicionado em seu arquivo .gitignore, pois não deve ser carregado no repositório, por conter informações privadas, como senhas e tokens. Inserir a chave gerada no arquivo .secrets.toml

Banco de Dados

Inicializar o banco de dados

Inicialize o Alembic no projeto:

alembic init migrations

Atualize o arquivo alembic.ini com a URL do banco de dados:

# alembic.ini
sqlalchemy.url = sqlite:///./test.db

Atualize o arquivo env.py para usar SQLModel:

...
from sqlmodel import SQLModel
...
from app.models import Tasks
target_metadata = SQLModel.metadata
...

Criando e aplicando Migracoes

Crie uma nova migração:

alembic revision --autogenerate -m "create tasks table"

Aplique a migração:

alembic upgrade head

Extras

Se o powershell não estiver permissão de execução, Para ver as permissões execute:

Get-ExecutionPolicy -List

Para alterar as permissões execute o powershell no modo administrador e execute:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine

Definir variável de ambiente do windows

[System.Environment]::SetEnvironmentVariable('<NOME_VARIAVEL>', '<Valor>')

Remover variável de ambiente do windows

[System.Environment]::SetEnvironmentVariable('<NOME_VARIAVEL>', '')

Listar todas as variáveis de ambiente do windows

dir env:

Listar o valor de uma variável do ambiente windows

$Env:<variável>

Configuracoes personalizadas do VsCode

Copiar o arquivo vscode.json para .vscode/settings.json

Tecnologias

Dynaconf, Python, MkDocs

Testes

Para realizar testes, alterar a constante env do arquivo settings.toml para "testing"

Utilizando o windows powershell

Para realizar todos os testes execute o comando:

.\run.cmd --test

Para ver o relatório de testes em html: Abrir no navegador o arquivo index.html da pasta htmlcov.

Para selecionar testes selecionados, adicionar aos testes desejados:

...
@pytest.mark.esp

Executar o comando:

```powershell
.\run.cmd --test-run esp

Desenvolvimento

Para rodar o programa:

start

Documentacao

Para atualizar a documentação:
Atualizar o arquivo README.md
Copiar o arquivo README.md para a pasta docs com o nome index.md
Copiar os arquivos que são links do arquivo README.md para a pasta docs
Rodar o comando:

.\run.cmd --docs

Deploy

Codigo de Conduta

Código de Conduta

Contribuindo

Contribuindo

Autor

Valmir França

Creditos

Creditos

Licenca

License: MIT