From ad0cc7b58c047cb633939b20f729738b8230855e Mon Sep 17 00:00:00 2001 From: Martin Reinecke <martin@mpa-garching.mpg.de> Date: Wed, 16 Jan 2019 13:51:54 +0100 Subject: [PATCH] fix metaclasses --- nifty5/domains/domain.py | 4 ++-- nifty5/minimization/energy.py | 4 ++-- nifty5/minimization/iteration_controllers.py | 4 ++-- nifty5/minimization/line_search.py | 4 ++-- nifty5/minimization/minimizer.py | 4 ++-- nifty5/operators/operator.py | 4 ++-- nifty5/utilities.py | 7 +------ 7 files changed, 13 insertions(+), 18 deletions(-) diff --git a/nifty5/domains/domain.py b/nifty5/domains/domain.py index b635ae1ad..de8808971 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 3eaa94ef4..3d42c13af 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 467e4a5d6..e27201e85 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 fac417045..89a771b93 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 17ea9f79f..eb8199c80 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 3b2c8a102..3c1552a41 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 15e32f45d..899f9989b 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 -- GitLab