Desbravando Python - Introdução

Iniciando a nossa jornada na linguagem Python.

Posted by Gilson Filho on qua 01 junho 2016

Olá pessoal,

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.


Comments !