Hi,
this patch simplifies the pip3 dependency setup for check_GNU_style_lib.py.
Instead of:
...
$ ./contrib/check_GNU_style.py
termcolor module is missing (run: pip3 install termcolor)
$ pip3 install termcolor
$ ./contrib/check_GNU_style.py
unidiff module is missing (run: pip3 install unidiff)
$ pip3 install unidiff
$
...
we now do:
...
$ ./contrib/check_GNU_style.py
termcolor and unidiff modules are missing (run: pip3 install termcolor
unidiff)
$ pip3 install termcolor unidiff
$
...
Committed.
Thanks,
- Tom
check_GNU_style_lib.py: Suggest to install all missing pip3 packages at once
Instead of:
...
$ ./contrib/check_GNU_style.py
termcolor module is missing (run: pip3 install termcolor)
$ pip3 install termcolor
$ ./contrib/check_GNU_style.py
unidiff module is missing (run: pip3 install unidiff)
$ pip3 install unidiff
$
...
Do:
...
$ ./contrib/check_GNU_style.py
termcolor and unidiff modules are missing (run: pip3 install termcolor unidiff)
$ pip3 install termcolor unidiff
$
...
2017-05-28 Tom de Vries <t...@codesourcery.com>
* check_GNU_style_lib.py: Use import_pip3 to import pip3 packages.
(import_pip3): New function.
---
contrib/check_GNU_style_lib.py | 34 +++++++++++++++++++++++-----------
1 file changed, 23 insertions(+), 11 deletions(-)
diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py
index a1224c1..d924e68 100755
--- a/contrib/check_GNU_style_lib.py
+++ b/contrib/check_GNU_style_lib.py
@@ -28,17 +28,29 @@ import sys
import re
import unittest
-try:
- from termcolor import colored
-except ImportError:
- print('termcolor module is missing (run: pip3 install termcolor)')
- exit(3)
-
-try:
- from unidiff import PatchSet
-except ImportError:
- print('unidiff module is missing (run: pip3 install unidiff)')
- exit(3)
+def import_pip3(*args):
+ missing=[]
+ for (module, names) in args:
+ try:
+ lib = __import__(module)
+ except ImportError:
+ missing.append(module)
+ continue
+ if not isinstance(names, list):
+ names=[names]
+ for name in names:
+ globals()[name]=getattr(lib, name)
+ if len(missing) > 0:
+ missing_and_sep = ' and '.join(missing)
+ missing_space_sep = ' '.join(missing)
+ print('%s %s missing (run: pip3 install %s)'
+ % (missing_and_sep,
+ ("module is" if len(missing) == 1 else "modules are"),
+ missing_space_sep))
+ exit(3)
+
+import_pip3(('termcolor', 'colored'),
+ ('unidiff', 'PatchSet'))
from itertools import *