1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
|
ChangeLog for PyLint
====================
--
* fix #19498: fix windows batch file
* fix #19339: pylint.el : non existing py-mod-map
(closes Debian Bug report logs - #475939)
* implement #18860, new W0199 message on assert (a, b)
* implement #9776, 'W0150' break or return statement in finally block may
swallow exception.
* fix #9263, __init__ and __new__ are checked for unused arguments
* fix #20991, class scope definitions ignored in a genexpr
* fix #5975, Abstract intermediate class not recognized as such
* fix #5977, yield and return statement have their own counters, no more R0911
(Too many return statements) when a function have many yield stamtements
* implement #5564, function / method arguments with leading "_" are ignored in
arguments / local variables count.
* implement #9982, E0711 specific error message when raising NotImplemented
* remove --cache-size option
2009-12-18 -- 0.19.0
* implement #18947, #5561: checker for function arguments
* include James Lingard string format checker
* include simple message (ids) listing by Vincent Férotin (#9791)
* --errors-only does not hide fatal error anymore
* include james Lingard patches for ++/-- and duplicate key in dicts
* include James Lingard patches for function call arguments checker
* improved flymake code and doc provided by Derek Harland
* refactor and fix the imports checker
* fix #18862: E0601 false positive with lambda functions
* fix #8764: More than one statement on a single line false positive with
try/except/finally
* fix #9215: false undefined variable error in lambda function
* fix for w0108 false positive (Nathaniel)
* fix test/fulltest.sh
* #5821 added a utility function to run pylint in another process (patch provide by Vincent Férotin)
2009-03-25 -- 0.18.0
* tests ok with python 2.4, 2.5, 2.6. 2.3 not tested
* fix #8687, W0613 false positive on inner function
* fix #8350, C0322 false positive on multi-line string
* fix #8332: set E0501 line no to the first line where non ascii character
has been found
* avoid some E0203 / E0602 false negatives by detecting respectively
AttributeError / NameError
* implements #4037: don't issue W0142 (* or ** magic) when they are barely
passed from */** arguments
* complete #5573: more complete list of special methods, also skip W0613
for python internal method
* don't show information messages by default
* integration of Yuen Ho Wong's patches on emacs lisp files
2009-03-19 -- 0.17.0
* semicolon check : move W0601 to W0301
* remove rpython : remove all rpython checker, modules and tests
* astng 0.18 compatibility: support for _ast module modifies interfaces
2009-01-28 -- 0.16.0
* change [en|dis]able-msg-cat options: only accept message categories
identified by their first letter (eg IRCWEF) without the need for comma
as separator
* add epylint.bat script to fix Windows installation
* setuptools/easy_install support
* include a modified version of Maarten ter Huurne patch to avoid W0613
warning on arguments from overridden method
* implement #5575 drop dumb W0704 message) by adding W0704 to ignored
messages by default
* new W0108 message, checking for suspicious lambda (provided by Nathaniel
Manista)
* fix W0631, false positive reported by Paul Hachmann
* fix #6951: false positive with W0104
* fix #6949
* patches by Mads Kiilerich:
* implement #4691, make pylint exits with a non zero return
status if any messages other then Information are issued
* fix #3711, #5626 (name resolution bug w/ decorator and class members)
* fix #6954
2008-10-13 -- 0.15.2
* fix #5672: W0706 weirdness ( W0706 removed )
* fix #5998: documentation points to wrong url for mailing list
* fix #6022: no error message on wrong module names
* fix #6040: pytest doesn't run test/func_test.py
2008-09-15 -- 0.15.1
* fix #4910: default values are missing in manpage
* fix #5991: missing files in 0.15.0 tarball
* fix #5993: epylint should work with python 2.3
2008-09-10 -- 0.15.0
* include pyreverse package and class diagram generation
* included Stefan Rank's patch to deal with 2.4 relative import
* included Robert Kirkpatrick's tutorial and typos fixes
* fix bug in reenabling message
* fix #2473: invoking pylint on __init__.py (hopefully)
* typecheck: acquired-members option has been dropped in favor of the more
generic generated-members option. If the zope option is set, the behaviour
is now to add some default values to generated-members.
* flymake integration: added bin/epylint and elisp/pylint-flymake.el
2008-01-14 -- 0.14.0
* fix #3733: Messages (dis)appear depending on order of file names
* fix #4026: pylint.el should require compile
* fix a bug in colorized reporter, spotted by Dave Borowitz
* applied patch from Stefan Rank to avoid W0410 false positive when
multiple "from __future__" import statements
* implement #4012: flag back tick as deprecated (new W0333 message)
* new ignored-class option on typecheck checker allowing to skip members
checking based on class name (patch provided by Thomas W Barr)
2007-06-07 -- 0.13.2
* fix disable-checker option so that it won't accidentally enable the
rpython checker which is disabled by default
* added note about the gedit plugin into documentation
2007-03-02 -- 0.13.1
* fix some unexplained 0.13.0 packaging issue which led to a bunch of
files missing from the distribution
2007-02-28 -- 0.13.0
* new RPython (Restricted Python) checker for PyPy fellow or people
wanting to get a compiled version of their python program using the
translator of the PyPy project. For more information about PyPy or
RPython, visit http://codespeak.net/pypy/
* new E0104 and E0105 messages introduced to respectively warn about
"return" and "yield" outside function or method
* new E0106 message when "yield" and "return something" are mixed in a
function or method
* new W0107 message for unnecessary pass statement
* new W0614 message to differentiate between unused `import X` and
unused `from X import *` (#3209, patch submitted by Daniel Drake)
* included Daniel Drake's patch to have a different message E1003 instead of
E1001 when a missing member is found but an inference failure has been
detected
* msvs reporter for Visual Studio line number reporting (#3285)
* allow disable-all option inline (#3218, patch submitted by Daniel Drake)
* --init-hook option to call arbitrary code necessary to set
environment (eg sys.path) (#3156)
* One more Daniel's patch fixing a command line option parsing
problem, this'll definitely be the DDrake release :)
* fix #3184: crashes on "return" outside function
* fix #3205: W0704 false positive
* fix #3123: W0212 false positive on static method
* fix #2485: W0222 false positive
* fix #3259: when a message is explicitly enabled, check the checker
emitting it is enabled
2006-11-23 -- 0.12.2
* fix #3143: W0233 bug w/ YES objects
* fix #3119: Off-by-one error counting lines in a file
* fix #3117: ease sys.stdout overriding for reporters
* fix #2508: E0601 false positive with lambda
* fix #3125: E1101 false positive and a message duplication. Only the last part
is actually fixed since the initial false positive is due to dynamic setting of
attributes on the decimal.Context class.
* fix #3149: E0101 false positives and introduced E0100 for generator __init__
methods
* fixed some format checker false positives
2006-09-25 -- 0.12.1
* fixed python >= 2.4 format false positive with multiple lines statement
* fixed some 2.5 issues
* fixed generator expression scope bug (depends on astng 0.16.1)
* stop requiring __revision__
2006-08-10 -- 0.12.0
* usability changes:
- parseable, html and color options are now handled by a single
output-format option
- enable-<checkerid> and disable-all options are now handled by
two (exclusive) enable-checker and disable-checker options
taking a comma separated list of checker names as value
- renamed debug-mode option to errors-only
* started a reference user manual
* new W0212 message for access to protected member from client code
(close #14081)
* new W0105 and W0106 messages extracted from W0104 (statement seems
to have no effect) respectively when the statement is actually string
(that's sometimes used instead of comments for documentation) or an
empty statement generated by a useless semicolon
* reclassified W0302 to C0302
* fix so that global messages are not anymore connected to the last
analyzed module (close #10106)
* fix some bugs related to local disabling of messages
* fix cr/lf pb when generating the rc file on windows platforms
2006-04-19 -- 0.11.0
* fix crash caused by the exceptions checker in some case
* fix some E1101 false positive with abstract method or classes defining
__getattr__
* dirty fix to avoid "_socketobject" has not "connect" member. The actual
problem is that astng isn't able to understand the code used to create
socket.socket object with exec
* added an option in the similarity checker to ignore docstrings, enabled
by default
* included patch from Benjamin Niemann to allow block level
enabling/disabling of messages
2006-03-06 -- 0.10.0
* WARNING, this release include some configuration changes (see below),
so you may have to check and update your own configuration file(s) if
you use one
* this release require the 0.15 version of astng or superior (it will save
you a lot of pylint crashes...)
* W0705 has been reclassified to E0701, and is now detecting more
inheriting problem, and a false positive when empty except clause is
following an Exception catch has been fixed (close #10422)
* E0212 and E0214 (metaclass/class method should have mcs/cls as first
argument have been reclassified to C0202 and C0203 since this not as
well established as "self" for instance method (E0213)
* W0224 has been reclassified into F0220 (failed to resolve interfaces
implemented by a class)
* a new typecheck checker, introducing the following checks:
- E1101, access to unexistent member (implements #10430), remove
the need of E0201 and so some options has been moved from the
classes checker to this one
- E1102, calling a non callable object
- E1111 and W1111 when an assignment is done on a function call but the
inferred function returns None (implements #10431)
* change in the base checker:
- checks module level and instance attribute names (new const-rgx
and attr-rgx configuration option) (implements #10209 and
#10440)
- list comprehension and generator expression variables have their
own regular expression (the inlinevar-rgx option) (implements
#9146)
- the C0101 check with its min-name-length option has
been removed (this can be specified in the regxp after all...)
- W0103 and W0121 are now handled by the variables checker
(W0103 is now W0603 and W0604 has been splitted into different messages)
- W0131 and W0132 messages have been reclassified to C0111 and
C0112 respectively
- new W0104 message on statement without effect
* regexp support for dummy-variables (dummy-variables-rgx option
replace dummy-variables) (implements #10027)
* better global statement handling, see W0602, W0603, W0604 messages
(implements #10344 and #10236)
* --debug-mode option, disabling all checkers without error message
and filtering others to only display error
* fixed some R0201 (method could be a function) false positive
2006-01-10 -- 0.9.0
* a lot of updates to follow astng 0.14 API changes, so install
logilab-astng 0.14 or greater before using this version of pylint
* checker number 10 ! newstyle will search for problems regarding old
style / new style classes usage problems (rely on astng 0.14 new
style detection feature)
* new 'load-plugins' options to load additional pylint plugins (usable
from the command line or from a configuration file) (implements
#10031)
* check if a "pylintrc" file exists in the current working directory
before using the one specified in the PYLINTRC environment variable
or the default ~/.pylintrc or /etc/pylintrc
* fixed W0706 (Identifier used to raise an exception is assigned...)
false positive and reraising a catched exception instance
* fixed E0611 (No name get in module blabla) false positive when accessing
to a class'__dict__
* fixed some E0203 ("access to member before its definition") false
positive
* fixed E0214 ("metaclass method first argument should be mcs) false
positive with staticmethod used on a metaclass
* fixed packaging which was missing the test/regrtest_data directory
* W0212 (method could be a function) has been reclassified in the
REFACTOR category as R0201, and is no more considerer when a method
overrides an abstract method from an ancestor class
* include module name in W0401 (wildcard import), as suggested by
Amaury
* when using the '--parseable', path are written relative to the
current working directory if in a sub-directory of it (#9789)
* 'pylint --version' shows logilab-astng and logilab-common versions
* fixed pylint.el to handle space in file names
* misc lint style fixes
2005-11-07 -- 0.8.1
* fix "deprecated module" false positive when the code imports a
module whose name starts with a deprecated module's name (close
#10061)
* fix "module has no name __dict__" false positive (close #10039)
* fix "access to undefined variable __path__" false positive (close
#10065)
* fix "explicit return in __init__" false positive when return is
actually in an inner function (close #10075)
2005-10-21 -- 0.8.0
* check names imported from a module exists in the module (E0611),
patch contributed by Amaury Forgeot d'Arc
* print a warning (W0212) for methods that could be a function
(implements #9100)
* new --defining-attr-methods option on classes checker
* new --acquired-members option on the classes checker, used when
--zope=yes to avoid false positive on acquired attributes (listed
using this new option) (close #8616)
* generate one E0602 for each use of an undefined variable
(previously, only one for the first use but not for the following)
(implements #1000)
* make profile option saveable
* fix Windows .bat file, patch contributed by Amaury Forgeot d'Arc
* fix one more false positive for E0601 (access before definition)
with for loop such as "for i in range(10): print i" (test
func_noerror_defined_and_used_on_same_line)
* fix false positive for E0201 (undefined member) when accessing to
__name__ on a class object
* fix astng checkers traversal order
* fix bug in format checker when parsing a file from a platform
using different new line characters (close #9239)
* fix encoding detection regexp
* fix --rcfile handling (support for --rcfile=file, close #9590)
2005-05-27 -- 0.7.0
* WARNING: pylint is no longer a logilab subpackage. Users may have to
manually remove the old logilab/pylint directory.
* introduce a new --additional-builtins option to handle user defined
builtins
* --reports option has now -r as short alias, and -i for --include-ids
* fix a bug in the variables checker which may causing some false
positives when variables are defined and used within the same
statement (test func_noerror_defined_and_used_on_same_line)
* this time, real fix of the "disable-msg in the config file" problem,
test added to unittest_lint
* fix bug with --list-messages and python -OO
* fix possible false positive for W0201
2005-04-14 -- 0.6.4
* allow to parse files without extension when a path is given on the
command line (test noext)
* don't fail if we are unable to read an inline option (e.g. inside a
module), just produce an information message (test func_i0010)
* new message E0103 for break or continue outside loop (close #8883,
test func_continue_not_in_loop)
* fix bug in the variables checker, causing non detection of some
actual name error (close #8884, test
func_nameerror_on_string_substitution)
* fix bug in the classes checker which was making pylint crash if
"object" is assigned in a class inheriting from it (test
func_noerror_object_as_class_attribute)
* fix problem with the similar checker when related options are
defined in a configuration file
* new --generate-man option to generate pylint's man page (require the
latest logilab.common (>= 0.9.3)
* packaged (generated...) man page
2005-02-24 -- 0.6.3
* fix scope problem which may cause false positive and true negative
on E0602
* fix problem with some options such as disable-msg causing error when
they are coming from the configuration file
2005-02-16 -- 0.6.2
* fix false positive on E0201 ("access to undefined member") with
metaclasses
* fix false positive on E0203 ("access to member before its
definition") when attributes are defined in a parent class
* fix false positive on W0706 ("identifier used to raise an exception
assigned to...")
* fix interpretation of "\t" as value for the indent-string
configuration variable
* fix --rcfile so that --rcfile=pylintrc (only --rcfile pylintrc was
working in earlier release)
* new raw checker example in the examples/ directory
2005-02-04 -- 0.6.1
* new --rcfile option to specify the configuration file without the
PYLINTRC environment variable
* added an example module for a custom pylint checker (see the
example/ directory)
* some fixes to handle fixes in common 0.9.1 (should however still working
with common 0.9.0, even if upgrade is recommended)
2005-01-20 -- 0.6.0
* refix pylint emacs mode
* no more traceback when just typing "pylint"
* fix a bug which may cause crashes on resolving parent classes
* fix problems with the format checker: don't chock on files
containing multiple CR, avoid C0322, C0323, C0324 false positives
with triple quoted string with quote inside
* correctly detect access to member defined latter in __init__ method
* now depends on common 0.8.1 to fix problem with interface resolution
(close #8606)
* new --list-msgs option describing available checkers and their
messages
* added windows specific documentation to the README file, contributed
by Brian van den Broek
* updated doc/features.txt (actually this file is now generated using
the --list-msgs option), more entries into the FAQ
* improved tests coverage
2004-10-19 -- 0.5.0
* avoid to import analyzed modules !
* new Refactor and Convention message categories. Some Warnings have been
remaped into those new categories
* added "similar", a tool to find copied and pasted lines of code,
both using a specific command line tool and integrated as a
pylint's checker
* imports checker may report import dependencies as a dot graph
* new checker regrouping most Refactor detection (with some new metrics)
* more command line options storable in the configuration file
* fix bug with total / undocumented number of methods
2004-07-08 -- 0.4.2
* fix pylint emacs mode
* fix classes checkers to handler twisted interfaces
2004-05-14 -- 0.4.1
* fix the setup.py script to allow bdist_winst (well, the generated
installer has not been tested...) with the necessary
logilab/__init__.py file
* fix file naming convention as suggested by Andreas Amoroso
* fix stupid crash bug with bad method names
2004-05-10 -- 0.4.0
* fix file path with --parsable
* --parsable option has been renamed to --parseable
* added patch from Andreas Amoroso to output message to files instead
of standard output
* added Run to the list of correct variable names
* fix variable names regexp and checking of local classes names
* some basic handling of metaclasses
* no-docstring-rgx apply now on classes too
* new option to specify a different regexp for methods than for
functions
* do not display the evaluation report when no statements has been
analysed
* fixed crash with a class nested in a method
* fixed format checker to deals with triple quoted string and
lines with code and comment mixed
* use logilab.common.ureports to layout reports
2004-02-17 -- 0.3.3
* added a parsable text output, used when the --parsable option is
provided
* added an emacs mode using this output, available in the distrib's
elisp directory
* fixed some typos in messages
* change include-ids options to yn, and allow it to be in the
configuration file
* do not chock on corrupted stats files
* fixed bug in the format checker which may stop pylint execution
* provide scripts for unix and windows to wrap the minimal pylint tk
gui
2003-12-23 -- 0.3.2
* html-escape messages in the HTML reporter (bug reported by Juergen
Hermann)
* added "TODO" to the list of default note tags
* added "rexec" to the list of default deprecated modules
* fixed typos in some messages
2003-12-05 -- 0.3.1
* bug fix in format and classes checkers
* remove print statement from imports checkers
* provide a simple tk gui, essentially useful for windows users
2003-11-20 -- 0.3.0
* new exceptions checker, checking for string exception and empty
except clauses.
* imports checker checks for reimport of modules
* classes checker checks for calls to ancestor's __init__ and abstract
method not overridden. It doesn't complain anymore for unused import in
__init__ files, and provides a new option ignore-interface-methods,
useful when you're using zope Interface implementation in your project
* base checker checks for black listed builtins call (controled by the
bad-functions option) and for use of * and **
* format checker checks for use of <> and "l" as long int marker
* major internal API changes
* use the rewrite of astng, based on compiler.ast
* added unique id for messages, as suggested by Wolfgang Grafen
* added unique id for reports
* can take multiple modules or files as argument
* new options command line options : --disable-msg, --enable-msg,
--help-msg, --include-ids, --reports, --disable-report, --cache-size
* --version shows the version of the python interpreter
* removed some options which are now replaced by [en|dis]able-msg, or
disable-report
* read disable-msg and enable-msg options in source files (should be
in comments on the top of the file, in the form
"# pylint: disable-msg=W0402"
* new message for modules importing themselves instead of the "cyclic
import" message
* fix bug with relative and cyclic imports
* fix bug in imports checker (cycle was not always detected)
* still fixes in format checker : don't check comment and docstring,
check first line after an indent
* black and white list now apply to all identifiers, not only
variables, so changed the configuration option from
(good|bad)-variable-names to (good|bad)-names
* added string, rexec and Bastion to the default list of deprecated
modules
* do not print redefinition warning for function/class/method defined
in mutually exclusive branches
2003-10-10 -- 0.2.1
* added some documentation, fixed some typos
* set environment variable PYLINT_IMPORT to 1 during pylint execution.
* check that variables "imported" using the global statement exist
* indentation problems are now warning instead of errors
* fix checkers.initialize to try to load all files with a known python
extension (patch from wrobell)
* fix a bunch of messages
* fix sample configuration file
* fix the bad-construction option
* fix encoding checker
* fix format checker
2003-09-12 -- 0.2.0
* new source encoding / FIXME checker (pep 263)
* new --zope option which trigger Zope import. Useful to check Zope
products code.
* new --comment option which enable the evaluation note comment
(disabled by default).
* a ton of bug fixes
* easy functional test infrastructure
2003-06-18 -- 0.1.2
* bug fix release
* remove dependency to pyreverse
2003-06-01 -- 0.1.1
* much more functionalities !
2003-05-19 -- 0.1
* initial release
|