# See the License for the specific language governing permissions and
# limitations under the License.
-import errno
-import logging
-import os
import re
-import select
-import sys
import uuid
import ovs.poller
return Datum(type_, {keyAtom: None})
def to_json(self):
- if len(self.values) == 1 and not self.type.is_map():
+ if self.type.is_map():
+ return ["map", [[k.to_json(), v.to_json()]
+ for k, v in sorted(self.values.items())]]
+ elif len(self.values) == 1:
key = self.values.keys()[0]
return key.to_json()
- elif not self.type.is_map():
- return ["set", [k.to_json() for k in sorted(self.values.keys())]]
else:
- return ["map", [[k.to_json(), v.to_json()]
- for k, v in sorted(self.values.items())]]
+ return ["set", [k.to_json() for k in sorted(self.values.keys())]]
def to_string(self):
head = tail = None
if head:
s.append(head)
- i = 0
- for key in sorted(self.values):
+ for i, key in enumerate(sorted(self.values)):
if i:
s.append(", ")
- i += 1
s.append(key.to_string())
if self.type.is_map():
s += ["%s->keys = xmalloc(%d * sizeof *%s->keys);"
% (var, len(self.values), var)]
- i = 0
- for key, value in sorted(self.values.items()):
+ for i, key in enumerate(sorted(self.values)):
s += key.cInitAtom("%s->keys[%d]" % (var, i))
- i += 1
if self.type.value:
s += ["%s->values = xmalloc(%d * sizeof *%s->values);"
% (var, len(self.values), var)]
- i = 0
- for key, value in sorted(self.values.items()):
+ for i, (key, value) in enumerate(sorted(self.values.items())):
s += value.cInitAtom("%s->values[%d]" % (var, i))
- i += 1
else:
s += ["%s->values = NULL;" % var]