Metadata-Version: 2.1
Name: sem-ver
Version: 1.0.1
Summary: Semantic Version Processor
Home-page: https://github.com/plinss/sem_ver/
Author: Peter Linss
Author-email: pypi@linss.com
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
Provides-Extra: dev
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: flake8-import-order ; extra == 'dev'
Requires-Dist: flake8-annotations ; extra == 'dev'
Requires-Dist: flake8-type-annotations ; extra == 'dev'
Requires-Dist: flake8-docstrings ; extra == 'dev'
Requires-Dist: pep8-naming ; extra == 'dev'

# sem_ver

This package contains a parser for Semantic Version labels complete with type annotations. 

In addition to parsing version labels they may be compared via standard comparison operators 
and modified directly.

See https://semver.org for details.

### sem_ver.SemVer

#### sem_ver.validate(version: str) -> bool

Test if string is a valid SemVer.

#### sem_ver.compare(version_a: str, version_b: str) -> int

Compare two SemVer strings.
Will raise `ValueError` if either string is not a valid SemVer.

#### SemVer(version: str = None, major: int = 0, minor: int = 0, patch: int = 0,
            prerelease: Union[str, Sequence[Union[int, str]]] = '', build: Union[str, Sequence[str]] = '')

Constructor.
Will raise `ValueError` if the passed version string does not match the proper format.

#### SemVer.major: int

Major version.
Changing the major version will reset the minor, patch, prerelease, and build versions.

#### SemVer.minor: int

Minor version.
Changing the minor version will reset the patch, prerelease, and build versions.

#### SemVer.patch: int

Patch version.
Changing the patch version will reset the prerelease and build versions.

#### SemVer.prerelease: Optional[str]

Prerelease tags as a single string.
Will raise `ValueError` if the prerelease string does not match the proper format.

#### SemVer.prereleases: List[Union[int, str]]

Prerelease tags as a list of int or string.
Does not validate the strings.

#### SemVer.build: Optional[str]

Build labels as a single string.
Will raise `ValueError` if the build string does not match the proper format.

#### SemVer.builds: List[str]

Build labels as a list of strings.
Does not validate the strings.

#### SemVer.next_major() -> SemVer

Create a new SemVer for the next major release.
Minor, patch, prerelease, and build will be reset.

#### SemVer.next_minor() -> SemVer

Create a new SemVer for the next minor release.
Patch, prerelease, and build will be reset.

#### SemVer.next_patch() -> SemVer

Create a new SemVer for the next patch release.
Prerelease and build will be reset.

#### SemVer.__str__() -> str

Convert to string.

### Installation

Install with pip:

    pip install sem_ver

