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/23 23:04] – 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:// | ||
+ | * 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 26: | 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.1574550279.txt.gz · Última modificação: 2019/11/23 23:04 por cartola