in fbnet/command_runner/utils.py [0:0]
def input_fields_validator(fn): # noqa C901
@wraps(fn)
async def wrapper(self, *args, **kwargs):
for i, arg in enumerate(args):
if arg is None:
raise ValidationErrorException(
f"The ({i + 1})th argument cannot be None."
)
elif isinstance(arg, ttypes.Device):
_check_device(arg)
elif isinstance(arg, ttypes.Session):
_check_session(arg)
# This if-statememt will match device_to_commands or device_to_configlets
elif isinstance(arg, dict):
for device in arg:
_check_device(device)
for argument, val in kwargs.items():
if argument == "command" and not val:
raise ValidationErrorException(
"Required argument (command) cannot be None."
)
elif argument == "device":
_check_device(val)
elif argument == "session":
_check_session(val)
elif argument == "device_to_commands" or argument == "device_to_configlets":
if not val:
raise ValidationErrorException(
f"Required argument ({argument}) cannot be None."
)
for device in val:
_check_device(device)
return await fn(self, *args, **kwargs)
return wrapper