Skip to content
This repository has been archived by the owner on Jun 3, 2020. It is now read-only.

Scheduled weekly dependency update for week 16 #177

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

Conversation

pyup-bot
Copy link
Contributor

Update pyflakes from 2.1.1 to 2.2.0.

Changelog

2.2.0

- Include column information in error messages
- Fix ``overload`` detection with other decorators and in non-global scopes
- Fix return-type annotation being a class member
- Fix assignment to ``_`` in doctests with existing ``_`` name
- Namespace attributes which are attached to ast nodes with ``_pyflakes_`` to
avoid conflicts with other libraries (notably bandit)
- Add check for f-strings without placeholders
- Add check for unused/extra/invalid ``'string literal'.format(...)``
- Add check for unused/extra/invalid ``'string literal % ...``
- Improve python shebang detection
- Allow type ignore to be followed by a code `` type: ignore[attr-defined]``
- Add support for assignment expressions (PEP 572)
- Support ``overload`` detection from ``typing_extensions`` as well
- Fix ``overload`` detection for async functions
- Allow ``continue`` inside ``finally`` in python 3.8+
- Fix handling of annotations in positional-only arguments
- Make pyflakes more resistant to future syntax additions
- Fix false positives in partially quoted type annotations
- Warn about ``is`` comparison to tuples
- Fix ``Checker`` usage with async function subtrees
- Add check for ``if`` of non-empty tuple
- Switch from ``optparse`` to ``argparse``
- Fix false positives in partially quoted type annotations in unusual contexts
- Be more cautious when identifying ``Literal`` type expressions
Links

Update attrs from 19.1.0 to 19.3.0.

Changelog

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>`_


----

19.2.0

-------------------

Backward-incompatible Changes
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

- Removed deprecated ``Attribute`` attribute ``convert`` per scheduled removal on 2019/1.
This planned deprecation is tracked in issue `307 <https://github.com/python-attrs/attrs/issues/307>`_.
`504 <https://github.com/python-attrs/attrs/issues/504>`_
- ``__lt__``, ``__le__``, ``__gt__``, and ``__ge__`` do not consider subclasses comparable anymore.

This has been deprecated since 18.2.0 and was raising a ``DeprecationWarning`` for over a year.
`570 <https://github.com/python-attrs/attrs/issues/570>`_


Deprecations
^^^^^^^^^^^^

- The ``cmp`` argument to ``attr.s()`` and ``attr.ib()`` is now deprecated.

Please use ``eq`` to add equality methods (``__eq__`` and ``__ne__``) and ``order`` to add ordering methods (``__lt__``, ``__le__``, ``__gt__``, and ``__ge__``) instead – just like with `dataclasses <https://docs.python.org/3/library/dataclasses.html>`_.

Both are effectively ``True`` by default but it's enough to set ``eq=False`` to disable both at once.
Passing ``eq=False, order=True`` explicitly will raise a ``ValueError`` though.

Since this is arguably a deeper backward-compatibility break, it will have an extended deprecation period until 2021-06-01.
After that day, the ``cmp`` argument will be removed.

``attr.Attribute`` also isn't orderable anymore.
`574 <https://github.com/python-attrs/attrs/issues/574>`_


Changes
^^^^^^^

- Updated ``attr.validators.__all__`` to include new validators added in `425`_.
`517 <https://github.com/python-attrs/attrs/issues/517>`_
- Slotted classes now use a pure Python mechanism to rewrite the ``__class__`` cell when rebuilding the class, so ``super()`` works even on environments where ``ctypes`` is not installed.
`522 <https://github.com/python-attrs/attrs/issues/522>`_
- When collecting attributes using ``attr.s(auto_attribs=True)``, attributes with a default of ``None`` are now deleted too.
`523 <https://github.com/python-attrs/attrs/issues/523>`_,
`556 <https://github.com/python-attrs/attrs/issues/556>`_
- Fixed ``attr.validators.deep_iterable()`` and ``attr.validators.deep_mapping()`` type stubs.
`533 <https://github.com/python-attrs/attrs/issues/533>`_
- ``attr.validators.is_callable()`` validator now raises an exception ``attr.exceptions.NotCallableError``, a subclass of ``TypeError``, informing the received value.
`536 <https://github.com/python-attrs/attrs/issues/536>`_
- ``attr.s(auto_exc=True)`` now generates classes that are hashable by ID, as the documentation always claimed it would.
`543 <https://github.com/python-attrs/attrs/issues/543>`_,
`563 <https://github.com/python-attrs/attrs/issues/563>`_
- Added ``attr.validators.matches_re()`` that checks string attributes whether they match a regular expression.
`552 <https://github.com/python-attrs/attrs/issues/552>`_
- Keyword-only attributes (``kw_only=True``) and attributes that are excluded from the ``attrs``'s ``__init__`` (``init=False``) now can appear before mandatory attributes.
`559 <https://github.com/python-attrs/attrs/issues/559>`_
- The fake filename for generated methods is now more stable.
It won't change when you restart the process.
`560 <https://github.com/python-attrs/attrs/issues/560>`_
- The value passed to ``attr.ib(repr=…)`` can now be either a boolean (as before) or a callable.
That callable must return a string and is then used for formatting the attribute by the generated ``__repr__()`` method.
`568 <https://github.com/python-attrs/attrs/issues/568>`_
- Added ``attr.__version_info__`` that can be used to reliably check the version of ``attrs`` and write forward- and backward-compatible code.
Please check out the `section on deprecated APIs <http://www.attrs.org/en/stable/api.htmldeprecated-apis>`_ on how to use it.
`580 <https://github.com/python-attrs/attrs/issues/580>`_

.. _`425`: https://github.com/python-attrs/attrs/issues/425


----
Links

Update certifi from 2019.3.9 to 2020.4.5.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update idna from 2.8 to 2.9.

Changelog

2.9

++++++++++++++++

- Update to Unicode 12.1.0.
- Prohibit A-labels ending with a hyphen (Thanks, Julien Bernard!)
- Future-proofing: Test on Python 3.7 and 3.8, don't immediately
fail should Python 4 come along.
- Made BSD 3-clause license clearer
Links

Update more-itertools from 7.0.0 to 8.2.0.

Changelog

8.2.0

