More unit tests
[codimension.git] / thirdparty / pyflakes / messages.py
blobb2dfe7ddc6de2d05e56433f58374333ef54e0e25
1 """
2 Provide the class Message and its subclasses.
3 """
6 class Message(object):
7 message = ''
8 message_args = ()
10 def __init__(self, filename, loc):
11 self.filename = filename
12 if type( loc ) == int:
13 self.lineno = loc
14 else:
15 self.lineno = loc.lineno
16 self.col = getattr(loc, 'col_offset', 0)
18 def __str__(self):
19 return '%s:%s: %s' % (self.filename, self.lineno,
20 self.message % self.message_args)
23 class UnusedImport(Message):
24 message = '%r imported but unused'
26 def __init__(self, filename, loc, name):
27 Message.__init__(self, filename, loc)
28 self.message_args = (name,)
31 class RedefinedWhileUnused(Message):
32 message = 'redefinition of unused %r from line %r'
34 def __init__(self, filename, loc, name, orig_loc):
35 Message.__init__(self, filename, loc)
36 if type( orig_loc ) == int:
37 self.message_args = (name, orig_loc)
38 else:
39 self.message_args = (name, orig_loc.lineno)
42 class RedefinedInListComp(Message):
43 message = 'list comprehension redefines %r from line %r'
45 def __init__(self, filename, loc, name, orig_loc):
46 Message.__init__(self, filename, loc)
47 if type( orig_loc ) == int:
48 self.message_args = (name, orig_loc)
49 else:
50 self.message_args = (name, orig_loc.lineno)
53 class ImportShadowedByLoopVar(Message):
54 message = 'import %r from line %r shadowed by loop variable'
56 def __init__(self, filename, loc, name, orig_loc):
57 Message.__init__(self, filename, loc)
58 if type( orig_loc ) == int:
59 self.message_args = (name, orig_loc)
60 else:
61 self.message_args = (name, orig_loc.lineno)
64 class ImportStarUsed(Message):
65 message = "'from %s import *' used; unable to detect undefined names"
67 def __init__(self, filename, loc, modname):
68 Message.__init__(self, filename, loc)
69 self.message_args = (modname,)
72 class UndefinedName(Message):
73 message = 'undefined name %r'
75 def __init__(self, filename, loc, name):
76 Message.__init__(self, filename, loc)
77 self.message_args = (name,)
80 class DoctestSyntaxError(Message):
81 message = 'syntax error in doctest'
83 def __init__(self, filename, loc, position=None):
84 Message.__init__(self, filename, loc)
85 if position:
86 (self.lineno, self.col) = position
87 if type( self.lineno ) != int:
88 self.lineno = self.lineno.lineno
89 self.message_args = ()
92 class UndefinedExport(Message):
93 message = 'undefined name %r in __all__'
95 def __init__(self, filename, loc, name):
96 Message.__init__(self, filename, loc)
97 self.message_args = (name,)
100 class UndefinedLocal(Message):
101 message = ('local variable %r (defined in enclosing scope on line %r) '
102 'referenced before assignment')
104 def __init__(self, filename, loc, name, orig_loc):
105 Message.__init__(self, filename, loc)
106 if type( orig_loc ) == int:
107 self.message_args = (name, orig_loc)
108 else:
109 self.message_args = (name, orig_loc.lineno)
112 class DuplicateArgument(Message):
113 message = 'duplicate argument %r in function definition'
115 def __init__(self, filename, loc, name):
116 Message.__init__(self, filename, loc)
117 self.message_args = (name,)
120 class Redefined(Message):
121 message = 'redefinition of %r from line %r'
123 def __init__(self, filename, loc, name, orig_loc):
124 Message.__init__(self, filename, loc)
125 if type( orig_loc ) == int:
126 self.message_args = (name, orig_loc)
127 else:
128 self.message_args = (name, orig_loc.lineno)
131 class LateFutureImport(Message):
132 message = 'future import(s) %r after other statements'
134 def __init__(self, filename, loc, names):
135 Message.__init__(self, filename, loc)
136 self.message_args = (names,)
139 class UnusedVariable(Message):
141 Indicates that a variable has been explicity assigned to but not actually
142 used.
144 message = 'local variable %r is assigned to but never used'
146 def __init__(self, filename, loc, names):
147 Message.__init__(self, filename, loc)
148 self.message_args = (names,)