Как получить имя файла, помеченного Pylint в пользовательском расширении Pylint - PullRequest
0 голосов
/ 30 января 2019

Я хочу получить имя файла, который находится под линией, поскольку я хочу навязать определенный набор правил только для определенных файлов.Точнее говоря, я хочу сделать собственное расширение для проверки и запретить импорт некоторых файлов, просматривая их импорт.

Я пробовал поиск в Google, но не могу найти ответ.

class RestrictedImportChecker(checkers.BaseChecker):
    """Custom pylint checker which checks restricted imports."""

    __implements__ = interfaces.IAstroidChecker
    name = 'disallowed-layer-import'
    priority = -1
    msgs = {
        'C0009': (
            'Importing \"%s\" from \"%s\" is prohibited.',
            'disallowed-layer-import',
            'Importing domain layer from storage layer is '
            'not allowed.'),
    }

    # @checker_utils.check_messages('disallowed-layer-import')
    def visit_import(self, node):
        """Visits every import statement in the file.

        Args:
         node: astroid.scoped_nodes.Function. Node for a function or method
                definition in the AST.
        """

        try:
            modnode = node.root()
            names = [name for name, _ in node.names]
            print '@@@@@@@@@@'
            print names
            self.add_message(
                'disallowed-layer-import',
                node=node,
                args=('sth', 'sth2'),
            )
        except astroid.AstroidBuildingException:
            return

Я могу получить имена импортированных модулей, но не могу получить имя файла.

...