See the [release notes](https://raw.githubusercontent.com/erikrose/more-itertools/0861bed72ddd4c8ebcfa3a932b7689e272c43478/docs/versions.rst) for details.

8.1.0

See the [release notes](https://github.com/erikrose/more-itertools/blob/ba499fc5f38c7441271c3f147cfd9abbc587556d/docs/versions.rst).

8.0.2

See [the release notes](https://github.com/erikrose/more-itertools/blob/b2c747c2bf642bb9e193a3428bb0052614d420b4/docs/versions.rst802).

8.0.1

See the [release notes](https://github.com/erikrose/more-itertools/blob/765c71b265bb6b34f28fc14500f0f4ab2d3d36ef/docs/versions.rst801) for details.

8.0.0

See [the release notes](https://github.com/erikrose/more-itertools/blob/4661c942c49fe891a80b50c201983d00db75af13/docs/versions.rst800) for details.

7.2.0

See the [release notes](https://github.com/erikrose/more-itertools/blob/0f4a66cdce0e153594eb95beb292fd5ea4393473/docs/versions.rst) for details.

7.1.0

See [the release notes](https://github.com/erikrose/more-itertools/blob/4152860cbbd7a073253d075472c1eb3b73e38a6a/docs/versions.rst710) for details.
Links

Update pluggy from 0.11.0 to 0.13.1.

Changelog

0.13.1

==========================

Trivial/Internal Changes
------------------------

- `236 <https://github.com/pytest-dev/pluggy/pull/236>`_: Improved documentation, especially with regard to references.

0.13.0

==========================

Trivial/Internal Changes
------------------------

- `222 <https://github.com/pytest-dev/pluggy/issues/222>`_: Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the
standard library on Python 3.8+.

0.12.0

==========================

Features
--------

- `215 <https://github.com/pytest-dev/pluggy/issues/215>`_: Switch from ``pkg_resources`` to ``importlib-metadata`` for entrypoint detection for improved performance and import time.  This time with ``.egg`` support.
Links

Update py from 1.8.0 to 1.8.1.

Changelog

1.8.1

==================

- Handle ``FileNotFoundError`` when trying to import pathlib in ``path.common``
on Python 3.4 (207).

- ``py.path.local.samefile`` now works correctly in Python 3 on Windows when dealing with symlinks.
Links

Update pytest from 4.5.0 to 5.4.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update pytest-html from 1.20.0 to 2.1.1.

Changelog

2.1.1

* Fix issue with funcargs causing failures. (`282 <https://github.com/pytest-dev/pytest-html/issues/282>`_)

* Thanks to `ssbarnea <https://github.com/ssbarnea>`_ for reporting and `christiansandberg <https://github.com/christiansandberg>`_ for the fix

2.1.0

* Added support for MP4 video format. (`260 <https://github.com/pytest-dev/pytest-html/pull/260>`_)

* Thanks to `ExaltedBagel <https://github.com/ExaltedBagel>`_ for the PR

* Added support for sorting metadata by key. (`245 <https://github.com/pytest-dev/pytest-html/issues/245>`_)

* Thanks to `ssbarnea <https://github.com/ssbarnea>`_ for reporting and `ExaltedBagel <https://github.com/ExaltedBagel>`_ for the fix

* Added support for rendering reports collapsed (`239 <https://github.com/pytest-dev/pytest-html/issues/239>`_)

* Thanks to `Wramberg <https://github.com/Wramberg>`_ for suggesting this enhancement

* Added `extra` fixture (`269 <https://github.com/pytest-dev/pytest-html/pull/269>`_)

* Thanks to `christiansandberg <https://github.com/christiansandberg>`_ for the PR

* Added ability to change report title using hook (`270 <https://github.com/pytest-dev/pytest-html/pull/270>`_)

* Thanks to `werdeil <https://github.com/werdeil>`_ for the PR

2.0.1

* Properly check for presence of CSS file. (`246 <https://github.com/pytest-dev/pytest-html/issues/246>`_)

* Thanks to `wanam <https://github.com/wanam>`_ for reporting, and `krzysztof-pawlik-gat <https://github.com/krzysztof-pawlik-gat>`_ for the fix

* Added support for UTF-8 display. (`244 <https://github.com/pytest-dev/pytest-html/pull/244>`_)

* Thanks to `Izhu666 <https://github.com/lzhu666>`_ for the PR

* Fix initial sort on column. (`247 <https://github.com/pytest-dev/pytest-html/issues/247>`_)

* Thanks to `wanam <https://github.com/wanam>`_ for reporting and fixing

2.0.0

* Drop support for Python 2.7. We will continue to accept patches to ``1.22.x`` for the time being.

* Thanks to `hugovk <https://github.com/hugovk>`_ for the PR

1.22.0

* Refactor assets naming to be more readable and OS safe.

* This solves multiple reported issues, mainly from Windows users.
* Thanks to `franz-95 <https://github.com/franz-95>`_ and `Uil2Liv <https://github.com/Uil2liv>`_
 for reporting and testing fixes.

* Add line break to log section of the report.

* Thanks to `borntyping <https://github.com/borntyping>`_ for reporting and fixing!

1.21.1

* Fix issue with assets filenames being too long.

* Thanks to `D3X <https://github.com/D3X>`_ for reporting and providing a fix

1.21.0

* Allow opening generated html report in browser (`ssbarnea <https://github.com/ssbarnea>`_)

* Handle when report title is stored as an environment variable (`BeyondEvil <https://github.com/BeyondEvil>`_)

* Change assets naming method (`SunInJuly <https://github.com/SunInJuly>`_)
Links

Update pytest-selenium from 1.16.0 to 1.17.0.

Changelog

1.17.0

-------------------

* Added support for `Appium <https://appium.io/>`_

* Deprecate support for `PhantomJS`
Links

Update pytest-variables from 1.7.1 to 1.9.0.

Changelog

1.9.0

* Add TOML support

* Thanks to `mraspberry <https://github.com/mraspberry>`_ for the PR

1.8.0

* Handle PyYaml deprecation

* Thanks to `jurisbu <https://github.com/jurisbu>`_ for the PR
Links

Update requests from 2.22.0 to 2.23.0.

Changelog

2.23.0

-------------------

**Improvements**

- Remove defunct reference to `prefetch` in Session `__attrs__` (5110)

**Bugfixes**

- Requests no longer outputs password in basic auth usage warning. (5099)

**Dependencies**

- Pinning for `chardet` and `idna` now uses major version instead of minor.
This hopefully reduces the need for releases everytime a dependency is updated.
Links

Update six from 1.12.0 to 1.14.0.

Changelog

1.14.0

------

- Issue 288, pull request 289: Add `six.assertNotRegex`.

- Issue 317: `six.moves._dummy_thread` now points to the `_thread` module on
Python 3.9+. Python 3.7 and later requires threading and deprecated the
`_dummy_thread` module.

- Issue 308, pull request 314: Remove support for Python 2.6 and Python 3.2.

- Issue 250, issue 165, pull request 251: `six.wraps` now ignores missing
attributes. This follows the Python 3.2+ standard library behavior.

1.13.0

------

- Issue 298, pull request 299: Add `six.moves.dbm_ndbm`.

- Issue 155: Add `six.moves.collections_abc`, which aliases the `collections`
module on Python 2-3.2 and the `collections.abc` on Python 3.3 and greater.

- Pull request 304: Re-add distutils fallback in `setup.py`.

- Pull request 305: On Python 3.7, `with_metaclass` supports classes using PEP
560 features.
Links

Update urllib3 from 1.25.2 to 1.25.9.

Changelog

1.25.9

-------------------

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn't currently
support connecting to HTTPS proxies but will soon be able to
and we would like users to migrate properly without much breakage.

See `this GitHub issue <https://github.com/urllib3/urllib3/issues/1850>`_
for more information on how to fix your proxy config. (Pull 1851)

* Drain connection after ``PoolManager`` redirect (Pull 1817)

* Ensure ``load_verify_locations`` raises ``SSLError`` for all backends (Pull 1812)

* Rename ``VerifiedHTTPSConnection`` to ``HTTPSConnection`` (Pull 1805)

* Allow the CA certificate data to be passed as a string (Pull 1804)

* Raise ``ValueError`` if method contains control characters (Pull 1800)

* Add ``__repr__`` to ``Timeout`` (Pull 1795)

1.25.8

-------------------

* Drop support for EOL Python 3.4 (Pull 1774)

* Optimize _encode_invalid_chars (Pull 1787)

1.25.7

-------------------

* Preserve ``chunked`` parameter on retries (Pull 1715, Pull 1734)

* Allow unset ``SERVER_SOFTWARE`` in App Engine (Pull 1704, Issue 1470)

* Fix issue where URL fragment was sent within the request target. (Pull 1732)

* Fix issue where an empty query section in a URL would fail to parse. (Pull 1732)

* Remove TLS 1.3 support in SecureTransport due to Apple removing support (Pull 1703)

1.25.6

-------------------

* Fix issue where tilde (``~``) characters were incorrectly
percent-encoded in the path. (Pull 1692)

1.25.5

-------------------

* Add mitigation for BPO-37428 affecting Python <3.7.4 and OpenSSL 1.1.1+ which
caused certificate verification to be enabled when using ``cert_reqs=CERT_NONE``.
(Issue 1682)

1.25.4

-------------------

* Propagate Retry-After header settings to subsequent retries. (Pull 1607)

* Fix edge case where Retry-After header was still respected even when
explicitly opted out of. (Pull 1607)

* Remove dependency on ``rfc3986`` for URL parsing.

* Fix issue where URLs containing invalid characters within ``Url.auth`` would
raise an exception instead of percent-encoding those characters.

* Add support for ``HTTPResponse.auto_close = False`` which makes HTTP responses
work well with BufferedReaders and other ``io`` module features. (Pull 1652)

* Percent-encode invalid characters in URL for ``HTTPConnectionPool.request()`` (Pull 1673)

1.25.3

-------------------

* Change ``HTTPSConnection`` to load system CA certificates
when ``ca_certs``, ``ca_cert_dir``, and ``ssl_context`` are
unspecified. (Pull 1608, Issue 1603)

* Upgrade bundled rfc3986 to v1.3.2. (Pull 1609, Issue 1605)
Links

Update zope.component from 4.5 to 4.6.1.

Changelog

4.6.1

==================

- Ensure the resolution order of ``BaseGlobalComponents`` is
consistent. See `issue 45 <https://github.com/zopefoundation/zope.component/issues/45>`_.

4.6.0

==================

- Add support for Python 3.8.

- Drop support for Python 3.4.

- Fix tests on Python 2 following changes in ZODB 5.5.0.
Links

Update zope.deferredimport from 4.3 to 4.3.1.

Changelog

4.3.1

==================

- Avoid race condition in ``deferredmodule.ModuleProxy.__getattr__``
`8 <https://github.com/zopefoundation/zope.deferredimport/issues/8>`_.
Links

Update zope.hookable from 4.2.0 to 5.0.1.

Changelog

5.0.1

==================

- Stop using the setuptools ``Feature`` class, allowing this
project to be built from source with newer versions of setuptools
that remove that functionality.

5.0.0

==================

- Add support for Python 3.7 and 3.8.

- Drop support for Python 3.4.
Links

Update zope.interface from 4.6.0 to 5.1.0.

Changelog

5.1.0

==================

- Make ``implementer(*iface)`` and ``classImplements(cls, *iface)``
ignore redundant interfaces. If the class already implements an
interface through inheritance, it is no longer redeclared
specifically for *cls*. This solves many instances of inconsistent
resolution orders, while still allowing the interface to be declared
for readability and maintenance purposes. See `issue 199
<https://github.com/zopefoundation/zope.interface/issues/199>`_.

- Remove all bare ``except:`` statements. Previously, when accessing
special attributes such as ``__provides__``, ``__providedBy__``,
``__class__`` and ``__conform__``, this package wrapped such access
in a bare ``except:`` statement, meaning that many errors could pass
silently; typically this would result in a fallback path being taken
and sometimes (like with ``providedBy()``) the result would be
non-sensical. This is especially true when those attributes are
implemented with descriptors. Now, only ``AttributeError`` is
caught. This makes errors more obvious.

Obviously, this means that some exceptions will be propagated
differently than before. In particular, ``RuntimeError`` raised by
Acquisition in the case of circular containment will now be
propagated. Previously, when adapting such a broken object, a
``TypeError`` would be the common result, but now it will be a more
informative ``RuntimeError``.

In addition, ZODB errors like ``POSKeyError`` could now be
propagated where previously they would ignored by this package.

See `issue 200 <https://github.com/zopefoundation/zope.interface/issues/200>`_.

- Require that the second argument (*bases*) to ``InterfaceClass`` is
a tuple. This only matters when directly using ``InterfaceClass`` to
create new interfaces dynamically. Previously, an individual
interface was allowed, but did not work correctly. Now it is
consistent with ``type`` and requires a tuple.

- Let interfaces define custom ``__adapt__`` methods. This implements
the other side of the :pep:`246` adaptation protocol: objects being
adapted could already implement ``__conform__`` if they know about
the interface, and now interfaces can implement ``__adapt__`` if
they know about particular objects. There is no performance penalty
for interfaces that do not supply custom ``__adapt__`` methods.

This includes the ability to add new methods, or override existing
interface methods using the new ``interfacemethod`` decorator.

See `issue 3 <https://github.com/zopefoundation/zope.interface/issues/3>`_.

- Make the internal singleton object returned by APIs like
``implementedBy`` and ``directlyProvidedBy`` for objects that
implement or provide no interfaces more immutable. Previously an
internal cache could be mutated. See `issue 204
<https://github.com/zopefoundation/zope.interface/issues/204>`_.

5.0.2

==================

- Ensure that objects that implement no interfaces (such as direct
subclasses of ``object``) still include ``Interface`` itself in
their ``__iro___`` and ``__sro___``. This fixes adapter registry
lookups for such objects when the adapter is registered for
``Interface``. See `issue 197
<https://github.com/zopefoundation/zope.interface/issues/197>`_.

5.0.1

==================

- Ensure the resolution order for ``InterfaceClass`` is consistent.
See `issue 192 <https://github.com/zopefoundation/zope.interface/issues/192>`_.

- Ensure the resolution order for ``collections.OrderedDict`` is
consistent on CPython 2. (It was already consistent on Python 3 and PyPy).

- Fix the handling of the ``ZOPE_INTERFACE_STRICT_IRO`` environment
variable. Previously, ``ZOPE_INTERFACE_STRICT_RO`` was read, in
contrast with the documentation. See `issue 194
<https://github.com/zopefoundation/zope.interface/issues/194>`_.

5.0.0

==================

- Make an internal singleton object returned by APIs like
``implementedBy`` and ``directlyProvidedBy`` immutable. Previously,
it was fully mutable and allowed changing its ``__bases___``. That
could potentially lead to wrong results in pathological corner
cases. See `issue 158
<https://github.com/zopefoundation/zope.interface/issues/158>`_.

- Support the ``PURE_PYTHON`` environment variable at runtime instead
of just at wheel build time. A value of 0 forces the C extensions to
be used (even on PyPy) failing if they aren't present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 <https://github.com/zopefoundation/zope.interface/pull/151>`_.

- Cache the result of ``__hash__`` method in ``InterfaceClass`` as a
speed optimization. The method is called very often (i.e several
hundred thousand times during Plone 5.2 startup). Because the hash value never
changes it can be cached. This improves test performance from 0.614s
down to 0.575s (1.07x faster). In a real world Plone case a reindex
index came down from 402s to 320s (1.26x faster). See `PR 156
<https://github.com/zopefoundation/zope.interface/pull/156>`_.

- Change the C classes ``SpecificationBase`` and its subclass
``ClassProvidesBase`` to store implementation attributes in their structures
instead of their instance dictionaries. This eliminates the use of
an undocumented private C API function, and helps make some
instances require less memory. See `PR 154 <https://github.com/zopefoundation/zope.interface/pull/154>`_.

- Reduce memory usage in other ways based on observations of usage
patterns in Zope (3) and Plone code bases.

- Specifications with no dependents are common (more than 50%) so
 avoid allocating a ``WeakKeyDictionary`` unless we need it.
- Likewise, tagged values are relatively rare, so don't allocate a
 dictionary to hold them until they are used.
- Use ``__slots___`` or the C equivalent ``tp_members`` in more
 common places. Note that this removes the ability to set arbitrary
 instance variables on certain objects.
 See `PR 155 <https://github.com/zopefoundation/zope.interface/pull/155>`_.

The changes in this release resulted in a 7% memory reduction after
loading about 6,000 modules that define about 2,200 interfaces.

.. caution::

  Details of many private attributes have changed, and external use
  of those private attributes may break. In particular, the
  lifetime and default value of ``_v_attrs`` has changed.

- Remove support for hashing uninitialized interfaces. This could only
be done by subclassing ``InterfaceClass``. This has generated a
warning since it was first added in 2011 (3.6.5). Please call the
``InterfaceClass`` constructor or otherwise set the appropriate
fields in your subclass before attempting to hash or sort it. See
`issue 157 <https://github.com/zopefoundation/zope.interface/issues/157>`_.

- Remove unneeded override of the ``__hash__`` method from
``zope.interface.declarations.Implements``. Watching a reindex index
process in ZCatalog with on a Py-Spy after 10k samples the time for
``.adapter._lookup`` was reduced from 27.5s to 18.8s (~1.5x faster).
Overall reindex index time shrunk from 369s to 293s (1.26x faster).
See `PR 161
<https://github.com/zopefoundation/zope.interface/pull/161>`_.

- Make the Python implementation closer to the C implementation by
ignoring all exceptions, not just ``AttributeError``, during (parts
of) interface adaptation. See `issue 163
<https://github.com/zopefoundation/zope.interface/issues/163>`_.

- Micro-optimization in ``.adapter._lookup`` , ``.adapter._lookupAll``
and ``.adapter._subscriptions``: By loading ``components.get`` into
a local variable before entering the loop a bytcode "LOAD_FAST 0
(components)" in the loop can be eliminated. In Plone, while running
all tests, average speedup of the "owntime" of ``_lookup`` is ~5x.
See `PR 167
<https://github.com/zopefoundation/zope.interface/pull/167>`_.

- Add ``__all__`` declarations to all modules. This helps tools that
do auto-completion and documentation and results in less cluttered
results. Wildcard ("*") are not recommended and may be affected. See
`issue 153
<https://github.com/zopefoundation/zope.interface/issues/153>`_.

- Fix ``verifyClass`` and ``verifyObject`` for builtin types like
``dict`` that have methods taking an optional, unnamed argument with
no default value like ``dict.pop``. On PyPy3, the verification is
strict, but on PyPy2 (as on all versions of CPython) those methods
cannot be verified and are ignored. See `issue 118
<https://github.com/zopefoundation/zope.interface/issues/118>`_.

- Update the common interfaces ``IEnumerableMapping``,
``IExtendedReadMapping``, ``IExtendedWriteMapping``,
``IReadSequence`` and ``IUniqueMemberWriteSequence`` to no longer
require methods that were removed from Python 3 on Python 3, such as
``__setslice___``. Now, ``dict``, ``list`` and ``tuple`` properly
verify as ``IFullMapping``, ``ISequence`` and ``IReadSequence,``
respectively on all versions of Python.

- Add human-readable ``__str___`` and ``__repr___`` to ``Attribute``
and ``Method``. These contain the name of the defining interface
and the attribute. For methods, it also includes the signature.

- Change the error strings raised by ``verifyObject`` and
``verifyClass``. They now include more human-readable information
and exclude extraneous lines and spaces. See `issue 170
<https://github.com/zopefoundation/zope.interface/issues/170>`_.

.. caution:: This will break consumers (such as doctests) that
            depended on the exact error messages.

- Make ``verifyObject`` and ``verifyClass`` report all errors, if the
candidate object has multiple detectable violations. Previously they
reported only the first error. See `issue
<https://github.com/zopefoundation/zope.interface/issues/171>`_.

Like the above, this will break consumers depending on the exact
output of error messages if more than one error is present.

- Add ``zope.interface.common.collections``,
``zope.interface.common.numbers``, and ``zope.interface.common.io``.
These modules define interfaces based on the ABCs defined in the
standard library ``collections.abc``, ``numbers`` and ``io``
modules, respectively. Importing these modules will make the
standard library concrete classes that are registered with those
ABCs declare the appropriate interface. See `issue 138
<https://github.com/zopefoundation/zope.interface/issues/138>`_.

- Add ``zope.interface.common.builtins``. This module defines
interfaces of common builtin types, such as ``ITextString`` and
``IByteString``, ``IDict``, etc. These interfaces extend the
appropriate interfaces from ``collections`` and ``numbers``, and the
standard library classes implement them after importing this module.
This is intended as a replacement for third-party packages like
`dolmen.builtins <https://pypi.org/project/dolmen.builtins/>`_.
See `issue 138 <https://github.com/zopefoundation/zope.interface/issues/138>`_.

- Make ``providedBy()`` and ``implementedBy()`` respect ``super``
objects. For instance, if class ``Derived`` implements ``IDerived``
and extends ``Base`` which in turn implements ``IBase``, then
``providedBy(super(Derived, derived))`` will return ``[IBase]``.
Previously it would have returned ``[IDerived]`` (in general, it
would previously have returned whatever would have been returned
without ``super``).

Along with this change, adapter registries will unpack ``super``
objects into their ``__self___`` before passing it to the factory.
Together, this means that ``component.getAdapter(super(Derived,
self), ITarget)`` is now meaningful.

See `issue 11 <https://github.com/zopefoundation/zope.interface/issues/11>`_.

- Fix a potential interpreter crash in the low-level adapter
registry lookup functions. See issue 11.

- Adopt Python's standard `C3 resolution order
<https://www.python.org/download/releases/2.3/mro/>`_ to compute the
``__iro__`` and ``__sro__`` of interfaces, with tweaks to support
additional cases that are common in interfaces but disallowed for
Python classes. Previously, an ad-hoc ordering that made no
particular guarantees was used.

This has many beneficial properties, including the fact that base
interface and base classes tend to appear near the end of the
resolution order instead of the beginning. The resolution order in
general should be more predictable and consistent.

.. caution::
  In some cases, especially with complex interface inheritance
  trees or when manually providing or implementing interfaces, the
  resulting IRO may be quite different. This may affect adapter
  lookup.

The C3 order enforces some constraints in order to be able to
guarantee a sensible ordering. Older versions of zope.interface did
not impose similar constraints, so it was possible to create
interfaces and declarations that are inconsistent with the C3
constraints. In that event, zope.interface will still produce a
resolution order equal to the old order, but it won't be guaranteed
to be fully C3 compliant. In the future, strict enforcement of C3
order may be the default.

A set of environment variables and module constants allows
controlling several aspects of this new behaviour. It is possible to
request warnings about inconsistent resolution orders encountered,
and even to forbid them. Differences between the C3 resolution order
and the previous order can be logged, and, in extreme cases, the
previous order can still be used (this ability will be removed in
the future). For details, see the documentation for
``zope.interface.ro``.

- Make inherited tagged values in interfaces respect the resolution
order (``__iro__``), as method and attribute lookup does. Previously
tagged values could give inconsistent results. See `issue 190
<https://github.com/zopefoundation/zope.interface/issues/190>`_.

- Add ``getDirectTaggedValue`` (and related methods) to interfaces to
allow accessing tagged values irrespective of inheritance. See
`issue 190
<https://github.com/zopefoundation/zope.interface/issues/190>`_.

- Ensure that ``Interface`` is always the last item in the ``__iro__``
and ``__sro__``. This is usually the case, but if classes that do
not implement any interfaces are part of a class inheritance
hierarchy, ``Interface`` could be assigned too high a priority.
See `issue 8 <https://github.com/zopefoundation/zope.interface/issues/8>`_.

- Implement sorting, equality, and hashing in C for ``Interface``
objects. In micro benchmarks, this makes those operations 40% to 80%
faster. This translates to a 20% speed up in querying adapters.

Note that this changes certain implementation details. In
particular, ``InterfaceClass`` now has a non-default metaclass, and
it is enforced that ``__module__`` in instances of
``InterfaceClass`` is read-only.

See `PR 183 <https://github.com/zopefoundation/zope.interface/pull/183>`_.

4.7.2

==================

- Remove deprecated use of setuptools features.  See `issue 30
<https://github.com/zopefoundation/zope.interface/issues/30>`_.

4.7.1

==================

- Use Python 3 syntax in the documentation.  See `issue 119
<https://github.com/zopefoundation/zope.interface/issues/119>`_.

4.7.0

==================

- Drop support for Python 3.4.

- Change ``queryTaggedValue``, ``getTaggedValue``,
``getTaggedValueTags`` in interfaces. They now include inherited
values by following ``__bases__``. See `PR 144
<https://github.com/zopefoundation/zope.interface/pull/144>`_.

.. caution:: This may be a breaking change.

- Add support for Python 3.8.
Links

Update zope.proxy from 4.3.1 to 4.3.5.

Changelog

4.3.5

==================

- Stop installing C header files on PyPy (which is what zope.proxy before 4.3.4
used to do), fixes `issue 39
<https://github.com/zopefoundation/zope.proxy/issues/39>`_.

4.3.4

==================

- Fix a compilation warning on Python 3.8. The slot ``tp_print``
changed to ``tp_vectorcall_offset`` in 3.8 and must not be set.
Prior to 3.8, it was reserved and ignored in all Python 3 versions.
See `issue 36
<https://github.com/zopefoundation/zope.proxy/issues/36>`_.

- Remove deprecated use of setuptools features.  See `issue 38
<https://github.com/zopefoundation/zope.proxy/issues/38>`_.

4.3.3

==================

- Add support for Python 3.8.

- Drop support for Python 3.4.

4.3.2

==================

- Fix error handling in ``ProxyBase.__setattr__``: any the exception raised by
``PyString_AsString``/``PyUnicode_AsUTF8`` would be silently swallowed up
and ignored.  See `issue 31
<https://github.com/zopefoundation/zope.proxy/issues/31>`_.
Links

Update black from 19.3b0 to 19.10b0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update click from 7.0 to 7.1.1.

Changelog

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`
Links

Update flake8 from 3.7.7 to 3.7.9.

Changelog

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
Links

Update mypy from 0.701 to 0.770.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update mypy-extensions from 0.4.1 to 0.4.3.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update typed-ast from 1.3.5 to 1.4.1.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

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

Successfully merging this pull request may close these issues.

None yet

1 participant