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:47] – [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:// | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| * [[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 36: | Linha 40: | ||
| ===== Verificando código ===== | ===== Verificando código ===== | ||
| - | **Ferramenta: | + | === pylint |
| - | * integrado | + | * Integrado |
| * Sugere: | * Sugere: | ||
| - | * melhores | + | * Melhores |
| - | * melhores | + | * Melhores |
| - | * erros de sintaxe | + | * Erros de sintaxe |
| - | * documentação | + | * Documentação |
| * etc | * etc | ||
| - | * Verifica sempre que o arquivo | + | * Analise se não é melhor instalar via pip dentro do venv, assim cada ambiente fica com o pylint correto direto (python2 / 3) |
| - | **Ferramenta:** black | + | Uso: |
| - | * só pra formatação | + | |
| - | * uso independente | + | |
| - | * não destrutivo | + | |
| + | | ||
| + | * 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.1574556448.txt.gz · Última modificação: por cartola
