Pacotes de softwares para incrementar o Vim, para programar em Python.

mug with mustache bad photo

O Vim possui diversas bibliotecas e plugins, disponíveis para melhorar o seu desempenho, como programador(a) em qualquer linguagem.
Neste post, pretendo mostrar uma série de pacotes de softwares, disponíveis nos repositórios oficiais, que podem ajudar a melhorar o seu dia a dia como desenvolvedor(a) em Python.

Só para contextualizar, escrevo usando o Debian GNU/Linux 10 “Buster” testing. Os pacotes, contudo, devem estar disponíveis para você, sob os mesmos nomes, mesmo que sua distro seja diferente da minha.

Como encontrar os pacotes para Vim e Python

O comando ‘search’ pode ser usado no gestor de pacotes do Debian/Ubuntu (apt) e nas distros derivadas do Fedora (dnf ou yum):


apt search python | grep -i vim

ou, ainda…


dnf search python | grep -i vim

Se quiser saber mais sobre o comando grep, clique aqui.
Para mim, o resultado foi o seguinte:

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

  arquivos de desenvolvimento para o flow-tools
  bibliotecas de desenvolvimento de Driver de transporte Multi-ponto HP (hpmud)
  biblioteca para gráficos científicos (arquivos de desenvolvimento)
  arquivos de desenvolvimento de integração de loop principal para python-dbus
  cabeçalhos de desenvolvimento para os vínculos Python GObject estáticos
  vínculos SDL para desenvolvimento de jogos em Python
  Keyboard-driven, vim-like browser based on PyQt5
vim-athena/testing 2:8.0.1401-2 amd64
vim-autopep8/testing 1.0.7-1 all
  vim plugin to apply autopep8
vim-gtk/testing,now 2:8.0.1401-2 amd64 [installed,automatic]
vim-gtk3/testing 2:8.0.1401-2 amd64
vim-khuno/testing 1.0.3-1 all
  Python flakes Vim plugin
vim-nox/testing 2:8.0.1401-2 amd64
vim-python-jedi/testing 0.11.1-1 all
  autocompletion tool for Python - VIM addon files
vim-syntastic/testing 3.8.0-1 all
  Syntax checking hacks for vim
vim-voom/testing 5.2-1 all
  Vim two-pane outliner

Todos podem ser instalados via apt ou dnf, mas o ideal talvez seja usar o vim-addons, seguido pelo nome do pacote.
Vamos falar sobre alguns destes, que sejam (pelo menos, quase) exclusivamente para Python.

Pacote de ajustes sintáticos para o Vim

O pacote vim-syntastic oferece hacks de sintaxe para o editor Vim.
Trata-se de um plugin que verifica a sintaxe, usando programas externos.
Os eventuais erros encontrados serão exibidos ao usuário.
Pode ser feito sob demanda ou apenas quando o arquivo for gravado (salvo).
Em arquivos grandes pode haver economia significativa de tempo, uma vez que você não vai precisar sequer compilar seu código para descobrir que tem erros de sintaxe lá dentro.

O vim-syntastic tem suporte a várias outras linguagens também.

Ferramenta de autocomplemento para Vim

O pacote vim-python-jedi é uma ferramenta de autocomplemento para a linguagem Python, dentro do Vim.
Funciona com ou sem os erros de sintaxe (fica o aviso).
No geral, consegue entender quase todos os elementos sintáticos básicos do Python, incluindo muitos builtins.

Flakes no Vim

O plugin khuno vai instalar também o Flakes, que será usado para analisar o seu código de acordo com o Flake8.
Disponibiliza os seguintes recursos:

  1. Análise sintática é executada assincronamente (non-blocking)
  2. O assistente exibe mensagens de erro na linha de status
  3. Use um Buffer à parte, para exibir erros

Se tiver mais dicas, conta pra gente, nos comentários! 😀

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 45 outros assinantes

Conheça o projeto Sala de Aula Python do Fedora Labs

fedora classroom python

Fedora é um sistema operacional GNU/Linux, com um projeto chamado Fedora Labs.
O objetivo do projeto é oferecer à sua comunidade versões específicas do seu sistema operacional, para satisfazer melhor suas necessidades.

Por exemplo, o Design Suite, do Fedora Labs, oferece uma distro Linux completa, só que com uma variedade de softwares voltados para a área da criatividade visual, design, fotografia, edição de imagens etc.
Desta forma, o usuário não precisa sair procurando a maioria dos programas de que precisa — ou seja, pode começar a produzir logo após a instalação.

