Professional Documents
Culture Documents
Pricing
Findarepository
English
Signup
Login
02eabaeyesterday
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
Fullcommit
Blame
Diff
Source
pylint/ChangeLog
History
default
Source
Embed
Raw Edit
ChangeLogforPylint
====================
201501161.4.1
*Lookonlyinthecurrentfunction'sscopeforbadsupercall.
Closesissue#403.
*Checkthereturnofpropertieswhencheckingfornotcallable.
Closesissue#406.
*Warnaboutusingtheinput()orround()builtinsforPython3.
Closesissue#411.
*Properabstractmethodlookupwhilecheckingfor
abstractclassinstantiated.Closesissue#401.
*Useamrotraversalforfindingabstractmethods.Closesissue#415.
*Fixafalsepositivewithcatchingnonexceptionandtuplesof
exceptions.
*Fixafalsenegativewithraisingnonexception,whentheraiseused
anuninferrableexceptioncontext.
*FixafalsepositiveonPython2forraisingbadtype,when
raisingtuplesintheform'raise(ZeroDivisionError,None)'.
*Fixafalsepositivewithinvalidslotsobjects,wheretheslotentry
wasanunicodestringonPython2.Closesissue#421.
*Addanewwarning,'redundantunittestassert',emittedwhenusing
unittest'smethodsassertTrueandassertFalsewithconstantvalue
asargument.PatchbyVladTemian.
*AddanewJSONreporter,usablethroughfflag.
*Addthemethodnamesforthe'signaturediffers'and'argumentdiffers'
warnings.Closesissue#433.
*Don'tcompiletestfileswheninstalling.
*Fixacrashwhichoccurredwhenusingmultiplejobsandthefiles
givenasargumentdidn'texistatall.
201411231.4.0
*AddednewoptionsforcontrollingtheloadingofCextensions.
Bydefault,onlyCextensionsfromthestdlibwillbeloaded
intotheactivePythoninterpreterforinspection,becausethey
canrunarbitrarycodeonimport.Theoption
`extensionpkgwhitelist`canbeusedtospecifymodules
orpackagesthataresafetoload.
*Changedefaultmaxlinelengthto100ratherthan80
*DropBaseRawCheckerclasswhichwereonlythereforbackward
compatforawhilenow
*Don'ttrytoanalyzestringformattingwithobjectscomingfrom
functionarguments.Closesissue#373.
*PortsourcecodetobePython2/3compatible.Thisdropsthe
needfor2to3,butdoesdropsupportforPython2.5.
*Eachmessagenowcomeswithaconfidencelevelattached,and
canbefilteredbaseonthislevel.Thisallowstofilterout
allmessagesthatwereemittedeventhoughaninferencefailure
happenedduringchecking.
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
1/22
17/1/2015
logilab
pylint
ACTIONS
Clone
Compare
Fork
NAVIGATION
Overview
Source
Commits
Branches
Pullrequests
Issues
Downloads
7
151
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
*Improvedpresentingunusedimportmessage.Closesissue#293.
*Addnewcheckerforfindingspellingerrors.Newmessages:
wrongspellingincomment,wrongspellingindocstring.
Newoptions:spellingdict,spellingignorewords.
*Addnew'j'optionforrunningchecksinsubprocesses.
*Addednewchecksforlineendingsiftheyaremixed(LFvsCRLF)
oriftheyarenotasexpected.Newmessages:mixedlineendings,
unexpectedlineendingformat.Newoption:expectedlineendingformat.
*'dangerousdefaultvalue'nolongerevaluatesthevalueofthearguments,
whichcouldresultinlongerrormessagesorsensitivedatabeingleaked.
Closesissue#282
*Fixafalsepositivewithstringformattingchecker,when
encounteringastringwhichusesonlypositionbasedarguments.
Closesissue#285.
*Fixafalsepositivewithstringformattingchecker,whenusing
keywordargumentpacking.Closesissue#288.
*Properhandleclasslevelscopeforlambdas.
*Handle'toofewformatargs'or'toomanyformatargs'forformat
stringswithbothnamedandpositionalfields.Closesissue#286.
*Analyzeonlystringsbythestringformatchecker.Closesissue#287.
*Properlyhandlenestedformatstringfields.Closesissue#294.
*Don'temit'attributedefinedoutsideinit'iftheattribute
wassetbyafunctioncallinadefiningmethod.Closesissue#192.
*ProperlyhandleunicodeformatstringsforPython2.
Closesissue#296.
*Don'temit'importerror'ifanimportwasprotectedbyatryexcept,
whichexceptedImportError.
*Fixan'unusedimport'falsepositive,whentheerrorwasemitted
forallthemembersimportedwith'fromimport'form.
Closesissue#304.
*Don'temit'invalidname'whenassigninganameinan
ImportErrorhandler.Closesissue#302.
*Don'tcountbranchesfromnestedfunctions.
*Fixafalsepositivewith'toofewformatargs',whentheformat
stringscontainsduplicatemanualpositionarguments.
Closesissue#310.
*fixmeregexhandlescommentswithoutspacesafterthehash.
Closesissue#311.
*Don'temit'unusedimport'whenaspecialobjectisimported
(__all__,__doc__etc.).Closesissue#309.
*Lookinthemetaclass,ifdefined,formembersnotfoundinthecurrent
class.Closesissue#306.
*Don'temit'protectedaccess'iftheattributeisaccessedusing
apropertydefinedattheclasslevel.
*Detectcallsoftheparent's__init__,throughabindedsuper()call.
*Checkthataclasshasanexplicitlydefinedmetaclassbefore
emitting'oldstyleclass'forPython2.
*Emit'catchingnonexception'fornonclassnodes.Closesissue#303.
*Orderofreportingisconsistent.
*Addanewwarning,'booleandatetime',emittedwhenaninstance
of'datetime.time'isusedinabooleancontext.Closesissue#239.
*Fixacrashwhichocurredwhilecheckingfor'methodhidden',
whentheparentframewassomethingdifferentthanafunction.
*Generatehtmloutputformissingfiles.Closesissue#320.
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
2/22
17/1/2015
*Fixafalsepositivewith'toomanyformatargs',whentheformat
stringcontainsmixedattributeaccessargumentsandmanual
fields.Closesissue#322.
*Extendthecaseswhere'undefinedvariable'and'usedbeforeassignment'
canbedetected.Closesissue#291.
*Addsupportforcustomisingcallbackidentifiers,byaddinganew
'callbacks'commandlineoption.Closesissue#326.
*Addanewwarning,'loggingformatinterpolation',emittedwhen.format()
stringinterpolationisusedwithinloggingfunctioncalls.
*Don'temit'unbalancedtupleunpacking'whentherhsoftheassignment
isavariablelengthargument.Closesissue#329.
*Addanewwarning,'inheritnonclass',emittedwhenaclassinherits
fromsomethingwhichisnotaclass.Closesissue#331.
*Fixanotherfalsepositiveswith'undefinedvariable',wherethevariable
canbefoundasaclassassignmentandusedinafunctionannotation.
Closesissue#342.
*Handleassignmentofthestringformatmethodtoavariable.
Closesissue#351.
*SupportwheelpackagingformatforPyPi.Closesissue#334.
*CheckthatvariousbuiltinsthatdonotexistinPython3arenot
used:apply,basestring,buffer,cmp,coerce,execfile,file,long
raw_input,reduce,StandardError,unicode,reloadandxrange.
*WarnformagicmethodswhicharenotusedinanywayinPython3:
__coerce__,__delslice__,__getslice__,__setslice__,__cmp__,
__oct__,__nonzero__and__hex__.
*Don'temit'assigningnonslot'whentheassignmentisforaproperty.
Closesissue#359.
*Fixforregression:'{path}'wasnolongeracceptedin'msgtemplate'.
*Reportthepercentageofallmessages,notjustforerrorsandwarnings.
Closesissue#319.
*'toomanypublicmethods'isreportedonlyformethodsdefinedinaclass,
notinitsancestors.Closesissue#248.
*'toomanylines'disablepragmacanbelocatedonanyline,notonlythe
first.Closesissue#321.
*WarninPython2whenanimportstatementisfoundwithouta
corresponding`from__future__importabsolute_import`.
*WarninPython2whenanonfloordivisionoperationisfoundwithout
acorresponding`from__future__importdivision`.
*Addanewoption,'excludeprotected',forexcludingmembers
fromtheprotectedaccesswarning.Closesissue#48.
*WarninPython2whenusingdict.iter*(),dict.view*()noneofthese
methodsareavailableinPython3.
*WarninPython2whencallinganobject'snext()methodPython3uses
__next__()instead.
*Warnwhenassigningto__metaclass__ataclassscopeinPython3a
metaclassisspecifiedasanargumenttothe'class'statement.
*Warnwhenperformingparametertupleunpackingitisnotsupportedin
Python3.
*'abstractclassinstantiated'isalsoemittedforPython2.
Itwaspreviouslydisabled.
*Add'longsuffix'error,emittedwhenencounteringthelongsuffix
onnumbers.
*Addsupportfordisablingachecker,byspecifyingan'enabled'
attributeonthecheckerclass.
*AddanewCLIoption,py3k,forenablingPython3portingmode.This
modewilldisableallothercheckersandwillemitwarningsand
errorsforconstructswhichareinvalidorremovedinPython3.
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
3/22
17/1/2015
*Add'oldoctalliteral'toPython3portingchecker,emittedwhen
encounteringoctalswiththeoldsyntax.
*Add'implicitmapevaluation'toPython3portingchecker,emitted
whenencounteringtheuseofmapbuiltin,withoutexplicitevaluation.
201407261.3.0
*Allowhangingcontinuedindentationforimplicitlyconcatenated
strings.Closesissue#232.
*PylintworksunderPython2.5again,anditstestsuitepasses.
*Fixsomefalsepositivesforthecellvarfromloopwarnings.
Closesissue#233.
*Returnnewastroidclassnodeswhentheinferencercandetectthat
thatresultofafunctioninvocationonatype(like`type`or
`abc.ABCMeta`)isrequested.Closes#205.
*Emit'undefinedvariable'forundefinednameswhenusingthe
Python3`metaclass=`argument.
*Checkersrespectprioritynow.Closeissue#229.
*FixafalsepositiveregardingW0511.Closesissue#149.
*FixunusedimportfalsepositivewithPython3metaclasses(#143).
*Don'twarnwith'badformatcharacter'whenencountering
the'a'formatonPython3.
*AddmultiplechecksforPEP3101advancedstringformatting:
'badformatstring','missingformatargumentkey',
'unusedformatstringargument','formatcombinedspecification',
'missingformatattribute'and'invalidformatindex'.
*Issuebroadexceptandbareexceptevenifthenumber
ofexcepthandlersisdifferentthan1.Fixesissue#113.
*Issueattributedefinedoutsideinitforallcases,notjust
forthelastassignment.Closesissue#262.
*Emit'notcallable'whencallingproperties.Closesissue#268.
*Fixafalsepositivewithunbalancediterableunpacking,
whenencounteringstarrednodes.Closesissue#273.
*Addnewchecks,'invalidsliceindex'and'invalidsequenceindex'
forinvalidsequenceandsliceindices.
*Add'assigningnonslot'warning,whichdetectsassignmentsto
attributesnotdefinedinslots.
*Don'temit'nonameinmodule'forignoredmodules.
Closesissue#223.
*Fixan'unusedvariable'falsepositive,wherethevariableis
assignedthroughanimport.Closesissue#196.
*Definitionorderisconsideredforclasses,functionarguments
andannotations.Closesissue#257.
*Don'temit'unusedvariable'whenassigningtoanonlocal.
Closesissue#275.
*DonotletImportErrorpropagatefromtheimportchecker,leadingtocrash
insomenamespacepackagerelatedcases.Closesissue#203.
*Don'temit'pointlessstringstatement'forattributedocstrings.
Closesissue#193.
*Usethepropermodeforpicklewhenopeningandwritingthestatsfile.
Closesissue#148.
*Don'temithiddenmethodmessagewhentheattributehasbeen
monkeypatched,you'reonyourownwhenyoudothat.
*Onlyemitattributedefinedoutsideinitfordefinitionwithinthesame
moduleastheoffendedclass,avoidingtomangletheoutputinsomecases.
*Don'temit'unnecessarylambda'ifthebodyofthelambdacallcontains
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
4/22
17/1/2015
callchaining.Closesissue#243.
*Don'temit'missingdocstring'whentheactualdocstringuses`.format`.
Closesissue#281.
201404301.2.1
*Restoretheabilitytospecifytheinithookoptionviathe
configurationfile,whichwasaccidentallybrokenin1.2.0.
*Addanewwarning[badcontinuation]forbadlyindentendcontinued
lines.
*Emit[assignmentfromnone]whenthefunctioncontainsbarereturns.
FixesBitBucketissue#191.
*Addedanewwarningforclosingovervariablesthatare
definedinloops.FixesBitbucketissue#176.
*Donotwarnabout\uescapesinstringliteralswhenUnicodeliterals
areusedforPython2.*.FixesBitBucketissue#151.
*Extendthecheckingforunbalancedtupleunpackingand
unpackingnonsequencetoinstanceattributeunpackingaswell.
*Fixexplicitcheckingofpythonscript(1.2regression,#219)
*Restoreinithook,renamedaccidentallyintoinithooksin1.2.0
(#211)
*Add'indexingexception'warning,whichdetectsthatindexing
anexceptionoccursinPython2(behaviourremovedinPython3).
201404181.2.0
*Passthecurrentpythonpathstopylintprocesswheninvokedvia
epylint.FixesBitBucketissue#133.
*Addi/includeidsands/symbolsbackascompletelyignored
options.FixesBitBucketissue#180.
*Extendthenumberofcasesinwhichloggingcallsaredetected.Fixes
bitbucketissue#182.
*Improvepragmahandlingtonotdetectpylint:*stringsinnoncomments.
FixesBitBucketissue#79.
*DonotcrashwithUnknownMessageifanunknownmessageID/nameappears
indisableorenableintheconfiguration.PatchbyColeRobinson.
Fixesbitbucketissue#170.
*Addnewwarning'evalused',checkingthatthebuiltinfunction`eval`
wasused.
*Makeitpossibletoshowanaminghintforinvalidnamebysetting
includenaminghint.Alsomakethenaminghintsconfigurable.Fixes
BitBucketissue#138.
*Addedsupportforenforcingmultiple,butconsistentnamestylesfor
differentnametypesinsideasinglemodulebasedonapatchwritten
bymorbo@google.com.
*Alsowarnaboutemptydocstringsonoverriddenmethodscontributed
bysebastianu@google.com.
*Alsoinspectargumentstoconstructorcalls,andemitrelevant
warningscontributedbysebastianu@google.com.
*Addedanewconfigurationoptionloggingmodulestomakethelist
ofmodulenamesthatcanbecheckedfor'loggingnotlazy'et.al.
configurablecontributedbymorbo@google.com.
*ensureinithooksisevaluatedbeforeotheroptions,notablyloadplugins
(#166)
*Python2.5supportrestored:fixedsmallissuespreventingpylinttorun
onpython2.5.Bitbucketissues#50and#62.
*bitbucket#128:pylintdoesn'tcrashwhenlooking
forusedbeforeassignmentincontextmanager
assignments.
*Addnewwarning,'badreversedsequence',forcheckingthatthe
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
5/22
17/1/2015
reversed()builtinreceiveasequence(implements__getitem__and__len__,
withoutbeingadictoradictsubclass)oraninstancewhichimplements
__reversed__.
*Mark`file`asabadfunctionwhenusingpython2(closes#8).
*Addnewwarning'badexceptioncontext',checking
that`raise...from...`usesaproperexceptioncontext
(Noneoranexception).
*Enhancethecheckfor'usedbeforeassignment'tolook
for'nonlocal'uses.
*Emit'undefinedallvariable'ifapackage's__all__
variablecontainsamissingsubmodule(closes#126).
*Addanewwarning'abstractclassinstantiated'forchecking
thatabstractclassescreatedwith`abc`moduleand
withabstractmethodsareinstantied.
*Donotwarnabout'returnargingenerator'inPython3.3+.
*Donotwarnabout'abstractmethod'whentheabstractmethod
isimplementedthroughassignment(#155).
*Improvecyclicimportdetectioninthecaseofpackages,patchbyBuck
Golemon
*Addnewwarningsforcheckingproperclass__slots__:
'invalidslotsobject'and'invalidslots'.
*Searchforrcfilein`~/.config/pylintrc`if`~/.pylintrc`
doesn'texists(#121)
*Don'tregisterthenewstylecheckerw/python>=3
*Fixunusedimportfalsepositivew/augmentassignment(#78)
*Fixaccessmemberbeforedefinitionfalsenegativewrtaugassign(#164)
*Donotattempttoanalyzenonpythonfile,eg.sofile(#122)
201312221.1.0
*Addnewcheckforuseofdeprecatedpragmadirectives"pylint:disablemsg"
or"pylint:enablemsg"(I0022,deprecatedpragma)whichwaspreviously
emmitedasaregularwarn().
*Avoidfalseusedbeforeassignmentforexcepthandlerdefined
identifierusedonthesameline(#111).
*Combine'nospaceafteroperator','nospaceaftercomma'and
'nospacebeforeoperator'intoanewwarning'badwhitespace'.
*Addanewwarning'superfluousparens'forunnecessary
parenthesesaftercertainkeywords.
*Fixapotentialcrashintheredefineinhandlerwarning
iftheredefinednameisanestedgetattrnode.
*Addanewoptionforthemultistatementwarningto
allowsinglelineifstatements.
*Add'badcontextmanager'error,checkingthat'__exit__'
specialmethodacceptstherightnumberofarguments.
*Runpylintasapythonmodule'pythonmpylint'(anatolytechtonik).
*Checkfornonexceptionclassesinsideanexceptclause.
*epylintsupportoptionstogivetopylintafterthefiletoanalyzeand
havebasicinputvalidation(bitbucket#53and#54),patchesprovidedby
felipeochoaandBrianLane.
*Addedanewwarning,'noniteratorreturned',fornoniterators
returnedby'__iter__'.
*Addnewchecksforunpackingnonsequencesinassignments
(unpackingnonsequence)aswellasunbalancedtupleunpacking
(unbalancedtupleunpacking).
*uselesselseonloopnotemitedifthereisabreakinthe
elseclauseofinnerloop(#117).
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
6/22
17/1/2015
*don'tmark`input`asabadfunctionwhenusingpython3(#110).
*badlyimplementedcontainercausedseveralproblemsinits
currentimplementation.Deactivateituntilwehavesomething
better.See#112forinstance.
*Useattributeregexpforpropertiesinpython3,asinpython2
*CreatethePYLINTHOMEdirectorywhenneeded,itmightfailandleadto
spuriouswarningsonimportofpylint.config.
*Fixsetup.pysothatpylintproperlyinstallonWindowswhenusingpython3
*Variousdocumentationfixesandenhancements
*Fixissue#55(falsepositivetrailingwhitespaceonWindows)
201308061.0.0
*Addcheckfortheuseof'exec'function
*Newmsgtemplateoptiontocontroloutput,deprecating"msvc"and
"parseable"outputformatsaswellaskilling`includeids`and`symbols`
options
*Donotemit[fixme]foreverylineiftheconfigvalue'notes'
isempty,but[fixme]isenabled.
*Emitwarningsaboutlinesexceedingthecolumnlimitwhen
thoselinesareinsidemultilinedocstrings.
*Donotdoublecheckparameternameswiththeregexforparametersand
inlinevariables.
*Addedanewwarningmissingfinalnewline(C0304)forfilesmissing
thefinalnewline.
*Methodsthataredecoratedaspropertiesarenowtreatedasattributes
forthepurposesofnamechecking.
*Namesofderivedinstanceclassmemberarenotcheckedanymore.
*Namesinglobalstatementsarenowcheckedagainsttheregular
expressionforconstants.
*Fortoplevelnameassignment,theclassnameregexwillbeusedif
pylintcandetectthatvalueontherighthandsideisaclass
(likecollections.namedtuple()).
*Simplifiedinvalidnamemessage
*Addedanewwarninginvalidencodeddata(W0512)forfilesthat
containdatathatcannotbedecodedwiththespecifiedor
defaultencoding.
*Newwarningbadopenmode(W1501)forcallstoopen(orfile)that
specifyinvalidopenmodes(OriginalimplementationbySashaIssayev).
*Newwarningoldstyleclass(C1001)forclassesthatdonothaveany
baseclass.
*Addnewnametype'class_attribute'forattributesdefined
inclassscope.Bydefault,allowbothconstandvariablenames.
*Newwarningtrailingwhitespace(C0303)thatwarnsabout
trailingwhitespace.
*Addedanewwarningunpackinginexcept(W0712)aboutunpacking
exceptionsinhandlers,whichisunsupportedinPython3.
*Addaconfigurationoptionformissingdocstringto
optionallyexemptshortfunctions/methods/classesfrom
thecheck.
*Addthetypeoftheoffendingnodetomissingdocstring
andemptydocstring.
*Newutilityclassesforpercheckerunittestsintestutils.py
*Donotwarnaboutredefinitionsofvariablesthatmatchthe
dummyregex.
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
7/22
17/1/2015
*Donottreatallvariablesstartingwith_asdummyvariables,
only_itself.
*Makethelinetoolongwarningconfigurablebyaddingaregexforlines
forwiththelengthlimitshouldnotbeenforced
*Donotwarnaboutalonglineifapylintdisable
optionbringsitabovethelengthlimit
*Donotflagnamesinnestedwithstatementsasundefined.
*Addedanewwarning'oldraisesyntax'forthedeprecatedsyntax
raiseException,args
*SupportforPEP3102andnewmissingkwoa(E1125)messageformissing
mandatorykeywordargument(logilab.org's#107788)
*Fixspellingofmaxbranchsoption,nowmaxbranches
*Addedanewbaseclassandinterfaceforcheckersthatworkonthe
tokensratherthanthesyntax,andonlytokenizetheinputfile
once.
*Followastngrenamingtoastroid
*bitbucket#37:checkforunbalancedunpackinginassignments
*bitbucket#25:fixincompleteprotocolfalsepositiveforreadonly
containersliketuple
*bitbucket#16:fixFalsepositiveE1003onPython3forargumentlesssuper()
*bitbucket#6:putbackdocumentationinsourcedistribution
*bitbucket#15:epylintshouldn'thanganymorewhenthereisalarge
outputonpylint'stderr
*bitbucket#7:fixepylintw/python3
*bitbucket#3:removestringmodulefromthedefaultlistofdeprecated
modules
201304250.28.0
*bitbucket#1:fix"dictionarychangedsizeduringiteration"crash
*#74013:newE1310[badstrstripcall]messagewarningwhenacalltoa
{l,r,}stripmethodcontainsduplicatecharacters(patchbyTorstenMarek)
*#123233:newE0108[duplicateargumentname]messagereportingduplicate
argumentnames
*#81378:emitW0120[uselesselseonloop]forloopswithoutbreak
*#124660:internaldependenciesshouldnotappearinexternaldependencies
report
*#124662:fixnameerrorcausingcrashwhensymbolsareincludedinoutput
messages
*#123285:applypragmasforwarningsattachedtolinestophysicalsource
codelines
*#123259:donotemitE0105foryieldexpressionsinsidelambdas
*#123892:don'tcrashwhenattemptingtoshowsourcecodelinethatcan't
beencodedwiththecurrentlocalesettings
*Simplifychecksfordangerousdefaultvaluesbyunifyingtestsforall
differentmutablecompoundliterals.
*ImprovethedescriptionforE1124[redundantkeywordarg]
201302260.27.0
*#20693:replacepylint.elbyIanEureversion(patchbyJ.Kotta)
*#105327:addsupportfordisable=alloptionanddeprecatethe
'disableall'inlinedirectiveinfavourof'skipfile'(patchby
A.Fayolle)
*#110840:addmessagesI0020andI0021forreportingofsuppressed
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
8/22
17/1/2015
messagesanduselesssuppressionpragmas.(patchbyTorstenMarek)
*#112728:addwarningE0604fornonstringobjectsin__all__
(patchbyTorstenMarek)
*#120657:addwarningW0110/deprecatedlambdawhenamap/filter
ofalambdacouldbeacomprehension(patchbyMartinPool)
*#113231:loggingcheckernowlooksatinstancesofLoggerclasses
inadditiontothebaseloggingmodule.(patchbyMikeBryant)
*#111799:don'twarnaboutoctalescapesequence,butwarnabout\o
whichisnotoctalinPython(patchbyMartinPool)
*#110839:bind<F5>toRunbuttoninpylintgui
*#115580:fixerroneousW0212(accesstoprotectedmember)onsupercall
(patchbyMartinPool)
*#110853:fixacrashwhenan__init__methodinabaseclasshasbeen
createdbyassignmentratherthandirectfunctiondefinition(patchby
TorstenMarek)
*#110838:fixpylintguicrashwhenincludeidsisactivated(patchby
OmegaWeapon)
*#112667:fixemissionofreimportwarningsformixedimportsandextend
thetestcase(patchbyTorstenMarek)
*#112698:fixcrashrelatedtononinferable__all__attributesand
invalid__all__contents(patchbyTorstenMarek)
*Python3relatedfixes:
*#110213:fiximportofcheckersbrokenwithpython3.3,causing
"NosuchmessageidW0704"breakage
*#120635:redefinecmpfunctionusedinpylint.reporters
*IncludefullwarningidforI0020andI0021andmakesuretoflush
warningsaftereachmodule,notattheendofthepylintrun.
(patchbyTorstenMarek)
*Changedtheregularexpressionforinlineoptionssothatitmustbe
preceededbya#(patchbyTorstenMarek)
*Makedotoutputforimportgraphpredictableandnotdepend
onorderingofstringsinhashes.(patchbyTorstenMarek)
*Addhooksforimportpathsetupandmovepylint'ssys.path
modificationsintothem.(patchbyTorstenMarek)
201210050.26.0
*#106534:addignoreimportsoptiontocodesimilaritychecking
and'symilar'commandlinetool(patchbyRy4anBrase)
*#104571:checkforanomalousbackslashescape,introducingnew
W1401andW1402messages(patchbyMartinPool)
*#100707:checkforboolopbeingusedasexceptionclass,introducing
newW0711message(patchbyTimHatch)
*#4014:improvecheckingofmetaclassmethodsfirstargs,introducing
newC0204message(patchbylothiraldan@gmail.comfinalizedbysthenault)
*#4685:checkforconsistencyofamodule's__all__variable,
introducingnewE0603message
*#105337:allowcustomreporterinoutputformat(patchbyKevinJingQiu)
*#104420:checkforprotocolcompletnessandavoidfalseR0903
(patchbyPeterHammond)
*#100654:fixgrammaticalerrorforW0332message(using'l'as
longintidentifier)
*#103656:fixW0231falsepositiveformissingcalltoobject.__init__
(patchbylothiraldan@gmail.com)
*#63424:fixsimilarityreportdisablingbyproperlyrenamingittoRP0801
*#103949:createaconsole_scriptsentrypointtobeusedby
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
9/22
17/1/2015
easy_install,buildoutandpip
*fixcrossinterpreterissue(noncompatibleaccessto__builtins__)
*stopincludingtestsfilesindistribution,theycausescrashwhen
installedwithpython3(#72022,#82417,#76910)
201207170.25.2
*#93591:Correctlyemitwarningsaboutclobberedvariablenameswhenan
excepthandlercontainsatupleofnamesinsteadofasinglename.
(patchbytmarek@google.com)
*#7394:W0212(accesstoprotectedmember)notemitedonassigments
(patchbylothiraldan@gmail.com)
*#18772noprototypeconsistencycheckformangledmethods(patchby
lothiraldan@gmail.com)
*#92911:emitW0102whensetsareusedasdefaultargumentsinfunctions
(patchbytmarek@google.com)
*#77982:donotemitE0602forloopvariablesofcomprehensions
usedasargumentvaluesinsideadecorator(patchbytmarek@google.com)
*#89092:don'temitE0202(attributehidingamethod)on@propertymethods
*#92584:fixpylintguicrashduetointernalAPIchange
*#87192:fixcrashwhendecoratorsareaccessedthroughmorethanonedot
(forinstance@a.bisfine,@a.b.ccrash)
*#88914:fixparsingofgeneratedmembersoptions,leadingtocrash
whenusingaregexpvalueset
*fixpotentialcrasheswithutils.safe_inferraisingInferenceError
201112080.25.1
*#81078:Warnifnamesinexceptionhandlersclobberoverwrite
existingnames(patchbytmarek@google.com)
*#81113:FixW0702messagesappearingwiththewronglinenumber.
(patchbytmarek@google.com)
*#50461,#52020,#51222:Donotissuewarningswhenusing2.6's
property.setter/deleterfunctionality(patchbydneil@google.com)
*#9188,#4024:DonottriggerW0631ifaloopvariableisassigned
intheelsebranchofaforloop.
201110070.25.0
*#74742:makeallowednameforfirstargumentofclassmethodconfigurable
(patchbyGoogle)
*#74087:handlecasewhereinferenceofamodulereturnYESthisavoid
somecasesof"TypeError:'_Yes'objectdoesnotsupportindexing"(patch
byGoogle)
*#74745:make"toogeneral"exceptionnamesconfigurable(patchbyGoogle)
*#74747:crashoccurswhenlookupupaspecialattributeinclassscope
(patchbygoogle)
*#76920:crashifoneg"pylintrcfile"(patchbyTorstenMarek)
*#77237:warningforE0202maybeverymisleading
*#73941:HTMLreportmessagestableisbadlyrendered
201107180.24.0
*#69738:addregularexpressionssupportfor"generatedmembers"
*idsofloggingandstring_formatcheckershavebeenchanged:
logging:65>12,string_format:99>13
Alsoadddocumentationtosaythatidsofrange150shallbereserved
topylintinternalcheckers
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
10/22
17/1/2015
*#69993:Additionalstringformatchecksforloggingmodule:
checkformissingarguments,toomanyarguments,orinvalidstring
formatsintheloggingcheckermodule.ContributedbyDanielArena
*#69220:addcolumnoffsettothereports.Ifyou'veacustomreporter,
thischangemaybreakithasnowlocationgainanewitemgivingthe
columnoffset.
*#60828:Fixfalsepositiveinreimportcheck
*#70495:absoluteimportsfaildependingonmodulepath(patchbyJacekKonieczny)
*#22273:Fixignoreoptiondocumentationtomatchreality
201101110.23.0
*documentationupdate,addmanpages
*severalperformanceimprovements
*finalizepython3support
*newW0106warning'Expression"%s"isassignedtonothing'
*dropE0501andE0502messagesaboutwrongsourceencoding:notanymore
interestingsinceit'sasyntaxerrorforpython>=2.5andwenowonly
supportthispythonversionandabove.
*don'temitW0221orW0222whenmethodsasvariablearguments(eg*arg
and/or**args).PatchsubmittedbyCharlesDuffy.
201011150.22.0
*pythonversions:minimalpython3.xsupportdroppython<2.5support
201010270.21.4
*fix#48066:pylintcrasheswhenredirectingoutputcontainingnonasciicharacters
*fix#19799:"pylintblah"exitwithstatus2
*updatedocumentation
201009280.21.3
*restoredpython2.3compatibility.Alongwithlogilabastng
0.21.3andlogilabcommon0.52,thiswillmuchprobablybethe
latestreleasesupportingpython<2.5.
201008260.21.2
*fix#36193:importcheckerraiseexceptiononcyclicimport
*fix#28796:regressioningeneratedmembersintroducedpylint0.20
*somedocumentationcleanups
201006040.21.1
*fix#28962:pylintcrashwithnewoptions,duetomissingstatsdatawhile
writingtheStatisticsbytypesreport
*updatedmanpageto0.21orgreatercommandlineusage(fixdebian#582494)
201005110.21.0
*commandlineupdated(closes#9774,#9787,#9992,#22962):
*allenable*/disable*optionshavebeenmergedintoenable/disable
*BACKWARDINCOMPATIBLECHANGE:shortnameoferrorsonlybecomesE,ebeing
affectedtoenable
*pylinthelpoutputmuchsimplified,withlonghelpavailabletogetthe
completeone
*revisitedgui,thankstostudentsfromTorontouniversity(theyaregreat
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
11/22
17/1/2015
contributorstothisrelease!)
*fix#21591:htmlreporterproducesnooutputifreportsissetto'no'
*fix#4581:notMissingdocstring(C0111)warningifamethodisoverridden
*fix#4683:NonASCIIcharacterscountdoubleifutf8encode
*fix#9018:whenusingdefiningattrmethod,methodordermatters
*fix#4595:Commanotfollowedbyaspaceshouldnotoccursontrailingcomma
inlist/tuple/dictdefinition
*fix#22585:[Patch]fixmanwarningsforpyreverse.1manpage
*fix#20067:AttributeError:'NoneType'objecthasnoattribute'name'withwith
201003010.20.0
*fix#19498:fixwindowsbatchfile
*fix#19339:pylint.el:nonexistingpymodmap
(closesDebianBugreportlogs#475939)
*implement#18860,newW0199messageonassert(a,b)
*implement#9776,'W0150'breakorreturnstatementinfinallyblockmay
swallowexception.
*fix#9263,__init__and__new__arecheckedforunusedarguments
*fix#20991,classscopedefinitionsignoredinagenexpr
*fix#5975,Abstractintermediateclassnotrecognizedassuch
*fix#5977,yieldandreturnstatementhavetheirowncounters,nomoreR0911
(Toomanyreturnstatements)whenafunctionhavemanyyieldstamtements
*implement#5564,function/methodargumentswithleading"_"areignoredin
arguments/localvariablescount.
*implement#9982,E0711specificerrormessagewhenraisingNotImplemented
*removecachesizeoption
200912180.19.0
*implement#18947,#5561:checkerforfunctionarguments
*includeJamesLingardstringformatchecker
*includesimplemessage(ids)listingbyVincentFrotin(#9791)
*errorsonlydoesnothidefatalerroranymore
*includejamesLingardpatchesfor++/andduplicatekeyindicts
*includeJamesLingardpatchesforfunctioncallargumentschecker
*improvedflymakecodeanddocprovidedbyDerekHarland
*refactorandfixtheimportschecker
*fix#18862:E0601falsepositivewithlambdafunctions
*fix#8764:Morethanonestatementonasinglelinefalsepositivewith
try/except/finally
*fix#9215:falseundefinedvariableerrorinlambdafunction
*fixforw0108falsepositive(Nathaniel)
*fixtest/fulltest.sh
*#5821addedautilityfunctiontorunpylintinanotherprocess(patchprovidebyVincentFro
200903250.18.0
*testsokwithpython2.4,2.5,2.6.2.3nottested
*fix#8687,W0613falsepositiveoninnerfunction
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
12/22
17/1/2015
*fix#8350,C0322falsepositiveonmultilinestring
*fix#8332:setE0501linenotothefirstlinewherenonasciicharacter
hasbeenfound
*avoidsomeE0203/E0602falsenegativesbydetectingrespectively
AttributeError/NameError
*implements#4037:don'tissueW0142(*or**magic)whentheyarebarely
passedfrom*/**arguments
*complete#5573:morecompletelistofspecialmethods,alsoskipW0613
forpythoninternalmethod
*don'tshowinformationmessagesbydefault
*integrationofYuenHoWong'spatchesonemacslispfiles
200903190.17.0
*semicoloncheck:moveW0601toW0301
*removerpython:removeallrpythonchecker,modulesandtests
*astng0.18compatibility:supportfor_astmodulemodifiesinterfaces
200901280.16.0
*change[en|dis]ablemsgcatoptions:onlyacceptmessagecategories
identifiedbytheirfirstletter(egIRCWEF)withouttheneedforcomma
asseparator
*addepylint.batscripttofixWindowsinstallation
*setuptools/easy_installsupport
*includeamodifiedversionofMaartenterHuurnepatchtoavoidW0613
warningonargumentsfromoverriddenmethod
*implement#5575dropdumbW0704message)byaddingW0704toignored
messagesbydefault
*newW0108message,checkingforsuspiciouslambda(providedbyNathaniel
Manista)
*fixW0631,falsepositivereportedbyPaulHachmann
*fix#6951:falsepositivewithW0104
*fix#6949
*patchesbyMadsKiilerich:
*implement#4691,makepylintexitswithanonzeroreturn
statusifanymessagesotherthenInformationareissued
*fix#3711,#5626(nameresolutionbugw/decoratorandclassmembers)
*fix#6954
200810130.15.2
*fix#5672:W0706weirdness(W0706removed)
*fix#5998:documentationpointstowrongurlformailinglist
*fix#6022:noerrormessageonwrongmodulenames
*fix#6040:pytestdoesn'truntest/func_test.py
200809150.15.1
*fix#4910:defaultvaluesaremissinginmanpage
*fix#5991:missingfilesin0.15.0tarball
*fix#5993:epylintshouldworkwithpython2.3
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
13/22
17/1/2015
200809100.15.0
*includepyreversepackageandclassdiagramgeneration
*includedStefanRank'spatchtodealwith2.4relativeimport
*includedRobertKirkpatrick'stutorialandtyposfixes
*fixbuginreenablingmessage
*fix#2473:invokingpylinton__init__.py(hopefully)
*typecheck:acquiredmembersoptionhasbeendroppedinfavorofthemore
genericgeneratedmembersoption.Ifthezopeoptionisset,thebehaviour
isnowtoaddsomedefaultvaluestogeneratedmembers.
*flymakeintegration:addedbin/epylintandelisp/pylintflymake.el
200801140.14.0
*fix#3733:Messages(dis)appeardependingonorderoffilenames
*fix#4026:pylint.elshouldrequirecompile
*fixabugincolorizedreporter,spottedbyDaveBorowitz
*appliedpatchfromStefanRanktoavoidW0410falsepositivewhen
multiple"from__future__"importstatements
*implement#4012:flagbacktickasdeprecated(newW0333message)
*newignoredclassoptionontypecheckcheckerallowingtoskipmembers
checkingbasedonclassname(patchprovidedbyThomasWBarr)
200706070.13.2
*fixdisablecheckeroptionsothatitwon'taccidentallyenablethe
rpythoncheckerwhichisdisabledbydefault
*addednoteaboutthegeditpluginintodocumentation
200703020.13.1
*fixsomeunexplained0.13.0packagingissuewhichledtoabunchof
filesmissingfromthedistribution
200702280.13.0
*newRPython(RestrictedPython)checkerforPyPyfelloworpeople
wantingtogetacompiledversionoftheirpythonprogramusingthe
translatorofthePyPyproject.FormoreinformationaboutPyPyor
RPython,visithttp://codespeak.net/pypy/
*newE0104andE0105messagesintroducedtorespectivelywarnabout
"return"and"yield"outsidefunctionormethod
*newE0106messagewhen"yield"and"returnsomething"aremixedina
functionormethod
*newW0107messageforunnecessarypassstatement
*newW0614messagetodifferentiatebetweenunused`importX`and
unused`fromXimport*`(#3209,patchsubmittedbyDanielDrake)
*includedDanielDrake'spatchtohaveadifferentmessageE1003insteadof
E1001whenamissingmemberisfoundbutaninferencefailurehasbeen
detected
*msvsreporterforVisualStudiolinenumberreporting(#3285)
*allowdisablealloptioninline(#3218,patchsubmittedbyDanielDrake)
*inithookoptiontocallarbitrarycodenecessarytoset
environment(egsys.path)(#3156)
*OnemoreDaniel'spatchfixingacommandlineoptionparsing
problem,this'lldefinitelybetheDDrakerelease:)
*fix#3184:crasheson"return"outsidefunction
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
14/22
17/1/2015
*fix#3205:W0704falsepositive
*fix#3123:W0212falsepositiveonstaticmethod
*fix#2485:W0222falsepositive
*fix#3259:whenamessageisexplicitlyenabled,checkthechecker
emittingitisenabled
200611230.12.2
*fix#3143:W0233bugw/YESobjects
*fix#3119:Offbyoneerrorcountinglinesinafile
*fix#3117:easesys.stdoutoverridingforreporters
*fix#2508:E0601falsepositivewithlambda
*fix#3125:E1101falsepositiveandamessageduplication.Onlythelastpart
isactuallyfixedsincetheinitialfalsepositiveisduetodynamicsettingof
attributesonthedecimal.Contextclass.
*fix#3149:E0101falsepositivesandintroducedE0100forgenerator__init__
methods
*fixedsomeformatcheckerfalsepositives
200609250.12.1
*fixedpython>=2.4formatfalsepositivewithmultiplelinesstatement
*fixedsome2.5issues
*fixedgeneratorexpressionscopebug(dependsonastng0.16.1)
*stoprequiring__revision__
200608100.12.0
*usabilitychanges:
parseable,htmlandcoloroptionsarenowhandledbyasingle
outputformatoption
enable<checkerid>anddisablealloptionsarenowhandledby
two(exclusive)enablecheckeranddisablecheckeroptions
takingacommaseparatedlistofcheckernamesasvalue
renameddebugmodeoptiontoerrorsonly
*startedareferenceusermanual
*newW0212messageforaccesstoprotectedmemberfromclientcode
(close#14081)
*newW0105andW0106messagesextractedfromW0104(statementseems
tohavenoeffect)respectivelywhenthestatementisactuallystring
(that'ssometimesusedinsteadofcommentsfordocumentation)oran
emptystatementgeneratedbyauselesssemicolon
*reclassifiedW0302toC0302
*fixsothatglobalmessagesarenotanymoreconnectedtothelast
analyzedmodule(close#10106)
*fixsomebugsrelatedtolocaldisablingofmessages
*fixcr/lfpbwhengeneratingthercfileonwindowsplatforms
200604190.11.0
*fixcrashcausedbytheexceptionscheckerinsomecase
*fixsomeE1101falsepositivewithabstractmethodorclassesdefining
__getattr__
*dirtyfixtoavoid"_socketobject"hasnot"connect"member.Theactual
problemisthatastngisn'tabletounderstandthecodeusedtocreate
socket.socketobjectwithexec
*addedanoptioninthesimilaritycheckertoignoredocstrings,enabled
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
15/22
17/1/2015
bydefault
*includedpatchfromBenjaminNiemanntoallowblocklevel
enabling/disablingofmessages
200603060.10.0
*WARNING,thisreleaseincludesomeconfigurationchanges(seebelow),
soyoumayhavetocheckandupdateyourownconfigurationfile(s)if
youuseone
*thisreleaserequirethe0.15versionofastngorsuperior(itwillsave
youalotofpylintcrashes...)
*W0705hasbeenreclassifiedtoE0701,andisnowdetectingmore
inheritingproblem,andafalsepositivewhenemptyexceptclauseis
followinganExceptioncatchhasbeenfixed(close#10422)
*E0212andE0214(metaclass/classmethodshouldhavemcs/clsasfirst
argumenthavebeenreclassifiedtoC0202andC0203sincethisnotas
wellestablishedas"self"forinstancemethod(E0213)
*W0224hasbeenreclassifiedintoF0220(failedtoresolveinterfaces
implementedbyaclass)
*anewtypecheckchecker,introducingthefollowingchecks:
E1101,accesstounexistentmember(implements#10430),remove
theneedofE0201andsosomeoptionshasbeenmovedfromthe
classescheckertothisone
E1102,callinganoncallableobject
E1111andW1111whenanassignmentisdoneonafunctioncallbutthe
inferredfunctionreturnsNone(implements#10431)
*changeinthebasechecker:
checksmodulelevelandinstanceattributenames(newconstrgx
andattrrgxconfigurationoption)(implements#10209and
#10440)
listcomprehensionandgeneratorexpressionvariableshavetheir
ownregularexpression(theinlinevarrgxoption)(implements
#9146)
theC0101checkwithitsminnamelengthoptionhas
beenremoved(thiscanbespecifiedintheregxpafterall...)
W0103andW0121arenowhandledbythevariableschecker
(W0103isnowW0603andW0604hasbeensplittedintodifferentmessages)
W0131andW0132messageshavebeenreclassifiedtoC0111and
C0112respectively
newW0104messageonstatementwithouteffect
*regexpsupportfordummyvariables(dummyvariablesrgxoption
replacedummyvariables)(implements#10027)
*betterglobalstatementhandling,seeW0602,W0603,W0604messages
(implements#10344and#10236)
*debugmodeoption,disablingallcheckerswithouterrormessage
andfilteringotherstoonlydisplayerror
*fixedsomeR0201(methodcouldbeafunction)falsepositive
200601100.9.0
*alotofupdatestofollowastng0.14APIchanges,soinstall
logilabastng0.14orgreaterbeforeusingthisversionofpylint
*checkernumber10!newstylewillsearchforproblemsregardingold
style/newstyleclassesusageproblems(relyonastng0.14new
styledetectionfeature)
*new'loadplugins'optionstoloadadditionalpylintplugins(usable
fromthecommandlineorfromaconfigurationfile)(implements
#10031)
*checkifa"pylintrc"fileexistsinthecurrentworkingdirectory
beforeusingtheonespecifiedinthePYLINTRCenvironmentvariable
orthedefault~/.pylintrcor/etc/pylintrc
*fixedW0706(Identifierusedtoraiseanexceptionisassigned...)
falsepositiveandreraisingacatchedexceptioninstance
*fixedE0611(Nonamegetinmoduleblabla)falsepositivewhenaccessing
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
16/22
17/1/2015
toaclass'__dict__
*fixedsomeE0203("accesstomemberbeforeitsdefinition")false
positive
*fixedE0214("metaclassmethodfirstargumentshouldbemcs)false
positivewithstaticmethodusedonametaclass
*fixedpackagingwhichwasmissingthetest/regrtest_datadirectory
*W0212(methodcouldbeafunction)hasbeenreclassifiedinthe
REFACTORcategoryasR0201,andisnomoreconsidererwhenamethod
overridesanabstractmethodfromanancestorclass
*includemodulenameinW0401(wildcardimport),assuggestedby
Amaury
*whenusingthe'parseable',patharewrittenrelativetothe
currentworkingdirectoryifinasubdirectoryofit(#9789)
*'pylintversion'showslogilabastngandlogilabcommonversions
*fixedpylint.eltohandlespaceinfilenames
*misclintstylefixes
200511070.8.1
*fix"deprecatedmodule"falsepositivewhenthecodeimportsa
modulewhosenamestartswithadeprecatedmodule'sname(close
#10061)
*fix"modulehasnoname__dict__"falsepositive(close#10039)
*fix"accesstoundefinedvariable__path__"falsepositive(close
#10065)
*fix"explicitreturnin__init__"falsepositivewhenreturnis
actuallyinaninnerfunction(close#10075)
200510210.8.0
*checknamesimportedfromamoduleexistsinthemodule(E0611),
patchcontributedbyAmauryForgeotd'Arc
*printawarning(W0212)formethodsthatcouldbeafunction
(implements#9100)
*newdefiningattrmethodsoptiononclasseschecker
*newacquiredmembersoptionontheclasseschecker,usedwhen
zope=yestoavoidfalsepositiveonacquiredattributes(listed
usingthisnewoption)(close#8616)
*generateoneE0602foreachuseofanundefinedvariable
(previously,onlyoneforthefirstusebutnotforthefollowing)
(implements#1000)
*makeprofileoptionsaveable
*fixWindows.batfile,patchcontributedbyAmauryForgeotd'Arc
*fixonemorefalsepositiveforE0601(accessbeforedefinition)
withforloopsuchas"foriinrange(10):printi"(test
func_noerror_defined_and_used_on_same_line)
*fixfalsepositiveforE0201(undefinedmember)whenaccessingto
__name__onaclassobject
*fixastngcheckerstraversalorder
*fixbuginformatcheckerwhenparsingafilefromaplatform
usingdifferentnewlinecharacters(close#9239)
*fixencodingdetectionregexp
*fixrcfilehandling(supportforrcfile=file,close#9590)
200505270.7.0
*WARNING:pylintisnolongeralogilabsubpackage.Usersmayhaveto
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
17/22
17/1/2015
manuallyremovetheoldlogilab/pylintdirectory.
*introduceanewadditionalbuiltinsoptiontohandleuserdefined
builtins
*reportsoptionhasnowrasshortalias,andiforincludeids
*fixabuginthevariablescheckerwhichmaycausingsomefalse
positiveswhenvariablesaredefinedandusedwithinthesame
statement(testfunc_noerror_defined_and_used_on_same_line)
*thistime,realfixofthe"disablemsgintheconfigfile"problem,
testaddedtounittest_lint
*fixbugwithlistmessagesandpythonOO
*fixpossiblefalsepositiveforW0201
200504140.6.4
*allowtoparsefileswithoutextensionwhenapathisgivenonthe
commandline(testnoext)
*don'tfailifweareunabletoreadaninlineoption(e.g.insidea
module),justproduceaninformationmessage(testfunc_i0010)
*newmessageE0103forbreakorcontinueoutsideloop(close#8883,
testfunc_continue_not_in_loop)
*fixbuginthevariableschecker,causingnondetectionofsome
actualnameerror(close#8884,test
func_nameerror_on_string_substitution)
*fixbugintheclassescheckerwhichwasmakingpylintcrashif
"object"isassignedinaclassinheritingfromit(test
func_noerror_object_as_class_attribute)
*fixproblemwiththesimilarcheckerwhenrelatedoptionsare
definedinaconfigurationfile
*newgeneratemanoptiontogeneratepylint'smanpage(requirethe
latestlogilab.common(>=0.9.3)
*packaged(generated...)manpage
200502240.6.3
*fixscopeproblemwhichmaycausefalsepositiveandtruenegative
onE0602
*fixproblemwithsomeoptionssuchasdisablemsgcausingerrorwhen
theyarecomingfromtheconfigurationfile
200502160.6.2
*fixfalsepositiveonE0201("accesstoundefinedmember")with
metaclasses
*fixfalsepositiveonE0203("accesstomemberbeforeits
definition")whenattributesaredefinedinaparentclass
*fixfalsepositiveonW0706("identifierusedtoraiseanexception
assignedto...")
*fixinterpretationof"\t"asvaluefortheindentstring
configurationvariable
*fixrcfilesothatrcfile=pylintrc(onlyrcfilepylintrcwas
workinginearlierrelease)
*newrawcheckerexampleintheexamples/directory
200502040.6.1
*newrcfileoptiontospecifytheconfigurationfilewithoutthe
PYLINTRCenvironmentvariable
*addedanexamplemoduleforacustompylintchecker(seethe
example/directory)
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
18/22
17/1/2015
*somefixestohandlefixesincommon0.9.1(shouldhoweverstillworking
withcommon0.9.0,evenifupgradeisrecommended)
200501200.6.0
*refixpylintemacsmode
*nomoretracebackwhenjusttyping"pylint"
*fixabugwhichmaycausecrashesonresolvingparentclasses
*fixproblemswiththeformatchecker:don'tchockonfiles
containingmultipleCR,avoidC0322,C0323,C0324falsepositives
withtriplequotedstringwithquoteinside
*correctlydetectaccesstomemberdefinedlatterin__init__method
*nowdependsoncommon0.8.1tofixproblemwithinterfaceresolution
(close#8606)
*newlistmsgsoptiondescribingavailablecheckersandtheir
messages
*addedwindowsspecificdocumentationtotheREADMEfile,contributed
byBrianvandenBroek
*updateddoc/features.txt(actuallythisfileisnowgeneratedusing
thelistmsgsoption),moreentriesintotheFAQ
*improvedtestscoverage
200410190.5.0
*avoidtoimportanalyzedmodules!
*newRefactorandConventionmessagecategories.SomeWarningshavebeen
remapedintothosenewcategories
*added"similar",atooltofindcopiedandpastedlinesofcode,
bothusingaspecificcommandlinetoolandintegratedasa
pylint'schecker
*importscheckermayreportimportdependenciesasadotgraph
*newcheckerregroupingmostRefactordetection(withsomenewmetrics)
*morecommandlineoptionsstorableintheconfigurationfile
*fixbugwithtotal/undocumentednumberofmethods
200407080.4.2
*fixpylintemacsmode
*fixclassescheckerstohandlertwistedinterfaces
200405140.4.1
*fixthesetup.pyscripttoallowbdist_winst(well,thegenerated
installerhasnotbeentested...)withthenecessary
logilab/__init__.pyfile
*fixfilenamingconventionassuggestedbyAndreasAmoroso
*fixstupidcrashbugwithbadmethodnames
200405100.4.0
*fixfilepathwithparsable
*parsableoptionhasbeenrenamedtoparseable
*addedpatchfromAndreasAmorosotooutputmessagetofilesinstead
ofstandardoutput
*addedRuntothelistofcorrectvariablenames
*fixvariablenamesregexpandcheckingoflocalclassesnames
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
19/22
17/1/2015
*somebasichandlingofmetaclasses
*nodocstringrgxapplynowonclassestoo
*newoptiontospecifyadifferentregexpformethodsthanfor
functions
*donotdisplaytheevaluationreportwhennostatementshasbeen
analysed
*fixedcrashwithaclassnestedinamethod
*fixedformatcheckertodealswithtriplequotedstringand
lineswithcodeandcommentmixed
*uselogilab.common.ureportstolayoutreports
200402170.3.3
*addedaparsabletextoutput,usedwhentheparsableoptionis
provided
*addedanemacsmodeusingthisoutput,availableinthedistrib's
elispdirectory
*fixedsometyposinmessages
*changeincludeidsoptionstoyn,andallowittobeinthe
configurationfile
*donotchockoncorruptedstatsfiles
*fixedbugintheformatcheckerwhichmaystoppylintexecution
*providescriptsforunixandwindowstowraptheminimalpylinttk
gui
200312230.3.2
*htmlescapemessagesintheHTMLreporter(bugreportedbyJuergen
Hermann)
*added"TODO"tothelistofdefaultnotetags
*added"rexec"tothelistofdefaultdeprecatedmodules
*fixedtyposinsomemessages
200312050.3.1
*bugfixinformatandclassescheckers
*removeprintstatementfromimportscheckers
*provideasimpletkgui,essentiallyusefulforwindowsusers
200311200.3.0
*newexceptionschecker,checkingforstringexceptionandempty
exceptclauses.
*importscheckerchecksforreimportofmodules
*classescheckerchecksforcallstoancestor's__init__andabstract
methodnotoverridden.Itdoesn'tcomplainanymoreforunusedimportin
__init__files,andprovidesanewoptionignoreinterfacemethods,
usefulwhenyou'reusingzopeInterfaceimplementationinyourproject
*basecheckerchecksforblacklistedbuiltinscall(controledbythe
badfunctionsoption)andforuseof*and**
*formatcheckerchecksforuseof<>and"l"aslongintmarker
*majorinternalAPIchanges
*usetherewriteofastng,basedoncompiler.ast
*addeduniqueidformessages,assuggestedbyWolfgangGrafen
*addeduniqueidforreports
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
20/22
17/1/2015
*cantakemultiplemodulesorfilesasargument
*newoptionscommandlineoptions:disablemsg,enablemsg,
helpmsg,includeids,reports,disablereport,cachesize
*versionshowstheversionofthepythoninterpreter
*removedsomeoptionswhicharenowreplacedby[en|dis]ablemsg,or
disablereport
*readdisablemsgandenablemsgoptionsinsourcefiles(shouldbe
incommentsonthetopofthefile,intheform
"#pylint:disablemsg=W0402"
*newmessageformodulesimportingthemselvesinsteadofthe"cyclic
import"message
*fixbugwithrelativeandcyclicimports
*fixbuginimportschecker(cyclewasnotalwaysdetected)
*stillfixesinformatchecker:don'tcheckcommentanddocstring,
checkfirstlineafteranindent
*blackandwhitelistnowapplytoallidentifiers,notonly
variables,sochangedtheconfigurationoptionfrom
(good|bad)variablenamesto(good|bad)names
*addedstring,rexecandBastiontothedefaultlistofdeprecated
modules
*donotprintredefinitionwarningforfunction/class/methoddefined
inmutuallyexclusivebranches
200310100.2.1
*addedsomedocumentation,fixedsometypos
*setenvironmentvariablePYLINT_IMPORTto1duringpylintexecution.
*checkthatvariables"imported"usingtheglobalstatementexist
*indentationproblemsarenowwarninginsteadoferrors
*fixcheckers.initializetotrytoloadallfileswithaknownpython
extension(patchfromwrobell)
*fixabunchofmessages
*fixsampleconfigurationfile
*fixthebadconstructionoption
*fixencodingchecker
*fixformatchecker
200309120.2.0
*newsourceencoding/FIXMEchecker(pep263)
*newzopeoptionwhichtriggerZopeimport.UsefultocheckZope
productscode.
*newcommentoptionwhichenabletheevaluationnotecomment
(disabledbydefault).
*atonofbugfixes
*easyfunctionaltestinfrastructure
200306180.1.2
*bugfixrelease
*removedependencytopyreverse
200306010.1.1
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
21/22
17/1/2015
*muchmorefunctionalities!
200305190.1
*initialrelease
https://bitbucket.org/logilab/pylint/src/02eabae6b72569876e7104db7724ad26a7de0af3/ChangeLog?at=default#cl-4
22/22