[Gastosabertos-dev] Criar modelos no SQLAlchemy a partir de um Data Package - Proof of Concept
Andres MRM
andres em inventati.org
Terça Abril 14 20:07:16 UTC 2015
Dei uma olhada por cima no código, mas ainda não consegui entender tudo...
Eu também tinha em mente a opção 1. Me parece mais ágil e flexível do que
gerar arquivos para depois executar.
(Metaprogramação? É isso que meu amigo diz que é bom de fazer em Lisp =P )
Quoting Edgar Zanella Alvarenga (2015-04-14 15:27:40)
> \o/ Luiz! Luiz! Luiz!
>
> Ótimo trabalho, mesmo. Era algo exatamente nessa linha que tinha
> em mente e gostei do que vi. Ainda não testei na minha máquina,
> mas dei uma boa olhada no código.
>
> Vamos lá as suas perguntas:
>
> On 13/04/2015 17:57, Luiz Armesto wrote:
>
> > > 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.
>
> É isso que tenho em mente. Neste documento:
>
> https://github.com/okfn-brasil/documents/blob/master/gastos_abertos/gastos_abertos_architecture.md
>
> no ponto 2 levanto que um dos resultados a partir do CSV + JSON
> descrevendo-o,
> seria criaod um outro JSON descrevendo o modelo de dados como será
> criado
> no SQAlchemy. Daí usaremos esse JSON pra gerar API, mas não teremos um
> gerador de um aplicativo Flask, mas sim uma ferramenta genérica que
> funcionará
> de acordo com o JSON descrevendo o modelo dos dados para realizar as
> consultas.
>
> > 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.
>
> Eu prefiro a solução 1.
>
> > 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 [1] não podem ser carregados diretamentes da url, por
> > não seguirem a risca a especificação do formato.
>
> Só fiquei com um pé atrás quanto aos tipos de metadados aceitáveis
> pelo datapackage. Digo, se formos estender as informações de um campo,
> para fazer referências a outros campos dentro da mesma planilha,
> podemos fazer isso como quisermos?
>
>
> > 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 [2]
> > [1] http://dataprotocols.org/data-packages/ [3]
> > [2] https://github.com/tryggvib/datapackage [4]--
> >
> > Luiz Armesto
> >
> >
> > Links:
> > ------
> > [1] http://data.okfn.org
> > [2] https://gist.github.com/LuizArmesto/025aeba8f5c6d6f058ee
> > [3] http://dataprotocols.org/data-packages/
> > [4] https://github.com/tryggvib/datapackage
>
> _______________________________________________
> Gastosabertos-dev mailing list
> Gastosabertos-dev em lists.okfn.org
> https://lists.okfn.org/mailman/listinfo/gastosabertos-dev
Mais detalhes sobre a lista de discussão Gastosabertos-dev