-
-
Notifications
You must be signed in to change notification settings - Fork 2
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
Linting improvements #39
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This was referenced Sep 30, 2019
I'm okay with enforcing PEP8 naming conventions for now. If it becomes a consistent problem, we can always disable it in the future. bors r+ |
duckinator
approved these changes
Sep 30, 2019
bors bot
added a commit
that referenced
this pull request
Sep 30, 2019
39: Linting improvements r=duckinator a=nbraud 1. Uniformise imports order, enforce it in linting. 2. Fix minor wart in `bork.cli.download`. 3. Enforce PEP8 naming conventions. 4. Pin the newest version of `flake8-docstrings`. @duckinator (3) seems kinda iffy to me, feel free to drop the corresponding commit prior to merge. Co-authored-by: Nicolas Braud-Santoni <nicolas@braud-santoni.eu>
Build succeeded
|
bors bot
added a commit
that referenced
this pull request
Oct 1, 2019
46: Pin flake8-import-order to latest version 0.18.1 r=nbraud a=pyup-bot This PR pins [flake8-import-order](https://pypi.org/project/flake8-import-order) to the latest release **0.18.1**. <details> <summary>Changelog</summary> ### 0.18.1 ``` ----------------- * Fix case-sensitive related I100 errors for the pycharm style * Fix noqa regexp ``` ### 0.18 ``` --------------- * Add new Python 3.7 modules to the stdlib list, and support 3.7. ``` ### 0.17.1 ``` ----------------- * Rebuild of 0.17 with the latest setuptools to fix an enum34 dependency bug. ``` ### 0.17 ``` --------------- * Add all Python3 modules to stdlib list (should be no more missing modules). * Clarify the error messages (more context). * Allow styles to override specific checks. * Correct the edited style to match the actual edited style guide. * Add pycharm style, to match the pycharm auto formatter. ``` ### 0.16 ``` --------------- * Change spacing determination to consider only blank newlines as a space. This adds NewLine nodes to the checker and hence could break custom styles (that use the nodes directly). This also drops the asttokens dependency as it is no longer required. * Understand the existance of namespaced packages, thereby allowing different namespaced pacakages to be defined as local or third party. ``` ### 0.15 ``` --------------- * Drop Python 3.3 support, as Python 3.3 is beyond it's end of lfe. * Correct the flake8 entrypoint to report all ``I`` errors, this may result in ``I2XX`` errors being reported that were absent previously. * Support in-line `` noqa`` comments specifing only the error codes to be ignored, e.g., `` noqa: I101``. * Accept only `` noqa`` directives on the line reporting the error, see limitations. ``` ### 0.14.3 ``` ----------------- * Bug fix, allow for noqa directives to work with I202. ``` ### 0.14.2 ``` ----------------- * Bug fix, ensure the plugin is invoked by flake8. ``` ### 0.14.1 ``` ----------------- * Bug fix, cope with multi-line imports when considering I202. ``` ### 0.14 ``` --------------- * Fixed I201 error raising for cryptography style. * Added I202 error when there is an additional newline in a section of imports. * Added ``ntpath`` and ``os2emxpath`` to stdlib list. ``` ### 0.13 ``` --------------- * Added ``secrets`` to stdlib list. * Allow for any style to use application-package grouping. ``` ### 0.12 ``` --------------- * Added new Edited style, this is equivalent to the Smarkets style except that values specified in the ``application-package-names`` option must be imported after third-party import statements * Added ability to extend a style using an entrypoint. * Fix ambiguous I100 error, now lists correct packages. ``` ### 0.11 ``` --------------- * Enforce lexicographic ordering for Google, Smarkets and AppNexus styles. This may introduce warnings not present in previous releases relating to case sensitivity. * Fix I100 case sensitivity for ungrouped imports, again enforcing lexicographic ordering. ``` ### 0.10 ``` --------------- * Added new AppNexus style, this is equivalent to the google style except that values specified in the `application-package-names` option must be imported after third-party import statements * Fixed ungrouped ordering bug whereby I100 wasn't triggered. ``` ### 0.9.2 ``` ---------------- * Fix error when checking from stdin using flake8 3.0. ``` ### 0.9.1 ``` ---------------- * Fix case sensitivity bug for Google and Smarkets style. ``` ### 0.9 ``` -------------- * Drop pep8 requirement and replace with pycodestyle. * Support Flake8 3.0 (alongside Flake8 2.X). * Drop Python2.6 compatibility. * Fixed a bug where intermixed 1st and 3rd party imports cause an error with the PEP8 style. * Fixed a bug whereby the I101 recommended ordering wasn't a valid ordering in the cryptography style. ``` ### 0.8 ``` --- * Added profile, cProfile, pstats and typing to stdlib list. * Added new PEP8 style, that enforces grouping of importes but allows any ordering within the groups. ``` ### 0.7 ``` --- * Added new Smarkets style, this is equivalent to the google style except that any `import X` statements must come before any `from X import y` statments. ``` ### 0.6.2 ``` ----- * Fixed a bug where I101 messages were not suggesting the correct order in the default style. The output message now outputs a message that matches the selected style. ``` ### 0.6.1 ``` ----- * Fixed a bug where I101 messages were not suggesting the correct order. * Extended test harness to be able to check error messages as well as codes. ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/flake8-import-order - Changelog: https://pyup.io/changelogs/flake8-import-order/ - Repo: https://github.com/PyCQA/flake8-import-order </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Oct 1, 2019
49: Pin pep8-naming to latest version 0.8.2 r=nbraud a=pyup-bot This PR pins [pep8-naming](https://pypi.org/project/pep8-naming) to the latest release **0.8.2**. <details> <summary>Changelog</summary> ### 0.8.2 ``` ------------------ * Fix a problem with ``ignore-names`` option initialization. ``` ### 0.8.1 ``` ------------------ * ``ignore-names`` now also applies to the N806, N815, and N816 checks. * ``failureException``, ``longMessage``, and ``maxDiff`` have been added to the default ``ignore-names`` list. * Allow lowercase names to be imported as just ``_``. * Allow function arguments to be named just ``_``. * Support Python 2's tuple syntax in ``except`` clauses. ``` ### 0.8.0 ``` ------------------ * Detect N806 errors within ``for`` loops and exception handlers. * Improve support for non-ASCII characters. * Detect mixedCased variable names at class (N815) and global (N816) scope. * Ignore Django's ``setUpTestData`` method by default. * Fix column offsets for N803, N804, and N805 under Python 3. * Detect underscores within class names as N801 errors. * Don't flag ``__getattr__`` and ``__dir__`` as N807 errors. (See `PEP 562 <https://www.python.org/dev/peps/pep-0562/>`_). * ``async`` function and method names are now checked. * Detect N806 errors in generator expressions and comprehensions. * Detect N81x errors in ``import x as y`` statements. ``` ### 0.7.0 ``` ------------------ * Detect N806 in ``with ... as ...:`` statements. * Detect N806 in multiple assignment statements, e.g., ``Foo, Bar = unpacking``. * Allow class names to be properly ignored. * Remove spurious 'xxx' from error message * Detect N807 within conditional statements. ``` ### 0.6.1 ``` ------------------ * Fix N804 check for ``cls`` used in metaclass methods (See also PyCQA/pep8-naming#53) ``` ### 0.6.0 ``` ------------------ * Separate check for ``__`` in function names to its own code: N807 * Consider all metaclass methods to be class methods ``` ### 0.5.0 ``` ------------------ * Add configurable list of classmethod and staticmethod decorators * Print the offending name as part of the error message * Correct N804/N805 for __init_subclass__ ``` ### 0.4.1 ``` ------------------ * Note to self: Never do releases before ~0600 or coffee on a Sunday. * Fix option parsing for Flake8 3.0 (store parsed value on class) ``` ### 0.4.0 ``` ------------------ * Fix integration with Flake8 3.0.0b1 * Start testing against Python 3.5 ``` ### 0.3.3 ``` ------------------ * Fix bug where ignored names were not properly split into a list. ``` ### 0.3.2 ``` ------------------ * Fix bug trying to call ``split`` on a list. ``` ### 0.3.1 ``` ------------------ * Fix optparse exception resulting from trying to register an option twice. ``` ### 0.3.0 ``` ------------------ * Relaxed N806 checking for use with namedtuples * Add ``--ignore-names`` which allows the user to specify a list of names to ignore. By default this includes ``setUp``, ``tearDown``, ``setUpClass``, and ``tearDownClass``. ``` ### 0.2.2 ``` ------------------ * Do not require ``setuptools`` in setup.py. It works around an issue with ``pip`` and Python 3. * ``__new__`` is now considered as ``classmethod`` implicitly * Run unit tests on travis-ci.org for python2.6, 2.7, 3.2, and 3.3 * Add unit tests and support running them with setup.py * Support Python 3.4 ``` ### 0.2.1 ``` ------------------ * Do not require ``flake8`` ``` ### 0.2 ``` ---------------- * Rename project ``flint-naming`` to ``pep8-naming`` * Fix a crash when function argument is a tuple of tuples 0.1 - 2013-02-11 ---------------- * First release ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pep8-naming - Changelog: https://pyup.io/changelogs/pep8-naming/ - Repo: https://github.com/PyCQA/pep8-naming </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Nov 21, 2019
79: Update pytest to 5.3.0 r=duckinator a=pyup-bot This PR updates [pytest](https://pypi.org/project/pytest) from **5.2.4** to **5.3.0**. <details> <summary>Changelog</summary> ### 5.3.0 ``` ========================= Deprecations ------------ - `6179 <https://github.com/pytest-dev/pytest/issues/6179>`_: The default value of ``junit_family`` option will change to ``xunit2`` in pytest 6.0, given that this is the version supported by default in modern tools that manipulate this type of file. In order to smooth the transition, pytest will issue a warning in case the ``--junitxml`` option is given in the command line but ``junit_family`` is not explicitly configured in ``pytest.ini``. For more information, `see the docs <https://docs.pytest.org/en/latest/deprecations.htmljunit-family-default-value-change-to-xunit2>`__. Features -------- - `4488 <https://github.com/pytest-dev/pytest/issues/4488>`_: The pytest team has created the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin, which provides a new ``--report-log=FILE`` option that writes *report logs* into a file as the test session executes. Each line of the report log contains a self contained JSON object corresponding to a testing event, such as a collection or a test result report. The file is guaranteed to be flushed after writing each line, so systems can read and process events in real-time. The plugin is meant to replace the ``--resultlog`` option, which is deprecated and meant to be removed in a future release. If you use ``--resultlog``, please try out ``pytest-reportlog`` and provide feedback. - `4730 <https://github.com/pytest-dev/pytest/issues/4730>`_: When ``sys.pycache_prefix`` (Python 3.8+) is set, it will be used by pytest to cache test files changed by the assertion rewriting mechanism. This makes it easier to benefit of cached ``.pyc`` files even on file systems without permissions. - `5515 <https://github.com/pytest-dev/pytest/issues/5515>`_: Allow selective auto-indentation of multiline log messages. Adds command line option ``--log-auto-indent``, config option ``log_auto_indent`` and support for per-entry configuration of indentation behavior on calls to ``logging.log()``. Alters the default for auto-indention from ``on`` to ``off``. This restores the older behavior that existed prior to v4.6.0. This reversion to earlier behavior was done because it is better to activate new features that may lead to broken tests explicitly rather than implicitly. - `5914 <https://github.com/pytest-dev/pytest/issues/5914>`_: ``pytester`` learned two new functions, `no_fnmatch_line <https://docs.pytest.org/en/latest/reference.html_pytest.pytester.LineMatcher.no_fnmatch_line>`_ and `no_re_match_line <https://docs.pytest.org/en/latest/reference.html_pytest.pytester.LineMatcher.no_re_match_line>`_. The functions are used to ensure the captured text *does not* match the given pattern. The previous idiom was to use ``re.match``: .. code-block:: python assert re.match(pat, result.stdout.str()) is None Or the ``in`` operator: .. code-block:: python assert text in result.stdout.str() But the new functions produce best output on failure. - `6057 <https://github.com/pytest-dev/pytest/issues/6057>`_: Added tolerances to complex values when printing ``pytest.approx``. For example, ``repr(pytest.approx(3+4j))`` returns ``(3+4j) ± 5e-06 ∠ ±180°``. This is polar notation indicating a circle around the expected value, with a radius of 5e-06. For ``approx`` comparisons to return ``True``, the actual value should fall within this circle. - `6061 <https://github.com/pytest-dev/pytest/issues/6061>`_: Added the pluginmanager as an argument to ``pytest_addoption`` so that hooks can be invoked when setting up command line options. This is useful for having one plugin communicate things to another plugin, such as default values or which set of command line options to add. Improvements ------------ - `5061 <https://github.com/pytest-dev/pytest/issues/5061>`_: Use multiple colors with terminal summary statistics. - `5630 <https://github.com/pytest-dev/pytest/issues/5630>`_: Quitting from debuggers is now properly handled in ``doctest`` items. - `5924 <https://github.com/pytest-dev/pytest/issues/5924>`_: Improved verbose diff output with sequences. Before: .. code-block:: E AssertionError: assert ['version', '...version_info'] == ['version', '...version', ...] E Right contains 3 more items, first extra item: ' ' E Full diff: E - ['version', 'version_info', 'sys.version', 'sys.version_info'] E + ['version', E + 'version_info', E + 'sys.version', E + 'sys.version_info', E + ' ', E + 'sys.version', E + 'sys.version_info'] After: .. code-block:: E AssertionError: assert ['version', '...version_info'] == ['version', '...version', ...] E Right contains 3 more items, first extra item: ' ' E Full diff: E [ E 'version', E 'version_info', E 'sys.version', E 'sys.version_info', E + ' ', E + 'sys.version', E + 'sys.version_info', E ] - `5936 <https://github.com/pytest-dev/pytest/issues/5936>`_: Display untruncated assertion message with ``-vv``. - `5990 <https://github.com/pytest-dev/pytest/issues/5990>`_: Fixed plurality mismatch in test summary (e.g. display "1 error" instead of "1 errors"). - `6008 <https://github.com/pytest-dev/pytest/issues/6008>`_: ``Config.InvocationParams.args`` is now always a ``tuple`` to better convey that it should be immutable and avoid accidental modifications. - `6023 <https://github.com/pytest-dev/pytest/issues/6023>`_: ``pytest.main`` now returns a ``pytest.ExitCode`` instance now, except for when custom exit codes are used (where it returns ``int`` then still). - `6026 <https://github.com/pytest-dev/pytest/issues/6026>`_: Align prefixes in output of pytester's ``LineMatcher``. - `6059 <https://github.com/pytest-dev/pytest/issues/6059>`_: Collection errors are reported as errors (and not failures like before) in the terminal's short test summary. - `6069 <https://github.com/pytest-dev/pytest/issues/6069>`_: ``pytester.spawn`` does not skip/xfail tests on FreeBSD anymore unconditionally. - `6097 <https://github.com/pytest-dev/pytest/issues/6097>`_: The "[XXX%]" indicator in the test summary is now colored according to the final (new) multi-colored line's main color. - `6116 <https://github.com/pytest-dev/pytest/issues/6116>`_: Added ``--co`` as a synonym to ``--collect-only``. - `6148 <https://github.com/pytest-dev/pytest/issues/6148>`_: ``atomicwrites`` is now only used on Windows, fixing a performance regression with assertion rewriting on Unix. - `6152 <https://github.com/pytest-dev/pytest/issues/6152>`_: Now parametrization will use the ``__name__`` attribute of any object for the id, if present. Previously it would only use ``__name__`` for functions and classes. - `6176 <https://github.com/pytest-dev/pytest/issues/6176>`_: Improved failure reporting with pytester's ``Hookrecorder.assertoutcome``. - `6181 <https://github.com/pytest-dev/pytest/issues/6181>`_: The reason for a stopped session, e.g. with ``--maxfail`` / ``-x``, now gets reported in the test summary. - `6206 <https://github.com/pytest-dev/pytest/issues/6206>`_: Improved ``cache.set`` robustness and performance. Bug Fixes --------- - `2049 <https://github.com/pytest-dev/pytest/issues/2049>`_: Fixed ``--setup-plan`` showing inaccurate information about fixture lifetimes. - `2548 <https://github.com/pytest-dev/pytest/issues/2548>`_: Fixed line offset mismatch of skipped tests in terminal summary. - `6039 <https://github.com/pytest-dev/pytest/issues/6039>`_: The ``PytestDoctestRunner`` is now properly invalidated when unconfiguring the doctest plugin. This is important when used with ``pytester``'s ``runpytest_inprocess``. - `6047 <https://github.com/pytest-dev/pytest/issues/6047>`_: BaseExceptions are now handled in ``saferepr``, which includes ``pytest.fail.Exception`` etc. - `6074 <https://github.com/pytest-dev/pytest/issues/6074>`_: pytester: fixed order of arguments in ``rm_rf`` warning when cleaning up temporary directories, and do not emit warnings for errors with ``os.open``. - `6189 <https://github.com/pytest-dev/pytest/issues/6189>`_: Fixed result of ``getmodpath`` method. Trivial/Internal Changes ------------------------ - `4901 <https://github.com/pytest-dev/pytest/issues/4901>`_: ``RunResult`` from ``pytester`` now displays the mnemonic of the ``ret`` attribute when it is a valid ``pytest.ExitCode`` value. ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pytest - Changelog: https://pyup.io/changelogs/pytest/ - Homepage: https://docs.pytest.org/en/latest/ </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Feb 15, 2020
108: Update coloredlogs to 11.0 r=duckinator a=pyup-bot This PR updates [coloredlogs](https://pypi.org/project/coloredlogs) from **10.0** to **11.0**. <details> <summary>Changelog</summary> ### 11.0 ``` ---------------------------- This is a maintenance release that drops Python 2.6 support, adds Python 3.7 support and merges quite a few minor pull requests. The major version number was bumped because of the compatibility changes. **Merged pull requests:** - `58`_: Don't import :mod:`coloredlogs` if ``$COLOREDLOGS_AUTO_INSTALL`` is set but empty. - `60`_: Fix :pypi:`flake8` messages to help stabilize Travis CI builds. - `61`_: Drop support for Python 2.6 to help stabilize Travis CI builds. - `62`_: Use SVG badge in README for consistency. - `69`_: Handle negative-offset timezones in tests. - `70`_: Use :func:`subprocess.check_call()` in the test suite to ensure that external commands succeed. - `74`_: Fix :exc:`~exceptions.TypeError` on MacOS on Python 3 in the :mod:`~coloredlogs.converter` module. **Other changes:** - Start testing on Python 3.7 (and document compatibility). - Workaround Python 3.7 regression in test suite. - Update ``Makefile`` to use Python 3 for local development. - Merge MacOS on Travis CI fixes from :pypi:`humanfriendly`. .. _Release 11.0: xolox/python-coloredlogs@10.0...11.0 .. _58: xolox/python-coloredlogs#58 .. _60: xolox/python-coloredlogs#60 .. _61: xolox/python-coloredlogs#61 .. _62: xolox/python-coloredlogs#62 .. _69: xolox/python-coloredlogs#69 .. _70: xolox/python-coloredlogs#70 .. _74: xolox/python-coloredlogs#74 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/coloredlogs - Changelog: https://pyup.io/changelogs/coloredlogs/ - Docs: https://coloredlogs.readthedocs.io </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Feb 16, 2020
112: Update coloredlogs to 12.0 r=duckinator a=pyup-bot This PR updates [coloredlogs](https://pypi.org/project/coloredlogs) from **11.0** to **12.0**. <details> <summary>Changelog</summary> ### 12.0 ``` ---------------------------- Two backwards incompatible changes prompted another major version bump: - Merged pull request `80`_ that drops support for Python 3.4 which has gone end-of-life and now represents less than 1% of PyPI downloads. - Improved compatibility with the Python standard library by changing the order of positional arguments received by the initializer of the :class:`~coloredlogs.ColoredFormatter` class (as suggested in `64`_ and `75`_). .. _Release 12.0: xolox/python-coloredlogs@11.3...12.0 .. _80: xolox/python-coloredlogs#80 .. _64: xolox/python-coloredlogs#64 .. _75: xolox/python-coloredlogs#75 ``` ### 11.3 ``` ---------------------------- - Add support for the ``%(username)s`` field (requested in `76`_) and properly document supported custom fields. - Consistently use ``console`` highlighting in documentation. - Fix a broken link in the readme. .. _Release 11.3: xolox/python-coloredlogs@11.2...11.3 .. _76: xolox/python-coloredlogs#76 ``` ### 11.2 ``` ---------------------------- Merge pull request `79`_ which adds support for Python 3.8. .. _Release 11.2: xolox/python-coloredlogs@11.1...11.2 .. _79: xolox/python-coloredlogs#79 ``` ### 11.1 ``` ---------------------------- Starting with the previous release I've resolved to try and tackle the large number of open issues after an unplanned hiatus from the development and maintenance of my open source projects, so here are some more bug fixes: - Fix support for custom log record factories and add a test to avoid regressions (`47`_, `59`_). - Change ``make screenshots`` to be Python 3 compatible and document additional requirements (`65`_). .. _Release 11.1: xolox/python-coloredlogs@11.0...11.1 .. _59: xolox/python-coloredlogs#59 .. _65: xolox/python-coloredlogs#65 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/coloredlogs - Changelog: https://pyup.io/changelogs/coloredlogs/ - Docs: https://coloredlogs.readthedocs.io </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Feb 16, 2020
113: Update coloredlogs to 14.0 r=duckinator a=pyup-bot This PR updates [coloredlogs](https://pypi.org/project/coloredlogs) from **12.0** to **14.0**. <details> <summary>Changelog</summary> ### 14.0 ``` ---------------------------- Integrate native Windows 10 support for ANSI escape sequences (`71`_, `72`_). Native support for ANSI escape sequences was added to Windows 10 after its initial release, specifically in release 10.0.14393. I've now updated :pypi:`coloredlogs` and :pypi:`humanfriendly` to detect and enable this "new" native support. Windows 10 seems to comprise the majority of Windows installations worldwide so in the interest of "looking forward" I've decided to drop the :pypi:`colorama` requirement, given that it has now become a minority use case. Hopefully most existing users will not experience any regression because they previously installed :pypi:`colorama` already, and when available it will still be used. However new installations on older Windows systems now require users to install :pypi:`colorama` separately. This has been documented in the readme in an attempt to minimize resulting confusion. PS. In case anyone is wondering: I decided that giving a major Windows support update in :pypi:`coloredlogs` the version 13.0 was asking for trouble, so I decided not to do that 😇. .. _Release 14.0: xolox/python-coloredlogs@12.0...14.0 .. _71: xolox/python-coloredlogs#71 .. _72: xolox/python-coloredlogs#72 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/coloredlogs - Changelog: https://pyup.io/changelogs/coloredlogs/ - Docs: https://coloredlogs.readthedocs.io </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
AstraLuma
pushed a commit
to AstraLuma/bork
that referenced
this pull request
Mar 5, 2020
25: Initial Update r=duckinator a=pyup-bot This PR sets up pyup.io on this repo and updates all dependencies at once, in a single branch. Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR. ### Update [twine](https://pypi.org/project/twine) from **1.13** to **1.15.0**. <details> <summary>Changelog</summary> ### 1.15.0 ``` * :feature:`488` Improved output on ``check`` command: Prints a message when there are no distributions given to check. Improved handling of errors in a distribution's markup, avoiding messages flowing through to the next distribution's errors. ``` ### 1.14.0 ``` * :feature:`456` Better error handling and gpg2 fallback if gpg not available. * :bug:`341` Fail more gracefully when encountering bad metadata * :feature:`459` Show Warehouse URL after uploading a package * :feature:`310` Now provide a more meaningful error on redirect during upload. ``` ### 1.13.0 ``` * :bug:`452 major` Restore prompts while retaining support for suppressing prompts. * :bug:`447 major` Avoid requests-toolbelt to 0.9.0 to prevent attempting to use openssl when it isn't available. * :feature:`427` Add disable_progress_bar option to disable tqdm. * :feature:`426` Allow defining an empty username and password in .pypirc. * :bug:`441 major` Only install pyblake2 if needed. * :bug:`444 major` Use io.StringIO instead of StringIO. * :bug:`436 major` Use modern Python language features. * :support:`439` Refactor tox env and travis config. * :bug:`435 major` Specify python_requires in setup.py * :bug:`432 major` Use https URLs everywhere. * :bug:`428 major` Fix --skip-existing for Nexus Repos. * :feature:`419` Support keyring.get_credential. * :feature:`418` Support keyring.get_username_and_password. * :bug:`421 major` Remove unnecessary usage of readme_render.markdown. * :feature:`416` Add Python 3.7 to classifiers. * :bug:`412 major` Don't crash if there's no package description. * :bug:`408 major` Fix keyring support. ``` ### 1.12.1 ``` * :bug:`404` Fix regression with upload exit code ``` ### 1.12.0 ``` * :feature:`395 major` Add ``twine check`` command to check long description * :feature:`392 major` Drop support for Python 3.3 * :feature:`363` Empower ``--skip-existing`` for Artifactory repositories * :bug:`367 major` Avoid MD5 when Python is compiled in FIPS mode ``` ### 1.11.0 ``` * :bug:`269 major` Avoid uploading to PyPI when given alternate repository URL, and require ``http://`` or ``https://`` in ``repository_url``. * :support:`277` Add instructions on how to use keyring. * :support:`314` Add new maintainer, release checklists. * :bug:`322 major` Raise exception if attempting upload to deprecated legacy PyPI URLs. * :feature:`320` Remove PyPI as default ``register`` package index. * :feature:`319` Support Metadata 2.1 (:pep:`566`), including Markdown for ``description`` fields. * :support:`318` `Update PyPI URLs <https://packaging.python.org/guides/migrating-to-pypi-org/>`_. ``` ### 1.10.0 ``` * :bug:`315 major` Degrade gracefully when keyring is unavailable * :feature:`304` Reorganize & improve user & developer documentation. * :feature:`46` Link to changelog from ``README`` * :feature:`295` Add doc building instructions * :feature:`296` Add architecture overview to docs * :feature:`303` Revise docs predicting future of ``twine`` * :bug:`298 major` Fix syntax highlighting in ``README`` * :bug:`299 major` Fix changelog formatting * :bug:`200 major` Remove obsolete registration guidance * :bug:`286 major` Fix Travis CI and test configuration * :feature:`257` Declare support for Python 3.6 * :bug:`297 major` Fix Read the Docs, tox, Travis configuration * :bug:`268 major` Print progress to ``stdout``, not ``stderr`` * :bug:`265 major` Fix ``--repository[-url]`` help text * :feature:`256` Improve progressbar ``` ### 1.9.1 ``` * :bug:`-` Blacklist known bad versions of Requests. See also :bug:`253` ``` ### 1.9.0 ``` * :support:`-` Twine will now resolve passwords using the `keyring <https://pypi.org/project/keyring/>`_ if available. Module can be required with the ``keyring`` extra. * :support:`-` Twine will use ``hashlib.blake2b`` on Python 3.6+ instead of using pyblake2 for Blake2 hashes 256 bit hashes. * :support:`-` Twine sends less information about the user's system in the User-Agent string. See also :bug:`229` * :support:`-` Fix ``--skip-existing`` when used to upload a package for the first time. See also :bug:`220` * :support:`-` Fix precedence of ``--repository-url`` over ``--repository``. See also :bug:`206` ``` ### 1.8.1 ``` * :support:`-` Check if a package exists if the URL is one of: * ``https://pypi.python.org/pypi/`` * ``https://upload.pypi.org/`` * ``https://upload.pypi.io/`` This helps people with ``https://upload.pypi.io`` still in their :file:`.pypirc` file. ``` ### 1.8.0 ``` * :feature:`201` Switch from upload.pypi.io to upload.pypi.org. * :feature:`144` Retrieve configuration from the environment as a default. * Repository URL will default to ``TWINE_REPOSITORY`` * Username will default to ``TWINE_USERNAME`` * Password will default to ``TWINE_PASSWORD`` * :feature:`166` Allow the Repository URL to be provided on the command-line (``--repository-url``) or via an environment variable (``TWINE_REPOSITORY_URL``). * :support:`-` Generate SHA256 digest for all packages by default. * :feature:`171` Generate Blake2b 256 digests for packages *if* ``pyblake2`` is installed. Users can use ``python -m pip install twine[with-blake2]`` to have ``pyblake2`` installed with Twine. * :support:`-` Stop testing on Python 2.6. 2.6 support will be "best effort" until 2.0.0 * :support:`-` Warn users if they receive a 500 error when uploading to ``*pypi.python.org`` ``` ### 1.7.4 ``` * :bug:`-` Correct a packaging error. ``` ### 1.7.3 ``` * :bug:`195` Fix uploads to instances of pypiserver using ``--skip-existing``. We were not properly checking the return status code on the response after attempting an upload. * :support:`-` Do not generate traffic to Legacy PyPI unless we're uploading to it or uploading to Warehouse (e.g., pypi.io). This avoids the attempt to upload a package to the index if we can find it on Legacy PyPI already. ``` ### 1.7.2 ``` * :bug:`189`, :bug:`191` Fix issue where we were checking the existence of packages even if the user didn't specify ``--skip-existing``. ``` ### 1.7.1 ``` * :bug:`187` Clint was not specified in the wheel metadata as a dependency. ``` ### 1.7.0 ``` * :feature:`142` Support ``--cert`` and ``--client-cert`` command-line flags and config file options for feature parity with pip. This allows users to verify connections to servers other than PyPI (e.g., local package repositories) with different certificates. * :feature:`152` Add progress bar to uploads. * :feature:`162` Allow ``--skip-existing`` to work for 409 status codes. * :feature:`167` Implement retries when the CDN in front of PyPI gives us a 5xx error. * :feature:`177` Switch Twine to upload to pypi.io instead of pypi.python.org. * :bug:`186 major` Allow passwords to have ``%``\ s in them. ``` ### 1.6.5 ``` * :bug:`155` Bump requests-toolbelt version to ensure we avoid ConnectionErrors ``` ### 1.6.4 ``` * :bug:`145` Paths with hyphens in them break the Wheel regular expression. * :bug:`146` Exception while accessing the ``repository`` key (sic) when raising a redirect exception. ``` ### 1.6.3 ``` * :bug:`137`, :bug:`140` Uploading signatures was broken due to the pull request that added large file support via ``requests-toolbelt``. This caused a 500 error on PyPI and prevented package and signature upload in twine 1.6.0 ``` ### 1.6.2 ``` * :bug:`132` Upload signatures with packages appropriately As part of the refactor for the 1.6.0 release, we were using the wrong name to find the signature file. This also uncovered a bug where if you're using twine in a situation where ``*`` is not expanded by your shell, we might also miss uploading signatures to PyPI. Both were fixed as part of this. ``` ### 1.6.1 ``` * :bug:`130` Fix signing support for uploads ``` ### 1.6.0 ``` * :feature:`106` Upload wheels first to PyPI * :feature:`104` Large file support via the ``requests-toolbelt`` * :bug:`92 major` Raise an exception on redirects * :feature:`97` Allow the user to specify the location of their :file:`.pypirc` * :feature:`115` Add the ``--skip-existing`` flag to ``twine upload`` to allow users to skip releases that already exist on PyPI. * :bug:`114 major` Warnings triggered by pkginfo searching for ``PKG-INFO`` files should no longer be user visible. * :bug:`116 major` Work around problems with Windows when using ``getpass.getpass`` * :bug:`111 major` Provide more helpful messages if :file:`.pypirc` is out of date. * :feature:`8` Support registering new packages with ``twine register`` ``` ### 1.5.0 ``` * :bug:`85 major` Display information about the version of setuptools installed * :bug:`61 major` Support deprecated pypirc file format * :feature:`29` Support commands not named "gpg" for signing * :support:`-` Add lower-limit to requests dependency ``` ### 1.4.0 ``` * :bug:`28 major` Prevent ResourceWarning from being shown * :bug:`34 major` List registered commands in help text * :bug:`32 major` Use ``pkg_resources`` to load registered commands * :bug:`47 major` Fix issue uploading packages with ``_``\ s in the name * :bug:`26 major` Add support for uploading Windows installers * :bug:`65 major` Expand globs and check for existence of dists to upload * :feature:`13` Parse :file:`~/.pypirc` ourselves and use ``subprocess`` instead of the ``distutils.spawn`` module. * :feature:`6` Switch to a git style dispatching for the commands to enable simpler commands and programmatic invocation. ``` ### 1.3.0 ``` * :feature:`-` Additional functionality. ``` ### 1.2.2 ``` * :feature:`0` Basic functionality. ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/twine - Changelog: https://pyup.io/changelogs/twine/ - Docs: https://twine.readthedocs.io/ </details> ### Update [wheel](https://pypi.org/project/wheel) from **0.33.6** to **0.33.6**. <details> <summary>Changelog</summary> ### 0.33.6 ``` - Fixed regression from 0.33.5 that broke building binary wheels against the limited ABI - Fixed egg2wheel compatibility with the future release of Python 3.10 (PR by Anthony Sottile) ``` ### 0.33.5 ``` - Don't add the ``m`` ABI flag to wheel names on Python 3.8 (PR by rdb) - Updated ``MANIFEST.in`` to include many previously omitted files in the sdist ``` ### 0.33.4 ``` - Reverted PR 289 (adding directory entries to the wheel file) due to incompatibility with ``distlib.wheel`` ``` ### 0.33.3 ``` - Fixed wheel build failures on some systems due to all attributes being preserved (PR by Matt Wozniski) ``` ### 0.33.2 ``` - Fixed empty directories missing from the wheel (PR by Jason R. Coombs) ``` ### 0.33.1 ``` - Fixed the ``--build-number`` option for ``wheel pack`` not being applied ``` ### 0.33.0 ``` - Added the ``--build-number`` option to the ``wheel pack`` command - Fixed bad shebangs sneaking into wheels - Fixed documentation issue with ``wheel pack`` erroneously being called ``wheel repack`` - Fixed filenames with "bad" characters (like commas) not being quoted in ``RECORD`` (PR by Paul Moore) - Sort requirements extras to ensure deterministic builds (PR by PoncinMatthieu) - Forced ``inplace = False`` when building a C extension for the wheel ``` ### 0.32.3 ``` - Fixed compatibility with Python 2.7.0 – 2.7.3 - Fixed handling of direct URL requirements with markers (PR by Benoit Pierre) ``` ### 0.32.2 ``` - Fixed build number appearing in the ``.dist-info`` directory name - Made wheel file name parsing more permissive - Fixed wrong Python tag in wheels converted from eggs (PR by John T. Wodder II) ``` ### 0.32.1 ``` - Fixed ``AttributeError: 'Requirement' object has no attribute 'url'`` on setuptools/pkg_resources versions older than 18.8 (PR by Benoit Pierre) - Fixed ``AttributeError: 'module' object has no attribute 'algorithms_available'`` on Python < 2.7.9 (PR by Benoit Pierre) - Fixed permissions on the generated ``.dist-info/RECORD`` file ``` ### 0.32.0 ``` - Removed wheel signing and verifying features - Removed the "wheel install" and "wheel installscripts" commands - Added the ``wheel pack`` command - Allowed multiple license files to be specified using the ``license_files`` option - Deprecated the ``license_file`` option - Eliminated duplicate lines from generated requirements in ``.dist-info/METADATA`` (thanks to Wim Glenn for the contribution) - Fixed handling of direct URL specifiers in requirements (PR by Benoit Pierre) - Fixed canonicalization of extras (PR by Benoit Pierre) - Warn when the deprecated ``[wheel]`` section is used in ``setup.cfg`` (PR by Jon Dufresne) ``` ### 0.31.1 ``` - Fixed arch as ``None`` when converting eggs to wheels ``` ### 0.31.0 ``` - Fixed displaying of errors on Python 3 - Fixed single digit versions in wheel files not being properly recognized - Fixed wrong character encodings being used (instead of UTF-8) to read and write ``RECORD`` (this sometimes crashed bdist_wheel too) - Enabled Zip64 support in wheels by default - Metadata-Version is now 2.1 - Dropped DESCRIPTION.rst and metadata.json from the list of generated files - Dropped support for the non-standard, undocumented ``provides-extra`` and ``requires-dist`` keywords in setup.cfg metadata - Deprecated all wheel signing and signature verification commands - Removed the (already defunct) ``tool`` extras from setup.py ``` ### 0.30.0 ``` - Added py-limited-api {cp32|cp33|cp34|...} flag to produce cpNN.abi3.{arch} tags on CPython 3. - Documented the ``license_file`` metadata key - Improved Python, abi tagging for ``wheel convert``. Thanks Ales Erjavec. - Fixed ``>`` being prepended to lines starting with "From" in the long description - Added support for specifying a build number (as per PEP 427). Thanks Ian Cordasco. - Made the order of files in generated ZIP files deterministic. Thanks Matthias Bach. - Made the order of requirements in metadata deterministic. Thanks Chris Lamb. - Fixed ``wheel install`` clobbering existing files - Improved the error message when trying to verify an unsigned wheel file - Removed support for Python 2.6, 3.2 and 3.3. ``` ### 0.29.0 ``` - Fix compression type of files in archive (Issue 155, Pull Request 62, thanks Xavier Fernandez) ``` ### 0.28.0 ``` - Fix file modes in archive (Issue 154) ``` ### 0.27.0 ``` - Support forcing a platform tag using ``--plat-name`` on pure-Python wheels, as well as nonstandard platform tags on non-pure wheels (Pull Request 60, Issue 144, thanks Andrés Díaz) - Add SOABI tags to platform-specific wheels built for Python 2.X (Pull Request 55, Issue 63, Issue 101) - Support reproducible wheel files, wheels that can be rebuilt and will hash to the same values as previous builds (Pull Request 52, Issue 143, thanks Barry Warsaw) - Support for changes in keyring >= 8.0 (Pull Request 61, thanks Jason R. Coombs) - Use the file context manager when checking if dependency_links.txt is empty, fixes problems building wheels under PyPy on Windows (Issue 150, thanks Cosimo Lupo) - Don't attempt to (recursively) create a build directory ending with ``..`` (invalid on all platforms, but code was only executed on Windows) (Issue 91) - Added the PyPA Code of Conduct (Pull Request 56) ``` ### 0.26.0 ``` - Fix multiple entrypoint comparison failure on Python 3 (Issue 148) ``` ### 0.25.0 ``` - Add Python 3.5 to tox configuration - Deterministic (sorted) metadata - Fix tagging for Python 3.5 compatibility - Support py2-none-'arch' and py3-none-'arch' tags - Treat data-only wheels as pure - Write to temporary file and rename when using wheel install --force ``` ### 0.24.0 ``` - The python tag used for pure-python packages is now .pyN (major version only). This change actually occurred in 0.23.0 when the --python-tag option was added, but was not explicitly mentioned in the changelog then. - wininst2wheel and egg2wheel removed. Use "wheel convert [archive]" instead. - Wheel now supports setuptools style conditional requirements via the extras_require={} syntax. Separate 'extra' names from conditions using the : character. Wheel's own setup.py does this. (The empty-string extra is the same as install_requires.) These conditional requirements should work the same whether the package is installed by wheel or by setup.py. ``` ### 0.23.0 ``` - Compatibility tag flags added to the bdist_wheel command - sdist should include files necessary for tests - 'wheel convert' can now also convert unpacked eggs to wheel - Rename pydist.json to metadata.json to avoid stepping on the PEP - The --skip-scripts option has been removed, and not generating scripts is now the default. The option was a temporary approach until installers could generate scripts themselves. That is now the case with pip 1.5 and later. Note that using pip 1.4 to install a wheel without scripts will leave the installation without entry-point wrappers. The "wheel install-scripts" command can be used to generate the scripts in such cases. - Thank you contributors ``` ### 0.22.0 ``` - Include entry_points.txt, scripts a.k.a. commands, in experimental pydist.json - Improved test_requires parsing - Python 2.6 fixes, "wheel version" command courtesy pombredanne ``` ### 0.21.0 ``` - Pregenerated scripts are the default again. - "setup.py bdist_wheel --skip-scripts" turns them off. - setuptools is no longer a listed requirement for the 'wheel' package. It is of course still required in order for bdist_wheel to work. - "python -m wheel" avoids importing pkg_resources until it's necessary. ``` ### 0.20.0 ``` - No longer include console_scripts in wheels. Ordinary scripts (shell files, standalone Python files) are included as usual. - Include new command "python -m wheel install-scripts [distribution [distribution ...]]" to install the console_scripts (setuptools-style scripts using pkg_resources) for a distribution. ``` ### 0.19.0 ``` - pymeta.json becomes pydist.json ``` ### 0.18.0 ``` - Python 3 Unicode improvements ``` ### 0.17.0 ``` - Support latest PEP-426 "pymeta.json" (json-format metadata) ``` ### 0.16.0 ``` - Python 2.6 compatibility bugfix (thanks John McFarlane) - Bugfix for C-extension tags for CPython 3.3 (using SOABI) - Bugfix for bdist_wininst converter "wheel convert" - Bugfix for dists where "is pure" is None instead of True or False - Python 3 fix for moving Unicode Description to metadata body - Include rudimentary API documentation in Sphinx (thanks Kevin Horn) ``` ### 0.15.0 ``` - Various improvements ``` ### 0.14.0 ``` - Changed the signature format to better comply with the current JWS spec. Breaks all existing signatures. - Include ``wheel unsign`` command to remove RECORD.jws from an archive. - Put the description in the newly allowed payload section of PKG-INFO (METADATA) files. ``` ### 0.13.0 ``` - Use distutils instead of sysconfig to get installation paths; can install headers. - Improve WheelFile() sort. - Allow bootstrap installs without any pkg_resources. ``` ### 0.12.0 ``` - Unit test for wheel.tool.install ``` ### 0.11.0 ``` - API cleanup ``` ### 0.10.3 ``` - Scripts fixer fix ``` ### 0.10.2 ``` - Fix keygen ``` ### 0.10.1 ``` - Preserve attributes on install. ``` ### 0.10.0 ``` - Include a copy of pkg_resources. Wheel can now install into a virtualenv that does not have distribute (though most packages still require pkg_resources to actually work; wheel install distribute) - Define a new setup.cfg section [wheel]. universal=1 will apply the py2.py3-none-any tag for pure python wheels. ``` ### 0.9.7 ``` - Only import dirspec when needed. dirspec is only needed to find the configuration for keygen/signing operations. ``` ### 0.9.6 ``` - requires-dist from setup.cfg overwrites any requirements from setup.py Care must be taken that the requirements are the same in both cases, or just always install from wheel. - drop dirspec requirement on win32 - improved command line utility, adds 'wheel convert [egg or wininst]' to convert legacy binary formats to wheel ``` ### 0.9.5 ``` - Wheel's own wheel file can be executed by Python, and can install itself: ``python wheel-0.9.5-py27-none-any/wheel install ...`` - Use argparse; basic ``wheel install`` command should run with only stdlib dependencies. - Allow requires_dist in setup.cfg's [metadata] section. In addition to dependencies in setup.py, but will only be interpreted when installing from wheel, not from sdist. Can be qualified with environment markers. ``` ### 0.9.4 ``` - Fix wheel.signatures in sdist ``` ### 0.9.3 ``` - Integrated digital signatures support without C extensions. - Integrated "wheel install" command (single package, no dependency resolution) including compatibility check. - Support Python 3.3 - Use Metadata 1.3 (PEP 426) ``` ### 0.9.2 ``` - Automatic signing if WHEEL_TOOL points to the wheel binary - Even more Python 3 fixes ``` ### 0.9.1 ``` - 'wheel sign' uses the keys generated by 'wheel keygen' (instead of generating a new key at random each time) - Python 2/3 encoding/decoding fixes - Run tests on Python 2.6 (without signature verification) ``` ### 0.9 ``` - Updated digital signatures scheme - Python 3 support for digital signatures - Always verify RECORD hashes on extract - "wheel" command line tool to sign, verify, unpack wheel files ``` ### 0.8 ``` - none/any draft pep tags update - improved wininst2wheel script - doc changes and other improvements ``` ### 0.7 ``` - sort .dist-info at end of wheel archive - Windows & Python 3 fixes from Paul Moore - pep8 - scripts to convert wininst & egg to wheel ``` ### 0.6 ``` - require distribute >= 0.6.28 - stop using verlib ``` ### 0.5 ``` - working pretty well ``` ### 0.4.2 ``` - hyphenated name fix ``` ### 0.4 ``` - improve test coverage - improve Windows compatibility - include tox.ini courtesy of Marc Abramowitz - draft hmac sha-256 signing function ``` ### 0.3 ``` - prototype egg2wheel conversion script ``` ### 0.2 ``` - Python 3 compatibility ``` ### 0.1 ``` - Initial version ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/wheel - Changelog: https://pyup.io/changelogs/wheel/ - Repo: https://github.com/pypa/wheel </details> ### Update [flake8](https://pypi.org/project/flake8) from **3.5** to **3.7.8**. <details> <summary>Changelog</summary> ### 3.7.8 ``` ------------------- You can view the `3.7.8 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix handling of ``Application.parse_preliminary_options_and_args`` when argv is an empty list (See also `GitLab!310`_, `GitLab518`_) - Fix crash when a file parses but fails to tokenize (See also `GitLab!314`_, `GitLab532`_) - Log the full traceback on plugin exceptions (See also `GitLab!317`_) - Fix `` noqa: ...`` comments with multi-letter codes (See also `GitLab!326`_, `GitLab549`_) .. all links .. _3.7.8 milestone: https://gitlab.com/pycqa/flake8/milestones/31 .. issue links .. _GitLab518: https://gitlab.com/pycqa/flake8/issues/518 .. _GitLab532: https://gitlab.com/pycqa/flake8/issues/532 .. _GitLab549: https://gitlab.com/pycqa/flake8/issues/549 .. merge request links .. _GitLab!310: https://gitlab.com/pycqa/flake8/merge_requests/310 .. _GitLab!314: https://gitlab.com/pycqa/flake8/merge_requests/314 .. _GitLab!317: https://gitlab.com/pycqa/flake8/merge_requests/317 .. _GitLab!326: https://gitlab.com/pycqa/flake8/merge_requests/326 ``` ### 3.7.7 ``` ------------------- You can view the `3.7.7 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix crahes in plugins causing ``flake8`` to hang while unpickling errors (See also `GitLab!308`_, `GitLab505`_) .. all links .. _3.7.7 milestone: https://gitlab.com/pycqa/flake8/milestones/30 .. issue links .. _GitLab505: https://gitlab.com/pycqa/flake8/issues/505 .. merge request links .. _GitLab!308: https://gitlab.com/pycqa/flake8/merge_requests/308 ``` ### 3.7.6 ``` ------------------- You can view the `3.7.6 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``--per-file-ignores`` for multi-letter error codes (See also `GitLab!303`_, `GitLab507`_) - Improve flake8 speed when only 1 filename is passed (See also `GitLab!305`_) .. all links .. _3.7.6 milestone: https://gitlab.com/pycqa/flake8/milestones/29 .. issue links .. _GitLab507: https://gitlab.com/pycqa/flake8/issues/507 .. merge request links .. _GitLab!303: https://gitlab.com/pycqa/flake8/merge_requests/303 .. _GitLab!305: https://gitlab.com/pycqa/flake8/merge_requests/305 ``` ### 3.7.5 ``` ------------------- You can view the `3.7.5 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix reporting of pyflakes "referenced before assignment" error (See also `GitLab!301`_, `GitLab503`_) .. all links .. _3.7.5 milestone: https://gitlab.com/pycqa/flake8/milestones/28 .. issue links .. _GitLab503: https://gitlab.com/pycqa/flake8/issues/503 .. merge request links .. _GitLab!301: https://gitlab.com/pycqa/flake8/merge_requests/301 ``` ### 3.7.4 ``` ------------------- You can view the `3.7.4 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix performance regression with lots of ``per-file-ignores`` and errors (See also `GitLab!299`_, `GitLab501`_) .. all links .. _3.7.4 milestone: https://gitlab.com/pycqa/flake8/milestones/27 .. issue links .. _GitLab501: https://gitlab.com/pycqa/flake8/issues/501 .. merge request links .. _GitLab!299: https://gitlab.com/pycqa/flake8/merge_requests/299 ``` ### 3.7.3 ``` ------------------- You can view the `3.7.3 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix imports of ``typing`` in python 3.5.0 / 3.5.1 (See also `GitLab!294`_, `GitLab498`_) - Fix ``flake8 --statistics`` (See also `GitLab!295`_, `GitLab499`_) - Gracefully ignore ``flake8-per-file-ignores`` plugin if installed (See also `GitLab!297`_, `GitLab495`_) - Improve error message for malformed ``per-file-ignores`` (See also `GitLab!298`_, `GitLab489`_) .. all links .. _3.7.3 milestone: https://gitlab.com/pycqa/flake8/milestones/26 .. issue links .. _GitLab489: https://gitlab.com/pycqa/flake8/issues/489 .. _GitLab495: https://gitlab.com/pycqa/flake8/issues/495 .. _GitLab498: https://gitlab.com/pycqa/flake8/issues/498 .. _GitLab499: https://gitlab.com/pycqa/flake8/issues/499 .. merge request links .. _GitLab!294: https://gitlab.com/pycqa/flake8/merge_requests/294 .. _GitLab!295: https://gitlab.com/pycqa/flake8/merge_requests/295 .. _GitLab!297: https://gitlab.com/pycqa/flake8/merge_requests/297 .. _GitLab!298: https://gitlab.com/pycqa/flake8/merge_requests/298 ``` ### 3.7.2 ``` ------------------- You can view the `3.7.2 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix broken ``flake8 --diff`` (regressed in 3.7.0) (See also `GitLab!292`_, `GitLab490`_) - Fix typo in plugin exception reporting (See also `GitLab!275`_, `GitLab491`_) - Fix ``AttributeError`` while attempting to use the legacy api (regressed in 3.7.0) (See also `GitLab!293`_, `GitLab497`_) .. all links .. _3.7.2 milestone: https://gitlab.com/pycqa/flake8/milestones/25 .. issue links .. _GitLab490: https://gitlab.com/pycqa/flake8/issues/490 .. _GitLab491: https://gitlab.com/pycqa/flake8/issues/491 .. _GitLab497: https://gitlab.com/pycqa/flake8/issues/497 .. merge request links .. _GitLab!292: https://gitlab.com/pycqa/flake8/merge_requests/292 .. _GitLab!275: https://gitlab.com/pycqa/flake8/merge_requests/275 .. _GitLab!293: https://gitlab.com/pycqa/flake8/merge_requests/293 ``` ### 3.7.1 ``` ------------------- You can view the `3.7.1 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix capitalized filenames in ``per-file-ignores`` setting (See also `GitLab!290`_, `GitLab488`_) .. all links .. _3.7.1 milestone: https://gitlab.com/pycqa/flake8/milestones/24 .. issue links .. _GitLab488: https://gitlab.com/pycqa/flake8/issues/488 .. merge request links .. _GitLab!290: https://gitlab.com/pycqa/flake8/merge_requests/290 ``` ### 3.7.0 ``` ------------------- You can view the `3.7.0 milestone`_ on GitLab for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Add dependency on ``entrypoints`` >= 0.3, < 0.4 (See also `GitLab!264`_, `GitLab!288`_) - Pyflakes has been updated to >= 2.1.0, < 2.2.0 (See also `GitLab!283`_, `GitLab!285`_) - pycodestyle has been updated to >= 2.5.0, < 2.6.0 (See also `GitLab!287`_) Features ~~~~~~~~ - Add support for ``per-file-ignores`` (See also `GitLab!259`_, `GitLab156`_, `GitLab!281`_, `GitLab471`_) - Enable use of ``float`` and ``complex`` option types (See also `GitLab!261`_, `GitLab452`_) - Improve startup performance by switching from ``pkg_resources`` to ``entrypoints`` (See also `GitLab!264`_) - Add metadata for use through the `pre-commit`_ git hooks framework (See also `GitLab!268`_, `GitLab!284`_) - Allow physical line checks to return more than one result (See also `GitLab!269`_) - Allow `` noqa:X123`` comments without space between the colon and codes list (See also `GitLab!273`_, `GitLab470`_) - Remove broken and unused ``flake8.listen`` plugin type (See also `GitLab!274`_, `GitLab480`_) .. all links .. _3.7.0 milestone: https://gitlab.com/pycqa/flake8/milestones/23 .. _pre-commit: https://pre-commit.com/ .. issue links .. _GitLab156: https://gitlab.com/pycqa/flake8/issues/156 .. _GitLab452: https://gitlab.com/pycqa/flake8/issues/452 .. _GitLab470: https://gitlab.com/pycqa/flake8/issues/470 .. _GitLab471: https://gitlab.com/pycqa/flake8/issues/471 .. _GitLab480: https://gitlab.com/pycqa/flake8/issues/480 .. merge request links .. _GitLab!259: https://gitlab.com/pycqa/flake8/merge_requests/259 .. _GitLab!261: https://gitlab.com/pycqa/flake8/merge_requests/261 .. _GitLab!264: https://gitlab.com/pycqa/flake8/merge_requests/264 .. _GitLab!268: https://gitlab.com/pycqa/flake8/merge_requests/268 .. _GitLab!269: https://gitlab.com/pycqa/flake8/merge_requests/269 .. _GitLab!273: https://gitlab.com/pycqa/flake8/merge_requests/273 .. _GitLab!274: https://gitlab.com/pycqa/flake8/merge_requests/274 .. _GitLab!281: https://gitlab.com/pycqa/flake8/merge_requests/281 .. _GitLab!283: https://gitlab.com/pycqa/flake8/merge_requests/283 .. _GitLab!284: https://gitlab.com/pycqa/flake8/merge_requests/284 .. _GitLab!285: https://gitlab.com/pycqa/flake8/merge_requests/285 .. _GitLab!287: https://gitlab.com/pycqa/flake8/merge_requests/287 .. _GitLab!288: https://gitlab.com/pycqa/flake8/merge_requests/288 ``` ### 3.6.0 ``` ------------------- You can view the `3.6.0 milestone`_ on GitLab for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - pycodestyle has been updated to >= 2.4.0, < 2.5.0 (See also `GitLab381`_, `GitLab415`_, `GitLab!212`_, `GitLab!230`_, `GitLab!231`_) - Pyflakes has been updated to >= 2.0.0, < 2.1.0 (See also `GitLab422`_, `GitLab!239`_) - flake8 requires python 2.x >= 2.7 or python 3.x >= 3.4 (See also `GitLab!225`_) Features ~~~~~~~~ - Add ``paths`` to allow local plugins to exist outside of ``sys.path`` (See also `GitLab379`_, `GitLab!211`_) - Copy ``setup.cfg`` files to the temporary git hook execution directory (See also `GitLab!215`_) - Only skip a file if `` flake8: noqa`` is on a line by itself (See also `GitLab453`_, `GitLab!219`_) - Provide a better user experience for broken plugins (See also `GitLab!221`_) - Report ``E902`` when a file passed on the command line does not exist (See also `GitLab405`_, `GitLab!227`_) - Add ``--extend-ignore`` for extending the default ``ignore`` instead of overriding it (See also `GitLab365`_, `GitLab!233`_) Bugs Fixed ~~~~~~~~~~ - Respect a formatter's newline setting when printing (See also `GitLab!222`_) - Fix leaking of processes in the legacy api (See also `GitLab410`_, `GitLab!228`_) - Fix a ``SyntaxWarning`` for an invalid escape sequence (See also `GitLab!244`_) - Fix ``DeprecationWarning`` due to import of ``abc`` classes from the ``collections`` module (See also `GitLab!249`_) - Defer ``setuptools`` import to improve flake8 startup time (See also `GitLab!250`_) - Fix inconsistent line endings in ``FileProcessor.lines`` when running under python 3.x (See also `GitLab457`_, `GitLab!255`_) .. all links .. _3.6.0 milestone: https://gitlab.com/pycqa/flake8/milestones/21 .. issue links .. _GitLab365: https://gitlab.com/pycqa/flake8/issues/365 .. _GitLab379: https://gitlab.com/pycqa/flake8/issues/379 .. _GitLab381: https://gitlab.com/pycqa/flake8/issues/381 .. _GitLab405: https://gitlab.com/pycqa/flake8/issues/405 .. _GitLab410: https://gitlab.com/pycqa/flake8/issues/410 .. _GitLab415: https://gitlab.com/pycqa/flake8/issues/415 .. _GitLab422: https://gitlab.com/pycqa/flake8/issues/422 .. _GitLab453: https://gitlab.com/pycqa/flake8/issues/453 .. _GitLab457: https://gitlab.com/pycqa/flake8/issues/457 .. merge request links .. _GitLab!211: https://gitlab.com/pycqa/flake8/merge_requests/211 .. _GitLab!212: https://gitlab.com/pycqa/flake8/merge_requests/212 .. _GitLab!215: https://gitlab.com/pycqa/flake8/merge_requests/215 .. _GitLab!219: https://gitlab.com/pycqa/flake8/merge_requests/219 .. _GitLab!221: https://gitlab.com/pycqa/flake8/merge_requests/221 .. _GitLab!222: https://gitlab.com/pycqa/flake8/merge_requests/222 .. _GitLab!225: https://gitlab.com/pycqa/flake8/merge_requests/225 .. _GitLab!227: https://gitlab.com/pycqa/flake8/merge_requests/227 .. _GitLab!228: https://gitlab.com/pycqa/flake8/merge_requests/228 .. _GitLab!230: https://gitlab.com/pycqa/flake8/merge_requests/230 .. _GitLab!231: https://gitlab.com/pycqa/flake8/merge_requests/231 .. _GitLab!233: https://gitlab.com/pycqa/flake8/merge_requests/233 .. _GitLab!239: https://gitlab.com/pycqa/flake8/merge_requests/239 .. _GitLab!244: https://gitlab.com/pycqa/flake8/merge_requests/244 .. _GitLab!249: https://gitlab.com/pycqa/flake8/merge_requests/249 .. _GitLab!250: https://gitlab.com/pycqa/flake8/merge_requests/250 .. _GitLab!255: https://gitlab.com/pycqa/flake8/merge_requests/255 ``` ### 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 ``` ------------------- - Rewrite our documentation from scratch! (http://flake8.pycqa.org) - 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: https://github.com/pycqa/flake8/pull/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.io/en/latest/user/using-hooks.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.io/>`_ - 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 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://gitlab.com/pycqa/flake8 </details> ### Update [flake8-bugbear](https://pypi.org/project/flake8-bugbear) from **19.8.0** to **19.8.0**. <details> <summary>Changelog</summary> ### 19.3.0 ``` Refer to README.md for changes. ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/flake8-bugbear - Changelog: https://pyup.io/changelogs/flake8-bugbear/ - Repo: https://github.com/PyCQA/flake8-bugbear </details> ### Update [flake8-commas](https://pypi.org/project/flake8-commas) from **2.0.0** to **2.0.0**. <details> <summary>Changelog</summary> ### 2.0.0 ``` ------------------ - Hide ._base from flake8 --version. (`Issue 45 <https://github.com/PyCQA/flake8-commas/issue/45>`_) - Update URL to https://github.com/PyCQA/flake8-commas/. (`Issue 51 <https://github.com/PyCQA/flake8-commas/pull/51>`_) - Add check for trailing commas on bare tuples - C818, thanks to `Chris AtLee <https://github.com/catlee>`_ and `Arkadiusz Adamski <https://github.com/ar4s/flake8_tuple>`_ (`PR 52 <https://github.com/PyCQA/flake8-commas/pull/52>`_) ``` ### 1.0.0 ``` ------------------ - No changes from 0.5.1, just releasing the first major version. ``` ### 0.5.1 ``` ------------------ - Refactor single/multi tuple/subscript to simply count commas in all cases. - Prohibit trailing commas in lambda parameter lists. - Fix a missing trailing comma false positive in subcripts with slices. - Fix a prohibited trailing comma false positve in subscripts with slices. - All (`Issue 48 <https://github.com/flake8-commas/flake8-commas/pull/4…
AstraLuma
pushed a commit
to AstraLuma/bork
that referenced
this pull request
Mar 5, 2020
26: Update pylint to 2.4.0 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.3.1** to **2.4.0**. <details> <summary>Changelog</summary> ### 2.4.0 ``` =========================== Release date: 2019-09-24 * New check: ``import-outside-toplevel`` This check warns when modules are imported from places other than a module toplevel, e.g. inside a function or a class. * Handle inference ambiguity for ``invalid-format-index`` Close 2752 * Removed Python 2 specific checks such as ``relative-import``, ``invalid-encoded-data``, ``missing-super-argument``. * Support forward references for ``function-redefined`` check. Close 2540 * Handle redefinitions in case of type checking imports. Close 2834 * Added a new check, ``consider-using-sys-exit`` This check is emitted when we detect that a quit() or exit() is invoked instead of sys.exit(), which is the preferred way of exiting in program. Close 2925 * ``useless-suppression`` check now ignores ``cyclic-import`` suppressions, which could lead to false postiives due to incomplete context at the time of the check. Close 3064 * Added new checks, ``no-else-break`` and ``no-else-continue`` These checks highlight unnecessary ``else`` and ``elif`` blocks after ``break`` and ``continue`` statements. Close 2327 * Don&duckinator#39;t emit ``protected-access`` when a single underscore prefixed attribute is used inside a special method Close 1802 * Fix the "statement" values in the PyLinter&duckinator#39;s stats reports by module. * Added a new check, ``invalid-overridden-method`` This check is emitted when we detect that a method is overridden as a property or a property is overridden as a method. This can indicate a bug in the application code that will trigger a runtime error. Close 2670 * Added a new check, ``arguments-out-of-order`` This check warns if you have arguments with names that match those in a function&duckinator#39;s signature but you are passing them in to the function in a different order. Close 2975 * Added a new check, ``redeclared-assigned-name`` This check is emitted when ``pylint`` detects that a name was assigned one or multiple times in the same assignment, which indicate a potential bug. Close 2898 * Ignore lambda 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&duckinator#39;ll have support for call context propagation, we&duckinator#39;re ignoring such cases if detected. We already did that for function calls, but the previous fix was not taking in consideration ``lambdas`` Close 2918 * Added a new check, ``self-assigning-variable`` This check is emitted when we detect that a variable is assigned to itself, which might indicate a potential bug in the code application. Close 2930 * Added a new check, ``property-with-parameters``. This check is emitted when we detect that a defined property also has parameters, which are useless. Close 3006 * Excluded protocol classes from a couple of checks. Close 3002. * Add a check `unnecessary-comprehension` that detects unnecessary comprehensions. This check is emitted when ``pylint`` finds list-, set- or dict-comprehensions, that are unnecessary and can be rewritten with the list-, set- or dict-constructors. Close 2905 * Excluded PEP 526 instance and class variables from ``no-member``. Close 2945 * Excluded `attrs` from `too-few-public-methods` check. Close 2988. * ``unused-import`` emitted for the right import names in function scopes. Close 2928 * Dropped support for Python 3.4. * ``assignment-from-no-return`` not triggered for async methods. Close 2902 * Don&duckinator#39;t emit ``attribute-defined-outside-init`` for variables defined in setters. Close 409 * Syntax errors report the column number. Close 2914 * Support fully qualified typing imports for type annotations. Close 2915 * Exclude ``__dict__`` from ``attribute-defined-outside-init`` * Fix pointer on spelling check when the error are more than one time in the same line. Close 2895 * Fix crash happening when parent of called object cannot be determined * Allow of in `GoogleDocstring.re_multiple_type` * Added `subprocess-run-check` to handle subrocess.run without explicitly set `check` keyword. Close 2848 * When we can&duckinator#39;t infer bare except handlers, skip ``try-except-raise`` Close 2853 * Handle more `unnecessary-lambda` cases when dealing with additional kwargs in wrapped calls Close 2845 * Better postponed evaluation of annotations handling Close 2847 * Support postponed evaluation of annotations for variable annotations. Close 2838 * ``epylint.py_run`` defaults to ``python`` in case the current executable is not a Python one. Close 2837 * Ignore raw docstrings when running Similarities checker with `ignore-docstrings=yes` option * Fix crash when calling ``inherit_from_std_ex`` on a class which is its own ancestor Close 2680 * Added a new check that warns the user if a function call is used inside a test but parentheses are missing. Close 2658 * ``len-as-condition`` now only fires when a ``len(x)`` call is made without an explicit comparison The message and description accompanying this checker has been changed reflect this new behavior, by explicitly asking to either rely on the fact that empty sequence are false or to compare the length with a scalar. Close 2684 * Add ``preferred-module`` checker that notify if an import has a replacement module that should be used. This check is emitted when ``pylint`` finds an imported module that has a preferred replacement listed in ``preferred-modules``. * ``assigning-non-slot`` not emitted for classes with unknown base classes. Close 2807 * ``old-division`` is not emitted for non-Const nodes. Close 2808 * Added method arguments to the dot writer for pyreverse. Close 2139 * Support for linting file from stdin. IDEs may benefit from the support for linting from an in-memory file. Close 1187 * Added a new check `class-variable-slots-conflict` This check is emitted when ``pylint`` finds a class variable that conflicts with a slot name, which would raise a ``ValueError`` at runtime. * Added new check: dict-iter-missing-items (E1141) Close 2761 * Fix issue with pylint name in output of python -m pylint --version Close 2764 * Relicense logo material under the CC BY-SA 4.0 license. * Skip `if` expressions from f-strings for the `check_elif` checker Close 2816 * C0412 (ungrouped-import) is now compatible with isort. Close 2806 * Added new extension to detect too much code in a try clause Close 2877 * ``signature-mutators`` option was added With this option, users can choose to ignore `too-many-function-args`, `unexpected-keyword-arg`, and `no-value-for-parameter` for functions decorated with decorators that change the signature of a decorated function. Close 259 * Fixed a pragma comment on its own physical line being ignored when part of a logical line with the previous physical line. Close 199 * Fixed false `undefined-loop-variable` for a function defined in the loop, that uses the variable defined in that loop. Close 202 * Fixed `unused-argument` and `function-redefined` getting raised for functions decorated with `typing.overload`. Close 1581 * Fixed a false positive with ``consider-using-dict-comprehension`` for constructions that can&duckinator#39;t be converted to a comprehension Close 2963 * Added ``__post_init__`` to ``defining-attr-methods`` in order to avoid ``attribute-defined-outside-init`` in dataclasses. Close 2581 * Changed description of W0199 to use the term 2-item-tuple instead of 2-uple. * Allow a `.` as a prefix for Sphinx name resolution. * Checkers must now keep a 1 to 1 relationship between "msgid" (ie: C1234) and "symbol" (ie : human-readable-symbol) * In checkers, an old_names can now be used for multiple new messages and pylint is now a little faster Caused by 1164. It means if you do a partial old_names for a message definition an exception will tell you that you must rename the associated identification. * Allow the choice of f-strings as a valid way of formatting logging strings. Closes 2395 * Added ``--list-msgs-enabled`` command to list all enabled and disabled messages given the current RC file and command line arguments. ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io> Co-authored-by: Ellen Marie Dash <me@duckie.co>
AstraLuma
pushed a commit
to AstraLuma/bork
that referenced
this pull request
Mar 5, 2020
32: Pin pytest to latest version 5.1.3 r=duckinator a=pyup-bot This PR pins [pytest](https://pypi.org/project/pytest) to the latest release **5.1.3**. <details> <summary>Changelog</summary> ### 5.1.3 ``` ========================= Bug Fixes --------- - `5807 <https://github.com/pytest-dev/pytest/issues/5807>`_: Fix pypy3.6 (nightly) on windows. - `5811 <https://github.com/pytest-dev/pytest/issues/5811>`_: Handle ``--fulltrace`` correctly with ``pytest.raises``. - `5819 <https://github.com/pytest-dev/pytest/issues/5819>`_: Windows: Fix regression with conftest whose qualified name contains uppercase characters (introduced by 5792). ``` ### 5.1.2 ``` ========================= Bug Fixes --------- - `2270 <https://github.com/pytest-dev/pytest/issues/2270>`_: Fixed ``self`` reference in function-scoped fixtures defined plugin classes: previously ``self`` would be a reference to a *test* class, not the *plugin* class. - `570 <https://github.com/pytest-dev/pytest/issues/570>`_: Fixed long standing issue where fixture scope was not respected when indirect fixtures were used during parametrization. - `5782 <https://github.com/pytest-dev/pytest/issues/5782>`_: Fix decoding error when printing an error response from ``--pastebin``. - `5786 <https://github.com/pytest-dev/pytest/issues/5786>`_: Chained exceptions in test and collection reports are now correctly serialized, allowing plugins like ``pytest-xdist`` to display them properly. - `5792 <https://github.com/pytest-dev/pytest/issues/5792>`_: Windows: Fix error that occurs in certain circumstances when loading ``conftest.py`` from a working directory that has casing other than the one stored in the filesystem (e.g., ``c:\test`` instead of ``C:\test``). ``` ### 5.1.1 ``` ========================= Bug Fixes --------- - `5751 <https://github.com/pytest-dev/pytest/issues/5751>`_: Fixed ``TypeError`` when importing pytest on Python 3.5.0 and 3.5.1. ``` ### 5.1.0 ``` ========================= Removals -------- - `5180 <https://github.com/pytest-dev/pytest/issues/5180>`_: As per our policy, the following features have been deprecated in the 4.X series and are now removed: * ``Request.getfuncargvalue``: use ``Request.getfixturevalue`` instead. * ``pytest.raises`` and ``pytest.warns`` no longer support strings as the second argument. * ``message`` parameter of ``pytest.raises``. * ``pytest.raises``, ``pytest.warns`` and ``ParameterSet.param`` now use native keyword-only syntax. This might change the exception message from previous versions, but they still raise ``TypeError`` on unknown keyword arguments as before. * ``pytest.config`` global variable. * ``tmpdir_factory.ensuretemp`` method. * ``pytest_logwarning`` hook. * ``RemovedInPytest4Warning`` warning type. * ``request`` is now a reserved name for fixtures. For more information consult `Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ in the docs. - `5565 <https://github.com/pytest-dev/pytest/issues/5565>`_: Removed unused support code for `unittest2 <https://pypi.org/project/unittest2/>`__. The ``unittest2`` backport module is no longer necessary since Python 3.3+, and the small amount of code in pytest to support it also doesn't seem to be used: after removed, all tests still pass unchanged. Although our policy is to introduce a deprecation period before removing any features or support for third party libraries, because this code is apparently not used at all (even if ``unittest2`` is used by a test suite executed by pytest), it was decided to remove it in this release. If you experience a regression because of this, please `file an issue <https://github.com/pytest-dev/pytest/issues/new>`__. - `5615 <https://github.com/pytest-dev/pytest/issues/5615>`_: ``pytest.fail``, ``pytest.xfail`` and ``pytest.skip`` no longer support bytes for the message argument. This was supported for Python 2 where it was tempting to use ``"message"`` instead of ``u"message"``. Python 3 code is unlikely to pass ``bytes`` to these functions. If you do, please decode it to an ``str`` beforehand. Features -------- - `5564 <https://github.com/pytest-dev/pytest/issues/5564>`_: New ``Config.invocation_args`` attribute containing the unchanged arguments passed to ``pytest.main()``. - `5576 <https://github.com/pytest-dev/pytest/issues/5576>`_: New `NUMBER <https://docs.pytest.org/en/latest/doctest.htmlusing-doctest-options>`__ option for doctests to ignore irrelevant differences in floating-point numbers. Inspired by Sébastien Boisgérault's `numtest <https://github.com/boisgera/numtest>`__ extension for doctest. Improvements ------------ - `5471 <https://github.com/pytest-dev/pytest/issues/5471>`_: JUnit XML now includes a timestamp and hostname in the testsuite tag. - `5707 <https://github.com/pytest-dev/pytest/issues/5707>`_: Time taken to run the test suite now includes a human-readable representation when it takes over 60 seconds, for example:: ===== 2 failed in 102.70s (0:01:42) ===== Bug Fixes --------- - `4344 <https://github.com/pytest-dev/pytest/issues/4344>`_: Fix RuntimeError/StopIteration when trying to collect package with "__init__.py" only. - `5115 <https://github.com/pytest-dev/pytest/issues/5115>`_: Warnings issued during ``pytest_configure`` are explicitly not treated as errors, even if configured as such, because it otherwise completely breaks pytest. - `5477 <https://github.com/pytest-dev/pytest/issues/5477>`_: The XML file produced by ``--junitxml`` now correctly contain a ``<testsuites>`` root element. - `5523 <https://github.com/pytest-dev/pytest/issues/5523>`_: Fixed using multiple short options together in the command-line (for example ``-vs``) in Python 3.8+. - `5524 <https://github.com/pytest-dev/pytest/issues/5524>`_: Fix issue where ``tmp_path`` and ``tmpdir`` would not remove directories containing files marked as read-only, which could lead to pytest crashing when executed a second time with the ``--basetemp`` option. - `5537 <https://github.com/pytest-dev/pytest/issues/5537>`_: Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the standard library on Python 3.8+. - `5578 <https://github.com/pytest-dev/pytest/issues/5578>`_: Improve type checking for some exception-raising functions (``pytest.xfail``, ``pytest.skip``, etc) so they provide better error messages when users meant to use marks (for example ``pytest.xfail`` instead of ``pytest.mark.xfail``). - `5606 <https://github.com/pytest-dev/pytest/issues/5606>`_: Fixed internal error when test functions were patched with objects that cannot be compared for truth values against others, like ``numpy`` arrays. - `5634 <https://github.com/pytest-dev/pytest/issues/5634>`_: ``pytest.exit`` is now correctly handled in ``unittest`` cases. This makes ``unittest`` cases handle ``quit`` from pytest's pdb correctly. - `5650 <https://github.com/pytest-dev/pytest/issues/5650>`_: Improved output when parsing an ini configuration file fails. - `5701 <https://github.com/pytest-dev/pytest/issues/5701>`_: Fix collection of ``staticmethod`` objects defined with ``functools.partial``. - `5734 <https://github.com/pytest-dev/pytest/issues/5734>`_: Skip async generator test functions, and update the warning message to refer to ``async def`` functions. Improved Documentation ---------------------- - `5669 <https://github.com/pytest-dev/pytest/issues/5669>`_: Add docstring for ``Testdir.copy_example``. Trivial/Internal Changes ------------------------ - `5095 <https://github.com/pytest-dev/pytest/issues/5095>`_: XML files of the ``xunit2`` family are now validated against the schema by pytest's own test suite to avoid future regressions. - `5516 <https://github.com/pytest-dev/pytest/issues/5516>`_: Cache node splitting function which can improve collection performance in very large test suites. - `5603 <https://github.com/pytest-dev/pytest/issues/5603>`_: Simplified internal ``SafeRepr`` class and removed some dead code. - `5664 <https://github.com/pytest-dev/pytest/issues/5664>`_: When invoking pytest's own testsuite with ``PYTHONDONTWRITEBYTECODE=1``, the ``test_xfail_handling`` test no longer fails. - `5684 <https://github.com/pytest-dev/pytest/issues/5684>`_: Replace manual handling of ``OSError.errno`` in the codebase by new ``OSError`` subclasses (``PermissionError``, ``FileNotFoundError``, etc.). ``` ### 5.0.1 ``` ========================= Bug Fixes --------- - `5479 <https://github.com/pytest-dev/pytest/issues/5479>`_: Improve quoting in ``raises`` match failure message. - `5523 <https://github.com/pytest-dev/pytest/issues/5523>`_: Fixed using multiple short options together in the command-line (for example ``-vs``) in Python 3.8+. - `5547 <https://github.com/pytest-dev/pytest/issues/5547>`_: ``--step-wise`` now handles ``xfail(strict=True)`` markers properly. Improved Documentation ---------------------- - `5517 <https://github.com/pytest-dev/pytest/issues/5517>`_: Improve "Declaring new hooks" section in chapter "Writing Plugins" ``` ### 5.0.0 ``` ========================= Important --------- This release is a Python3.5+ only release. For more details, see our `Python 2.7 and 3.4 support plan <https://docs.pytest.org/en/latest/py27-py34-deprecation.html>`__. Removals -------- - `1149 <https://github.com/pytest-dev/pytest/issues/1149>`_: Pytest no longer accepts prefixes of command-line arguments, for example typing ``pytest --doctest-mod`` inplace of ``--doctest-modules``. This was previously allowed where the ``ArgumentParser`` thought it was unambiguous, but this could be incorrect due to delayed parsing of options for plugins. See for example issues `1149 <https://github.com/pytest-dev/pytest/issues/1149>`__, `3413 <https://github.com/pytest-dev/pytest/issues/3413>`__, and `4009 <https://github.com/pytest-dev/pytest/issues/4009>`__. - `5402 <https://github.com/pytest-dev/pytest/issues/5402>`_: **PytestDeprecationWarning are now errors by default.** Following our plan to remove deprecated features with as little disruption as possible, all warnings of type ``PytestDeprecationWarning`` now generate errors instead of warning messages. **The affected features will be effectively removed in pytest 5.1**, so please consult the `Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ section in the docs for directions on how to update existing code. In the pytest ``5.0.X`` series, it is possible to change the errors back into warnings as a stop gap measure by adding this to your ``pytest.ini`` file: .. code-block:: ini [pytest] filterwarnings = ignore::pytest.PytestDeprecationWarning But this will stop working when pytest ``5.1`` is released. **If you have concerns** about the removal of a specific feature, please add a comment to `5402 <https://github.com/pytest-dev/pytest/issues/5402>`__. - `5412 <https://github.com/pytest-dev/pytest/issues/5412>`_: ``ExceptionInfo`` objects (returned by ``pytest.raises``) now have the same ``str`` representation as ``repr``, which avoids some confusion when users use ``print(e)`` to inspect the object. This means code like: .. code-block:: python with pytest.raises(SomeException) as e: ... assert "some message" in str(e) Needs to be changed to: .. code-block:: python with pytest.raises(SomeException) as e: ... assert "some message" in str(e.value) Deprecations ------------ - `4488 <https://github.com/pytest-dev/pytest/issues/4488>`_: The removal of the ``--result-log`` option and module has been postponed to (tentatively) pytest 6.0 as the team has not yet got around to implement a good alternative for it. - `466 <https://github.com/pytest-dev/pytest/issues/466>`_: The ``funcargnames`` attribute has been an alias for ``fixturenames`` since pytest 2.3, and is now deprecated in code too. Features -------- - `3457 <https://github.com/pytest-dev/pytest/issues/3457>`_: New `pytest_assertion_pass <https://docs.pytest.org/en/latest/reference.html_pytest.hookspec.pytest_assertion_pass>`__ hook, called with context information when an assertion *passes*. This hook is still **experimental** so use it with caution. - `5440 <https://github.com/pytest-dev/pytest/issues/5440>`_: The `faulthandler <https://docs.python.org/3/library/faulthandler.html>`__ standard library module is now enabled by default to help users diagnose crashes in C modules. This functionality was provided by integrating the external `pytest-faulthandler <https://github.com/pytest-dev/pytest-faulthandler>`__ plugin into the core, so users should remove that plugin from their requirements if used. For more information see the docs: https://docs.pytest.org/en/latest/usage.htmlfault-handler - `5452 <https://github.com/pytest-dev/pytest/issues/5452>`_: When warnings are configured as errors, pytest warnings now appear as originating from ``pytest.`` instead of the internal ``_pytest.warning_types.`` module. - `5125 <https://github.com/pytest-dev/pytest/issues/5125>`_: ``Session.exitcode`` values are now coded in ``pytest.ExitCode``, an ``IntEnum``. This makes the exit code available for consumer code and are more explicit other than just documentation. User defined exit codes are still valid, but should be used with caution. The team doesn't expect this change to break test suites or plugins in general, except in esoteric/specific scenarios. **pytest-xdist** users should upgrade to ``1.29.0`` or later, as ``pytest-xdist`` required a compatibility fix because of this change. Bug Fixes --------- - `1403 <https://github.com/pytest-dev/pytest/issues/1403>`_: Switch from ``imp`` to ``importlib``. - `1671 <https://github.com/pytest-dev/pytest/issues/1671>`_: The name of the ``.pyc`` files cached by the assertion writer now includes the pytest version to avoid stale caches. - `2761 <https://github.com/pytest-dev/pytest/issues/2761>`_: Honor PEP 235 on case-insensitive file systems. - `5078 <https://github.com/pytest-dev/pytest/issues/5078>`_: Test module is no longer double-imported when using ``--pyargs``. - `5260 <https://github.com/pytest-dev/pytest/issues/5260>`_: Improved comparison of byte strings. When comparing bytes, the assertion message used to show the byte numeric value when showing the differences:: def test(): > assert b'spam' == b'eggs' E AssertionError: assert b'spam' == b'eggs' E At index 0 diff: 115 != 101 E Use -v to get the full diff It now shows the actual ascii representation instead, which is often more useful:: def test(): > assert b'spam' == b'eggs' E AssertionError: assert b'spam' == b'eggs' E At index 0 diff: b's' != b'e' E Use -v to get the full diff - `5335 <https://github.com/pytest-dev/pytest/issues/5335>`_: Colorize level names when the level in the logging format is formatted using '%(levelname).Xs' (truncated fixed width alignment), where X is an integer. - `5354 <https://github.com/pytest-dev/pytest/issues/5354>`_: Fix ``pytest.mark.parametrize`` when the argvalues is an iterator. - `5370 <https://github.com/pytest-dev/pytest/issues/5370>`_: Revert unrolling of ``all()`` to fix ``NameError`` on nested comprehensions. - `5371 <https://github.com/pytest-dev/pytest/issues/5371>`_: Revert unrolling of ``all()`` to fix incorrect handling of generators with ``if``. - `5372 <https://github.com/pytest-dev/pytest/issues/5372>`_: Revert unrolling of ``all()`` to fix incorrect assertion when using ``all()`` in an expression. - `5383 <https://github.com/pytest-dev/pytest/issues/5383>`_: ``-q`` has again an impact on the style of the collected items (``--collect-only``) when ``--log-cli-level`` is used. - `5389 <https://github.com/pytest-dev/pytest/issues/5389>`_: Fix regressions of `5063 <https://github.com/pytest-dev/pytest/pull/5063>`__ for ``importlib_metadata.PathDistribution`` which have their ``files`` attribute being ``None``. - `5390 <https://github.com/pytest-dev/pytest/issues/5390>`_: Fix regression where the ``obj`` attribute of ``TestCase`` items was no longer bound to methods. - `5404 <https://github.com/pytest-dev/pytest/issues/5404>`_: Emit a warning when attempting to unwrap a broken object raises an exception, for easier debugging (`5080 <https://github.com/pytest-dev/pytest/issues/5080>`__). - `5432 <https://github.com/pytest-dev/pytest/issues/5432>`_: Prevent "already imported" warnings from assertion rewriter when invoking pytest in-process multiple times. - `5433 <https://github.com/pytest-dev/pytest/issues/5433>`_: Fix assertion rewriting in packages (``__init__.py``). - `5444 <https://github.com/pytest-dev/pytest/issues/5444>`_: Fix ``--stepwise`` mode when the first file passed on the command-line fails to collect. - `5482 <https://github.com/pytest-dev/pytest/issues/5482>`_: Fix bug introduced in 4.6.0 causing collection errors when passing more than 2 positional arguments to ``pytest.mark.parametrize``. - `5505 <https://github.com/pytest-dev/pytest/issues/5505>`_: Fix crash when discovery fails while using ``-p no:terminal``. Improved Documentation ---------------------- - `5315 <https://github.com/pytest-dev/pytest/issues/5315>`_: Expand docs on mocking classes and dictionaries with ``monkeypatch``. - `5416 <https://github.com/pytest-dev/pytest/issues/5416>`_: Fix PytestUnknownMarkWarning in run/skip example. ``` ### 4.6.5 ``` ========================= Bug Fixes --------- - `4344 <https://github.com/pytest-dev/pytest/issues/4344>`_: Fix RuntimeError/StopIteration when trying to collect package with "__init__.py" only. - `5478 <https://github.com/pytest-dev/pytest/issues/5478>`_: Fix encode error when using unicode strings in exceptions with ``pytest.raises``. - `5524 <https://github.com/pytest-dev/pytest/issues/5524>`_: Fix issue where ``tmp_path`` and ``tmpdir`` would not remove directories containing files marked as read-only, which could lead to pytest crashing when executed a second time with the ``--basetemp`` option. - `5547 <https://github.com/pytest-dev/pytest/issues/5547>`_: ``--step-wise`` now handles ``xfail(strict=True)`` markers properly. - `5650 <https://github.com/pytest-dev/pytest/issues/5650>`_: Improved output when parsing an ini configuration file fails. ``` ### 4.6.4 ``` ========================= Bug Fixes --------- - `5404 <https://github.com/pytest-dev/pytest/issues/5404>`_: Emit a warning when attempting to unwrap a broken object raises an exception, for easier debugging (`5080 <https://github.com/pytest-dev/pytest/issues/5080>`__). - `5444 <https://github.com/pytest-dev/pytest/issues/5444>`_: Fix ``--stepwise`` mode when the first file passed on the command-line fails to collect. - `5482 <https://github.com/pytest-dev/pytest/issues/5482>`_: Fix bug introduced in 4.6.0 causing collection errors when passing more than 2 positional arguments to ``pytest.mark.parametrize``. - `5505 <https://github.com/pytest-dev/pytest/issues/5505>`_: Fix crash when discovery fails while using ``-p no:terminal``. ``` ### 4.6.3 ``` ========================= Bug Fixes --------- - `5383 <https://github.com/pytest-dev/pytest/issues/5383>`_: ``-q`` has again an impact on the style of the collected items (``--collect-only``) when ``--log-cli-level`` is used. - `5389 <https://github.com/pytest-dev/pytest/issues/5389>`_: Fix regressions of `5063 <https://github.com/pytest-dev/pytest/pull/5063>`__ for ``importlib_metadata.PathDistribution`` which have their ``files`` attribute being ``None``. - `5390 <https://github.com/pytest-dev/pytest/issues/5390>`_: Fix regression where the ``obj`` attribute of ``TestCase`` items was no longer bound to methods. ``` ### 4.6.2 ``` ========================= Bug Fixes --------- - `5370 <https://github.com/pytest-dev/pytest/issues/5370>`_: Revert unrolling of ``all()`` to fix ``NameError`` on nested comprehensions. - `5371 <https://github.com/pytest-dev/pytest/issues/5371>`_: Revert unrolling of ``all()`` to fix incorrect handling of generators with ``if``. - `5372 <https://github.com/pytest-dev/pytest/issues/5372>`_: Revert unrolling of ``all()`` to fix incorrect assertion when using ``all()`` in an expression. ``` ### 4.6.1 ``` ========================= Bug Fixes --------- - `5354 <https://github.com/pytest-dev/pytest/issues/5354>`_: Fix ``pytest.mark.parametrize`` when the argvalues is an iterator. - `5358 <https://github.com/pytest-dev/pytest/issues/5358>`_: Fix assertion rewriting of ``all()`` calls to deal with non-generators. ``` ### 4.6.0 ``` ========================= Important --------- The ``4.6.X`` series will be the last series to support **Python 2 and Python 3.4**. For more details, see our `Python 2.7 and 3.4 support plan <https://docs.pytest.org/en/latest/py27-py34-deprecation.html>`__. Features -------- - `4559 <https://github.com/pytest-dev/pytest/issues/4559>`_: Added the ``junit_log_passing_tests`` ini value which can be used to enable or disable logging of passing test output in the Junit XML file. - `4956 <https://github.com/pytest-dev/pytest/issues/4956>`_: pytester's ``testdir.spawn`` uses ``tmpdir`` as HOME/USERPROFILE directory. - `5062 <https://github.com/pytest-dev/pytest/issues/5062>`_: Unroll calls to ``all`` to full for-loops with assertion rewriting for better failure messages, especially when using Generator Expressions. - `5063 <https://github.com/pytest-dev/pytest/issues/5063>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time. - `5091 <https://github.com/pytest-dev/pytest/issues/5091>`_: The output for ini options in ``--help`` has been improved. - `5269 <https://github.com/pytest-dev/pytest/issues/5269>`_: ``pytest.importorskip`` includes the ``ImportError`` now in the default ``reason``. - `5311 <https://github.com/pytest-dev/pytest/issues/5311>`_: Captured logs that are output for each failing test are formatted using the ColoredLevelFormatter. - `5312 <https://github.com/pytest-dev/pytest/issues/5312>`_: Improved formatting of multiline log messages in Python 3. Bug Fixes --------- - `2064 <https://github.com/pytest-dev/pytest/issues/2064>`_: The debugging plugin imports the wrapped ``Pdb`` class (``--pdbcls``) on-demand now. - `4908 <https://github.com/pytest-dev/pytest/issues/4908>`_: The ``pytest_enter_pdb`` hook gets called with post-mortem (``--pdb``). - `5036 <https://github.com/pytest-dev/pytest/issues/5036>`_: Fix issue where fixtures dependent on other parametrized fixtures would be erroneously parametrized. - `5256 <https://github.com/pytest-dev/pytest/issues/5256>`_: Handle internal error due to a lone surrogate unicode character not being representable in Jython. - `5257 <https://github.com/pytest-dev/pytest/issues/5257>`_: Ensure that ``sys.stdout.mode`` does not include ``'b'`` as it is a text stream. - `5278 <https://github.com/pytest-dev/pytest/issues/5278>`_: Pytest's internal python plugin can be disabled using ``-p no:python`` again. - `5286 <https://github.com/pytest-dev/pytest/issues/5286>`_: Fix issue with ``disable_test_id_escaping_and_forfeit_all_rights_to_community_support`` option not working when using a list of test IDs in parametrized tests. - `5330 <https://github.com/pytest-dev/pytest/issues/5330>`_: Show the test module being collected when emitting ``PytestCollectionWarning`` messages for test classes with ``__init__`` and ``__new__`` methods to make it easier to pin down the problem. - `5333 <https://github.com/pytest-dev/pytest/issues/5333>`_: Fix regression in 4.5.0 with ``--lf`` not re-running all tests with known failures from non-selected tests. Improved Documentation ---------------------- - `5250 <https://github.com/pytest-dev/pytest/issues/5250>`_: Expand docs on use of ``setenv`` and ``delenv`` with ``monkeypatch``. ``` ### 4.5.0 ``` ========================= Features -------- - `4826 <https://github.com/pytest-dev/pytest/issues/4826>`_: A warning is now emitted when unknown marks are used as a decorator. This is often due to a typo, which can lead to silently broken tests. - `4907 <https://github.com/pytest-dev/pytest/issues/4907>`_: Show XFail reason as part of JUnitXML message field. - `5013 <https://github.com/pytest-dev/pytest/issues/5013>`_: Messages from crash reports are displayed within test summaries now, truncated to the terminal width. - `5023 <https://github.com/pytest-dev/pytest/issues/5023>`_: New flag ``--strict-markers`` that triggers an error when unknown markers (e.g. those not registered using the `markers option`_ in the configuration file) are used in the test suite. The existing ``--strict`` option has the same behavior currently, but can be augmented in the future for additional checks. .. _`markers option`: https://docs.pytest.org/en/latest/reference.htmlconfval-markers - `5026 <https://github.com/pytest-dev/pytest/issues/5026>`_: Assertion failure messages for sequences and dicts contain the number of different items now. - `5034 <https://github.com/pytest-dev/pytest/issues/5034>`_: Improve reporting with ``--lf`` and ``--ff`` (run-last-failure). - `5035 <https://github.com/pytest-dev/pytest/issues/5035>`_: The ``--cache-show`` option/action accepts an optional glob to show only matching cache entries. - `5059 <https://github.com/pytest-dev/pytest/issues/5059>`_: Standard input (stdin) can be given to pytester's ``Testdir.run()`` and ``Testdir.popen()``. - `5068 <https://github.com/pytest-dev/pytest/issues/5068>`_: The ``-r`` option learnt about ``A`` to display all reports (including passed ones) in the short test summary. - `5108 <https://github.com/pytest-dev/pytest/issues/5108>`_: The short test summary is displayed after passes with output (``-rP``). - `5172 <https://github.com/pytest-dev/pytest/issues/5172>`_: The ``--last-failed`` (``--lf``) option got smarter and will now skip entire files if all tests of that test file have passed in previous runs, greatly speeding up collection. - `5177 <https://github.com/pytest-dev/pytest/issues/5177>`_: Introduce new specific warning ``PytestWarning`` subclasses to make it easier to filter warnings based on the class, rather than on the message. The new subclasses are: * ``PytestAssertRewriteWarning`` * ``PytestCacheWarning`` * ``PytestCollectionWarning`` * ``PytestConfigWarning`` * ``PytestUnhandledCoroutineWarning`` * ``PytestUnknownMarkWarning`` - `5202 <https://github.com/pytest-dev/pytest/issues/5202>`_: New ``record_testsuite_property`` session-scoped fixture allows users to log ``<property>`` tags at the ``testsuite`` level with the ``junitxml`` plugin. The generated XML is compatible with the latest xunit standard, contrary to the properties recorded by ``record_property`` and ``record_xml_attribute``. - `5214 <https://github.com/pytest-dev/pytest/issues/5214>`_: The default logging format has been changed to improve readability. Here is an example of a previous logging message:: test_log_cli_enabled_disabled.py 3 CRITICAL critical message logged by test This has now become:: CRITICAL root:test_log_cli_enabled_disabled.py:3 critical message logged by test The formatting can be changed through the `log_format <https://docs.pytest.org/en/latest/reference.htmlconfval-log_format>`__ configuration option. - `5220 <https://github.com/pytest-dev/pytest/issues/5220>`_: ``--fixtures`` now also shows fixture scope for scopes other than ``"function"``. Bug Fixes --------- - `5113 <https://github.com/pytest-dev/pytest/issues/5113>`_: Deselected items from plugins using ``pytest_collect_modifyitems`` as a hookwrapper are correctly reported now. - `5144 <https://github.com/pytest-dev/pytest/issues/5144>`_: With usage errors ``exitstatus`` is set to ``EXIT_USAGEERROR`` in the ``pytest_sessionfinish`` hook now as expected. - `5235 <https://github.com/pytest-dev/pytest/issues/5235>`_: ``outcome.exit`` is not used with ``EOF`` in the pdb wrapper anymore, but only with ``quit``. Improved Documentation ---------------------- - `4935 <https://github.com/pytest-dev/pytest/issues/4935>`_: Expand docs on registering marks and the effect of ``--strict``. Trivial/Internal Changes ------------------------ - `4942 <https://github.com/pytest-dev/pytest/issues/4942>`_: ``logging.raiseExceptions`` is not set to ``False`` anymore. - `5013 <https://github.com/pytest-dev/pytest/issues/5013>`_: pytest now depends on `wcwidth <https://pypi.org/project/wcwidth>`__ to properly track unicode character sizes for more precise terminal output. - `5059 <https://github.com/pytest-dev/pytest/issues/5059>`_: pytester's ``Testdir.popen()`` uses ``stdout`` and ``stderr`` via keyword arguments with defaults now (``subprocess.PIPE``). - `5069 <https://github.com/pytest-dev/pytest/issues/5069>`_: The code for the short test summary in the terminal was moved to the terminal plugin. - `5082 <https://github.com/pytest-dev/pytest/issues/5082>`_: Improved validation of kwargs for various methods in the pytester plugin. - `5202 <https://github.com/pytest-dev/pytest/issues/5202>`_: ``record_property`` now emits a ``PytestWarning`` when used with ``junit_family=xunit2``: the fixture generates ``property`` tags as children of ``testcase``, which is not permitted according to the most `recent schema <https://github.com/jenkinsci/xunit-plugin/blob/master/ src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd>`__. - `5239 <https://github.com/pytest-dev/pytest/issues/5239>`_: Pin ``pluggy`` to ``< 1.0`` so we don't update to ``1.0`` automatically when it gets released: there are planned breaking changes, and we want to ensure pytest properly supports ``pluggy 1.0``. ``` ### 4.4.2 ``` ========================= Bug Fixes --------- - `5089 <https://github.com/pytest-dev/pytest/issues/5089>`_: Fix crash caused by error in ``__repr__`` function with both ``showlocals`` and verbose output enabled. - `5139 <https://github.com/pytest-dev/pytest/issues/5139>`_: Eliminate core dependency on 'terminal' plugin. - `5229 <https://github.com/pytest-dev/pytest/issues/5229>`_: Require ``pluggy>=0.11.0`` which reverts a dependency to ``importlib-metadata`` added in ``0.10.0``. The ``importlib-metadata`` package cannot be imported when installed as an egg and causes issues when relying on ``setup.py`` to install test dependencies. Improved Documentation ---------------------- - `5171 <https://github.com/pytest-dev/pytest/issues/5171>`_: Doc: ``pytest_ignore_collect``, ``pytest_collect_directory``, ``pytest_collect_file`` and ``pytest_pycollect_makemodule`` hooks's 'path' parameter documented type is now ``py.path.local`` - `5188 <https://github.com/pytest-dev/pytest/issues/5188>`_: Improve help for ``--runxfail`` flag. Trivial/Internal Changes ------------------------ - `5182 <https://github.com/pytest-dev/pytest/issues/5182>`_: Removed internal and unused ``_pytest.deprecated.MARK_INFO_ATTRIBUTE``. ``` ### 4.4.1 ``` ========================= Bug Fixes --------- - `5031 <https://github.com/pytest-dev/pytest/issues/5031>`_: Environment variables are properly restored when using pytester's ``testdir`` fixture. - `5039 <https://github.com/pytest-dev/pytest/issues/5039>`_: Fix regression with ``--pdbcls``, which stopped working with local modules in 4.0.0. - `5092 <https://github.com/pytest-dev/pytest/issues/5092>`_: Produce a warning when unknown keywords are passed to ``pytest.param(...)``. - `5098 <https://github.com/pytest-dev/pytest/issues/5098>`_: Invalidate import caches with ``monkeypatch.syspath_prepend``, which is required with namespace packages being used. ``` ### 4.4.0 ``` ========================= Features -------- - `2224 <https://github.com/pytest-dev/pytest/issues/2224>`_: ``async`` test functions are skipped and a warning is emitted when a suitable async plugin is not installed (such as ``pytest-asyncio`` or ``pytest-trio``). Previously ``async`` functions would not execute at all but still be marked as "passed". - `2482 <https://github.com/pytest-dev/pytest/issues/2482>`_: Include new ``disable_test_id_escaping_and_forfeit_all_rights_to_community_support`` option to disable ascii-escaping in parametrized values. This may cause a series of problems and as the name makes clear, use at your own risk. - `4718 <https://github.com/pytest-dev/pytest/issues/4718>`_: The ``-p`` option can now be used to early-load plugins also by entry-point name, instead of just by module name. This makes it possible to early load external plugins like ``pytest-cov`` in the command-line:: pytest -p pytest_cov - `4855 <https://github.com/pytest-dev/pytest/issues/4855>`_: The ``--pdbcls`` option handles classes via module attributes now (e.g. ``pdb:pdb.Pdb`` with `pdb++`_), and its validation was improved. .. _pdb++: https://pypi.org/project/pdbpp/ - `4875 <https://github.com/pytest-dev/pytest/issues/4875>`_: The `testpaths <https://docs.pytest.org/en/latest/reference.htmlconfval-testpaths>`__ configuration option is now displayed next to the ``rootdir`` and ``inifile`` lines in the pytest header if the option is in effect, i.e., directories or file names were not explicitly passed in the command line. Also, ``inifile`` is only displayed if there's a configuration file, instead of an empty ``inifile:`` string. - `4911 <https://github.com/pytest-dev/pytest/issues/4911>`_: Doctests can be skipped now dynamically using ``pytest.skip()``. - `4920 <https://github.com/pytest-dev/pytest/issues/4920>`_: Internal refactorings have been made in order to make the implementation of the `pytest-subtests <https://github.com/pytest-dev/pytest-subtests>`__ plugin possible, which adds unittest sub-test support and a new ``subtests`` fixture as discussed in `1367 <https://github.com/pytest-dev/pytest/issues/1367>`__. For details on the internal refactorings, please see the details on the related PR. - `4931 <https://github.com/pytest-dev/pytest/issues/4931>`_: pytester's ``LineMatcher`` asserts that the passed lines are a sequence. - `4936 <https://github.com/pytest-dev/pytest/issues/4936>`_: Handle ``-p plug`` after ``-p no:plug``. This can be used to override a blocked plugin (e.g. in "addopts") from the command line etc. - `4951 <https://github.com/pytest-dev/pytest/issues/4951>`_: Output capturing is handled correctly when only capturing via fixtures (capsys, capfs) with ``pdb.set_trace()``. - `4956 <https://github.com/pytest-dev/pytest/issues/4956>`_: ``pytester`` sets ``$HOME`` and ``$USERPROFILE`` to the temporary directory during test runs. This ensures to not load configuration files from the real user's home directory. - `4980 <https://github.com/pytest-dev/pytest/issues/4980>`_: Namespace packages are handled better with ``monkeypatch.syspath_prepend`` and ``testdir.syspathinsert`` (via ``pkg_resources.fixup_namespace_packages``). - `4993 <https://github.com/pytest-dev/pytest/issues/4993>`_: The stepwise plugin reports status information now. - `5008 <https://github.com/pytest-dev/pytest/issues/5008>`_: If a ``setup.cfg`` file contains ``[tool:pytest]`` and also the no longer supported ``[pytest]`` section, pytest will use ``[tool:pytest]`` ignoring ``[pytest]``. Previously it would unconditionally error out. This makes it simpler for plugins to support old pytest versions. Bug Fixes --------- - `1895 <https://github.com/pytest-dev/pytest/issues/1895>`_: Fix bug where fixtures requested dynamically via ``request.getfixturevalue()`` might be teardown before the requesting fixture. - `4851 <https://github.com/pytest-dev/pytest/issues/4851>`_: pytester unsets ``PYTEST_ADDOPTS`` now to not use outer options with ``testdir.runpytest()``. - `4903 <https://github.com/pytest-dev/pytest/issues/4903>`_: Use the correct modified time for years after 2038 in rewritten ``.pyc`` files. - `4928 <https://github.com/pytest-dev/pytest/issues/4928>`_: Fix line offsets with ``ScopeMismatch`` errors. - `4957 <https://github.com/pytest-dev/pytest/issues/4957>`_: ``-p no:plugin`` is handled correctly for default (internal) plugins now, e.g. with ``-p no:capture``. Previously they were loaded (imported) always, making e.g. the ``capfd`` fixture available. - `4968 <https://github.com/pytest-dev/pytest/issues/4968>`_: The pdb ``quit`` command is handled properly when used after the ``debug`` command with `pdb++`_. .. _pdb++: https://pypi.org/project/pdbpp/ - `4975 <https://github.com/pytest-dev/pytest/issues/4975>`_: Fix the interpretation of ``-qq`` option where it was being considered as ``-v`` instead. - `4978 <https://github.com/pytest-dev/pytest/issues/4978>`_: ``outcomes.Exit`` is not swallowed in ``assertrepr_compare`` anymore. - `4988 <https://github.com/pytest-dev/pytest/issues/4988>`_: Close logging's file handler explicitly when the session finishes. - `5003 <https://github.com/pytest-dev/pytest/issues/5003>`_: Fix line offset with mark collection error (off by one). Improved Documentation ---------------------- - `4974 <https://github.com/pytest-dev/pytest/issues/4974>`_: Update docs for ``pytest_cmdline_parse`` hook to note availability liminations Trivial/Internal Changes ------------------------ - `4718 <https://github.com/pytest-dev/pytest/issues/4718>`_: ``pluggy>=0.9`` is now required. - `4815 <https://github.com/pytest-dev/pytest/issues/4815>`_: ``funcsigs>=1.0`` is now required for Python 2.7. - `4829 <https://github.com/pytest-dev/pytest/issues/4829>`_: Some left-over internal code related to ``yield`` tests has been removed. - `4890 <https://github.com/pytest-dev/pytest/issues/4890>`_: Remove internally unused ``anypython`` fixture from the pytester plugin. - `4912 <https://github.com/pytest-dev/pytest/issues/4912>`_: Remove deprecated Sphinx directive, ``add_description_unit()``, pin sphinx-removed-in to >= 0.2.0 to support Sphinx 2.0. - `4913 <https://github.com/pytest-dev/pytest/issues/4913>`_: Fix pytest tests invocation with custom ``PYTHONPATH``. - `4965 <https://github.com/pytest-dev/pytest/issues/4965>`_: New ``pytest_report_to_serializable`` and ``pytest_report_from_serializable`` **experimental** hooks. These hooks will be used by ``pytest-xdist``, ``pytest-subtests``, and the replacement for resultlog to serialize and customize reports. They are experimental, meaning that their details might change or even be removed completely in future patch releases without warning. Feedback is welcome from plugin authors and users alike. - `4987 <https://github.com/pytest-dev/pytest/issues/4987>`_: ``Collector.repr_failure`` respects the ``--tb`` option, but only defaults to ``short`` now (with ``auto``). ``` ### 4.3.1 ``` ========================= Bug Fixes --------- - `4810 <https://github.com/pytest-dev/pytest/issues/4810>`_: Logging messages inside ``pytest_runtest_logreport()`` are now properly captured and displayed. - `4861 <https://github.com/pytest-dev/pytest/issues/4861>`_: Improve validation of contents written to captured output so it behaves the same as when capture is disabled. - `4898 <https://github.com/pytest-dev/pytest/issues/4898>`_: Fix ``AttributeError: FixtureRequest has no 'confg' attribute`` bug in ``testdir.copy_example``. Trivial/Internal Changes ------------------------ - `4768 <https://github.com/pytest-dev/pytest/issues/4768>`_: Avoid pkg_resources import at the top-level. ``` ### 4.3.0 ``` ========================= Deprecations ------------ - `4724 <https://github.com/pytest-dev/pytest/issues/4724>`_: ``pytest.warns()`` now emits a warning when it receives unknown keyword arguments. This will be changed into an error in the future. Features -------- - `2753 <https://github.com/pytest-dev/pytest/issues/2753>`_: Usage errors from argparse are mapped to pytest's ``UsageError``. - `3711 <https://github.com/pytest-dev/pytest/issues/3711>`_: Add the ``--ignore-glob`` parameter to exclude test-modules with Unix shell-style wildcards. Add the ``collect_ignore_glob`` for ``conftest.py`` to exclude test-modules with Unix shell-style wildcards. - `4698 <https://github.com/pytest-dev/pytest/issues/4698>`_: The warning about Python 2.7 and 3.4 not being supported in pytest 5.0 has been removed. In the end it was considered to be more of a nuisance than actual utility and users of those Python versions shouldn't have problems as ``pip`` will not install pytest 5.0 on those interpreters. - `4707 <https://github.com/pytest-dev/pytest/issues/4707>`_: With the help of new ``set_log_path()`` method there is a way to set ``log_file`` paths from hooks. Bug Fixes --------- - `4651 <https://github.com/pytest-dev/pytest/issues/4651>`_: ``--help`` and ``--version`` are handled with ``UsageError``. - `4782 <https://github.com/pytest-dev/pytest/issues/4782>`_: Fix ``AssertionError`` with collection of broken symlinks with packages. ``` ### 4.2.1 ``` ========================= Bug Fixes --------- - `2895 <https://github.com/pytest-dev/pytest/issues/2895>`_: The ``pytest_report_collectionfinish`` hook now is also called with ``--collect-only``. - `3899 <https://github.com/pytest-dev/pytest/issues/3899>`_: Do not raise ``UsageError`` when an imported package has a ``pytest_plugins.py`` child module. - `4347 <https://github.com/pytest-dev/pytest/issues/4347>`_: Fix output capturing when using pdb++ with recursive debugging. - `4592 <https://github.com/pytest-dev/pytest/issues/4592>`_: Fix handling of ``collect_ignore`` via parent ``conftest.py``. - `4700 <https://github.com/pytest-dev/pytest/issues/4700>`_: Fix regression where ``setUpClass`` would always be called in subclasses even if all tests were skipped by a ``unittest.skip()`` decorator applied in the subclass. - `4739 <https://github.com/pytest-dev/pytest/issues/4739>`_: Fix ``parametrize(... ids=<function>)`` when the function returns non-strings. - `4745 <https://github.com/pytest-dev/pytest/issues/4745>`_: Fix/improve collection of args when passing in ``__init__.py`` and a test file. - `4770 <https://github.com/pytest-dev/pytest/issues/4770>`_: ``more_itertools`` is now constrained to <6.0.0 when required for Python 2.7 compatibility. - `526 <https://github.com/pytest-dev/pytest/issues/526>`_: Fix "ValueError: Plugin already registered" exceptions when running in build directories that symlink to actual source. Improved Documentation ---------------------- - `3899 <https://github.com/pytest-dev/pytest/issues/3899>`_: Add note to ``plugins.rst`` that ``pytest_plugins`` should not be used as a name for a user module containing plugins. - `4324 <https://github.com/pytest-dev/pytest/issues/4324>`_: Document how to use ``raises`` and ``does_not_raise`` to write parametrized tests with conditional raises. - `4709 <https://github.com/pytest-dev/pytest/issues/4709>`_: Document how to customize test failure messages when using ``pytest.warns``. Trivial/Internal Changes ------------------------ - `4741 <https://github.com/pytest-dev/pytest/issues/4741>`_: Some verbosity related attributes of the TerminalReporter plugin are now read only properties. ``` ### 4.2.0 ``` ========================= Features -------- - `3094 <https://github.com/pytest-dev/pytest/issues/3094>`_: `Classic xunit-style <https://docs.pytest.org/en/latest/xunit_setup.html>`__ functions and methods now obey the scope of *autouse* fixtures. This fixes a number of surprising issues like ``setup_method`` being called before session-scoped autouse fixtures (see `517 <https://github.com/pytest-dev/pytest/issues/517>`__ for an example). - `4627 <https://github.com/pytest-dev/pytest/issues/4627>`_: Display a message at the end of the test session when running under Python 2.7 and 3.4 that pytest 5.0 will no longer support those Python versions. - `4660 <https://github.com/pytest-dev/pytest/issues/4660>`_: The number of *selected* tests now are also displayed when the ``-k`` or ``-m`` flags are used. - `4688 <https://github.com/pytest-dev/pytest/issues/4688>`_: ``pytest_report_teststatus`` hook now can also receive a ``config`` parameter. - `4691 <https://github.com/pytest-dev/pytest/issues/4691>`_: ``pytest_terminal_summary`` hook now can also receive a ``config`` parameter. Bug Fixes --------- - `3547 <https://github.com/pytest-dev/pytest/issues/3547>`_: ``--junitxml`` can emit XML compatible with Jenkins xUnit. ``junit_family`` INI option accepts ``legacy|xunit1``, which produces old style output, and ``xunit2`` that conforms more strictly to https://github.com/jenkinsci/xunit-plugin/blob/xunit-2.3.2/src/main/resources/org/jenkinsci/plugins/xunit/types/model/xsd/junit-10.xsd - `4280 <https://github.com/pytest-dev/pytest/issues/4280>`_: Improve quitting from pdb, especially with ``--trace``. Using ``q[quit]`` after ``pdb.set_trace()`` will quit pytest also. - `4402 <https://github.com/pytest-dev/pytest/issues/4402>`_: Warning summary now groups warnings by message instead of by test id. This makes the output more compact and better conveys the general idea of how much code is actually generating warnings, instead of how many tests call that code. - `4536 <https://github.com/pytest-dev/pytest/issues/4536>`_: ``monkeypatch.delattr`` handles class descriptors like ``staticmethod``/``classmethod``. - `4649 <https://github.com/pytest-dev/pytest/issues/4649>`_: Restore marks being considered keywords for keyword expressions. - `4653 <https://github.com/pytest-dev/pytest/issues/4653>`_: ``tmp_path`` fixture and other related ones provides resolved path (a.k.a real path) - `4667 <https://github.com/pytest-dev/pytest/issues/4667>`_: ``pytest_terminal_summary`` uses result from ``pytest_report_teststatus`` hook, rather than hardcoded strings. - `4669 <https://github.com/pytest-dev/pytest/issues/4669>`_: Correctly handle ``unittest.SkipTest`` exception containing non-ascii characters on Python 2. - `4680 <https://github.com/pytest-dev/pytest/issues/4680>`_: Ensure the ``tmpdir`` and the ``tmp_path`` fixtures are the same folder. - `4681 <https://github.com/pytest-dev/pytest/issues/4681>`_: Ensure ``tmp_path`` is always a real path. Trivial/Internal Changes ------------------------ - `4643 <https://github.com/pytest-dev/pytest/issues/4643>`_: Use ``a.item()`` instead of the deprecated ``np.asscalar(a)`` in ``pytest.approx``. ``np.asscalar`` has been `deprecated <https://github.com/numpy/numpy/blob/master/doc/release/1.16.0-notes.rstnew-deprecations>`__ in ``numpy 1.16.``. - `4657 <https://github.com/pytest-dev/pytest/issues/4657>`_: Copy saferepr from pylib - `4668 <https://github.com/pytest-dev/pytest/issues/4668>`_: The verbose word for expected failures in the teststatus report changes from ``xfail`` to ``XFAIL`` to be consistent with other test outcomes. ``` ### 4.1.1 ``` ========================= Bug Fixes --------- - `2256 <https://github.com/pytest-dev/pytest/issues/2256>`_: Show full repr with ``assert a==b`` and ``-vv``. - `3456 <https://github.com/pytest-dev/pytest/issues/3456>`_: Extend Doctest-modules to ignore mock objects. - `4617 <https://github.com/pytest-dev/pytest/issues/4617>`_: Fixed ``pytest.warns`` bug when context manager is reused (e.g. multiple parametrization). - `4631 <https://github.com/pytest-dev/pytest/issues/4631>`_: Don't rewrite assertion when ``__getattr__`` is broken Improved Documentation ---------------------- - `3375 <https://github.com/pytest-dev/pytest/issues/3375>`_: Document that using ``setup.cfg`` may crash other tools or cause hard to track down problems because it uses a different parser than ``pytest.ini`` or ``tox.ini`` files. Trivial/Internal Changes ------------------------ - `4602 <https://github.com/pytest-dev/pytest/issues/4602>`_: Uninstall ``hypothesis`` in regen tox env. ``` ### 4.1.0 ``` ========================= Removals -------- - `2169 <https://github.com/pytest-dev/pytest/issues/2169>`_: ``pytest.mark.parametrize``: in previous versions, errors raised by id functions were suppressed and changed into warnings. Now the exceptions are propagated, along with a pytest message informing the node, parameter value and index where the exception occurred. - `3078 <https://github.com/pytest-dev/pytest/issues/3078>`_: Remove legacy internal warnings system: ``config.warn``, ``Node.warn``. The ``pytest_logwarning`` now issues a warning when implemented. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlconfig-warn-and-node-warn>`__ on information on how to update your code. - `3079 <https://github.com/pytest-dev/pytest/issues/3079>`_: Removed support for yield tests - they are fundamentally broken because they don't support fixtures properly since collection and test execution were separated. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlyield-tests>`__ on information on how to update your code. - `3082 <https://github.com/pytest-dev/pytest/issues/3082>`_: Removed support for applying marks directly to values in ``pytest.mark.parametrize``. Use ``pytest.param`` instead. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlmarks-in-pytest-mark-parametrize>`__ on information on how to update your code. - `3083 <https://github.com/pytest-dev/pytest/issues/3083>`_: Removed ``Metafunc.addcall``. This was the predecessor mechanism to ``pytest.mark.parametrize``. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlmetafunc-addcall>`__ on information on how to update your code. - `3085 <https://github.com/pytest-dev/pytest/issues/3085>`_: Removed support for passing strings to ``pytest.main``. Now, always pass a list of strings instead. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlpassing-command-line-string-to-pytest-main>`__ on information on how to update your code. - `3086 <https://github.com/pytest-dev/pytest/issues/3086>`_: ``[pytest]`` section in **setup.cfg** files is no longer supported, use ``[tool:pytest]`` instead. ``setup.cfg`` files are meant for use with ``distutils``, and a section named ``pytest`` has notoriously been a source of conflicts and bugs. Note that for **pytest.ini** and **tox.ini** files the section remains ``[pytest]``. - `3616 <https://github.com/pytest-dev/pytest/issues/3616>`_: Removed the deprecated compat properties for ``node.Class/Function/Module`` - use ``pytest.Class/Function/Module`` now. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlinternal-classes-accessed-through-node>`__ on information on how to update your code. - `4421 <https://github.com/pytest-dev/pytest/issues/4421>`_: Removed the implementation of the ``pytest_namespace`` hook. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlpytest-namespace>`__ on information on how to update your code. - `4489 <https://github.com/pytest-dev/pytest/issues/4489>`_: Removed ``request.cached_setup``. This was the predecessor mechanism to modern fixtures. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlcached-setup>`__ on information on how to update your code. - `4535 <https://github.com/pytest-dev/pytest/issues/4535>`_: Removed the deprecated ``PyCollector.makeitem`` method. This method was made public by mistake a long time ago. - `4543 <https://github.com/pytest-dev/pytest/issues/4543>`_: Removed support to define fixtures using the ``pytest_funcarg__`` prefix. Use the ``pytest.fixture`` decorator instead. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlpytest-funcarg-prefix>`__ on information on how to update your code. - `4545 <https://github.com/pytest-dev/pytest/issues/4545>`_: Calling fixtures directly is now always an error instead of a warning. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlcalling-fixtures-directly>`__ on information on how to update your code. - `4546 <https://github.com/pytest-dev/pytest/issues/4546>`_: Remove ``Node.get_marker(name)`` the return value was not usable for more than a existence check. Use ``Node.get_closest_marker(name)`` as a replacement. - `4547 <https://github.com/pytest-dev/pytest/issues/4547>`_: The deprecated ``record_xml_property`` fixture has been removed, use the more generic ``record_property`` instead. See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlrecord-xml-property>`__ for more information. - `4548 <https://github.com/pytest-dev/pytest/issues/4548>`_: An error is now raised if the ``pytest_plugins`` variable is defined in a non-top-level ``conftest.py`` file (i.e., not residing in the ``rootdir``). See our `docs <https://docs.pytest.org/en/latest/deprecations.htmlpytest-plugins-in-non-top-level-conftest-files>`__ for more information. - `891 <https://github.com/pytest-dev/pytest/issues/891>`_: Remove ``testfunction.markername`` attributes - use ``Node.iter_markers(name=None)`` to iterate them. Deprecations ------------ - `3050 <https://github.com/pytest-dev/pytest/issues/3050>`_: Deprecated the ``pytest.config`` global. See https://docs.pytest.org/en/latest/deprecations.htmlpytest-config-global for rationale. - `3974 <https://github.com/pytest-dev/pytest/issues/3974>`_: Passing the ``message`` parameter of ``pytest.raises`` now issues a ``DeprecationWarning``. It is a common mistake to think this parameter will match the exception message, while in fact it only serves to provide a custom message in case the ``pytest.raises`` check fails. To avoid this mistake and because it is believed to be little used, pytest is deprecating it without providing an alternative for the moment. If you have concerns about this, please comment on `issue 3974 <https://github.com/pytest-dev/pytest/issues/3974>`__. - `4435 <https://github.com/pytest-dev/pytest/issues/4435>`_: Deprecated ``raises(..., 'code(as_a_string)')`` and ``warns(..., 'code(as_a_string)')``. See https://docs.pytest.org/en/latest/deprecations.htmlraises-warns-exec for rationale and examples. Features -------- - `3191 <https://github.com/pytest-dev/pytest/issues/3191>`_: A warning is now issued when assertions are made for ``None``. This is a common source of confusion among new users, which write: .. code-block:: python assert mocked_object.assert_called_with(3, 4, 5, key="value") When they should write: .. code-block:: python mocked_object.assert_called_with(3, 4, 5, key="value") Because the ``assert_called_with`` method of mock objects already executes an assertion. This warning will not be issued when ``None`` is explicitly checked. An assertion like: .. code-block:: python assert variable is None will not issue the warning. - `3632 <https://github.com/pytest-dev/pytest/issues/3632>`_: Richer equality comparison introspection on ``AssertionError`` for objects created using `attrs <http://www.attrs.org/en/stable/>`__ or `dataclasses <https://docs.python.org/3/library/dataclasses.html>`_ (Python 3.7+, `backported to 3.6 <https://pypi.org/project/dataclasses>`__). - `4278 <https://github.com/pytest-dev/pytest/issues/4278>`_: ``CACHEDIR.TAG`` files are now created inside cache directories. Those files are part of the `Cache Directory Tagging Standard <http://www.bford.info/cachedir/spec.html>`__, and can be used by backup or synchronization programs to identify pytest's cache directory as such. - `4292 <https://github.com/pytest-dev/pytest/issues/4292>`_: ``pytest.outcomes.Exit`` is derived from ``SystemExit`` instead of ``KeyboardInterrupt``. This allows us to better handle ``pdb`` exiting. - `4371 <https://github.com/pytest-dev/pytest/issues/4371>`_: Updated the ``--collect-only`` option to display test descriptions when ran using ``--verbose``. - `4386 <https://github.com/pytest-dev/pytest/issues/4386>`_: Restructured ``ExceptionInfo`` object construction and ensure incomplete instances have a ``repr``/``str``. - `4416 <https://github.com/pytest-dev/pytest/issues/4416>`_: pdb: added support for keyword arguments with ``pdb.set_trace``. It handles ``header`` similar to Python 3.7 does it, and forwards any other keyword arguments to the ``Pdb`` constructor. This allows for ``__import__("pdb").set_trace(skip=["foo.*"])``. - `4483 <https://github.com/pytest-dev/pytest/issues/4483>`_: Added ini parameter ``junit_duration_report`` to optionally report test call durations, excluding setup and teardown times. The JUnit XML specification and the default pytest behavior is to include setup and teardown times in the test duration report. You can include just the call durations instead (excluding setup and teardown) by adding this to your ``pytest.ini`` file: .. code-block:: ini [pytest] junit_duration_report = call - `4532 <https://github.com/pytest-dev/pytest/issues/4532>`_: ``-ra`` now will show errors and failures last, instead of as the first items in the summary. This makes it easier to obtain a list of errors and failures to run tests selectively. - `4599 <https://github.com/pytest-dev/pytest/issues/4599>`_: ``pytest.importorskip`` now supports a ``reason`` parameter, which will be shown when the requested module cannot be imported. Bug Fixes --------- - `3532 <https://github.com/pytest-dev/pytest/issues/3532>`_: ``-p`` now accepts its argument without a space between the value, for example ``-pmyplugin``. - `4327 <https://github.com/pytest-dev/pytest/issues/4327>`_: ``approx`` again works with more generic containers, more precisely instances of ``Iterable`` and ``Sized`` instead of more restrictive ``Sequence``. - `4397 <https://github.com/pytest-dev/pytest/issues/4397>`_: Ensure that node ids are printable. - `4435 <https://github.com/pytest-dev/pytest/issues/4435>`_: Fixed ``raises(..., 'code(string)')`` frame filename. - `4458 <https://github.com/pytest-dev/pytest/issues/4458>`_: Display actual test ids in ``--collect-only``. Improved Documentation ---------------------- - `4557 <https://github.com/pytest-dev/pytest/issues/4557>`_: Markers example documentation page updated to support latest pytest version. - `4558 <https://github.com/pytest-dev/pytest/issues/4558>`_: Update cache documentation example to correctly show cache hit and miss. - `4580 <https://github.com/pytest-dev/pytest/issues/4580>`_: Improved detailed summary report documentation. Trivial/Internal Changes ------------------------ - `4447 <https://github.com/pytest-dev/pytest/issues/4447>`_: Changed the deprecation type of ``--result-log`` to ``PytestDeprecationWarning``. It was decided to remove this feature at the next major revision. ``` ### 4.0.2 ``` ========================= Bug Fixes --------- - `4265 <https://github.com/pytest-dev/pytest/issues/4265>`_: Validate arguments from the ``PYTEST_ADDOPTS`` environment variable and the ``addopts`` ini option separately. - `4435 <https://github.com/pytest-dev/pytest/issues/4435>`_: Fix ``raises(..., 'code(string)')`` frame filename. - `4500 <https://github.com/pytest-dev/pytest/issues/4500>`_: When a fixture yields and a log call is made after the test runs, and, if the test is interrupted, capture attributes are ``None``. - `4538 <https://github.com/pytest-dev/pytest/issues/4538>`_: Raise ``TypeError`` for ``with raises(..., match=<non-None falsey value>)``. Improved Documentation ---------------------- - `1495 <https://github.com/pytest-dev/pytest/issues/1495>`_: Document common doctest fixture directory tree structure pitfalls ``` ### 4.0.1 ``` ========================= Bug Fixes --------- - `3952 <https://github.com/pytest-dev/pytest/issues/3952>`_: Display warnings before "short test summary info" again, but still later warnings in the end. - `4386 <https://github.com/pytest-dev/pytest/issues/4386>`_: Handle uninitialized exceptioninfo in repr/str. - `4393 <https://github.com/pytest-dev/pytest/issues/4393>`_: Do not create ``.gitignore``/``README.md`` files in existing cache directories. - `4400 <https://github.com/pytest-dev/pytest/issues/4400>`_: Rearrange warning handling for the yield test errors so the opt-out in 4.0.x correctly works. - `4405 <https://github.com/pytest-dev/pytest/issues/4405>`_: Fix collection of testpaths with ``--pyargs``. - `4412 <https://github.com/pytest-dev/pytest/issues/4412>`_: Fix assertion rewriting involving ``Starred`` + side-effects. - `4425 <https://github.com/pytest-dev/pytest/issues/4425>`_: Ensure we resolve the absolute path when the given ``--basetemp`` is a relative path. Trivial/Internal Changes ------------------------ - `4315 <https://github.com/pytest-dev/pytest/issues/4315>`_: Use ``pkg_resources.parse_version`` instead of ``LooseVersion`` in minversion check. - `4440 <https://github.com/pytest-dev/pytest/issues/4440>`_: Adjust the stack level of some internal pytest warnings. ``` ### 4.0.0 ``` ========================= Removals -------- - `3737 <https://github.com/pytest-dev/pytest/issues/3737>`_: **RemovedInPytest4Warnings are now errors by default.** Following our plan to remove deprecated features with as little disruption as possible, all warnings of type ``RemovedInPytest4Warnings`` now generate errors instead of warning messages. **The affected features will be effectively removed in pytest 4.1**, so please consult the `Deprecations and Removals <https://docs.pytest.org/en/latest/deprecations.html>`__ section in the docs for directions on how to update existing code. In the pytest ``4.0.X`` series, it is possible to change the errors back into warnings as a stop gap measure by adding this to your ``pytest.ini`` file: .. code-block:: ini [pytest] filterwarnings = ignore::pytest.RemovedInPytest4Warning But this will stop working when pytest ``4.1`` is released. **If you have concerns** about the removal of a specific feature, please add a comment to `4348 <https://github.com/pytest-dev/pytest/issues/4348>`__. - `4358 <https://g…
AstraLuma
pushed a commit
to AstraLuma/bork
that referenced
this pull request
Mar 5, 2020
33: Pin pytest-flake8 to latest version 1.0.4 r=duckinator a=pyup-bot This PR pins [pytest-flake8](https://pypi.org/project/pytest-flake8) to the latest release **1.0.4**. <details> <summary>Changelog</summary> ### 1.0.4 ``` ----- - Support flake8 3.7+ by checking existence of "app.make_notifier"; from jirikuncargithub - More fixes for Travis CI -- properly specify Python versions, in particular for pypy (and fix a typo) ``` ### 1.0.3 ``` ----- - Don&duckinator#39;t use long deprecated functions from pytest, broke with pytest 4.1.0 - Fix typo that caused some tests to not run as expected - Run Travis CI tests against Python 3.7, and fix some issues with current tox ``` ### 1.0.2 ``` ----- - Test on Python 3.7 - Escape a regex tring with r"" ``` ### 1.0.1 ``` ----- - Correct junit XML output for pytest 3.5.x ``` ### 1.0.0 ``` ----- - Honor ignore settings in default flake8 config section; from brianbruggemangithub - Improve junit XML output; from Struan Judd ``` ### 0.9.1 ``` ----- - Do continuous integration with Travis; from alex-drgithub - Declare compatibility with Python 3.6 ``` ### 0.9 ``` --- - Extend options already loaded instead of replacing them; from mforbesgithub - Correct some issues preventing proper operation with flake8 3.5.0; from jezdezgithub - Register pytest marker for flake8; from alex-drgithub ``` ### 0.8 ``` ---------- - Allow running with no cacheprovider - Modernize use of fixtures in tests ``` ### 0.7 ``` --- - Added new options "flake8-max-complexity", "flake8-show-source" and "flake8-statistics" ``` ### 0.6 ``` --- - Update for flake8 3.x ``` ### 0.5 ``` --- - Fix rendering of rST; from Ken Dreyer ``` ### 0.4 ``` --- - Really fix cache usage; had a comparison between tuple and list which always failed ``` ### 0.3 ``` --- - Use integrated pytest cache instead of separate pytest-cache module (which is now integrated) - Use documented hooks for start and end of a test run ``` ### 0.2 ``` --- - Added ability to override maximum line length ``` ### 0.1 ``` --- - initial release ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pytest-flake8 - Changelog: https://pyup.io/changelogs/pytest-flake8/ - Repo: https://github.com/tholo/pytest-flake8 </details> Co-authored-by: pyup-bot <github-bot@pyup.io> Co-authored-by: Ellen Marie Dash <the@smallest.dog>
bors bot
added a commit
that referenced
this pull request
Mar 10, 2020
118: Update click to 7.1.1 r=duckinator a=pyup-bot This PR updates [click](https://pypi.org/project/click) from **7.0** to **7.1.1**. <details> <summary>Changelog</summary> ### 7.1.1 ``` ------------- Released 2020-03-09 - Fix ``ClickException`` output going to stdout instead of stderr. :issue:`1495` ``` ### 7.1 ``` ----------- Released 2020-03-09 - Fix PyPI package name, "click" is lowercase again. - Fix link in ``unicode_literals`` error message. :pr:`1151` - Add support for colored output on UNIX Jupyter notebooks. :issue:`1185` - Operations that strip ANSI controls will strip the cursor hide/show sequences. :issue:`1216` - Remove unused compat shim for ``bytes``. :pr:`1195` - Expand testing around termui, especially getchar on Windows. :issue:`1116` - Fix output on Windows Python 2.7 built with MSVC 14. :pr:`1342` - Fix ``OSError`` when running in MSYS2. :issue:`1338` - Fix ``OSError`` when redirecting to ``NUL`` stream on Windows. :issue:`1065` - Fix memory leak when parsing Unicode arguments on Windows. :issue:`1136` - Fix error in new AppEngine environments. :issue:`1462` - Always return one of the passed choices for ``click.Choice`` :issue:`1277`, :pr:`1318` - Add ``no_args_is_help`` option to ``click.Command``, defaults to False :pr:`1167` - Add ``show_defaults`` parameter to ``Context`` to enable showing defaults globally. :issue:`1018` - Handle ``env MYPATH=''`` as though the option were not passed. :issue:`1196` - It is once again possible to call ``next(bar)`` on an active progress bar instance. :issue:`1125` - ``open_file`` with ``atomic=True`` retains permissions of existing files and respects the current umask for new files. :issue:`1376` - When using the test ``CliRunner`` with ``mix_stderr=False``, if ``result.stderr`` is empty it will not raise a ``ValueError``. :issue:`1193` - Remove the unused ``mix_stderr`` parameter from ``CliRunner.invoke``. :issue:`1435` - Fix ``TypeError`` raised when using bool flags and specifying ``type=bool``. :issue:`1287` - Newlines in option help text are replaced with spaces before re-wrapping to avoid uneven line breaks. :issue:`834` - ``MissingParameter`` exceptions are printable in the Python interpreter. :issue:`1139` - Fix how default values for file-type options are shown during prompts. :issue:`914` - Fix environment variable automatic generation for commands containing ``-``. :issue:`1253` - Option help text replaces newlines with spaces when rewrapping, but preserves paragraph breaks, fixing multiline formatting. :issue:`834, 1066, 1397` - Option help text that is wrapped adds an extra newline at the end to distinguish it from the next option. :issue:`1075` - Consider ``sensible-editor`` when determining the editor to use for ``click.edit()``. :pr:`1469` - Arguments to system calls such as the executable path passed to ``click.edit`` can contains spaces. :pr:`1470` - Add ZSH completion autoloading and error handling. :issue:`1348` - Add a repr to ``Command``, ``Group``, ``Option``, and ``Argument``, showing the name for friendlier debugging. :issue:`1267` - Completion doesn't consider option names if a value starts with ``-`` after the ``--`` separator. :issue:`1247` - ZSH completion escapes special characters in values. :pr:`1418` - Add completion support for Fish shell. :pr:`1423` - Decoding bytes option values falls back to UTF-8 in more cases. :pr:`1468` - Make the warning about old 2-arg parameter callbacks a deprecation warning, to be removed in 8.0. This has been a warning since Click 2.0. :pr:`1492` ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/click - Changelog: https://pyup.io/changelogs/click/ - Homepage: https://palletsprojects.com/p/click/ </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Apr 28, 2020
131: Update pylint to 2.5.0 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.4.4** to **2.5.0**. <details> <summary>Changelog</summary> ### 2.5.0 ``` =========================== Release date: 2020-04-27 * Fix a false negative for ``undefined-variable`` when using class attribute in comprehension. Close 3494 * Fix a false positive for ``undefined-variable`` when using class attribute in decorator or as type hint. Close 511 Close 1976 * Remove HTML quoting of messages in JSON output. Close 2769 * Adjust the `invalid-name` rule to work with non-ASCII identifiers and add the `non-ascii-name` rule. Close 2725 * Positional-only arguments are taken in account for ``useless-super-delegation`` * ``unidiomatic-typecheck`` is no longer emitted for ``in`` and ``not in`` operators Close 3337 * Positional-only argument annotations are taken in account for ``unused-import`` Close 3462 * Add a command to list available extensions. * Allow used variables to be properly consumed when different checks are enabled / disabled Close 3445 * Fix dangerous-default-value rule to account for keyword argument defaults Close 3373 * Fix a false positive of ``self-assigning-variable`` on tuple unpacking. Close 3433 * ``no-self-use`` is no longer emitted for typing stubs. Close 3439 * Fix a false positive for ``undefined-variable`` when ``__class__`` is used Close 3090 * Emit ``invalid-name`` for variables defined in loops at module level. Close 2695 * Add a check for cases where the second argument to `isinstance` is not a type. Close 3308 * Add 'notes-rgx' option, to be used for fixme check. Close 2874 * ``function-redefined`` exempts function redefined on a condition. Close 2410 * ``typing.overload`` functions are exempted from docstring checks Close 3350 * Emit ``invalid-overridden-method`` for improper async def overrides. Close 3355 * Do not allow ``python -m pylint ...`` to import user code ``python -m pylint ...`` adds the current working directory as the first element of ``sys.path``. This opens up a potential security hole where ``pylint`` will import user level code as long as that code resides in modules having the same name as stdlib or pylint's own modules. Close 3386 * Add `dummy-variables-rgx` option for `_redeclared-assigned-name` check. Close 3341 * Fixed graph creation for relative paths * Add a check for asserts on string literals. Close 3284 * `not in` is considered iterating context for some of the Python 3 porting checkers. * A new check `inconsistent-quotes` was added. * Add a check for non string assignment to __name__ attribute. Close 583 * `__pow__`, `__imatmul__`, `__trunc__`, `__floor__`, and `__ceil__` are recognized as special method names. Close 3281 * Added errors for protocol functions when invalid return types are detected. E0304 (invalid-bool-returned): __bool__ did not return a bool E0305 (invalid-index-returned): __index__ did not return an integer E0306 (invalid-repr-returned): __repr__ did not return a string E0307 (invalid-str-returned): __str__ did not return a string E0308 (invalid-bytes-returned): __bytes__ did not return a string E0309 (invalid-hash-returned): __hash__ did not return an integer E0310 (invalid-length-hint-returned): __length_hint__ did not return a non-negative integer E0311 (invalid-format-returned): __format__ did not return a string E0312 (invalid-getnewargs-returned): __getnewargs__ did not return a tuple E0313 (invalid-getnewargs-ex-returned): __getnewargs_ex__ did not return a tuple of the form (tuple, dict) Close 560 * ``missing-*-docstring`` can look for ``__doc__`` assignments. Close 3301 * ``undefined-variable`` can now find undefined loop iterables Close 498 * ``safe_infer`` can infer a value as long as all the paths share the same type. Close 2503 * Add a --fail-under <score> flag, also configurable in a .pylintrc file. If the final score is more than the specified score, it's considered a success and pylint exits with exitcode 0. Otherwise, it's considered a failure and pylint exits with its current exitcode based on the messages issued. Close 2242 * Don't emit ``line-too-long`` for multilines when `disable=line-too-long` comment stands at their end Close 2957 * Fixed an ``AttributeError`` caused by improper handling of ``dataclasses`` inference in ``pyreverse`` Close 3256 * Do not exempt bare except from ``undefined-variable`` and similar checks If a node was wrapped in a ``TryExcept``, ``pylint`` was taking a hint from the except handler when deciding to emit or not a message. We were treating bare except as a fully fledged ignore but only the corresponding exceptions should be handled that way (e.g. ``NameError`` or ``ImportError``) Close 3235 * No longer emit ``assignment-from-no-return`` when a function only raises an exception Close 3218 * Allow import aliases to exempt ``import-error`` when used in type annotations. Close 3178 * ``Ellipsis` is exempted from ``multiple-statements`` for function overloads. Close 3224 * No longer emit ``invalid-name`` for non-constants found at module level. Pylint was taking the following statement from PEP-8 too far, considering all module level variables as constants, which is not what the statement is saying: `Constants are usually defined on a module level and written in all capital letters with underscores separating words.` Close 3111 Close 3132 * Allow ``implicit-str-concat-in-sequence`` to be emitted for string juxtaposition Close 3030 * ``implicit-str-concat-in-sequence`` was renamed ``implicit-str-concat`` * The ``json`` reporter no longer bypasses ``redirect_stdout``. Close 3227 * Move ``NoFileError``, ``OutputLine``, ``FunctionalTestReporter``, ``FunctionalTestFile``, ``LintModuleTest`` and related methods from ``test_functional.py`` to ``pylint.testutils`` to help testing for 3rd party pylint plugins. * Can read config from a setup.cfg or pyproject.toml file. Close 617 * Fix exception-escape false positive with generators Close 3128 * ``inspect.getargvalues`` is no longer marked as deprecated. * A new check ``f-string-without-interpolation`` was added Close 3190 * Flag mutable ``collections.*`` utilities as dangerous defaults Close 3183 * ``docparams`` extension supports multiple types in raises sections. Multiple types can also be separated by commas in all valid sections. Closes 2729 * Allow parallel linting when run under Prospector * Fixed false positives of ``method-hidden`` when a subclass defines the method that is being hidden. Closes 414 * Python 3 porting mode is 30-50% faster on most codebases * Python 3 porting mode no longer swallows syntax errors Closes 2956 * Pass the actual PyLinter object to sub processes to allow using custom PyLinter classes. PyLinter object (and all its members except reporter) needs to support pickling so the PyLinter object can be passed to worker processes. * Clean up setup.py Make pytest-runner a requirement only if running tests, similar to McCabe. Clean up the setup.py file, resolving a number of warnings around it. * Handle SyntaxError in files passed via ``--from-stdin`` option Pylint no longer outputs a traceback, if a file, read from stdin, contains a syntaxerror. * Fix uppercase style to disallow 3+ uppercase followed by lowercase. * Fixed ``undefined-variable`` and ``unused-import`` false positives when using a metaclass via an attribute. Close 1603 * Emit ``unused-argument`` for functions that partially uses their argument list before raising an exception. Close 3246 * Fixed ``broad_try_clause`` extension to check try/finally statements and to check for nested statements (e.g., inside of an ``if`` statement). * Recognize classes explicitly inheriting from ``abc.ABC`` or having an ``abc.ABCMeta`` metaclass as abstract. This makes them not trigger W0223. Closes 3098 * Fix overzealous `arguments-differ` when overridden function uses variadics No message is emitted if the overriding function provides positional or keyword variadics in its signature that can feasibly accept and pass on all parameters given by the overridden function. Close 1482 Close 1553 * Multiple types of string formatting are allowed in logging functions. The `logging-fstring-interpolation` message has been brought back to allow multiple types of string formatting to be used. Close 3361 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Apr 28, 2020
131: Update pylint to 2.5.0 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.4.4** to **2.5.0**. <details> <summary>Changelog</summary> ### 2.5.0 ``` =========================== Release date: 2020-04-27 * Fix a false negative for ``undefined-variable`` when using class attribute in comprehension. Close 3494 * Fix a false positive for ``undefined-variable`` when using class attribute in decorator or as type hint. Close 511 Close 1976 * Remove HTML quoting of messages in JSON output. Close 2769 * Adjust the `invalid-name` rule to work with non-ASCII identifiers and add the `non-ascii-name` rule. Close 2725 * Positional-only arguments are taken in account for ``useless-super-delegation`` * ``unidiomatic-typecheck`` is no longer emitted for ``in`` and ``not in`` operators Close 3337 * Positional-only argument annotations are taken in account for ``unused-import`` Close 3462 * Add a command to list available extensions. * Allow used variables to be properly consumed when different checks are enabled / disabled Close 3445 * Fix dangerous-default-value rule to account for keyword argument defaults Close 3373 * Fix a false positive of ``self-assigning-variable`` on tuple unpacking. Close 3433 * ``no-self-use`` is no longer emitted for typing stubs. Close 3439 * Fix a false positive for ``undefined-variable`` when ``__class__`` is used Close 3090 * Emit ``invalid-name`` for variables defined in loops at module level. Close 2695 * Add a check for cases where the second argument to `isinstance` is not a type. Close 3308 * Add 'notes-rgx' option, to be used for fixme check. Close 2874 * ``function-redefined`` exempts function redefined on a condition. Close 2410 * ``typing.overload`` functions are exempted from docstring checks Close 3350 * Emit ``invalid-overridden-method`` for improper async def overrides. Close 3355 * Do not allow ``python -m pylint ...`` to import user code ``python -m pylint ...`` adds the current working directory as the first element of ``sys.path``. This opens up a potential security hole where ``pylint`` will import user level code as long as that code resides in modules having the same name as stdlib or pylint's own modules. Close 3386 * Add `dummy-variables-rgx` option for `_redeclared-assigned-name` check. Close 3341 * Fixed graph creation for relative paths * Add a check for asserts on string literals. Close 3284 * `not in` is considered iterating context for some of the Python 3 porting checkers. * A new check `inconsistent-quotes` was added. * Add a check for non string assignment to __name__ attribute. Close 583 * `__pow__`, `__imatmul__`, `__trunc__`, `__floor__`, and `__ceil__` are recognized as special method names. Close 3281 * Added errors for protocol functions when invalid return types are detected. E0304 (invalid-bool-returned): __bool__ did not return a bool E0305 (invalid-index-returned): __index__ did not return an integer E0306 (invalid-repr-returned): __repr__ did not return a string E0307 (invalid-str-returned): __str__ did not return a string E0308 (invalid-bytes-returned): __bytes__ did not return a string E0309 (invalid-hash-returned): __hash__ did not return an integer E0310 (invalid-length-hint-returned): __length_hint__ did not return a non-negative integer E0311 (invalid-format-returned): __format__ did not return a string E0312 (invalid-getnewargs-returned): __getnewargs__ did not return a tuple E0313 (invalid-getnewargs-ex-returned): __getnewargs_ex__ did not return a tuple of the form (tuple, dict) Close 560 * ``missing-*-docstring`` can look for ``__doc__`` assignments. Close 3301 * ``undefined-variable`` can now find undefined loop iterables Close 498 * ``safe_infer`` can infer a value as long as all the paths share the same type. Close 2503 * Add a --fail-under <score> flag, also configurable in a .pylintrc file. If the final score is more than the specified score, it's considered a success and pylint exits with exitcode 0. Otherwise, it's considered a failure and pylint exits with its current exitcode based on the messages issued. Close 2242 * Don't emit ``line-too-long`` for multilines when `disable=line-too-long` comment stands at their end Close 2957 * Fixed an ``AttributeError`` caused by improper handling of ``dataclasses`` inference in ``pyreverse`` Close 3256 * Do not exempt bare except from ``undefined-variable`` and similar checks If a node was wrapped in a ``TryExcept``, ``pylint`` was taking a hint from the except handler when deciding to emit or not a message. We were treating bare except as a fully fledged ignore but only the corresponding exceptions should be handled that way (e.g. ``NameError`` or ``ImportError``) Close 3235 * No longer emit ``assignment-from-no-return`` when a function only raises an exception Close 3218 * Allow import aliases to exempt ``import-error`` when used in type annotations. Close 3178 * ``Ellipsis` is exempted from ``multiple-statements`` for function overloads. Close 3224 * No longer emit ``invalid-name`` for non-constants found at module level. Pylint was taking the following statement from PEP-8 too far, considering all module level variables as constants, which is not what the statement is saying: `Constants are usually defined on a module level and written in all capital letters with underscores separating words.` Close 3111 Close 3132 * Allow ``implicit-str-concat-in-sequence`` to be emitted for string juxtaposition Close 3030 * ``implicit-str-concat-in-sequence`` was renamed ``implicit-str-concat`` * The ``json`` reporter no longer bypasses ``redirect_stdout``. Close 3227 * Move ``NoFileError``, ``OutputLine``, ``FunctionalTestReporter``, ``FunctionalTestFile``, ``LintModuleTest`` and related methods from ``test_functional.py`` to ``pylint.testutils`` to help testing for 3rd party pylint plugins. * Can read config from a setup.cfg or pyproject.toml file. Close 617 * Fix exception-escape false positive with generators Close 3128 * ``inspect.getargvalues`` is no longer marked as deprecated. * A new check ``f-string-without-interpolation`` was added Close 3190 * Flag mutable ``collections.*`` utilities as dangerous defaults Close 3183 * ``docparams`` extension supports multiple types in raises sections. Multiple types can also be separated by commas in all valid sections. Closes 2729 * Allow parallel linting when run under Prospector * Fixed false positives of ``method-hidden`` when a subclass defines the method that is being hidden. Closes 414 * Python 3 porting mode is 30-50% faster on most codebases * Python 3 porting mode no longer swallows syntax errors Closes 2956 * Pass the actual PyLinter object to sub processes to allow using custom PyLinter classes. PyLinter object (and all its members except reporter) needs to support pickling so the PyLinter object can be passed to worker processes. * Clean up setup.py Make pytest-runner a requirement only if running tests, similar to McCabe. Clean up the setup.py file, resolving a number of warnings around it. * Handle SyntaxError in files passed via ``--from-stdin`` option Pylint no longer outputs a traceback, if a file, read from stdin, contains a syntaxerror. * Fix uppercase style to disallow 3+ uppercase followed by lowercase. * Fixed ``undefined-variable`` and ``unused-import`` false positives when using a metaclass via an attribute. Close 1603 * Emit ``unused-argument`` for functions that partially uses their argument list before raising an exception. Close 3246 * Fixed ``broad_try_clause`` extension to check try/finally statements and to check for nested statements (e.g., inside of an ``if`` statement). * Recognize classes explicitly inheriting from ``abc.ABC`` or having an ``abc.ABCMeta`` metaclass as abstract. This makes them not trigger W0223. Closes 3098 * Fix overzealous `arguments-differ` when overridden function uses variadics No message is emitted if the overriding function provides positional or keyword variadics in its signature that can feasibly accept and pass on all parameters given by the overridden function. Close 1482 Close 1553 * Multiple types of string formatting are allowed in logging functions. The `logging-fstring-interpolation` message has been brought back to allow multiple types of string formatting to be used. Close 3361 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
May 5, 2020
135: Update pylint to 2.5.2 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.5.0** to **2.5.2**. <details> <summary>Changelog</summary> ### 2.5.2 ``` =========================== Release date: 2020-05-05 * ``pylint.Run`` accepts ``do_exit`` as a deprecated parameter Close 3590 ``` ### 2.5.1 ``` =========================== Release date: 2020-05-05 * Fix a crash in `method-hidden` lookup for unknown base classes Close 3527 * Revert pylint.Run's `exit` parameter to ``do_exit`` This has been inadvertently changed several releases ago to ``do_exit``. Close 3533 * ``no-value-for-parameter`` variadic detection has improved for assign statements Close 3563 * Allow package files to be properly discovered with multiple jobs Close 3524 * Allow linting directories without `__init__.py` which was a regression in 2.5. Close 3528 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
May 14, 2020
139: Update flake8 to 3.8.1 r=duckinator a=pyup-bot This PR updates [flake8](https://pypi.org/project/flake8) from **3.7.9** to **3.8.1**. <details> <summary>Changelog</summary> ### 3.8.1 ``` ------------------- You can view the `3.8.1 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``--output-file`` (regression in 3.8.0) (See also `GitLab!427`_, `GitLab637`_) .. all links .. _3.8.1 milestone: https://gitlab.com/pycqa/flake8/-/milestones/34 .. issue links .. _GitLab637: https://gitlab.com/pycqa/flake8/issues/637 .. merge request links .. _GitLab!427: https://gitlab.com/pycqa/flake8/merge_requests/427 ``` ### 3.8.0 ``` ------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix logical checks which report positions out of bounds (See also `GitLab!422`_, `GitLab635`_) - Fix ``--exclude=.*`` accidentally matching ``.`` and ``..`` (See also `GitLab!424`_, `GitLab632`_) Deprecations ~~~~~~~~~~~~ - Add deprecation message for vcs hooks (See also `GitLab!420`_, `GitLab568`_) ``` ### 3.8.0a2 ``` --------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``type="str"`` optparse options (See also `GitLab!419`_) ``` ### 3.8.0a1 ``` --------------------- You can view the `3.8.0 milestone`_ on GitLab for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Remove dependency on ``entrypoints`` and add dependency on ``importlib-metadata`` (only for ``python<3.8``) (See also `GitLab!388`_, `GitLab569`_) - Pyflakes has been updated to >= 2.2.0, < 2.3.0 (See also `GitLab!417`_) - pycodestyle has been updated to >= 2.6.0a1, < 2.7.0 (See also `GitLab!418`_) Features ~~~~~~~~ - Add ``--extend-exclude`` option to add to ``--exclude`` without overwriting (See also `GitLab!315`_, `GitLab535`_) - Move argument parsing from ``optparse`` to ``argparse`` (See also `GitLab!341`_ - Group plugin options in ``--help`` (See also `GitLab!342`_, `GitLab565`_) - Remove parsing of ``verbose`` from configuration files as it was not consistently applied (See also `GitLab!360`_, `GitLab439`_) - Remove parsing of ``output_file`` from configuration files as it was not consistently applied (See also `GitLab!361`_) - Resolve configuration files relative to ``cwd`` instead of common prefix of passed filenames. You may need to change ``flake8 subproject`` to ``cd subproject && flake8 .`` (See also `GitLab!363`_) - Officially support python3.8 (See also `GitLab!377`_) - ``--disable-noqa`` now also disables `` flake8: noqa`` (See also `GitLab!380`_, `GitLab590`_) - Ensure that a missing file produces a ``E902`` error (See also `GitLab!404`_, `GitLab600`_) - `` noqa`` comments now apply to all of the lines in an explicit ``\`` continuation or in a line continued by a multi-line string (See also `GitLab!413`_, `GitLab375`_) Bugs Fixed ~~~~~~~~~~ - Fix ``--exclude=./t.py`` to only match ``t.py`` at the top level (See also `GitLab!311`_, `GitLab382`_) - Fix ``--show-source`` when a file is indented with tabs (See also `GitLab!339`_, `GitLab563`_) - Fix crash when ``--max-line-length`` is given a non-integer (See also `GitLab!341`_, `GitLab541`_) - Prevent flip-flopping of ``indent_char`` causing extra ``E101`` errors (See also `GitLab!357`_, `pycodestyle886`_) - Only enable multiprocessing when the method is ``fork`` fixing issues on macos with python3.8+ (See also `GitLab!366`_, `GitLab587`_) (note: this fix also landed in 3.7.9) - ``noqa`` is now only handled by flake8 fixing specific-noqa. Plugins requesting this parameter will always receive ``False`` (See also `GitLab!331`_, `GitLab552`_) - Fix duplicate loading of plugins when invoked via ``python -m flake8`` (See also `GitLab!388`_) - Fix early exit when ``--exit-zero`` and ``--diff`` are provided and the diff is empty (See also `GitLab!391`_) - Consistently split lines when ``\f`` is present when reading from stdin (See also `GitLab!406`_, `GitLab270`_) Deprecations ~~~~~~~~~~~~ - ``python setup.py flake8`` (setuptools integration) is now deprecated and will be removed in a future version (See also `GitLab!330`_, `GitLab544`_) - ``type='string'`` (optparse) types are deprecated, use ``type=callable`` (argparse) instead. Support for ``type='string'`` will be removed in a future version (See also `GitLab!341`_) - ``%default`` in plugin option help text is deprecated, use ``%(default)s`` instead. Support for ``%default`` will be removed in a future version (See also `GitLab!341`_) - optparse-style ``action='callback'`` setting for options is deprecated, use argparse action classes instead. This will be removed in a future version (See also `GitLab!341`_) .. all links .. _3.8.0 milestone: https://gitlab.com/pycqa/flake8/-/milestones/32 .. merge request links .. _GitLab270: https://gitlab.com/pycqa/flake8/-/issues/270 .. _GitLab375: https://gitlab.com/pycqa/flake8/-/issues/375 .. _GitLab382: https://gitlab.com/pycqa/flake8/-/issues/382 .. _GitLab439: https://gitlab.com/pycqa/flake8/-/issues/439 .. _GitLab535: https://gitlab.com/pycqa/flake8/-/issues/535 .. _GitLab541: https://gitlab.com/pycqa/flake8/-/issues/541 .. _GitLab544: https://gitlab.com/pycqa/flake8/-/issues/544 .. _GitLab552: https://gitlab.com/pycqa/flake8/-/issues/552 .. _GitLab563: https://gitlab.com/pycqa/flake8/-/issues/563 .. _GitLab565: https://gitlab.com/pycqa/flake8/-/issues/565 .. _GitLab568: https://gitlab.com/pycqa/flake8/-/issues/568 .. _GitLab569: https://gitlab.com/pycqa/flake8/-/issues/569 .. _GitLab587: https://gitlab.com/pycqa/flake8/-/issues/587 .. _GitLab590: https://gitlab.com/pycqa/flake8/-/issues/590 .. _GitLab600: https://gitlab.com/pycqa/flake8/-/issues/600 .. _GitLab632: https://gitlab.com/pycqa/flake8/-/issues/632 .. _GitLab635: https://gitlab.com/pycqa/flake8/-/issues/635 .. _pycodestyle886: PyCQA/pycodestyle#886 .. issue links .. _GitLab!311: https://gitlab.com/pycqa/flake8/-/merge_requests/311 .. _GitLab!315: https://gitlab.com/pycqa/flake8/-/merge_requests/315 .. _GitLab!330: https://gitlab.com/pycqa/flake8/-/merge_requests/330 .. _GitLab!331: https://gitlab.com/pycqa/flake8/-/merge_requests/331 .. _GitLab!339: https://gitlab.com/pycqa/flake8/-/merge_requests/339 .. _GitLab!341: https://gitlab.com/pycqa/flake8/-/merge_requests/341 .. _GitLab!342: https://gitlab.com/pycqa/flake8/-/merge_requests/342 .. _GitLab!357: https://gitlab.com/pycqa/flake8/-/merge_requests/357 .. _GitLab!360: https://gitlab.com/pycqa/flake8/-/merge_requests/360 .. _GitLab!361: https://gitlab.com/pycqa/flake8/-/merge_requests/361 .. _GitLab!363: https://gitlab.com/pycqa/flake8/-/merge_requests/363 .. _GitLab!366: https://gitlab.com/pycqa/flake8/-/merge_requests/366 .. _GitLab!377: https://gitlab.com/pycqa/flake8/-/merge_requests/377 .. _GitLab!380: https://gitlab.com/pycqa/flake8/-/merge_requests/380 .. _GitLab!388: https://gitlab.com/pycqa/flake8/-/merge_requests/388 .. _GitLab!391: https://gitlab.com/pycqa/flake8/-/merge_requests/391 .. _GitLab!404: https://gitlab.com/pycqa/flake8/-/merge_requests/404 .. _GitLab!406: https://gitlab.com/pycqa/flake8/-/merge_requests/406 .. _GitLab!413: https://gitlab.com/pycqa/flake8/-/merge_requests/413 .. _GitLab!417: https://gitlab.com/pycqa/flake8/-/merge_requests/417 .. _GitLab!418: https://gitlab.com/pycqa/flake8/-/merge_requests/418 .. _GitLab!419: https://gitlab.com/pycqa/flake8/-/merge_requests/419 .. _GitLab!420: https://gitlab.com/pycqa/flake8/-/merge_requests/420 .. _GitLab!422: https://gitlab.com/pycqa/flake8/-/merge_requests/422 .. _GitLab!424: https://gitlab.com/pycqa/flake8/-/merge_requests/424 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://gitlab.com/pycqa/flake8 </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Jun 9, 2020
147: Update pylint to 2.5.3 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.5.2** to **2.5.3**. <details> <summary>Changelog</summary> ### 2.5.3 ``` =========================== Release date: 2020-06-8 * Fix a regression where disable comments that have checker names with numbers in them are not parsed correctly Close 3666 * `property-with-parameters` properly handles abstract properties Close 3600 * `continue-in-finally` no longer emitted on Python 3.8 where it's now valid Close 3612 * Fix a regression where messages with dash are not fully parsed Close 3604 * In a TOML configuration file, it's now possible to use rich (non-string) types, such as list, integer or boolean instead of strings. For example, one can now define a *list* of message identifiers to enable like this:: enable = [ "use-symbolic-message-instead", "useless-suppression", ] Close 3538 * Fix a regression where the score was not reported with multiple jobs Close 3547 * Protect against `AttributeError` when checking `cell-var-from-loop` Close 3646 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Jun 25, 2020
151: Update twine to 3.2.0 r=duckinator a=pyup-bot This PR updates [twine](https://pypi.org/project/twine) from **3.1.1** to **3.2.0**. <details> <summary>Changelog</summary> ### 3.2.0 ``` * :feature:`666` Improve display of HTTP errors during upload * :feature:`649` Use red text when printing errors on the command line * :feature:`652` Print packages and signatures to be uploaded when using ``--verbose`` option * 🐛`655 major` Update URL to ``.pypirc`` specfication * :feature:`602` Require repository URL scheme to be ``http`` or ``https`` * 🐛`612 major` Don't raise an exception when Python version can't be parsed from filename * 🐛`611 major` Fix inaccurate retry message during ``upload`` * 🐛`601 major` Clarify error messages for archive format * :feature:`231` Add type annotations, checked with mypy, with :pep:`561` support for users of Twine's API ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/twine - Changelog: https://pyup.io/changelogs/twine/ - Docs: https://twine.readthedocs.io/ </details> Co-authored-by: pyup-bot <github-bot@pyup.io>
bors bot
added a commit
that referenced
this pull request
Aug 21, 2020
189: Update pylint to 2.6.0 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.5.3** to **2.6.0**. <details> <summary>Changelog</summary> ### 2.6.0 ``` =========================== Release date: 2020-08-20 * Fix various scope-related bugs in ``undefined-variable`` checker Close 1082, 3434, 3461 * bad-continuation and bad-whitespace have been removed, black or another formatter can help you with this better than Pylint Close 246, 289, 638, 747, 1148, 1179, 1943, 2041, 2301, 2304, 2944, 3565 * The no-space-check option has been removed. It's no longer possible to consider empty line like a `trailing-whitespace` by using clever options Close 1368 * ``missing-kwoa`` is no longer emitted when dealing with overload functions Close 3655 * mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3 Close 2984 3573 * Add `super-with-arguments` check for flagging instances of Python 2 style super calls. * Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters * Fix superfluous-parens false-positive for the walrus operator Close 3383 * Fix `fail-under` not accepting floats * Fix a bug with `ignore-docstrings` ignoring all lines in a module * Fix `pre-commit` config that could lead to undetected duplicate lines of code * Fix a crash in parallel mode when the module's filepath is not set Close 3564 * Add `raise-missing-from` check for exceptions that should have a cause. * Support both isort 4 and isort 5. If you have pinned isort 4 in your projet requirements, nothing changes. If you use isort 5, though, note that the `known-standard-library` option is not interpreted the same in isort 4 and isort 5 (see the migration guide in isort documentation for further details). For compatibility's sake for most pylint users, the `known-standard-library` option in pylint now maps to `extra-standard-library` in isort 5. If you really want what `known-standard-library` now means in isort 5, you must disable the `wrong-import-order` check in pylint and run isort manually with a proper isort configuration file. Close 3722 ``` ### 2.5.4 ``` =========================== * Fix a crash caused by not guarding against `InferenceError` when calling `infer_call_result` Close 3690 * Fix a crash in parallel mode when the module's filepath is not set Close 3564 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io> Co-authored-by: Ellen Marie Dash <me@duckie.co>
bors bot
added a commit
that referenced
this pull request
Aug 21, 2020
189: Update pylint to 2.6.0 r=duckinator a=pyup-bot This PR updates [pylint](https://pypi.org/project/pylint) from **2.5.3** to **2.6.0**. <details> <summary>Changelog</summary> ### 2.6.0 ``` =========================== Release date: 2020-08-20 * Fix various scope-related bugs in ``undefined-variable`` checker Close 1082, 3434, 3461 * bad-continuation and bad-whitespace have been removed, black or another formatter can help you with this better than Pylint Close 246, 289, 638, 747, 1148, 1179, 1943, 2041, 2301, 2304, 2944, 3565 * The no-space-check option has been removed. It's no longer possible to consider empty line like a `trailing-whitespace` by using clever options Close 1368 * ``missing-kwoa`` is no longer emitted when dealing with overload functions Close 3655 * mixed-indentation has been removed, it is no longer useful since TabError is included directly in python3 Close 2984 3573 * Add `super-with-arguments` check for flagging instances of Python 2 style super calls. * Add an faq detailing which messages to disable to avoid duplicates w/ other popular linters * Fix superfluous-parens false-positive for the walrus operator Close 3383 * Fix `fail-under` not accepting floats * Fix a bug with `ignore-docstrings` ignoring all lines in a module * Fix `pre-commit` config that could lead to undetected duplicate lines of code * Fix a crash in parallel mode when the module's filepath is not set Close 3564 * Add `raise-missing-from` check for exceptions that should have a cause. * Support both isort 4 and isort 5. If you have pinned isort 4 in your projet requirements, nothing changes. If you use isort 5, though, note that the `known-standard-library` option is not interpreted the same in isort 4 and isort 5 (see the migration guide in isort documentation for further details). For compatibility's sake for most pylint users, the `known-standard-library` option in pylint now maps to `extra-standard-library` in isort 5. If you really want what `known-standard-library` now means in isort 5, you must disable the `wrong-import-order` check in pylint and run isort manually with a proper isort configuration file. Close 3722 ``` ### 2.5.4 ``` =========================== * Fix a crash caused by not guarding against `InferenceError` when calling `infer_call_result` Close 3690 * Fix a crash in parallel mode when the module's filepath is not set Close 3564 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/pylint - Changelog: https://pyup.io/changelogs/pylint/ - Repo: https://github.com/PyCQA/pylint </details> Co-authored-by: pyup-bot <github-bot@pyup.io> Co-authored-by: Ellen Marie Dash <me@duckie.co>
bors bot
added a commit
that referenced
this pull request
Dec 10, 2020
220: Update coloredlogs to 15.0 r=duckinator a=pyup-bot This PR updates [coloredlogs](https://pypi.org/project/coloredlogs) from **14.0** to **15.0**. <details> <summary>Changelog</summary> ### 15.0 ``` ---------------------------- Don't enable system logging on MacOS and Windows anymore. This is backwards incompatible (which is why I'm bumping the major version number) however the old behavior has been reported to be rather problematic (see :func:`~coloredlogs.syslog.is_syslog_supported()` for details) so this seems like the best choice. .. _Release 15.0: xolox/python-coloredlogs@14.2...15.0 ``` ### 14.3 ``` ---------------------------- Merged pull request `89`_ which enhances :func:`coloredlogs.install()` to preserve the filters on handlers that are replaced by :pypi:`coloredlogs`. .. _Release 14.3: xolox/python-coloredlogs@14.2...14.3 .. _89: xolox/python-coloredlogs#89 ``` ### 14.2 ``` ---------------------------- Honor the ``$NO_COLOR`` environment variable as suggested in issue `88`_. .. _Release 14.2: xolox/python-coloredlogs@14.1...14.2 .. _88: xolox/python-coloredlogs#88 ``` ### 14.1 ``` ---------------------------- **Bug fixes:** - Don't allow interactive terminal detection to disable colored text when colored text is being forced by the caller (reported in issue `84`_). - Automatically disable colored text when logging output is being redirected to a file in such a way that it actually works 😬 (reported in issue `100`_). **Other changes:** - Start testing on PyPy 3 (because why not?) .. _Release 14.1: xolox/python-coloredlogs@14.0...14.1 .. _84: xolox/python-coloredlogs#84 .. _100: xolox/python-coloredlogs#100 ``` </details> <details> <summary>Links</summary> - PyPI: https://pypi.org/project/coloredlogs - Changelog: https://pyup.io/changelogs/coloredlogs/ - Docs: https://coloredlogs.readthedocs.io </details> Co-authored-by: pyup-bot <github-bot@pyup.io> Co-authored-by: Ellen Marie Dash <me@duckie.co>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
bork.cli.download
.flake8-docstrings
.@duckinator (3) seems kinda iffy to me, feel free to drop the corresponding commit prior to merge.