O Fedora Python Classroom Lab é uma distro (ou um blend) Linux completamente voltada para profissionais desenvolvedores e estudantes.

Tudo o que possa ser importante ou interessante para um professor ou aluno de programação Python já vem pré-instalado.

Ao mesmo tempo, a distro deixa de fora programas que “não têm nada a ver” com programação Python.
É claro que você pode instalar, individualmente, outros programas que considere importantes.
Não há este tipo de restrições aqui.

Um dos benefícios do Fedora Python Classroom para desenvolvedores é que o seu ambiente já “nasce” configurado e pronto para começar a trabalhar (ou estudar, ou ensinar) no Python.

Veja o link de download abaixo.

Fedora Python Classroom

Na homepage oficial do projeto, se destacam os seguintes itens:

  • Múltiplas versões do Python — CPython (3.x e 2.x), PyPy 3.x etc.
  • Pilha de Python científico —Tudo o que você precisa para aprender ou ensinar ciência em Python, incluindo SciPy.
  • Jupyter Notebook — Ambiente baseado na web para computação interativa e visualização de resultados.
  • tox — gestor de virtualenv e ferramenta de teste CLI.
  • Ninja IDE — Ambiente de desenvolvimento integrado para Python. Mas, como já disse,
    você pode instalar qualquer um que quiser.
  • Python 3 IDLE — Desenvolvimento integrado para Python e ambiente de aprendizado.

Site do projeto: https://labs.fedoraproject.org/pt_BR/python-classroom/.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 45 outros assinantes

Como instalar a versão alpha do Python no Debian testing através do repositório experimental

Se você precisa ou deseja usar a versão mais atual do Python no Debian testing, pode adicionar o repositório experimental.
É neste repositório que ficam os pacotes de software ainda em alpha, como é o caso, hoje, do Python 3.7 entre inúmeros outros softwares.

Antes de prosseguir, eu não saberia como enfatizar o suficiente: você pode danificar o seu sistema, se aplicar os procedimentos descritos neste post.
Você foi avisado.

“Misturar repositórios” é a maneira mais fácil e rápida de tornar o seu sistema totalmente inutilizável.
Se você precisa usar softwares em fase experimental ou, pelo menos, mais atualizados, o correto é usar outra distro, como o Debian unstable ou o Ubuntu (não-LTS) mais atual.

Para ter acesso aos pacotes, o que inclui as versões em desenvolvimento do Python, adicione a seguinte linha ao final do arquivo /etc/apt/sources.list:


deb http://deb.debian.org/debian experimental main

Em seguida, atualize os repositórios:


sudo apt update

Em seguida, é só instalar:


sudo apt install python3.7

[sudo] senha para justincase: 

Lendo listas de pacotes... Pronto
Construindo árvore de dependências       
Lendo informação de estado... Pronto
The following additional packages will be installed:
  libpython3.7-minimal libpython3.7-stdlib python3.7-minimal
Pacotes sugeridos:
  python3.7-venv python3.7-doc binfmt-support
Os NOVOS pacotes a seguir serão instalados:
  libpython3.7-minimal libpython3.7-stdlib python3.7 python3.7-minimal
0 pacotes atualizados, 4 pacotes novos instalados, 0 a serem removidos e 0 não atualizados.
É preciso baixar 4.071 kB de arquivos.
Depois desta operação, 22,5 MB adicionais de espaço em disco serão usados.
Você quer continuar? [S/n] 

Usar o alpha de um software é uma ótima forma de ajudar os desenvolvedores, se você pretende dar feedback sobre o seu uso e ajudar a resolver bugs.
Para todos os outros usuários, este repositório pode ser uma bela fonte de dor de cabeça.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 45 outros assinantes

Como realçar a sintaxe do seu código Python na shell

bpython syntax highlight

Quando você está com o terminal aberto e rodando a shell do Python, é possível realizar muitos procedimentos com interpretação imediata do seu código.
bpython python 3 shell interface
Infelizmente, a shell padrão não tem o recurso de realce da sintaxe, encontrado nas IDEs ou nos editores de texto voltados para desenvolvedores.
A shell utiliza o mesmo esquema de cores padrão do seu terminal — seja no Mac ou no Linux.

Que tal usar uma shell diferente, então?

Neste artigo, vou apresentar o bpython, um software de interface para o interpretador interativo do Python, presente no seu sistema.
O aplicativo está disponível para sistemas operacionais, como o MacOS, Windows e Linux.

Os recursos do bpython

A ideia, de acordo com a documentação do programa, é dar ao usuário todos os recursos presentes na shell do Python e mais alguns benefícios encontrados nas IDEs ou editores para programação mais modernos.
Tudo isso sem abrir mão da leveza.

Veja alguns recursos do aplicativo:

  1. Realce de sintaxe, à medida em que você digita seus comandos. Igual ao seu editor de textos preferido.
  2. Auto complementação de comandos, funções e variáveis, com exibição de uma caixa de sugestões à medida em que você digita. Você pode usar a tecla Tab para aceitar uma sugestão que corresponda ao que você deseja digitar.
  3. Lista de parâmetros sensível ao contexto da função chamada na linha de comando.
    Ele faz uso do módulo inspect e da documentação do pydoc.
  4. Função Rewind ou rebobinamento. Tende a exibir sugestão de código que já foi usado.
    Em geral, é mais útil para definir classes e funções.

Como instalar o bpython

O método “universal” para instalar o aplicativo é através do PIP:


pip install bpython

Usuários Debian ou Ubuntu (GNU/Linux), podem fazer a instalação dos repositórios oficiais:


sudo apt install bpython

Se a sua distro Linux é baseada no Fedora, use o yum:


yum install bpython

Depois de instalado, é só executar:


bpython

Referẽncias

https://www.bpython-interpreter.org/downloads.html.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 45 outros assinantes

Use o pydoc para obter ajuda rápida sobre o Python

Durante a fase de construção de um programa em Python, há várias formas de se obter ajuda rápida e, por vezes, contextual.
Algumas IDE’s possuem todo um sistema de consulta para o desenvolvedor, inclusive.
No terminal, em qualquer instalação comum do Python, é possível obter ajuda baseada na documentação oficial com o programa pydoc.
Basta dar a ele o nome do item para o qual você deseja obter ajuda.
No Linux/MacOS ou no FreeBSD, use-o assim:


pydoc input

Help on built-in function input in module __builtin__:

input(...)
    input([prompt]) -> value
    
    Equivalent to eval(raw_input(prompt)).

No Windows, caso a sua versão do Python seja a 3.6, use assim:


python3.6 -m pydoc input

Para sair do pydoc, tecle ‘q’.

Resumidamente, o pydoc pode fornecer informações sobre palavras-chave, tópicos, funções, módulos, pacotes etc.
Quando está em execução, tem um funcionamento semelhante ao programa man, presente em ambientes Linux/UNIX.
Você pode fazer buscas dentro da documentação com a opção -k:


pydoc -k string

cStringIO - A simple fast partial StringIO replacement.
strop - Common string manipulations, optimized for speed.
StringIO - File-like objects that read from or write to a string buffer.
UserString - A user-defined wrapper around string objects
distutils.versionpredicate - Module for parsing and testing package version predicate strings.
doctest - Module doctest -- a framework for running examples in docstrings.
encodings.string_escape - Python 'escape' Codec
lib2to3.fixes.fix_basestring - Fixer for basestring -> str.
lib2to3.pgen2.literals - Safely evaluate Python string literals without using eval().
string - A collection of string operations (most are no longer used).
stringold - Common string manipulations.
stringprep - Library that exposes various tables found in the StringPrep RFC 3454.
numpy.core.defchararray - This module contains a set of functions for vectorized string
numpy.lib._version - Utility to compare (NumPy) version strings.

Na lista acima, os tópicos em que o assunto “string” é abordado, na documentação do pydoc.

Rode um servidor pydoc

Para atender um maior número de desenvolvedores dentro da mesma rede, é possível colocar a documentação online.
Use o comando


sudo pydoc -p 80

[sudo] senha para justincase: 
pydoc server ready at http://localhost:80/

para por no ar um servidor com a documentação, acessível através (neste exemplo) do site “http://localhost:80”. Se a porta 80 estiver ocupada, use outra após a opção ‘-p’.

pydoc documentação python online

Para encerrar o servidor, pressione ^C (Ctrl + c) na linha de comando, onde você o ativou.
Se quiser enviar um tópico da documentação para um documento HTML, a ser usado em consulta posterior, dê o comando assim:


pydoc -w input

wrote input.html

Como você pode ver, acima, o comando cria um arquivo html com o conteúdo do tópico pedido.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 45 outros assinantes