Description
Nibabel is used in research settings, which somewhat often results in a tool getting written and then abandoned by its original author (while still being useful to users). Fast forward a few years, the original nibabel API deprecates something, another few years, and on a new nibabel version release, suddenly the abandoned code errors in new installations, not because it is doing anything different or the input files changed, but merely because nobody was maintaining the code to edit it for the API enhancement, and people using the tool have to either hold back the nibabel version, or find a developer to edit and test the API change.
As long as you don't have a need to reuse the same function name for a different purpose (and it is almost always easy to find an alternative name instead), I think there is very little to be gained from making calls to it throw an error (as opposed to a warning), while throwing causes pain for end users. "Streamlining" by removing code just because a newer/improved alternative is available doesn't seem particularly compelling to me (it is an extra step to delete the code, and for what real benefit?) - I would think you could have the documentation move deprecated functions to a less prominent location, and probably make most autocompleters not display them at the top of the suggestions, without outright deleting them. What percent install size does it actually save? What other benefits do you see that could justify the pain to users when an old tool stops working?
Relevant search shows 50 issues on github:
https://github.com/search?q=ExpiredDeprecationError&type=issues
Alternative title: "ExpiredDeprecationError considered harmful".