Esse não é um tutorial, não é um guia, muito menos um guia completo. São apenas minhas anotações pessoais sobre Python que podem servir como um guia de referência rápida (Cheat Sheet).
pip install future frozendict requests requests_futures
Como programo sempre em ambiente Linux com o editor VIM as dicas aqui são focadas nisso.
Meu arquivo de configuração do VIM (~/.vimrc) que chama o ~/.vimrc-python:
autocmd BufNewFile *.py :source ~/.vimrc-python autocmd BufRead *.py :source ~/.vimrc-python
Meu arquivo de configuração .vimrc-python
filetype indent on set expandtab " enter spaces when tab is pressed set textwidth=90 " break lines when line length increases set tabstop=4 " use 4 spaces to represent tab set softtabstop=4 set shiftwidth=4 " number of spaces to use for auto indent set autoindent set backspace=indent,eol,start let g:syntastic_python_python_exec = '/usr/bin/python3' let g:syntastic_python_pylint_exec = '/usr/bin/pylint3' source $VIMRUNTIME/indent/python.vim
Uso:
pylint3 exemplo.py
pylint3 --msg-template='{msg_id}:{line:3d},{column}: {obj}: {msg}' exemplo.py
# pylint: disable=C0103
# pylint: disable=invalid-name
var = 3 # pylint: disable=C0103
# pylint: enable=C0103
disable=
seção [MESSAGES CONTROL]
pylint3 --generate-rcfile exemplo1.py > ~/.pylintrc
A ideia é que você crie um programa que vá testar seu código. O pytest é uma ferramenta que vai facilitar isso.
Exemplo de código:
def bubble_sort(lista): """Ordenação via algorítimo Bubble Sort""" for passnum in range(len(lista)-1, 0, -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:
# -*- coding: UTF-8 -*- import pytest import semana5 class Testa_semana5_bubble(): @pytest.mark.parametrize("lista, resultado", [ ([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, lista, resultado): assert semana5.bubble_sort(lista) == resultado
Para realizar o teste chamamos o programa que testa via pytest:
$ pytest-3 testa.py === test session starts === platform linux -- Python 3.6.8, pytest-3.3.2, py-1.5.2, pluggy-0.6.0 rootdir: /tmp/curso_python/week5_testes_automatizados, inifile: plugins: pylint-0.8.0 collected 3 items testa.py ... [100%] === 3 passed in 0.03 seconds ===
Referência sobre ambientes virtuais e sobre gerenciamento de pacotes com venv no python.
$ python3 -m venv <path> # ou $ pyvenv <path>
$ source <path>/bin/activate
$ pip freeze
O pexpect é o equivalente ao programa original “expect”, feito em tcl, muito usado em programação shell script. O pexpect é particularmente útil para programadores que lidam com infra-estrutura, pois fornece um meio de automatizar aplicativos que o shell diretamente não consegue, como ssh, telnet, etc, em outras palavras, programas que se apropriam do terminal e que não aceitam parâmetros pela stdin.