splor-mg / dpm

Data Package Manager
0 stars 0 forks source link

Usar "array of tables" em data.toml #51

Open fjuniorr opened 11 months ago

fjuniorr commented 11 months ago

Seguindo a spec a gente teria:

title = "Data Dependencies"

[[packages]]
name = "sigplan"
path = "https://raw.githubusercontent.com/splor-mg/ppag-planejamento-dados-2024/main/datapackage.yaml"
resources = ["acoes_planejamento"]
token = "GITHUB_TOKEN"

[[packages]]
name = "sisor2023"
path = "https://raw.githubusercontent.com/splor-mg/sisor-dados-2023/main/datapackage.json"

[[packages]]
name = "sisor2024"
path = "https://raw.githubusercontent.com/splor-mg/sisor-dados-2024/main/datapackage.json"
resources = ["acoes_planejamento"]

Sendo acessado com:

import tomllib

with open("data.toml", "rb") as f:
    data = tomllib.load(f)

for package in data['packages']:
    print(f'{package}')
{'name': 'sigplan', 'path': 'https://raw.githubusercontent.com/splor-mg/ppag-planejamento-dados-2024/main/datapackage.yaml', 'resources': ['acoes_planejamento'], 'token': 'GITHUB_TOKEN'}
{'name': 'sisor2023', 'path': 'https://raw.githubusercontent.com/splor-mg/sisor-dados-2023/main/datapackage.json'}
{'name': 'sisor2024', 'path': 'https://raw.githubusercontent.com/splor-mg/sisor-dados-2024/main/datapackage.json', 'resources': ['acoes_planejamento']}

ps. Essa funcionalidade não aparece no site principal.

fjuniorr commented 11 months ago

Em https://github.com/splor-mg/dpm/pull/42 @labanca tinha sugerido algo similar mas com duplicação do nome e eu tinha sido contra:

[packages.sisor2023]
name = "sisor2023"
path = "https://raw.githubusercontent.com/splor-mg/sisor-dados-2023/main/datapackage.json"

Ainda considero que esse isso está sob análise, apesar de ser favorável, porque pode ser conveniente acessar um pacote via data['packages']['package_name'] o que não seria mais possível.