Code Monkey home page Code Monkey logo

brightway-live's People

Contributors

michaelweinold avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Forkers

michaelweinold

brightway-live's Issues

`bw2data` error with `config.is_test`

Running:

import micropip
await micropip.install(
    'https://files.brightway.dev/fs-2.5.1-py2.py3-none-any.whl'
)
import os
os.environ["BRIGHTWAY_DIR"] = "/tmp/"
await micropip.install('bw2io==0.9.dev23', keep_going = True)
await micropip.install('bw2calc==2.0.dev14', keep_going = True)
await micropip.install('bw2data==4.0.dev28', keep_going = True)
import bw2data
import bw2calc
import bw2io
bw2io.add_example_database(searchable=False)

Leads to the following error:

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
Cell In[3], line 1
----> 1 bw2io.add_example_database(searchable=False)

File /lib/python3.11/site-packages/bw2io/data/__init__.py:471, in add_example_database(overwrite, searchable)
    469 importer.apply_strategies()
    470 importer.match_database(fields=["name"])
--> 471 importer.write_database(activate_parameters=True, searchable=searchable)
    473 group = "Mobility exchanges"
    474 Group.delete().where(Group.name == group).execute()

File /lib/python3.11/site-packages/bw2io/importers/excel.py:282, in ExcelImporter.write_database(self, **kwargs)
    280 """Same as base ``write_database`` method, but ``activate_parameters`` is True by default."""
    281 kwargs["activate_parameters"] = kwargs.get("activate_parameters", True)
--> 282 super(ExcelImporter, self).write_database(**kwargs)

File /lib/python3.11/site-packages/bw2io/importers/base_lci.py:278, in LCIImporter.write_database(self, data, delete_existing, backend, activate_parameters, db_name, searchable, **kwargs)
    275 self.write_database_parameters(activate_parameters, delete_existing)
    277 existing.update(data)
--> 278 db.write(existing, searchable=searchable)
    280 if activate_parameters:
    281     self._write_activity_parameters(activity_parameters)

File /lib/python3.11/site-packages/bw2data/project.py:432, in writable_project(wrapped, instance, args, kwargs)
    429 @wrapt.decorator
    430 def writable_project(wrapped, instance, args, kwargs):
    431     warnings.warn("`writable_project` is obsolete and does nothing", DeprecationWarning)
--> 432     return wrapped(*args, **kwargs)

File /lib/python3.11/site-packages/bw2data/backends/base.py:525, in SQLiteBackend.write(self, data, process, searchable)
    523 if data:
    524     try:
--> 525         self._efficient_write_many_data(data)
    526     except:
    527         # Purge all data from database, then reraise
    528         self.delete(warn=False)

File /lib/python3.11/site-packages/bw2data/backends/base.py:464, in SQLiteBackend._efficient_write_many_data(self, data, indices)
    461 self.delete(keep_params=True, warn=False, vacuum=False)
    462 exchanges, activities = [], []
--> 464 for index, (key, ds) in enumerate(tqdm_wrapper(data.items(), getattr(config, "is_test"))):
    465     exchanges, activities = self._efficient_write_dataset(
    466         index, key, ds, exchanges, activities
    467     )
    469 if activities:

AttributeError: 'Config' object has no attribute 'is_test'

`bw2calc` can't be Installed

With

resolved, the build process now fails to find the Brightway packages added in

to the conda-forge channel under the dev label (according to CFEP-05):

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

warning  libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
error    libmamba Could not solve for environment specs
    The following packages are incompatible
    β”œβ”€ bw2calc 2.0.dev13*  does not exist (perhaps a typo or a missing channel);
    β”œβ”€ bw2data 4.0.dev21*  is uninstallable because it conflicts with any installable versions previously reported;
    └─ bw2io 0.9.dev21*  is uninstallable because it requires
       └─ bw2calc >=1.7.4 , which does not exist (perhaps a missing channel).

Related discussion:

Add `dev` versions of Brightway packages to `conda-forge` Channel

As per

we can only use the conda-forge and emscripten-forge channels to build the xeus-python kernel at the moment:

Only no-arch packages from conda-forge and emscripten-forge can be installed.

While I was unable to find specific guidance in the conda-forge documentation, it seems (cf. the pandas package) that packages on the conda-forge channel can have development versions also.

Official guidance by the conda-forge team is provided in CFEP05 (according to answers to my question in the conda-forge Element channel).

We should therefore add the dev versions, which are currently only on the cmutel channel to the conda-forge channel.

`fs` imports `grp` in `bw_processing`, which is not supported in WASM

Calling

bw2io.add_example_database(searchable=False)

causes an error:

File /lib/python3.11/site-packages/fs/osfs.py:226, in OSFS._make_access_from_stat(cls, stat_result)
    224 access["uid"] = uid = stat_result.st_uid
    225 if not _WINDOWS_PLATFORM:
--> 226     import grp
    227     import pwd
    229     try:

ModuleNotFoundError: The module 'grp' is removed from the Python standard library in the Pyodide distribution due to browser limitations.
See https://pyodide.org/en/stable/usage/loading-packages.html for more details.

While this was patched by @cmutel in:

It would be best to switch to fsspec in bw_processing.

Fix Imports

Imports seem to be broken. environment.yml

name: xeus-python-kernel
channels:
  - conda-forge
  - nodefaults
dependencies:
  - matplotlib:
      channels:
        - https://repo.mamba.pm/emscripten-forge
  - numpy:
      channels:
        - https://repo.mamba.pm/emscripten-forge
  - pandas:
      channels:
        - https://repo.mamba.pm/emscripten-forge
  - tqdm:
      channels:
        - conda-forge

gives:

Screenshot 2023-04-12 at 13 07 39

File System Issues (`sql`)

Currently, an error is raised when trying to query a SQLite database. This affects the use of peewee:

The present workaround is to not use /drive:

(...) I think it because the the current directory (/drive) is not a MEMFS (unlike the rest of the file system), but rather a DriveFS used, from what I understand, for notebook persistance. Probably it's even less POSIX compliant than MEMFS, which becomes an issue for sqlite. If you write in any other folder say /tmp/ the above example would work.

`micropip.install('bw2XXX')` Errors

Tested in the Pyodide 0.24.0 REPL:

  • bw2calc==2.0.dev14 πŸŽ‰
  • bw2io==0.9.dev21 🀨
ValueError: Can't find a pure Python 3 wheel for: 'docopt', 'unicodecsv', 'ps
util'

...magically worked the second time?!

  • bw2data==4.0.dev25 πŸŽ‰
