activity-browser icon indicating copy to clipboard operation
activity-browser copied to clipboard

Better errors needed for scenario LCAs

Open romainsacchi opened this issue 3 years ago • 2 comments

It would be nice to have better error messages when doing scenario LCAs. For example, there's certainly something wrong with my scenario difference file, but it is pretty difficult to understand what the following error message refers to. I suspect some of the exchanges do not point to existing datasets, or something like that, but I'm not sure. Hence, something a bit more verbose would help identify the issue. Right now, a pandas error is thrown.


Traceback (most recent call last):
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tab.py", line 58, in generate_setup
    new_tab = LCAResultsSubTab(data, self)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 112, in __init__
    ef=ElementaryFlowContributionTab(self),
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 882, in __init__
    self.toggle_comparisons(self.switches.indexes.func)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 751, in toggle_comparisons
    self.update_tab()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 821, in update_tab
    self.set_combobox_changes()
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 802, in set_combobox_changes
    self.df = self.update_dataframe(**compare_fields)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/layouts/tabs/LCA_results_tabs.py", line 891, in update_dataframe
    return self.parent.contributions.top_elementary_flow_contributions(
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/bwutils/multilca.py", line 751, in top_elementary_flow_contributions
    labelled_df = self.get_labelled_contribution_dict(
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/bwutils/multilca.py", line 533, in get_labelled_contribution_dict
    joined = self.join_df_with_metadata(
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/activity_browser/bwutils/multilca.py", line 465, in join_df_with_metadata
    df.index = pd.MultiIndex.from_tuples(df.index)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/pandas/core/indexes/multi.py", line 204, in new_meth
    return meth(self_or_cls, *args, **kwargs)
  File "/opt/homebrew/Caskroom/miniforge/base/envs/ab/lib/python3.9/site-packages/pandas/core/indexes/multi.py", line 553, in from_tuples
    raise TypeError("Cannot infer number of levels from empty list")
TypeError: Cannot infer number of levels from empty list

romainsacchi avatar Oct 11 '22 14:10 romainsacchi

I agree with this. There are some fairly low hanging fruits when it comes to the parameter scenarios, however I think this is more general. This should probably be a long term goal for the AB to increase the amount of checks and improve the quality of logging and error documentation.

Zoophobus avatar Oct 12 '22 06:10 Zoophobus

Closing this as resolved in #1025

marc-vdm avatar Sep 14 '23 14:09 marc-vdm