mirror of
https://fuchsia.googlesource.com/third_party/github.com/pylint-dev/pylint
synced 2024-09-21 07:58:04 +00:00
b1ee3854ab
A docstring of the following form should pass (see https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_numpy.html, search for ':obj:list of :obj:str') def my_func(self): """This is a docstring. Returns ------- :obj:`list` of :obj:`str` List of strings """ return ["hi", "bye"] #@
4201 lines
137 KiB
Plaintext
4201 lines
137 KiB
Plaintext
------------------
|
|
Pylint's ChangeLog
|
|
------------------
|
|
|
|
What's New in Pylint 2.4.0?
|
|
===========================
|
|
|
|
Release date: TBA
|
|
|
|
* Allow of in `GoogleDocstring.re_multiple_type`
|
|
|
|
* Added `subprocess-run-check` to handle subrocess.run without explicitly set `check` keyword.
|
|
|
|
Close #2848
|
|
|
|
* When we can't infer bare except handlers, skip ``try-except-raise``
|
|
|
|
Close #2853
|
|
|
|
* Handle more `unnecessary-lambda` cases when dealing with additional kwargs in wrapped calls
|
|
|
|
Close #2845
|
|
|
|
* Better postponed evaluation of annotations handling
|
|
|
|
Close #2847
|
|
|
|
* Support postponed evaluation of annotations for variable annotations.
|
|
|
|
Close #2838
|
|
|
|
* ``epylint.py_run`` defaults to ``python`` in case the current executable is not a Python one.
|
|
|
|
Close #2837
|
|
|
|
* Ignore raw docstrings when running Similarities checker with `ignore-docstrings=yes` option
|
|
|
|
* Fix crash when calling ``inherit_from_std_ex`` on a class which is its own ancestor
|
|
|
|
Close #2680
|
|
|
|
* Added a new check that warns the user if a function call is used inside a test but parentheses are missing.
|
|
|
|
Close #2658
|
|
|
|
* ``len-as-condition`` now only fires when a ``len(x)`` call is made without an explicit comparison
|
|
|
|
The message and description accompanying this checker has been changed
|
|
reflect this new behavior, by explicitly asking to either rely on the
|
|
fact that empty sequence are false or to compare the length with a scalar.
|
|
|
|
Close #2684
|
|
|
|
* Add ``preferred-module`` checker that notify if an import has a replacement module that should be used.
|
|
|
|
This check is emitted when ``pylint`` finds an imported module that has a
|
|
preferred replacement listed in ``preferred-modules``.
|
|
|
|
* ``assigning-non-slot`` not emitted for classes with unknown base classes.
|
|
|
|
Close #2807
|
|
|
|
* ``old-division`` is not emitted for non-Const nodes.
|
|
|
|
Close #2808
|
|
|
|
* Added method arguments to the dot writer for pyreverse.
|
|
|
|
Close #2139
|
|
|
|
* Support for linting file from stdin.
|
|
|
|
IDEs may benefit from the support for linting from an in-memory file.
|
|
|
|
Close #1187
|
|
|
|
* Added a new check `class-variable-slots-conflict`
|
|
|
|
This check is emitted when ``pylint`` finds a class variable that conflicts with a slot
|
|
name, which would raise a ``ValueError`` at runtime.
|
|
|
|
* Added new check: dict-iter-missing-items (E1141)
|
|
|
|
Close #2761
|
|
|
|
* Fix issue with pylint name in output of python -m pylint --version
|
|
|
|
Close #2764
|
|
|
|
* Relicense logo material under the CC BY-SA 4.0 license.
|
|
|
|
* Skip `if` expressions from f-strings for the `check_elif` checker
|
|
|
|
Close #2816
|
|
|
|
* C0412 (ungrouped-import) is now compatible with isort.
|
|
|
|
Close #2806
|
|
|
|
|
|
What's New in Pylint 2.3.0?
|
|
===========================
|
|
|
|
Release date: 2019-02-27
|
|
|
|
* Protect against `NonDeducibleTypeHierarchy` when calling semi-private `is_subtype`
|
|
|
|
`astroid.helpers.is_subtype` raises `NonDeducibleTypeHierarchy` when it cannot infer
|
|
the base classes of the given types, but that makes sense in its context given that
|
|
the method is mostly used to inform the inference process about the hierarchy of classes.
|
|
Doesn't make that much sense for ``pylint`` itself, which is why we're handling the
|
|
exception here, rather than in ``astroid``
|
|
|
|
Close PyCQA/astroid#644
|
|
|
|
* Added a new command line option ``list-groups`` for listing all the check groups ``pylint`` knows about.
|
|
|
|
* Allow ``BaseException`` for emitting ``broad-except``, just like ``Exception``.
|
|
|
|
Close #2741
|
|
|
|
* Fixed a crash that occurred for ``bad-str-strip-call`` when ``strip()`` received ``None``
|
|
|
|
Close #2743
|
|
|
|
* Don't emit ``*-not-iterating`` checks for builtins consumed by ``itertools``
|
|
|
|
Close #2731
|
|
|
|
* Fix a crash caused by iterating over ``Uninferable`` in a string formatting check.
|
|
|
|
Close #2727
|
|
|
|
* Fixed false positives for ``no-self-argument`` and ``unsubscriptable-object`` when using ``__class_getitem__`` (new in Python 3.7)
|
|
|
|
Close #2416
|
|
|
|
* Support ``Ellipsis`` as a synonym for ``pass`` statements.
|
|
|
|
Close #2718
|
|
|
|
* ``fixme`` gets triggered only on comments.
|
|
|
|
Close #2321
|
|
|
|
* Fixed a false positive for ``unused-variable`` and ``nonlocal`` assignments
|
|
|
|
Close #2671
|
|
|
|
* Added ``load_configuration()`` hook for plugins
|
|
|
|
New optional hook for plugins is added: ``load_configuration()``.
|
|
This hook is executed after configuration is loaded to prevent
|
|
overwriting plugin specific configuration via user-based
|
|
configuration.
|
|
|
|
Close #2635
|
|
|
|
* Fix missing-raises-doc false positive (W9006)
|
|
|
|
Close #1502
|
|
|
|
* Exempt starred unpacking from ``*-not-iterating`` Python 3 checks
|
|
|
|
Close #2651
|
|
|
|
* Make ``compare-to-zero`` less zealous by checking against equality and identity
|
|
|
|
Close #2645
|
|
|
|
* Add ``no-else-raise`` warning (R1720)
|
|
|
|
Close #2558
|
|
|
|
* Exempt ``yield from`` from ``*-not-iterating`` Python 3 checks.
|
|
|
|
Close #2643
|
|
|
|
* Fix incorrect generation of ``no-else-return`` warnings (R1705)
|
|
|
|
Fixed issue where ``if`` statements with nested ``if`` statements
|
|
were incorrectly being flagged as ``no-else-return`` in some cases and
|
|
not being flagged as ``no-else-return`` in other cases. Added tests
|
|
for verification and updated pylint source files to eliminate newly
|
|
exposed warnings.
|
|
|
|
* Fix false positive with `not-async-context-manager` caused by not understanding `contextlib.asynccontextmanager`
|
|
|
|
Close #2440
|
|
|
|
* Refactor ``bad-reversed-sequence`` to account for more objects that can define ``__reversed__``
|
|
|
|
One such object would be an enum class, for which ``__reversed__`` yields each individual enum.
|
|
As such, the check for ``bad-reversed-sequence`` needs to not differentiate between classes
|
|
and instances when it comes for checking of ``__reversed__`` presence.
|
|
|
|
Close #2598
|
|
|
|
* Added ``wrong-exception-operation``
|
|
|
|
Used when an operation is done against an exception, but the operation
|
|
is not valid for the exception in question. Usually emitted when having
|
|
binary operations between exceptions in except handlers.
|
|
|
|
Close #2494
|
|
|
|
* ``no-member`` is emitted for enums when they lack a member
|
|
|
|
Previously we weren't doing this because we detected a
|
|
``__getattr__`` implementation on the ``Enum`` class
|
|
(and this check is skipped for classes with ``__getattr__``),
|
|
but that is fine for Enums, given that they are inferred in a customised
|
|
way in astroid.
|
|
|
|
Close #2565
|
|
|
|
* Generalize ``chained-comparison``
|
|
|
|
Previous version incorrectly detects `a < b < c and b < d` and fails to
|
|
detect `a < b < c and c < d`.
|
|
|
|
* Avoid popping __main__ when using multiple jobs
|
|
|
|
Close #2689
|
|
|
|
* Add a new option 'check-str-concat-over-line-jumps' to check 'implicit-str-concat-in-sequence'
|
|
|
|
* Fixes for the new style logging format linter.
|
|
|
|
The number of arguments was not handled properly, leading to an always
|
|
successful check.
|
|
|
|
* Fix false positive ``not-callable`` for uninferable properties.
|
|
|
|
* Fix false positive ``useless-else-on-loop`` if the break is deep in the else
|
|
of an inner loop.
|
|
|
|
|
|
What's New in Pylint 2.2.2?
|
|
===========================
|
|
|
|
Release date: 2018-11-28
|
|
|
|
* Change the ``logging-format-style`` to use name identifier instead of their
|
|
corresponding Python identifiers
|
|
|
|
This is to prevent users having to think about escaping the default value for
|
|
``logging-format-style`` in the generated config file. Also our config parsing
|
|
utilities don't quite support escaped values when it comes to ``choices`` detection,
|
|
so this would have needed various hacks around that.
|
|
|
|
Closes #2614
|
|
|
|
|
|
What's New in Pylint 2.2.1?
|
|
===========================
|
|
|
|
Release date: 2018-11-27
|
|
|
|
* Fix a crash caused by `implicit-str-concat-in-sequence` and multi-bytes characters.
|
|
|
|
Closes #2610
|
|
|
|
What's New in Pylint 2.2?
|
|
=========================
|
|
|
|
Release date: 2018-11-25
|
|
|
|
* Consider ``range()`` objects for ``undefined-loop-variable`` leaking from iteration.
|
|
|
|
Close #2533
|
|
|
|
* ``deprecated-method`` can use the attribute name for identifying a deprecated method
|
|
|
|
Previously we were using the fully qualified name, which we still do, but the fully
|
|
qualified name for some ``unittest`` deprecated aliases leads to a generic
|
|
deprecation function. Instead on relying on that, we now also rely on the attribute
|
|
name, which should solve some false positives.
|
|
|
|
Close #1653
|
|
Close #1946
|
|
|
|
* Fix compatibility with changes to stdlib tokenizer.
|
|
|
|
* ``pylint`` is less eager to consume the whole line for pragmas
|
|
|
|
Close #2485
|
|
|
|
* Obtain the correct number of CPUs for virtualized or containerized environments.
|
|
|
|
Close #2519
|
|
|
|
* Change ``unbalanced-tuple-unpacking`` back to a warning.
|
|
|
|
It used to be a warning until a couple of years ago, after it was promoted to
|
|
an error. But the check might be suggesting the wrong thing in some cases,
|
|
for instance when checking against ``sys.argv`` which cannot be known at static
|
|
analysis time. Given it might rely on potential unknown data, it's best to
|
|
have it as a warning.
|
|
|
|
Close #2522
|
|
|
|
* Remove ``enumerate`` usage suggestion when defining ``__iter__`` (C0200)
|
|
|
|
Close #2477
|
|
|
|
* Emit ``too-many-starred-assignment`` only when the number of Starred nodes is per assignment elements
|
|
|
|
Close #2513
|
|
|
|
* `try-except-raise` checker now handles multilevel inheritance hirerachy for exceptions correctly.
|
|
|
|
Close #2484
|
|
|
|
* Add a new check, ``simplifiable-if-expression`` for expressions like ``True if cond else False``.
|
|
|
|
Close #2487
|
|
|
|
* ``too-few-public-methods`` is not reported for ``typing.NamedTuple``
|
|
|
|
Close #2459
|
|
|
|
* ```too-few-public-methods`` is not reported for dataclasses created with options.
|
|
|
|
Close #2488
|
|
|
|
* Remove wrong modules from 'bad-python3-import'.
|
|
|
|
Close #2453
|
|
|
|
* The ``json`` reporter prints an empty list when no messages are emitted
|
|
|
|
Close #2446
|
|
|
|
* Add a new check, ``duplicate-string-formatting-argument``
|
|
|
|
This new check is emitted whenever a duplicate string formatting argument
|
|
is found.
|
|
|
|
Close #497
|
|
|
|
* ``assignment-from-no-return`` is not emitted for coroutines.
|
|
|
|
Close #1715
|
|
|
|
* Report format string type mismatches.
|
|
|
|
* ``consider-using-ternary`` and ``simplified-boolean-expression`` no longer emit for sequence based checks
|
|
|
|
Close #2473
|
|
|
|
* Handle ``AstroidSyntaxError`` when trying to import a module.
|
|
|
|
Close #2313
|
|
|
|
* Allow ``__module__`` to be redefined at a class level. Close #2451
|
|
|
|
* ``pylint`` used to emit a ``unused-variable`` error if unused import was found in the function. Now instead of
|
|
``unused-variable``, ``unused-import`` is emitted.
|
|
|
|
Close #2421
|
|
|
|
* Handle asyncio.coroutine when looking for ``not-an-iterable`` check.
|
|
|
|
Close #996
|
|
|
|
* The ``locally-enabled`` check is gone.
|
|
|
|
Close #2442
|
|
|
|
* Infer decorated methods when looking for method-hidden
|
|
|
|
Close #2369
|
|
|
|
* Pick the latest value from the inferred values when looking for ``raising-non-exception``
|
|
|
|
Close #2431
|
|
|
|
* Extend the TYPE_CHECKING guard to TYPE_CHECKING name as well, not just the attribute
|
|
|
|
Close #2411
|
|
|
|
* Ignore import x.y.z as z cases for checker `useless-import-alias`.
|
|
|
|
Close #2309
|
|
|
|
* Fix false positive ``undefined-variable`` and ``used-before-assignment`` with nonlocal keyword usage.
|
|
|
|
Close #2049
|
|
|
|
* Stop ``protected-access`` exception for missing class attributes
|
|
|
|
* Don't emit `assignment-from-no-return` for decorated function nodes
|
|
|
|
Close #2385
|
|
|
|
* `unnecessary-pass` is now also emitted when a function or class contains only docstring and pass statement.
|
|
|
|
In Python, stubbed functions often have a body that contains just a single `pass` statement,
|
|
indicating that the function doesn't do anything. However, a stubbed function can also have just a
|
|
docstring, and function with a docstring and no body also does nothing.
|
|
|
|
Close #2208
|
|
|
|
* ``duplicate-argument-name`` is emitted for more than one duplicate argument per function
|
|
|
|
Close #1712
|
|
|
|
* Allow double indentation levels for more distinguishable indentations
|
|
|
|
Close #741
|
|
|
|
* Consider tuples in exception handler for ``try-except-raise``.
|
|
Close #2389
|
|
|
|
* Fix astroid.ClassDef check in checkers.utils.is_subclass_of
|
|
|
|
* Fix wildcard imports being ignored by the import checker
|
|
|
|
* Fix external/internal distinction being broken in the import graph
|
|
|
|
* Fix wildcard import check not skipping `__init__.py`
|
|
|
|
Close #2430
|
|
|
|
* Add new option to logging checker, ``logging_format_style``
|
|
|
|
* Fix --ignore-imports to understand multi-line imports
|
|
|
|
Close #1422
|
|
Close #2019
|
|
|
|
* Add a new check 'implicit-str-concat-in-sequence' to spot string concatenation inside lists, sets & tuples.
|
|
|
|
* ``literal-comparison`` is now emitted for 0 and 1 literals.
|
|
|
|
What's New in Pylint 2.1.1?
|
|
===========================
|
|
|
|
Release date: 2018-08-07
|
|
|
|
* fix pylint crash due to ``misplaced-format-function`` not correctly handling class attribute.
|
|
Close #2384
|
|
|
|
* Do not emit \*-builtin for Python 3 builtin checks when the builtin is used inside a try-except
|
|
|
|
Close PyCQA/pylint#2228
|
|
|
|
* ``simplifiable-if-statement`` not emitted when dealing with subscripts
|
|
|
|
What's New in Pylint 2.1?
|
|
=========================
|
|
|
|
Release date: 2018-08-01
|
|
* `trailing-comma-tuple` gets emitted for ``yield`` statements as well.
|
|
|
|
Close #2363
|
|
|
|
* Get only the arguments of the scope function for `redefined-argument-from-local`
|
|
|
|
Close #2364
|
|
|
|
* Add a check `misplaced-format-function` which is emitted if format function is used on
|
|
non str object.
|
|
|
|
Close #2200
|
|
|
|
* `chain.from_iterable` no longer emits `dict-{}-not-iterating` when dealing with dict values and keys
|
|
|
|
* Demote the `try-except-raise` message from an error to a warning (E0705 -> W0706)
|
|
|
|
Close #2323
|
|
|
|
* Correctly handle the new name of the Python implementation of the `abc` module.
|
|
|
|
Close PyCQA/astroid#2288
|
|
|
|
* Modules with `__getattr__` are exempted by default from `no-member`
|
|
|
|
There's no easy way to figure out if a module has a particular member when
|
|
the said module uses `__getattr__`, which is a new addition to Python 3.7.
|
|
Instead we assume the safe thing to do, in the same way we do for classes,
|
|
and skip those modules from checking.
|
|
|
|
Close #2331
|
|
|
|
* Fix a false positive `invalid name` message when method or attribute name is longer then 30 characters.
|
|
|
|
Close #2047
|
|
|
|
* Include the type of the next branch in `no-else-return`
|
|
|
|
Close #2295
|
|
|
|
* Fix inconsistent behaviour for bad-continuation on first line of file
|
|
|
|
Close #2281
|
|
|
|
* Fix not being able to disable certain messages on the last line through
|
|
the global disable option
|
|
|
|
Close #2278
|
|
|
|
* Don't emit `useless-return` when we have a single statement that is the return itself
|
|
|
|
We still want to be explicit when a function is supposed to return
|
|
an optional value; even though `pass` could still work, it's not explicit
|
|
enough and the function might look like it's missing an implementation.
|
|
Close #2300
|
|
|
|
* Fix false-positive undefined-variable for self referential class name in lamdbas
|
|
|
|
Close #704
|
|
|
|
* Don't crash when `pylint` is unable to infer the value of an argument to `next()`
|
|
|
|
Close #2316
|
|
|
|
* Don't emit `not-an-iterable` when dealing with async iterators.
|
|
|
|
But do emit it when using the usual iteration protocol against
|
|
async iterators.
|
|
|
|
Close #2311
|
|
|
|
* Can specify a default docstring type for when the check cannot guess the type
|
|
|
|
Close #1169
|
|
|
|
|
|
What's New in Pylint 2.0?
|
|
=========================
|
|
|
|
Release date: 2018-07-15
|
|
* `try-except-raise` should not be emitted if there are any parent exception class handlers.
|
|
|
|
Close #2284
|
|
|
|
* `trailing-comma-tuple` can be emitted for `return` statements as well.
|
|
|
|
Close #2269
|
|
|
|
* Fix a false positive ``inconsistent-return-statements`` message when exception is raised
|
|
inside an else statement.
|
|
|
|
Close #1782
|
|
|
|
* `ImportFrom` nodes correctly use the full name for the import sorting checks.
|
|
|
|
Close #2181
|
|
|
|
* [].extend and similar builtin operations don't emit `dict-*-not-iterating` with the Python 3 porting checker
|
|
|
|
Close #2187
|
|
|
|
* Add a check `consider-using-dict-comprehension` which is emitted if for dict initialization
|
|
the old style with list comprehensions is used.
|
|
|
|
* Add a check `consider-using-set-comprehension` which is emitted if for set initialization
|
|
the old style with list comprehensions is used.
|
|
|
|
* `logging-not-lazy` is emitted whenever pylint infers that a string is built with addition
|
|
|
|
Close #2193
|
|
|
|
* Add a check `chained-comparison` which is emitted if a boolean operation can be simplified
|
|
by chaining some of its operations.
|
|
e.g "a < b and b < c", can be simplified as "a < b < c".
|
|
|
|
Close #2032
|
|
|
|
* Add a check `consider-using-in` for comparisons of a variable against
|
|
multiple values with "==" and "or"s instead of checking if the variable
|
|
is contained "in" a tuple of those values.
|
|
|
|
* `in` is considered iterating context for some of the Python 3 porting checkers
|
|
|
|
Close #2186
|
|
|
|
* Add `--ignore-none` flag to control if pylint should warn about `no-member` where the owner is None
|
|
|
|
* Fix a false positive related to `too-many-arguments` and bounded `__get__` methods
|
|
|
|
Close #2172
|
|
|
|
* `mcs` as the first parameter of metaclass's `__new__` method was replaced by `cls`
|
|
|
|
Close #2028
|
|
|
|
* `assignment-from-no-return` considers methods as well.
|
|
|
|
Close #2081
|
|
|
|
* Support typing.TYPE_CHECKING for *unused-import* errors
|
|
|
|
Close #1948
|
|
|
|
* Inferred classes at a function level no longer emit `invalid-name`
|
|
when they don't respect the variable regular expression
|
|
|
|
Close #1049
|
|
|
|
* Added basic support for postponed evaluation of function annotations.
|
|
|
|
Close #2069
|
|
|
|
* Fix a bug with `missing-kwoa` and variadics parameters
|
|
|
|
Close #1111
|
|
|
|
* `simplifiable-if-statement` takes in account only when assigning to same targets
|
|
|
|
Close #1984
|
|
|
|
* Make ``len-as-condition`` test more cases, such as ``len() < 1`` or ``len <= 0``
|
|
|
|
* Fix false-positive ``line-too-long`` message emission for
|
|
commented line at the end of a module
|
|
|
|
Close #1950
|
|
|
|
* Fix false-positive ``bad-continuation`` for with statements
|
|
|
|
Close #461
|
|
|
|
* Don't warn about `stop-iteration-return` when using `next()` over `itertools.count`
|
|
|
|
Close #2158
|
|
|
|
* Add a check `consider-using-get` for unidiomatic usage of value/default-retrieval
|
|
for a key from a dictionary
|
|
|
|
Close #2076
|
|
|
|
* invalid-slice-index is not emitted when the slice is used as index for a complex object.
|
|
|
|
We only use a handful of known objects (list, set and friends) to figure out if
|
|
we should emit invalid-slice-index when the slice is used to subscript an object.
|
|
|
|
* Don't emit `unused-import` anymore for typing imports used in type comments.
|
|
|
|
* Add a new check 'useless-import-alias'.
|
|
|
|
Close #2052
|
|
|
|
* Add `comparison-with-callable` to warn for comparison with bare callable, without calling it.
|
|
|
|
Close #2082
|
|
|
|
* Don't warn for ``missing-type-doc`` and/or ``missing-return-type-doc``, if type
|
|
annotations exist on the function signature for a parameter and/or return type.
|
|
Close #2083
|
|
|
|
* Add `--exit-zero` option for continuous integration scripts to more
|
|
easily call Pylint in environments that abort when a program returns a
|
|
non-zero (error) status code.
|
|
|
|
Close #2042
|
|
|
|
* Warn if the first argument of an instance/ class method gets assigned
|
|
|
|
Close #977
|
|
|
|
* New check `comparison-with-itself` to check comparison between same value.
|
|
|
|
Close #2051
|
|
|
|
* Add a new warning, 'logging-fstring-interpolation', emitted when f-string
|
|
is used within logging function calls.
|
|
|
|
Close #1998
|
|
|
|
* Don't show 'useless-super-delegation' if the subclass method has different type annotations.
|
|
|
|
Close #1923
|
|
|
|
* Add `unhashable-dict-key` check.
|
|
|
|
Closes #586
|
|
|
|
* Don't warn that a global variable is unused if it is defined by an import
|
|
|
|
Close #1453
|
|
|
|
* Skip wildcard import check for `__init__.py`.
|
|
|
|
Close #2026
|
|
|
|
* The Python 3 porting mode can now run with Python 3 as well.
|
|
|
|
* `too-few-public-methods` is not emitted for dataclasses.
|
|
|
|
Close #1793
|
|
|
|
* New verbose mode option, enabled with `--verbose` command line flag, to
|
|
display of extra non-checker-related output. It is disabled by default.
|
|
|
|
Close #1863
|
|
|
|
* `undefined-loop-variable` takes in consideration non-empty iterred objects before emitting
|
|
|
|
Close #2039
|
|
|
|
* Add support for numpydoc optional return value names.
|
|
|
|
Close #2030
|
|
|
|
* `singleton-comparison` accounts for negative checks
|
|
|
|
Close #2037
|
|
|
|
* Add a check `consider-using-in` for comparisons of a variable against
|
|
multiple values with "==" and "or"s instead of checking if the variable
|
|
is contained "in" a tuple of those values.
|
|
|
|
Close #1977
|
|
|
|
* defaultdict and subclasses of dict are now handled for dict-iter-* checks
|
|
|
|
Close #2005
|
|
|
|
* `logging-format-interpolation` also emits when f-strings are used instead of % syntax.
|
|
|
|
Close #1788
|
|
|
|
* Don't trigger misplaced-bare-raise when the raise is in a finally clause
|
|
|
|
Close #1924
|
|
|
|
* Add a new check, `possibly-unused-variable`.
|
|
|
|
This is similar to `unused-variable`, the only difference is that it is
|
|
emitted when we detect a locals() call in the scope of the unused variable.
|
|
The `locals()` call could potentially use the said variable, by consuming
|
|
all values that are present up to the point of the call. This new check
|
|
allows to disable this error when the user intentionally uses `locals()`
|
|
to consume everything.
|
|
|
|
Close #1909.
|
|
|
|
* `no-else-return` accounts for multiple cases
|
|
|
|
The check was a bit overrestrictive because we were checking for
|
|
return nodes in the .orelse node. At that point though the if statement
|
|
can be refactored to not have the orelse. This improves the detection of
|
|
other cases, for instance it now detects TryExcept nodes that are part of
|
|
the .else branch.
|
|
|
|
Close #1852
|
|
|
|
* Added two new checks, `invalid-envvar-value` and `invalid-envvar-default`.
|
|
|
|
The former is trigger whenever pylint detects that environment variable manipulation
|
|
functions uses a different type than strings, while the latter is emitted whenever
|
|
the said functions are using a default variable of different type than expected.
|
|
|
|
* Add a check `consider-using-join` for concatenation of strings using str.join(sequence)
|
|
|
|
Close #1952
|
|
|
|
* Add a check `consider-swap-variables` for swapping variables with tuple unpacking
|
|
|
|
Close #1922
|
|
|
|
* Add new checker `try-except-raise` that warns the user if an except handler block
|
|
has a ``raise`` statement as its first operator. The warning is shown when there is
|
|
a bare raise statement, effectively re-raising the exception that was caught or the
|
|
type of the exception being raised is the same as the one being handled.
|
|
|
|
* Don't crash on invalid strings when checking for `logging-format-interpolation`
|
|
|
|
Close #1944
|
|
|
|
* Exempt `__doc__` from triggering a `redefined-builtin`
|
|
|
|
`__doc__` can be used to specify a docstring for a module without
|
|
passing it as a first-statement string.
|
|
|
|
* Fix false positive bad-whitespace from function arguments with default
|
|
values and annotations
|
|
|
|
Close #1831
|
|
|
|
* Fix stop-iteration-return false positive when next builtin has a
|
|
default value in a generator
|
|
|
|
Close #1830
|
|
|
|
* Fix emission of false positive ``no-member`` message for class with "private" attributes whose name is mangled.
|
|
|
|
Close #1643
|
|
|
|
* Fixed a crash which occurred when `Uninferable` wasn't properly handled in `stop-iteration-return`
|
|
|
|
Close #1779
|
|
|
|
* Use the proper node to get the name for redefined functions (#1792)
|
|
|
|
Close #1774
|
|
|
|
* Don't crash when encountering bare raises while checking inconsistent returns
|
|
|
|
Close #1773
|
|
|
|
* Fix a false positive ``inconsistent-return-statements`` message when if statement is inside try/except.
|
|
|
|
Close #1770
|
|
|
|
* Fix a false positive ``inconsistent-return-statements`` message when while loop are used.
|
|
|
|
Close #1772
|
|
|
|
* Correct column number for whitespace conventions.
|
|
|
|
Previously the column was stuck at 0
|
|
|
|
Close #1649
|
|
|
|
* Fix ``unused-argument`` false positives with overshadowed variable in
|
|
dictionary comprehension.
|
|
|
|
Close #1731
|
|
|
|
* Fix false positive ``inconsistent-return-statements`` message when never
|
|
returning functions are used (i.e sys.exit for example).
|
|
|
|
Close #1771
|
|
|
|
* Fix error when checking if function is exception, as in ``bad-exception-context``.
|
|
|
|
* Fix false positive ``inconsistent-return-statements`` message when a
|
|
function is defined under an if statement.
|
|
|
|
Close #1794
|
|
|
|
* New ``useless-return`` message when function or method ends with a "return" or
|
|
"return None" statement and this is the only return statement in the body.
|
|
|
|
* Fix false positive ``inconsistent-return-statements`` message by
|
|
avoiding useless exception inference if the exception is not handled.
|
|
|
|
Close #1794 (second part)
|
|
|
|
* Fix bad thread instantiation check when target function is provided in args.
|
|
|
|
Close #1840
|
|
|
|
* Fixed false positive when a numpy Attributes section follows a Parameters
|
|
section
|
|
|
|
Close #1867
|
|
|
|
* Fix incorrect file path when file absolute path contains multiple ``path_strip_prefix`` strings.
|
|
|
|
Close #1120
|
|
|
|
* Fix false positive undefined-variable for lambda argument in class definitions
|
|
|
|
Close #1824
|
|
|
|
* Add of a new checker that warns the user if some messages are enabled or disabled
|
|
by id instead of symbol.
|
|
|
|
Close #1599
|
|
|
|
* Suppress false-positive ``not-callable`` messages from certain
|
|
staticmethod descriptors
|
|
|
|
Close #1699
|
|
|
|
* Fix indentation handling with tabs
|
|
|
|
Close #1148
|
|
|
|
* Fix false-positive ``bad-continuation`` error
|
|
|
|
Close #638
|
|
|
|
* Fix false positive unused-variable in lambda default arguments
|
|
|
|
Close #1921
|
|
Close #1552
|
|
Close #1099
|
|
Close #210
|
|
|
|
* Updated the default report format to include paths that can be clicked on in some terminals (e.g. iTerm).
|
|
|
|
* Fix inline def behavior with ``too-many-statements`` checker
|
|
|
|
Close #1978
|
|
|
|
* Fix `KeyError` raised when using docparams and NotImplementedError is documented.
|
|
|
|
Close #2102
|
|
|
|
* Fix 'method-hidden' raised when assigning to a property or data descriptor.
|
|
|
|
* Fix emitting ``useless-super-delegation`` when changing the default value of keyword arguments.
|
|
|
|
Close #2022
|
|
|
|
* Expand ignored-argument-names include starred arguments and keyword arguments
|
|
|
|
Close #2214
|
|
|
|
* Fix false-postive undefined-variable in nested lambda
|
|
|
|
Close #760
|
|
|
|
* Fix false-positive ``bad-whitespace`` message for typing annoatations
|
|
with ellipses in them
|
|
|
|
Close 1992
|
|
|
|
What's New in Pylint 1.9?
|
|
=========================
|
|
|
|
Release date: 2018-05-15
|
|
|
|
* Added two new Python 3 porting checks, `exception-escape` and `comprehension-escape`
|
|
|
|
These two are emitted whenever pylint detects that a variable defined in the
|
|
said blocks is used outside of the given block. On Python 3 these values are deleted.
|
|
|
|
* Added a new `deprecated-sys-function`, emitted when accessing removed sys members.
|
|
|
|
* Added `xreadlines-attribute`, emitted when the `xreadlines()` attribute is accessed.
|
|
|
|
* The Python 3 porting mode can now run with Python 3 as well.
|
|
|
|
* docparams extension allows abstract methods to document what overriding
|
|
implementations should return, and to raise NotImplementedError without
|
|
documenting it.
|
|
|
|
Closes #2044
|
|
|
|
* Special methods do not count towards `too-few-methods`,
|
|
and are considered part of the public API.
|
|
|
|
* Enum classes do not trigger `too-few-methods`
|
|
|
|
Close #605
|
|
|
|
* Added a new Python 2/3 check for accessing `operator.div`, which is removed in Python 3
|
|
|
|
Close #1936
|
|
|
|
* Added a new Python 2/3 check for accessing removed urllib functions
|
|
|
|
Close #1997
|
|
|
|
|
|
What's New in Pylint 1.8.1?
|
|
===========================
|
|
|
|
Release date: 2017-12-15
|
|
|
|
* Wrong version number in __pkginfo__.
|
|
|
|
|
|
What's New in Pylint 1.8?
|
|
=========================
|
|
|
|
Release date: 2017-12-15
|
|
|
|
* Respect disable=... in config file when running with --py3k.
|
|
|
|
* New warning `shallow-copy-environ` added
|
|
|
|
Shallow copy of os.environ doesn't work as people may expect. os.environ
|
|
is not a dict object but rather a proxy object, so any changes made
|
|
on copy may have unexpected effects on os.environ
|
|
|
|
Instead of copy.copy(os.environ) method os.environ.copy() should be
|
|
used.
|
|
|
|
See https://bugs.python.org/issue15373 for details.
|
|
|
|
Close #1301
|
|
|
|
* Do not display no-absolute-import warning multiple times per file.
|
|
|
|
* `trailing-comma-tuple` refactor check now extends to assignment with
|
|
more than one element (such as lists)
|
|
|
|
Close #1713
|
|
|
|
* Fixing u'' string in superfluous-parens message
|
|
|
|
Close #1420
|
|
|
|
* `abstract-class-instantiated` is now emitted for all inference paths.
|
|
|
|
Close #1673
|
|
|
|
* Add set of predefined naming style to ease configuration of checking
|
|
naming conventions.
|
|
|
|
Closes #1013
|
|
|
|
* Added a new check, ``keyword-arg-before-vararg``
|
|
|
|
This is emitted for function definitions
|
|
in which keyword arguments are placed before variable
|
|
positional arguments (\*args).
|
|
|
|
This may lead to args list getting modified if keyword argument's value
|
|
is not provided in the function call assuming it will take default value
|
|
provided in the definition.
|
|
|
|
* The `invalid-name` check contains the name of the template that caused the failure
|
|
|
|
Close #1176
|
|
|
|
* Using the -j flag won't start more child linters than needed.
|
|
|
|
Contributed by Roman Ivanov in #1614
|
|
|
|
* Fix a false positive with bad-python3-import on relative imports
|
|
|
|
Close #1608
|
|
|
|
* Added a new Python 3 check, ``non-ascii-bytes-literals``
|
|
|
|
Close #1545
|
|
|
|
* Added a couple of new Python 3 checks for accessing dict methods in non-iterable context
|
|
|
|
* Protocol checks (not-a-mapping, not-an-iterable and co.) aren't emitted on classes with dynamic getattr
|
|
|
|
* Added a new warning, 'bad-thread-instantiation'
|
|
|
|
This message is emitted when the threading.Thread class does not
|
|
receive the target argument, but receives just one argument, which
|
|
is by default the group parameter.
|
|
|
|
Close #1327
|
|
|
|
* In non-quiet mode, absolute path of used config file is logged to
|
|
standard error.
|
|
Close #1519
|
|
|
|
* Raise meaningful exception for invalid reporter class being selected
|
|
|
|
When unknown reporter class will be selected as Pylint reporter,
|
|
meaningful error message would be raised instead of bare ``ImportError``
|
|
or ``AttribueError`` related to module or reporter class being not found.
|
|
Close #1388
|
|
|
|
* Added a new Python 3 check for accessing removed functions from itertools
|
|
like ``izip`` or ``ifilterfalse``
|
|
|
|
* Added a new Python 3 check for accessing removed fields from the types
|
|
module like ``UnicodeType`` or ``XRangeType``
|
|
|
|
* Added a new Python 3 check for declaring a method ``next`` that would have
|
|
been treated as an iterator in Python 2 but a normal function in Python 3.
|
|
|
|
* Added a new key-value pair in json output. The key is ``message-id``
|
|
and the value is the message id.
|
|
Close #1512
|
|
|
|
* Added a new Python 3.0 check for raising a StopIteration inside a generator.
|
|
The check about raising a StopIteration inside a generator is also valid if the exception
|
|
raised inherit from StopIteration.
|
|
Close #1385
|
|
|
|
* Added a new warning, ``raising-format-tuple``, to detect multi-argument
|
|
exception construction instead of message string formatting.
|
|
|
|
* Added a new check for method of logging module that concatenate string via + operator
|
|
Close #1479
|
|
|
|
* Added parameter for limiting number of suggestions in spellchecking checkers
|
|
|
|
* Fix a corner-case in ``consider-using-ternary`` checker.
|
|
|
|
When object ``A`` used in ``X and A or B`` was falsy in boolean context,
|
|
Pylint incorrectly emitted non-equivalent ternary-based suggestion.
|
|
After a change message is correctly not emitted for this case.
|
|
Close #1559
|
|
|
|
* Added ``suggestion-mode`` configuration flag. When flag is enabled, informational
|
|
message is emitted instead of cryptic error message for attributes accessed on
|
|
c-extensions.
|
|
Close #1466
|
|
|
|
* Fix a false positive ``useless-super-delegation`` message when
|
|
parameters default values are different from those used in the base class.
|
|
Close #1085
|
|
|
|
* Disabling 'wrong-import-order', 'wrong-import-position', or
|
|
'ungrouped-imports' for a single line now prevents that line from
|
|
triggering violations on subsequent lines.
|
|
|
|
Close #1336
|
|
|
|
* Added a new Python check for inconsistent return statements inside method or function.
|
|
Close #1267
|
|
|
|
* Fix ``superfluous-parens`` false positive related to handling logical statements
|
|
involving ``in`` operator.
|
|
|
|
Close #574
|
|
|
|
* ``function-redefined`` message is no longer emitted for functions and
|
|
methods which names matches dummy variable name regular expression.
|
|
Close #1369
|
|
|
|
* Fix ``missing-param-doc`` and ``missing-type-doc`` false positives when
|
|
mixing ``Args`` and ``Keyword Args`` in Google docstring.
|
|
Close #1409
|
|
|
|
* Fix ``missing-docstring`` false negatives when modules, classes, or methods
|
|
consist of compound statements that exceed the ``docstring-min-length``
|
|
|
|
* Fix ``useless-else-on-loop`` false positives when break statements are
|
|
deeply nested inside loop.
|
|
Close #1661
|
|
|
|
* Fix no ``wrong-import-order`` message emitted on ordering of first and third party
|
|
libraries. With this fix, pylint distinguishes third and first party
|
|
modules when checking import order.
|
|
Close #1702
|
|
|
|
* Fix ``pylint disable=fixme`` directives ignored for comments following the
|
|
last statement in a file.
|
|
Close #1681
|
|
|
|
* Fix ``line-too-long`` message deactivated by wrong disable directive.
|
|
The directive ``disable=fixme`` doesn't deactivate anymore the emission
|
|
of ``line-too-long`` message for long commented lines.
|
|
Close #1741
|
|
|
|
* If the rcfile specified on the command line doesn't exist, then an
|
|
IOError exception is raised.
|
|
Close #1747
|
|
|
|
* Fix the wrong scope of the ``disable=`` directive after a commented line.
|
|
For example when a ``disable=line-too-long`` directive is at the end of
|
|
a long commented line, it no longer disables the emission of ``line-too-long``
|
|
message for lines that follow.
|
|
Close #1742
|
|
|
|
What's New in Pylint 1.7.1?
|
|
===========================
|
|
|
|
Release date: 2017-04-17
|
|
|
|
* Fix a false positive which occurred when an exception was reraised
|
|
|
|
Close #1419
|
|
|
|
* Fix a false positive of ``disallow-trailing-tuple``
|
|
|
|
The check was improved by verifying for non-terminating newlines, which
|
|
should exempt function calls and function definitions from the check
|
|
Close #1424
|
|
|
|
|
|
What's New in Pylint 1.7?
|
|
=========================
|
|
|
|
Release date: 2017-04-13
|
|
|
|
* Don't emit missing-final-newline or trailing-whitespace for formfeeds (page breaks).
|
|
|
|
Close #1218 and #1219
|
|
|
|
* Don't emit by default no-member if we have opaque inference objects in the inference results
|
|
|
|
This is controlled through the new flag ignore-on-opaque-inference, which is by
|
|
default True. The inference can return multiple potential results while
|
|
evaluating a Python object, but some branches might not be evaluated, which
|
|
results in partial inference. In that case, it might be useful to still emit
|
|
no-member and other checks for the rest of the inferred objects.
|
|
|
|
* Added new message `assign-to-new-keyword` to warn about assigning to names which
|
|
will become a keyword in future Python releases.
|
|
|
|
Close #1351
|
|
|
|
* Split the 'missing or differing' in parameter documentation in different error.
|
|
'differing-param-doc' covers the differing part of the old 'missing-param-doc',
|
|
and 'differing-type-doc' covers the differing part of the old 'missing-type-doc'
|
|
|
|
Close #1342
|
|
|
|
* Added a new error, 'used-prior-global-declaration', which is emitted when a name
|
|
is used prior a global declaration in a function. This causes a SyntaxError in
|
|
Python 3.6
|
|
|
|
Close #1257
|
|
|
|
* The protocol checks are emitting their messages when a special method is set to None.
|
|
|
|
Close #1263
|
|
|
|
* Properly detect if imported name is assigned to same name in different
|
|
scope.
|
|
|
|
Close #636, #848, #851, and #900
|
|
|
|
* Require one space for annotations with type hints, as per PEP 8.
|
|
|
|
* 'trailing-comma-tuple' check was added
|
|
|
|
This message is emitted when pylint finds an one-element tuple,
|
|
created by a stray comma. This can suggest a potential problem in the
|
|
code and it is recommended to use parantheses in order to emphasise the
|
|
creation of a tuple, rather than relying on the comma itself.
|
|
|
|
* Don't emit not-callable for instances with unknown bases.
|
|
|
|
Close #1213
|
|
|
|
* Treat keyword only arguments the same as positional arguments with regard to unused-argument check
|
|
|
|
* Don't try to access variables defined in a separate scope when checking for ``protected-access``
|
|
|
|
* Added new check to detect incorrect usage of len(SEQUENCE) inside
|
|
test conditions.
|
|
|
|
* Added new extension to detect comparisons against empty string constants
|
|
|
|
* Added new extension to detect comparisons of integers against zero
|
|
|
|
* Added new error conditions for 'bad-super-call'
|
|
|
|
Now detects ``super(type(self), self)`` and ``super(self.__class__, self)``
|
|
which can lead to recursion loop in derived classes.
|
|
|
|
* PyLinter.should_analyze_file has a new optional parameter, called `is_argument`
|
|
|
|
Close #1079
|
|
|
|
* Add attribute hints for missing members
|
|
|
|
Closes #1035
|
|
|
|
* Add a new warning, 'redefined-argument-from-local'
|
|
|
|
Closes #649
|
|
|
|
* Support inline comments for comma separated values in the config file
|
|
|
|
Closes #1024
|
|
|
|
* epylint.py_run's *script* parameter was removed.
|
|
|
|
* epylint.py_run now uses ``shell=False`` for running the underlying process.
|
|
|
|
Closes #441
|
|
|
|
* Added a new warning, 'useless-super-delegation'
|
|
|
|
Close 839.
|
|
|
|
* Added a new error, 'invalid-metaclass', raised when
|
|
we can detect that a class is using an improper metaclass.
|
|
|
|
Close #579
|
|
|
|
* Added a new refactoring message, 'literal-comparison'.
|
|
|
|
Close #786
|
|
|
|
* arguments-differ takes in consideration kwonlyargs and variadics
|
|
|
|
Close #983
|
|
|
|
* Removed --optimized-ast. Part of #975.
|
|
|
|
* Removed --files-output option. Part of #975.
|
|
|
|
* Removed pylint-gui from the package.
|
|
|
|
* Removed the HTML reporter. Part of #975.
|
|
|
|
* ignored-argument-names is now used for ignoring arguments for unused-variable check.
|
|
|
|
This option was used for ignoring arguments when computing the correct number of arguments
|
|
a function should have, but for handling the arguments with regard
|
|
to unused-variable check, dummy-variables-rgx was used instead. Now, ignored-argument-names
|
|
is used for its original purpose and also for ignoring the matched arguments for
|
|
the unused-variable check. This offers a better control of what should be ignored
|
|
and how.
|
|
Also, the same option was moved from the design checker to the variables checker,
|
|
which means that the option now appears under the ``[VARIABLES]`` section inside
|
|
the configuration file.
|
|
Close #862.
|
|
|
|
* Fix a false positive for keyword variadics with regard to keyword only arguments.
|
|
|
|
If a keyword only argument was necessary for a function, but that function was called
|
|
with keyword variadics (\**kwargs), then we were emitting a missing-kwoa false positive,
|
|
which is now fixed.
|
|
|
|
Close #934.
|
|
|
|
* Fix some false positives with unknown sized variadics.
|
|
|
|
Close #878
|
|
|
|
* Added a new extension, check_docstring, for checking PEP 257 conventions.
|
|
|
|
Closes #868.
|
|
|
|
* config files with BOM markers can now be read.
|
|
|
|
Close #864.
|
|
|
|
* epylint.py_run does not crash on big files, using .communicate() instead of .wait()
|
|
|
|
Close #599
|
|
|
|
* Disable reports by default and show the evaluation score by default
|
|
|
|
As per discussion from issue #746, the reports were disabled by
|
|
default in order to simplify the interaction between the tool
|
|
and the users. The score is still shown by default, as a way of
|
|
closely measuring when it increases or decreases due to changes
|
|
brought to the code.
|
|
|
|
* Disable the information category messages by default.
|
|
|
|
This is a step towards making pylint more sane, as
|
|
per the discussion from issue #746.
|
|
|
|
* Catch more cases as not proper iterables for __slots__ with
|
|
regard to invalid-slots pattern. Closes issue #775.
|
|
|
|
* empty indent strings are rejected.
|
|
|
|
* Added a new error, 'relative-beyond-top-level', which is emitted
|
|
when a relative import was attempted beyond the top level package.
|
|
|
|
Closes issue #588.
|
|
|
|
* Added a new warning, 'unsupported-assignment-operation', which is
|
|
emitted when item assignment is tried on an object which doesn't
|
|
have this ability. Closes issue #591.
|
|
|
|
* Added a new warning, 'unsupported-delete-operation', which is
|
|
emitted when item deletion is tried on an object which doesn't
|
|
have this ability. Closes issue #592.
|
|
|
|
* Fix a false positive of 'redundant-returns-doc', occurred when the documented
|
|
function was using *yield* instead of *return*.
|
|
|
|
Closes issue #984.
|
|
|
|
* Fix false positives of 'missing-[raises|params|type]-doc' due to not
|
|
recognizing keyword synonyms supported by Sphinx.
|
|
|
|
* Added a new refactoring message, 'consider-merging-isinstance', which is
|
|
emitted whenever we can detect that consecutive isinstance calls can be
|
|
merged together.
|
|
|
|
Closes issue #968
|
|
|
|
* Fix a false positive of 'missing-param-doc' and 'missing-type-doc',
|
|
occurred when a class docstring uses the 'For the parameters, see'
|
|
magic string but the class __init__ docstring does not, or vice versa.
|
|
|
|
* `redefined-outer-name` is now also emitted when a nested loop's target
|
|
variable is the same as a target variable in an outer loop.
|
|
|
|
Closes issue #911.
|
|
|
|
* Added proper exception type inference for 'missing-raises-doc'.
|
|
|
|
* Added InvalidMessageError exception class to replace asserts in
|
|
pylint.utils.
|
|
|
|
* More thorough validation in MessagesStore.register_messages() to avoid
|
|
one message accidentally overwriting another.
|
|
|
|
* InvalidMessageError, UnknownMessage, and EmptyReport exceptions are
|
|
moved to the new pylint.exceptions submodule.
|
|
|
|
* UnknownMessage and EmptyReport are renamed to UnknownMessageError and
|
|
EmptyReportError.
|
|
|
|
* Warnings 'missing-returns-type-doc' and 'missing-yields-type-doc'
|
|
have each been split into two warnings - 'missing-[return|yield]-doc'
|
|
and 'missing-[return|yield]-type-doc'.
|
|
|
|
* Added epytext support to docparams extension.
|
|
|
|
Closes #1029.
|
|
|
|
* Support having plugins with the same name and with options defined
|
|
|
|
Closes #1018
|
|
|
|
* Sort configuration options in a section
|
|
|
|
Closes #1087
|
|
|
|
* Added a new Python 3 warning around implementing '__div__', '__idiv__', or
|
|
'__rdiv__' as those methods are phased out in Python 3.
|
|
|
|
* Added a new warning, 'overlapping-except', which is
|
|
emitted when two exceptions in the same except-clause are aliases
|
|
for each other or one exceptions is an ancestor of another.
|
|
|
|
* Avoid crashing on ill-formatted strings when checking for string formatting errors.
|
|
|
|
* Added a new Python 3 warning for calling 'str.encode' or 'str.decode' with a non-text
|
|
encoding.
|
|
|
|
* Added new coding convention message, 'single-string-used-for-slots'.
|
|
|
|
Closes #1166
|
|
|
|
* Added a new Python 3 check for accessing 'sys.maxint' which was removed in Python 3 in favor
|
|
of 'sys.maxsize'
|
|
|
|
* Added a new Python 3 check for bad imports.
|
|
|
|
* Added a new Python 3 check for accessing deprecated string functions.
|
|
|
|
* Do not warn about unused arguments or function being redefined in singledispatch
|
|
registered implementations.
|
|
|
|
Closes #1032 and #1034
|
|
|
|
* Added refactoring message 'no-else-return'.
|
|
|
|
* Improve unused-variable checker to warn about unused variables in module scope.
|
|
|
|
Closes #919
|
|
|
|
* Ignore modules import as _ when checking for unused imports.
|
|
|
|
Closes #1190
|
|
|
|
* Improve handing of Python 3 classes with metaclasses declared in nested scopes.
|
|
|
|
Closes #1177
|
|
|
|
* Added refactoring message 'consider-using-ternary'.
|
|
|
|
Closes #1204
|
|
|
|
* Bug-fix for false-positive logging-format-interpolation` when format specifications
|
|
are used in formatted string.
|
|
|
|
Fixes #572
|
|
|
|
* Added a new switch ``single-line-class-stmt`` to allow single-line declaration
|
|
of empty class bodies.
|
|
|
|
Closes #738
|
|
|
|
* Protected access in form `type(self)._attribute` are now allowed.
|
|
|
|
Fixes #1031
|
|
|
|
* Let the user modify msg-template when Pylint is called from a Python script
|
|
|
|
Fixes #1269
|
|
|
|
* Imports checker supports new switch ``allow-wildcard-with-all`` which disables
|
|
warning on wildcard import when imported module defines `__all__` variable.
|
|
|
|
Fixes #831
|
|
|
|
* `too-many-format-args` and `too-few-format-args` are emitted correctly when
|
|
starred expression are used in RHS tuple.
|
|
|
|
Fixes #957
|
|
|
|
* `cyclic-import` checker supports local disable clauses. When one
|
|
of cycle imports was done in scope where disable clause was active,
|
|
cycle is not reported as violation.
|
|
|
|
Fixes #59
|
|
|
|
|
|
What's new in Pylint 1.6.3?
|
|
===========================
|
|
|
|
Release date: 2016-07-18
|
|
|
|
* Do not crash when inferring uninferable exception types for docparams extension
|
|
|
|
Close #998
|
|
|
|
|
|
What's new in Pylint 1.6.2?
|
|
===========================
|
|
|
|
Release date: TBA
|
|
|
|
* Do not crash when printing the help of options with default regular expressions
|
|
|
|
Close #990
|
|
|
|
* More granular versions for deprecated modules.
|
|
|
|
Close #991
|
|
|
|
|
|
What's new in Pylint 1.6.1?
|
|
===========================
|
|
|
|
Release date: 2016-07-07
|
|
|
|
* Use environment markers for supporting conditional dependencies.
|
|
|
|
|
|
What's New in Pylint 1.6.0?
|
|
===========================
|
|
|
|
Release date: 2016-07-03
|
|
|
|
* Added a new extension, `pylint.extensions.mccabe`, for warning
|
|
about complexity in code.
|
|
|
|
* Deprecate support for --optimize-ast. Part of #975.
|
|
|
|
* Deprecate support for the HTML output. Part of #975.
|
|
|
|
* Deprecate support for --output-files. Part of #975.
|
|
|
|
* Fixed a documentation error for the check_docs extension. Fixes #735.
|
|
|
|
* Made the list of property-defining decorators configurable.
|
|
|
|
* Fix a bug where the top name of a qualified import was detected as unused variable.
|
|
|
|
Close #923.
|
|
|
|
* bad-builtin is now an extension check.
|
|
|
|
* generated-members support qualified name through regular expressions.
|
|
|
|
For instance, one can specify a regular expression as --generated-members=astroid.node_classes.*
|
|
for ignoring every no-member error that is accessed as in `astroid.node_classes.missing.object`.
|
|
|
|
* Add the ability to ignore files based on regex matching, with the new ``--ignore-patterns``
|
|
option.
|
|
|
|
This addresses issue #156 by allowing for multiple ignore patterns
|
|
to be specified. Rather than clobber the existing ignore option, we
|
|
introduced a new one called ignore-patterns.
|
|
|
|
* Added a new error, 'trailing-newlines', which is emitted when a file
|
|
has trailing new lines.
|
|
|
|
Closes issue #682.
|
|
|
|
* Add a new option, 'redefining-builtins-modules', for controlling the modules
|
|
which can redefine builtins, such as six.moves and future.builtins.
|
|
|
|
Close #464.
|
|
|
|
* 'reimported' is emitted when the same name is imported from different module.
|
|
|
|
Close #162.
|
|
|
|
* Add a new recommendation checker, 'consider-iterating-dictionary', which is emitted
|
|
which is emitted when a dictionary is iterated through .keys().
|
|
|
|
Close #699
|
|
|
|
* Use the configparser backport for Python 2
|
|
|
|
This fixes a problem we were having with comments inside values, which is fixed
|
|
in Python 3's configparser.
|
|
Close #828
|
|
|
|
* A new error was added, 'invalid-length-returned', when the `__len__`
|
|
special method returned something else than a non-negative number.
|
|
|
|
Close issue #557
|
|
|
|
* Switch to using isort internally for wrong-import-order.
|
|
|
|
Closes #879.
|
|
|
|
* check_docs extension can find constructor parameters in __init__.
|
|
|
|
Closes #887.
|
|
|
|
* Don't warn about invalid-sequence-index if the indexed object has unknown base
|
|
classes.
|
|
|
|
Closes #867
|
|
|
|
* Don't crash when checking, for super-init-not-called, a method defined in an if block.
|
|
|
|
* Do not emit import-error or no-name-in-module for fallback import blocks by default.
|
|
|
|
Until now, we warned with these errors when a fallback import block (a TryExcept block
|
|
that contained imports for Python 2 and 3) was found, but this gets cumbersome when
|
|
trying to write compatible code. As such, we don't check these blocks by default,
|
|
but the analysis can be enforced by using the new ``--analyse-fallback-block`` flag.
|
|
|
|
Close #769.
|
|
|
|
|
|
What's New in Pylint 1.5.5?
|
|
===========================
|
|
|
|
Release date: 2016-03-21
|
|
|
|
|
|
* Let visit_importfrom from Python 3 porting checker be called when everything is disabled
|
|
|
|
Because the visit method was filtering the patterns it was expecting to be activated,
|
|
it didn't run when everything but one pattern was disabled, leading to spurious false
|
|
positives
|
|
|
|
Close #852
|
|
|
|
* Don't emit unsubscriptable-value for classes with unknown
|
|
base classes.
|
|
|
|
Close #776.
|
|
|
|
* Use an OrderedDict for storing the configuration elements
|
|
|
|
This fixes an issue related to impredictible order of the disable / enable
|
|
elements from a config file. In certain cases, the disable was coming before
|
|
the enable which resulted in classes of errors to be enabled, even though the intention
|
|
was to disable them. The best example for this was in the context of running multiple
|
|
processes, each one of it having different enables / disables that affected the output.
|
|
|
|
Close #815
|
|
|
|
* Don't consider bare and broad except handlers as ignoring NameError,
|
|
AttributeError and similar exceptions, in the context of checkers for
|
|
these issues.
|
|
|
|
Closes issue #826
|
|
|
|
|
|
What's New in Pylint 1.5.4?
|
|
===========================
|
|
|
|
Release date: 2016-01-15
|
|
|
|
|
|
* Merge StringMethodChecker with StringFormatChecker. This fixes a
|
|
bug where disabling all the messages and enabling only a handful of
|
|
messages from the StringFormatChecker would have resulted in no
|
|
messages at all.
|
|
|
|
* Don't apply unneeded-not over sets.
|
|
|
|
|
|
What's New in Pylint 1.5.3?
|
|
===========================
|
|
|
|
Release date: 2016-01-11
|
|
|
|
* Handle the import fallback idiom with regard to wrong-import-order.
|
|
|
|
Closes issue #750.
|
|
|
|
* Decouple the displaying of reports from the displaying of messages
|
|
|
|
Some reporters are aggregating the messages instead of displaying
|
|
them when they are available. The actual displaying was conflatted
|
|
in the generate_reports. Unfortunately this behaviour was flaky
|
|
and in the case of the JSON reporter, the messages weren't shown
|
|
at all if a file had syntax errors or if it was missing.
|
|
In order to fix this, the aggregated messages can now be
|
|
displayed with Reporter.display_message, while the reports are
|
|
displayed with display_reports.
|
|
|
|
Closes issues #766 and #765.
|
|
|
|
* Ignore function calls with variadic arguments without a context.
|
|
|
|
Inferring variadic positional arguments and keyword arguments
|
|
will result into empty Tuples and Dicts, which can lead in
|
|
some cases to false positives with regard to no-value-for-parameter.
|
|
In order to avoid this, until we'll have support for call context
|
|
propagation, we're ignoring such cases if detected.
|
|
Closes issue #722.
|
|
|
|
* Treat AsyncFunctionDef just like FunctionDef nodes,
|
|
by implementing visit_asyncfunctiondef in terms of
|
|
visit_functiondef.
|
|
|
|
Closes issue #767.
|
|
|
|
* Take in account kwonlyargs when verifying that arguments
|
|
are defined with the check_docs extension.
|
|
|
|
Closes issue #745.
|
|
|
|
* Suppress reporting 'unneeded-not' inside `__ne__` methods
|
|
|
|
Closes issue #749.
|
|
|
|
|
|
What's New in Pylint 1.5.2?
|
|
===========================
|
|
|
|
Release date: 2015-12-21
|
|
|
|
* Don't crash if graphviz is not installed, instead emit a
|
|
warning letting the user to know.
|
|
|
|
Closes issue #168.
|
|
|
|
* Accept only functions and methods for the deprecated-method checker.
|
|
|
|
This prevents a crash which can occur when an object doesn't have
|
|
.qname() method after the inference.
|
|
|
|
* Don't emit super-on-old-class on classes with unknown bases.
|
|
Closes issue #721.
|
|
|
|
* Allow statements in `if` or `try` blocks containing imports.
|
|
|
|
Closes issue #714.
|
|
|
|
|
|
What's New in Pylint 1.5.1?
|
|
===========================
|
|
|
|
Release date: 2015-12-02
|
|
|
|
|
|
* Fix a crash which occurred when old visit methods are encountered
|
|
in plugin modules. Closes issue #711.
|
|
|
|
* Add wrong-import-position to check_messages's decorator arguments
|
|
for ImportChecker.leave_module
|
|
This fixes an esoteric bug which occurs when ungrouped-imports and
|
|
wrong-import-order are disabled and pylint is executed on multiple files.
|
|
What happens is that without wrong-import-position in check_messages,
|
|
leave_module will never be called, which means that the first non-import node
|
|
from other files might leak into the current file,
|
|
leading to wrong-import-position being emitted by pylint.
|
|
|
|
* Fix a crash which occurred when old visit methods are encountered
|
|
in plugin modules. Closes issue #711.
|
|
|
|
* Don't emit import-self and cyclic-import for relative imports
|
|
of modules with the same name as the package itself.
|
|
Closes issues #708 and #706.
|
|
|
|
|
|
What's New in Pylint 1.5.0?
|
|
===========================
|
|
|
|
Release date: 2015-11-29
|
|
|
|
|
|
* Added multiple warnings related to imports. 'wrong-import-order'
|
|
is emitted when PEP 8 recommendations regarding imports are not
|
|
respected (that is, standard imports should be followed by third-party
|
|
imports and then by local imports). 'ungrouped-imports' is emitted
|
|
when imports from the same package or module are not placed
|
|
together, but scattered around in the code. 'wrong-import-position'
|
|
is emitted when code is mixed with imports, being recommended for the
|
|
latter to be at the top of the file, in order to figure out easier by
|
|
a human reader what dependencies a module has.
|
|
Closes issue #692.
|
|
|
|
* Added a new refactoring warning, 'unneeded-not', emitted
|
|
when an expression with the not operator could be simplified.
|
|
Closes issue #670.
|
|
|
|
* Added a new refactoring warning, 'simplifiable-if-statement',
|
|
used when an if statement could be reduced to a boolean evaluation
|
|
of its test. Closes issue #698.
|
|
|
|
* Added a new refactoring warning, 'too-many-boolean-expressions',
|
|
used when an if statement contains too many boolean expressions,
|
|
which makes the code less maintainable and harder to understand.
|
|
Closes issue #677.
|
|
|
|
* Property methods are shown as attributes instead of functions in
|
|
pyreverse class diagrams. Closes Issue #284
|
|
|
|
* Add a new refactoring error, 'too-many-nested-blocks', which is emitted
|
|
when a function or a method has too many nested blocks, which makes the
|
|
code less readable and harder to understand. Closes issue #668.
|
|
|
|
* Add a new error, 'unsubscriptable-object', that is emitted when
|
|
value used in subscription expression doesn't support subscription
|
|
(i.e. doesn't define __getitem__ method).
|
|
|
|
* Don't warn about abstract classes instantiated in their own
|
|
body. Closes issue #627.
|
|
|
|
* Obsolete options are not present by default in the generated
|
|
configuration file. Closes issue #632.
|
|
|
|
* non-iterator-returned can detect classes with iterator-metaclasses.
|
|
Closes issue #679.
|
|
|
|
* Add a new error, 'unsupported-membership-test', emitted when value
|
|
to the right of the 'in' operator doesn't support membership test
|
|
protocol (i.e. doesn't define __contains__/__iter__/__getitem__)
|
|
|
|
* Add new errors, 'not-an-iterable', emitted when non-iterable value
|
|
is used in an iterating context (starargs, for-statement,
|
|
comprehensions, etc), and 'not-a-mapping', emitted when non-mapping
|
|
value is used in a mapping context. Closes issue #563.
|
|
|
|
* Make 'no-self-use' checker not emit a warning if there is a 'super()'
|
|
call inside the method.
|
|
Closes issue #667.
|
|
|
|
* Add checker to identify multiple imports on one line.
|
|
Closes issue #598.
|
|
|
|
* Fix unused-argument false positive when the "+=" operator is used.
|
|
Closes issue #518.
|
|
|
|
* Don't emit import-error for ignored modules. PyLint will not emit import
|
|
errors for any import which is, or is a subpackage of, a module in
|
|
the ignored-modules list. Closes issue #223.
|
|
|
|
* Fix unused-import false positive when the import is used in a
|
|
class assignment. Closes issue #475
|
|
|
|
* Add a new error, 'not-context-manager', emitted when something
|
|
that doesn't implement __enter__ and __exit__ is used in a with
|
|
statement.
|
|
|
|
* Add a new warning, 'confusing-with-statement', emitted by the
|
|
base checker, when an ambiguous looking with statement is used.
|
|
For example `with open() as first, second` which looks like a
|
|
tuple assignment but is actually 2 context managers.
|
|
|
|
* Add a new warning, 'duplicate-except', emitted when there is an
|
|
exception handler which handles an exception type that was handled
|
|
before. Closes issue #485.
|
|
|
|
* A couple of warnings got promoted to errors, since they could uncover
|
|
potential bugs in the code. These warnings are: assignment-from-none,
|
|
unbalanced-tuple-unpacking, unpacking-non-sequence, non-iterator-returned.
|
|
Closes issue #388.
|
|
|
|
* Allow ending a pragma control with a semicolon. In this way, users
|
|
can continue a pragma control with a reason for why it is used,
|
|
as in `# pylint: disable=old-style-class;reason=...`.
|
|
Closes issue #449.
|
|
|
|
* --jobs can be used with --load-plugins now. Closes issue #456.
|
|
|
|
* Improve the performance of --jobs when dealing only with a package
|
|
name. Closes issue #479.
|
|
|
|
* Don't emit an unused-wildcard-import when the imported name comes
|
|
from another module and it is in fact a __future__ name.
|
|
|
|
* The colorized reporter now works on Windows. Closes issue #96.
|
|
|
|
* Remove pointless-except warning. It was previously disabled by
|
|
default and it wasn't very useful. Closes issue #506.
|
|
|
|
* Fix a crash on Python 3 related to the string checker, which
|
|
crashed when it encountered a bytes string with a .format
|
|
method called.
|
|
|
|
* Don't warn about no-self-use for builtin properties.
|
|
|
|
* Fix a false positive for bad-reversed-sequence, when a subclass
|
|
of a `dict` provides a __reversed__ method.
|
|
|
|
* Change the default no-docstring-rgx so missing-docstring isn't
|
|
emitted for private functions.
|
|
|
|
* Don't emit redefined-outer-name for __future__ directives.
|
|
Closes issue #520.
|
|
|
|
* Provide some hints for the bad-builtin message. Closes issue #522.
|
|
|
|
* When checking for invalid arguments to a callable, in typecheck.py,
|
|
look up for the __init__ in case the found __new__ comes from builtins.
|
|
|
|
Since the __new__ comes from builtins, it will not have attached any
|
|
information regarding what parameters it expects, so the check
|
|
will be useless. Retrieving __init__ in that case will at least
|
|
detect a couple of false negatives. Closes issue #429.
|
|
|
|
* Don't emit no-member for classes with unknown bases.
|
|
|
|
Since we don't know what those bases might add, we simply ignore
|
|
the error in this case.
|
|
|
|
* Lookup in the implicit metaclass when checking for no-member,
|
|
if the class in question has an implicit metaclass, which is
|
|
True for new style classes. Closes issue #438.
|
|
|
|
* Add two new warnings, duplicate-bases and inconsistent-mro.
|
|
|
|
duplicate-bases is emitted when a class has the same bases
|
|
listed more than once in its bases definition, while inconsistent-mro
|
|
is emitted when no sane mro hierarchy can be determined. Closes issue #526.
|
|
|
|
* Remove interface-not-implemented warning. Closes issue #532.
|
|
|
|
* Remove the rest of interface checks: interface-is-not-class,
|
|
missing-interface-method, unresolved-interface. The reason is that
|
|
its better to start recommending ABCs instead of the old Zope era
|
|
of interfaces. One side effect of this change is that ignore-iface-methods
|
|
becomes a noop, it's deprecated and it will be removed at some time.
|
|
|
|
* Emit a proper deprecation warning for reporters.BaseReporter.add_message.
|
|
|
|
The alternative way is to use handle_message. add_message will be removed in
|
|
Pylint 1.6.
|
|
|
|
* Added new module 'extensions' for optional checkers with the test
|
|
directory 'test/extensions' and documentation file 'doc/extensions.rst'.
|
|
|
|
* Added new checker 'extensions.check_docs' that verifies parameter
|
|
documention in Sphinx, Google, and Numpy style.
|
|
|
|
* Detect undefined variable cases, where the "definition" of an undefined
|
|
variable was in del statement. Instead of emitting used-before-assignment,
|
|
which is totally misleading, it now emits undefined-variable.
|
|
Closes issue #528.
|
|
|
|
* Don't emit attribute-defined-outside-init and access-member-before-definition
|
|
for mixin classes. Actual errors can occur in mixin classes, but this is
|
|
controlled by the ignore-mixin-members option. Closes issue #412.
|
|
|
|
* Improve the detection of undefined variables and variables used before
|
|
assignment for variables used as default arguments to function,
|
|
where the variable was first defined in the class scope.
|
|
Closes issue #342 and issue #404.
|
|
|
|
* Add a new warning, 'unexpected-special-method-signature', which is emitted
|
|
when a special method (dunder method) doesn't have the expected signature,
|
|
which can lead to actual errors in the application code.
|
|
Closes issue #253.
|
|
|
|
* Remove 'bad-context-manager' due to the inclusion of 'unexpected-special-method-signature'.
|
|
|
|
* Don't emit no-name-in-module if the import is guarded by an ImportError, Exception or
|
|
a bare except clause.
|
|
|
|
* Don't emit no-member if the attribute access node is protected by an
|
|
except handler, which handles AttributeError, Exception or it is a
|
|
bare except.
|
|
|
|
* Don't emit import-error if the import is guarded by an ImportError, Exception or a
|
|
bare except clause.
|
|
|
|
* Don't emit undefined-variable if the node is guarded by a NameError, Exception
|
|
or bare except clause.
|
|
|
|
* Add a new warning, 'using-constant-test', which is emitted when a conditional
|
|
statement (If, IfExp) uses a test which is always constant, such as numbers,
|
|
classes, functions etc. This is most likely an error from the user's part.
|
|
Closes issue #524.
|
|
|
|
* Don't emit 'raising-non-exception' when the exception has unknown
|
|
bases. We don't know what those bases actually are and it's better
|
|
to assume that the user knows what he is doing rather than emitting
|
|
a message which can be considered a false positive.
|
|
|
|
* Look for a .pylintrc configuration file in the current folder,
|
|
if pylintrc is not found. Dotted pylintrc files will not be searched
|
|
in the parents of the current folder, as it is done for pylintrc.
|
|
|
|
* Add a new error, 'invalid-unary-type-operand', emitted when
|
|
an unary operand is used on something which doesn't support that
|
|
operation (for instance, using the unary bitwise inversion operator
|
|
on an instance which doesn't implement __invert__).
|
|
|
|
* Take in consideration differences between arguments of various
|
|
type of functions (classmethods, staticmethods, properties)
|
|
when checking for `arguments-differ`. Closes issue #548.
|
|
|
|
* astroid.inspector was moved to pylint.pyreverse, since it belongs
|
|
there and it doesn't need to be in astroid.
|
|
|
|
* astroid.utils.LocalsVisitor was moved to pylint.pyreverse.LocalsVisitor.
|
|
|
|
* pylint.checkers.utils.excepts_import_error was removed.
|
|
Use pylint.chekcers.utils.error_of_type instead.
|
|
|
|
* Don't emit undefined-all-variables for nodes which can't be
|
|
inferred (YES nodes).
|
|
|
|
* yield-outside-func is also emitted for `yield from`.
|
|
|
|
* Add a new error, 'too-many-star-expressions', emitted when
|
|
there are more than one starred expression (`*x`) in an assignment.
|
|
The warning is emitted only on Python 3.
|
|
|
|
* Add a new error, 'invalid-star-assignment-target', emitted when
|
|
a starred expression (`*x`) is used as the lhs side of an assignment,
|
|
as in `*x = [1, 2]`. This is not a SyntaxError on Python 3 though.
|
|
|
|
* Detect a couple of objects which can't be base classes (bool,
|
|
slice, range and memoryview, which weren't detected until now).
|
|
|
|
* Add a new error for the Python 3 porting checker, `import-star-module-level`,
|
|
which is used when a star import is detected in another scope than the
|
|
module level, which is an error on Python 3. Using this will emit a
|
|
SyntaxWarning on Python 2.
|
|
|
|
* Add a new error, 'star-needs-assignment-target', emitted on Python 3 when
|
|
a Starred expression (`*x`) is not used in an assignment target. This is not
|
|
caught when parsing the AST on Python 3, so it needs to be a separate check.
|
|
|
|
* Add a new error, 'unsupported-binary-operation', emitted when
|
|
two a binary arithmetic operation is executed between two objects
|
|
which don't support it (a number plus a string for instance).
|
|
This is currently disabled, since the it exhibits way too many false
|
|
positives, but it will be reenabled as soon as possible.
|
|
|
|
* New imported features from astroid into pyreverse: pyreverse.inspector.Project,
|
|
pyreverse.inspector.project_from_files and pyreverse.inspector.interfaces.
|
|
|
|
These were moved since they didn't belong in astroid.
|
|
|
|
* Enable misplaced-future for Python 3. Closes issue #580.
|
|
|
|
* Add a new error, 'nonlocal-and-global', which is emitted when a
|
|
name is found to be both nonlocal and global in the same scope.
|
|
Closes issue #581.
|
|
|
|
* ignored-classes option can work with qualified names (ignored-classes=optparse.Values)
|
|
Closes issue #297.
|
|
|
|
* ignored-modules can work with qualified names as well as with Unix pattern
|
|
matching for recursive ignoring. Closes issues #244.
|
|
|
|
* Improve detection of relative imports in non-packages, as well as importing
|
|
missing modules with a relative import from a package.
|
|
|
|
* Don't emit no-init if not all the bases from a class are known.
|
|
Closes issue #604.
|
|
|
|
* --no-space-check option accepts `empty-line` as a possible option.
|
|
Closes issue #541.
|
|
|
|
* --generate-rcfile generates by default human readable symbols
|
|
for the --disable option. Closes issue #608.
|
|
|
|
* Improved the not-in-loop checker to properly detect more cases.
|
|
|
|
* Add a new error, 'continue-in-finally', which is emitted when
|
|
the `continue` keyword is found inside a `finally` clause, which
|
|
is a SyntaxError.
|
|
|
|
* The --zope flag is deprecated and it is slated for removal
|
|
in Pylint 1.6.
|
|
|
|
The reason behind this removal is the fact that it's a specialized
|
|
flag and there are solutions for the original problem:
|
|
use --generated-members with the members that causes problems
|
|
when using Zope or add AST transforms tailored to the zope
|
|
project.
|
|
|
|
At the same time, --include-ids and --symbols will also be removed
|
|
in Pylint 1.6. Closes issue #570.
|
|
|
|
* missing-module-attribute was removed and the corresponding
|
|
CLI option, required-attributes, which is slated for removal
|
|
in Pylint 1.6.
|
|
|
|
* missing-reversed-argument was removed.
|
|
|
|
The reason behind this is that this kind of errors should be
|
|
detected by the type checker for *all* the builtins and not
|
|
as a special case for the reversed builtin. This will happen
|
|
shortly in the future.
|
|
|
|
* --comment flag is obsolete and it will be removed in Pylint 1.6.
|
|
|
|
* --profile flag is obsolete and it will be removed in Pylint 1.6.
|
|
|
|
* Add a new error, 'misplaced-bare-raise'.
|
|
|
|
The error is used when a bare raise is not used inside an except clause.
|
|
This can generate a RuntimeError in Python, if there are no active exceptions
|
|
to be reraised. While it works in Python 2 due to the fact that the exception
|
|
leaks outside of the except block, it's nevertheless a behaviour that
|
|
a user shouldn't depend upon, since it's not obvious to the reader of the code
|
|
what exception will be raised and it will not be compatible with Python 3 anyhow.
|
|
Closes issue #633.
|
|
|
|
* Bring logilab-common's ureports into pylint.reporters.
|
|
|
|
With this change, we moved away from depending on logilab-common,
|
|
having in Pylint all the components that were used from logilab-common.
|
|
The API should be considered an implementation detail and can change at
|
|
some point in the future.
|
|
Closes issue #621.
|
|
|
|
* `reimported` is emitted for reimported objects on the same line.
|
|
|
|
Closes issue #639.
|
|
|
|
* Abbreviations of command line options are not supported anymore.
|
|
|
|
Using abbreviations for CLI options was never considered to be
|
|
a feature of pylint, this fact being only a side effect of using optparse.
|
|
As this was the case, using --load-plugin or other abbreviation
|
|
for --load-plugins never actually worked, while it also didn't raise
|
|
an error. Closes issue #424.
|
|
|
|
* Add a new error, 'nonlocal-without-binding'
|
|
|
|
The error is emitted on Python 3 when a nonlocal name is not bound
|
|
to any variable in the parents scopes. Closes issue #582.
|
|
|
|
* 'deprecated-module' can be shown for modules which aren't
|
|
available. Closes issue #362.
|
|
|
|
* Don't consider a class abstract if its members can't
|
|
be properly inferred.
|
|
|
|
This fixes a false positive related to abstract-class-instantiated.
|
|
Closes issue #648.
|
|
|
|
* Add a new checker for the async features added by PEP 492.
|
|
|
|
* Add a new error, 'yield-inside-async-function', emitted on
|
|
Python 3.5 and upwards when the `yield` statement is found inside
|
|
a new coroutine function (PEP 492).
|
|
|
|
* Add a new error, 'not-async-context-manager', emitted when
|
|
an async context manager block is used with an object which doesn't
|
|
support this protocol (PEP 492).
|
|
|
|
* Add a new convention warning, 'singleton-comparison', emitted when
|
|
comparison to True, False or None is found.
|
|
|
|
* Don't emit 'assigning-non-slot' for descriptors. Closes issue #652.
|
|
|
|
* Add a new error, 'repeated-keyword', when a keyword argument is passed
|
|
multiple times into a function call.
|
|
|
|
This is similar with redundant-keyword-arg, but it's mildly different
|
|
that it needs to be a separate error.
|
|
|
|
* --enable=all can now be used. Closes issue #142.
|
|
|
|
* Add a new convention message, 'misplaced-comparison-constant',
|
|
emitted when a constant is placed in the left hand side of a comparison,
|
|
as in '5 == func()'. This is also called Yoda condition, since the
|
|
flow of code reminds of the Star Wars green character, conditions usually
|
|
encountered in languages with variabile assignments in conditional
|
|
statements.
|
|
|
|
* Add a new convention message, 'consider-using-enumerate', which is
|
|
emitted when code that uses `range` and `len` for iterating is encountered.
|
|
Closes issue #684.
|
|
|
|
* Added two new refactoring messages, 'no-classmethod-decorator' and
|
|
'no-staticmethod-decorator', which are emitted when a static method or a class
|
|
method is declared without using decorators syntax.
|
|
|
|
Closes issue #675.
|
|
|
|
|
|
|
|
What's New in Pylint 1.4.3?
|
|
===========================
|
|
|
|
Release date: 2015-03-14
|
|
|
|
|
|
* Remove three warnings: star-args, abstract-class-little-used,
|
|
abstract-class-not-used. These warnings don't add any real value
|
|
and they don't imply errors or problems in the code.
|
|
|
|
* Added a new option for controlling the peephole optimizer in astroid.
|
|
The option ``--optimize-ast`` will control the peephole optimizer,
|
|
which is used to optimize a couple of AST subtrees. The current problem
|
|
solved by the peephole optimizer is when multiple joined strings,
|
|
with the addition operator, are encountered. If the numbers of such
|
|
strings is high enough, Pylint will then fail with a maximum recursion
|
|
depth exceeded error, due to its visitor architecture. The peephole
|
|
just transforms such calls, if it can, into the final resulting string
|
|
and this exhibit a problem, because the visit_binop method stops being
|
|
called (in the optimized AST it will be a Const node).
|
|
|
|
|
|
What's New in Pylint 1.4.2?
|
|
===========================
|
|
|
|
Release date: 2015-03-11
|
|
|
|
* Don't require a docstring for empty modules. Closes issue #261.
|
|
|
|
* Fix a false positive with `too-few-format-args` string warning,
|
|
emitted when the string format contained a normal positional
|
|
argument ('{0}'), mixed with a positional argument which did
|
|
an attribute access ('{0.__class__}').
|
|
Closes issue #463.
|
|
|
|
* Take in account all the methods from the ancestors
|
|
when checking for too-few-public-methods. Closes issue #471.
|
|
|
|
* Catch enchant errors and emit 'invalid-characters-in-docstring'
|
|
when checking for spelling errors. Closes issue #469.
|
|
|
|
* Use all the inferred statements for the super-init-not-called
|
|
check. Closes issue #389.
|
|
|
|
* Add a new warning, 'unichr-builtin', emitted by the Python 3
|
|
porting checker, when the unichr builtin is found. Closes issue #472.
|
|
|
|
* Add a new warning, 'intern-builtin', emitted by the Python 3
|
|
porting checker, when the intern builtin is found. Closes issue #473.
|
|
|
|
* Add support for editable installations.
|
|
|
|
* The HTML output accepts the `--msg-template` option. Patch by
|
|
Dan Goldsmith.
|
|
|
|
* Add 'map-builtin-not-iterating' (replacing 'implicit-map-evaluation'),
|
|
'zip-builtin-not-iterating', 'range-builtin-not-iterating', and
|
|
'filter-builtin-not-iterating' which are emitted by `--py3k` when the
|
|
appropriate built-in is not used in an iterating context (semantics
|
|
taken from 2to3).
|
|
|
|
* Add a new warning, 'unidiomatic-typecheck', emitted when an explicit
|
|
typecheck uses type() instead of isinstance(). For example,
|
|
`type(x) == Y` instead of `isinstance(x, Y)`. Patch by Chris Rebert.
|
|
Closes issue #299.
|
|
|
|
* Add support for combining the Python 3 checker mode with the --jobs
|
|
flag (--py3k and --jobs). Closes issue #467.
|
|
|
|
* Add a new warning for the Python 3 porting checker, 'using-cmp-argument',
|
|
emitted when the `cmp` argument for the `list.sort` or `sorted builtin`
|
|
is encountered.
|
|
|
|
* Make the --py3k flag commutative with the -E flag. Also, this patch
|
|
fixes the leaks of error messages from the Python 3 checker when
|
|
the errors mode was activated. Closes issue #437.
|
|
|
|
|
|
What's New in Pylint 1.4.1?
|
|
===========================
|
|
|
|
Release date: 2015-01-16
|
|
|
|
* Look only in the current function's scope for bad-super-call.
|
|
Closes issue #403.
|
|
|
|
* Check the return of properties when checking for not-callable.
|
|
Closes issue #406.
|
|
|
|
* Warn about using the input() or round() built-ins for Python 3.
|
|
Closes issue #411.
|
|
|
|
* Proper abstract method lookup while checking for
|
|
abstract-class-instantiated. Closes issue #401.
|
|
|
|
* Use a mro traversal for finding abstract methods. Closes issue #415.
|
|
|
|
* Fix a false positive with catching-non-exception and tuples of
|
|
exceptions.
|
|
|
|
* Fix a false negative with raising-non-exception, when the raise used
|
|
an uninferrable exception context.
|
|
|
|
* Fix a false positive on Python 2 for raising-bad-type, when
|
|
raising tuples in the form 'raise (ZeroDivisionError, None)'.
|
|
|
|
* Fix a false positive with invalid-slots-objects, where the slot entry
|
|
was a unicode string on Python 2. Closes issue #421.
|
|
|
|
* Add a new warning, 'redundant-unittest-assert', emitted when using
|
|
unittest's methods assertTrue and assertFalse with constant value
|
|
as argument. Patch by Vlad Temian.
|
|
|
|
* Add a new JSON reporter, usable through -f flag.
|
|
|
|
* Add the method names for the 'signature-differs' and 'argument-differs'
|
|
warnings. Closes issue #433.
|
|
|
|
* Don't compile test files when installing.
|
|
|
|
* Fix a crash which occurred when using multiple jobs and the files
|
|
given as argument didn't exist at all.
|
|
|
|
|
|
What's New in Pylint 1.4.0?
|
|
============================
|
|
|
|
Release date: 2014-11-23
|
|
|
|
|
|
* Added new options for controlling the loading of C extensions.
|
|
By default, only C extensions from the stdlib will be loaded
|
|
into the active Python interpreter for inspection, because they
|
|
can run arbitrary code on import. The option
|
|
`--extension-pkg-whitelist` can be used to specify modules
|
|
or packages that are safe to load.
|
|
|
|
* Change default max-line-length to 100 rather than 80
|
|
|
|
* Drop BaseRawChecker class which were only there for backward
|
|
compat for a while now
|
|
|
|
* Don't try to analyze string formatting with objects coming from
|
|
function arguments. Closes issue #373.
|
|
|
|
* Port source code to be Python 2/3 compatible. This drops the
|
|
need for 2to3, but does drop support for Python 2.5.
|
|
|
|
* Each message now comes with a confidence level attached, and
|
|
can be filtered base on this level. This allows to filter out
|
|
all messages that were emitted even though an inference failure
|
|
happened during checking.
|
|
|
|
* Improved presenting unused-import message. Closes issue #293.
|
|
|
|
* Add new checker for finding spelling errors. New messages:
|
|
wrong-spelling-in-comment, wrong-spelling-in-docstring.
|
|
New options: spelling-dict, spelling-ignore-words.
|
|
|
|
* Add new '-j' option for running checks in sub-processes.
|
|
|
|
* Added new checks for line endings if they are mixed (LF vs CRLF)
|
|
or if they are not as expected. New messages: mixed-line-endings,
|
|
unexpected-line-ending-format. New option: expected-line-ending-format.
|
|
|
|
* 'dangerous-default-value' no longer evaluates the value of the arguments,
|
|
which could result in long error messages or sensitive data being leaked.
|
|
Closes issue #282
|
|
|
|
* Fix a false positive with string formatting checker, when
|
|
encountering a string which uses only position-based arguments.
|
|
Closes issue #285.
|
|
|
|
* Fix a false positive with string formatting checker, when using
|
|
keyword argument packing. Closes issue #288.
|
|
|
|
* Proper handle class level scope for lambdas.
|
|
|
|
* Handle 'too-few-format-args' or 'too-many-format-args' for format
|
|
strings with both named and positional fields. Closes issue #286.
|
|
|
|
* Analyze only strings by the string format checker. Closes issue #287.
|
|
|
|
* Properly handle nested format string fields. Closes issue #294.
|
|
|
|
* Don't emit 'attribute-defined-outside-init' if the attribute
|
|
was set by a function call in a defining method. Closes issue #192.
|
|
|
|
* Properly handle unicode format strings for Python 2.
|
|
Closes issue #296.
|
|
|
|
* Don't emit 'import-error' if an import was protected by a try-except,
|
|
which excepted ImportError.
|
|
|
|
* Fix an 'unused-import' false positive, when the error was emitted
|
|
for all the members imported with 'from import' form.
|
|
Closes issue #304.
|
|
|
|
* Don't emit 'invalid-name' when assigning a name in an
|
|
ImportError handler. Closes issue #302.
|
|
|
|
* Don't count branches from nested functions.
|
|
|
|
* Fix a false positive with 'too-few-format-args', when the format
|
|
strings contains duplicate manual position arguments.
|
|
Closes issue #310.
|
|
|
|
* fixme regex handles comments without spaces after the hash.
|
|
Closes issue #311.
|
|
|
|
* Don't emit 'unused-import' when a special object is imported
|
|
(__all__, __doc__ etc.). Closes issue #309.
|
|
|
|
* Look in the metaclass, if defined, for members not found in the current
|
|
class. Closes issue #306.
|
|
|
|
* Don't emit 'protected-access' if the attribute is accessed using
|
|
a property defined at the class level.
|
|
|
|
* Detect calls of the parent's __init__, through a binded super() call.
|
|
|
|
* Check that a class has an explicitly defined metaclass before
|
|
emitting 'old-style-class' for Python 2.
|
|
|
|
* Emit 'catching-non-exception' for non-class nodes. Closes issue #303.
|
|
|
|
* Order of reporting is consistent.
|
|
|
|
* Add a new warning, 'boolean-datetime', emitted when an instance
|
|
of 'datetime.time' is used in a boolean context. Closes issue #239.
|
|
|
|
* Fix a crash which occurred while checking for 'method-hidden',
|
|
when the parent frame was something different than a function.
|
|
|
|
* Generate html output for missing files. Closes issue #320.
|
|
|
|
* Fix a false positive with 'too-many-format-args', when the format
|
|
string contains mixed attribute access arguments and manual
|
|
fields. Closes issue #322.
|
|
|
|
* Extend the cases where 'undefined-variable' and 'used-before-assignment'
|
|
can be detected. Closes issue #291.
|
|
|
|
* Add support for customising callback identifiers, by adding a new
|
|
'--callbacks' command line option. Closes issue #326.
|
|
|
|
* Add a new warning, 'logging-format-interpolation', emitted when .format()
|
|
string interpolation is used within logging function calls.
|
|
|
|
* Don't emit 'unbalanced-tuple-unpacking' when the rhs of the assignment
|
|
is a variable length argument. Closes issue #329.
|
|
|
|
* Add a new warning, 'inherit-non-class', emitted when a class inherits
|
|
from something which is not a class. Closes issue #331.
|
|
|
|
* Fix another false positives with 'undefined-variable', where the variable
|
|
can be found as a class assignment and used in a function annotation.
|
|
Closes issue #342.
|
|
|
|
* Handle assignment of the string format method to a variable.
|
|
Closes issue #351.
|
|
|
|
* Support wheel packaging format for PyPi. Closes issue #334.
|
|
|
|
* Check that various built-ins that do not exist in Python 3 are not
|
|
used: apply, basestring, buffer, cmp, coerce, execfile, file, long
|
|
raw_input, reduce, StandardError, unicode, reload and xrange.
|
|
|
|
* Warn for magic methods which are not used in any way in Python 3:
|
|
__coerce__, __delslice__, __getslice__, __setslice__, __cmp__,
|
|
__oct__, __nonzero__ and __hex__.
|
|
|
|
* Don't emit 'assigning-non-slot' when the assignment is for a property.
|
|
Closes issue #359.
|
|
|
|
* Fix for regression: '{path}' was no longer accepted in '--msg-template'.
|
|
|
|
* Report the percentage of all messages, not just for errors and warnings.
|
|
Closes issue #319.
|
|
|
|
* 'too-many-public-methods' is reported only for methods defined in a class,
|
|
not in its ancestors. Closes issue #248.
|
|
|
|
* 'too-many-lines' disable pragma can be located on any line, not only the
|
|
first. Closes issue #321.
|
|
|
|
* Warn in Python 2 when an import statement is found without a
|
|
corresponding `from __future__ import absolute_import`.
|
|
|
|
* Warn in Python 2 when a non-floor division operation is found without
|
|
a corresponding `from __future__ import division`.
|
|
|
|
* Add a new option, 'exclude-protected', for excluding members
|
|
from the protected-access warning. Closes issue #48.
|
|
|
|
* Warn in Python 2 when using dict.iter*(), dict.view*(); none of these
|
|
methods are available in Python 3.
|
|
|
|
* Warn in Python 2 when calling an object's next() method; Python 3 uses
|
|
__next__() instead.
|
|
|
|
* Warn when assigning to __metaclass__ at a class scope; in Python 3 a
|
|
metaclass is specified as an argument to the 'class' statement.
|
|
|
|
* Warn when performing parameter tuple unpacking; it is not supported in
|
|
Python 3.
|
|
|
|
* 'abstract-class-instantiated' is also emitted for Python 2.
|
|
It was previously disabled.
|
|
|
|
* Add 'long-suffix' error, emitted when encountering the long suffix
|
|
on numbers.
|
|
|
|
* Add support for disabling a checker, by specifying an 'enabled'
|
|
attribute on the checker class.
|
|
|
|
* Add a new CLI option, --py3k, for enabling Python 3 porting mode. This
|
|
mode will disable all other checkers and will emit warnings and
|
|
errors for constructs which are invalid or removed in Python 3.
|
|
|
|
* Add 'old-octal-literal' to Python 3 porting checker, emitted when
|
|
encountering octals with the old syntax.
|
|
|
|
* Add 'implicit-map-evaluation' to Python 3 porting checker, emitted
|
|
when encountering the use of map builtin, without explicit evaluation.
|
|
|
|
|
|
|
|
What's New in Pylint 1.3.0?
|
|
===========================
|
|
|
|
Release date: 2014-07-26
|
|
|
|
* Allow hanging continued indentation for implicitly concatenated
|
|
strings. Closes issue #232.
|
|
|
|
* Pylint works under Python 2.5 again, and its test suite passes.
|
|
|
|
* Fix some false positives for the cellvar-from-loop warnings.
|
|
Closes issue #233.
|
|
|
|
* Return new astroid class nodes when the inferencer can detect that
|
|
that result of a function invocation on a type (like `type` or
|
|
`abc.ABCMeta`) is requested. Closes #205.
|
|
|
|
* Emit 'undefined-variable' for undefined names when using the
|
|
Python 3 `metaclass=` argument.
|
|
|
|
* Checkers respect priority now. Close issue #229.
|
|
|
|
* Fix a false positive regarding W0511. Closes issue #149.
|
|
|
|
* Fix unused-import false positive with Python 3 metaclasses (#143).
|
|
|
|
* Don't warn with 'bad-format-character' when encountering
|
|
the 'a' format on Python 3.
|
|
|
|
* Add multiple checks for PEP 3101 advanced string formatting:
|
|
'bad-format-string', 'missing-format-argument-key',
|
|
'unused-format-string-argument', 'format-combined-specification',
|
|
'missing-format-attribute' and 'invalid-format-index'.
|
|
|
|
* Issue broad-except and bare-except even if the number
|
|
of except handlers is different than 1. Fixes issue #113.
|
|
|
|
* Issue attribute-defined-outside-init for all cases, not just
|
|
for the last assignment. Closes issue #262.
|
|
|
|
* Emit 'not-callable' when calling properties. Closes issue #268.
|
|
|
|
* Fix a false positive with unbalanced iterable unpacking,
|
|
when encountering starred nodes. Closes issue #273.
|
|
|
|
* Add new checks, 'invalid-slice-index' and 'invalid-sequence-index'
|
|
for invalid sequence and slice indices.
|
|
|
|
* Add 'assigning-non-slot' warning, which detects assignments to
|
|
attributes not defined in slots.
|
|
|
|
* Don't emit 'no-name-in-module' for ignored modules.
|
|
Closes issue #223.
|
|
|
|
* Fix an 'unused-variable' false positive, where the variable is
|
|
assigned through an import. Closes issue #196.
|
|
|
|
* Definition order is considered for classes, function arguments
|
|
and annotations. Closes issue #257.
|
|
|
|
* Don't emit 'unused-variable' when assigning to a nonlocal.
|
|
Closes issue #275.
|
|
|
|
* Do not let ImportError propagate from the import checker, leading to crash
|
|
in some namespace package related cases. Closes issue #203.
|
|
|
|
* Don't emit 'pointless-string-statement' for attribute docstrings.
|
|
Closes issue #193.
|
|
|
|
* Use the proper mode for pickle when opening and writing the stats file.
|
|
Closes issue #148.
|
|
|
|
* Don't emit hidden-method message when the attribute has been
|
|
monkey-patched, you're on your own when you do that.
|
|
|
|
* Only emit attribute-defined-outside-init for definition within the same
|
|
module as the offended class, avoiding to mangle the output in some cases.
|
|
|
|
* Don't emit 'unnecessary-lambda' if the body of the lambda call contains
|
|
call chaining. Closes issue #243.
|
|
|
|
* Don't emit 'missing-docstring' when the actual docstring uses `.format`.
|
|
Closes issue #281.
|
|
|
|
|
|
What's New in Pylint 1.2.1?
|
|
===========================
|
|
|
|
Release date: 2014-04-30
|
|
|
|
* Restore the ability to specify the init-hook option via the
|
|
configuration file, which was accidentally broken in 1.2.0.
|
|
|
|
* Add a new warning [bad-continuation] for badly indentend continued
|
|
lines.
|
|
|
|
* Emit [assignment-from-none] when the function contains bare returns.
|
|
Fixes BitBucket issue #191.
|
|
|
|
* Added a new warning for closing over variables that are
|
|
defined in loops. Fixes Bitbucket issue #176.
|
|
|
|
* Do not warn about \u escapes in string literals when Unicode literals
|
|
are used for Python 2.*. Fixes BitBucket issue #151.
|
|
|
|
* Extend the checking for unbalanced-tuple-unpacking and
|
|
unpacking-non-sequence to instance attribute unpacking as well.
|
|
|
|
* Fix explicit checking of python script (1.2 regression, #219)
|
|
|
|
* Restore --init-hook, renamed accidentally into --init-hooks in 1.2.0
|
|
(#211)
|
|
|
|
* Add 'indexing-exception' warning, which detects that indexing
|
|
an exception occurs in Python 2 (behaviour removed in Python 3).
|
|
|
|
|
|
What's New in Pylint 1.2.0?
|
|
===========================
|
|
|
|
Release date: 2014-04-18
|
|
|
|
* Pass the current python paths to pylint process when invoked via
|
|
epylint. Fixes BitBucket issue #133.
|
|
|
|
* Add -i / --include-ids and -s / --symbols back as completely ignored
|
|
options. Fixes BitBucket issue #180.
|
|
|
|
* Extend the number of cases in which logging calls are detected. Fixes
|
|
bitbucket issue #182.
|
|
|
|
* Improve pragma handling to not detect pylint:* strings in non-comments.
|
|
Fixes BitBucket issue #79.
|
|
|
|
* Do not crash with UnknownMessage if an unknown message ID/name appears
|
|
in disable or enable in the configuration. Patch by Cole Robinson.
|
|
Fixes bitbucket issue #170.
|
|
|
|
* Add new warning 'eval-used', checking that the builtin function `eval`
|
|
was used.
|
|
|
|
* Make it possible to show a naming hint for invalid name by setting
|
|
include-naming-hint. Also make the naming hints configurable. Fixes
|
|
BitBucket issue #138.
|
|
|
|
* Added support for enforcing multiple, but consistent name styles for
|
|
different name types inside a single module; based on a patch written
|
|
by morbo@google.com.
|
|
|
|
* Also warn about empty docstrings on overridden methods; contributed
|
|
by sebastianu@google.com.
|
|
|
|
* Also inspect arguments to constructor calls, and emit relevant
|
|
warnings; contributed by sebastianu@google.com.
|
|
|
|
* Added a new configuration option logging-modules to make the list
|
|
of module names that can be checked for 'logging-not-lazy' et. al.
|
|
configurable; contributed by morbo@google.com.
|
|
|
|
* ensure init-hooks is evaluated before other options, notably load-plugins
|
|
(#166)
|
|
|
|
* Python 2.5 support restored: fixed small issues preventing pylint to run
|
|
on python 2.5. Bitbucket issues #50 and #62.
|
|
|
|
* bitbucket #128: pylint doesn't crash when looking
|
|
for used-before-assignment in context manager
|
|
assignments.
|
|
|
|
* Add new warning, 'bad-reversed-sequence', for checking that the
|
|
reversed() builtin receive a sequence (implements __getitem__ and __len__,
|
|
without being a dict or a dict subclass) or an instance which implements
|
|
__reversed__.
|
|
|
|
* Mark `file` as a bad function when using python2 (closes #8).
|
|
|
|
* Add new warning 'bad-exception-context', checking
|
|
that `raise ... from ...` uses a proper exception context
|
|
(None or an exception).
|
|
|
|
* Enhance the check for 'used-before-assignment' to look
|
|
for 'nonlocal' uses.
|
|
|
|
* Emit 'undefined-all-variable' if a package's __all__
|
|
variable contains a missing submodule (closes #126).
|
|
|
|
* Add a new warning 'abstract-class-instantiated' for checking
|
|
that abstract classes created with `abc` module and
|
|
with abstract methods are instantied.
|
|
|
|
* Do not warn about 'return-arg-in-generator' in Python 3.3+.
|
|
|
|
* Do not warn about 'abstract-method' when the abstract method
|
|
is implemented through assignment (#155).
|
|
|
|
* Improve cyclic import detection in the case of packages, patch by Buck
|
|
Golemon
|
|
|
|
* Add new warnings for checking proper class __slots__:
|
|
`invalid-slots-object` and `invalid-slots`.
|
|
|
|
* Search for rc file in `~/.config/pylintrc` if `~/.pylintrc`
|
|
doesn't exists (#121)
|
|
|
|
* Don't register the newstyle checker w/ python >= 3
|
|
|
|
* Fix unused-import false positive w/ augment assignment (#78)
|
|
|
|
* Fix access-member-before-definition false negative wrt aug assign (#164)
|
|
|
|
* Do not attempt to analyze non python file, eg .so file (#122)
|
|
|
|
|
|
What's New in Pylint 1.1.0?
|
|
===========================
|
|
|
|
Release date: 2013-12-22
|
|
|
|
* Add new check for use of deprecated pragma directives "pylint:disable-msg"
|
|
or "pylint:enable-msg" (I0022, deprecated-pragma) which was previously
|
|
emitted as a regular warn().
|
|
|
|
* Avoid false used-before-assignment for except handler defined
|
|
identifier used on the same line (#111).
|
|
|
|
* Combine 'no-space-after-operator', 'no-space-after-comma' and
|
|
'no-space-before-operator' into a new warning 'bad-whitespace'.
|
|
|
|
* Add a new warning 'superfluous-parens' for unnecessary
|
|
parentheses after certain keywords.
|
|
|
|
* Fix a potential crash in the redefine-in-handler warning
|
|
if the redefined name is a nested getattr node.
|
|
|
|
* Add a new option for the multi-statement warning to
|
|
allow single-line if statements.
|
|
|
|
* Add 'bad-context-manager' error, checking that '__exit__'
|
|
special method accepts the right number of arguments.
|
|
|
|
* Run pylint as a python module 'python -m pylint' (anatoly techtonik).
|
|
|
|
* Check for non-exception classes inside an except clause.
|
|
|
|
* epylint support options to give to pylint after the file to analyze and
|
|
have basic input validation (bitbucket #53 and #54), patches provided by
|
|
felipeochoa and Brian Lane.
|
|
|
|
* Added a new warning, 'non-iterator-returned', for non-iterators
|
|
returned by '__iter__'.
|
|
|
|
* Add new checks for unpacking non-sequences in assignments
|
|
(unpacking-non-sequence) as well as unbalanced tuple unpacking
|
|
(unbalanced-tuple-unpacking).
|
|
|
|
* useless-else-on-loop not emitted if there is a break in the
|
|
else clause of inner loop (#117).
|
|
|
|
* don't mark `input` as a bad function when using python3 (#110).
|
|
|
|
* badly-implemented-container caused several problems in its
|
|
current implementation. Deactivate it until we have something
|
|
better. See #112 for instance.
|
|
|
|
* Use attribute regexp for properties in python3, as in python2
|
|
|
|
* Create the PYLINTHOME directory when needed, it might fail and lead to
|
|
spurious warnings on import of pylint.config.
|
|
|
|
* Fix setup.py so that pylint properly install on Windows when using python3
|
|
|
|
* Various documentation fixes and enhancements
|
|
|
|
* Fix issue #55 (false-positive trailing-whitespace on Windows)
|
|
|
|
|
|
What's New in Pylint 1.0.0?
|
|
===========================
|
|
|
|
Release date: 2013-08-06
|
|
|
|
|
|
* Add check for the use of 'exec' function
|
|
|
|
* New --msg-template option to control output, deprecating "msvc" and
|
|
"parseable" output formats as well as killing `--include-ids` and `--symbols`
|
|
options
|
|
|
|
* Do not emit [fixme] for every line if the config value 'notes'
|
|
is empty, but [fixme] is enabled.
|
|
|
|
* Emit warnings about lines exceeding the column limit when
|
|
those lines are inside multiline docstrings.
|
|
|
|
* Do not double-check parameter names with the regex for parameters and
|
|
inline variables.
|
|
|
|
* Added a new warning missing-final-newline (C0304) for files missing
|
|
the final newline.
|
|
|
|
* Methods that are decorated as properties are now treated as attributes
|
|
for the purposes of name checking.
|
|
|
|
* Names of derived instance class member are not checked any more.
|
|
|
|
* Names in global statements are now checked against the regular
|
|
expression for constants.
|
|
|
|
* For toplevel name assignment, the class name regex will be used if
|
|
pylint can detect that value on the right-hand side is a class
|
|
(like collections.namedtuple()).
|
|
|
|
* Simplified invalid-name message
|
|
|
|
* Added a new warning invalid-encoded-data (W0512) for files that
|
|
contain data that cannot be decoded with the specified or
|
|
default encoding.
|
|
|
|
* New warning bad-open-mode (W1501) for calls to open (or file) that
|
|
specify invalid open modes (Original implementation by Sasha Issayev).
|
|
|
|
* New warning old-style-class (C1001) for classes that do not have any
|
|
base class.
|
|
|
|
* Add new name type 'class_attribute' for attributes defined
|
|
in class scope. By default, allow both const and variable names.
|
|
|
|
* New warning trailing-whitespace (C0303) that warns about
|
|
trailing whitespace.
|
|
|
|
* Added a new warning unpacking-in-except (W0712) about unpacking
|
|
exceptions in handlers, which is unsupported in Python 3.
|
|
|
|
* Add a configuration option for missing-docstring to
|
|
optionally exempt short functions/methods/classes from
|
|
the check.
|
|
|
|
* Add the type of the offending node to missing-docstring
|
|
and empty-docstring.
|
|
|
|
* New utility classes for per-checker unittests in testutils.py
|
|
|
|
* Do not warn about redefinitions of variables that match the
|
|
dummy regex.
|
|
|
|
* Do not treat all variables starting with _ as dummy variables,
|
|
only _ itself.
|
|
|
|
* Make the line-too-long warning configurable by adding a regex for lines
|
|
for with the length limit should not be enforced
|
|
|
|
* Do not warn about a long line if a pylint disable
|
|
option brings it above the length limit
|
|
|
|
* Do not flag names in nested with statements as undefined.
|
|
|
|
* Added a new warning 'old-raise-syntax' for the deprecated syntax
|
|
raise Exception, args
|
|
|
|
* Support for PEP 3102 and new missing-kwoa (E1125) message for missing
|
|
mandatory keyword argument (logilab.org's #107788)
|
|
|
|
* Fix spelling of max-branchs option, now max-branches
|
|
|
|
* Added a new base class and interface for checkers that work on the
|
|
tokens rather than the syntax, and only tokenize the input file
|
|
once.
|
|
|
|
* Follow astng renaming to astroid
|
|
|
|
* bitbucket #37: check for unbalanced unpacking in assignments
|
|
|
|
* bitbucket #25: fix incomplete-protocol false positive for read-only
|
|
containers like tuple
|
|
|
|
* bitbucket #16: fix False positive E1003 on Python 3 for argument-less super()
|
|
|
|
* bitbucket #6: put back documentation in source distribution
|
|
|
|
* bitbucket #15: epylint shouldn't hang anymore when there is a large
|
|
output on pylint'stderr
|
|
|
|
* bitbucket #7: fix epylint w/ python3
|
|
|
|
* bitbucket #3: remove string module from the default list of deprecated
|
|
modules
|
|
|
|
|
|
What's New in Pylint 0.28.0?
|
|
============================
|
|
|
|
Release date: 2013-04-25
|
|
|
|
* bitbucket #1: fix "dictionary changed size during iteration" crash
|
|
|
|
* #74013: new E1310[bad-str-strip-call] message warning when a call to a
|
|
{l,r,}strip method contains duplicate characters (patch by Torsten Marek)
|
|
|
|
* #123233: new E0108[duplicate-argument-name] message reporting duplicate
|
|
argument names
|
|
|
|
* #81378: emit W0120[useless-else-on-loop] for loops without break
|
|
|
|
* #124660: internal dependencies should not appear in external dependencies
|
|
report
|
|
|
|
* #124662: fix name error causing crash when symbols are included in output
|
|
messages
|
|
|
|
* #123285: apply pragmas for warnings attached to lines to physical source
|
|
code lines
|
|
|
|
* #123259: do not emit E0105 for yield expressions inside lambdas
|
|
|
|
* #123892: don't crash when attempting to show source code line that can't
|
|
be encoded with the current locale settings
|
|
|
|
* Simplify checks for dangerous default values by unifying tests for all
|
|
different mutable compound literals.
|
|
|
|
* Improve the description for E1124[redundant-keyword-arg]
|
|
|
|
|
|
What's New in Pylint 0.27.0?
|
|
============================
|
|
|
|
Release date: 2013-02-26
|
|
|
|
* #20693: replace pylint.el by Ian Eure version (patch by J.Kotta)
|
|
|
|
* #105327: add support for --disable=all option and deprecate the
|
|
'disable-all' inline directive in favour of 'skip-file' (patch by
|
|
A.Fayolle)
|
|
|
|
* #110840: add messages I0020 and I0021 for reporting of suppressed
|
|
messages and useless suppression pragmas. (patch by Torsten Marek)
|
|
|
|
* #112728: add warning E0604 for non-string objects in __all__
|
|
(patch by Torsten Marek)
|
|
|
|
* #120657: add warning W0110/deprecated-lambda when a map/filter
|
|
of a lambda could be a comprehension (patch by Martin Pool)
|
|
|
|
* #113231: logging checker now looks at instances of Logger classes
|
|
in addition to the base logging module. (patch by Mike Bryant)
|
|
|
|
* #111799: don't warn about octal escape sequence, but warn about \o
|
|
which is not octal in Python (patch by Martin Pool)
|
|
|
|
* #110839: bind <F5> to Run button in pylint-gui
|
|
|
|
* #115580: fix erroneous W0212 (access to protected member) on super call
|
|
(patch by Martin Pool)
|
|
|
|
* #110853: fix a crash when an __init__ method in a base class has been
|
|
created by assignment rather than direct function definition (patch by
|
|
Torsten Marek)
|
|
|
|
* #110838: fix pylint-gui crash when include-ids is activated (patch by
|
|
Omega Weapon)
|
|
|
|
* #112667: fix emission of reimport warnings for mixed imports and extend
|
|
the testcase (patch by Torsten Marek)
|
|
|
|
* #112698: fix crash related to non-inferable __all__ attributes and
|
|
invalid __all__ contents (patch by Torsten Marek)
|
|
|
|
* Python 3 related fixes:
|
|
|
|
* #110213: fix import of checkers broken with python 3.3, causing
|
|
"No such message id W0704" breakage
|
|
|
|
* #120635: redefine cmp function used in pylint.reporters
|
|
|
|
* Include full warning id for I0020 and I0021 and make sure to flush
|
|
warnings after each module, not at the end of the pylint run.
|
|
(patch by Torsten Marek)
|
|
|
|
* Changed the regular expression for inline options so that it must be
|
|
preceded by a # (patch by Torsten Marek)
|
|
|
|
* Make dot output for import graph predictable and not depend
|
|
on ordering of strings in hashes. (patch by Torsten Marek)
|
|
|
|
* Add hooks for import path setup and move pylint's sys.path
|
|
modifications into them. (patch by Torsten Marek)
|
|
|
|
|
|
What's New in Pylint 0.26.0?
|
|
============================
|
|
|
|
Release date: 2012-10-05
|
|
|
|
* #106534: add --ignore-imports option to code similarity checking
|
|
and 'symilar' command line tool (patch by Ry4an Brase)
|
|
|
|
* #104571: check for anomalous backslash escape, introducing new
|
|
W1401 and W1402 messages (patch by Martin Pool)
|
|
|
|
* #100707: check for boolop being used as exception class, introducing
|
|
new W0711 message (patch by Tim Hatch)
|
|
|
|
* #4014: improve checking of metaclass methods first args, introducing
|
|
new C0204 message (patch by lothiraldan@gmail.com finalized by sthenault)
|
|
|
|
* #4685: check for consistency of a module's __all__ variable,
|
|
introducing new E0603 message
|
|
|
|
* #105337: allow custom reporter in output-format (patch by Kevin Jing Qiu)
|
|
|
|
* #104420: check for protocol completness and avoid false R0903
|
|
(patch by Peter Hammond)
|
|
|
|
* #100654: fix grammatical error for W0332 message (using 'l' as
|
|
long int identifier)
|
|
|
|
* #103656: fix W0231 false positive for missing call to object.__init__
|
|
(patch by lothiraldan@gmail.com)
|
|
|
|
* #63424: fix similarity report disabling by properly renaming it to RP0801
|
|
|
|
* #103949: create a console_scripts entry point to be used by
|
|
easy_install, buildout and pip
|
|
|
|
* fix cross-interpreter issue (non compatible access to __builtins__)
|
|
|
|
* stop including tests files in distribution, they causes crash when
|
|
installed with python3 (#72022, #82417, #76910)
|
|
|
|
|
|
What's New in Pylint 0.25.2?
|
|
============================
|
|
|
|
Release date: 2012-07-17
|
|
|
|
* #93591: Correctly emit warnings about clobbered variable names when an
|
|
except handler contains a tuple of names instead of a single name.
|
|
(patch by tmarek@google.com)
|
|
|
|
* #7394: W0212 (access to protected member) not emitted on assigments
|
|
(patch by lothiraldan@gmail.com)
|
|
|
|
* #18772; no prototype consistency check for mangled methods (patch by
|
|
lothiraldan@gmail.com)
|
|
|
|
* #92911: emit W0102 when sets are used as default arguments in functions
|
|
(patch by tmarek@google.com)
|
|
|
|
* #77982: do not emit E0602 for loop variables of comprehensions
|
|
used as argument values inside a decorator (patch by tmarek@google.com)
|
|
|
|
* #89092: don't emit E0202 (attribute hiding a method) on @property methods
|
|
|
|
* #92584: fix pylint-gui crash due to internal API change
|
|
|
|
* #87192: fix crash when decorators are accessed through more than one dot
|
|
(for instance @a.b is fine, @a.b.c crash)
|
|
|
|
* #88914: fix parsing of --generated-members options, leading to crash
|
|
when using a regexp value set
|
|
|
|
* fix potential crashes with utils.safe_infer raising InferenceError
|
|
|
|
|
|
What's New in Pylint 0.25.1?
|
|
============================
|
|
|
|
Release date: 2011-12-08
|
|
|
|
* #81078: Warn if names in exception handlers clobber overwrite
|
|
existing names (patch by tmarek@google.com)
|
|
|
|
* #81113: Fix W0702 messages appearing with the wrong line number.
|
|
(patch by tmarek@google.com)
|
|
|
|
* #50461, #52020, #51222: Do not issue warnings when using 2.6's
|
|
property.setter/deleter functionality (patch by dneil@google.com)
|
|
|
|
* #9188, #4024: Do not trigger W0631 if a loop variable is assigned
|
|
in the else branch of a for loop.
|
|
|
|
|
|
What's New in Pylint 0.25.0?
|
|
============================
|
|
|
|
Release date: 2011-10-7
|
|
|
|
* #74742: make allowed name for first argument of class method configurable
|
|
(patch by Google)
|
|
|
|
* #74087: handle case where inference of a module return YES; this avoid
|
|
some cases of "TypeError: '_Yes' object does not support indexing" (patch
|
|
by Google)
|
|
|
|
* #74745: make "too general" exception names configurable (patch by Google)
|
|
|
|
* #74747: crash occurs when lookup up a special attribute in class scope
|
|
(patch by google)
|
|
|
|
* #76920: crash if on eg "pylint --rcfile" (patch by Torsten Marek)
|
|
|
|
* #77237: warning for E0202 may be very misleading
|
|
|
|
* #73941: HTML report messages table is badly rendered
|
|
|
|
|
|
What's New in Pylint 0.24.0?
|
|
============================
|
|
|
|
Release date: 2011-07-18
|
|
|
|
* #69738: add regular expressions support for "generated-members"
|
|
|
|
* ids of logging and string_format checkers have been changed:
|
|
logging: 65 -> 12, string_format: 99 -> 13
|
|
Also add documentation to say that ids of range 1-50 shall be reserved
|
|
to pylint internal checkers
|
|
|
|
* #69993: Additional string format checks for logging module:
|
|
check for missing arguments, too many arguments, or invalid string
|
|
formats in the logging checker module. Contributed by Daniel Arena
|
|
|
|
* #69220: add column offset to the reports. If you've a custom reporter,
|
|
this change may break it has now location gain a new item giving the
|
|
column offset.
|
|
|
|
* #60828: Fix false positive in reimport check
|
|
|
|
* #70495: absolute imports fail depending on module path (patch by Jacek Konieczny)
|
|
|
|
* #22273: Fix --ignore option documentation to match reality
|
|
|
|
|
|
What's New in Pylint 0.23.0?
|
|
============================
|
|
|
|
Release date: 2011-01-11
|
|
|
|
* documentation update, add manpages
|
|
|
|
* several performance improvements
|
|
|
|
* finalize python3 support
|
|
|
|
* new W0106 warning 'Expression "%s" is assigned to nothing'
|
|
|
|
* drop E0501 and E0502 messages about wrong source encoding: not anymore
|
|
interesting since it's a syntax error for python >= 2.5 and we now only
|
|
support this python version and above.
|
|
|
|
* don't emit W0221 or W0222 when methods as variable arguments (eg \*arg
|
|
and/or \*\*args). Patch submitted by Charles Duffy.
|
|
|
|
|
|
What's New in Pylint 0.22.0?
|
|
============================
|
|
|
|
Release date: 2010-11-15
|
|
|
|
* python versions: minimal python3.x support; drop python < 2.5 support
|
|
|
|
|
|
What's New in Pylint 0.21.4?
|
|
============================
|
|
|
|
Release date: 2010-10-27
|
|
|
|
* fix #48066: pylint crashes when redirecting output containing non-ascii characters
|
|
|
|
* fix #19799: "pylint -blah" exit with status 2
|
|
|
|
* update documentation
|
|
|
|
|
|
What's New in Pylint 0.21.3?
|
|
============================
|
|
|
|
Release date: 2010-09-28
|
|
|
|
* restored python 2.3 compatibility. Along with logilab-astng
|
|
0.21.3 and logilab-common 0.52, this will much probably be the
|
|
latest release supporting python < 2.5.
|
|
|
|
|
|
What's New in Pylint 0.21.2?
|
|
============================
|
|
|
|
Release date: 2010-08-26
|
|
|
|
* fix #36193: import checker raise exception on cyclic import
|
|
|
|
* fix #28796: regression in --generated-members introduced pylint 0.20
|
|
|
|
* some documentation cleanups
|
|
|
|
|
|
What's New in Pylint 0.21.1?
|
|
============================
|
|
|
|
Release date: 2010-06-04
|
|
|
|
* fix #28962: pylint crash with new options, due to missing stats data while
|
|
writing the Statistics by types report
|
|
|
|
* updated man page to 0.21 or greater command line usage (fix debian #582494)
|
|
|
|
|
|
What's New in Pylint 0.21.0?
|
|
============================
|
|
|
|
Release date: 2010-05-11
|
|
|
|
* command line updated (closes #9774, #9787, #9992, #22962):
|
|
|
|
* all enable-* / disable-* options have been merged into --enable / --disable
|
|
|
|
* BACKWARD INCOMPATIBLE CHANGE: short name of --errors-only becomes -E, -e being
|
|
affected to --enable
|
|
|
|
* pylint --help output much simplified, with --long-help available to get the
|
|
complete one
|
|
|
|
* revisited gui, thanks to students from Toronto university (they are great
|
|
contributors to this release!)
|
|
|
|
* fix #21591: html reporter produces no output if reports is set to 'no'
|
|
|
|
* fix #4581: not Missing docstring (C0111) warning if a method is overridden
|
|
|
|
* fix #4683: Non-ASCII characters count double if utf8 encode
|
|
|
|
* fix #9018: when using defining-attr-method, method order matters
|
|
|
|
* fix #4595: Comma not followed by a space should not occurs on trailing comma
|
|
in list/tuple/dict definition
|
|
|
|
* fix #22585: [Patch] fix man warnings for pyreverse.1 manpage
|
|
|
|
* fix #20067: AttributeError: 'NoneType' object has no attribute 'name' with with
|
|
|
|
|
|
|
|
What's New in Pylint 0.20.0?
|
|
============================
|
|
|
|
Release date: 2010-03-01
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.19.0?
|
|
============================
|
|
|
|
Release date: 2009-12-18
|
|
|
|
* implement #18947, #5561: checker for function arguments
|
|
|
|
* include James Lingard string format checker
|
|
|
|
* include simple message (ids) listing by Vincent Ferotin (#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 Ferotin)
|
|
|
|
|
|
What's New in Pylint 0.18.0?
|
|
============================
|
|
|
|
Release date: 2009-03-25
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.17.0?
|
|
============================
|
|
|
|
Release date: 2009-03-19
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.16.0?
|
|
============================
|
|
|
|
Release date: 2009-01-28
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.15.2?
|
|
============================
|
|
|
|
Release date: 2008-10-13
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.15.1?
|
|
============================
|
|
|
|
Release date: 2008-09-15
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.15.0?
|
|
============================
|
|
|
|
Release date: 2008-09-10
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.14.0?
|
|
============================
|
|
|
|
Release date: 2008-01-14
|
|
|
|
* 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)
|
|
|
|
|
|
What's New in Pylint 0.13.2?
|
|
============================
|
|
|
|
Release date: 2007-06-07
|
|
|
|
* 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
|
|
|
|
|
|
|
|
What's New in Pylint 0.13.1?
|
|
============================
|
|
|
|
Release date: 2007-03-02
|
|
|
|
* fix some unexplained 0.13.0 packaging issue which led to a bunch of
|
|
files missing from the distribution
|
|
|
|
|
|
|
|
What's New in Pylint 0.13.0?
|
|
============================
|
|
|
|
Release date: 2007-02-28
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.12.2?
|
|
============================
|
|
|
|
Release date: 2006-11-23
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.12.1?
|
|
============================
|
|
|
|
|
|
Release date: 2006-09-25
|
|
|
|
* 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__
|
|
|
|
|
|
What's New in Pylint 0.12.0?
|
|
============================
|
|
|
|
|
|
Release date: 2006-08-10
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.11.0?
|
|
============================
|
|
|
|
Release date: 2006-04-19
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.10.0?
|
|
============================
|
|
|
|
Release date: 2006-03-06
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.9.0?
|
|
============================
|
|
|
|
Release date: 2006-01-10
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.8.1?
|
|
============================
|
|
|
|
|
|
Release date: 2005-11-07
|
|
|
|
* 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)
|
|
|
|
|
|
What's New in Pylint 0.8.0?
|
|
============================
|
|
|
|
Release date: 2005-10-21
|
|
|
|
* 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)
|
|
|
|
|
|
What's New in Pylint 0.7.0?
|
|
============================
|
|
|
|
|
|
Release date: 2005-05-27
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.6.4?
|
|
===========================
|
|
|
|
|
|
Release date: 2005-04-14
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.6.3?
|
|
===========================
|
|
|
|
Release date: 2005-02-24
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.6.2?
|
|
============================
|
|
|
|
|
|
Release date: 2005-02-16
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.6.1?
|
|
===========================
|
|
|
|
Release date: 2005-02-04
|
|
|
|
* 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)
|
|
|
|
|
|
What's New in Pylint 0.6.0?
|
|
===========================
|
|
|
|
Release date: 2005-01-20
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.5.0?
|
|
===========================
|
|
|
|
Release date: 2004-10-19
|
|
|
|
* avoid importing 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
|
|
|
|
|
|
What's New in Pylint 0.4.2?
|
|
===========================
|
|
|
|
Release date: 2004-07-08
|
|
|
|
* fix pylint emacs mode
|
|
|
|
* fix classes checkers to handler twisted interfaces
|
|
|
|
|
|
What's New in Pylint 0.4.1?
|
|
===========================
|
|
|
|
Release date: 2004-05-14
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.4.0?
|
|
===========================
|
|
|
|
Release date: 2004-05-10
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.3.3?
|
|
===========================
|
|
|
|
Release date: 2004-02-17
|
|
|
|
* 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
|
|
|
|
|
|
|
|
What's New in Pylint 0.3.2?
|
|
===========================
|
|
|
|
Release date: 2003-12-23
|
|
|
|
* 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
|
|
|
|
|
|
|
|
What's New in Pylint 0.3.1?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-12-05
|
|
|
|
* bug fix in format and classes checkers
|
|
|
|
* remove print statement from imports checkers
|
|
|
|
* provide a simple tk gui, essentially useful for windows users
|
|
|
|
|
|
|
|
What's New in Pylint 0.3.0?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-11-20
|
|
|
|
* 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 (controlled 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
|
|
|
|
|
|
|
|
What's New in Pylint 0.2.1?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-10-10
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.2.0?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-09-12
|
|
|
|
* 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
|
|
|
|
|
|
What's New in Pylint 0.1.2?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-06-18
|
|
|
|
* bug fix release
|
|
|
|
* remove dependency to pyreverse
|
|
|
|
|
|
What's New in Pylint 0.1.1?
|
|
===========================
|
|
|
|
|
|
Release date: 2003-06-01
|
|
|
|
* much more functionalities !
|
|
|
|
|
|
What's New in Pylint 0.1?
|
|
===========================
|
|
|
|
Release date: 2003-05-19
|
|
|
|
* initial release
|