diff mbox series

qmp-shell: Sort by key when pretty-printing

Message ID 20201013141414.18398-1-david.edmondson@oracle.com
State Superseded
Headers show
Series qmp-shell: Sort by key when pretty-printing | expand

Commit Message

David Edmondson Oct. 13, 2020, 2:14 p.m. UTC
If the user selects pretty-printing (-p) the contents of any
dictionaries in the output are sorted by key.

Signed-off-by: David Edmondson <david.edmondson@oracle.com>
---
 scripts/qmp/qmp-shell | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Philippe Mathieu-Daudé Oct. 13, 2020, 2:19 p.m. UTC | #1
On 10/13/20 4:14 PM, David Edmondson wrote:
> If the user selects pretty-printing (-p) the contents of any

> dictionaries in the output are sorted by key.

> 

> Signed-off-by: David Edmondson <david.edmondson@oracle.com>

> ---

>   scripts/qmp/qmp-shell | 2 +-

>   1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell

> index c5eef06f3f..b4d06096ab 100755

> --- a/scripts/qmp/qmp-shell

> +++ b/scripts/qmp/qmp-shell

> @@ -260,7 +260,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

>           indent = None

>           if self._pretty:

>               indent = 4

> -        jsobj = json.dumps(qmp, indent=indent)

> +        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)

>           print(str(jsobj))

>   

>       def _execute_cmd(self, cmdline):

> 


Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Markus Armbruster Oct. 20, 2020, 6:43 a.m. UTC | #2
David Edmondson <david.edmondson@oracle.com> writes:

> If the user selects pretty-printing (-p) the contents of any

> dictionaries in the output are sorted by key.

>

> Signed-off-by: David Edmondson <david.edmondson@oracle.com>

> ---

>  scripts/qmp/qmp-shell | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

>

> diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell

> index c5eef06f3f..b4d06096ab 100755

> --- a/scripts/qmp/qmp-shell

> +++ b/scripts/qmp/qmp-shell

> @@ -260,7 +260,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

>          indent = None

>          if self._pretty:

>              indent = 4

> -        jsobj = json.dumps(qmp, indent=indent)

> +        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)

>          print(str(jsobj))

>  

>      def _execute_cmd(self, cmdline):


Queued, thanks!
John Snow Nov. 30, 2020, 8:56 p.m. UTC | #3
On 10/13/20 10:14 AM, David Edmondson wrote:
> If the user selects pretty-printing (-p) the contents of any

> dictionaries in the output are sorted by key.

> 

> Signed-off-by: David Edmondson <david.edmondson@oracle.com>

> ---

>   scripts/qmp/qmp-shell | 2 +-

>   1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell

> index c5eef06f3f..b4d06096ab 100755

> --- a/scripts/qmp/qmp-shell

> +++ b/scripts/qmp/qmp-shell

> @@ -260,7 +260,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

>           indent = None

>           if self._pretty:

>               indent = 4

> -        jsobj = json.dumps(qmp, indent=indent)

> +        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)

>           print(str(jsobj))

>   

>       def _execute_cmd(self, cmdline):

> 


Hi, out of curiosity, what does this help you accomplish?

I've recently been overhauling a LOT of the Python utilities we have, so 
I'm interested in hearing about how people use these tools and what 
they'd like them to do.

--js
David Edmondson Nov. 30, 2020, 9:57 p.m. UTC | #4
On Monday, 2020-11-30 at 15:56:51 -05, John Snow wrote:

> On 10/13/20 10:14 AM, David Edmondson wrote:

>> If the user selects pretty-printing (-p) the contents of any

>> dictionaries in the output are sorted by key.

>> 

>> Signed-off-by: David Edmondson <david.edmondson@oracle.com>

>> ---

>>   scripts/qmp/qmp-shell | 2 +-

>>   1 file changed, 1 insertion(+), 1 deletion(-)

>> 

>> diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell

>> index c5eef06f3f..b4d06096ab 100755

>> --- a/scripts/qmp/qmp-shell

>> +++ b/scripts/qmp/qmp-shell

>> @@ -260,7 +260,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

>>           indent = None

>>           if self._pretty:

>>               indent = 4

>> -        jsobj = json.dumps(qmp, indent=indent)

>> +        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)

>>           print(str(jsobj))

>>   

>>       def _execute_cmd(self, cmdline):

>> 

>

> Hi, out of curiosity, what does this help you accomplish?


When dumping a dictionary with many values, visually finding a specific
one that is of interest is much quicker if they are sorted. Nothing more
than that.

> I've recently been overhauling a LOT of the Python utilities we have, so 

> I'm interested in hearing about how people use these tools and what 

> they'd like them to do.

>

> --js


dme.
-- 
I can't explain, you would not understand. This is not how I am.
John Snow Dec. 1, 2020, 3:17 p.m. UTC | #5
On 11/30/20 4:57 PM, David Edmondson wrote:
> On Monday, 2020-11-30 at 15:56:51 -05, John Snow wrote:

> 

>> On 10/13/20 10:14 AM, David Edmondson wrote:

>>> If the user selects pretty-printing (-p) the contents of any

>>> dictionaries in the output are sorted by key.

>>>

>>> Signed-off-by: David Edmondson <david.edmondson@oracle.com>

>>> ---

>>>    scripts/qmp/qmp-shell | 2 +-

>>>    1 file changed, 1 insertion(+), 1 deletion(-)

>>>

>>> diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell

>>> index c5eef06f3f..b4d06096ab 100755

>>> --- a/scripts/qmp/qmp-shell

>>> +++ b/scripts/qmp/qmp-shell

>>> @@ -260,7 +260,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):

>>>            indent = None

>>>            if self._pretty:

>>>                indent = 4

>>> -        jsobj = json.dumps(qmp, indent=indent)

>>> +        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)

>>>            print(str(jsobj))

>>>    

>>>        def _execute_cmd(self, cmdline):

>>>

>>

>> Hi, out of curiosity, what does this help you accomplish?

> 

> When dumping a dictionary with many values, visually finding a specific

> one that is of interest is much quicker if they are sorted. Nothing more

> than that.

> 


Okay, simple! thanks for the input.

If you ever have any other laundry list desires or feedback for 
qmp-shell, let me know, as I intend to overhaul it soon.

(I may turn it into a GSoC project, too.)

--js
diff mbox series

Patch

diff --git a/scripts/qmp/qmp-shell b/scripts/qmp/qmp-shell
index c5eef06f3f..b4d06096ab 100755
--- a/scripts/qmp/qmp-shell
+++ b/scripts/qmp/qmp-shell
@@ -260,7 +260,7 @@  class QMPShell(qmp.QEMUMonitorProtocol):
         indent = None
         if self._pretty:
             indent = 4
-        jsobj = json.dumps(qmp, indent=indent)
+        jsobj = json.dumps(qmp, indent=indent, sort_keys=self._pretty)
         print(str(jsobj))
 
     def _execute_cmd(self, cmdline):