Files
pvxs/python/pvxslibs/version.py
T
Michael Davidsaver ff880e9e08 py: fix abi_requires()
2021-07-26 15:20:21 -07:00

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)