LCA-ActivityBrowser / activity-browser

GUI for brightway2
GNU Lesser General Public License v3.0
144 stars 57 forks source link

Excel database exporter broken #1202

Open marc-vdm opened 8 months ago

marc-vdm commented 8 months ago

Updating AB

What happened?

To reproduce: File > Export database > Choose database & excel > Finish

Same database bw2package works without issue

Potentially related:

Relevant errors

Traceback (most recent call last):
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\activity_browser\ui\wizards\db_export_wizard.py", line 38, in accept
    self.perform_export()
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\activity_browser\ui\wizards\db_export_wizard.py", line 52, in perform_export
    EXPORTERS[export_as](db_name, out_path)
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\activity_browser\bwutils\exporters.py", line 96, in write_lci_excel
    data = ABCSVFormatter(db_name, objs).get_formatted_data(sections)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 202, in get_formatted_data
    data = self.get_unformatted_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 187, in get_unformatted_data
    "activities": [self.get_activity(obj) for obj in self.objs],
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 187, in <listcomp>
    "activities": [self.get_activity(obj) for obj in self.objs],
                   ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 148, in get_activity
    data["exchanges"] = self.get_exchanges(act)
                        ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 142, in get_exchanges
    exchanges = [self.exchange_as_dict(exc) for exc in act.exchanges()]
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2io\export\csv.py", line 142, in <listcomp>
    exchanges = [self.exchange_as_dict(exc) for exc in act.exchanges()]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\activity_browser\bwutils\exporters.py", line 52, in exchange_as_dict
    data.update(**{k: inp[k] for k in inp_fields if inp.get(k)})
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\activity_browser\bwutils\exporters.py", line 52, in <dictcomp>
    data.update(**{k: inp[k] for k in inp_fields if inp.get(k)})
                                                    ^^^^^^^^^^
  File "<frozen _collections_abc>", line 774, in get
  File "C:\Users\meidemtvander\.conda\envs\abd\Lib\site-packages\bw2data\backends\peewee\proxies.py", line 125, in __getitem__
    if key in rp.get('classifications', []):
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'float' is not iterable

Operating system

Windows 10

Conda environment

No response

mrvisscher commented 8 months ago

Just to add that bw2package export works in this case, but import on another machine fails using said package.