in cfn_policy_validator/parsers/utils/intrinsic_functions/aws_no_value_evaluator.py [0:0]
def evaluate(self, value):
if isinstance(value, dict):
for key in list(value.keys()):
child_value = value[key]
if isinstance(child_value, NoValue):
del value[key]
else:
self.evaluate(child_value)
elif isinstance(value, list):
for item in value:
self.evaluate(item)
# mutate the list to remove any item that is NoValue
# must be done outside of the above for loop
value[:] = [item for item in value if not isinstance(item, NoValue)]
return value