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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions