Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Update #1

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Initial Update #1

wants to merge 3 commits into from

Conversation

pyup-bot
Copy link

@pyup-bot pyup-bot commented Jan 5, 2018

This is my first visit to this fine repo so I have bundled all updates in a single pull request to make things easier for you to merge.

Close this pull request and delete the branch if you want me to start with single pull requests right away

Here's the executive summary:

Updates

Here's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.

flake8 3.5.0 » 3.5.0 PyPI | Changelog | Repo
pylint 1.8.1 » 1.8.1 PyPI | Changelog | Repo
pymysql 0.7.11 » 0.8.0 PyPI | Changelog | Repo

Changelogs

flake8 -> 3.5.0

3.5.0


You can view the 3.5.0 milestone_ on GitLab for more details.

New Dependency Information

  • Allow for PyFlakes 1.6.0 (See also GitLab359_)
  • Start using new PyCodestyle checks for bare excepts and ambiguous identifier
    (See also GitLab361_)

Features

  • Print out information about configuring VCS hooks (See also GitLab335_)
  • Allow users to develop plugins "local" to a repository without using
    setuptools. See our documentation on local plugins for more information.
    (See also GitLab357_)

Bugs Fixed

  • Catch and helpfully report UnicodeDecodeError\ s when parsing
    configuration files. (See also GitLab358_)

.. all links
.. _3.5.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/20

.. issue links
.. _GitLab335:
https://gitlab.com/pycqa/flake8/issues/335
.. _GitLab357:
https://gitlab.com/pycqa/flake8/issues/357
.. _GitLab358:
https://gitlab.com/pycqa/flake8/issues/358
.. _GitLab359:
https://gitlab.com/pycqa/flake8/issues/359
.. _GitLab361:
https://gitlab.com/pycqa/flake8/issues/361

.. merge request links

3.4.1


You can view the 3.4.1 milestone_ on GitLab for more details.

  • Fix minor regression when users specify only a --select list with items
    in the enabled/extended select list. (See also GitLab354_)

.. all links
.. _3.4.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/19

.. issue links
.. _GitLab354:
https://gitlab.com/pycqa/flake8/issues/354

.. merge request links

3.4.0


You can view the 3.4.0 milestone_ on GitLab for more details.

  • Refine logic around --select and --ignore when combined with the
    default values for each. (See also GitLab318_)
  • Handle spaces as an alternate separate for error codes, e.g.,
    --ignore 'E123 E234'. (See also GitLab329_)
  • Filter out empty select and ignore codes, e.g., --ignore E123,,E234.
    (See also GitLab330_)
  • Specify dependencies appropriately in setup.py (See also Gitlab341_)
  • Fix bug in parsing --quiet and --verbose from config files.
    (See also GitLab!193_)
  • Remove unused import of os in the git hook template (See also
    GitLab!194_)

.. all links
.. _3.4.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/18

.. issue links
.. _GitLab318:
https://gitlab.com/pycqa/flake8/issues/318
.. _GitLab329:
https://gitlab.com/pycqa/flake8/issues/329
.. _GitLab330:
https://gitlab.com/pycqa/flake8/issues/330
.. _GitLab341:
https://gitlab.com/pycqa/flake8/issues/341

.. merge request links
.. _GitLab!193:
https://gitlab.com/pycqa/flake8/merge_requests/193
.. _GitLab!194:
https://gitlab.com/pycqa/flake8/merge_requests/194

3.3.0


You can view the 3.3.0 milestone_ on GitLab for more details.

  • Add support for Python 3.6 (via dependencies). Note Flake8 does not
    guarantee that all plugins will support Python 3.6.
  • Added unique error codes for all missing PyFlakes messages. (14 new
    codes, see "Error / Violation Codes")
  • Dramatically improve the performance of Flake8. (See also GitLab!156_)
  • Display the local file path instead of the temporary file path when
    using the git hook. (See also GitLab244_)
  • Add methods to Report class that will be called when Flake8 starts and
    finishes processing a file. (See also GitLab251_)
  • Fix problem where hooks should only check *.py files. (See also
    GitLab268_)
  • Fix handling of SyntaxErrors that do not include physical line information.
    (See also GitLab279_)
  • Update upper bound on PyFlakes to allow for PyFlakes 1.5.0. (See also
    GitLab290_)
  • Update setuptools integration to less eagerly deduplicate packages.
    (See also GitLab295_)
  • Force flake8 --version to be repeatable between invocations. (See also
    GitLab297_)

