Source code for runway.cfngin.lookups.handlers.hook_data
"""Hook data lookup."""from__future__importannotationsimportloggingfromtypingimportTYPE_CHECKING,Any,ClassVarfromtroposphereimportBaseAWSObjectfrom....lookups.handlers.baseimportLookupHandlerfrom....utilsimportMutableMapifTYPE_CHECKING:from....contextimportCfnginContextLOGGER=logging.getLogger(__name__)
[docs]classHookDataLookup(LookupHandler["CfnginContext"]):"""Hook data lookup."""TYPE_NAME:ClassVar[str]="hook_data""""Name that the Lookup is registered as."""
[docs]@classmethoddefhandle(cls,value:str,context:CfnginContext,**_:Any)->Any:"""Return the data from ``hook_data``. Args: value: Parameter(s) given to this lookup. context: Context instance. """query,args=cls.parse(value)hook_data=MutableMap(**context.hook_data)result=hook_data.find(query,args.get("default"))ifisinstance(result,BaseAWSObject)andargs.get("get")andnotargs.get("load"):args["load"]="troposphere"ifnotresult:raiseValueError(f'Could not find a value for "{value}"')ifresult==args.get("default"):# assume default value has already been processed so no need to# use theseargs.pop("load",None)args.pop("get",None)returncls.format_results(result,**args)