From: Paul Eggleton <paul.eggleton@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 1/1] python-smartpm: show friendly error if YAML output requested without PyYAML
Date: Fri, 8 Feb 2013 09:16:51 +0000 [thread overview]
Message-ID: <babf8418689667cdd606ea089536a6e55c7708f7.1360314954.git.paul.eggleton@linux.intel.com> (raw)
In-Reply-To: <cover.1360314954.git.paul.eggleton@linux.intel.com>
In-Reply-To: <cover.1360314954.git.paul.eggleton@linux.intel.com>
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].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
.../python/python-smartpm/smart-yaml-error.patch | 86 ++++++++++++++++++++
.../python/python-smartpm_1.4.1.bb | 1 +
2 files changed, 87 insertions(+)
create mode 100644 meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch
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 0000000..e16c5c1
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-yaml-error.patch
@@ -0,0 +1,86 @@
+Print a more friendly error if YAML output is requested without PyYAML
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+
+diff --git a/smart/commands/channel.py b/smart/commands/channel.py
+index 63fbb35..108f3f1 100644
+--- a/smart/commands/channel.py
++++ b/smart/commands/channel.py
+@@ -339,7 +339,10 @@ def main(ctrl, opts):
+ print
+
+ if opts.yaml is not None:
+- import yaml
++ try:
++ import yaml
++ except ImportError:
++ raise Error, _("Please install PyYAML in order to use this function")
+ yamlchannels = {}
+ for alias in (opts.yaml or sysconf.get("channels", ())):
+ channel = sysconf.get(("channels", alias))
+diff --git a/smart/commands/config.py b/smart/commands/config.py
+index 4fe4366..aa1db78 100644
+--- a/smart/commands/config.py
++++ b/smart/commands/config.py
+@@ -137,7 +137,10 @@ def main(ctrl, opts):
+ pprint.pprint(sysconf.get((), hard=True))
+
+ if opts.yaml is not None:
+- import yaml
++ try:
++ import yaml
++ except ImportError:
++ raise Error, _("Please install PyYAML in order to use this function")
+ if opts.yaml:
+ marker = object()
+ for opt in opts.yaml:
+diff --git a/smart/commands/flag.py b/smart/commands/flag.py
+index ed18999..8b90496 100644
+--- a/smart/commands/flag.py
++++ b/smart/commands/flag.py
+@@ -138,7 +138,10 @@ def main(ctrl, opts):
+ print
+
+ if opts.yaml is not None:
+- import yaml
++ try:
++ import yaml
++ except ImportError:
++ raise Error, _("Please install PyYAML in order to use this function")
+ yamlflags = {}
+ for flag in opts.yaml or pkgconf.getFlagNames():
+ flag = flag.strip()
+diff --git a/smart/commands/mirror.py b/smart/commands/mirror.py
+index ca50a95..f7b019d 100644
+--- a/smart/commands/mirror.py
++++ b/smart/commands/mirror.py
+@@ -218,7 +218,10 @@ def main(ctrl, opts):
+ print
+
+ if opts.yaml:
+- import yaml
++ try:
++ import yaml
++ except ImportError:
++ raise Error, _("Please install PyYAML in order to use this function")
+ yamlmirrors = {}
+ mirrors = sysconf.get("mirrors", ())
+ for origin in mirrors:
+diff --git a/smart/commands/priority.py b/smart/commands/priority.py
+index d850d29..441ea32 100644
+--- a/smart/commands/priority.py
++++ b/smart/commands/priority.py
+@@ -117,7 +117,10 @@ def main(ctrl, opts):
+ print
+
+ elif opts.yaml:
+- import yaml
++ try:
++ import yaml
++ except ImportError:
++ raise Error, _("Please install PyYAML in order to use this function")
+ yamlpriorities = {}
+ priorities = sysconf.get("package-priorities", {})
+ 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 06641ad..d92933f 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 = "\
file://smart-metadata-match.patch \
file://smart-improve-error-reporting.patch \
file://smart-multilib-fixes.patch \
+ file://smart-yaml-error.patch \
"
SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"
--
1.7.10.4
prev parent reply other threads:[~2013-02-08 9:32 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-08 9:16 [PATCH 0/1] Minor Smart improvement Paul Eggleton
2013-02-08 9:16 ` Paul Eggleton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=babf8418689667cdd606ea089536a6e55c7708f7.1360314954.git.paul.eggleton@linux.intel.com \
--to=paul.eggleton@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox