33 lines
984 B
Python
33 lines
984 B
Python
"""Version information for the pvxslibs package.
|
|
|
|
Version numbers are encoded as: MAJOR.MINOR.MAINT
|
|
|
|
"""
|
|
import re
|
|
from collections import namedtuple
|
|
from pkg_resources import get_distribution, parse_version
|
|
|
|
__all__ = (
|
|
'version',
|
|
'version_info',
|
|
'abi_requires',
|
|
)
|
|
|
|
version = get_distribution('pvxslibs').version # as a string
|
|
|
|
version_info = re.match(r'([\d]+)\.([\d]+)\.([\d]+)([ab]\d+)?', version).groups()
|
|
|
|
version_info = namedtuple('Version', ['major', 'minor', 'maintainance', 'dev']) \
|
|
(int(version_info[0]), int(version_info[1]), int(version_info[2]), version_info[3])
|
|
|
|
def abi_requires():
|
|
"""Return a version requirement string which identifies
|
|
a range of version which will be ABI compatible with this one.
|
|
For use by modules with non-python dependencies on our libraries.
|
|
|
|
eg. "pvxslibs >=1.0.4, <1.1.0"
|
|
"""
|
|
nextminor = version_info.minor+1
|
|
|
|
return 'pvxslibs >={0}, <{1.major}.{2}.0a1'.format(version, version_info, nextminor)
|