Nesse post vamos introduzir uma nova idéia chamado de Desbravando Python, que tem o objetivo de entrar na documentação Python, e abordar de forma simples os seus recursos. Vamos focar na versão 3.5 da linguagem, então se até lá tiver melhorias e novas funcionalidades, saiba que não entrará enquanto conseguir passar por toda a referência da biblioteca que oferece. Vai ser um caminho longo, mas vai ser bem interessante ;)

Poderia partir somente para o básico da ferramenta, mas como uma das destacadas características do Python é suas baterias incluídas, nada mais interessante que aprofundar e entender todas elas (ou pelo menos a maioria rs). Abaixo segue a sequência de posts que compõem a série. Essa ordem foi baseado no índice da documentação, em cada item e/ou subitem, será um post único.

  • Funções Built-in
  • Parte 01
  • Parte 02
  • Parte 03
  • Parte 04
  • Parte 05
  • Constantes Built-in
  • Tipos Built-in
  • Testando valores verdadeiros
  • Operações booleanas - and, or, not
  • Comparações
  • Tipos numéricos
  • Tipos iteradores
  • Tipos sequenciais
  • Tipos de cadeias de caracteres
  • Tipos de sequências binárias
  • Tipos de set
  • Tipos de mapeamento
  • Tipos de gerenciamento de contexto
  • Outros tipos built-in
  • Atributos especiais
  • Exceções built-in
  • Classes base
  • Exceções concretas
  • Avisos
  • Hierarquia de exceções
  • Serviços de processamento de textos
  • string - Operações comuns de string
  • re - Operações com expressões regulares
  • difflib - Auxiliares para computing deltas
  • textwrap - Quebras de texto e preenchimento
  • unicodedata - Banco de dados unicode
  • stringprep - Preparação de string unicode para Internet
  • readline - Interface de linha de comando
  • rlcompleter - Função de auto-complete para readline
  • Serviços e dados binários
  • struct - Tratando valores Python e structs da linguagem C
  • codecs - Registro de codecs e classes base
  • Tipos de dados
  • datetime - Tipos de data e hora básicos
  • calendar - Funções gerais de calendários
  • collections - Módulo especializado para tipos de dados como dict, list, set e tuple.
  • collections.abc - Classes abstratas para containers de dados para collections
  • heapq - Módulo para aplicação do algoritmo de heap queue
  • bisect - Módulo para aplicação do algoritmo array bisection
  • array - Módulo para tratamento eficiente de arrays de valores numéricos
  • weakref - Referência weak
  • types - Criação de tipos dinamicos e nomes para tipos built-in
  • copy - Operações de deep copy e shallow
  • pprint - Impressão organizada de dados
  • reprlib - Implementação alternativa do repr()
  • enum - Suporte para enumerations
  • Módulos matemáticos e numéricos
  • numbers - Base de classes abstratos para outras operações numéricas
  • math - Funções matemáticas
  • cmath - Funções matemáticas para número complexos
  • decimal - Módulo para suporte de números decimais e flutuantes
  • fractions - Números racionais
  • random - Geração de números pseudo-aleatórios
  • statistics - Funções matemáticas para estatistica
  • Módulos para programação funcional
  • itertools - Funções para criação de iteradores e loopings eficientes
  • functools - Funções de primeira ordem e operações de objetos callable
  • operator - Operações padrões como funções
  • Acesso de arquivos e diretórios
  • pathlib - Caminho do sistema de arquivos orientado a objetos
  • os.path - Manipulações comuns de caminho de diretórios
  • fileinput - Iteração de linhas sobre multiplos input streams
  • stat - Interpretando resultados do stat()
  • filecmp - Comparações de arquivos e diretórios
  • tempfile - Gerando arquivos e diretórios temporários
  • glob - Estilo Unix de padrões para caminho de diretórios
  • fnmatch - Padrões de comparação para nome de arquivos Unix
  • linecache - Acesso randômico de linhas de textos
  • shutil - Operação de arquivos de alto nível
  • macpath - Funções de manipulação de caminhos para Mac OS 9
  • Persistência de dados
  • pickle - Serialização de objetos Python
  • copyreg - Funções para suporte de registros pickle
  • shelve - Persistência de objetos Python
  • marshal - Serialização de objetos internos do Python
  • dbm - Interface para “base de dados” Unix
  • sqlite3 - Interface DB-API 2.0 para banco de dados SQLite
  • Arquivamento e compressão de dados
  • zlib - Compressão compatível com gzip
  • gzip - Suporte para arquivos gzip
  • bz2 - Suporte para compressão bzip2
  • lzma - Compressão usando algoritmo LZMA
  • zipfile - Trabalhando com arquivos ZIP
  • tarfile - Leitura e escrita de arquivos tar
  • Formatos de arquivos
  • csv - Leitura e escrita de arquivos CSV
  • configparser - Parseamento de arquivos de configuração
  • netrc - Processamento de arquivos netrc
  • xdrlib - Codificação e Decodificação de dados XDR
  • plistlib - Geração e parseamento de arquivos .plist para Mac OS X
  • Serviços de criptografia
  • hashlib - Tratamento de mensagens e hashes seguras
  • hmac - Hashing chaveada para mensagens de autenticação
  • Serviços genéricos de Sistemas Operacionais
  • os - Interface diversos do Sistema Operacional
  • io - Ferramentas base para trabalho com streams
  • time - Acesso a tempo e conversões
  • argparse - Parseamento de opções e linha de comando, argumentos e subcomandos
  • getopt - Parseamento no estilo C para opções de linha de comando
  • logging - Facilitador de logging para Python
  • logging.config - Configuração de logging
  • logging.handlers - Manipulação de logging
  • getpass - Entrada de senha portável
  • curses - Manipulação de caracteres para displays
  • curses.textpad - Widget de entrada de texto para programas cursivos
  • curses.ascii - Pilha de painel de extensão para curses
  • platform - Acesso aos dados da plataforma
  • errno - Padrão de símbolos de sistema errno
  • ctypes - Biblioteca de funções externas para Python
  • Execução concorrente
  • threading - Paralelismo baseado em thread
  • multiprocessing - Paralelismo baseado em processo
  • O pacote concurrent
  • concurrent.futures - Executando tarefas paralelas
  • subprocess - Gerenciamento de subprocessos
  • sched - Agendamento de eventos
  • queue - Classe de file sincronizada
  • dummy-threading - Substituto para o módulo threading
  • thread - API baixo nível para threading
  • dummy-thread - Substituto para o módulo thread
  • Processo de comunicação e rede
  • socket - Interface de rede de baixo nível
  • ssl - Wrapper TLS/SSL para objetos socket
  • select - Módulo par multiplexing de I/O de alto nível
  • selectors - Multiplexing de I/O de alto nível
  • asyncio - I/O assíncrono, loop de eventos, coroutines e tarefas
  • asynchat - Comandos de socket assíncrono para handler de comando/resposta
  • signal - Definição de manipulador para eventos assíncronos
  • nmap - Suporte de arquivo memory-mapped
  • Manipulação de dados da Internet
  • email - Pacote para manipulação MIME e e-mail
  • json - Codificação e decodificação JSON
  • mailcap - Manipulação de arquivos mailcap
  • mailbox - Manipulação no mailboxes em vários formatos
  • mimetypes - Mapeamento de nome de arquivos para tipos MIME
  • base64 - Codificando dados de Base16, Base32, Base64, Base85
  • binhex - Codificação e decodificação de arquivos binhex4
  • binascii - Conversão entre ASCII e dados binários
  • quopri - Codificação e decodificação de dados de extensão de e-mail
  • uu - Codificação e decodificação e arquivos uuencode
  • Ferramentas de processamento de marcação estruturada (Structured Markup)
  • html - Suporte a linguagem HTML
  • html.parser - Parseamento de HTML e XHTML
  • html.entities - Definições de entidades gerais do HTML
  • Módulos de processamento XML
  • xml.etree.ElementTree - API do ElementTree XML
  • xml.dom - API do Document Object Model (DOM)
  • xml.dom.minidom - Implementação mínima do DOM
  • xml.dom.pulldom - Suporte para gerar árvore parcial do DOM
  • xml.sax - Suporte para parseamento do SAX2
  • xml.sax.handler - Classes base para manipulação do SAX
  • xml.sax.saxutils - Utilitários SAX
  • xml.sax.xmlreader - Interface para parsers XML
  • xml.parsers.expat - Parseamento rápido de XML usando Expat
  • Protocolo para Internet e Suporte
  • webbrowser - Conveniente controlador web-browser
  • cgi - Suporte para Common Gateway Interface (CGI)
  • cgitb - Gerenciador de Traceback para scripgs CGI
  • wsgiref - Implementação e utilitários da referência WSGI
  • urllib - Módulo para manipulação de URLs
  • urllib.request - Biblioteca para abertura de URLs
  • urllib.response - Classe de resposta usado pelo urllib
  • urllib.parse - Parseamento de URLs dentro de componentes
  • urllib.error - Classes de exceção disparados pelo urllib.request
  • urllib.robotparser - Parseamento para robot.txt
  • http - Módulo HTTP
  • http.client - Cliente para protocolo HTTP
  • ftplib - Cliente do protocolo FTP
  • poplib - Cliente do protocolo POP3
  • imaplib - Cliente do protocolo IMAP4
  • nntplib - Cliente do protocolo NNTP
  • smtplib - Cliente do protocolo SMTP
  • smtpd - Servidor SMTP
  • telnetlib - Cliente Telnet
  • uuid - Objetos UUID de acordo com o RFC 4122
  • socketserver - Um framework para servidores de rede
  • http.server - Servidores HTTP
  • http.cookies - Gerenciamento do estado HTTP
  • http.cookiejar - Manipulação de cookies para clientes HTTP
  • xmlrpc - Servidor XMLRPC e módulos cliente
  • xmlrpc.client - Acesso do cliente XML-RPC
  • xmlrpc.server - Servidores XML-RPC básicos
  • ipaddress - Biblioteca de manipulação IPv4/IPv6
  • Serviços de multimídia
  • audioop - Manipulação de dados de áudio raw
  • aifc - Leitura e escrita de arquivos AIFF e AIFC
  • sunau - Leitura e escrita de arquivos Sun AU
  • wave - Leitura e escrita de arquivos WAV
  • chunk - Leitura de dados do IFF chunked
  • colorsys - Conversões entre sistemas de cores
  • imghdr - Determinação do tipo de imagem
  • sndhdr - Determina o tipo de som
  • ossaudiodev - Acesso de dispositivos de áudio OSS compatíveis
  • Internacionalização
  • gettext - Serviços de Internacionalização multilíngue
  • locale - Serviços de Internacionalização
  • Frameworks de Programas
  • turtle - Gráficos Turtle
  • cmd - Suporte a interpretador de comando orientados a linha
  • shlex - Análise léxica simples
  • Interface gráfica do utilizador com Tk
  • tkinter - Interface python com Tcl/Tk
  • tkinter.ttk - Widgets tematizados para Tk
  • tkinger.tix - Extensão de widgets para Tk
  • tkinter.scrolledtext - Widget de texto com scroll
  • IDLE - Ambiente integrado de desenvolvimento Python para Aprendizado
  • Outros pacotes de interface gráfica do utilizador
  • Ferramentas de desenvolvimento
  • typing - Suporte para type hints
  • pydoc - Gerador de documentação and sistema de ajuda online
  • doctest - Exemplos de testes interativos para Python
  • unittest - Framework de testes unitários
  • unittest.mock - Biblioteca de objetos “mocados”
  • unittest.mock - Primeiros passos
  • 2to3 - Tradução do código do Python 2 para 3 automático
  • test - Pacote de testes de regressão para Python
  • test.support - Utilitários para ambiente de teste Python
  • Debugging e Profiling
  • bdb - Framework debugger
  • faulthandler - Descarregamento de traceback
  • pdb - Debugger Python
  • Profilers python
  • timeit - Mensuração do tempo de execução de pequenos pedaços de código
  • trace - Módulo que permite rastrear execução do programa
  • tracemalloc - Módulo que permite rastrear blocos de memória alocados pelo Python
  • Distribuição e empacotamento do software
  • distutils - Construindo e instalando módulos Python
  • ensurepip - Inicialização o instalador pip
  • venv - Criação de ambientes virtualizados
  • zipapp - Módulo que disponibiliza ferramenta para criacao de arquivo zip com código Python
  • Serviços de execução Python
  • sys - Funções e parametros específicos do sistemas
  • sysconfig - Provêm acesso acesso a informações de configuração do Python
  • builtins - Objetos built-in
  • –main– - Ambiente de script alto nível
  • warnings - Controle de alertas
  • contextlib - Utilitários para declaração de contexto usando with
  • abc - Base de classes abstratas
  • atexit - Manipulação de saída
  • traceback - Imprimir ou recuperar stack traceback
  • –future– - Definições de declarações futuras
  • gc - Interface para Garbage Collector
  • inspect - Inspeção de objetos vivos
  • site - Configurações específica de pesquisa de módulos locais
  • fpectl - Controle de exceção de pontos flutuantes
  • Interpretadores customizados Python
  • code - Classe base do interpretador
  • codeop - Código python do compilador
  • Importando módulos
  • zipimport - Importando módulos de arquivos ZIP
  • pkgutil - Extensão de pacote utilitário
  • modulefinder - Procura de módulos usados pelo script
  • runpy - Localizando e executando módulos Python
  • importlib - A implementação do import
  • Serviços da linguagem Python
  • parser - Acesso python para parse tree
  • ast - Syntax tree abstrato
  • symtable - Acesso a tabela de símbolos do compilador
  • symbol - Constantes usados com parse trees no Python
  • token - Constantes usados com parse trees no Python
  • keyword - Testes para palavras-chave do Python
  • tokenize - Tokenizador para código-fonte Python
  • tabnanny - Detecção de endentação ambígua
  • pyclbr - Classe python de suporte a a informações sobre classes, métodos a funções de alto nível
  • py-compile - Compilação do código fonte Python
  • compileall - Biblioteca de compilação binária com Python
  • dis - Disassembler para bytecodes Python
  • pickletools - Ferramenta para desenvolvedores pickle
  • Serviços diversos
  • formatter - Formatando saídas genéricas
  • Serviços específicos para MS Windows
  • msilib - Leitura e escrita de arquivos Microsoft Installer
  • msvcrt - Rotinas úteis para MS VC++ runtime
  • winreg - Acesso aos registros Windows
  • winsound - Interface de som para Windows
  • Serviços especifícos Unix
  • posix - Chamadas de sistema mais comuns para o padrão POSIX
  • pwd - Banco de dados de senhas
  • spwd - Banco de dados de senhas no estilo shadow
  • grp - Banco de dados de grupos
  • crypt - Função para chacagem de senhas Unix
  • termios - Controle de tty no estilo POSIX
  • tty - Funções para controle de terminal
  • pty - Utilitários para pseudo-terminais
  • fcntl - Chamadas de sistemas de fcntl e ioctl
  • pipes - Interface para shell pipelines
  • resource - Informações de uso de recursos
  • nis - Interface para Sun’s NIS (Yellow Pages)
  • syslog - Biblioteca de rotinas para acesso ao syslog Unix
  • Módulos substituídos
  • optparse - Parser de opções para linhas de comando
  • imp - Acesso interno ao import

Depois desse índice gigantesco, pode parecer que sou louco. Mas como falei, é uma grande aventura, e o nome da série não foi pensado atoa. Assim, espero que consiga completar essa jornada, mas para isso um desafio de cada vez ;)

Até o próximo post sobre Funções Built-in: Parte 01.