Skip to content

optional dependencies (matplotlib and scipy) are not truly optional #1361

@rathann

Description

@rathann

Expected behaviour

The lack of any of the optional dependencies listed in setup.py (netcdf4, matplotlib, scipy, seaborn and sklearn) is handled gracefully, with no exceptions thrown.

Actual behaviour

ImportError exception will be thrown when matplotlib or scipy are missing.

Code to reproduce the behaviour

The following imports don't catch ImportErrors when importing scipy:

MDAnalysis/analysis/psa.py:1936
MDAnalysis/analysis/psa.py:2053
MDAnalysis/analysis/polymer.py:169
MDAnalysis/analysis/pca.py:355
MDAnalysis/analysis/hbonds/hbond_autocorrel.py:443
MDAnalysis/visualization/streamlines_3D.py:42
MDAnalysis/visualization/streamlines_3D.py:43
MDAnalysis/visualization/streamlines.py:48

and matplotlib:

MDAnalysis/analysis/psa.py:1646
MDAnalysis/analysis/psa.py:1747
MDAnalysis/analysis/psa.py:1847
MDAnalysis/analysis/psa.py:1935
MDAnalysis/analysis/polymer.py:138
MDAnalysis/analysis/hole.py:372
MDAnalysis/analysis/hole.py:451
MDAnalysis/analysis/hole.py:520
MDAnalysis/analysis/legacy/x3dna.py:416

Currently version of MDAnalysis:

0.16.0

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions