From: Eric Blake <eblake@redhat.com>
To: John Snow <jsnow@redhat.com>, qemu-devel@nongnu.org
Cc: kchamart@redhat.com, lcapitulino@redhat.com
Subject: Re: [Qemu-devel] [PATCH 3/5] scripts: qmp-shell: allow single-quotes in JSON expressions
Date: Wed, 22 Apr 2015 09:18:55 -0600 [thread overview]
Message-ID: <5537BBDF.1050604@redhat.com> (raw)
In-Reply-To: <5537B87D.2070205@redhat.com>
[-- Attachment #1: Type: text/plain, Size: 1681 bytes --]
On 04/22/2015 09:04 AM, John Snow wrote:
>> But it's still worth thinking about whether there is a more robust
>> solution to be used.
>>
>
> I done looked it up:
>
> I can probably squash patches 2&3 with a single fix to use the
> ast.literal_eval() function, which does accept single or double quotes,
> since it parses python syntax instead of JSON.
Our QMP parser accepts 'string' as an extension to JSON (which is
"string" only). That's about the only JSON extension our parser has at
the moment.
Another thing to consider - JSON uses "bool-key":false while Python uses
"bool-key":False (we don't yet support any QMP commands that would
validly require a null argument, but JSON would use "key":null while
Python uses "key":None). Once you get past that difference in spelling
for True, False, and None (which could be done by string replace of bare
'true', 'false', and 'null'), then JSON is pretty much a strict subset
of valid Python. Having qmp-shell be friendly and accept both JSON and
Python spellings of the three keywords might actually be a nice hack.
Maybe we should even extend our QMP parser to also accept True in place
of true (output would still always be strict JSON, but there's no harm
in making the input engine parse extensions, as we've already proven
with the 'string' extension).
>
> I could probably also just have it 'try' each method until it finds
> something it likes.
I haven't used qmp-shell much myself, so at this point, I'll leave it up
to you how much effort you want to put into it.
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 604 bytes --]
next prev parent reply other threads:[~2015-04-22 15:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-04-22 2:02 [Qemu-devel] [PATCH 0/5] scripts: qmp-shell: add transaction support John Snow
2015-04-22 2:02 ` [Qemu-devel] [PATCH 1/5] scripts: qmp-shell: refactor helpers John Snow
2015-04-22 14:25 ` Eric Blake
2015-04-22 2:02 ` [Qemu-devel] [PATCH 2/5] scripts: qmp-shell: add support for [] expressions John Snow
2015-04-22 14:28 ` Eric Blake
2015-04-22 14:31 ` John Snow
2015-04-22 2:02 ` [Qemu-devel] [PATCH 3/5] scripts: qmp-shell: allow single-quotes in JSON expressions John Snow
2015-04-22 14:34 ` Eric Blake
2015-04-22 14:39 ` John Snow
2015-04-22 15:04 ` John Snow
2015-04-22 15:18 ` Eric Blake [this message]
2015-04-22 2:02 ` [Qemu-devel] [PATCH 4/5] scripts: qmp-shell: add transaction subshell John Snow
2015-04-22 14:48 ` Eric Blake
2015-04-22 15:02 ` John Snow
2015-04-22 15:28 ` Eric Blake
2015-04-22 2:02 ` [Qemu-devel] [PATCH 5/5] scripts: qmp-shell: Add verbose flag John Snow
2015-04-22 14:50 ` Eric Blake
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=5537BBDF.1050604@redhat.com \
--to=eblake@redhat.com \
--cc=jsnow@redhat.com \
--cc=kchamart@redhat.com \
--cc=lcapitulino@redhat.com \
--cc=qemu-devel@nongnu.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;
as well as URLs for NNTP newsgroup(s).