Problem
ll.Feature('individual_education')() (unscoped — all declaring countries) raises instead of returning a partial assembly:
make: *** No rule to make target '.../Nepal/var/individual_education.parquet'. Stop.
Data file .../Nepal/var/individual_education.parquet still missing after running fallbacks.
Nepal declares individual_education in _/data_scheme.yml but ships no source microdata (see the Countries Without Microdata table in CLAUDE.md: Nepal, Armenia, Timor-Leste 2001, Guatemala). The cross-country Feature assembler tries to build every declaring country and dies on the first with no data, taking the whole assembly down.
Impact
Any Feature(name)() call where ≥1 declaring country lacks buildable data fails wholesale — not specific to education. Consumers must manually enumerate the country subset that has data, defeating the no-argument convenience call.
Suggested fix
In the Feature assembly path (and/or diagnostics.load_feature), catch the missing-data / "still missing after fallbacks" error per country, emit a warning, and continue assembling the rest. Optionally record skipped countries in the result .attrs or a log line.
Evidence
Found while validating the #171 education harmonization via Feature('individual_education'). Scoping the call to the 14 countries that have data works perfectly (1.26M rows, fully canonical).
Problem
ll.Feature('individual_education')()(unscoped — all declaring countries) raises instead of returning a partial assembly:Nepal declares
individual_educationin_/data_scheme.ymlbut ships no source microdata (see the Countries Without Microdata table inCLAUDE.md: Nepal, Armenia, Timor-Leste 2001, Guatemala). The cross-countryFeatureassembler tries to build every declaring country and dies on the first with no data, taking the whole assembly down.Impact
Any
Feature(name)()call where ≥1 declaring country lacks buildable data fails wholesale — not specific to education. Consumers must manually enumerate the country subset that has data, defeating the no-argument convenience call.Suggested fix
In the
Featureassembly path (and/ordiagnostics.load_feature), catch the missing-data / "still missing after fallbacks" error per country, emit a warning, and continue assembling the rest. Optionally record skipped countries in the result.attrsor a log line.Evidence
Found while validating the #171 education harmonization via
Feature('individual_education'). Scoping the call to the 14 countries that have data works perfectly (1.26M rows, fully canonical).