Resultado inicial do estudo do Flask Framework

Cansado de fazer as coisas só com Django resolvi implementar algo usando algum outro framework Python. Como não curto estudar só a teoria e não implementar nada, resolvi fazer um microprojeto.

Como estava sem criatividade, lembrei de script que o Rudy Matela tinha feito para gerar um pdf com os textos dos postits do sprint. E resolvi fazer um clone da versão web usando Flask e Google App Engine(GAE).

O Flask é microframework feito em Python que usa o Jinja2Werkzeug, ele não é um framework full stack, ele vem só com o básico para você desenvolver sua aplicação Web, isso é vantagem no caso do uso com o GAE, pois como ele não tem um ORM própria, você pode usar SQLAlchemy, SQLObject ou mesmo a API de armazenamento de dados do GAE. O Flask possui extensões que ajudam no desenvolvimento para várias funcionalidade.

O resultado do estudo e implementação você pode ver no ScrumReal

O código você pode baixar através do github http://github.com/fabiocerqueira/scrumreal

Quem tiver sugestões sobre o que pode melhorar no código, agradeço! 😀

PyLestras do PugCE – REST com Python

Hoje na Fa7 o PugCE realizou o evento PyLestras, tivemos 3 palestras e a resolução de problema em um pequeno Dojo.

As palestras foram:

  • 09:00-09:20 – Conhecendo o PugCe (Italo Maia)
  • 09:30-10:20 – AppEngine (Filipe Fernandes)
  • 10:30-11:20 – Rest com Python (Eu \o)
  • 11:30-12:00 – DOJO

O problema proposto para Dojo foi implementar a sequência de Conway da seguinte forma:

# -*- coding: utf-8 -*-
import doctest

def next(prev):
    """
    >>> next(1)
    '11'
    >>> next(2)
    '12'
    >>> next(312311)
    '1311121321'
    >>> next(22)
    '22'
    """
    prev = str(prev)
    res = ''
    pa = prev[0]
    acc = 0
    for a in prev:
        if a == pa:
            acc += 1
        else:
            res += "%d%s" % (acc, pa)
            acc = 1
        pa = a
    res += '%d%s' % (acc, pa)
    return res

def conway(ini, lim):
    """
    >>> conway(1, 1)
    '1'
    >>> conway(1, 6)
    '1 11 21 1211 111221 312211'
    >>> conway(3, 4)
    '3 13 1113 3113'
    >>> conway(22, 5)
    '22 22 22 22 22'
    """
    res = str(ini)
    for i in range(lim - 1):
        prev = res.split()[-1]
        res += " %s" % next(prev)
    return res

if __name__ == "__main__":
    doctest.testmod(verbose=True)

Um segunda versão usando o módulo itertools do Python e geradores, mostra também como representar exceptions no doctest:

# -*- coding: utf-8 -*-
import doctest
from itertools import groupby

def conway_generator(ini, lim):
    """
    >>> a = conway_generator(1, 1)
    >>> a.next()
    '1'
    >>> a = conway_generator(2, 3)
    >>> a.next()
    '2'
    >>> a.next()
    '12'
    >>> a.next()
    '1112'
    >>> a.next()
    Traceback (most recent call last):
        ...
    StopIteration
    """
    res = str(ini)
    yield res
    for i in range(1, lim):
        res = ''.join(["%d%s" % (len(list(g)), k) for k, g in groupby(res)])
        yield res

def conway(ini, lim):
    """
    >>> conway(1, 1)
    '1'
    >>> conway(1, 6)
    '1 11 21 1211 111221 312211'
    >>> conway(3, 4)
    '3 13 1113 3113'
    >>> conway(22, 5)
    '22 22 22 22 22'
    """
    return ' '.join(conway_generator(ini,lim))

if __name__ == "__main__":
    doctest.testmod(verbose=True)

O problema não foi resolvido na hora do Dojo, mas serviu para mostrar algumas coisas interessante do Python 😀

Os slides da minha palestra seguem abaixo assim como o link para o código usado de exemplo:

source: github.com/fabiocerqueira/murl

livro citado em inglês e português

A história do Python

Na lista da Python Brasil divulgaram um blog com a história do Python. É uma leitura interessante e estou repassando aqui para outros também conhecerem melhor essa linguagem incrível.

Tem o blog oficial[1] mantido pelo Guido van Rossum e Greg Stein e também a traduação para pt-br[2] mantida pelo Douglas Drumond e Victor Matheus.

A versão em português não foi completamente traduzida.

[1] – http://python-history.blogspot.com/

[2] – http://python-history-pt-br.blogspot.com/

PythOnCeará – Primeiro evento do PugCE

No próximo sábado dia 14/11 será realizado na FA7(Faculdade 7 de Setembro) o primeiro evento dos programadores Python no Ceará. O evento será promovido pelo PugCE e contará com quatro palestras de diversos temas envolvendo Python, desde mercado, web, desktop e mobile.

Mais informações sobre o encontro:
local: FA7, em frente a Unifor, sala 35 – mapa
horário: das 13:00 às 17:30
dia: 14/11/09
Programação:
Quatro palestras de 50 minutos, com pausa para coffee break
Palestras:

  • “Por que python?!” – Nicholas Amorim
  • “Python para Web e Desktop” – Alec Nascimento
  • “Django tem ritmo!” – Italo Maia
  • “Sokoban com PyS60” – Fábio Cerqueira

Eu serei um dos palestrantes como vocês viram na grade acima e falarei de como foi o desenvolvimento do Sokoban para celular. Espero a presença de quem ler isso aqui \o/

Faça sua inscrição no evento aqui.