Object orientied optimized variant of the semver package
Project description
csemver
csemver is the object orientied optimized Version of semver. It is much more consistent because you only need one object for all operations.
Installation
pip install csemver
Features
- Arithmetic comprehensions with
<,<=,==,!=,>=,>
- Arithmetic additions with
+,+=
- Access to specific parts (major, minor, patch, prerelease, build) through index operator
Version manipulation
Increase Versions
To increase the different versions csemver provides three methods
incMajor(incBy=1)
incMinor(incBy=1)
incPatch(incBy=1)
If needed, you can chain these calls: a.incMajor(x).incMinor(y).incPatch(y)
from csemver import csemver as Version
a = Version();
print(a)
a.incMajor();
print(a)
a.incMinor();
print(a)
a.incPatch();
print(a)
foo@bar:~$ python test.py
0.1.0
1.0.0
1.1.0
1.1.1
Adding versions
from csemver import csemver as Version
a = Version("2.1.5");
b = Version("1.1.1");
print(a+b);
b += Version("0.1.1");
print(b);
3.1.1
1.2.1
Note: The addition respects semver rules. Therefore the resulting versions are 3.1.1 and 1.2.1 rather than 3.2.6 and 1.2.2
Overwrite Version
To overwrite the current Version just set a new Semver-String for csemver.number
from csemver import csemver as Version
a = Version();
print(a)
a.number ="1.0.0-pre+build.1";
# Python 2.7: a.setNumber("1.0.0-pre+build.1")
print(a)
foo@bar:~$ python test.py
0.1.0
1.0.0-pre+build.1
2.0.0-pre+build.1
2.0.0-dev+build.1
Manipulate specific parts
from csemver import csemver as Version
a = Version(); # defaults to 0.1.0
a['major'] = 2
print(a)
a['minor'] = 2
print(a)
a['patch'] = 1
print(a)
a['prerelease'] = "dev"
print(a)
a['build'] = "build0"
print(a)
a['build'] = None
print(a)
2.1.0
2.2.0
2.2.1
2.2.1-dev
2.2.1-dev+build0
2.2.1-dev
Reset Version
Delete the number
property to reset the Version to 0.1.0
from csemver import csemver as Version
a = Version("1.0.0");
print(a)
del a.number
# Python 2.7: a.delNumber()
print(a)
foo@bar:~$ python test.py
1.0.0
0.1.0
Comparing versions
Compare different versions:
You can compare csemver instances with >, >=, ==, !=, <=, <
from csemver import csemver as Version
a = Version("1.1.1")
b = Version("1.1.1")
repr(a)
repr(b)
print(a<b)
b.incPatch()
print(b)
print(a<b)
foo@bar:~$ python test.py
Version<1.1.1> instance at 0x00000159D2061BA8
Version<1.1.1> instance at 0x00000159D2061DD8
False
1.1.2
True
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for csemver-0.2.1rc0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71f9a09420f091c4806d77e98eb8026890db1f48f003923b0a38b49ca318cdfb |
|
MD5 | a088474c2df743c69a1ca65deb11c3e3 |
|
BLAKE2b-256 | c8ff86071de27e05985d4a09e596ad852860353c683833f6c979d994469358b8 |