Я хочу получить имя файла, который находится под линией, поскольку я хочу навязать определенный набор правил только для определенных файлов.Точнее говоря, я хочу сделать собственное расширение для проверки и запретить импорт некоторых файлов, просматривая их импорт.
Я пробовал поиск в 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
Я могу получить имена импортированных модулей, но не могу получить имя файла.