[SP-pm] OpenData-BR

Alexei Znamensky russoz at gmail.com
Sun Nov 28 13:35:54 PST 2010


2010/11/28 Thiago Rondon <thiago em aware.com.br>

> Em 28-11-2010 16:46, Andre Carneiro escreveu:
>
>  Opa! Alguém aí falou em parsers???
>>
>> Isso pode ser comigo também!
>>
>>
>>
>>
> Andre,
>
> Uma maneira de contribuir, seria explicar como funciona o parser do
> HTML::TreeBuilder::Xpath nos módulos do projeto já existente! Assim
> poderíamos explicar como alguém pode criar um novo parser dentro do projeto.
>
> O que acha ? Escrever documentação POD já nos arquivos existentes, como por
> exemplo neste código:
>
>
> https://github.com/maluco/OpenData-BR/blob/master/lib/OpenData/BR/Federal/PortalTransparencia/Convenios.pm


Pessoal,

Estou fazendo um trabalho paralelo ao do maluco e tenho "quebrado" as
rotinas dessas classes em rotinas separadas de fetch, parsing e storage.

Acabei de alcançar algo funcionável e talvez merge-ável para a coleção de
dados 'CEIS' (Empresas Sancionadas) do PortalTransparencia.gov.br. Acabei de
subir para o branch 'rearch' no meu fork:

https://github.com/russoz/OpenData-BR/tree/rearch

Para conseguir fazer funcionar e apresentar prova de conceito, tive de fazer
algumas pequenas gambis:

* o role 'Provider::Collection' está implementando a funcionalidade do
browser (método get(), para ser preciso), mas esse não é um bom lugar para
isso.
* o role 'Provider', segundo a idéia original, teria um atributo 'loader'
que seria do tipo 'OpenData::Loader' - e isso implementaria um método
'load()' que serviria para carregar os dados em algum repositório (ou canal
de comunicação - nada impede que, no futuro tenhamos um loader que jogue os
dados em uma file RabbitMQ, ou mesmo IBM MQ, ou um feed RSS, whatever). Como
esse role Loader ainda não foi criado, e para simplificar a demonstração,
mudei a restrição de Loader para Object, implementei o método 'load()' na
classe 'OpenData::Output::Dumper' e deixei a classe
'OpenData::BR::Federal::PortalTransparencia' usando esse "loader" ou
"output" por default, ao invés do MongoDB que é o que estava antes.

O código neste branch, agora (19:26), está passando nos testes, e o
script ./scripts/portaltransparencia.pl está funcionando.

Antes de refatorar os outros parsers para ficarem como o CEIS, gostaria de
ter algum feedback. Rondon & all, por favor os seus $0.02;

[]s,
-- 
Alexei Znamensky [russoz_gmail_com] [russoz.wordpress.com] [
www.flickr.com/photos/alexeiz]
«Only love / Can bring the rain / That makes you yearn to the sky»
-------------- Pr�xima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20101128/d63670f2/attachment-0001.html>


More information about the SaoPaulo-pm mailing list