Source code for xdress.version

"""Version information about xdress and its dependencies.
"""

import re
from collections import namedtuple

[docs]class version_info(namedtuple('version_info', ['major', 'minor', 'micro', 'extra'])): """A representation of version information. """ def __new__(cls, major=-1, minor=-1, micro=-1, extra=''): return super(version_info, cls).__new__(cls, major, minor, micro, extra)
_ver_r = re.compile('(\d+)\.(\d+)\.?(\d+)?[-_ \.]*?(.*)')
[docs]def version_parser(ver): """Parses a nominal version string into a version_info object. e.g. '0.20dev' -> version_info(0, 20, 0, 'dev'). """ m = _ver_r.match(ver) g = m.groups() vi = version_info(int(g[0]), int(g[1] or 0), int(g[2] or 0), g[3]) return vi
[docs]def report_versions(): """Creates a string that reports the version of xdress and all its dependencies. """ vstr = ("XDress: {xdress_version}\n" "pycparser (optional): {pycparser_version}\n" "lxml (optional): {lxml_version}\n" "NumPy (optional): {numpy_version}\n" "Cython (optional): {cython_version}" ) return vstr.format(**globals()) # # XDress #
xdress_version = '0.4' xdress_version_info = version_info(0, 4, 0, '') # # pycparser # try: import pycparser except ImportError: pycparser = None if pycparser is None: pycparser_version = None pycparser_version_info = version_info() else: pycparser_version = pycparser.__version__ pycparser_version_info = version_parser(pycparser_version) # # numpy # try: import numpy except ImportError: numpy = None if numpy is None: numpy_version = None numpy_version_info = version_info() else: numpy_version = numpy.__version__ numpy_version_info = version_parser(numpy_version) # # Cython # try: import Cython except ImportError: Cython = None if Cython is None: cython_version = None cython_version_info = version_info() else: cython_version = Cython.__version__ cython_version_info = version_parser(cython_version) # # lxml # try: import lxml.etree except ImportError: lxml = None if lxml is None: lxml_version = None lxml_version_info = version_info() else: lxml_version = lxml.etree.__version__ lxml_version_info = version_parser(lxml_version)