|
5 | 5 | first-class operations. It forms the core of the Nipype 2.0 ecosystem.
|
6 | 6 |
|
7 | 7 | """
|
| 8 | +import logging |
| 9 | + |
| 10 | +logger = logging.getLogger("pydra") |
8 | 11 | from ._version import get_versions
|
9 | 12 |
|
10 | 13 | __version__ = get_versions()["version"]
|
|
14 | 17 | from . import mark
|
15 | 18 |
|
16 | 19 |
|
17 |
| -def check_latest_version(raise_exception=False): |
18 |
| - """ |
19 |
| - Check for the latest version of the library. |
20 |
| -
|
21 |
| - Parameters |
22 |
| - ---------- |
23 |
| - raise_exception: :obj:`bool` |
24 |
| - Raise a RuntimeError if a bad version is being used |
25 |
| -
|
26 |
| - """ |
| 20 | +def check_latest_version(): |
27 | 21 | import etelemetry
|
28 |
| - import logging |
29 |
| - from pkg_resources import parse_version |
30 |
| - |
31 |
| - logger = logging.getLogger("pydra") |
32 |
| - |
33 |
| - INIT_MSG = "Running {packname} version {version} (latest: {latest})".format |
34 | 22 |
|
35 |
| - latest = {"version": "Unknown", "bad_versions": []} |
36 |
| - result = None |
37 |
| - try: |
38 |
| - result = etelemetry.get_project("nipype/pydra") |
39 |
| - except Exception as e: |
40 |
| - logger.warning("Could not check for version updates: \n%s", e) |
41 |
| - finally: |
42 |
| - if result: |
43 |
| - latest.update(**result) |
44 |
| - if parse_version(__version__) != parse_version(latest["version"]): |
45 |
| - logger.info( |
46 |
| - INIT_MSG( |
47 |
| - packname="pydra", version=__version__, latest=latest["version"] |
48 |
| - ) |
49 |
| - ) |
50 |
| - if latest["bad_versions"] and any( |
51 |
| - [ |
52 |
| - parse_version(__version__) == parse_version(ver) |
53 |
| - for ver in latest["bad_versions"] |
54 |
| - ] |
55 |
| - ): |
56 |
| - message = ( |
57 |
| - "You are using a version of Pydra with a critical " |
58 |
| - "bug. Please use a different version." |
59 |
| - ) |
60 |
| - if raise_exception: |
61 |
| - raise RuntimeError(message) |
62 |
| - else: |
63 |
| - logger.critical(message) |
64 |
| - return latest |
| 23 | + return etelemetry.check_available_version("nipype/pydra", __version__, lgr=logger) |
65 | 24 |
|
66 | 25 |
|
67 | 26 | # Run telemetry on import for interactive sessions, such as IPython, Jupyter notebooks, Python REPL
|
|
0 commit comments