diff --git a/gen_wrap.py b/gen_wrap.py index 67d68e6ff5442a7f85a2deb6d17e40dd17781cd9..bfeaf24eb8e119108564a04e077dcc572e520fbd 100644 --- a/gen_wrap.py +++ b/gen_wrap.py @@ -1371,13 +1371,17 @@ def write_method_wrapper(gen, cls_name, meth): gen("") method_val = meth.name + py_name = meth.name + if meth.is_static: method_val = "staticmethod(%s)" % method_val + if py_name == "size" and len(meth.args) == 1: + py_name = "__len__" - gen("{py_cls}.{name} = {method_val}" + gen("{py_cls}.{py_name} = {method_val}" .format( py_cls=isl_class_to_py_class(meth.cls), - name=meth.name, + py_name=py_name, method_val=method_val)) gen("") @@ -1385,7 +1389,7 @@ def write_method_wrapper(gen, cls_name, meth): gen("{py_cls}._{name}_is_static = True" .format( py_cls=isl_class_to_py_class(meth.cls), - name=meth.name)) + name=py_name)) gen("") # }}} diff --git a/islpy/__init__.py b/islpy/__init__.py index a234399be3bbfc769d5367d04595c50edb07b273..fd006bc9bc73ac60a40338e7a8dbed618c1cc7a2 100644 --- a/islpy/__init__.py +++ b/islpy/__init__.py @@ -212,10 +212,20 @@ def _add_functionality(): return "%s(\"%s\")" % ( type(self).__name__, prn.get_str()) + def generic_hash(self): + return hash((type(self), str(self))) + + def generic_isl_hash(self): + return self.get_hash() + for cls in ALL_CLASSES: if hasattr(cls, "_base_name") and hasattr(Printer, "print_"+cls._base_name): cls.__str__ = generic_str cls.__repr__ = generic_repr + if hasattr(cls, "get_hash"): + cls.__hash__ = generic_isl_hash + else: + cls.__hash__ = generic_hash # }}}