Skip to content

Refactor bluepyopt for a smaller size #6

Description

@eleftherioszisis

Installing bluepyopt results in a whopping 550Mb package installation (dependencies included). It installs:

Successfully installed Jinja2-3.1.6 MarkupSafe-3.0.3 NEURON-9.0.1 Pebble-5.2.0 asttokens-3.0.1 bluepyopt-1.14.20 cffi-2.0.0 comm-0.2.3 deap-1.4.4 debugpy-1.8.21 decorator-5.3.1 efel-5.7.24 executing-2.2.1 find-libpython-0.5.1 ipykernel-7.3.0 ipyparallel-9.2.0 ipython-9.14.1 ipython-pygments-lexers-1.1.1 jedi-0.20.0 jupyter-client-8.9.1 jupyter-core-5.9.1 matplotlib-inline-0.2.2 moocore-0.3.1 mpmath-1.3.0 neo-0.14.4 nest-asyncio2-1.7.2 numpy-2.4.6 packaging-26.2 pandas-3.0.3 parso-0.8.7 pexpect-4.9.0 pickleshare-0.7.5 platformdirs-4.10.0 prompt_toolkit-3.0.52 psutil-7.2.2 ptyprocess-0.7.0 pure-eval-0.2.3 pycparser-3.0 pygments-2.20.0 python-dateutil-2.9.0.post0 pyzmq-27.1.0 quantities-0.16.4 scipy-1.17.1 setuptools-82.0.1 six-1.17.0 stack_data-0.6.3 sympy-1.14.0 tornado-6.5.7 tqdm-4.68.2 traitlets-5.15.1 typing-extensions-4.15.0 wcwidth-0.8.1

If multiprocessing is used instead of ipyparallel, then all the dependencies it brings along are not needed. In addition, matplotlib should become optional too.

The dominating packages size-wise are:

22M	./debugpy
26M	./bluepyopt
28M	./numpy.libs
30M	./scipy.libs
34M	./jedi
42M	./numpy
69M	./neuron
73M	./pandas
74M	./sympy
111M	./scipy

From those:

  • debugpy doesn't seem to be used anywhere.
  • jedi comes in because of ipython

I also noticed that tests and test data are included in the distribution, which is a strange thing to do.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions