aboutsummaryrefslogtreecommitdiff
blob: 8b7f11c63f01a4a6671aa44d495178f25e3034af (plain)
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
From b4d57d7ca4359b0990636bbc6091c49706c6ff39 Mon Sep 17 00:00:00 2001
From: Horea Christian <chr@chymera.eu>
Date: Fri, 7 Aug 2020 01:12:38 -0400
Subject: [PATCH] ENH: no more auto-failing on misparsed versions

---
 nipype/interfaces/base/core.py | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/nipype/interfaces/base/core.py b/nipype/interfaces/base/core.py
index 82da393a84..1e626fe1b5 100644
--- a/nipype/interfaces/base/core.py
+++ b/nipype/interfaces/base/core.py
@@ -276,6 +276,15 @@ def _check_version_requirements(self, trait_object, raise_exception=True):
             version = LooseVersion(str(self.version))
             for name in names:
                 min_ver = LooseVersion(str(trait_object.traits()[name].min_ver))
+                try:
+                    min_ver > version
+                except TypeError:
+                    iflogger.warning(
+                        'Nipype is having issues parsing the package version '
+                        f'for Trait {name} ({self.__class__.__name__})'
+                        f'You may want to check whether {version} is larger than {min_ver}'
+                        )
+                    continue
                 if min_ver > version:
                     unavailable_traits.append(name)
                     if not isdefined(getattr(trait_object, name)):
@@ -293,6 +302,15 @@ def _check_version_requirements(self, trait_object, raise_exception=True):
             version = LooseVersion(str(self.version))
             for name in names:
                 max_ver = LooseVersion(str(trait_object.traits()[name].max_ver))
+                try:
+                    max_ver > version
+                except TypeError:
+                    iflogger.warning(
+                        'Nipype is having issues parsing the package version '
+                        f'for Trait {name} ({self.__class__.__name__})'
+                        f'You may want to check whether {version} is smaller than {max_ver}'
+                        )
+                    continue
                 if max_ver < version:
                     unavailable_traits.append(name)
                     if not isdefined(getattr(trait_object, name)):