aboutsummaryrefslogtreecommitdiff
path: root/contrib
diff options
context:
space:
mode:
authorTom de Vries <tom@codesourcery.com>2017-05-29 07:30:47 +0000
committerTom de Vries <vries@gcc.gnu.org>2017-05-29 07:30:47 +0000
commit76baf5ca9d58cfde6c015cc1162c39a9aec60771 (patch)
tree7e2edfa01c1d873a8ca8ea1e274c69b9975aa149 /contrib
parentbbe3927b62ae4318c5319da379642aafbf6d15be (diff)
downloadgcc-76baf5ca9d58cfde6c015cc1162c39a9aec60771.zip
gcc-76baf5ca9d58cfde6c015cc1162c39a9aec60771.tar.gz
gcc-76baf5ca9d58cfde6c015cc1162c39a9aec60771.tar.bz2
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-29 Tom de Vries <tom@codesourcery.com> * check_GNU_style_lib.py: Use import_pip3 to import pip3 packages. (import_pip3): New function. From-SVN: r248554
Diffstat (limited to 'contrib')
-rw-r--r--contrib/ChangeLog5
-rwxr-xr-xcontrib/check_GNU_style_lib.py34
2 files changed, 28 insertions, 11 deletions
diff --git a/contrib/ChangeLog b/contrib/ChangeLog
index ae0c246..5828508 100644
--- a/contrib/ChangeLog
+++ b/contrib/ChangeLog
@@ -1,3 +1,8 @@
+2017-05-29 Tom de Vries <tom@codesourcery.com>
+
+ * check_GNU_style_lib.py: Use import_pip3 to import pip3 packages.
+ (import_pip3): New function.
+
2017-05-24 Tom de Vries <tom@codesourcery.com>
* check_GNU_style_lib.py: New file, factored out of ...
diff --git a/contrib/check_GNU_style_lib.py b/contrib/check_GNU_style_lib.py
index a1224c11..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 *