Metadata-Version: 2.1
Name: compatibleversion
Version: 0.2.5
Summary: Determine compatibility given a version and specifier
Home-page: https://github.com/plus3it/compatibleversion
Author: YakDriver
Author-email: projects@plus3it.com
License: Apache Software License 2.0
Description: [![License](https://img.shields.io/github/license/YakDriver/compatibleversion.svg)](./LICENSE)
        [![Travis CI Build Status](https://travis-ci.org/YakDriver/compatibleversion.svg)](https://travis-ci.org/YakDriver/compatibleversion)
        [![Latest Version](https://img.shields.io/pypi/v/compatibleversion.svg?label=version)](https://pypi.python.org/pypi/compatibleversion)
        
        # compatibleversion
        
        *compatibleversion* takes two parameters, a version and a specifier (i.e., version constraints), and returns a Boolean value indicating compatibility.
        
        **NOTE:** *compatibleversion* wraps [packaging](https://packaging.pypa.io/en/latest/) in order to simplify and test its use. Versions and specifiers provided to *compatibleversion* must conform to [PEP 440](https://www.python.org/dev/peps/pep-0440/) as required by *packaging*.
        
        ## install
        
        ```console
        $ pip install compatibleversion
        ```
        
        ## usage
        
        Use *compatibleversion* in Python code:
        
        ```python
        from compatibleversion import check_version
        
        check_version('1.3.0', '> 1.2, < 3.3')          # True
        check_version('2.1', '~= 2.2')                  # False
        
        check_version('1.1.dev0', '>=1.0')              # True
        check_version('1.1.dev0', '>=1.0', False)       # False, not allowing pre/dev-final comparison
        
        check_version('1.1.dev0', '>=1.0.dev0')         # True, dev-dev compare
        check_version('1.1.dev0', '>=1.0.dev0', False)  # True, doesn't affect since dev-dev
        ```
        
        ## version parameter
        
        The version parameter must conform to [PEP 440](https://www.python.org/dev/peps/pep-0440/). These are examples of valid version parameters:
        
        ```
        1.2.0
        0.0.0
        0.9
        0.9.1
        0.9.2
        0.9.10
        0.9.11
        1.0
        1.0.1
        1.1
        2.0
        2.0.1
        1.0a1
        1.0a2
        1.0b1
        1.0rc1
        1.0.dev1
        1.0.dev2
        1.0.dev3
        1.0.dev4
        1.0b2.post345.dev456
        1.0b2.post345
        1.0rc1.dev456
        ```
        
        ## specifier parameter
        
        The version specifier parameter must conform to [PEP 440](https://www.python.org/dev/peps/pep-0440/). The specifier consists of one or more version clauses separated by commas.
        
        For example, these are valid version specifiers (the last two are approximately equivalent):
        
        ```
        ==1.0.1
        < 1.2, > 1.3
        ~= 0.9, >= 1.0, != 1.3.4.*, < 2.0
        ~= 1.4.5.0
        == 1.1.post1
        ~= 2.2
        >= 2.2, == 2.*
        ```
        
        Here are more helpful specifier examples from [PEP 440](https://www.python.org/dev/peps/pep-0440/) and an explanation of their meaning:
        
        * `~=3.1`: version 3.1 or later, but not version 4.0 or later.
        * `~=3.1.2`: version 3.1.2 or later, but not version 3.2.0 or later.
        * `~=3.1a1`: version 3.1a1 or later, but not version 4.0 or later.
        * `== 3.1`: specifically version 3.1 (or 3.1.0), excludes all pre-releases, post releases, developmental releases and any 3.1.x maintenance releases.
        * `== 3.1.*`: any version that starts with 3.1. Equivalent to the ~=3.1.0 compatible release clause.
        * `~=3.1.0, != 3.1.3`: version 3.1.0 or later, but not version 3.1.3 and not version 3.2.0 or later.
        
        ## Changelog
        
        ### 0.2.0
        
        **Commit Delta**: [Change from 0.1.3 release](https://github.com/plus3it/watchmaker/compare/0.1.3...0.2.0)
        
        **Released**: 2020.03.04
        
        **Summary**:
        
        *   Allow comparison between prerelease and dev releases (e.g., `1.0.dev0`) and final releases (e.g., `1.0`)
        
        ### 0.1.3
        
        **Commit Delta**: [Change from 0.1.2 release](https://github.com/plus3it/watchmaker/compare/0.1.2...0.1.3)
        
        **Released**: 2020.01.28
        
        **Summary**:
        
        *   Update dependencies
        *   Update Python compatibility versions in PyPI/wheel package
        
        ### 0.1.2
        
        **Commit Delta**: [Change from 0.1.1 release](https://github.com/plus3it/watchmaker/compare/0.1.1...0.1.2)
        
        **Released**: 2019.10.24
        
        **Summary**:
        
        *   Improve compatibility with Py2.6
        
        ### 0.1.1
        
        **Commit Delta**: [Change from 0.1.0 release](https://github.com/plus3it/watchmaker/compare/0.1.0...0.1.1)
        
        **Released**: 2019.10.24
        
        **Summary**:
        
        *   Minor CI changes
        *   Add documentation
        
        ### 0.1.0
        
        **Commit Delta**: [Change from 0.0.0 release](https://github.com/plus3it/watchmaker/compare/0.0.0...0.1.0)
        
        **Released**: 2019.10.22
        
        **Summary**:
        
        *   Initial release
        
Platform: Linux
Platform: Windows
Platform: Darwin
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Microsoft :: Windows
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Utilities
Description-Content-Type: text/markdown
