def inspect()

in fluent/migrate/validator.py [0:0]


    def inspect(self):
        migrate_func = None
        global_assigns = {}
        for top_level in ast.iter_child_nodes(self.ast):
            if isinstance(top_level, ast.FunctionDef) and top_level.name == "migrate":
                if migrate_func:
                    raise MigrateNotFoundException("Duplicate definition of migrate")
                migrate_func = top_level
                details = self.inspect_migrate(migrate_func, global_assigns)
            if isinstance(top_level, ast.Assign):
                process_assign(top_level, global_assigns)
            if isinstance(top_level, (ast.Import, ast.ImportFrom)):
                if "module" in top_level._fields:
                    module = top_level.module
                else:
                    module = None
                for alias in top_level.names:
                    asname = alias.asname or alias.name
                    dotted = alias.name
                    if module:
                        dotted = f"{module}.{dotted}"
                    global_assigns[asname] = dotted
        if not migrate_func:
            raise MigrateNotFoundException("migrate function not found")
        return details