ti_publica:dicas_python
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| ti_publica:dicas_python [2019/11/24 00:07] – [Pré-requisitos] cartola | ti_publica:dicas_python [2020/01/10 18:57] (atual) – [Recomendações PEP] cartola | ||
|---|---|---|---|
| Linha 4: | Linha 4: | ||
| referência rápida (Cheat Sheet). | referência rápida (Cheat Sheet). | ||
| - | ==== Pré-requisitos | + | ==== Instalações |
| - | * Python 3 ([[https:// | + | * Python 3 ([[https:// |
| - | * Pylint | + | |
| - | * Pytest | + | |
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * Isso acaba já instalando o pip3 | ||
| + | * Dentro do venv: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * Pro YouCompleteMe funcionar no Vim dentro de um venv de Python3 tive que instalar:\\ < | ||
| ==== Configurando o ambiente ==== | ==== Configurando o ambiente ==== | ||
| Linha 28: | Linha 34: | ||
| set autoindent | set autoindent | ||
| set backspace=indent, | set backspace=indent, | ||
| - | let g: | + | let g: |
| + | let g: | ||
| source $VIMRUNTIME/ | source $VIMRUNTIME/ | ||
| + | |||
| + | ===== Verificando código ===== | ||
| + | |||
| + | === pylint === | ||
| + | * Integrado ao vim: verifica sempre que o arquivo é salvo | ||
| + | * Sugere: | ||
| + | * Melhores comandos | ||
| + | * Melhores sintaxes | ||
| + | * Erros de sintaxe | ||
| + | * Documentação | ||
| + | * etc | ||
| + | * Analise se não é melhor instalar via pip dentro do venv, assim cada ambiente fica com o pylint correto direto (python2 / 3) | ||
| + | |||
| + | Uso: | ||
| + | * Integrado ao vim | ||
| + | * Via linha de comandos:< | ||
| + | * Para obter os códigos das mensagens:< | ||
| + | * Para inibir determinada mensagem: | ||
| + | * No arquivo (a partir da linha):< | ||
| + | * ou: <code python># pylint: disable=invalid-name</ | ||
| + | * Numa linha:< | ||
| + | * Se precisar reabilitar (a partir da linha):< | ||
| + | * Em todos os arquivos: | ||
| + | * Edite o arquivo de configuração do pylint, item '' | ||
| + | * Se o arquivo não existir:< | ||
| + | |||
| + | === black === | ||
| + | * Só pra formatação | ||
| + | * Uso independente | ||
| + | * Não destrutivo | ||
| ===== Testes com pytest ===== | ===== Testes com pytest ===== | ||
| - | ===== Virtualenv ===== | + | A ideia é que você crie um programa que vá testar seu código. O pytest é uma ferramenta que vai facilitar isso. |
| - | Referências: | + | Exemplo de código: |
| - | | + | <code python> |
| + | """ | ||
| + | |||
| + | for passnum in range(len(lista)-1, | ||
| + | mudou = False | ||
| + | for i in range(passnum): | ||
| + | if lista[i] > lista[i+1]: | ||
| + | lista[i], lista[i+1] = lista[i+1], lista[i] | ||
| + | print(lista) | ||
| + | mudou = True | ||
| + | if not mudou: | ||
| + | return lista | ||
| + | return lista</ | ||
| - | | + | Exemplo de programa que testa o código: |
| + | <code python># -*- coding: UTF-8 -*- | ||
| - | | + | import pytest |
| + | import semana5 | ||
| + | |||
| + | class Testa_semana5_bubble(): | ||
| + | |||
| + | @pytest.mark.parametrize(" | ||
| + | ([5, 1, 4, 2], [1, 2, 4, 5]), | ||
| + | ([12, 13, 14, 11], [11, 12, 13, 14]), | ||
| + | ([12, 13, -2, 14, 11], [-2, 11, 12, 13, 14]), | ||
| + | ]) | ||
| + | |||
| + | def testes(self, | ||
| + | assert semana5.bubble_sort(lista) == resultado</ | ||
| + | |||
| + | Para realizar o teste chamamos o programa que testa via pytest: | ||
| + | <code shell>$ pytest-3 testa.py | ||
| + | === test session starts === | ||
| + | platform linux -- Python 3.6.8, pytest-3.3.2, | ||
| + | rootdir: / | ||
| + | plugins: pylint-0.8.0 | ||
| + | collected 3 items | ||
| + | |||
| + | testa.py ... [100%] | ||
| + | |||
| + | === 3 passed in 0.03 seconds === | ||
| + | </ | ||
| + | ===== Venv ===== | ||
| + | |||
| + | Referência [[https:// | ||
| + | |||
| + | * Criando um virtualenv:< | ||
| + | # ou | ||
| + | $ pyvenv < | ||
| + | | ||
| ==== Dentro de um virtualenv ==== | ==== Dentro de um virtualenv ==== | ||
| * Obtendo o que é usado num projeto:< | * Obtendo o que é usado num projeto:< | ||
| * Pode se salvar a saída disso num arquivo para incluir no projeto como requirements.txt | * Pode se salvar a saída disso num arquivo para incluir no projeto como requirements.txt | ||
| + | |||
| + | =====pexpect/ | ||
| + | O pexpect é o equivalente ao programa original " | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| ===== Django ===== | ===== Django ===== | ||
| + | ===== Recomendações PEP ===== | ||
| + | |||
| + | ===== Referências externas ===== | ||
| + | * [[https:// | ||
ti_publica/dicas_python.1574554031.txt.gz · Última modificação: por cartola
