]> git-server-git.apps.pok.os.sepia.ceph.com Git - radosgw-agent.git/commitdiff
create an obj util that can convert objects to_dict
authorAlfredo Deza <adeza@redhat.com>
Tue, 17 Mar 2015 15:02:59 +0000 (11:02 -0400)
committerAlfredo Deza <adeza@redhat.com>
Tue, 17 Mar 2015 15:02:59 +0000 (11:02 -0400)
Signed-off-by: Alfredo Deza <adeza@redhat.com>
radosgw_agent/util/obj.py [new file with mode: 0644]

diff --git a/radosgw_agent/util/obj.py b/radosgw_agent/util/obj.py
new file mode 100644 (file)
index 0000000..30d63c0
--- /dev/null
@@ -0,0 +1,22 @@
+
+
+def to_dict(_object, **extra_keys):
+    """
+    A utility to convert an object with attributes to a dictionary with the
+    optional feature of slapping extra_keys. Because extra_keys can be
+    optionally set, it is assumed that any keys that clash will get
+    overwritten.
+
+    Private methods (anything that starts with `_`) are ignored.
+    """
+    dictified_obj = {}
+    for k, v in _object.__dict__.items():
+        if not k.startswith('_'):
+            # get key
+            value = extra_keys.pop(k, v)
+            dictified_obj[k] = value
+    if extra_keys:
+        for k, v in extra_keys.items():
+            dictified_obj[k] = v
+
+    return dictified_obj