This leaves open the possibility for a class to implement a more efficient `_inverse` function without having to copy the docstring.  This is how most of the functions here work.  I wrote out the long docstring in BaseWCS and usually just have the function call a version with a leading underscore.  Then I can implement the function at whatever class level is appropriate.  Sometimes in one of the intermediate base classes like UniformWCS or EuclideanWCS, or sometimes in each final class.

It's basically a way of getting python to do a pure virtual abstract base class concept.  BaseWCS has no constructor, so it counts as an abstract base class.  In C++, I would then write the implementation there with long comments explaining what each function does.  Then the derived classes would just do the implementation.  Python can't do that exactly, but this design pattern gets pretty close.