[Gastosabertos-dev] Criar modelos no SQLAlchemy a partir de um Data Package - Proof of Concept

Luiz Armesto luiz.armesto em gmail.com
Segunda Abril 13 20:57:45 UTC 2015


Fiz um POC [0] com funcionalidades básicas para ver o quanto seria dificil
criar automaticamente modelos do SQLAlchemy e populá-los com o conteúdos de
Data Packages [1] (CSV + JSON com metadados) e parece funcionar. Usando
como base e implementando o que falta (chaves primárias, relacionamentos
com chaves estrangeiras, constraint...) fica fácil criar e popular as
tabelas da base de dados a partir dos CSVs.


Sobre a parte da API, pensei em dois caminhos possíveis e não sei qual
seria o melhor.

1) Fazer algo semelhante ao feito nesse POC, com metaprogramação, criando
os objetos necessários para a API em tempo de execução a partir do JSON com
metadados, como uma lib ou plugin do Flask.

2) Apartir do JSON de metadados e de uma coleção de templates, criar
arquivos .py, com código gerado automaticamente, mas que já tem as
declarações das classes e métodos no código, sendo executado separado e de
modo independente da ferramenta. Uma espécie de scaffolding.


Qual acham melhor? Alguém pensou em alguma solução diferente?



Obs.: Eu usei o pacote "datapackage" [2] e como ele é bastante exigente com
o formato do JSON de metadados, vários datapackages do data.okfn.org não
podem ser carregados diretamentes da url, por não seguirem a risca a
especificação do formato.

Obs2.: O POC depende dos pacotes "SQLAlchemy" e "datapackage" (acho que
também tive que instalar o "mock" para o "datapackage" funcionar no Python
2)

[]'s

[0] https://gist.github.com/LuizArmesto/025aeba8f5c6d6f058ee
[1] http://dataprotocols.org/data-packages/
[2] https://github.com/tryggvib/datapackage
-- 
Luiz Armesto
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://lists.okfn.org/pipermail/gastosabertos-dev/attachments/20150413/e1311840/attachment-0002.html>


Mais detalhes sobre a lista de discussão Gastosabertos-dev