File: version.py

package info (click to toggle)
pyerfa 2.0.1.5%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,708 kB
  • sloc: ansic: 13,642; python: 5,786; makefile: 25
file content (58 lines) | stat: -rw-r--r-- 2,049 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"""Wrapper, ERFA and SOFA version information."""

# NOTE: First try _dev.scm_version if it exists and setuptools_scm is installed
# This file is not included in pyerfa wheels/tarballs, so otherwise it will
# fall back on the generated _version module.
try:
    try:
        from ._dev.scm_version import get_version as _get_version
        _version = _get_version()
        del _get_version
    except ImportError:
        from ._version import version as _version
except Exception:
    import warnings
    warnings.warn(
        f'could not determine {__name__.split(".")[0]} package version; '
        f'this indicates a broken installation')
    del warnings

    _version = '0.0.0'

# Set the version numbers a bit indirectly, so that Sphinx can pick up
# up the docstrings and list the values.
try:
    from . import ufunc
except ImportError as exc:
    # If compiled to use a system liberfa, that library can be too old, and
    # miss functions that are available in newer liberfa. If so, we should
    # bail since nothing will work, but let's try to give a more informative
    # error message.
    try:
        from ctypes import CDLL, util, c_char_p
        liberfa = CDLL(util.find_library('erfa'))
        liberfa.eraVersion.restype = c_char_p
        erfa_version = liberfa.eraVersion().decode('ascii')
    except Exception:
        pass
    else:
        if erfa_version.split(".")[:2] < _version.split(".")[:2]:
            raise ImportError(
                f"liberfa {erfa_version} too old for PyERFA {_version}. "
                "This should only be possible if you are using a system liberfa; "
                "try installing using 'pip install pyerfa', with environment variable "
                "PYERFA_USE_SYSTEM_LIBERFA unset or 0.") from exc

    raise


version = _version
'''Version of the python wrappers.'''

erfa_version = ufunc.erfa_version
'''Version of the C ERFA library that is wrapped.'''

sofa_version = ufunc.sofa_version
'''Version of the SOFA library the ERFA library is based on.'''

del ufunc, _version