To Reproduce... ``` >>> await micropip.install('bw2io==0.9.dev21') Traceback (most recent call last): File "", line 1, in File "/lib/python3.11/site-packages/micropip/_commands/install.py", line 138, in install await transaction.gather_requirements(requirements) File "/lib/python3.11/site-packages/micropip/transaction.py", line 197, in gather_requirements await asyncio.gather(*requirement_promises) File "/lib/python3.11/site-packages/micropip/transaction.py", line 204, in add_requirement return await self.add_requirement_inner(Requirement(req)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python3.11/site-packages/micropip/transaction.py", line 319, in add_requirement_inner await self.add_wheel(wheel, req.extras, specifier=str(req.specifier)) File "/lib/python3.11/site-packages/micropip/transaction.py", line 357, in add_wheel await self.gather_requirements(wheel.requires(extras)) File "/lib/python3.11/site-packages/micropip/transaction.py", line 197, in gather_requirements await asyncio.gather(*requirement_promises) File "/lib/python3.11/site-packages/micropip/transaction.py", line 201, in add_requirement return await self.add_requirement_inner(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python3.11/site-packages/micropip/transaction.py", line 319, in add_requirement_inner await self.add_wheel(wheel, req.extras, specifier=str(req.specifier)) File "/lib/python3.11/site-packages/micropip/transaction.py", line 357, in add_wheel await self.gather_requirements(wheel.requires(extras)) File "/lib/python3.11/site-packages/micropip/transaction.py", line 197, in gather_requirements await asyncio.gather(*requirement_promises) File "/lib/python3.11/site-packages/micropip/transaction.py", line 201, in add_requirement return await self.add_requirement_inner(req) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python3.11/site-packages/micropip/transaction.py", line 304, in add_requirement_inner wheel = find_wheel(metadata, req) ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/lib/python3.11/site-packages/micropip/transaction.py", line 403, in find_wheel raise ValueError( ValueError: Can't find a pure Python 3 wheel for 'docopt'. See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package You can use `await micropip.install(..., keep_going=True)` to get a list of all packages with missing wheels. >>> await micropip.install('bw2io==0.9.dev21', keep_going = True) Traceback (most recent call last): File "", line 1, in File "/lib/python3.11/site-packages/micropip/_commands/install.py", line 142, in install raise ValueError( ValueError: Can't find a pure Python 3 wheel for: 'docopt', 'unicodecsv', 'psutil' See: https://pyodide.org/en/stable/usage/faq.html#why-can-t-micropip-find-a-pure-python-wheel-for-a-package >>> micropip.list() Name | Version | Source --------- | ------- | ------- packaging | 23.1 | pyodide micropip | 0.4.0 | pyodide >>> await micropip.install('bw2calc==2.0.dev14', keep_going = True) >>> micropip.list() Name | Version | Source --------------- | --------- | ------- packaging | 23.1 | pyodide micropip | 0.4.0 | pyodide stats-arrays | 0.6.5 | pypi appdirs | 1.4.4 | pypi fs | 2.4.16 | pypi bw-processing | 0.8.5 | pypi matrix-utils | 0.2.5 | pypi bw2calc | 2.0.dev14 | pypi six | 1.16.0 | pyodide numpy | 1.25.2 | pyodide python-dateutil | 2.8.2 | pyodide pytz | 2023.3 | pyodide pandas | 1.5.3 | pyodide pyparsing | 3.1.1 | pyodide setuptools | 68.1.2 | pyodide scipy | 1.11.1 | pyodide distutils | 1.0.0 | pyodide openblas | 0.3.23 | pyodide >>> await micropip.install('bw2data==4.0.dev25', keep_going = True) >>> micropip.list() Name | Version | Source ----------------- | --------- | ------- packaging | 23.1 | pyodide micropip | 0.4.0 | pyodide stats-arrays | 0.6.5 | pypi appdirs | 1.4.4 | pypi fs | 2.4.16 | pypi bw-processing | 0.8.5 | pypi matrix-utils | 0.2.5 | pypi bw2calc | 2.0.dev14 | pypi six | 1.16.0 | pyodide numpy | 1.25.2 | pyodide python-dateutil | 2.8.2 | pyodide | 0.22 | pypi bw2parameters | 1.1.0 | pypi bw2data | 4.0.dev25 | pypi tqdm | 4.66.1 | pyodide wrapt | 1.15.0 | pyodide lxml | 4.9.3 | pyodide pycparser | 2.21 | pyodide typing_extensions | 4.7.1 | pyodide cffi | 1.15.1 | pyodide peewee | 3.16.3 | pyodide distutils | 1.0.0 | pyodide openblas | 0.3.23 | pyodide sqlite3 | 1.0.0 | pyodide >>> await micropip.install('bw2io==0.9.dev21', keep_going = True) >>> import bw2io >>> import bw2data >>> import bw2calc ```

No Packages from `environment.yml` are installed?

  __  _____ _   _ ___
  \ \/ / _ \ | | / __|
   >  <  __/ |_| \__ \
  /_/\_\___|\__,_|___/
​
  xeus-python: a Jupyter kernel for Python
  Python 3.10.2

import peewee

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
/tmp/xpython_42/3073019139.py in <cell line: 1>()
----> 1 import peewee

ModuleNotFoundError: No module named 'peewee'

Clean Brightway Dependencies: Binary Packages, Deprecated Packages and System-Level Packages

Overview

package pure 🐍? issue solution
lxml no not pure 🐍 build for web assembly
numpy no none
openpyxl yes none
psutil no won't work in sandboxed WASM env add option in code to ignore calls to this package
pyprind no, BUT requires psutil replace with tqdm
requests yes none
scipy no none
tqdm yes none
unidecode yes none
voluptuous yes none
xlrd yes none
xlsxwriter yes none
peewee no not pure 🐍 build for web assembly
woosh yes none
wrapt yes none
fasteners yes likely won't work remove as per discussion with @cmutel
docopt no not pure 🐍 replace with pure-python docopt-ng
appdirs yes package deprecated replace with platformdirs
fs yes none
matplotlib no none
tabulate yes none

Full List of Dependencies

