diff --git a/src/diffpy/srreal/_cleanup.py b/src/diffpy/srreal/_cleanup.py index 7d7b0b42..dbb41b13 100644 --- a/src/diffpy/srreal/_cleanup.py +++ b/src/diffpy/srreal/_cleanup.py @@ -27,6 +27,7 @@ class prototypes is implemented in libdiffpy. Any Python-extended classes """ +import atexit import weakref @@ -62,7 +63,7 @@ def add(self, obj): return - def __del__(self): + def clean(self): while self._references: wr = self._references.pop() obj = wr() @@ -75,7 +76,8 @@ def __del__(self): # create singleton instance of the cleanup handler _cleanup_handler = _DerivedClassesCleanUpHandler() -del _DerivedClassesCleanUpHandler +atexit.register(_cleanup_handler.clean) +del _DerivedClassesCleanUpHandler # End of file. diff --git a/src/diffpy/srreal/tests/testpairquantity.py b/src/diffpy/srreal/tests/testpairquantity.py index c54c27e9..2bf755ab 100644 --- a/src/diffpy/srreal/tests/testpairquantity.py +++ b/src/diffpy/srreal/tests/testpairquantity.py @@ -83,7 +83,7 @@ def test_setPairMask_args(self): spm = self.pq.setPairMask gpm = self.pq.getPairMask self.assertRaises(TypeError, spm, 0.0, 0, False) - self.assertRaises(TypeError, spm, numpy.complex(0.5), 0, False) + self.assertRaises(TypeError, spm, complex(0.5), 0, False) self.assertTrue(gpm(0, 0)) spm(numpy.int32(1), 0, True, others=False) self.assertTrue(gpm(0, 1))