summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-02-08 09:16:51 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-02-11 14:46:10 +0000
commit0d85fa531b03f0e7b3ad3d2a5a4d92293b43b8ff (patch)
treebf43e88c6066d62cf42ca135c5d12013bcb9a144 /meta/recipes-devtools/python
parent06e245303c2694dc76973250d9061c0e07ea2a3f (diff)
downloadpoky-0d85fa531b03f0e7b3ad3d2a5a4d92293b43b8ff.tar.gz
python-smartpm: show friendly error if YAML output requested without PyYAML
Instead of a python backtrace, tell the user they need to install PyYAML if they wish to use the --yaml output options. Fixes [YOCTO #3768]. (From OE-Core rev: 69caf24112c11609eb351bea09817029bca0ff2e) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools/python')
-rw-r--r--meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch86
-rw-r--r--meta/recipes-devtools/python/python-smartpm_1.4.1.bb1
2 files changed, 87 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch b/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch
new file mode 100644
index 0000000000..e16c5c12aa
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch
@@ -0,0 +1,86 @@
1Print a more friendly error if YAML output is requested without PyYAML
2
3Upstream-Status: Pending
4
5Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
6
7diff --git a/smart/commands/channel.py b/smart/commands/channel.py
8index 63fbb35..108f3f1 100644
9--- a/smart/commands/channel.py
10+++ b/smart/commands/channel.py
11@@ -339,7 +339,10 @@ def main(ctrl, opts):
12 print
13
14 if opts.yaml is not None:
15- import yaml
16+ try:
17+ import yaml
18+ except ImportError:
19+ raise Error, _("Please install PyYAML in order to use this function")
20 yamlchannels = {}
21 for alias in (opts.yaml or sysconf.get("channels", ())):
22 channel = sysconf.get(("channels", alias))
23diff --git a/smart/commands/config.py b/smart/commands/config.py
24index 4fe4366..aa1db78 100644
25--- a/smart/commands/config.py
26+++ b/smart/commands/config.py
27@@ -137,7 +137,10 @@ def main(ctrl, opts):
28 pprint.pprint(sysconf.get((), hard=True))
29
30 if opts.yaml is not None:
31- import yaml
32+ try:
33+ import yaml
34+ except ImportError:
35+ raise Error, _("Please install PyYAML in order to use this function")
36 if opts.yaml:
37 marker = object()
38 for opt in opts.yaml:
39diff --git a/smart/commands/flag.py b/smart/commands/flag.py
40index ed18999..8b90496 100644
41--- a/smart/commands/flag.py
42+++ b/smart/commands/flag.py
43@@ -138,7 +138,10 @@ def main(ctrl, opts):
44 print
45
46 if opts.yaml is not None:
47- import yaml
48+ try:
49+ import yaml
50+ except ImportError:
51+ raise Error, _("Please install PyYAML in order to use this function")
52 yamlflags = {}
53 for flag in opts.yaml or pkgconf.getFlagNames():
54 flag = flag.strip()
55diff --git a/smart/commands/mirror.py b/smart/commands/mirror.py
56index ca50a95..f7b019d 100644
57--- a/smart/commands/mirror.py
58+++ b/smart/commands/mirror.py
59@@ -218,7 +218,10 @@ def main(ctrl, opts):
60 print
61
62 if opts.yaml:
63- import yaml
64+ try:
65+ import yaml
66+ except ImportError:
67+ raise Error, _("Please install PyYAML in order to use this function")
68 yamlmirrors = {}
69 mirrors = sysconf.get("mirrors", ())
70 for origin in mirrors:
71diff --git a/smart/commands/priority.py b/smart/commands/priority.py
72index d850d29..441ea32 100644
73--- a/smart/commands/priority.py
74+++ b/smart/commands/priority.py
75@@ -117,7 +117,10 @@ def main(ctrl, opts):
76 print
77
78 elif opts.yaml:
79- import yaml
80+ try:
81+ import yaml
82+ except ImportError:
83+ raise Error, _("Please install PyYAML in order to use this function")
84 yamlpriorities = {}
85 priorities = sysconf.get("package-priorities", {})
86 for name in opts.args or priorities:
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
index 06641adc4c..d92933fa3a 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -26,6 +26,7 @@ SRC_URI = "\
26 file://smart-metadata-match.patch \ 26 file://smart-metadata-match.patch \
27 file://smart-improve-error-reporting.patch \ 27 file://smart-improve-error-reporting.patch \
28 file://smart-multilib-fixes.patch \ 28 file://smart-multilib-fixes.patch \
29 file://smart-yaml-error.patch \
29 " 30 "
30 31
31SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" 32SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"