def call_helpers_transforms_from()

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)
        )