pycriu: images: pb2dict: preserve fields order with "pretty" option

Using collections.OrderedDict allows us to keep fields in the
same order as they appear in corresponding proto files, which
helps to impove readability. In non-pretty mode we still use
regular dict.

Signed-off-by: Ruslan Kuprieiev <rkuprieiev@cloudlinux.com>
Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
Ruslan Kuprieiev 2015-06-24 11:57:00 +03:00 committed by Pavel Emelyanov
parent e0b24e21d3
commit 7197aff703

View file

@ -2,6 +2,7 @@ from google.protobuf.descriptor import FieldDescriptor as FD
import opts_pb2
import ipaddr
import socket
import collections
# pb2dict and dict2pb are methods to convert pb to/from dict.
# Inspired by:
@ -74,7 +75,7 @@ def pb2dict(pb, pretty = False, is_hex = False):
Convert protobuf msg to dictionary.
Takes a protobuf message and returns a dict.
"""
d = {}
d = collections.OrderedDict() if pretty else {}
for field, value in pb.ListFields():
if field.label == FD.LABEL_REPEATED:
d_val = []