From 168467f716992f6510c70da01cb1f7e0192c32cd Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Sun, 15 Jan 2017 18:58:15 +0100
Subject: [PATCH] Remove re warning; Fix test

---
 bob/extension/test_utils.py | 12 ++++++------
 bob/extension/utils.py      |  8 ++++++--
 2 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/bob/extension/test_utils.py b/bob/extension/test_utils.py
index 73da742..09c73de 100644
--- a/bob/extension/test_utils.py
+++ b/bob/extension/test_utils.py
@@ -191,12 +191,12 @@ package-z
         ]
 
     # test linkage to pythonhosted.org
-    server = "https://pythonhosted.org/%s"
+    server = "https://pythonhosted.org/%s/"
     os.environ["BOB_DOCUMENTATION_SERVER"] = server
     result = link_documentation(additional_packages, stringio(f))
     expected = [
-        'https://docs.python.org/%d.%d' % sys.version_info[:2],
-        'http://matplotlib.org',
+        'https://docs.python.org/%d.%d/' % sys.version_info[:2],
+        'http://matplotlib.org/',
         'https://setuptools.readthedocs.io/en/latest/',
         server % 'bob.extension',
         server % 'gridtk',
@@ -205,12 +205,12 @@ package-z
     nose.tools.eq_(sorted(result), sorted(expected))
 
     # test idiap server
-    server = "https://www.idiap.ch/software/bob/docs/latest/bob/%s/master"
+    server = "https://www.idiap.ch/software/bob/docs/latest/bob/%s/master/"
     os.environ["BOB_DOCUMENTATION_SERVER"] = server
     result = link_documentation(additional_packages, stringio(f))
     expected = [
-        'https://docs.python.org/%d.%d' % sys.version_info[:2],
-        'http://matplotlib.org',
+        'https://docs.python.org/%d.%d/' % sys.version_info[:2],
+        'http://matplotlib.org/',
         'https://setuptools.readthedocs.io/en/latest/',
         server % 'bob.extension',
         server % 'gridtk',
diff --git a/bob/extension/utils.py b/bob/extension/utils.py
index 2ee440c..0eaf07f 100644
--- a/bob/extension/utils.py
+++ b/bob/extension/utils.py
@@ -432,11 +432,12 @@ def link_documentation(additional_packages = ['python', 'numpy'], requirements_f
 
   # collect packages are automatically included in the list of indexes
   packages = []
+  version_re = re.compile(r'\s*[\<\>=]+\s*')
   if requirements_file is not None:
     if not isinstance(requirements_file, str) or \
         os.path.exists(requirements_file):
       requirements = load_requirements(requirements_file)
-      packages += [re.split(r'\s*[\<\>=]*\s*',k)[0] for k in requirements]
+      packages += [version_re.split(k)[0] for k in requirements]
   packages += additional_packages
 
 
@@ -514,7 +515,10 @@ def link_documentation(additional_packages = ['python', 'numpy'], requirements_f
   # transforms "(file:///path/to/dir  https://example.com/dir| http://bla )"
   # into ["file:///path/to/dir", "https://example.com/dir", "http://bla"]
   # so, trim eventual parenthesis/white-spaces and splits by white space or |
-  server = re.split(r'[|\s]+', server.strip('() '))
+  if server.strip():
+    server = re.split(r'[|\s]+', server.strip('() '))
+  else:
+    server = []
 
   # check if the packages have documentation on the server
   for p in packages:
-- 
GitLab