aio-libs / aioelasticsearch

aioelasticsearch-py wrapper for asyncio
https://pypi.python.org/pypi/aioelasticsearch
MIT License
138 stars 41 forks source link

Scheduled weekly dependency update for week 29 #282

Closed pyup-bot closed 3 years ago

pyup-bot commented 3 years ago

Update aiohttp from 3.7.4 to 3.7.4.post0.

Changelog ### 3.7.4.post0 ``` ======================== Misc ---- - Bumped upper bound of the ``chardet`` runtime dependency to allow their v4.0 version stream. `5366 <https://github.com/aio-libs/aiohttp/issues/5366>`_ ---- ```
Links - PyPI: https://pypi.org/project/aiohttp - Changelog: https://pyup.io/changelogs/aiohttp/ - Repo: https://github.com/aio-libs/aiohttp

Update attrs from 19.2.0 to 21.2.0.

Changelog ### 21.2.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - We had to revert the recursive feature for ``attr.evolve()`` because it broke some use-cases -- sorry! `806 <https://github.com/python-attrs/attrs/issues/806>`_ - Python 3.4 is now blocked using packaging metadata because ``attrs`` can't be imported on it anymore. To ensure that 3.4 users can keep installing ``attrs`` easily, we will `yank <https://pypi.org/help/#yanked>`_ 21.1.0 from PyPI. This has **no** consequences if you pin ``attrs`` to 21.1.0. `807 <https://github.com/python-attrs/attrs/issues/807>`_ ---- ``` ### 21.1.0 ``` ------------------- Deprecations ^^^^^^^^^^^^ - The long-awaited, much-talked-about, little-delivered ``import attrs`` is finally upon us! Since the NG APIs have now been proclaimed stable, the **next** release of ``attrs`` will allow you to actually ``import attrs``. We're taking this opportunity to replace some defaults in our APIs that made sense in 2015, but don't in 2021. So please, if you have any pet peeves about defaults in ``attrs``'s APIs, *now* is the time to air your grievances in 487! We're not gonna get such a chance for a second time, without breaking our backward-compatibility guarantees, or long deprecation cycles. Therefore, speak now or forever hold you peace! `487 <https://github.com/python-attrs/attrs/issues/487>`_ - The *cmp* argument to ``attr.s()`` and `attr.ib()` has been **undeprecated** It will continue to be supported as syntactic sugar to set *eq* and *order* in one go. I'm terribly sorry for the hassle around this argument! The reason we're bringing it back is it's usefulness regarding customization of equality/ordering. The ``cmp`` attribute and argument on ``attr.Attribute`` remains deprecated and will be removed later this year. `773 <https://github.com/python-attrs/attrs/issues/773>`_ Changes ^^^^^^^ - It's now possible to customize the behavior of ``eq`` and ``order`` by passing in a callable. `435 <https://github.com/python-attrs/attrs/issues/435>`_, `627 <https://github.com/python-attrs/attrs/issues/627>`_ - The instant favorite `next-generation APIs <https://www.attrs.org/en/stable/api.html#next-gen>`_ are not provisional anymore! They are also officially supported by Mypy as of their `0.800 release <https://mypy-lang.blogspot.com/2021/01/mypy-0800-released.html>`_. We hope the next release will already contain an (additional) importable package called ``attrs``. `668 <https://github.com/python-attrs/attrs/issues/668>`_, `786 <https://github.com/python-attrs/attrs/issues/786>`_ - If an attribute defines a converter, the type of its parameter is used as type annotation for its corresponding ``__init__`` parameter. If an ``attr.converters.pipe`` is used, the first one's is used. `710 <https://github.com/python-attrs/attrs/issues/710>`_ - Fixed the creation of an extra slot for an ``attr.ib`` when the parent class already has a slot with the same name. `718 <https://github.com/python-attrs/attrs/issues/718>`_ - ``__attrs__init__()`` will now be injected if ``init=False``, or if ``auto_detect=True`` and a user-defined ``__init__()`` exists. This enables users to do "pre-init" work in their ``__init__()`` (such as ``super().__init__()``). ``__init__()`` can then delegate constructor argument processing to ``self.__attrs_init__(*args, **kwargs)``. `731 <https://github.com/python-attrs/attrs/issues/731>`_ - ``bool(attr.NOTHING)`` is now ``False``. `732 <https://github.com/python-attrs/attrs/issues/732>`_ - It's now possible to use ``super()`` inside of properties of slotted classes. `747 <https://github.com/python-attrs/attrs/issues/747>`_ - Allow for a ``__attrs_pre_init__()`` method that -- if defined -- will get called at the beginning of the ``attrs``-generated ``__init__()`` method. `750 <https://github.com/python-attrs/attrs/issues/750>`_ - Added forgotten ``attr.Attribute.evolve()`` to type stubs. `752 <https://github.com/python-attrs/attrs/issues/752>`_ - ``attrs.evolve()`` now works recursively with nested ``attrs`` classes. `759 <https://github.com/python-attrs/attrs/issues/759>`_ - Python 3.10 is now officially supported. `763 <https://github.com/python-attrs/attrs/issues/763>`_ - ``attr.resolve_types()`` now takes an optional *attrib* argument to work inside a ``field_transformer``. `774 <https://github.com/python-attrs/attrs/issues/774>`_ - ``ClassVar``\ s are now also detected if they come from `typing-extensions <https://pypi.org/project/typing-extensions/>`_. `782 <https://github.com/python-attrs/attrs/issues/782>`_ - To make it easier to customize attribute comparison (435), we have added the ``attr.cmp_with()`` helper. See the `new docs on comparison <https://www.attrs.org/en/stable/comparison.html>`_ for more details. `787 <https://github.com/python-attrs/attrs/issues/787>`_ - Added **provisional** support for static typing in ``pyright`` via the `dataclass_transforms specification <https://github.com/microsoft/pyright/blob/master/specs/dataclass_transforms.md>`_. Both the ``pyright`` specification and ``attrs`` implementation may change in future versions of both projects. Your constructive feedback is welcome in both `attrs795 <https://github.com/python-attrs/attrs/issues/795>`_ and `pyright#1782 <https://github.com/microsoft/pyright/discussions/1782>`_. `796 <https://github.com/python-attrs/attrs/issues/796>`_ ---- ``` ### 20.3.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``attr.define()``, ``attr.frozen()``, ``attr.mutable()``, and ``attr.field()`` remain **provisional**. This release does **not** change change anything about them and they are already used widely in production though. If you wish to use them together with mypy, you can simply drop `this plugin <https://gist.github.com/hynek/1e3844d0c99e479e716169034b5fa963#file-attrs_ng_plugin-py>`_ into your project. Feel free to provide feedback to them in the linked issue 668. We will release the ``attrs`` namespace once we have the feeling that the APIs have properly settled. `668 <https://github.com/python-attrs/attrs/issues/668>`_ Changes ^^^^^^^ - ``attr.s()`` now has a *field_transformer* hook that is called for all ``Attribute``\ s and returns a (modified or updated) list of ``Attribute`` instances. ``attr.asdict()`` has a *value_serializer* hook that can change the way values are converted. Both hooks are meant to help with data (de-)serialization workflows. `653 <https://github.com/python-attrs/attrs/issues/653>`_ - ``kw_only=True`` now works on Python 2. `700 <https://github.com/python-attrs/attrs/issues/700>`_ - ``raise from`` now works on frozen classes on PyPy. `703 <https://github.com/python-attrs/attrs/issues/703>`_, `712 <https://github.com/python-attrs/attrs/issues/712>`_ - ``attr.asdict()`` and ``attr.astuple()`` now treat ``frozenset``\ s like ``set``\ s with regards to the *retain_collection_types* argument. `704 <https://github.com/python-attrs/attrs/issues/704>`_ - The type stubs for ``attr.s()`` and ``attr.make_class()`` are not missing the *collect_by_mro* argument anymore. `711 <https://github.com/python-attrs/attrs/issues/711>`_ ---- ``` ### 20.2.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - ``attr.define()``, ``attr.frozen()``, ``attr.mutable()``, and ``attr.field()`` remain **provisional**. This release fixes a bunch of bugs and ergonomics but they remain mostly unchanged. If you wish to use them together with mypy, you can simply drop `this plugin <https://gist.github.com/hynek/1e3844d0c99e479e716169034b5fa963#file-attrs_ng_plugin-py>`_ into your project. Feel free to provide feedback to them in the linked issue 668. We will release the ``attrs`` namespace once we have the feeling that the APIs have properly settled. `668 <https://github.com/python-attrs/attrs/issues/668>`_ Changes ^^^^^^^ - ``attr.define()`` et al now correct detect ``__eq__`` and ``__ne__``. `671 <https://github.com/python-attrs/attrs/issues/671>`_ - ``attr.define()`` et al's hybrid behavior now also works correctly when arguments are passed. `675 <https://github.com/python-attrs/attrs/issues/675>`_ - It's possible to define custom ``__setattr__`` methods on slotted classes again. `681 <https://github.com/python-attrs/attrs/issues/681>`_ - In 20.1.0 we introduced the ``inherited`` attribute on the ``attr.Attribute`` class to differentiate attributes that have been inherited and those that have been defined directly on the class. It has shown to be problematic to involve that attribute when comparing instances of ``attr.Attribute`` though, because when sub-classing, attributes from base classes are suddenly not equal to themselves in a super class. Therefore the ``inherited`` attribute will now be ignored when hashing and comparing instances of ``attr.Attribute``. `684 <https://github.com/python-attrs/attrs/issues/684>`_ - ``zope.interface`` is now a "soft dependency" when running the test suite; if ``zope.interface`` is not installed when running the test suite, the interface-related tests will be automatically skipped. `685 <https://github.com/python-attrs/attrs/issues/685>`_ - The ergonomics of creating frozen classes using ``define(frozen=True)`` and sub-classing frozen classes has been improved: you don't have to set ``on_setattr=None`` anymore. `687 <https://github.com/python-attrs/attrs/issues/687>`_ ---- ``` ### 20.1.0 ``` ------------------- Backward-incompatible Changes ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Python 3.4 is not supported anymore. It has been unsupported by the Python core team for a while now, its PyPI downloads are negligible, and our CI provider removed it as a supported option. It's very unlikely that ``attrs`` will break under 3.4 anytime soon, which is why we do *not* block its installation on Python 3.4. But we don't test it anymore and will block it once someone reports breakage. `608 <https://github.com/python-attrs/attrs/issues/608>`_ Deprecations ^^^^^^^^^^^^ - Less of a deprecation and more of a heads up: the next release of ``attrs`` will introduce an ``attrs`` namespace. That means that you'll finally be able to run ``import attrs`` with new functions that aren't cute abbreviations and that will carry better defaults. This should not break any of your code, because project-local packages have priority before installed ones. If this is a problem for you for some reason, please report it to our bug tracker and we'll figure something out. The old ``attr`` namespace isn't going anywhere and its defaults are not changing – this is a purely additive measure. Please check out the linked issue for more details. These new APIs have been added *provisionally* as part of 666 so you can try them out today and provide feedback. Learn more in the `API docs <https://www.attrs.org/en/stable/api.html#provisional-apis>`_. `408 <https://github.com/python-attrs/attrs/issues/408>`_ Changes ^^^^^^^ - Added ``attr.resolve_types()``. It ensures that all forward-references and types in string form are resolved into concrete types. You need this only if you need concrete types at runtime. That means that if you only use types for static type checking, you do **not** need this function. `288 <https://github.com/python-attrs/attrs/issues/288>`_, `302 <https://github.com/python-attrs/attrs/issues/302>`_ - Added ``attr.s(collect_by_mro=False)`` argument that if set to ``True`` fixes the collection of attributes from base classes. It's only necessary for certain cases of multiple-inheritance but is kept off for now for backward-compatibility reasons. It will be turned on by default in the future. As a side-effect, ``attr.Attribute`` now *always* has an ``inherited`` attribute indicating whether an attribute on a class was directly defined or inherited. `428 <https://github.com/python-attrs/attrs/issues/428>`_, `635 <https://github.com/python-attrs/attrs/issues/635>`_ - On Python 3, all generated methods now have a docstring explaining that they have been created by ``attrs``. `506 <https://github.com/python-attrs/attrs/issues/506>`_ - It is now possible to prevent ``attrs`` from auto-generating the ``__setstate__`` and ``__getstate__`` methods that are required for pickling of slotted classes. Either pass ``attr.s(getstate_setstate=False)`` or pass ``attr.s(auto_detect=True)`` and implement them yourself: if ``attrs`` finds either of the two methods directly on the decorated class, it assumes implicitly ``getstate_setstate=False`` (and implements neither). This option works with dict classes but should never be necessary. `512 <https://github.com/python-attrs/attrs/issues/512>`_, `513 <https://github.com/python-attrs/attrs/issues/513>`_, `642 <https://github.com/python-attrs/attrs/issues/642>`_ - Fixed a ``ValueError: Cell is empty`` bug that could happen in some rare edge cases. `590 <https://github.com/python-attrs/attrs/issues/590>`_ - ``attrs`` can now automatically detect your own implementations and infer ``init=False``, ``repr=False``, ``eq=False``, ``order=False``, and ``hash=False`` if you set ``attr.s(auto_detect=True)``. ``attrs`` will ignore inherited methods. If the argument implies more than one method (e.g. ``eq=True`` creates both ``__eq__`` and ``__ne__``), it's enough for *one* of them to exist and ``attrs`` will create *neither*. This feature requires Python 3. `607 <https://github.com/python-attrs/attrs/issues/607>`_ - Added ``attr.converters.pipe()``. The feature allows combining multiple conversion callbacks into one by piping the value through all of them, and retuning the last result. As part of this feature, we had to relax the type information for converter callables. `618 <https://github.com/python-attrs/attrs/issues/618>`_ - Fixed serialization behavior of non-slots classes with ``cache_hash=True``. The hash cache will be cleared on operations which make "deep copies" of instances of classes with hash caching, though the cache will not be cleared with shallow copies like those made by ``copy.copy()``. Previously, ``copy.deepcopy()`` or serialization and deserialization with ``pickle`` would result in an un-initialized object. This change also allows the creation of ``cache_hash=True`` classes with a custom ``__setstate__``, which was previously forbidden (`494 <https://github.com/python-attrs/attrs/issues/494>`_). `620 <https://github.com/python-attrs/attrs/issues/620>`_ - It is now possible to specify hooks that are called whenever an attribute is set **after** a class has been instantiated. You can pass ``on_setattr`` both to ``attr.s()`` to set the default for all attributes on a class, and to ``attr.ib()`` to overwrite it for individual attributes. ``attrs`` also comes with a new module ``attr.setters`` that brings helpers that run validators, converters, or allow to freeze a subset of attributes. `645 <https://github.com/python-attrs/attrs/issues/645>`_, `660 <https://github.com/python-attrs/attrs/issues/660>`_ - **Provisional** APIs called ``attr.define()``, ``attr.mutable()``, and ``attr.frozen()`` have been added. They are only available on Python 3.6 and later, and call ``attr.s()`` with different default values. If nothing comes up, they will become the official way for creating classes in 20.2.0 (see above). **Please note** that it may take some time until mypy – and other tools that have dedicated support for ``attrs`` – recognize these new APIs. Please **do not** open issues on our bug tracker, there is nothing we can do about it. `666 <https://github.com/python-attrs/attrs/issues/666>`_ - We have also provisionally added ``attr.field()`` that supplants ``attr.ib()``. It also requires at least Python 3.6 and is keyword-only. Other than that, it only dropped a few arguments, but changed no defaults. As with ``attr.s()``: ``attr.ib()`` is not going anywhere. `669 <https://github.com/python-attrs/attrs/issues/669>`_ ---- ``` ### 19.3.0 ``` ------------------- Changes ^^^^^^^ - Fixed ``auto_attribs`` usage when default values cannot be compared directly with ``==``, such as ``numpy`` arrays. `585 <https://github.com/python-attrs/attrs/issues/585>`_ ---- ```
Links - PyPI: https://pypi.org/project/attrs - Changelog: https://pyup.io/changelogs/attrs/ - Homepage: https://www.attrs.org/

