Right, I also think ```version_to_string``` should only convert to the complete version string (e.g. 1.0.0final0). When everything is saved/loaded in a consistent format, it makes it easier to parse (see the function above) and reduces the chance of other bugs due to inconsistent version formats.

The ```version_from_string``` function you have here allows us to pass a variety of version formats (e.g. 1.0, 1.0.0, 1.0.0final0, ...), but we shouldn't need to (or want to) ever do that.

(So, ```__version__``` and ```version_string``` wouldn't use ```version_to_string```.)