splor-mg / dpm

Data Package Manager
0 stars 0 forks source link

Implementar `dpm normalize` #67

Closed fjuniorr closed 2 months ago

fjuniorr commented 10 months ago

Seguindo na ideia https://github.com/splor-mg/cookiecutter-datapackage/issues/27 um possível comando seria:

dpm normalize <package> [--output-dir .] [--data-dir data]

Para utilizar no cookiecutter seria necessário algo como:

dpm normalize <package> [--resource resource-name] [--data-dir data]

No entanto nesse formato somente é possível gerar os arquivos de dados dos recursos normalizados. Isso significa que seria necessário alguma forma de chamar o comando para produzir somente os metadados a partir dos arquivos de dados normalizados como ocorre hoje com o build.

dpm normalize <package> [--output-dir .] [--data-dir data] --no-transform
fjuniorr commented 6 months ago

No entanto nesse formato somente é possível gerar os arquivos de dados dos recursos normalizados.

Ou podemos simplesmente adicionar uma flag --metadata-dir e o arquivo de metadado apropriado (seja um data package, data resource, ou table schema controlado com --type) seria gerado também. --no-metadata-dir não geraria metadados e --yaml e --json altera o formato de serialização.

labanca commented 6 months ago

Ontem enquanto estava criando os parâmetros --json e --yaml fiquei muito tempo tentando fazer com que esses parametros fossem uma lista de parâmetros, todos vinculados a uma só variável-parâmetro, algo como:

metadata_format: Annotated[[str], typer.Option("--yaml", "--json")] = "--json",

O código acima não funciona. Mas a idéia é que quando o dpm build se passar a gerar recursos em vários formatos diferentes (xlsx, txt, csv, zip, gz, etc), uma lista muito extensiva de opções no help talvez fosse inconveniente.

fjuniorr commented 6 months ago

Não acho que a gente perde usabilidade em usar algo como:

dpm build --format xlsx