Update flake8 from 3.7.8 to 3.9.2.

Changelog ### 3.9.2 ``` ------------------- You can view the `3.9.2 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix error message for ``E111`` in ``pycodestyle`` (See also :pull:`1328`, :issue:`1327`). Deprecations ~~~~~~~~~~~~ - ``indent_size_str`` is deprecated, use ``str(indent_size)`` instead (See also :pull:`1328`, :issue:`1327`). .. all links .. _3.9.2 milestone: https://github.com/PyCQA/flake8/milestone/40 ``` ### 3.9.1 ``` ------------------- You can view the `3.9.1 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix codes being ignored by plugins utilizing ``extend_default_ignore`` (See also :pull:`1317`) .. all links .. _3.9.1 milestone: https://github.com/PyCQA/flake8/milestone/38 ``` ### 3.9.0 ``` ------------------- You can view the `3.9.0 milestone`_ on GitHub for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Pyflakes has been updated to >= 2.3.0, < 2.4.0 (See also :issue:`1006`) - pycodestyle has been updated to >= 2.7.0, < 2.8.0 (See also :issue:`1007`) Deprecations ~~~~~~~~~~~~ - Drop support for python 3.4 (See also :issue:`1283`) Features ~~~~~~~~ - Add ``--no-show-source`` option to disable ``--show-source`` (See also :issue:`995`) Bugs Fixed ~~~~~~~~~~ - Fix handling of ``crlf`` line endings when linting stdin (See also :issue:`1002`) .. all links .. _3.9.0 milestone: https://github.com/pycqa/flake8/milestone/37 ``` ### 3.8.4 ``` ------------------- You can view the `3.8.4 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix multiprocessing errors on platforms without ``sem_open`` syscall. (See also :issue:`1282`) - Fix skipping of physical checks on the last line of a file which does not end in a newline (See also :issue:`997`) .. all links .. _3.8.4 milestone: https://github.com/pycqa/flake8/milestone/36 ``` ### 3.8.3 ``` ------------------- You can view the `3.8.3 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Also catch ``SyntaxError`` when tokenizing (See also :issue:`992`, :issue:`747`) - Fix ``--jobs`` default display in ``flake8 --help`` (See also :issue:`1272`, :issue:`750`) .. all links .. _3.8.3 milestone: https://github.com/pycqa/flake8/milestone/35 ``` ### 3.8.2 ``` ------------------- You can view the `3.8.2 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Improve performance by eliminating unnecessary sort (See also :issue:`991`) - Improve messaging of ``--jobs`` argument by utilizing ``argparse`` (See also :issue:`1269`, :issue:`1110`) - Fix file configuration options to be relative to the config passed on the command line (See also :issue:`442`, :issue:`736`) - Fix incorrect handling of ``--extend-exclude`` by treating its values as files (See also :issue:`1271`, :issue:`738`) .. all links .. _3.8.2 milestone: https://github.com/pycqa/flake8/milestone/34 ``` ### 3.8.1 ``` ------------------- You can view the `3.8.1 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``--output-file`` (regression in 3.8.0) (See also :issue:`990`, :issue:`725`) .. all links .. _3.8.1 milestone: https://github.com/pycqa/flake8/milestone/33 ``` ### 3.8.0 ``` ------------------- You can view the `3.8.0 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix logical checks which report positions out of bounds (See also :issue:`987`, :issue:`723`) - Fix ``--exclude=.*`` accidentally matching ``.`` and ``..`` (See also :issue:`441`, :issue:`360`) Deprecations ~~~~~~~~~~~~ - Add deprecation message for vcs hooks (See also :issue:`985`, :issue:`296`) ``` ### 3.8.0a2 ``` --------------------- You can view the `3.8.0 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Fix ``type="str"`` optparse options (See also :issue:`984`) ``` ### 3.8.0a1 ``` --------------------- You can view the `3.8.0 milestone`_ on GitHub for more details. New Dependency Information ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Remove dependency on ``entrypoints`` and add dependency on ``importlib-metadata`` (only for ``python<3.8``) (See also :issue:`1297`, :issue:`297`) - Pyflakes has been updated to >= 2.2.0, < 2.3.0 (See also :issue:`982`) - pycodestyle has been updated to >= 2.6.0a1, < 2.7.0 (See also :issue:`983`) Features ~~~~~~~~ - Add ``--extend-exclude`` option to add to ``--exclude`` without overwriting (See also :issue:`1211`, :issue:`1091`) - Move argument parsing from ``optparse`` to ``argparse`` (See also :issue:`939` - Group plugin options in ``--help`` (See also :issue:`1219`, :issue:`294`) - Remove parsing of ``verbose`` from configuration files as it was not consistently applied (See also :issue:`1245`, :issue:`245`) - Remove parsing of ``output_file`` from configuration files as it was not consistently applied (See also :issue:`1246`) - 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 :issue:`952`) - Officially support python3.8 (See also :issue:`963`) - ``--disable-noqa`` now also disables `` flake8: noqa`` (See also :issue:`1296`, :issue:`318`) - Ensure that a missing file produces a ``E902`` error (See also :issue:`1262`, :issue:`328`) - `` 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 :issue:`1266`, :issue:`621`) Bugs Fixed ~~~~~~~~~~ - Fix ``--exclude=./t.py`` to only match ``t.py`` at the top level (See also :issue:`1208`, :issue:`628`) - Fix ``--show-source`` when a file is indented with tabs (See also :issue:`1218`, :issue:`719`) - Fix crash when ``--max-line-length`` is given a non-integer (See also :issue:`939`, :issue:`704`) - Prevent flip-flopping of ``indent_char`` causing extra ``E101`` errors (See also :issue:`949`, `pycodestyle886`_) - Only enable multiprocessing when the method is ``fork`` fixing issues on macos with python3.8+ (See also :issue:`955`, :issue:`315`) (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 :issue:`1214`, :issue:`1104`) - Fix duplicate loading of plugins when invoked via ``python -m flake8`` (See also :issue:`1297`) - Fix early exit when ``--exit-zero`` and ``--diff`` are provided and the diff is empty (See also :issue:`970`) - Consistently split lines when ``\f`` is present when reading from stdin (See also :issue:`976`, :issue:`202`) Deprecations ~~~~~~~~~~~~ - ``python setup.py flake8`` (setuptools integration) is now deprecated and will be removed in a future version (See also :issue:`935`, :issue:`1098`) - ``type='string'`` (optparse) types are deprecated, use ``type=callable`` (argparse) instead. Support for ``type='string'`` will be removed in a future version (See also :issue:`939`) - ``%default`` in plugin option help text is deprecated, use ``%(default)s`` instead. Support for ``%default`` will be removed in a future version (See also :issue:`939`) - optparse-style ``action='callback'`` setting for options is deprecated, use argparse action classes instead. This will be removed in a future version (See also :issue:`939`) .. all links .. _3.8.0 milestone: https://github.com/pycqa/flake8/milestone/31 .. issue links .. _pycodestyle886: https://github.com/PyCQA/pycodestyle/issues/886 ``` ### 3.7.9 ``` ------------------- You can view the `3.7.9 milestone`_ on GitHub for more details. Bugs Fixed ~~~~~~~~~~ - Disable multiprocessing when the multiprocessing method is ``spawn`` (such as on macos in python3.8) (See also :issue:`956`, :issue:`315`) .. all links .. _3.7.9 milestone: https://github.com/pycqa/flake8/milestone/32 ```
Links - PyPI: https://pypi.org/project/flake8 - Changelog: https://pyup.io/changelogs/flake8/ - Repo: https://gitlab.com/pycqa/flake8

