terça-feira, março 19, 2013

IS_CEP validator para web2py

Inclua o código abaixo em um model, no início do arquivo db.py em um arquivo que em ordem alfabética seja anterior a db.py. Eu uso 0_validators.py

Para usar, use como um validator comum, na definição da tabela

...
Field('cep', requires=IS_CEP()),
...

ou após a definição:

db.mytable.cep.requires = IS_CEP()


class IS_CEP(object):

    def __init__(self, format=True, error_message='Digite apenas os números!'):
        self.format = format
        self.error_message = error_message
    def __call__(self, value):
        try:
            #return (value, 'cpf incorreto'+str(value)) 
            #return (value, 'cpf incorreto'+str(cl))
            c = []
            for d in value:
                if d.isdigit():
                    c.append(d)
            cl = str(''.join(c))
            #return (value, 'cpf incorreto'+str(cl))
            if  len(cl) == 8:
                cep = cl
                return(str(cep),None)
            else:
                return (value, 'Número de dígitos incorreto para CEP')

        except:
            return (value, 'algum erro'+str(value))
    def formatter(self, value):
        formatado = value[0:2]+'.'+value[2:5]+'-'+value[5:8]
        return formatado

Melhor IDE ou Editor para Python

Essa é uma pergunta que a maior parte dos programadores python não gosta de responder.

Dizem que você deve experimentar e escolher o que é melhor para você.

Eu fiz isso.

Dos pagos, gostei do WingIDE (versão trial). Rápido, confiável, multiplataforma.

O Komodo ficaria em segundo lugar, porque é mais lento. 

Dos gratuitos, a maioria são instáveis ou lentos, ou tem usabilidade ruim. Tão ruim que às vezes preferia um editor de texto como o Notepad++ no windows ou o Gedit no linux.

Mas existe uma luz no fim do túnel. O Aptana 3 apresenta muitas qualidades sem o defeito de ser pago.

Portanto, minha resposta para a pergunta acima é: Aptana Studio 3.
Ele é baseado no pydev, só que é fácil de instalar.

Para baixá-lo, vá a http://www.aptana.com/products/studio3


Atualização em março de 2017:

Hoje, fico longe dos editores acima. A melhor IDE seria a PyCharm, mesmo a Comunity Edition já tem muitas qualidades. Mas por ser em java, é pesada.

Na prática, adotei o Sublime Text 3. É leve e supre todas necessidades de um programador. Não tem todas as funcionalidades de uma IDE, mas se vocẽ conhece bem as bibliotecas/frameworks que trabalha e o seu código, é mais que suficiente. Se não, talvez seja melhor gastar um tempo estudando a documentação do framework ou biblioteca do que contar com a ajuda da IDE.