https://www.npmjs.com/package/version-parser
The version parser is able to parse versions and figure out which of them are build in one of the following three formats: Major-Version, Minor-Version and Build-Version.
Possible input types are:
| Version | Typ |
|---|---|
| v1.2.3 | Version |
| V1.2.3 | Version |
| v_1_2_3 | FILENAME |
| v1_2_3 | FILENAME |
| V_1_2_3 | FILENAME |
| V1_2_3 | FILENAME |
| 1_2_3 | FILENAME |
| VM1m2b3 | CLASSNAME_BUILD |
| VM1m2p3 | CLASSNAME_PATCH |
| vM1m2b3 | CLASSNAME_BUILD |
| vM1m2p3 | CLASSNAME_PATCH |
| 1.2.3 | STRIPPED_VERSION |
| 2312 | NUMBER |
pipinstallversion-parserCreate object with the version as a String as initial parameter.
fromversion_parserimportVersionv1=Version("v2.3.4")To compare two version objects/numbers, simply put the versions as Strings into seperate objects and compare them using the logical operators.
fromversion_parser.versionimportVersionv1=Version("v2.3.4")
v2=Version("v2.3.2")
print(v1<v2)>>Falseprint(v1>v2)>>Trueprint(v1==v2)>>FalseThe last digets behind the last dot should be the Patch or Build Version Number. Differences in this area should be compatible to each other.
fromversion_parser.versionimportVersionv1=Version("v2.3.4")
v2=Version("v2.3.5")
print(v1==v2)>>Falseprint(v1.compatible_version_with(v2))>>TrueYou can also get only the Major, Minor or Build Version by using:
fromversion_parserimportVersionv=Version("v2.3.4")
v.get_major_version()
2v.get_minor_version()
3v.get_build_version()
4It's possible to convert the version format, too:
fromversion_parserimportVersion, VersionTypev=Version("v2.3.4") # VersionType = Versionprint(v.get_type())>>VersionType.Versionprint(v.get_typed_version(VersionType.FILENAME))>>v_2_3_4Any version can be represented by an Integer.
The sections of major, minor, build/patched version should have a maximum of three digets.
fromversion_parserimportVersionv=Version("v2.3.4")
print(v.get_number())>>2003004"v_<MAJOR>_<MINOR>_<BUILD/PATCH>""VM<MAJOR>m<MINOR>b<BUILD/PATCH>""v<MAJOR>.<MINOR>.<BUILD/PATCH>""<MAJOR>.<MINOR>.<BUILD/PATCH>"each section is filled zeros up to three digets
"<MAJOR><MINOR><BUILD/PATCH>"same like CLASSNAME_BUILD
"VM<MAJOR>m<MINOR>p<BUILD/PATCH>"^PATCH