diff --git a/nifty5/domains/domain.py b/nifty5/domains/domain.py index b635ae1ad2dfccd9375d3b7455915ed5d0d5fdf9..de88089718d9577b700ab5cb2adc6e9cacee47cf 100644 --- a/nifty5/domains/domain.py +++ b/nifty5/domains/domain.py @@ -16,10 +16,10 @@ # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. from functools import reduce -from ..utilities import NiftyMetaBase +from ..utilities import NiftyMeta -class Domain(NiftyMetaBase()): +class Domain(metaclass=NiftyMeta): """The abstract class repesenting a (structured or unstructured) domain. """ def __repr__(self): diff --git a/nifty5/minimization/energy.py b/nifty5/minimization/energy.py index 3eaa94ef43f8eb77117e917c6545fb563151baf3..3d42c13af16356f161909757f1c04466191d771f 100644 --- a/nifty5/minimization/energy.py +++ b/nifty5/minimization/energy.py @@ -15,10 +15,10 @@ # # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. -from ..utilities import NiftyMetaBase +from ..utilities import NiftyMeta -class Energy(NiftyMetaBase()): +class Energy(metaclass=NiftyMeta): """Provides the functional used by minimization schemes. The Energy object is an implementation of a scalar function including its diff --git a/nifty5/minimization/iteration_controllers.py b/nifty5/minimization/iteration_controllers.py index 467e4a5d658be51e14732d0b2cb59f3d4cd47c64..e27201e85501a2612372b5dbb274555dc55dc13d 100644 --- a/nifty5/minimization/iteration_controllers.py +++ b/nifty5/minimization/iteration_controllers.py @@ -16,11 +16,11 @@ # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. from ..logger import logger -from ..utilities import NiftyMetaBase +from ..utilities import NiftyMeta import numpy as np -class IterationController(NiftyMetaBase()): +class IterationController(metaclass=NiftyMeta): """The abstract base class for all iteration controllers. An iteration controller is an object that monitors the progress of a minimization iteration. At the begin of the minimization, its start() diff --git a/nifty5/minimization/line_search.py b/nifty5/minimization/line_search.py index fac4170450c4abd1b39fde7329067a2afe4eea53..89a771b931a4b824d63f22353e960449583d9ffa 100644 --- a/nifty5/minimization/line_search.py +++ b/nifty5/minimization/line_search.py @@ -15,7 +15,7 @@ # # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. -from ..utilities import NiftyMetaBase +from ..utilities import NiftyMeta from ..logger import logger import numpy as np @@ -103,7 +103,7 @@ class LineEnergy(object): return res.real -class LineSearch(NiftyMetaBase()): +class LineSearch(metaclass=NiftyMeta): """Class for finding a step size that satisfies the strong Wolfe conditions. diff --git a/nifty5/minimization/minimizer.py b/nifty5/minimization/minimizer.py index 17ea9f79f383a1d6d7ab53e6ee90964b6f975909..eb8199c808b6ec9ee92b923fc633edc498d20625 100644 --- a/nifty5/minimization/minimizer.py +++ b/nifty5/minimization/minimizer.py @@ -15,10 +15,10 @@ # # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. -from ..utilities import NiftyMetaBase +from ..utilities import NiftyMeta -class Minimizer(NiftyMetaBase()): +class Minimizer(metaclass=NiftyMeta): """A base class used by all minimizers.""" # MR FIXME: the docstring is partially ignored by Sphinx. Why? diff --git a/nifty5/operators/operator.py b/nifty5/operators/operator.py index 3b2c8a102bb8992576bf7134d9056dd35b23fa7f..3c1552a41d3fec62c2a5345e8456b433bdba87d3 100644 --- a/nifty5/operators/operator.py +++ b/nifty5/operators/operator.py @@ -16,10 +16,10 @@ # NIFTy is being developed at the Max-Planck-Institut fuer Astrophysik. import numpy as np -from ..utilities import NiftyMetaBase, indent +from ..utilities import NiftyMeta, indent -class Operator(NiftyMetaBase()): +class Operator(metaclass=NiftyMeta): """Transforms values defined on one domain into values defined on another domain, and can also provide the Jacobian. """ diff --git a/nifty5/utilities.py b/nifty5/utilities.py index 15e32f45d33f873e80315d98ba82f469ed7f0aa0..899f9989bdd494f1b689b2b68dbd8d467bb1ddda 100644 --- a/nifty5/utilities.py +++ b/nifty5/utilities.py @@ -20,10 +20,9 @@ from itertools import product from functools import reduce import numpy as np -from future.utils import with_metaclass __all__ = ["get_slice_list", "safe_cast", "parse_spaces", "infer_space", - "memo", "NiftyMetaBase", "my_sum", "my_lincomb_simple", + "memo", "NiftyMeta", "my_sum", "my_lincomb_simple", "my_lincomb", "indent", "my_product", "frozendict", "special_add_at", "iscomplextype"] @@ -178,10 +177,6 @@ class NiftyMeta(_DocStringInheritor): pass -def NiftyMetaBase(): - return with_metaclass(NiftyMeta, type('NewBase', (object,), {})) - - class frozendict(collections.abc.Mapping): """ An immutable wrapper around dictionaries that implements the complete