.. all links
.. _3.3.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/16

.. issue links
.. _GitLab244:
https://gitlab.com/pycqa/flake8/issues/244
.. _GitLab251:
https://gitlab.com/pycqa/flake8/issues/251
.. _GitLab268:
https://gitlab.com/pycqa/flake8/issues/268
.. _GitLab279:
https://gitlab.com/pycqa/flake8/issues/279
.. _GitLab290:
https://gitlab.com/pycqa/flake8/issues/290
.. _GitLab295:
https://gitlab.com/pycqa/flake8/issues/295
.. _GitLab297:
https://gitlab.com/pycqa/flake8/issues/297

.. merge request links
.. _GitLab!156:
https://gitlab.com/pycqa/flake8/merge_requests/156

3.2.1


You can view the 3.2.1 milestone_ on GitLab for more details.

  • Fix subtle bug when deciding whether to report an on-by-default's violation
    (See also GitLab257_)
  • Fix another bug around SyntaxErrors not being reported at the right column
    and row (See also GitLab259_ and GitLab237_ for a related, previously
    fixed bug)
  • Fix regression from 2.x where we run checks against explicitly provided
    files, even if they don't match the filename patterns. (See also
    GitLab266_)

.. links
.. _3.2.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/15
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab257:
https://gitlab.com/pycqa/flake8/issues/257
.. _GitLab259:
https://gitlab.com/pycqa/flake8/issues/259
.. _GitLab266:
https://gitlab.com/pycqa/flake8/issues/266

3.2.0


You can view the 3.2.0 milestone_ on GitLab for more details.

  • Allow for pycodestyle 2.2.0 which fixes a bug in E305 (See also
    GitLab256_)

.. links
.. _3.2.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/14
.. _GitLab256:
https://gitlab.com/pycqa/flake8/issues/256

3.1.1


You can view the 3.1.1 milestone_ on GitLab for more details.

  • Do not attempt to install/distribute a man file with the Python package;
    leave this for others to do. (See also GitLab254_)
  • Fix packaging bug where wheel version constraints specified in setup.cfg did
    not match the constraints in setup.py. (See also GitLab255_)

.. links
.. _3.1.1 milestone:
https://gitlab.com/pycqa/flake8/milestones/13
.. _GitLab254:
https://gitlab.com/pycqa/flake8/issues/254
.. _GitLab255:
https://gitlab.com/pycqa/flake8/issues/255

3.1.0


You can view the 3.1.0 milestone_ on GitLab for more details.

  • Add --bug-report flag to make issue reporters' lives easier.
  • Collect configuration files from the current directory when using our Git
    hook. (See also GitLab210, GitLab218, GitLab223_)
  • Avoid unhandled exceptions when dealing with SyntaxErrors. (See also
    GitLab214, GitLab238)
  • Exit early if the value for --diff is empty. (See also GitLab226_)
  • Handle empty --stdin-display-name values. (See also GitLab235_)
  • Properly report the column number of Syntax Errors. We were assuming that
    all reports of column numbers were 0-indexed, however, SyntaxErrors report
    the column number as 1-indexed. This caused us to report a column number
    that was 1 past the actual position. Further, when combined with
    SyntaxErrors that occur at a newline, this caused the position to be
    visually off by two. (See also GitLab237_)
  • Fix the behaviour of --enable-extensions. Previously, items specified
    here were still ignored due to the fact that the off-by-default extension
    codes were being left in the ignore list. (See also GitLab239_)
  • Fix problems around --select and --ignore behaviour that prevented
    codes that were neither explicitly selected nor explicitly ignored from
    being reported. (See also GitLab242_)
  • Truly be quiet when the user specifies -q one or more times. Previously,
    we were showing the if the user specified -q and --show-source. We
    have fixed this bug. (See also GitLab245_)
  • Add new File Processor attribute, previous_unindented_logical_line to
    accommodate pycodestyle 2.1.0. (See also GitLab246_)
  • When something goes wrong, exit non-zero. (See also GitLab248,
    GitLab209
    )
  • Add --tee as an option to allow use of --output-file and printing to
    standard out.
  • Allow the git plugin to actually be lazy when collecting files.
  • Allow for pycodestyle 2.1 series and pyflakes 1.3 series.

.. links
.. _3.1.0 milestone:
https://gitlab.com/pycqa/flake8/milestones/12
.. _GitLab209:
https://gitlab.com/pycqa/flake8/issues/209
.. _GitLab210:
https://gitlab.com/pycqa/flake8/issues/210
.. _GitLab214:
https://gitlab.com/pycqa/flake8/issues/214
.. _GitLab218:
https://gitlab.com/pycqa/flake8/issues/218
.. _GitLab223:
https://gitlab.com/pycqa/flake8/issues/223
.. _GitLab226:
https://gitlab.com/pycqa/flake8/issues/226
.. _GitLab235:
https://gitlab.com/pycqa/flake8/issues/235
.. _GitLab237:
https://gitlab.com/pycqa/flake8/issues/237
.. _GitLab238:
https://gitlab.com/pycqa/flake8/issues/238
.. _GitLab239:
https://gitlab.com/pycqa/flake8/issues/239
.. _GitLab242:
https://gitlab.com/pycqa/flake8/issues/242
.. _GitLab245:
https://gitlab.com/pycqa/flake8/issues/245
.. _GitLab246:
https://gitlab.com/pycqa/flake8/issues/246
.. _GitLab248:
https://gitlab.com/pycqa/flake8/issues/248

3.0.4


  • Side-step a Pickling Error when using Flake8 with multiprocessing on Unix
    systems. (See also GitLab164_)
  • Fix an Attribute Error raised when dealing with Invalid Syntax. (See also
    GitLab203_)
  • Fix an unhandled Syntax Error when tokenizing files. (See also
    GitLab205_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab203:
https://gitlab.com/pycqa/flake8/issues/203
.. _GitLab205:
https://gitlab.com/pycqa/flake8/issues/205

3.0.3


  • Disable --jobs for any version of Python on Windows.
    (See also this Python bug report_)
  • Raise exception when entry_point in plugin not callable.
    This raises an informative error when a plugin fails to load because its
    entry_point is not callable, which can happen with a plugin which is buggy or
    not updated for the current version of flake8. This is nicer than raising a
    PicklingError about failing to pickle a module (See also GitLab164_)
  • Fix noqa comments followed by a : and explanation broken by
    3.0.0 (See also GitLab178_)
  • Always open our output file in append mode so we do not overwrite log
    messages. (See also GitLab193_)
  • When normalizing path values read from configuration, keep in context the
    directory where the configuration was found so that relative paths work.
    (See also GitLab194_)
  • Fix issue where users were unable to ignore plugin errors that were on
    by default. (See also GitLab195_)
  • Fix our legacy API StyleGuide's init_report method to actually override
    the previous formatter. (See also GitLab200_)

.. links
.. _GitLab164:
https://gitlab.com/pycqa/flake8/issues/164
.. _GitLab178:
https://gitlab.com/pycqa/flake8/issues/178
.. _GitLab193:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab194:
https://gitlab.com/pycqa/flake8/issues/193
.. _GitLab195:
https://gitlab.com/pycqa/flake8/issues/195
.. _GitLab200:
https://gitlab.com/pycqa/flake8/issues/200
.. _this Python bug report:
https://bugs.python.org/issue27649

3.0.2


  • Fix local config file discovery. (See also GitLab181_)
  • Fix indexing of column numbers. We accidentally were starting column indices
    at 0 instead of 1.
  • Fix regression in handling of errors like E402 that rely on a combination of
    attributes. (See also GitLab186_)

.. links
.. _GitLab181:
https://gitlab.com/pycqa/flake8/issues/181
.. _GitLab186:
https://gitlab.com/pycqa/flake8/issues/186

3.0.1


  • Fix regression in handling of noqa for multiline strings.
    (See also GitLab177_)
  • Fix regression in handling of --output-file when not also using
    --verbose. (See also GitLab180_)
  • Fix regression in handling of --quiet. (See also GitLab180_)
  • Fix regression in handling of --statistics. (See also GitLab180_)

.. links
.. _GitLab177:
https://gitlab.com/pycqa/flake8/issues/177
.. _GitLab180:
https://gitlab.com/pycqa/flake8/issues/180

3.0.0


  • Drop explicit support for Pythons 2.6, 3.2, and 3.3.
  • Remove dependence on pep8/pycodestyle for file processing, plugin
    dispatching, and more. We now control all of this while keeping backwards
    compatibility.
  • --select and --ignore can now both be specified and try to find the
    most specific rule from each. For example, if you do --select E --ignore E123 then we will report everything that starts with E except for
    E123. Previously, you would have had to do --ignore E123,F,W which
    will also still work, but the former should be far more intuitive.
  • Add support for in-line noqa comments to specify only the error
    codes to be ignored, e.g., noqa: E123,W503
  • Add entry-point for formatters as well as a base class that new formatters
    can inherit from. See the documentation for more details.
  • Add detailed verbose output using the standard library logging module.
  • Enhance our usage of optparse for plugin developers by adding new parameters
    to the add_option that plugins use to register new options.
  • Update --install-hook to require the name of version control system hook
    you wish to install a Flake8.
  • Stop checking sub-directories more than once via the setuptools command
  • When passing a file on standard-in, allow the caller to specify
    --stdin-display-name so the output is properly formatted
  • The Git hook now uses sys.executable to format the shebang line.
    This allows Flake8 to install a hook script from a virtualenv that points to
    that virtualenv's Flake8 as opposed to a global one (without the virtualenv
    being sourced).
  • Print results in a deterministic and consistent ordering when used with
    multiprocessing
  • When using --count, the output is no longer written to stderr.
  • AST plugins can either be functions or classes and all plugins can now
    register options so long as there are callable attributes named as we
    expect.
  • Stop forcibly re-adding .tox, .eggs, and *.eggs to
    --exclude. Flake8 2.x started always appending those three patterns
    to any exclude list (including the default and any user supplied list).
    Flake8 3 has stopped adding these in, so you may see errors when upgrading
    due to these patterns no longer being forcibly excluded by default if you
    have your own exclude patterns specified.