conda-tree depends -t brightway2
brightway25_nosolver==1.0.6
  β”œβ”€ bw2analyzer 0.11.4 [required: >=0.11.4]
  β”‚  β”œβ”€ bw2calc 2.0.dev12 [required: any]
  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  β”œβ”€ fs 2.4.15 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ appdirs 1.4.4 [required: >=1.4.3,<2]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ bzip2 1.0.8 [required: >=1.0.8,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libexpat 2.5.0 [required: >=2.5.0,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libffi 3.4.2 [required: >=3.4,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libsqlite 3.40.0 [required: >=3.40.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ ncurses 6.3 [required: >=6.3,<7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ openssl 3.1.0 [required: >=3.1.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ ca-certificates 2022.12.7 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ readline 8.2 [required: >=8.2,<9.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ ncurses 6.3 [required: >=6.3,<7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tk 8.6.12 [required: >=8.6.12,<8.7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libzlib 1.2.13 [required: >=1.2.11,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tzdata 2023c [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ pip 23.0.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        └─ wheel 0.40.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚           └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚              └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pytz 2023.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.10.0,<2]
  β”‚  β”‚  β”‚  β”‚     └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚        └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libopenblas 0.3.21 [required: >=0.3.21,<1.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libgfortran 5.0.0 [required: 5.*]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libgfortran5 12.2.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ llvm-openmp 16.0.0 [required: >=8.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libgfortran5 12.2.0 [required: >=11.3.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of libgfortran5 displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ llvm-openmp 16.0.0 [required: >=14.0.4]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libblas 3.9.0 [required: 3.9.0, 16_osxarm64_openblas]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ liblapack 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libblas 3.9.0 [required: 3.9.0, 16_osxarm64_openblas]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python-dateutil 2.8.2 [required: >=2.8.1]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.5]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of six displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python-tzdata 2023.3 [required: >=2022a]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  └─ pytz 2023.3 [required: >=2020.1]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of pytz displayed above
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.5]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ matrix_utils 0.2.5 [required: >=0.2.5]
  β”‚  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libcblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libgfortran 5.0.0 [required: 5.*]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libgfortran displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libgfortran5 12.2.0 [required: >=11.3.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libgfortran5 displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ liblapack 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of liblapack displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pooch 1.7.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ platformdirs 3.2.0 [required: >=2.5.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ typing-extensions 4.5.0 [required: >=4.5]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚     └─ typing_extensions 4.5.0 [required: 4.5.0, pyha770c72_0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚        └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚           └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ requests 2.28.2 [required: >=2.19.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ certifi 2022.12.7 [required: >=2017.4.17]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ charset-normalizer 3.1.0 [required: >=2,<4]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ idna 3.4 [required: >=2.5,<4]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.7,<4.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ urllib3 1.26.15 [required: >=1.21.1,<1.27]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ brotlipy 0.7.0 [required: >=0.6.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cffi 1.15.1 [required: >=1.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ libffi 3.4.2 [required: >=3.4,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ pycparser 2.21 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚  └─ python 3.11.3 [required: ==2.7.*|>=3.4]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ certifi 2022.12.7 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of certifi displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ cryptography 40.0.1 [required: >=1.3.4]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cffi 1.15.1 [required: >=1.12]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of cffi displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ openssl 3.1.0 [required: >=3.1.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of openssl displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ idna 3.4 [required: >=2.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of idna displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ pyopenssl 23.1.1 [required: >=0.14]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cryptography 40.0.1 [required: >=38.0.0,<41]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of cryptography displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ pysocks 1.7.1 [required: >=1.5.6,<2.0,!=1.5.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ __unix [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.8]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        └─ python 3.11.3 [required: <4.0]
  β”‚  β”‚  β”‚  β”‚  β”‚           └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  β”‚     β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚     β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚     └─ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚        └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: any]
  β”‚  β”‚  β”œβ”€ appdirs 1.4.4 [required: >=1.4.4]
  β”‚  β”‚  β”‚  └─ dependencies of appdirs displayed above
  β”‚  β”‚  β”œβ”€ bw2parameters 0.7 [required: >=0.6.6]
  β”‚  β”‚  β”‚  β”œβ”€ asteval 0.9.29 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.12]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pip 23.0.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of pip displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ setuptools-scm 7.1.0 [required: any]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of packaging displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.8]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ setuptools 67.6.1 [required: >=45]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tomli 2.0.1 [required: >=1.0.0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚     └─ typing-extensions 4.5.0 [required: any]
  β”‚  β”‚  β”‚  β”‚        └─ dependencies of typing-extensions displayed above
  β”‚  β”‚  β”‚  β”œβ”€ astunparse 1.6.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.6.1,<2.0]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of six displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”‚  β”œβ”€ docopt 0.6.2 [required: >=0.6.2]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ fasteners 0.17.3 [required: >=0.14.1]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ lxml 4.9.2 [required: >=4.6]
  β”‚  β”‚  β”‚  β”œβ”€ libxml2 2.10.3 [required: >=2.10.3,<2.11.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ icu 72.1 [required: >=72.1,<73.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libiconv 1.17 [required: >=1.17,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libxslt 1.1.37 [required: >=1.1.37,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libxml2 2.10.3 [required: >=2.10.3,<2.11.0a0]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libxml2 displayed above
  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ peewee 3.16.0 [required: >=3.14.4]
  β”‚  β”‚  β”‚  β”œβ”€ libsqlite 3.40.0 [required: >=3.40.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libsqlite displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ psutil 5.9.4 [required: >=5.8]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ pyprind 2.11.2 [required: >=2.11]
  β”‚  β”‚  β”‚  β”œβ”€ psutil 5.9.4 [required: >=3.2.0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of psutil displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ requests 2.28.2 [required: >=2.25]
  β”‚  β”‚  β”‚  └─ dependencies of requests displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: >=1.6]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: >=0.6.5]
  β”‚  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  β”‚  β”œβ”€ tqdm 4.65.0 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ colorama 0.4.6 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ voluptuous 0.13.1 [required: >=0.12]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ whoosh 2.7.4 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  └─ wrapt 1.15.0 [required: >=1.12]
  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚     └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”œβ”€ matplotlib-base 3.7.1 [required: any]
  β”‚  β”‚  β”œβ”€ certifi 2022.12.7 [required: >=2020.06.20]
  β”‚  β”‚  β”‚  └─ dependencies of certifi displayed above
  β”‚  β”‚  β”œβ”€ contourpy 1.0.7 [required: >=1.0.1]
  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.16]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ cycler 0.11.0 [required: >=0.10]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ fonttools 4.39.3 [required: >=4.22.0]
  β”‚  β”‚  β”‚  β”œβ”€ brotli 1.0.9 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ brotli-bin 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libbrotlidec 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libbrotlicommon 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libbrotlienc 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ libbrotlicommon 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libbrotlidec 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libbrotlidec displayed above
  β”‚  β”‚  β”‚  β”‚  └─ libbrotlienc 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libbrotlienc displayed above
  β”‚  β”‚  β”‚  β”œβ”€ munkres 1.1.4 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ freetype 2.12.1 [required: >=2.12.1,<3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libpng 1.6.39 [required: >=1.6.39,<1.7.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”œβ”€ kiwisolver 1.4.4 [required: >=1.0.1]
  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.4]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  └─ dependencies of packaging displayed above
  β”‚  β”‚  β”œβ”€ pillow 9.5.0 [required: >=6.2.0]
  β”‚  β”‚  β”‚  β”œβ”€ freetype 2.12.1 [required: >=2.12.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of freetype displayed above
  β”‚  β”‚  β”‚  β”œβ”€ lcms2 2.15 [required: >=2.15,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ lerc 4.0.0 [required: >=4.0.0,<5.0a0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libcxx 16.0.0 [required: >=13.0.1]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libdeflate 1.18 [required: >=1.18,<1.19.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libwebp-base 1.3.0 [required: >=1.3.0,<2.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”‚     └─ zstd 1.5.2 [required: >=1.5.2,<1.6.0a0]
  β”‚  β”‚  β”‚  β”‚        β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚        └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libtiff displayed above
  β”‚  β”‚  β”‚  β”œβ”€ libwebp-base 1.3.0 [required: >=1.3.0,<2.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libxcb 1.13 [required: >=1.13,<1.14.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pthread-stubs 0.4 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ xorg-libxau 1.0.9 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ xorg-libxdmcp 1.1.3 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ openjpeg 2.5.0 [required: >=2.5.0,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libpng 1.6.39 [required: >=1.6.39,<1.7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libpng displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libtiff displayed above
  β”‚  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  └─ tk 8.6.12 [required: >=8.6.12,<8.7.0a0]
  β”‚  β”‚  β”‚     └─ dependencies of tk displayed above
  β”‚  β”‚  β”œβ”€ pyparsing 3.0.9 [required: >=2.3.1]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ python-dateutil 2.8.2 [required: >=2.7]
  β”‚  β”‚  β”‚  └─ dependencies of python-dateutil displayed above
  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”œβ”€ pyprind 2.11.2 [required: any]
  β”‚  β”‚  └─ dependencies of pyprind displayed above
  β”‚  β”œβ”€ python 3.11.3 [required: >=3.4]
  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”œβ”€ requests 2.28.2 [required: any]
  β”‚  β”‚  └─ dependencies of requests displayed above
  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  └─ tabulate 0.9.0 [required: any]
  β”‚     └─ python 3.11.3 [required: >=3.7]
  β”‚        └─ dependencies of python displayed above
  β”œβ”€ bw2calc 2.0.dev12 [required: >=2.0.dev12]
  β”‚  └─ dependencies of bw2calc displayed above
  β”œβ”€ bw2data 4.0.dev18 [required: >=4.0.dev18]
  β”‚  └─ dependencies of bw2data displayed above
  β”œβ”€ bw2io 0.9.dev14 [required: >=0.9.dev10]
  β”‚  β”œβ”€ astunparse 1.6.3 [required: >=1.6.1]
  β”‚  β”‚  └─ dependencies of astunparse displayed above
  β”‚  β”œβ”€ bw2calc 2.0.dev12 [required: >=2.0.dev12]
  β”‚  β”‚  └─ dependencies of bw2calc displayed above
  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: >=4.0.dev17]
  β”‚  β”‚  └─ dependencies of bw2data displayed above
  β”‚  β”œβ”€ bw_migrations 0.2 [required: any]
  β”‚  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of bw2data displayed above
  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ bw_processing 0.8.2 [required: any]
  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”œβ”€ lxml 4.9.2 [required: any]
  β”‚  β”‚  └─ dependencies of lxml displayed above
  β”‚  β”œβ”€ mrio_common_metadata 0.2.1 [required: any]
  β”‚  β”‚  β”œβ”€ openpyxl 3.1.1 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ et_xmlfile 1.1.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ pyxlsb 1.0.10 [required: any]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  └─ xlrd 2.0.1 [required: any]
  β”‚  β”‚     └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚        └─ dependencies of python displayed above
  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”œβ”€ openpyxl 3.1.1 [required: any]
  β”‚  β”‚  └─ dependencies of openpyxl displayed above
  β”‚  β”œβ”€ psutil 5.9.4 [required: any]
  β”‚  β”‚  └─ dependencies of psutil displayed above
  β”‚  β”œβ”€ pyprind 2.11.2 [required: any]
  β”‚  β”‚  └─ dependencies of pyprind displayed above
  β”‚  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: >=0.6.5]
  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ tqdm 4.65.0 [required: any]
  β”‚  β”‚  └─ dependencies of tqdm displayed above
  β”‚  β”œβ”€ unidecode 1.3.6 [required: any]
  β”‚  β”‚  └─ python 3.11.3 [required: >=3.5]
  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”œβ”€ voluptuous 0.13.1 [required: any]
  β”‚  β”‚  └─ dependencies of voluptuous displayed above
  β”‚  β”œβ”€ xlrd 2.0.1 [required: any]
  β”‚  β”‚  └─ dependencies of xlrd displayed above
  β”‚  └─ xlsxwriter 3.0.9 [required: any]
  β”‚     └─ python 3.11.3 [required: >=3.6]
  β”‚        └─ dependencies of python displayed above
  β”œβ”€ bw_migrations 0.2 [required: any]
  β”‚  └─ dependencies of bw_migrations displayed above
  β”œβ”€ bw_processing 0.8.2 [required: >=0.8.2]
  β”‚  └─ dependencies of bw_processing displayed above
  β”œβ”€ matrix_utils 0.2.5 [required: >=0.2.5]
  β”‚  └─ dependencies of matrix_utils displayed above
  β”œβ”€ mrio_common_metadata 0.2.1 [required: any]
  β”‚  └─ dependencies of mrio_common_metadata displayed above
  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  └─ dependencies of numpy displayed above
  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  └─ dependencies of python displayed above
  └─ stats_arrays 0.6.5 [required: >=0.6.5]
     └─ dependencies of stats_arrays displayed above

Work Plan

System level packages (WASM incompatible)

  • psutil: make optional (potentially catch errors in functions that call the package)
  • fasteners: remove (as per discussions with @cmutel)
  • pyprind: replace with tqdm

Deprecated packages

  • appdirs: replace with platformdirs

Binary packages

  • docopt: remove (as per discussions with @cmutel)
  • lxml: #9
  • peewee: #8

workaround for https not working with requests module

requests cannot do https, but using pyodide's open_url does. here's a workaround that can be applied to everywhere requests is used. open_url() returns a StringIO, therefore it needs to be json decoded and is then available. proper fix is likely a wrapper function doing that for us, anyways here the fix for 2nd notebook the "Interfaces" section:

from pyodide.http import open_url
import json
class DenmarkCO2Interface:
    size = (1,)

    def __next__(self):
        # Supposed to work with ISO 8601 but T intervals raise error...
        URL = "https://api.energidataservice.dk/dataset/co2emis?start=now-P1D&end=now"
        print("Querying energidataservice.dk API")
        #result = requests.get(URL).json()['records'][0]['CO2Emission']
        result = open_url(URL)
        #print(result.getvalue())
        data = json.load(result)['records'][0]['CO2Emission']
        print(data)
        return np.array([data]) / 1000 # g to kg

`bw_processing.datapackage.fs.close()` uses `grp` (which is not available in Pyodide)

Running

import micropip
import os
os.environ["BRIGHTWAY_DIR"] = "/tmp/"
await micropip.install('bw2io==0.9.dev23', keep_going = True)
await micropip.install('bw2calc==2.0.dev14', keep_going = True)
await micropip.install('bw2data==4.0.dev28', keep_going = True)
import bw2data
import bw2calc
import bw2io
bw2io.add_example_database(searchable=False)

in https://live.brightway.dev/ returns the error:

/lib/python3.11/site-packages/bw_processing/datapackage.py:382, in Datapackage.finalize_serialization(self)
    374 self._check_length_consistency()
    376 file_writer(
    377     data=self.metadata,
    378     fs=self.fs,
    379     resource="datapackage.json",
    380     mimetype="application/json",
    381 )
--> 382 self.fs.close()
(...)
File /lib/python3.11/site-packages/fs/osfs.py:511, in OSFS._scandir(self, path, namespaces)
    505         info["stat"] = {
    506             k: getattr(stat_result, k)
    507             for k in dir(stat_result)
    508             if k.startswith("st_")
    509         }
    510     if "access" in namespaces:
--> 511         info["access"] = self._make_access_from_stat(
    512             stat_result
    513         )
    514 if "lstat" in namespaces:
    515     lstat_result = dir_entry.stat(follow_symlinks=False)

File /lib/python3.11/site-packages/fs/osfs.py:226, in OSFS._make_access_from_stat(cls, stat_result)
    224 access["uid"] = uid = stat_result.st_uid
    225 if not _WINDOWS_PLATFORM:
--> 226     import grp
    227     import pwd
    229     try:

ModuleNotFoundError: The module 'grp' is removed from the Python standard library in the Pyodide distribution due to browser limitations.
See https://pyodide.org/en/stable/usage/loading-packages.html for more details.
Full Output ``` --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) Cell In[5], line 1 ----> 1 bw2io.add_example_database(searchable=False)

File /lib/python3.11/site-packages/bw2io/data/init.py:471, in add_example_database(overwrite, searchable)
469 importer.apply_strategies()
470 importer.match_database(fields=["name"])
--> 471 importer.write_database(activate_parameters=True, searchable=searchable)
473 group = "Mobility exchanges"
474 Group.delete().where(Group.name == group).execute()

File /lib/python3.11/site-packages/bw2io/importers/excel.py:282, in ExcelImporter.write_database(self, **kwargs)
280 """Same as base write_database method, but activate_parameters is True by default."""
281 kwargs["activate_parameters"] = kwargs.get("activate_parameters", True)
--> 282 super(ExcelImporter, self).write_database(**kwargs)

File /lib/python3.11/site-packages/bw2io/importers/base_lci.py:273, in LCIImporter.write_database(self, data, delete_existing, backend, activate_parameters, db_name, searchable, **kwargs)
271 warnings.simplefilter("ignore")
272 db = Database(db_name, backend=backend)
--> 273 db.register(**self.metadata)
275 self.write_database_parameters(activate_parameters, delete_existing)
277 existing.update(data)

File /lib/python3.11/site-packages/bw2data/backends/base.py:220, in SQLiteBackend.register(self, write_empty, **kwargs)
218 super().register(**kwargs)
219 if write_empty:
--> 220 self.write({}, searchable=False)

File /lib/python3.11/site-packages/bw2data/project.py:432, in writable_project(wrapped, instance, args, kwargs)
429 @wrapt.decorator
430 def writable_project(wrapped, instance, args, kwargs):
431 warnings.warn("writable_project is obsolete and does nothing", DeprecationWarning)
--> 432 return wrapped(*args, **kwargs)

File /lib/python3.11/site-packages/bw2data/backends/base.py:535, in SQLiteBackend.write(self, data, process, searchable)
532 self.make_searchable(reset=True)
534 if process:
--> 535 self.process()

File /lib/python3.11/site-packages/bw2data/backends/base.py:826, in SQLiteBackend.process(self, csv)
813 df = pandas.DataFrame([get_csv_data_dict(ds) for ds in self])
814 dp.add_csv_metadata(
815 dataframe=df,
816 valid_for=[
(...)
823 name=clean_datapackage_name(self.name + " activity metadata"),
824 )
--> 826 dp.finalize_serialization()
828 self.metadata["depends"] = sorted(dependents)
829 self.metadata["dirty"] = False

File /lib/python3.11/site-packages/bw_processing/datapackage.py:382, in Datapackage.finalize_serialization(self)
374 self._check_length_consistency()
376 file_writer(
377 data=self.metadata,
378 fs=self.fs,
379 resource="datapackage.json",
380 mimetype="application/json",
381 )
--> 382 self.fs.close()

File /lib/python3.11/site-packages/fs/zipfs.py:297, in WriteZipFS.close(self)
295 if not self.isclosed():
296 try:
--> 297 self.write_zip()
298 finally:
299 self._temp_fs.close()

File /lib/python3.11/site-packages/fs/zipfs.py:325, in WriteZipFS.write_zip(self, file, compression, encoding)
309 """Write zip to a file.
310
311 Arguments:
(...)
322
323 """
324 if not self.isclosed():
--> 325 write_zip(
326 self._temp_fs,
327 file or self._file,
328 compression=compression or self.compression,
329 encoding=encoding or self.encoding,
330 )

File /lib/python3.11/site-packages/fs/compress.py:60, in write_zip(src_fs, file, compression, encoding, walker)
58 with _zip:
59 gen_walk = walker.info(src_fs, namespaces=["details", "stat", "access"])
---> 60 for path, info in gen_walk:
61 # Zip names must be relative, directory names must end
62 # with a slash.
63 zip_name = relpath(path + "/" if info.is_dir else path)
64 if not six.PY3:
65 # Python2 expects bytes filenames

File /lib/python3.11/site-packages/fs/walk.py:400, in Walker.info(self, fs, path, namespaces)
398 _combine = combine
399 _walk = self._iter_walk(fs, path=path, namespaces=namespaces)
--> 400 for _path, info in _walk:
401 if info is not None:
402 yield _combine(_path, info.name), info

File /lib/python3.11/site-packages/fs/walk.py:427, in Walker._walk_breadth(self, fs, path, namespaces)
425 while queue:
426 dir_path = pop()
--> 427 for info in _scan(fs, dir_path, namespaces=namespaces):
428 if info.is_dir:
429 _depth = _calculate_depth(dir_path) - depth + 1

File /lib/python3.11/site-packages/fs/walk.py:287, in Walker._scan(self, fs, dir_path, namespaces)
273 """Get an iterator of Info objects for a directory path.
274
275 Arguments:
(...)
284
285 """
286 try:
--> 287 for info in fs.scandir(dir_path, namespaces=namespaces):
288 yield info
289 except FSError as error:

File /lib/python3.11/site-packages/fs/osfs.py:511, in OSFS.scandir(self, path, namespaces)
505 info["stat"] = {
506 k: getattr(stat_result, k)
507 for k in dir(stat_result)
508 if k.startswith("st
")
509 }
510 if "access" in namespaces:
--> 511 info["access"] = self._make_access_from_stat(
512 stat_result
513 )
514 if "lstat" in namespaces:
515 lstat_result = dir_entry.stat(follow_symlinks=False)

File /lib/python3.11/site-packages/fs/osfs.py:226, in OSFS._make_access_from_stat(cls, stat_result)
224 access["uid"] = uid = stat_result.st_uid
225 if not _WINDOWS_PLATFORM:
--> 226 import grp
227 import pwd
229 try:

ModuleNotFoundError: The module 'grp' is removed from the Python standard library in the Pyodide distribution due to browser limitations.
See https://pyodide.org/en/stable/usage/loading-packages.html for more details.

</details>

`bw2data` can't be Installed

error    libmamba Could not solve for environment specs
    The following packages are incompatible
    β”œβ”€ bw2data 4.0.dev21**  is uninstallable because it requires
    β”‚  └─ requests >=1.1.0  but there are no viable options
    β”‚     β”œβ”€ requests [2.23.0|2.24.0|...|2.29.0] would require
    β”‚     β”‚  └─ urllib3 [>=1.21.1,<1.26,!=1.25.0,!=1.25.1 |>=1.21.1,<1.27 ] but there are no viable options
    β”‚     β”‚     β”œβ”€ urllib3 [1.24.3|2.0.0|2.0.1|2.0.2|2.0.3] would require
    β”‚     β”‚     β”‚  └─ pysocks >=1.5.6,<2.0,!=1.5.7  but there are no viable options
    β”‚     β”‚     β”‚     β”œβ”€ pysocks 1.7.1 would require
    β”‚     β”‚     β”‚     β”‚  └─ __win  , which is missing on the system;
    β”‚     β”‚     β”‚     └─ pysocks 1.7.1 would require
    β”‚     β”‚     β”‚        └─ __unix  , which is missing on the system;
    β”‚     β”‚     └─ urllib3 [1.25.10|1.25.11|...|1.26.9] would require
    β”‚     β”‚        └─ brotlipy >=0.6.0 , which does not exist (perhaps a missing channel);
    β”‚     └─ requests 2.31.0 would require
    β”‚        └─ urllib3 >=1.21.1,<3  but there are no viable options
    β”‚           β”œβ”€ urllib3 [1.24.3|2.0.0|2.0.1|2.0.2|2.0.3], which cannot be installed (as previously explained);
    β”‚           β”œβ”€ urllib3 [1.25.10|1.25.11|...|1.26.9], which cannot be installed (as previously explained);
    β”‚           └─ urllib3 [2.0.3|2.0.4] would require
    β”‚              └─ brotli-python >=1.0.9 , which does not exist (perhaps a missing channel);
    └─ bw2io 0.9.dev21**  is uninstallable because it requires
       └─ bw2data >=3.5.1  but there are no viable options
          β”œβ”€ bw2data 4.0.dev21, which cannot be installed (as previously explained);
          └─ bw2data [3.6.5|3.6.6] would require
             └─ psutil  , which does not exist (perhaps a missing channel).

Related discussion:

`bw2data` can't import `bw_processing` during emscripten-forge Build

The simple test I added during the bw2calc build:

fails with the message:

=================================== FAILURES ===================================
_____________________________ test_import_bw2calc ______________________________

    def test_import_bw2calc():
>       import bw2calc

test_import_bw2calc.py:2: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/lib/python3.10/site-packages/bw2calc/__init__.py:52: in <module>
    from .dense_lca import DenseLCA
/lib/python3.10/site-packages/bw2calc/dense_lca.py:3: in <module>
    from .lca import LCA
/lib/python3.10/site-packages/bw2calc/lca.py:10: in <module>
    import bw_processing as bwp
/lib/python3.10/site-packages/bw_processing/__init__.py:48: in <module>
    __version__ = get_version_tuple()

I confirmed that the latest version of bw_processing and the bw_parameters.utils.get_version_tuple() function work fine on their own.

List all Brightway Dependencies

Adding new packages to a Pyodide kernel involves:

(JupyterLite) "Use additional Python packages"
(Pyodide) "Loading packages"

For instance,

%pip install -q bw2io

throws the error

ValueError: Can't find a pure Python 3 wheel for 'psutil'.
See: https://pyodide.org/en/stable/usage/faq.html#micropip-can-t-find-a-pure-python-wheel
You can use `micropip.install(..., keep_going=True)`to get a list of all packages with missing wheels.

This was briefly discussed in 2022 with the Pyodide team in pyodide/pyodide#3056:

psutil won't be very useful on Pyodide. Emscripten platform does not support any process, resource, signals, or similar POSIX APIs. Browsers are also sandboxed. You won't be able to see or modify any processes on the host system.

A complete list of all dependencies of the Brightway ecosystem must therefore be compiled.

Tasks

  • list all requirements of bw2io (and their pyodide/emscripten-forge status)
  • list all requirements of bw2data (and their pyodide/emscripten-forge status)
  • list all requirements of bw2calc (and their pyodide/emscripten-forge status)
  • list all requirements of bw2analyzer (and their pyodide/emscripten-forge status)

`bw2parameters` > `pint` Import Error

Trying to import bw2io, bw2data or bw2calc using the xeus-python-kernel-based JupyterLite version with these packages, I get the error:

---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
Cell In[6], line 1
----> 1 import bw2data as bd

File /lib/python3.10/site-packages/bw2data/__init__.py:81
     78 mapping = Mapping()
     80 from .updates import Updates
---> 81 from .parameters import parameters
     83 Updates.check_status()

File /lib/python3.10/site-packages/bw2data/parameters.py:8
      6 import asteval
      7 from asteval import Interpreter
----> 8 from bw2parameters import ParameterSet
      9 from bw2parameters.errors import MissingName
     10 from peewee import (
     11     BooleanField,
     12     Check,
   (...)
     17     TextField,
     18 )

File /lib/python3.10/site-packages/bw2parameters/__init__.py:17
      1 __all__ = (
      2     "__version__",
      3     "FormulaSubstitutor",
   (...)
     12     "substitute_in_formulas",
     13 )
     16 from .errors import MissingName
---> 17 from .interpreter import Interpreter, PintInterpreter
     18 from .mangling import (
     19     FormulaSubstitutor,
     20     mangle_formula,
     21     prefix_parameter_dict,
     22     substitute_in_formulas,
     23 )
     24 from .parameter_set import ParameterSet, PintParameterSet

File /lib/python3.10/site-packages/bw2parameters/interpreter.py:9
      6 from asteval import NameFinder
      8 from .errors import MissingName
----> 9 from .pint import PintWrapper
     12 class Interpreter(ASTInterpreter):
     13     def __init__(self, *args, **kwargs):

File /lib/python3.10/site-packages/bw2parameters/pint.py:80
     76         else:
     77             return self.Quantity(value=amount, units=unit)
---> 80 PintWrapper = PintWrapperSingleton()

File /lib/python3.10/site-packages/bw2parameters/pint.py:17, in PintWrapperSingleton.__init__(self)
     15 if not hasattr(self, "string_preprocessor"):
     16     self.string_preprocessor = string_preprocessor
---> 17     self.ureg = UnitRegistry()
     18     self.Quantity = self.ureg.Quantity
     19     self.Unit = self.ureg.Unit

File /lib/python3.10/site-packages/pint/facets/plain/registry.py:138, in RegistryMeta.__call__(self, *args, **kwargs)
    136 def __call__(self, *args, **kwargs):
    137     obj = super().__call__(*args, **kwargs)
--> 138     obj._after_init()
    139     return obj

File /lib/python3.10/site-packages/pint/facets/system/registry.py:78, in GenericSystemRegistry._after_init(self)
     72 def _after_init(self) -> None:
     73     """Invoked at the end of ``__init__``.
     74 
     75     - Create default group and add all orphan units to it
     76     - Set default system
     77     """
---> 78     super()._after_init()
     80     #: System name to be used by default.
     81     self._default_system_name = self._default_system_name or self._defaults.get(
     82         "system", None
     83     )

File /lib/python3.10/site-packages/pint/facets/group/registry.py:64, in GenericGroupRegistry._after_init(self)
     58 def _after_init(self) -> None:
     59     """Invoked at the end of ``__init__``.
     60 
     61     - Create default group and add all orphan units to it
     62     - Set default system
     63     """
---> 64     super()._after_init()
     66     #: Copy units not defined in any group to the default group
     67     if "group" in self._defaults:

File /lib/python3.10/site-packages/pint/facets/plain/registry.py:307, in GenericPlainRegistry._after_init(self)
    305 if self._filename == "":
    306     path = pathlib.Path(__file__).parent.parent.parent / "default_en.txt"
--> 307     loaded_files = self.load_definitions(path, True)
    308 elif self._filename is not None:
    309     loaded_files = self.load_definitions(self._filename)

File /lib/python3.10/site-packages/pint/facets/plain/registry.py:550, in GenericPlainRegistry.load_definitions(self, file, is_resource)
    548     parsed_project = self._def_parser.parse_string("\n".join(file))
    549 else:
--> 550     parsed_project = self._def_parser.parse_file(file)
    552 for definition in self._def_parser.iter_parsed_project(parsed_project):
    553     self._helper_dispatch_adder(definition)

File /lib/python3.10/site-packages/pint/delegates/txt_defparser/defparser.py:137, in DefParser.parse_file(self, filename, cfg)
    134 def parse_file(
    135     self, filename: Union[pathlib.Path, str], cfg: Optional[ParserConfig] = None
    136 ):
--> 137     return fp.parse(
    138         filename,
    139         _PintParser,
    140         cfg or self._default_config,
    141         diskcache=self._diskcache,
    142     )

File /lib/python3.10/site-packages/pint/_vendor/flexparser.py:1393, in parse(entry_point, spec, config, strip_spaces, delimiters, locator, prefer_resource_as_file, **extra_parser_kwargs)
   1385 elif not (isinstance(entry_point, tuple) and len(entry_point) == 2):
   1386     raise TypeError(
   1387         f"Cannot handle type {type(entry_point)}, "
   1388         "use str or pathlib.Path for files or "
   1389         "(package: str, resource_name: str) tuple "
   1390         "for a resource."
   1391     )
-> 1393 pp[None] = parsed = parser.parse(entry_point)
   1394 pending.extend(
   1395     (parsed.location, el.target)
   1396     for el in parsed.parsed_source.filter_by(IncludeStatement)
   1397 )
   1399 while pending:

File /lib/python3.10/site-packages/pint/_vendor/flexparser.py:1010, in Parser.parse(self, source_location)
   1007     return self.parse_file(pathlib.Path(source_location))
   1009 if isinstance(source_location, pathlib.Path):
-> 1010     return self.parse_file(source_location)
   1012 raise TypeError(
   1013     f"Unknown type {type(source_location)}, "
   1014     "use str or pathlib.Path for files or "
   1015     "(package: str, resource_name: str) tuple "
   1016     "for a resource."
   1017 )

File /lib/python3.10/site-packages/pint/delegates/txt_defparser/defparser.py:77, in _PintParser.parse_file(self, path)
     75 def parse_file(self, path: pathlib.Path) -> PintSource:
     76     if self._diskcache is None:
---> 77         return super().parse_file(path)
     78     content, basename = self._diskcache.load(path, super().parse_file)
     79     return content

File /lib/python3.10/site-packages/pint/_vendor/flexparser.py:1042, in Parser.parse_file(self, path)
   1034 def parse_file(self, path: pathlib.Path) -> ParsedSource[RBT, CT]:
   1035     """Parse a file into a ParsedSourceFile.
   1036 
   1037     Parameters
   (...)
   1040         path of the file.
   1041     """
-> 1042     with path.open(mode="rb") as fi:
   1043         content = fi.read()
   1045     bos = BOF(
   1046         Hash.from_bytes(self._hasher, content), path, path.stat().st_mtime
   1047     ).set_simple_position(0, 0, 0)

File /lib/python3.10/pathlib.py:1117, in Path.open(self, mode, buffering, encoding, errors, newline)
   1115 if "b" not in mode:
   1116     encoding = io.text_encoding(encoding)
-> 1117 return self._accessor.open(self, mode, buffering, encoding, errors,
   1118                            newline)

FileNotFoundError: [Errno 44] No such file or directory: '/lib/python3.10/site-packages/pint/default_en.txt'

Triage all Brightway Dependencies

Explicit Dependencies

package pure 🐍? issue solution
lxml no not pure 🐍 build for web assembly
numpy no none
openpyxl yes none
psutil no won't work in sandboxed WASM env add option in code to ignore calls to this package
pyprind yes none
requests yes none
scipy no none
tqdm yes none
unidecode yes none
voluptuous yes none
xlrd yes none
xlsxwriter yes none
peewee no not pure 🐍 build for web assembly
woosh yes none
wrapt yes none
fasteners yes likely won't work remove as per discussion with @cmutel
docopt no not pure 🐍 replace with pure-python docopt-ng
appdirs yes package deprecated replace with platformdirs
fs yes none
matplotlib no none
tabulate yes none

Full List of Dependencies

conda-tree depends -t brightway2_nosolver
brightway25_nosolver==1.0.6
  β”œβ”€ bw2analyzer 0.11.4 [required: >=0.11.4]
  β”‚  β”œβ”€ bw2calc 2.0.dev12 [required: any]
  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  β”œβ”€ fs 2.4.15 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ appdirs 1.4.4 [required: >=1.4.3,<2]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ bzip2 1.0.8 [required: >=1.0.8,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libexpat 2.5.0 [required: >=2.5.0,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libffi 3.4.2 [required: >=3.4,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libsqlite 3.40.0 [required: >=3.40.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ ncurses 6.3 [required: >=6.3,<7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ openssl 3.1.0 [required: >=3.1.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ ca-certificates 2022.12.7 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ readline 8.2 [required: >=8.2,<9.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ ncurses 6.3 [required: >=6.3,<7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tk 8.6.12 [required: >=8.6.12,<8.7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libzlib 1.2.13 [required: >=1.2.11,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tzdata 2023c [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ pip 23.0.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        └─ wheel 0.40.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚           └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚              └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pytz 2023.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.10.0,<2]
  β”‚  β”‚  β”‚  β”‚     └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚        └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libopenblas 0.3.21 [required: >=0.3.21,<1.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libgfortran 5.0.0 [required: 5.*]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libgfortran5 12.2.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ llvm-openmp 16.0.0 [required: >=8.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libgfortran5 12.2.0 [required: >=11.3.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of libgfortran5 displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ llvm-openmp 16.0.0 [required: >=14.0.4]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libblas 3.9.0 [required: 3.9.0, 16_osxarm64_openblas]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ liblapack 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libblas 3.9.0 [required: 3.9.0, 16_osxarm64_openblas]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python-dateutil 2.8.2 [required: >=2.8.1]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.5]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of six displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python-tzdata 2023.3 [required: >=2022a]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  └─ pytz 2023.3 [required: >=2020.1]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of pytz displayed above
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.5]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ matrix_utils 0.2.5 [required: >=0.2.5]
  β”‚  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcblas 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libcblas displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libgfortran 5.0.0 [required: 5.*]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libgfortran displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libgfortran5 12.2.0 [required: >=11.3.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libgfortran5 displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ liblapack 3.9.0 [required: >=3.9.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of liblapack displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pooch 1.7.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ platformdirs 3.2.0 [required: >=2.5.0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ typing-extensions 4.5.0 [required: >=4.5]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚     └─ typing_extensions 4.5.0 [required: 4.5.0, pyha770c72_0]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚        └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚           └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ requests 2.28.2 [required: >=2.19.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ certifi 2022.12.7 [required: >=2017.4.17]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ charset-normalizer 3.1.0 [required: >=2,<4]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ idna 3.4 [required: >=2.5,<4]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.7,<4.0]
  β”‚  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ urllib3 1.26.15 [required: >=1.21.1,<1.27]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ brotlipy 0.7.0 [required: >=0.6.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cffi 1.15.1 [required: >=1.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ libffi 3.4.2 [required: >=3.4,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ pycparser 2.21 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚  └─ python 3.11.3 [required: ==2.7.*|>=3.4]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ certifi 2022.12.7 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of certifi displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ cryptography 40.0.1 [required: >=1.3.4]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cffi 1.15.1 [required: >=1.12]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of cffi displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ openssl 3.1.0 [required: >=3.1.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of openssl displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ idna 3.4 [required: >=2.0.0]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ dependencies of idna displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ pyopenssl 23.1.1 [required: >=0.14]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ cryptography 40.0.1 [required: >=38.0.0,<41]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”‚  └─ dependencies of cryptography displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        β”œβ”€ pysocks 1.7.1 [required: >=1.5.6,<2.0,!=1.5.7]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  β”œβ”€ __unix [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚  └─ python 3.11.3 [required: >=3.8]
  β”‚  β”‚  β”‚  β”‚  β”‚        β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”‚        └─ python 3.11.3 [required: <4.0]
  β”‚  β”‚  β”‚  β”‚  β”‚           └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  β”‚     β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚     β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚     └─ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚        └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ setuptools 67.6.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: any]
  β”‚  β”‚  β”œβ”€ appdirs 1.4.4 [required: >=1.4.4]
  β”‚  β”‚  β”‚  └─ dependencies of appdirs displayed above
  β”‚  β”‚  β”œβ”€ bw2parameters 0.7 [required: >=0.6.6]
  β”‚  β”‚  β”‚  β”œβ”€ asteval 0.9.29 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.12]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pip 23.0.1 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of pip displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ setuptools-scm 7.1.0 [required: any]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of packaging displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.8]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ setuptools 67.6.1 [required: >=45]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ dependencies of setuptools displayed above
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ tomli 2.0.1 [required: >=1.0.0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚     β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚     └─ typing-extensions 4.5.0 [required: any]
  β”‚  β”‚  β”‚  β”‚        └─ dependencies of typing-extensions displayed above
  β”‚  β”‚  β”‚  β”œβ”€ astunparse 1.6.3 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”‚  └─ six 1.16.0 [required: >=1.6.1,<2.0]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of six displayed above
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”‚  β”œβ”€ bw_processing 0.8.2 [required: >=0.8]
  β”‚  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”‚  β”œβ”€ docopt 0.6.2 [required: >=0.6.2]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ fasteners 0.17.3 [required: >=0.14.1]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ lxml 4.9.2 [required: >=4.6]
  β”‚  β”‚  β”‚  β”œβ”€ libxml2 2.10.3 [required: >=2.10.3,<2.11.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ icu 72.1 [required: >=72.1,<73.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libiconv 1.17 [required: >=1.17,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libxslt 1.1.37 [required: >=1.1.37,<2.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libxml2 2.10.3 [required: >=2.10.3,<2.11.0a0]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libxml2 displayed above
  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ peewee 3.16.0 [required: >=3.14.4]
  β”‚  β”‚  β”‚  β”œβ”€ libsqlite 3.40.0 [required: >=3.40.0,<4.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libsqlite displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ psutil 5.9.4 [required: >=5.8]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ pyprind 2.11.2 [required: >=2.11]
  β”‚  β”‚  β”‚  β”œβ”€ psutil 5.9.4 [required: >=3.2.0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of psutil displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ requests 2.28.2 [required: >=2.25]
  β”‚  β”‚  β”‚  └─ dependencies of requests displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: >=1.6]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: >=0.6.5]
  β”‚  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  β”‚  β”œβ”€ tqdm 4.65.0 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ colorama 0.4.6 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ voluptuous 0.13.1 [required: >=0.12]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ whoosh 2.7.4 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  └─ wrapt 1.15.0 [required: >=1.12]
  β”‚  β”‚     β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚     β”‚  └─ dependencies of python displayed above
  β”‚  β”‚     └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”œβ”€ matplotlib-base 3.7.1 [required: any]
  β”‚  β”‚  β”œβ”€ certifi 2022.12.7 [required: >=2020.06.20]
  β”‚  β”‚  β”‚  └─ dependencies of certifi displayed above
  β”‚  β”‚  β”œβ”€ contourpy 1.0.7 [required: >=1.0.1]
  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.16]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ cycler 0.11.0 [required: >=0.10]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ fonttools 4.39.3 [required: >=4.22.0]
  β”‚  β”‚  β”‚  β”œβ”€ brotli 1.0.9 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ brotli-bin 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libbrotlidec 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libbrotlicommon 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ libbrotlienc 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚     └─ libbrotlicommon 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libbrotlidec 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libbrotlidec displayed above
  β”‚  β”‚  β”‚  β”‚  └─ libbrotlienc 1.0.9 [required: 1.0.9, h1a8c8d9_8]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of libbrotlienc displayed above
  β”‚  β”‚  β”‚  β”œβ”€ munkres 1.1.4 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: any]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ freetype 2.12.1 [required: >=2.12.1,<3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libpng 1.6.39 [required: >=1.6.39,<1.7.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”œβ”€ kiwisolver 1.4.4 [required: >=1.0.1]
  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.4]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.23.5,<2.0a0]
  β”‚  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”‚  β”œβ”€ packaging 23.0 [required: >=20.0]
  β”‚  β”‚  β”‚  └─ dependencies of packaging displayed above
  β”‚  β”‚  β”œβ”€ pillow 9.5.0 [required: >=6.2.0]
  β”‚  β”‚  β”‚  β”œβ”€ freetype 2.12.1 [required: >=2.12.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of freetype displayed above
  β”‚  β”‚  β”‚  β”œβ”€ lcms2 2.15 [required: >=2.15,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ lerc 4.0.0 [required: >=4.0.0,<5.0a0]
  β”‚  β”‚  β”‚  β”‚     β”‚  └─ libcxx 16.0.0 [required: >=13.0.1]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libdeflate 1.18 [required: >=1.18,<1.19.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libwebp-base 1.3.0 [required: >=1.3.0,<2.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”‚     β”œβ”€ xz 5.2.6 [required: >=5.2.6,<6.0a0]
  β”‚  β”‚  β”‚  β”‚     └─ zstd 1.5.2 [required: >=1.5.2,<1.6.0a0]
  β”‚  β”‚  β”‚  β”‚        β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚        └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libjpeg-turbo 2.1.5.1 [required: >=2.1.5.1,<3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libtiff displayed above
  β”‚  β”‚  β”‚  β”œβ”€ libwebp-base 1.3.0 [required: >=1.3.0,<2.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ libxcb 1.13 [required: >=1.13,<1.14.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ pthread-stubs 0.4 [required: any]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ xorg-libxau 1.0.9 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ xorg-libxdmcp 1.1.3 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ openjpeg 2.5.0 [required: >=2.5.0,<3.0a0]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libcxx 16.0.0 [required: >=14.0.6]
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libpng 1.6.39 [required: >=1.6.39,<1.7.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libpng displayed above
  β”‚  β”‚  β”‚  β”‚  β”œβ”€ libtiff 4.5.0 [required: >=4.5.0,<4.6.0a0]
  β”‚  β”‚  β”‚  β”‚  β”‚  └─ dependencies of libtiff displayed above
  β”‚  β”‚  β”‚  β”‚  └─ libzlib 1.2.13 [required: >=1.2.13,<1.3.0a0]
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”‚  └─ tk 8.6.12 [required: >=8.6.12,<8.7.0a0]
  β”‚  β”‚  β”‚     └─ dependencies of tk displayed above
  β”‚  β”‚  β”œβ”€ pyparsing 3.0.9 [required: >=2.3.1]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ python-dateutil 2.8.2 [required: >=2.7]
  β”‚  β”‚  β”‚  └─ dependencies of python-dateutil displayed above
  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”œβ”€ pyprind 2.11.2 [required: any]
  β”‚  β”‚  └─ dependencies of pyprind displayed above
  β”‚  β”œβ”€ python 3.11.3 [required: >=3.4]
  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”œβ”€ requests 2.28.2 [required: any]
  β”‚  β”‚  └─ dependencies of requests displayed above
  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  └─ tabulate 0.9.0 [required: any]
  β”‚     └─ python 3.11.3 [required: >=3.7]
  β”‚        └─ dependencies of python displayed above
  β”œβ”€ bw2calc 2.0.dev12 [required: >=2.0.dev12]
  β”‚  └─ dependencies of bw2calc displayed above
  β”œβ”€ bw2data 4.0.dev18 [required: >=4.0.dev18]
  β”‚  └─ dependencies of bw2data displayed above
  β”œβ”€ bw2io 0.9.dev14 [required: >=0.9.dev10]
  β”‚  β”œβ”€ astunparse 1.6.3 [required: >=1.6.1]
  β”‚  β”‚  └─ dependencies of astunparse displayed above
  β”‚  β”œβ”€ bw2calc 2.0.dev12 [required: >=2.0.dev12]
  β”‚  β”‚  └─ dependencies of bw2calc displayed above
  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: >=4.0.dev17]
  β”‚  β”‚  └─ dependencies of bw2data displayed above
  β”‚  β”œβ”€ bw_migrations 0.2 [required: any]
  β”‚  β”‚  β”œβ”€ bw2data 4.0.dev18 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of bw2data displayed above
  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.7]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  └─ stats_arrays 0.6.5 [required: any]
  β”‚  β”‚     └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ bw_processing 0.8.2 [required: any]
  β”‚  β”‚  └─ dependencies of bw_processing displayed above
  β”‚  β”œβ”€ lxml 4.9.2 [required: any]
  β”‚  β”‚  └─ dependencies of lxml displayed above
  β”‚  β”œβ”€ mrio_common_metadata 0.2.1 [required: any]
  β”‚  β”‚  β”œβ”€ openpyxl 3.1.1 [required: any]
  β”‚  β”‚  β”‚  β”œβ”€ et_xmlfile 1.1.0 [required: any]
  β”‚  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.11,<3.12.0a0, *_cpython]
  β”‚  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”‚  └─ python_abi 3.11 [required: 3.11.*, *_cp311]
  β”‚  β”‚  β”œβ”€ pandas 2.0.0 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of pandas displayed above
  β”‚  β”‚  β”œβ”€ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ pyxlsb 1.0.10 [required: any]
  β”‚  β”‚  β”‚  └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”‚  └─ xlrd 2.0.1 [required: any]
  β”‚  β”‚     └─ python 3.11.3 [required: >=3.6]
  β”‚  β”‚        └─ dependencies of python displayed above
  β”‚  β”œβ”€ numpy 1.24.2 [required: >=1.20]
  β”‚  β”‚  └─ dependencies of numpy displayed above
  β”‚  β”œβ”€ openpyxl 3.1.1 [required: any]
  β”‚  β”‚  └─ dependencies of openpyxl displayed above
  β”‚  β”œβ”€ psutil 5.9.4 [required: any]
  β”‚  β”‚  └─ dependencies of psutil displayed above
  β”‚  β”œβ”€ pyprind 2.11.2 [required: any]
  β”‚  β”‚  └─ dependencies of pyprind displayed above
  β”‚  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  β”‚  └─ dependencies of python displayed above
  β”‚  β”œβ”€ scipy 1.10.1 [required: any]
  β”‚  β”‚  └─ dependencies of scipy displayed above
  β”‚  β”œβ”€ stats_arrays 0.6.5 [required: >=0.6.5]
  β”‚  β”‚  └─ dependencies of stats_arrays displayed above
  β”‚  β”œβ”€ tqdm 4.65.0 [required: any]
  β”‚  β”‚  └─ dependencies of tqdm displayed above
  β”‚  β”œβ”€ unidecode 1.3.6 [required: any]
  β”‚  β”‚  └─ python 3.11.3 [required: >=3.5]
  β”‚  β”‚     └─ dependencies of python displayed above
  β”‚  β”œβ”€ voluptuous 0.13.1 [required: any]
  β”‚  β”‚  └─ dependencies of voluptuous displayed above
  β”‚  β”œβ”€ xlrd 2.0.1 [required: any]
  β”‚  β”‚  └─ dependencies of xlrd displayed above
  β”‚  └─ xlsxwriter 3.0.9 [required: any]
  β”‚     └─ python 3.11.3 [required: >=3.6]
  β”‚        └─ dependencies of python displayed above
  β”œβ”€ bw_migrations 0.2 [required: any]
  β”‚  └─ dependencies of bw_migrations displayed above
  β”œβ”€ bw_processing 0.8.2 [required: >=0.8.2]
  β”‚  └─ dependencies of bw_processing displayed above
  β”œβ”€ matrix_utils 0.2.5 [required: >=0.2.5]
  β”‚  └─ dependencies of matrix_utils displayed above
  β”œβ”€ mrio_common_metadata 0.2.1 [required: any]
  β”‚  └─ dependencies of mrio_common_metadata displayed above
  β”œβ”€ numpy 1.24.2 [required: any]
  β”‚  └─ dependencies of numpy displayed above
  β”œβ”€ python 3.11.3 [required: >=3.9]
  β”‚  └─ dependencies of python displayed above
  └─ stats_arrays 0.6.5 [required: >=0.6.5]
     └─ dependencies of stats_arrays displayed above

ImportError when loading bw2data

I encountered different issues when loading bw2data in the test-notebook. First, I had to little memory available, but that was fixed by closing some other browser tabs. Then this popped up:
ImportError: dynamic module does not define module export function (PyInit_interval)
Hopefully, there's a way around this!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.