Implementando API REST com Django – parte 1

django-rest-1_abertura

Incrementando a “Agenda de Eventos” com a adição de uma API de REST para o projeto e desta vez, ao invés de implementá-la do zero, como no caso do exemplo com Bottle, optei por uma abordagem mais simples e usarei o Django REST framework que, literalmente, se encarregará de mapear meu modelo de dados e de construir todas as opções da API sozinho.

Continuar lendo

Anúncios

Compreensão de lista em Python

compreensao-1_abertura

Quando escrevi sobre os geradores em Python, citei rapidamente a compreensão de listacomprehensive lists — para só depois dar conta de que nunca as havia citado, então, vamos lá…. Compreensão de lista é uma construção sintática disponível em Python¹ para a criação de novas listas baseadas em outras já existentes, de uma forma concisa e com inspiração  na teoria dos conjuntos

(¹) Outras linguagens como Clojure, Common LISP e Haskell também as implementam mas, talvez a mais conhecida delas seja o comando SELECT da linguagem SQL.

Continuar lendo

Geradores em Python

geradores-1_abertura

Os geradores em Python são uma maneira simples de criar um objeto iterável sem a necessidade de construí-lo dentro de uma classe. De forma bem resumida, um objeto iterável consiste em um conjunto finito de dados¹ cujo conteúdo é tratado (ou iterado, dah!) um elemento por vez, iniciando do primeiro e seguindo até o último, quando a iteração é terminada.

(¹) Também é possível produzir geradores que contém séries infinitas de dados.

Continuar lendo

Cobertura de código com pytest

pytestcov-1_abertura-1

Expandindo um pouco aquele básico sobre o pytest com algo que é muito importante em uma rotina de testes, a cobertura do código. E que consiste em uma medida numérica descrevendo o quanto do seu código está sendo efetivamente executado pelas suas rotinas de teste.

No caso específico do Python com pytest uma forma de fazer esta verificação é através do plugin pytest-cov que faz uso de uma outra ferramenta, a coverage, para automaticamente registrar e produzir relatórios de cobertura. E, consequentemente, ajudar a escrever rotinas de teste que efetivamente alcançam todas as partes do programa.

Continuar lendo