Update ipdb from 0.12.2 to 0.13.9.

Changelog ### 0.13.9 ``` ------------------- - Fix again when `pyproject.toml` does not contain `tool` section. [markab108] ``` ### 0.13.8 ``` ------------------- - Fix when `pyproject.toml` does not contain `tool` section. [anjos] - Add the convenience function ``iex()``. [alanbernstein] ``` ### 0.13.7 ``` ------------------- - Do not instantiate IPython on import [adamchainz] ``` ### 0.13.6 ``` ------------------- - Fix broken parsing of pyproject.toml [alexandrebarbaruiva] ``` ### 0.13.5 ``` ------------------- - Add support for pyproject.toml as configuration file [alexandrebarbaruiva] - For users using python 3.4, install 6.0.0 <= IPython < 7.0.0, for users using python 3.5, install 7.0.0 <= IPython < 7.10.0, for users using python 3.6, install 7.10.0 <= IPython < 7.17.0, for users using python>3.6, install IPython >= 7.17.0. [d1618033] ``` ### 0.13.4 ``` ------------------- - Add '-m' option [mrmino] ``` ### 0.13.3 ``` ------------------- - Allow runcall, runeval to also use set context value [meowser] - Add condition argument to set_trace [alexandrebarbaruiva] ``` ### 0.13.2 ``` ------------------- - Remove leftover debug code [gotcha] ``` ### 0.13.1 ``` ------------------- - Fix when no configuration file [gotcha] ``` ### 0.13.0 ``` ------------------- - Add option to set context via environment variable or configuration file [alexandrebarbaruiva] ``` ### 0.12.3 ``` ------------------- - Fix version in usage [gotcha] ```
Links - PyPI: https://pypi.org/project/ipdb - Changelog: https://pyup.io/changelogs/ipdb/ - Repo: https://github.com/gotcha/ipdb

