in fluent/migrate/validator.py [0:0]
def call_helpers_transforms_from(self, node):
args_msg = "Expected arguments to transforms_from: " "str, **substitions"
if not self.check_arguments(node, (ast.Constant,), check_kwargs=False):
self.issues.append(
{
"msg": args_msg,
"line": node.lineno,
}
)
return
kwargs = {}
found_bad_keywords = False
for keyword in node.keywords:
v = keyword.value
if isinstance(v, ast.Constant):
v = v.value
if isinstance(v, ast.Name):
v = self.global_assigns.get(v.id)
if isinstance(v, ast.Call):
v = "determined at runtime"
if not isinstance(v, PATH_TYPES):
msg = "Bad keyword arg {} to transforms_from".format(keyword.arg)
self.issues.append(
{
"msg": msg,
"line": node.lineno,
}
)
found_bad_keywords = True
else:
kwargs[keyword.arg] = v
if found_bad_keywords:
return
try:
transforms = transforms_from(node.args[0].value, **kwargs)
except MigrationError as e:
self.issues.append(
{
"msg": str(e),
"line": node.lineno,
}
)
return
ti = TransformsInspector()
ti.visit(transforms)
self.issues.extend(
{
"msg": issue,
"line": node.lineno,
}
for issue in set(ti.issues)
)