owid / etl

A compute graph for loading and transforming OWID's data
https://docs.owid.io/projects/etl
MIT License
77 stars 21 forks source link

data://garden/cait/2022-08-10/ghg_emissions_by_sector broke after changes to `key_indicators` #505

Closed larsyencken closed 2 years ago

larsyencken commented 2 years ago

ValueError: only one table can be loaded at once (tables found: population, population_density)

Full traceback:

Traceback (most recent call last):                                                                    File "/home/owid/lars/etl-memcheck/.venv/bin/run_python_step", line 5, in <module>
    main()
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/click/core.py", line 1130, in
 __call__
    return self.main(*args, **kwargs)
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/click/core.py", line 1055, in
 main
    rv = self.invoke(ctx)
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/click/core.py", line 1404, in
 invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/click/core.py", line 760, in
invoke
    return __callback(*args, **kwargs)
  File "/home/owid/lars/etl-memcheck/etl/run_python_step.py", line 33, in main
    _import_and_run(path, dest_dir)
  File "/home/owid/lars/etl-memcheck/etl/run_python_step.py", line 51, in _import_and_run
    module.run(dest_dir)  # type: ignore
  File "/home/owid/lars/etl-memcheck/etl/steps/data/garden/cait/2022-08-10/ghg_emissions_by_sector.py", line 192, in run                                                                                    tables = {                                                                                        File "/home/owid/lars/etl-memcheck/etl/steps/data/garden/cait/2022-08-10/ghg_emissions_by_sector.p
y", line 193, in <dictcomp>
    gas: create_table_for_gas(df=df, gas=gas, countries_in_regions=countries_in_regions)
  File "/home/owid/lars/etl-memcheck/etl/steps/data/garden/cait/2022-08-10/ghg_emissions_by_sector.p
y", line 107, in create_table_for_gas
    df_gas = geo.add_population_to_dataframe(df=df_gas)
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/owid/datautils/geo.py", line
463, in add_population_to_dataframe
    population = _load_population().rename(
  File "/home/owid/lars/etl-memcheck/.venv/lib/python3.9/site-packages/owid/datautils/geo.py", line
34, in _load_population
    catalog.find("population", namespace="owid", dataset="key_indicators")
  File "/home/owid/lars/etl-memcheck/vendor/owid-catalog-py/owid/catalog/catalogs.py", line 304, in
load
    raise ValueError(f"only one table can be loaded at once (tables found: {', '.join(self.table.tol
ist())})")
ValueError: only one table can be loaded at once (tables found: population, population_density)
larsyencken commented 2 years ago

@pabloarosado Fixed this one upstream in owid-datautils-py: