The only exceptions are lines that are too long and the fact that
__version__ is undefined in setup.py. Fixing the former makes the code
harder to read in some cases, and fixing the latter is slightly more
complicated.
in the course of this I also decided to change some of the general
structure, especially concerning the handling of the MSsfu option.
This required a change in the API, regrettably, and to a major version
bump.
Also I adopted semantiv versioning.