21 from __future__
import annotations
23 __all__ = [
"ConfigurableAction"]
25 from typing
import Any
31 """A `ConfigurableAction` is an interface that extends a
32 `lsst.pex.config.Config` class to include a `__call__` method.
34 This interface is designed to create an action that can be used at
35 runtime with state that is determined during the configuration stage. A
36 single action thus may be assigned multiple times, each with different
39 This allows state to be set and recorded at configuration time,
40 making future reproduction of results easy.
42 This class is intended to be an interface only, but because of various
43 inheritance conflicts this class can not be implemented as an Abstract
44 Base Class. Instead, the `__call__` method is purely virtual, meaning that
45 it will raise a `NotImplementedError` when called. Subclasses that
46 represent concrete actions must provide an override.
49 raise NotImplementedError(
"This method should be overloaded in subclasses")
Any __call__(self, *args, **kwargs)