To fix this, add the appropriate patterns to your exclude patterns list.

.. note::

 This item was added in November of 2016, as a result of a bug
 report.

2.6.2


  • Bug Fix packaging error during release process.

2.6.1


  • Bug Update the config files to search for to include setup.cfg and
    tox.ini. This was broken in 2.5.5 when we stopped passing
    config_file to our Style Guide

2.6.0


  • Requirements Change Switch to pycodestyle as all future pep8 releases
    will use that package name
  • Improvement Allow for Windows users on select versions of Python to
    use --jobs and multiprocessing
  • Improvement Update bounds on McCabe
  • Improvement Update bounds on PyFlakes and blacklist known broken
    versions
  • Improvement Handle new PyFlakes warning with a new error code: F405

2.5.5


  • Bug Fix setuptools integration when parsing config files
  • Bug Don't pass the user's config path as the config_file when creating a
    StyleGuide

2.5.4


  • Bug Missed an attribute rename during the v2.5.3 release.

2.5.3


  • Bug Actually parse output_file and enable_extensions from config
    files

2.5.2


  • Bug Parse output_file and enable_extensions from config files
  • Improvement Raise upper bound on mccabe plugin to allow for version
    0.4.0

2.5.1


  • Bug Properly look for .flake8 in current working directory
    (GitLab103_)
  • Bug Monkey-patch pep8.stdin_get_value to cache the actual value in
    stdin. This helps plugins relying on the function when run with
    multiprocessing. (GitLab105, GitLab107)

