Metadata-Version: 2.1
Name: panversion
Version: 0.1.0
Author-email: Mindiell <tool-caddy@mindiell.net>
Project-URL: Homepage, https://framagit.org/tool-caddy/panversion
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.8
Description-Content-Type: text/markdown
License-File: LICENSE

# Panversion

panversion is a tool to manage and compare versions.


## Philosophy

As a simple tool, panversion is pure-python. You can use a simple library or take its
unque file to integrate it in your project.


## Known versions

Panversion aims to be able to work a maximal number of version systems.

Right now, panversion is able to work with:

* [Semantic Version](https://semver.org/)
* [Version Specifiers](https://packaging.python.org/en/latest/specifications/version-specifiers/)


## Usage

Comparison:

    >>> from panversion import Version
    >>> Version("1.0.3-alpha") < Version("1.0.3")   # Semantic form
    True
    >>> Version("1.0-a8") < Version("1.0-post1")   # Version specifiers form
    True

Sorting:

    >>> from panversion import Version
    >>> sorted(["1.0.0-alpha", "1.0.0-beta", "1.0.0-rc.1", "1.0.0-alpha.beta", "1.0.0"], key=Version)
    ['1.0.0-alpha', '1.0.0-alpha.beta', '1.0.0-beta', '1.0.0-rc.1', '1.0.0']
    >>> sorted(["0.9", "1.0rc1", "1.0a2", "1.0", "1.0a1", "1!0.8", "1.1a1", "1.0b1"], key=Version)
    ['0.9', '1.0a1', '1.0a2', '1.0b1', '1.0rc1', '1.0', '1.1a1', '1!0.8']

Normalization:

    >>> from panversion import Version
    >>> Version("1.2-rev.12")
    1.2.post12

