azdev/operations/linter/pylint_checkers/show_command.py (24 lines of code) (raw):
# -----------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
# -----------------------------------------------------------------------------
import astroid
from pylint.checkers import BaseChecker
class ShowCommandChecker(BaseChecker):
name = 'show-command'
priority = -1
msgs = {
'E5001': (
'Show command must use show_command or custom_show_command.',
'show-command',
'Please use show_command or custom_show_command.'
),
}
def visit_call(self, node):
try:
if not (isinstance(node.args[0], astroid.node_classes.Const) and node.args[0].value == 'show'):
return
if node.func.attrname in ('command', 'custom_command'):
self.add_message(
'show-command', node=node,
)
except IndexError:
return
def register(linter):
linter.register_checker(ShowCommandChecker(linter))