.. _GitLab103: https://gitlab.com/pycqa/flake8/issues/103
.. _GitLab105: https://gitlab.com/pycqa/flake8/issues/105
.. _GitLab107: https://gitlab.com/pycqa/flake8/issues/107

2.5.0


  • Improvement Raise cap on PyFlakes for Python 3.5 support
  • Improvement Avoid deprecation warnings when loading extensions
    (GitLab59, GitLab90)
  • Improvement Separate logic to enable "off-by-default" extensions
    (GitLab67_)
  • Bug Properly parse options to setuptools Flake8 command (GitLab!41_)
  • Bug Fix exceptions when output on stdout is truncated before Flake8
    finishes writing the output (GitLab69_)
  • Bug Fix error on OS X where Flake8 can no longer acquire or create new
    semaphores (GitLab74_)

.. _GitLab!41: https://gitlab.com/pycqa/flake8/merge_requests/41
.. _GitLab59: https://gitlab.com/pycqa/flake8/issues/59
.. _GitLab67: https://gitlab.com/pycqa/flake8/issues/67
.. _GitLab69: https://gitlab.com/pycqa/flake8/issues/69
.. _GitLab74: https://gitlab.com/pycqa/flake8/issues/74
.. _GitLab90: https://gitlab.com/pycqa/flake8/issues/90

2.4.1


  • Bug Do not raise a SystemError unless there were errors in the
    setuptools command. (GitLab39, GitLab!23)
  • Bug Do not verify dependencies of extensions loaded via entry-points.
  • Improvement Blacklist versions of pep8 we know are broken

.. _GitLab39: https://gitlab.com/pycqa/flake8/issues/39
.. _GitLab!23: https://gitlab.com/pycqa/flake8/merge_requests/23

2.4.0


  • Bug Print filenames when using multiprocessing and -q option.
    (GitLab31_)
  • Bug Put upper cap on dependencies. The caps for 2.4.0 are:
  • pep8 < 1.6 (Related to GitLab35_)
  • mccabe < 0.4
  • pyflakes < 0.9

See also GitLab32_

  • Bug Files excluded in a config file were not being excluded when flake8
    was run from a git hook. (GitHub2_)
  • Improvement Print warnings for users who are providing mutually
    exclusive options to flake8. (GitLab8, GitLab!18)
  • Feature Allow git hook configuration to live in .git/config.
    See the updated VCS hooks docs_ for more details. (GitLab!20_)

.. _GitHub2: PyCQA/flake8#2
.. _GitLab8: https://gitlab.com/pycqa/flake8/issues/8
.. _GitLab31: https://gitlab.com/pycqa/flake8/issues/31
.. _GitLab32: https://gitlab.com/pycqa/flake8/issues/32
.. _GitLab35: https://gitlab.com/pycqa/flake8/issues/35
.. _GitLab!18: https://gitlab.com/pycqa/flake8/merge_requests/18
.. _GitLab!20: https://gitlab.com/pycqa/flake8/merge_requests/20
.. _VCS hooks docs: https://flake8.readthedocs.org/en/latest/vcs.html

2.3.0


  • Feature: Add --output-file option to specify a file to write to
    instead of stdout.
  • Bug Fix interleaving of output while using multiprocessing
    (GitLab17_)

.. _GitLab17: https://gitlab.com/pycqa/flake8/issues/17

2.2.5


  • Flush standard out when using multiprocessing
  • Make the check for " flake8: noqa" more strict

2.2.4


  • Fix bugs triggered by turning multiprocessing on by default (again)

Multiprocessing is forcibly disabled in the following cases:

  • Passing something in via stdin
  • Analyzing a diff
  • Using windows
  • Fix --install-hook when there are no config files present for pep8 or
    flake8.
  • Fix how the setuptools command parses excludes in config files
  • Fix how the git hook determines which files to analyze (Thanks Chris
    Buccella!)

2.2.3


  • Actually turn multiprocessing on by default

2.2.2


  • Re-enable multiprocessing by default while fixing the issue Windows users
    were seeing.

