python: Accept multiple forms of strings and lists when parsing JSON.
[sliver-openvswitch.git] / python / ovs / db / schema.py
index 65ddca6..1c474a8 100644 (file)
@@ -64,8 +64,8 @@ class DbSchema(object):
     def from_json(json):
         parser = ovs.db.parser.Parser(json, "database schema")
         name = parser.get("name", ['id'])
-        version = parser.get_optional("version", [unicode])
-        parser.get_optional("cksum", [unicode])
+        version = parser.get_optional("version", [str, unicode])
+        parser.get_optional("cksum", [str, unicode])
         tablesJson = parser.get("tables", [dict])
         parser.finish()
 
@@ -125,8 +125,8 @@ class IdlSchema(DbSchema):
     @staticmethod
     def from_json(json):
         parser = ovs.db.parser.Parser(json, "IDL schema")
-        idlPrefix = parser.get("idlPrefix", [unicode])
-        idlHeader = parser.get("idlHeader", [unicode])
+        idlPrefix = parser.get("idlPrefix", [str, unicode])
+        idlHeader = parser.get("idlHeader", [str, unicode])
 
         subjson = dict(json)
         del subjson["idlPrefix"]
@@ -249,7 +249,7 @@ class ColumnSchema(object):
         parser = ovs.db.parser.Parser(json, "schema for column %s" % name)
         mutable = parser.get_optional("mutable", [bool], True)
         ephemeral = parser.get_optional("ephemeral", [bool], False)
-        type_ = types.Type.from_json(parser.get("type", [dict, unicode]))
+        type_ = types.Type.from_json(parser.get("type", [dict, str, unicode]))
         parser.finish()
 
         return ColumnSchema(name, mutable, not ephemeral, type_)