21from __future__
import annotations
23__all__ = [
"ConfigurableAction"]
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)