BlueBrain / Rockets

REST and websockets C++ library
GNU Lesser General Public License v3.0
38 stars 8 forks source link

Pin pylint to latest version 2.2.2 #58

Closed pyup-bot closed 5 years ago

pyup-bot commented 5 years ago

This PR pins pylint to the latest release 2.2.2.

Changelog ### 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 ``` ### 2.2.1 ``` =========================== Release date: 2018-11-27 * Fix a crash caused by `implicit-str-concat-in-sequence` and multi-bytes characters. Closes 2610 ``` ### 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. ``` ### 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/pylint2228 * ``simplifiable-if-statement`` not emitted when dealing with subscripts ``` ### 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/astroid2288 * 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 ``` ### 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 ``` ### 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 ``` ### 1.8.1 ``` =========================== Release date: 2017-12-15 * Wrong version number in __pkginfo__. ``` ### 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 ``` ### 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 ``` ### 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 ``` ### 1.6.3 ``` =========================== Release date: 2016-07-18 * Do not crash when inferring uninferable exception types for docparams extension Close 998 ``` ### 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 ``` ### 1.6.1 ``` =========================== Release date: 2016-07-07 * Use environment markers for supporting conditional dependencies. ``` ### 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. ``` ### 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 ``` ### 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. ``` ### 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. ``` ### 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. ``` ### 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. ``` ### 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.
bbpbuildbot commented 5 years ago

Can one of the admins verify this patch?