Update ipython from 7.8.0 to 7.25.0.

Changelog ### 7.18.1 ``` We do not use GitHub release anymore. Please see PyPI https://pypi.org/project/ipython/ ``` ### 7.9.0 ``` None ```
Links - PyPI: https://pypi.org/project/ipython - Changelog: https://pyup.io/changelogs/ipython/ - Homepage: https://ipython.org

Update pytest from 5.2.1 to 6.2.4.

Changelog ### 6.2.4 ``` ========================= Bug Fixes --------- - `8539 <https://github.com/pytest-dev/pytest/issues/8539>`_: Fixed assertion rewriting on Python 3.10. ``` ### 6.2.3 ``` ========================= Bug Fixes --------- - `8414 <https://github.com/pytest-dev/pytest/issues/8414>`_: pytest used to create directories under ``/tmp`` with world-readable permissions. This means that any user in the system was able to read information written by tests in temporary directories (such as those created by the ``tmp_path``/``tmpdir`` fixture). Now the directories are created with private permissions. pytest used to silenty use a pre-existing ``/tmp/pytest-of-<username>`` directory, even if owned by another user. This means another user could pre-create such a directory and gain control of another user's temporary directory. Now such a condition results in an error. ``` ### 6.2.2 ``` ========================= Bug Fixes --------- - `8152 <https://github.com/pytest-dev/pytest/issues/8152>`_: Fixed "(<Skipped instance>)" being shown as a skip reason in the verbose test summary line when the reason is empty. - `8249 <https://github.com/pytest-dev/pytest/issues/8249>`_: Fix the ``faulthandler`` plugin for occasions when running with ``twisted.logger`` and using ``pytest --capture=no``. ``` ### 6.2.1 ``` ========================= Bug Fixes --------- - `7678 <https://github.com/pytest-dev/pytest/issues/7678>`_: Fixed bug where ``ImportPathMismatchError`` would be raised for files compiled in the host and loaded later from an UNC mounted path (Windows). - `8132 <https://github.com/pytest-dev/pytest/issues/8132>`_: Fixed regression in ``approx``: in 6.2.0 ``approx`` no longer raises ``TypeError`` when dealing with non-numeric types, falling back to normal comparison. Before 6.2.0, array types like tf.DeviceArray fell through to the scalar case, and happened to compare correctly to a scalar if they had only one element. After 6.2.0, these types began failing, because they inherited neither from standard Python number hierarchy nor from ``numpy.ndarray``. ``approx`` now converts arguments to ``numpy.ndarray`` if they expose the array protocol and are not scalars. This treats array-like objects like numpy arrays, regardless of size. ``` ### 6.2.0 ``` ========================= Breaking Changes ---------------- - `7808 <https://github.com/pytest-dev/pytest/issues/7808>`_: pytest now supports python3.6+ only. Deprecations ------------ - `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_: Directly constructing/calling the following classes/functions is now deprecated: - ``_pytest.cacheprovider.Cache`` - ``_pytest.cacheprovider.Cache.for_config()`` - ``_pytest.cacheprovider.Cache.clear_cache()`` - ``_pytest.cacheprovider.Cache.cache_dir_from_config()`` - ``_pytest.capture.CaptureFixture`` - ``_pytest.fixtures.FixtureRequest`` - ``_pytest.fixtures.SubRequest`` - ``_pytest.logging.LogCaptureFixture`` - ``_pytest.pytester.Pytester`` - ``_pytest.pytester.Testdir`` - ``_pytest.recwarn.WarningsRecorder`` - ``_pytest.recwarn.WarningsChecker`` - ``_pytest.tmpdir.TempPathFactory`` - ``_pytest.tmpdir.TempdirFactory`` These have always been considered private, but now issue a deprecation warning, which may become a hard error in pytest 7.0.0. - `7530 <https://github.com/pytest-dev/pytest/issues/7530>`_: The ``--strict`` command-line option has been deprecated, use ``--strict-markers`` instead. We have plans to maybe in the future to reintroduce ``--strict`` and make it an encompassing flag for all strictness related options (``--strict-markers`` and ``--strict-config`` at the moment, more might be introduced in the future). - `7988 <https://github.com/pytest-dev/pytest/issues/7988>`_: The ``pytest.yield_fixture`` decorator/function is now deprecated. Use :func:`pytest.fixture` instead. ``yield_fixture`` has been an alias for ``fixture`` for a very long time, so can be search/replaced safely. Features -------- - `5299 <https://github.com/pytest-dev/pytest/issues/5299>`_: pytest now warns about unraisable exceptions and unhandled thread exceptions that occur in tests on Python>=3.8. See :ref:`unraisable` for more information. - `7425 <https://github.com/pytest-dev/pytest/issues/7425>`_: New :fixture:`pytester` fixture, which is identical to :fixture:`testdir` but its methods return :class:`pathlib.Path` when appropriate instead of ``py.path.local``. This is part of the movement to use :class:`pathlib.Path` objects internally, in order to remove the dependency to ``py`` in the future. Internally, the old :class:`Testdir <_pytest.pytester.Testdir>` is now a thin wrapper around :class:`Pytester <_pytest.pytester.Pytester>`, preserving the old interface. - `7695 <https://github.com/pytest-dev/pytest/issues/7695>`_: A new hook was added, `pytest_markeval_namespace` which should return a dictionary. This dictionary will be used to augment the "global" variables available to evaluate skipif/xfail/xpass markers. Pseudo example ``conftest.py``: .. code-block:: python def pytest_markeval_namespace(): return {"color": "red"} ``test_func.py``: .. code-block:: python pytest.mark.skipif("color == 'blue'", reason="Color is not red") def test_func(): assert False - `8006 <https://github.com/pytest-dev/pytest/issues/8006>`_: It is now possible to construct a :class:`~pytest.MonkeyPatch` object directly as ``pytest.MonkeyPatch()``, in cases when the :fixture:`monkeypatch` fixture cannot be used. Previously some users imported it from the private `_pytest.monkeypatch.MonkeyPatch` namespace. Additionally, :meth:`MonkeyPatch.context <pytest.MonkeyPatch.context>` is now a classmethod, and can be used as ``with MonkeyPatch.context() as mp: ...``. This is the recommended way to use ``MonkeyPatch`` directly, since unlike the ``monkeypatch`` fixture, an instance created directly is not ``undo()``-ed automatically. Improvements ------------ - `1265 <https://github.com/pytest-dev/pytest/issues/1265>`_: Added an ``__str__`` implementation to the :class:`~pytest.pytester.LineMatcher` class which is returned from ``pytester.run_pytest().stdout`` and similar. It returns the entire output, like the existing ``str()`` method. - `2044 <https://github.com/pytest-dev/pytest/issues/2044>`_: Verbose mode now shows the reason that a test was skipped in the test's terminal line after the "SKIPPED", "XFAIL" or "XPASS". - `7469 <https://github.com/pytest-dev/pytest/issues/7469>`_ The types of builtin pytest fixtures are now exported so they may be used in type annotations of test functions. The newly-exported types are: - ``pytest.FixtureRequest`` for the :fixture:`request` fixture. - ``pytest.Cache`` for the :fixture:`cache` fixture. - ``pytest.CaptureFixture[str]`` for the :fixture:`capfd` and :fixture:`capsys` fixtures. - ``pytest.CaptureFixture[bytes]`` for the :fixture:`capfdbinary` and :fixture:`capsysbinary` fixtures. - ``pytest.LogCaptureFixture`` for the :fixture:`caplog` fixture. - ``pytest.Pytester`` for the :fixture:`pytester` fixture. - ``pytest.Testdir`` for the :fixture:`testdir` fixture. - ``pytest.TempdirFactory`` for the :fixture:`tmpdir_factory` fixture. - ``pytest.TempPathFactory`` for the :fixture:`tmp_path_factory` fixture. - ``pytest.MonkeyPatch`` for the :fixture:`monkeypatch` fixture. - ``pytest.WarningsRecorder`` for the :fixture:`recwarn` fixture. Constructing them is not supported (except for `MonkeyPatch`); they are only meant for use in type annotations. Doing so will emit a deprecation warning, and may become a hard-error in pytest 7.0. Subclassing them is also not supported. This is not currently enforced at runtime, but is detected by type-checkers such as mypy. - `7527 <https://github.com/pytest-dev/pytest/issues/7527>`_: When a comparison between :func:`namedtuple <collections.namedtuple>` instances of the same type fails, pytest now shows the differing field names (possibly nested) instead of their indexes. - `7615 <https://github.com/pytest-dev/pytest/issues/7615>`_: :meth:`Node.warn <_pytest.nodes.Node.warn>` now permits any subclass of :class:`Warning`, not just :class:`PytestWarning <pytest.PytestWarning>`. - `7701 <https://github.com/pytest-dev/pytest/issues/7701>`_: Improved reporting when using ``--collected-only``. It will now show the number of collected tests in the summary stats. - `7710 <https://github.com/pytest-dev/pytest/issues/7710>`_: Use strict equality comparison for non-numeric types in :func:`pytest.approx` instead of raising :class:`TypeError`. This was the undocumented behavior before 3.7, but is now officially a supported feature. - `7938 <https://github.com/pytest-dev/pytest/issues/7938>`_: New ``--sw-skip`` argument which is a shorthand for ``--stepwise-skip``. - `8023 <https://github.com/pytest-dev/pytest/issues/8023>`_: Added ``'node_modules'`` to default value for :confval:`norecursedirs`. - `8032 <https://github.com/pytest-dev/pytest/issues/8032>`_: :meth:`doClassCleanups <unittest.TestCase.doClassCleanups>` (introduced in :mod:`unittest` in Python and 3.8) is now called appropriately. Bug Fixes --------- - `4824 <https://github.com/pytest-dev/pytest/issues/4824>`_: Fixed quadratic behavior and improved performance of collection of items using autouse fixtures and xunit fixtures. - `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0. - `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by by :fixture:`tmp_path` and :fixture:`tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites. - `7913 <https://github.com/pytest-dev/pytest/issues/7913>`_: Fixed a crash or hang in :meth:`pytester.spawn <_pytest.pytester.Pytester.spawn>` when the :mod:`readline` module is involved. - `7951 <https://github.com/pytest-dev/pytest/issues/7951>`_: Fixed handling of recursive symlinks when collecting tests. - `7981 <https://github.com/pytest-dev/pytest/issues/7981>`_: Fixed symlinked directories not being followed during collection. Regressed in pytest 6.1.0. - `8016 <https://github.com/pytest-dev/pytest/issues/8016>`_: Fixed only one doctest being collected when using ``pytest --doctest-modules path/to/an/__init__.py``. Improved Documentation ---------------------- - `7429 <https://github.com/pytest-dev/pytest/issues/7429>`_: Add more information and use cases about skipping doctests. - `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Classes which should not be inherited from are now marked ``final class`` in the API reference. - `7872 <https://github.com/pytest-dev/pytest/issues/7872>`_: ``_pytest.config.argparsing.Parser.addini()`` accepts explicit ``None`` and ``"string"``. - `7878 <https://github.com/pytest-dev/pytest/issues/7878>`_: In pull request section, ask to commit after editing changelog and authors file. Trivial/Internal Changes ------------------------ - `7802 <https://github.com/pytest-dev/pytest/issues/7802>`_: The ``attrs`` dependency requirement is now >=19.2.0 instead of >=17.4.0. - `8014 <https://github.com/pytest-dev/pytest/issues/8014>`_: `.pyc` files created by pytest's assertion rewriting now conform to the newer PEP-552 format on Python>=3.7. (These files are internal and only interpreted by pytest itself.) ``` ### 6.1.2 ``` ========================= Bug Fixes --------- - `7758 <https://github.com/pytest-dev/pytest/issues/7758>`_: Fixed an issue where some files in packages are getting lost from ``--lf`` even though they contain tests that failed. Regressed in pytest 5.4.0. - `7911 <https://github.com/pytest-dev/pytest/issues/7911>`_: Directories created by `tmpdir` are now considered stale after 3 days without modification (previous value was 3 hours) to avoid deleting directories still in use in long running test suites. Improved Documentation ---------------------- - `7815 <https://github.com/pytest-dev/pytest/issues/7815>`_: Improve deprecation warning message for ``pytest._fillfuncargs()``. ``` ### 6.1.1 ``` ========================= Bug Fixes --------- - `7807 <https://github.com/pytest-dev/pytest/issues/7807>`_: Fixed regression in pytest 6.1.0 causing incorrect rootdir to be determined in some non-trivial cases where parent directories have config files as well. - `7814 <https://github.com/pytest-dev/pytest/issues/7814>`_: Fixed crash in header reporting when :confval:`testpaths` is used and contains absolute paths (regression in 6.1.0). ``` ### 6.1.0 ``` ========================= Breaking Changes ---------------- - `5585 <https://github.com/pytest-dev/pytest/issues/5585>`_: As per our policy, the following features which have been deprecated in the 5.X series are now removed: * The ``funcargnames`` read-only property of ``FixtureRequest``, ``Metafunc``, and ``Function`` classes. Use ``fixturenames`` attribute. * ``pytest.fixture`` no longer supports positional arguments, pass all arguments by keyword instead. * Direct construction of ``Node`` subclasses now raise an error, use ``from_parent`` instead. * The default value for ``junit_family`` has changed to ``xunit2``. If you require the old format, add ``junit_family=xunit1`` to your configuration file. * The ``TerminalReporter`` no longer has a ``writer`` attribute. Plugin authors may use the public functions of the ``TerminalReporter`` instead of accessing the ``TerminalWriter`` object directly. * The ``--result-log`` option has been removed. Users are recommended to use the `pytest-reportlog <https://github.com/pytest-dev/pytest-reportlog>`__ plugin instead. For more information consult `Deprecations and Removals <https://docs.pytest.org/en/stable/deprecations.html>`__ in the docs. Deprecations ------------ - `6981 <https://github.com/pytest-dev/pytest/issues/6981>`_: The ``pytest.collect`` module is deprecated: all its names can be imported from ``pytest`` directly. - `7097 <https://github.com/pytest-dev/pytest/issues/7097>`_: The ``pytest._fillfuncargs`` function is deprecated. This function was kept for backward compatibility with an older plugin. It's functionality is not meant to be used directly, but if you must replace it, use `function._request._fillfixtures()` instead, though note this is not a public API and may break in the future. - `7210 <https://github.com/pytest-dev/pytest/issues/7210>`_: The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'`` instead. The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue if you use this and want a replacement. - `7255 <https://github.com/pytest-dev/pytest/issues/7255>`_: The :func:`pytest_warning_captured <_pytest.hookspec.pytest_warning_captured>` hook is deprecated in favor of :func:`pytest_warning_recorded <_pytest.hookspec.pytest_warning_recorded>`, and will be removed in a future version. - `7648 <https://github.com/pytest-dev/pytest/issues/7648>`_: The ``gethookproxy()`` and ``isinitpath()`` methods of ``FSCollector`` and ``Package`` are deprecated; use ``self.session.gethookproxy()`` and ``self.session.isinitpath()`` instead. This should work on all pytest versions. Features -------- - `7667 <https://github.com/pytest-dev/pytest/issues/7667>`_: New ``--durations-min`` command-line flag controls the minimal duration for inclusion in the slowest list of tests shown by ``--durations``. Previously this was hard-coded to ``0.005s``. Improvements ------------ - `6681 <https://github.com/pytest-dev/pytest/issues/6681>`_: Internal pytest warnings issued during the early stages of initialization are now properly handled and can filtered through :confval:`filterwarnings` or ``--pythonwarnings/-W``. This also fixes a number of long standing issues: `2891 <https://github.com/pytest-dev/pytest/issues/2891>`__, `#7620 <https://github.com/pytest-dev/pytest/issues/7620>`__, `#7426 <https://github.com/pytest-dev/pytest/issues/7426>`__. - `7572 <https://github.com/pytest-dev/pytest/issues/7572>`_: When a plugin listed in ``required_plugins`` is missing or an unknown config key is used with ``--strict-config``, a simple error message is now shown instead of a stacktrace. - `7685 <https://github.com/pytest-dev/pytest/issues/7685>`_: Added two new attributes :attr:`rootpath <_pytest.config.Config.rootpath>` and :attr:`inipath <_pytest.config.Config.inipath>` to :class:`Config <_pytest.config.Config>`. These attributes are :class:`pathlib.Path` versions of the existing :attr:`rootdir <_pytest.config.Config.rootdir>` and :attr:`inifile <_pytest.config.Config.inifile>` attributes, and should be preferred over them when possible. - `7780 <https://github.com/pytest-dev/pytest/issues/7780>`_: Public classes which are not designed to be inherited from are now marked `final <https://docs.python.org/3/library/typing.html#typing.final>`_. Code which inherits from these classes will trigger a type-checking (e.g. mypy) error, but will still work in runtime. Currently the ``final`` designation does not appear in the API Reference but hopefully will in the future. Bug Fixes --------- - `1953 <https://github.com/pytest-dev/pytest/issues/1953>`_: Fixed error when overwriting a parametrized fixture, while also reusing the super fixture value. .. code-block:: python conftest.py import pytest pytest.fixture(params=[1, 2]) def foo(request): return request.param test_foo.py import pytest pytest.fixture def foo(foo): return foo * 2 - `4984 <https://github.com/pytest-dev/pytest/issues/4984>`_: Fixed an internal error crash with ``IndexError: list index out of range`` when collecting a module which starts with a decorated function, the decorator raises, and assertion rewriting is enabled. - `7591 <https://github.com/pytest-dev/pytest/issues/7591>`_: pylint shouldn't complain anymore about unimplemented abstract methods when inheriting from :ref:`File <non-python tests>`. - `7628 <https://github.com/pytest-dev/pytest/issues/7628>`_: Fixed test collection when a full path without a drive letter was passed to pytest on Windows (for example ``\projects\tests\test.py`` instead of ``c:\projects\tests\pytest.py``). - `7638 <https://github.com/pytest-dev/pytest/issues/7638>`_: Fix handling of command-line options that appear as paths but trigger an OS-level syntax error on Windows, such as the options used internally by ``pytest-xdist``. - `7742 <https://github.com/pytest-dev/pytest/issues/7742>`_: Fixed INTERNALERROR when accessing locals / globals with faulty ``exec``. Improved Documentation ---------------------- - `1477 <https://github.com/pytest-dev/pytest/issues/1477>`_: Removed faq.rst and its reference in contents.rst. Trivial/Internal Changes ------------------------ - `7536 <https://github.com/pytest-dev/pytest/issues/7536>`_: The internal ``junitxml`` plugin has rewritten to use ``xml.etree.ElementTree``. The order of attributes in XML elements might differ. Some unneeded escaping is no longer performed. - `7587 <https://github.com/pytest-dev/pytest/issues/7587>`_: The dependency on the ``more-itertools`` package has been removed. - `7631 <https://github.com/pytest-dev/pytest/issues/7631>`_: The result type of :meth:`capfd.readouterr() <_pytest.capture.CaptureFixture.readouterr>` (and similar) is no longer a namedtuple, but should behave like one in all respects. This was done for technical reasons. - `7671 <https://github.com/pytest-dev/pytest/issues/7671>`_: When collecting tests, pytest finds test classes and functions by examining the attributes of python objects (modules, classes and instances). To speed up this process, pytest now ignores builtin attributes (like ``__class__``, ``__delattr__`` and ``__new__``) without consulting the :confval:`python_classes` and :confval:`python_functions` configuration options and without passing them to plugins using the :func:`pytest_pycollect_makeitem <_pytest.hookspec.pytest_pycollect_makeitem>` hook. ``` ### 6.0.2 ``` ========================= Bug Fixes --------- - `7148 <https://github.com/pytest-dev/pytest/issues/7148>`_: Fixed ``--log-cli`` potentially causing unrelated ``print`` output to be swallowed. - `7672 <https://github.com/pytest-dev/pytest/issues/7672>`_: Fixed log-capturing level restored incorrectly if ``caplog.set_level`` is called more than once. - `7686 <https://github.com/pytest-dev/pytest/issues/7686>`_: Fixed `NotSetType.token` being used as the parameter ID when the parametrization list is empty. Regressed in pytest 6.0.0. - `7707 <https://github.com/pytest-dev/pytest/issues/7707>`_: Fix internal error when handling some exceptions that contain multiple lines or the style uses multiple lines (``--tb=line`` for example). ``` ### 6.0.1 ``` ========================= Bug Fixes --------- - `7394 <https://github.com/pytest-dev/pytest/issues/7394>`_: Passing an empty ``help`` value to ``Parser.add_option`` is now accepted instead of crashing when running ``pytest --help``. Passing ``None`` raises a more informative ``TypeError``. - `7558 <https://github.com/pytest-dev/pytest/issues/7558>`_: Fix pylint ``not-callable`` lint on ``pytest.mark.parametrize()`` and the other builtin marks: ``skip``, ``skipif``, ``xfail``, ``usefixtures``, ``filterwarnings``. - `7559 <https://github.com/pytest-dev/pytest/issues/7559>`_: Fix regression in plugins using ``TestReport.longreprtext`` (such as ``pytest-html``) when ``TestReport.longrepr`` is not a string. - `7569 <https://github.com/pytest-dev/pytest/issues/7569>`_: Fix logging capture handler's level not reset on teardown after a call to ``caplog.set_level()``. ``` ### 6.0.0 ``` ========================= (**Please see the full set of changes for this release also in the 6.0.0rc1 notes below**) Breaking Changes ---------------- - `5584 <https://github.com/pytest-dev/pytest/issues/5584>`_: **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 6.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 ``6.0.X`` series, it is possible to change the errors back into warnings as a stopgap measure by adding this to your ``pytest.ini`` file: .. code-block:: ini [pytest] filterwarnings = ignore::pytest.PytestDeprecationWarning But this will stop working when pytest ``6.1`` is released. **If you have concerns** about the removal of a specific feature, please add a comment to `5584 <https://github.com/pytest-dev/pytest/issues/5584>`__. - `7472 <https://github.com/pytest-dev/pytest/issues/7472>`_: The ``exec_()`` and ``is_true()`` methods of ``_pytest._code.Frame`` have been removed. Features -------- - `7464 <https://github.com/pytest-dev/pytest/issues/7464>`_: Added support for :envvar:`NO_COLOR` and :envvar:`FORCE_COLOR` environment variables to control colored output. Improvements ------------ - `7467 <https://github.com/pytest-dev/pytest/issues/7467>`_: ``--log-file`` CLI option and ``log_file`` ini marker now create subdirectories if needed. - `7489 <https://github.com/pytest-dev/pytest/issues/7489>`_: The :func:`pytest.raises` function has a clearer error message when ``match`` equals the obtained string but is not a regex match. In this case it is suggested to escape the regex. Bug Fixes --------- - `7392 <https://github.com/pytest-dev/pytest/issues/7392>`_: Fix the reported location of tests skipped with ``pytest.mark.skip`` when ``--runxfail`` is used. - `7491 <https://github.com/pytest-dev/pytest/issues/7491>`_: :fixture:`tmpdir` and :fixture:`tmp_path` no longer raise an error if the lock to check for stale temporary directories is not accessible. - `7517 <https://github.com/pytest-dev/pytest/issues/7517>`_: Preserve line endings when captured via ``capfd``. - `7534 <https://github.com/pytest-dev/pytest/issues/7534>`_: Restored the previous formatting of ``TracebackEntry.__str__`` which was changed by accident. Improved Documentation ---------------------- - `7422 <https://github.com/pytest-dev/pytest/issues/7422>`_: Clarified when the ``usefixtures`` mark can apply fixtures to test. - `7441 <https://github.com/pytest-dev/pytest/issues/7441>`_: Add a note about ``-q`` option used in getting started guide. Trivial/Internal Changes ------------------------ - `7389 <https://github.com/pytest-dev/pytest/issues/7389>`_: Fixture scope ``package`` is no longer considered experimental. ``` ### 6.0.0rc1 ``` ============================ Breaking Changes ---------------- - `1316 <https://github.com/pytest-dev/pytest/issues/1316>`_: ``TestReport.longrepr`` is now always an instance of ``ReprExceptionInfo``. Previously it was a ``str`` when a test failed with ``pytest.fail(..., pytrace=False)``. - `5965 <https://github.com/pytest-dev/pytest/issues/5965>`_: symlinks are no longer resolved during collection and matching `conftest.py` files with test file paths. Resolving symlinks for the current directory and during collection was introduced as a bugfix in 3.9.0, but it actually is a new feature which had unfortunate consequences in Windows and surprising results in other platforms. The team decided to step back on resolving symlinks at all, planning to review this in the future with a more solid solution (see discussion in `6523 <https://github.com/pytest-dev/pytest/pull/6523>`__ for details). This might break test suites which made use of this feature; the fix is to create a symlink for the entire test tree, and not only to partial files/tress as it was possible previously. - `6505 <https://github.com/pytest-dev/pytest/issues/6505>`_: ``Testdir.run().parseoutcomes()`` now always returns the parsed nouns in plural form. Originally ``parseoutcomes()`` would always returns the nouns in plural form, but a change meant to improve the terminal summary by using singular form single items (``1 warning`` or ``1 error``) caused an unintended regression by changing the keys returned by ``parseoutcomes()``. Now the API guarantees to always return the plural form, so calls like this: .. code-block:: python result = testdir.runpytest() result.assert_outcomes(error=1) Need to be changed to: .. code-block:: python result = testdir.runpytest() result.assert_outcomes(errors=1) - `6903 <https://github.com/pytest-dev/pytest/issues/6903>`_: The ``os.dup()`` function is now assumed to exist. We are not aware of any supported Python 3 implementations which do not provide it. - `7040 <https://github.com/pytest-dev/pytest/issues/7040>`_: ``-k`` no longer matches against the names of the directories outside the test session root. Also, ``pytest.Package.name`` is now just the name of the directory containing the package's ``__init__.py`` file, instead of the full path. This is consistent with how the other nodes are named, and also one of the reasons why ``-k`` would match against any directory containing the test suite. - `7122 <https://github.com/pytest-dev/pytest/issues/7122>`_: Expressions given to the ``-m`` and ``-k`` options are no longer evaluated using Python's :func:`eval`. The format supports ``or``, ``and``, ``not``, parenthesis and general identifiers to match against. Python constants, keywords or other operators are no longer evaluated differently. - `7135 <https://github.com/pytest-dev/pytest/issues/7135>`_: Pytest now uses its own ``TerminalWriter`` class instead of using the one from the ``py`` library. Plugins generally access this class through ``TerminalReporter.writer``, ``TerminalReporter.write()`` (and similar methods), or ``_pytest.config.create_terminal_writer()``. The following breaking changes were made: - Output (``write()`` method and others) no longer flush implicitly; the flushing behavior of the underlying file is respected. To flush explicitly (for example, if you want output to be shown before an end-of-line is printed), use ``write(flush=True)`` or ``terminal_writer.flush()``. - Explicit Windows console support was removed, delegated to the colorama library. - Support for writing ``bytes`` was removed. - The ``reline`` method and ``chars_on_current_line`` property were removed. - The ``stringio`` and ``encoding`` arguments was removed. - Support for passing a callable instead of a file was removed. - `7224 <https://github.com/pytest-dev/pytest/issues/7224>`_: The `item.catch_log_handler` and `item.catch_log_handlers` attributes, set by the logging plugin and never meant to be public, are no longer available. The deprecated ``--no-print-logs`` option and ``log_print`` ini option are removed. Use ``--show-capture`` instead. - `7226 <https://github.com/pytest-dev/pytest/issues/7226>`_: Removed the unused ``args`` parameter from ``pytest.Function.__init__``. - `7418 <https://github.com/pytest-dev/pytest/issues/7418>`_: Removed the `pytest_doctest_prepare_content` hook specification. This hook hasn't been triggered by pytest for at least 10 years. - `7438 <https://github.com/pytest-dev/pytest/issues/7438>`_: Some changes were made to the internal ``_pytest._code.source``, listed here for the benefit of plugin authors who may be using it: - The ``deindent`` argument to ``Source()`` has been removed, now it is always true. - Support for zero or multiple arguments to ``Source()`` has been removed. - Support for comparing ``Source`` with an ``str`` has been removed. - The methods ``Source.isparseable()`` and ``Source.putaround()`` have been removed. - The method ``Source.compile()`` and function ``_pytest._code.compile()`` have been removed; use plain ``compile()`` instead. - The function ``_pytest._code.source.getsource()`` has been removed; use ``Source()`` directly instead. Deprecations ------------ - `7210 <https://github.com/pytest-dev/pytest/issues/7210>`_: The special ``-k '-expr'`` syntax to ``-k`` is deprecated. Use ``-k 'not expr'`` instead. The special ``-k 'expr:'`` syntax to ``-k`` is deprecated. Please open an issue if you use this and want a replacement. - `4049 <https://github.com/pytest-dev/pytest/issues/4049>`_: ``pytest_warning_captured`` is deprecated in favor of the ``pytest_warning_recorded`` hook. Features -------- - `1556 <https://github.com/pytest-dev/pytest/issues/1556>`_: pytest now supports ``pyproject.toml`` files for configuration. The configuration options is similar to the one available in other formats, but must be defined in a ``[tool.pytest.ini_options]`` table to be picked up by pytest: .. code-block:: toml pyproject.toml [tool.pytest.ini_options] minversion = "6.0" addopts = "-ra -q" testpaths = [ "tests", "integration", ] More information can be found `in the docs <https://docs.pytest.org/en/stable/customize.html#configuration-file-formats>`__. - `3342 <https://github.com/pytest-dev/pytest/issues/3342>`_: pytest now includes inline type annotations and exposes them to user programs. Most of the user-facing API is covered, as well as internal code. If you are running a type checker such as mypy on your tests, you may start noticing type errors indicating incorrect usage. If you run into an error that you believe to be incorrect, please let us know in an issue. The types were developed against mypy version 0.780. Versions before 0.750 are known not to work. We recommend using the latest version. Other type checkers may work as well, but they are not officially verified to work by pytest yet. - `4049 <https://github.com/pytest-dev/pytest/issues/4049>`_: Introduced a new hook named `pytest_warning_recorded` to convey information about warnings captured by the internal `pytest` warnings plugin. This hook is meant to replace `pytest_warning_captured`, which is deprecated and will be removed in a future release. - `6471 <https://github.com/pytest-dev/pytest/issues/6471>`_: New command-line flags: * `--no-header`: disables the initial header, including platform, version, and plugins. * `--no-summary`: disables the final test summary, including warnings. - `6856 <https://github.com/pytest-dev/pytest/issues/6856>`_: A warning is now shown when an unknown key is read from a config INI file. The `--strict-config` flag has been added to treat these warnings as errors. - `6906 <https://github.com/pytest-dev/pytest/issues/6906>`_: Added `--code-highlight` command line option to enable/disable code highlighting in terminal output. - `7245 <https://github.com/pytest-dev/pytest/issues/7245>`_: New ``--import-mode=importlib`` option that uses `importlib <https://docs.python.org/3/library/importlib.html>`__ to import test modules. Traditionally pytest used ``__import__`` while changing ``sys.path`` to import test modules (which also changes ``sys.modules`` as a side-effect), which works but has a number of drawbacks, like requiring test modules that don't live in packages to have unique names (as they need to reside under a unique name in ``sys.modules``). ``--import-mode=importlib`` uses more fine grained import mechanisms from ``importlib`` which don't require pytest to change ``sys.path`` or ``sys.modules`` at all, eliminating much of the drawbacks of the previous mode. We intend to make ``--import-mode=importlib`` the default in future versions, so users are encouraged to try the new mode and provide feedback (both positive or negative) in issue `7245 <https://github.com/pytest-dev/pytest/issues/7245>`__. You can read more about this option in `the documentation <https://docs.pytest.org/en/latest/pythonpath.html#import-modes>`__. - `7305 <https://github.com/pytest-dev/pytest/issues/7305>`_: New ``required_plugins`` configuration option allows the user to specify a list of plugins, including version information, that are required for pytest to run. An error is raised if any required plugins are not found when running pytest. Improvements ------------ - `4375 <https://github.com/pytest-dev/pytest/
pyup-bot commented 3 years ago

Closing this in favor of #284