<div dir="ltr">StrictVersion from distutils accepts version tags like<br>1.14.0<br>1.14.0a1<br>1.14.0b2<br><br>but not<br>1.14.0rc1 (nor 1.14.0c1).<br><br>My suggestion:  Add `rc` in the regexp and make it a `prerelease` (the<br>latter comes for free by the current implementation).<br><br>Most package maintainers have adopted the `rc` abbreviation for release<br>candidate versioning, e.g.<br>- numpy 1.14.0rc1<br>- scipy 1.1.0rc1<br>- plotly 3.0.0rc1<br>- pandas 0.23.0rc1<br>- matplotlib 2.2.0rc1<br>- dask 0.13.0rc1<br>- django 1.9rc1.<br>All of these are available on PyPI.<br><br>A natural way of sorting version numbers from pip is by simply using<br>    sorted(versions, key=distutils.version.StrictVersion),<br>however, due to StrictVersion only accepting `a` and `b` as<br>abbreviations, this does not work for the aforemention packages.<br><br>The very obvious cons are:<br>- touching 20 years old code [1]<br>- StrictVersion is preserved "for anal retentives and software<br>  idealists", and I don't know if they agree.<br><br>There might be more cons I fail to think of at this moment.<br><br>[1] <a href="https://github.com/python/cpython/blob/master/Lib/distutils/version.py#L130">https://github.com/python/cpython/blob/master/Lib/distutils/version.py#L130</a><br><br>Pål Grønås Drange<br><br><br></div>