python_project_tpl
Sobre
Modelo de estrutura inicial para projetos em python
Tabela de Conteudos
- python_project_tpl
- Sobre
- Tabela de Conteudos
- Status do projeto
- Codigo de Conduta
- Contribuindo
- Autor
- Creditos
- Licenca
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
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