Skip to content

MAINT: Make nibabel a required dependency #11564

@larsoner

Description

@larsoner

To me there are a few criteria for adding a new core dep. Ideally (but not always) it would at least:

  1. Have an established history/structure
  2. Be well maintained (with an expectation of future maintenance)
  3. Demonstrate low maintenance burden, ideally as MNE-Python as an optional dep (but could be elsewhere)
  4. Be used in a lot of places or at least a few important places in our codebase
  5. Be pure-python (to ensure installability everywhere and help ensure that things don't break often)
  6. Have a slow change/deprecation/change policy
  7. Have limited installation requirements itself

To me nibabel has all of these features. Adding it as a core dependency would simplify a lot of our codebase/shims (no more _import_nibabel, etc.) and reduce Python ecosystem code duplication (really FreeSurfer surface reading should be implemented one place!). So overall I think we should add it as a core dependency.

Any thoughts on this?

FWIW this is spurred by the recent change I made to remove our (duplicated with nibabel) FreeSurfer surface reading code in #11557. It didn't trigger CI failure there for some reason, but now it causes 117 test failures because we read a lot of surfaces!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions