python version of node-semver