2.2.1


  • Turn off multiple jobs by default. To enable automatic use of all CPUs, use
    --jobs=auto. Fixes 155 and 154.

2.2.0


  • New option doctests to run Pyflakes checks on doctests too
  • New option jobs to launch multiple jobs in parallel
  • Turn on using multiple jobs by default using the CPU count
  • Add support for python -m flake8 on Python 2.7 and Python 3
  • Fix Git and Mercurial hooks: issues 88, 133, 148 and 149
  • Fix crashes with Python 3.4 by upgrading dependencies
  • Fix traceback when running tests with Python 2.6
  • Fix the setuptools command python setup.py flake8 to read
    the project configuration

2.1.0


  • Add FLAKE8_LAZY and FLAKE8_IGNORE environment variable support to git and
    mercurial hooks
  • Force git and mercurial hooks to repsect configuration in setup.cfg
  • Only check staged files if that is specified
  • Fix hook file permissions
  • Fix the git hook on python 3
  • Ignore non-python files when running the git hook
  • Ignore .tox directories by default
  • Flake8 now reports the column number for PyFlakes messages

2.0.0


  • Pyflakes errors are prefixed by an F instead of an E
  • McCabe complexity warnings are prefixed by a C instead of a W
  • Flake8 supports extensions through entry points
  • Due to the above support, we require setuptools
  • We publish the documentation <https://flake8.readthedocs.org/>_
  • Fixes 13: pep8, pyflakes and mccabe become external dependencies
  • Split run.py into main.py, engine.py and hooks.py for better logic
  • Expose our parser for our users
  • New feature: Install git and hg hooks automagically
  • By relying on pyflakes (0.6.1), we also fixed 45 and 35

1.7.0


  • Fixes part of 35: Exception for no WITHITEM being an attribute of Checker
    for Python 3.3
  • Support stdin
  • Incorporate phd's builtins pull request
  • Fix the git hook
  • Update pep8.py to the latest version

1.6.2


  • fixed the NameError: global name 'message' is not defined (46)

1.6.1


  • fixed the mercurial hook, a change from a previous patch was not properly
    applied
  • fixed an assumption about warnings/error messages that caused an exception
    to be thrown when McCabe is used

1.6


  • changed the signatures of the check_file function in flake8/run.py,
    skip_warning in flake8/util.py and the check, checkPath
    functions in flake8/pyflakes.py.
  • fix --exclude and --ignore command flags (14, 19)
  • fix the git hook that wasn't catching files not already added to the index
    (29)
  • pre-emptively includes the addition to pep8 to ignore certain lines.
    Add nopep8 to the end of a line to ignore it. (37)
  • check_file can now be used without any special prior setup (21)
  • unpacking exceptions will no longer cause an exception (20)
  • fixed crash on non-existent file (38)

1.5


  • fixed the stdin
  • make sure mccabe catches the syntax errors as warnings
  • pep8 upgrade
  • added max_line_length default value
  • added Flake8Command and entry points if setuptools is around
  • using the setuptools console wrapper when available

1.4


  • git_hook: Only check staged changes for compliance
  • use pep8 1.2

1.3.1


  • fixed support for Python 2.5

1.3


  • fixed false W402 warning on exception blocks.

1.2


  • added a git hook
  • now Python 3 compatible
  • mccabe and pyflakes have warning codes like pep8 now

1.1


  • fixed the value returned by --version
  • allow the flake8: header to be more generic
  • fixed the "hg hook raises 'physical lines'" bug
  • allow three argument form of raise
  • now uses setuptools if available, for 'develop' command

1.0


  • Deactivates by default the complexity checker
  • Introduces the complexity option in the HG hook and the command line.

0.9


  • update pep8 version to 0.6.1
  • mccabe check: gracefully handle compile failure

0.8


  • fixed hg hook
  • discard unexisting files on hook check

0.7


  • Fix pep8 initialization when run through Hg
  • Make pep8 short options work when run through the command line
  • Skip duplicates when controlling files via Hg

0.6


  • Fix the McCabe metric on some loops

pylint -> 1.8.1

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

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 assig

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant