-
Notifications
You must be signed in to change notification settings - Fork 0
local_file RAW non supporta correttamente raw.sources[].args.path con {year} #17
Copy link
Copy link
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Problema
Quando raw.sources[].args.path contiene il placeholder {year} e la source e local_file, il path viene normalizzato troppo presto durante il load della config.
In pratica:
- il valore viene trasformato in
Path run_raw()applica_format_args()solo alle stringhe- il placeholder
{year}non viene sostituito local_fileprova a leggere un path letterale tiporu_comunali_{year}.csv
Perche conta
Questo rompe un caso di workflow molto naturale per dataset storici o multi-anno locali:
- una cartella dati locale
- un file per anno
- un solo
dataset.ymlcon path templated
Il problema e emerso mentre testavo inspect schema-diff su dataset multi-anno reali.
Repro minimo
raw:
sources:
- type: local_file
args:
path: "../../data/raw/demo_{year}.csv"
filename: "demo_{year}.csv"Poi:
py -m toolkit.cli.app run raw --config dataset.yml --strict-configEsito prima del fix:
- il toolkit cerca letteralmente
demo_{year}.csv
Comportamento atteso
Il placeholder {year} deve restare disponibile fino a run_raw(), pur mantenendo la risoluzione del path rispetto alla directory del dataset.yml.
Soluzione applicata
Durante la normalizzazione config:
- i path RAW con
{year}vengono risolti come stringhe assolute templated - non vengono convertiti a
Path - il formatter puo ancora sostituire
{year}in fase di run
Verifica
Test automatici aggiunti:
- test config per conservare il template
{year} - smoke test e2e con
local_filetemplated
Test reali usati:
RU Comunali 2018-2024- schema stabile
run rawmulti-anno ok
IRPEF comunale 2018-2023run rawmulti-anno ok- utile anche per
inspect schema-diff
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
✅ Completato