Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Initial Update #10

merged 10 commits into from Sep 2, 2020

Initial Update #10

merged 10 commits into from Sep 2, 2020


Copy link

@pyup-bot pyup-bot commented Sep 2, 2020

This PR sets up on this repo and updates all dependencies at once, in a single branch.

Subsequent pull requests will update one dependency at a time, each in their own branch. If you want to start with that right away, simply close this PR.

Update attrs from 19.3.0 to 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 <>`_


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


- 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 <>`_,
`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 <>`_,
`635 <>`_
- On Python 3, all generated methods now have a docstring explaining that they have been created by ``attrs``.
`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 <>`_,
`513 <>`_,
`642 <>`_
- Fixed a ``ValueError: Cell is empty`` bug that could happen in some rare edge cases.
`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 <>`_
- 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 <>`_
- 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 <>`_).
`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 <>`_,
`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 <>`_
- 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 <>`_


Update certifi from 2020.4.5.1 to 2020.6.20.

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


Update click from 7.1.1 to 7.1.2.

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


Update idna from 2.9 to 2.10.




- Update to Unicode 13.0.0.
- Throws a more specific exception if "xn--" is provided as a label.
- This is expected to be the last version that supports Python 2.

Update multidict from 4.7.5 to 4.7.6.





- Fixed an issue with some versions of the ``wheel`` dist
failing because of being unable to detect the license file.
`481 <>`_


Update requests from 2.23.0 to 2.24.0.





- pyOpenSSL TLS implementation is now only used if Python
either doesn't have an `ssl` module or doesn't support
SNI. Previously pyOpenSSL was unconditionally used if available.
This applies even if pyOpenSSL is installed via the
`requests[security]` extra (5443)

- Redirect resolution should now only occur when
`allow_redirects` is True. (5492)

- No longer perform unnecessary Content-Length calculation for
requests that won't use it. (5496)

Update six from 1.14.0 to 1.15.0.




- Pull request 331: Optimize `six.ensure_str` and `six.ensure_binary`.

Update tinydb from 3.15.2 to 4.1.1.




- Fix: Don't install dev-dependencies when installing from PyPI (see
`issue 315 <>`_)



- Feature: Add a no-op query ``Query().noop()`` (see
`issue 313 <>`_)
- Feature: Add a ``access_mode`` flag to ``JSONStorage`` to allow opening
files read-only (see `issue 297 <>`_)
- Fix: Don't dropping the first document that's being inserted when inserting
data on an existing database (see `issue 314



:ref:`Upgrade Notes <upgrade_v4_0>`

Breaking Changes

- Python 2 support has been removed, see `issue 284
for background
- API changes:
 - Removed classes: ``DataProxy``, ``StorageProxy``
 - Attributes removed from ``TinyDB``: ``DEFAULT_TABLE``,
   ``DEFAULT_TABLE_KWARGS``, ``DEFAULT_STORAGE``, removed in favor of
   customizing ``TinyDB``'s behavior by subclassing it and overloading
   ``__init__(...)`` and ``table(...)``
 - ``TinyDB.contains(...)``'s ``doc_ids`` parameter has been renamed to
   ``doc_id`` and now only takes a single document ID
 - ``TinyDB.purge_tables(...)`` has been renamed to ``TinyDB.drop_tables(...)``
 - ``TinyDB.purge_table(...)`` has been renamed to ``TinyDB.drop_table(...)``
 - ``TinyDB.process_elements(...)`` has been removed
 - ``Table.purge()`` has been renamed to ``Table.trunacte()``
 - Evaluating an empty ``Query()`` without any test operators will now result
   in an exception, use ``Query().noop()`` (introduced in v4.1.0) instead
- ``ujson`` support has been removed, see `issue 263
<>`_ and `issue 306
<>`_ for background
- The deprecated Element ID API has been removed (e.g. using the ``Element``
class or ``eids`` parameter) in favor the Document API, see
`pull request 158 <>`_ for details
on the replacement


- TinyDB's internal architecture has been reworked to be more simple and
streamlined in order to make it easier to customize TinyDB's behavior
- With the new architecture, TinyDB performance will improve for many


- Don't break the tests when ``ujson`` is installed (see `issue 262
- Fix performance when reading data (see `issue 250
- Fix inconsistent purge function names (see `issue 103

Update urllib3 from 1.25.8 to 1.25.10.




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

Update yarl from 1.4.2 to 1.5.1.





- Convert host to lowercase on URL building.
`386 <>`_
- Allow using ``mod`` operator (`%`) for updating query string (an alias for ``update_query()`` method).
`435 <>`_
- Allow use of sequences such as ``list`` and ``tuple`` in the values
of a mapping such as ``dict`` to represent that a key has many values::

   url = URL("")
   assert url.with_query({"a": [1, 2]}) == URL("")

`443 <>`_
- Support with scheme and path (creates a relative URL).
`464 <>`_
- Cache slow IDNA encode/decode calls.
`476 <>`_
- Add ``final`` / ``Final`` type hints
`477 <>`_
- Support URL authority/raw_authority properties and authority argument of ```` method.
`478 <>`_
- Hide the library implementation details, make the exposed public list very clean.
`483 <>`_


- Fix tests with newer Python (3.7.6, 3.8.1 and 3.9.0+).
`409 <>`_
- Fix a bug where query component, passed in a form of mapping or sequence, is unquoted in unexpected way.
`426 <>`_
- Hide `Query` and `QueryVariable` type aliases in `__init__.pyi`, now they are prefixed with underscore.
`431 <>`_
- Keep ipv6 brackets after updating port/user/password.
`451 <>`_

@TrueBrain TrueBrain merged commit 451f829 into master Sep 2, 2020
3 checks passed
3 checks passed
LGTM analysis: Python No code changes detected
@TrueBrain TrueBrain deleted the pyup-initial-update branch Sep 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.