diff options
| author | Torsten Marek <shlomme@gmail.com> | 2014-04-16 22:36:13 +0200 | 
|---|---|---|
| committer | Torsten Marek <shlomme@gmail.com> | 2014-04-16 22:36:13 +0200 | 
| commit | 625baa2be74cbd20ce46226a36cd6c4ba59e0c55 (patch) | |
| tree | d704eb71a2369129561879f100efee13cfaa7c75 /checkers/variables.py | |
| parent | 6173d6e408fb00e89f37fd3b5a35b183a9ce695f (diff) | |
| download | pylint-git-625baa2be74cbd20ce46226a36cd6c4ba59e0c55.tar.gz | |
Only emit symblic warnings from the variables checker.
Diffstat (limited to 'checkers/variables.py')
| -rw-r--r-- | checkers/variables.py | 61 | 
1 files changed, 32 insertions, 29 deletions
| diff --git a/checkers/variables.py b/checkers/variables.py index 73fdcc066..d74cb564c 100644 --- a/checkers/variables.py +++ b/checkers/variables.py @@ -192,9 +192,9 @@ builtins. Remember that you should avoid to define new builtins when possible.'          for name, stmts in node.locals.iteritems():              if is_builtin(name) and not is_inside_except(stmts[0]):                  # do not print Redefining builtin for additional builtins -                self.add_message('W0622', args=name, node=stmts[0]) +                self.add_message('redefined-builtin', args=name, node=stmts[0]) -    @check_messages('W0611', 'W0614', 'W0622', 'E0603', 'E0604') +    @check_messages('unused-import', 'unused-wildcard-import', 'redefined-builtin', 'undefined-all-variable', 'invalid-all-object')      def leave_module(self, node):          """leave module: check globals          """ @@ -212,7 +212,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'                      if not isinstance(elt_name, astroid.Const) \                               or not isinstance(elt_name.value, basestring): -                        self.add_message('E0604', args=elt.as_string(), node=elt) +                        self.add_message('invalid-all-object', args=elt.as_string(), node=elt)                          continue                      elt_name = elt_name.value                      # If elt is in not_consumed, remove it from not_consumed @@ -249,12 +249,12 @@ builtins. Remember that you should avoid to define new builtins when possible.'                  continue              stmt = stmts[0]              if isinstance(stmt, astroid.Import): -                self.add_message('W0611', args=name, node=stmt) +                self.add_message('unused-import', args=name, node=stmt)              elif isinstance(stmt, astroid.From) and stmt.modname != '__future__':                  if stmt.names[0][0] == '*': -                    self.add_message('W0614', args=name, node=stmt) +                    self.add_message('unused-wildcard-import', args=name, node=stmt)                  else: -                    self.add_message('W0611', args=name, node=stmt) +                    self.add_message('unused-import', args=name, node=stmt)          del self._to_consume      def visit_class(self, node): @@ -316,7 +316,8 @@ builtins. Remember that you should avoid to define new builtins when possible.'          """visit function: update consumption analysis variable and check locals          """          self._to_consume.append((copy(node.locals), {}, 'function')) -        if not set(('W0621', 'W0622')) & self.active_msgs: +        if not (self.linter.is_message_enabled('redefined-outer-name') or +                self.linter.is_message_enabled('redefined-builtin')):              return          globs = node.root().globals          for name, stmt in node.items(): @@ -326,15 +327,16 @@ builtins. Remember that you should avoid to define new builtins when possible.'                  line = globs[name][0].fromlineno                  dummy_rgx = self.config.dummy_variables_rgx                  if not dummy_rgx.match(name): -                    self.add_message('W0621', args=(name, line), node=stmt) +                    self.add_message('redefined-outer-name', args=(name, line), node=stmt)              elif is_builtin(name):                  # do not print Redefining builtin for additional builtins -                self.add_message('W0622', args=name, node=stmt) +                self.add_message('redefined-builtin', args=name, node=stmt)      def leave_function(self, node):          """leave function: check function's locals are consumed"""          not_consumed = self._to_consume.pop()[0] -        if not set(('W0612', 'W0613')) & self.active_msgs: +        if not (self.linter.is_message_enabled('unused-variable') or +                self.linter.is_message_enabled('unused-argument')):              return          # don't check arguments of function which are only raising an exception          if is_error(node): @@ -373,16 +375,17 @@ builtins. Remember that you should avoid to define new builtins when possible.'                  # don't check callback arguments XXX should be configurable                  if node.name.startswith('cb_') or node.name.endswith('_cb'):                      continue -                self.add_message('W0613', args=name, node=stmt) +                self.add_message('unused-argument', args=name, node=stmt)              else: -                self.add_message('W0612', args=name, node=stmt) +                self.add_message('unused-variable', args=name, node=stmt) -    @check_messages('W0601', 'W0602', 'W0603', 'W0604', 'W0622') +    @check_messages('global-variable-undefined', 'global-variable-not-assigned', 'global-statement', +                    'global-at-module-level', 'redefined-builtin')      def visit_global(self, node):          """check names imported exists in the global scope"""          frame = node.frame()          if isinstance(frame, astroid.Module): -            self.add_message('W0604', node=node) +            self.add_message('global-at-module-level', node=node)              return          module = frame.root()          default_message = True @@ -402,23 +405,23 @@ builtins. Remember that you should avoid to define new builtins when possible.'                      break              else:                  # global but no assignment -                self.add_message('W0602', args=name, node=node) +                self.add_message('global-variable-not-assigned', args=name, node=node)                  default_message = False              if not assign_nodes:                  continue              for anode in assign_nodes:                  if anode.parent is None: -                    self.add_message('W0622', args=name, node=node) +                    self.add_message('redefined-builtin', args=name, node=node)                      break                  if anode.frame() is module:                      # module level assignment                      break              else:                  # global undefined at the module scope -                self.add_message('W0601', args=name, node=node) +                self.add_message('global-variable-undefined', args=name, node=node)                  default_message = False          if default_message: -            self.add_message('W0603', node=node) +            self.add_message('global-statement', node=node)      def _loopvar_name(self, node, name):          # filter variables according to node's scope @@ -428,7 +431,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'          #astmts = [stmt for stmt in node.lookup(name)[1]          #          if hasattr(stmt, 'ass_type')] and          #          not stmt.statement().parent_of(node)] -        if 'W0631' not in self.active_msgs: +        if not self.linter.is_message_enabled('undefined-loop-variable'):              return          astmts = [stmt for stmt in node.lookup(name)[1]                    if hasattr(stmt, 'ass_type')] @@ -454,14 +457,14 @@ builtins. Remember that you should avoid to define new builtins when possible.'              ass = astmts[0].ass_type()              if isinstance(ass, (astroid.For, astroid.Comprehension, astroid.GenExpr)) \                     and not ass.statement() is node.statement(): -                self.add_message('W0631', args=name, node=node) +                self.add_message('undefined-loop-variable', args=name, node=node) -    @check_messages('W0623') +    @check_messages('redefine-in-handler')      def visit_excepthandler(self, node):          for name in get_all_elements(node.name):              clobbering, args = clobber_in_except(name)              if clobbering: -                self.add_message('W0623', args=args, node=name) +                self.add_message('redefine-in-handler', args=args, node=name)      def visit_assname(self, node):          if isinstance(node.ass_type(), astroid.AugAssign): @@ -544,10 +547,10 @@ builtins. Remember that you should avoid to define new builtins when possible.'                      and not are_exclusive(stmt, defstmt, ('NameError', 'Exception', 'BaseException'))):                      if defstmt is stmt and isinstance(node, (astroid.DelName,                                                               astroid.AssName)): -                        self.add_message('E0602', args=name, node=node) +                        self.add_message('undefined-variable', args=name, node=node)                      elif self._to_consume[-1][-1] != 'lambda':                          # E0601 may *not* occurs in lambda scope -                        self.add_message('E0601', args=name, node=node) +                        self.add_message('used-before-assignment', args=name, node=node)              if isinstance(node, astroid.AssName): # Aug AssName                  del consumed[name]              else: @@ -560,9 +563,9 @@ builtins. Remember that you should avoid to define new builtins when possible.'              # undefined name !              if not (name in astroid.Module.scope_attrs or is_builtin(name)                      or name in self.config.additional_builtins): -                self.add_message('E0602', args=name, node=node) +                self.add_message('undefined-variable', args=name, node=node) -    @check_messages('E0611') +    @check_messages('no-name-in-module')      def visit_import(self, node):          """check modules attribute accesses"""          for name, _ in node.names: @@ -573,7 +576,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'                  continue              self._check_module_attrs(node, module, parts[1:]) -    @check_messages('E0611') +    @check_messages('no-name-in-module')      def visit_from(self, node):          """check modules attribute accesses"""          name_parts = node.modname.split('.') @@ -658,7 +661,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'                  if module is astroid.YES:                      return None              except astroid.NotFoundError: -                self.add_message('E0611', args=(name, module.name), node=node) +                self.add_message('no-name-in-module', args=(name, module.name), node=node)                  return None              except astroid.InferenceError:                  return None @@ -666,7 +669,7 @@ builtins. Remember that you should avoid to define new builtins when possible.'              # FIXME: other message if name is not the latest part of              # module_names ?              modname = module and module.name or '__dict__' -            self.add_message('E0611', node=node, +            self.add_message('no-name-in-module', node=node,                               args=('.'.join(module_names), modname))              return None          if isinstance(module, astroid.Module): | 
