# HG changeset patch # User Paul Boddie # Date 1300840827 -3600 # Node ID bcdd14822a46bdcb617a3596a20bfff493a2ac55 # Parent 930e3447f06f881d2a251f20189474f360e1a7f6 Made ObjectSet more usable as a set member and as a collection. Store products of ObjectSet instances in a set, not a list. Fixed the HTML generation to show attribute types again. diff -r 930e3447f06f -r bcdd14822a46 micropython/common.py --- a/micropython/common.py Wed Mar 23 00:58:57 2011 +0100 +++ b/micropython/common.py Wed Mar 23 01:40:27 2011 +0100 @@ -58,13 +58,16 @@ def __iter__(self): return iter(self.keys()) + def __nonzero__(self): + return self.objects != {} + # Set membership and comparisons. def __hash__(self): return hash(tuple(self.keys())) - def cmp(self, other): - return cmp(self.keys(), other.keys()) + def __eq__(self, other): + return self.objects == other.objects # Set methods. @@ -138,10 +141,10 @@ members. """ - combined = [] + combined = set([]) for i1 in l1: for i2 in l2: - combined.append(i1.merge(i2)) + combined.add(i1.merge(i2)) return combined def deepen_mapping_dict(d): diff -r 930e3447f06f -r bcdd14822a46 micropython/report.py --- a/micropython/report.py Wed Mar 23 00:58:57 2011 +0100 +++ b/micropython/report.py Wed Mar 23 01:40:27 2011 +0100 @@ -826,7 +826,8 @@ self._span_end() def visitAssAttr(self, node): - target_names = self.possible_accessor_types(node) + target_names = ["%s%s" % (is_static and "class " or "", target_name) + for target_name, is_static in self.possible_accessor_types(node)] self._span_start("assattr") self._accessor_start(target_names) self.dispatch(node.expr) @@ -911,7 +912,8 @@ self._visitBinary(node, "floordiv", "//") def visitGetattr(self, node): - target_names = self.possible_accessor_types(node) + target_names = ["%s%s" % (is_static and "class " or "", target_name) + for target_name, is_static in self.possible_accessor_types(node)] self._span_start("getattr") self._accessor_start(target_names) self.dispatch(node.expr)