From eaadd539512fd5e3b9eb705eb413f4d2b63b2037 Mon Sep 17 00:00:00 2001 From: Mike Auty Date: Sun, 25 Mar 2018 18:16:34 +0100 Subject: [PATCH] Allow the optional setting of requirements to be changed (for sub-plugins). --- volatility/cli/__init__.py | 2 +- volatility/framework/interfaces/configuration.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/volatility/cli/__init__.py b/volatility/cli/__init__.py index 9432f3195..eec2b5a76 100644 --- a/volatility/cli/__init__.py +++ b/volatility/cli/__init__.py @@ -223,7 +223,7 @@ class CommandLine(object): # Construct an argparse group for requirement in configurable.get_requirements(): - additional = {} + additional = {} # typing.Dict[str, typing.Any] if not isinstance(requirement, interfaces.configuration.RequirementInterface): raise TypeError( "Plugin contains requirements that are not RequirementInterfaces: {}".format(configurable.__name__)) diff --git a/volatility/framework/interfaces/configuration.py b/volatility/framework/interfaces/configuration.py index c2d481a95..bb8587cad 100644 --- a/volatility/framework/interfaces/configuration.py +++ b/volatility/framework/interfaces/configuration.py @@ -274,6 +274,11 @@ class RequirementInterface(validity.ValidityRoutines, metaclass = ABCMeta): """Whether the Requirement is optional or not""" return self._optional + @optional.setter + def optional(self, value) -> None: + """Sets the optional value for a requirement""" + self._optional = bool(value) + def config_value(self, context: interfaces.context.ContextInterface, config_path: str,