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

Scheduled weekly dependency update for week 01 #89

Merged
merged 11 commits into from
Jan 3, 2022

Conversation

pyup-bot
Copy link
Collaborator

@pyup-bot pyup-bot commented Jan 3, 2022

Update sphinx-autodoc-typehints from 1.12.0 to 1.13.0.

Changelog

1.13.0

- Dropped Python 3.6 support
- Python 3.10 support
- Normalize async functions properly
- Allow py310 style annotations (PEP-563)
Links

Update setuptools from 60.1.0 to 60.2.0.

Changelog

60.2.0

-------


Changes
^^^^^^^
* 2974: Setuptools now relies on the Python logging infrastructure to log messages. Instead of using ``distutils.log.*``, use ``logging.getLogger(name).*``.
* 2987: Sync with pypa/distutils2def21c5d74fdd2fe7996ee4030ac145a9d751bd, including fix for missing get_versions attribute (2969), more reliance on sysconfig from stdlib.

Misc
^^^^
* 2962: Avoid attempting to use local distutils when the presiding version of Setuptools on the path doesn't have one.
* 2983: Restore 'add_shim' as the way to invoke the hook. Avoids compatibility issues between different versions of Setuptools with the distutils local implementation.

60.1.1

-------


Misc
^^^^
* 2980: Bypass distutils loader when setuptools module is no longer available on sys.path.
Links

Update attrs from 21.2.0 to 21.4.0.

Changelog

21.4.0

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

Changes
^^^^^^^

- Fixed the test suite on PyPy3.8 where ``cloudpickle`` does not work.
`892 <https://github.com/python-attrs/attrs/issues/892>`_
- Fixed ``coverage report`` for projects that use ``attrs`` and don't set a ``--source``.
`895 <https://github.com/python-attrs/attrs/issues/895>`_,
`896 <https://github.com/python-attrs/attrs/issues/896>`_


----

21.3.0

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

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

- When using ``define``, converters are now run by default when setting an attribute on an instance -- additionally to validators.
I.e. the new default is ``on_setattr=[attrs.setters.convert, attrs.setters.validate]``.

This is unfortunately a breaking change, but it was an oversight, impossible to raise a ``DeprecationWarning`` about, and it's better to fix it now while the APIs are very fresh with few users.
`835 <https://github.com/python-attrs/attrs/issues/835>`_,
`886 <https://github.com/python-attrs/attrs/issues/886>`_
- ``import attrs`` has finally landed!
As of this release, you can finally import ``attrs`` using its proper name.

Not all names from the ``attr`` namespace have been transferred; most notably ``attr.s`` and ``attr.ib`` are missing.
See ``attrs.define`` and ``attrs.field`` if you haven't seen our next-generation APIs yet.
A more elaborate explanation can be found `On The Core API Names <https://www.attrs.org/en/latest/names.html>`_

This feature is at least for one release **provisional**.
We don't *plan* on changing anything, but such a big change is unlikely to go perfectly on the first strike.

The API docs have been mostly updated, but it will be an ongoing effort to change everything to the new APIs.
Please note that we have **not** moved -- or even removed -- anything from ``attr``!

Please do report any bugs or documentation inconsistencies!
`887 <https://github.com/python-attrs/attrs/issues/887>`_


Changes
^^^^^^^

- ``attr.asdict(retain_collection_types=False)`` (default) dumps collection-esque keys as tuples.
`646 <https://github.com/python-attrs/attrs/issues/646>`_,
`888 <https://github.com/python-attrs/attrs/issues/888>`_
- ``__match_args__`` are now generated to support Python 3.10's
`Structural Pattern Matching <https://docs.python.org/3.10/whatsnew/3.10.html#pep-634-structural-pattern-matching>`_.
This can be controlled by the ``match_args`` argument to the class decorators on Python 3.10 and later.
On older versions, it is never added and the argument is ignored.
`815 <https://github.com/python-attrs/attrs/issues/815>`_
- If the class-level *on_setattr* is set to ``attrs.setters.validate`` (default in ``define`` and ``mutable``) but no field defines a validator, pretend that it's not set.
`817 <https://github.com/python-attrs/attrs/issues/817>`_
- The generated ``__repr__`` is significantly faster on Pythons with f-strings.
`819 <https://github.com/python-attrs/attrs/issues/819>`_
- Attributes transformed via ``field_transformer`` are wrapped with ``AttrsClass`` again.
`824 <https://github.com/python-attrs/attrs/issues/824>`_
- Generated source code is now cached more efficiently for identical classes.
`828 <https://github.com/python-attrs/attrs/issues/828>`_
- Added ``attrs.converters.to_bool()``.
`830 <https://github.com/python-attrs/attrs/issues/830>`_
- ``attrs.resolve_types()`` now resolves types of subclasses after the parents are resolved.
`842 <https://github.com/python-attrs/attrs/issues/842>`_
`843 <https://github.com/python-attrs/attrs/issues/843>`_
- Added new validators: ``lt(val)`` (< val), ``le(va)`` (≤ val), ``ge(val)`` (≥ val), ``gt(val)`` (> val), and ``maxlen(n)``.
`845 <https://github.com/python-attrs/attrs/issues/845>`_
- ``attrs`` classes are now fully compatible with `cloudpickle <https://github.com/cloudpipe/cloudpickle>`_ (no need to disable ``repr`` anymore).
`857 <https://github.com/python-attrs/attrs/issues/857>`_
- Added new context manager ``attrs.validators.disabled()`` and functions ``attrs.validators.(set|get)_disabled()``.
They deprecate ``attrs.(set|get)_run_validators()``.
All functions are interoperable and modify the same internal state.
They are not – and never were – thread-safe, though.
`859 <https://github.com/python-attrs/attrs/issues/859>`_
- ``attrs.validators.matches_re()`` now accepts pre-compiled regular expressions in addition to pattern strings.
`877 <https://github.com/python-attrs/attrs/issues/877>`_


----
Links

Update pottery from 2.3.0 to 2.3.5.

Changelog

2.3.5

Bug Fix: Don't allow a `RedisDeque` to equal a `RedisList`...

...even if they're both on the same Redis instance and have the same key.

Before this release:

python
>>> from pottery import RedisDeque, RedisList
>>> RedisDeque(key='videos:dicts') == RedisList(key='videos:dicts')
True


As of this release:

python
>>> from pottery import RedisDeque, RedisList
>>> RedisDeque(key='videos:dicts') == RedisList(key='videos:dicts')
False


What's Changed
* Make minor code cleanups by brainix in https://github.com/brainix/pottery/pull/575
* Don't allow a RedisDeque to equal a RedisList... by brainix in https://github.com/brainix/pottery/pull/576


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.4...v2.3.5

2.3.4

Bug Fix: Don't allow `RedisDeque`s to equal Python lists...

...even when they contain the same elements. Observe:

python
>>> import collections
>>> collections.deque([1, 2, 3]) == [1, 2, 3]
False


What's Changed
* Don't allow RedisDeques to equal Python lists... by brainix in https://github.com/brainix/pottery/pull/574


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.3...v2.3.4

2.3.3

Bug Fix: Don't allow `RedisDeque`s to equal `RedisList`s...

...even when they contain the same elements. Observe:

python
>>> import collections
>>> collections.deque([1, 2, 3]) == [1, 2, 3]
False


What's Changed
* Dramatically simplify RedisList.__eq__() by brainix in https://github.com/brainix/pottery/pull/573


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.2...v2.3.3

2.3.2

Bug Fix: Properly compare `RedisList`s on different Redis databases

Prior to this release, `list1 == list2` would fail if both were `RedisList`s but on different Redis databases. This is because we'd try to use the same [Redis pipeline](https://redis.io/topics/pipelining) for both lists. Fixed in #572.

What's Changed
* Reuse the ._same_redis() helper method by brainix in https://github.com/brainix/pottery/pull/561
* Reorder methods in Primitive ABC to help subclass by brainix in https://github.com/brainix/pottery/pull/562
* Use redis-py's .hscan_iter() and .sscan_iter() by brainix in https://github.com/brainix/pottery/pull/563
* Preserve Open-Closed Principle with name mangling by brainix in https://github.com/brainix/pottery/pull/564
* Simplify code using chunking and aliasing by brainix in https://github.com/brainix/pottery/pull/565
* Name variables more consistently by brainix in https://github.com/brainix/pottery/pull/566
* Use whitespace to make code more clear by brainix in https://github.com/brainix/pottery/pull/567
* Preserve Open-Closed Principle with name mangling by brainix in https://github.com/brainix/pottery/pull/568
* Refactor code in RedisCounter methods for clarity by brainix in https://github.com/brainix/pottery/pull/569
* Simplify RedisDict._populate() by brainix in https://github.com/brainix/pottery/pull/570
* Factor our RedisDict._encode_dict() by brainix in https://github.com/brainix/pottery/pull/571
* Properly compare RedisLists on different Redis dbs by brainix in https://github.com/brainix/pottery/pull/572


**Full Changelog**: https://github.com/brainix/pottery/compare/v2.3.1...v2.3.2

2.3.1

Bug Fix: More robustly test if two Redis clients talk to the same database

Previously, we were comparing the two clients' `connection_kwargs`, but `connection_kwargs` contains more than just `host`, `port`, and `db`:

python
>>> from redis import Redis
>>> redis = Redis()
>>> redis.connection_pool.connection_kwargs
{'db': 0, 'username': None, 'password': None, 'socket_timeout': None, 'encoding': 'utf-8', 'encoding_errors': 'strict', 'decode_responses': False, 'retry_on_error': [], 'retry': None, 'health_check_interval': 0, 'client_name': None, 'redis_connect_func': None, 'host': 'localhost', 'port': 6379, 'socket_connect_timeout': None, 'socket_keepalive': None, 'socket_keepalive_options': None}


This PR allows Pottery to recognize that two Redis clients are connected to the same database even if their socket timeout our retry policies are different.

Bug Fix: Make `RedisSet.contains_many()` work for non-JSONifyable objects
Links

Update psutil from 5.8.0 to 5.9.0.

Changelog

5.9.0

=====

2021-12-29

**Enhancements**

- 1851_, [Linux]: `cpu_freq()`_ is slow on systems with many CPUs. Read current
frequency values for all CPUs from ``/proc/cpuinfo`` instead of opening many
files in ``/sys`` fs.  (patch by marxin)
- 1992_: `NoSuchProcess`_ message now specifies if the PID has been reused.
- 1992_: error classes (`NoSuchProcess`_, `AccessDenied`_, etc.) now have a better
formatted and separated ``__repr__`` and ``__str__`` implementations.
- 1996_, [BSD]: add support for MidnightBSD.  (patch by Saeed Rasooli)
- 1999_, [Linux]: `disk_partitions()`_: convert ``/dev/root`` device (an alias
used on some Linux distros) to real root device path.
- 2005_: ``PSUTIL_DEBUG`` mode now prints file name and line number of the debug
messages coming from C extension modules.
- 2042_: rewrite HISTORY.rst to use hyperlinks pointing to psutil API doc.

**Bug fixes**

- 1456_, [macOS], **[critical]**: `cpu_freq()`_ ``min`` and ``max`` are set to
0 if can't be determined (instead of crashing).
- 1512_, [macOS]: sometimes `Process.connections()`_ will crash with
``EOPNOTSUPP`` for one connection; this is now ignored.
- 1598_, [Windows]: `disk_partitions()`_ only returns mountpoints on drives
where it first finds one.
- 1874_, [SunOS]: swap output error due to incorrect range.
- 1892_, [macOS]: `cpu_freq()`_ broken on Apple M1.
- 1901_, [macOS]: different functions, especially `Process.open_files()`_ and
`Process.connections()`_, could randomly raise `AccessDenied`_ because the
internal buffer of ``proc_pidinfo(PROC_PIDLISTFDS)`` syscall was not big enough.
We now dynamically increase the buffer size until it's big enough instead of
giving up and raising `AccessDenied`_, which was a fallback to avoid crashing.
- 1904_, [Windows]: ``OpenProcess`` fails with ``ERROR_SUCCESS`` due to
``GetLastError()`` called after ``sprintf()``.  (patch by alxchk)
- 1913_, [Linux]: `wait_procs()`_ should catch ``subprocess.TimeoutExpired``
exception.
- 1919_, [Linux]: `sensors_battery()`_ can raise ``TypeError`` on PureOS.
- 1921_, [Windows]: `swap_memory()`_ shows committed memory instead of swap.
- 1940_, [Linux]: psutil does not handle ``ENAMETOOLONG`` when accessing process
file descriptors in procfs.  (patch by Nikita Radchenko)
- 1948_, **[critical]**: ``memoize_when_activated`` decorator is not thread-safe.
(patch by Xuehai Pan)
- 1953_, [Windows], **[critical]**: `disk_partitions()`_ crashes due to
insufficient buffer len. (patch by MaWe2019)
- 1965_, [Windows], **[critical]**: fix "Fatal Python error: deallocating None"
when calling `users()`_ multiple times.
- 1980_, [Windows]: 32bit / WoW64 processes fails to read `Process.name()`_ longer
than 128 characters resulting in `AccessDenied`_. This is now fixed.  (patch
by PetrPospisil)
- 1991_, **[critical]**: `process_iter()`_ is not thread safe and can raise
``TypeError`` if invoked from multiple threads.
- 1956_, [macOS]: `Process.cpu_times()`_ reports incorrect timings on M1 machines.
(patch by Olivier Dormond)
- 2023_, [Linux]: `cpu_freq()`_ return order is wrong on systems with more than
9 CPUs.
Links

Update requests[socks] from 2.26.0 to 2.27.0.

Changelog

2.27.0

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

**Improvements**

- Officially added support for Python 3.10. (5928)

- Added a `requests.exceptions.JSONDecodeError` to unify JSON exceptions between
Python 2 and 3. This gets raised in the `response.json()` method, and is
backwards compatible as it inherits from previously thrown exceptions.
Can be caught from `requests.exceptions.RequestException` as well. (5856)

- Improved error text for misnamed `InvalidSchema` and `MissingSchema`
exceptions. This is a temporary fix until exceptions can be renamed
(Schema->Scheme). (6017)

- Improved proxy parsing for proxy URLs missing a scheme. This will address
recent changes to `urlparse` in Python 3.9+. (5917)

**Bugfixes**

- Fixed defect in `extract_zipped_paths` which could result in an infinite loop
for some paths. (5851)

- Fixed handling for `AttributeError` when calculating length of files obtained
by `Tarfile.extractfile()`. (5239)

- Fixed urllib3 exception leak, wrapping `urllib3.exceptions.InvalidHeader` with
`requests.exceptions.InvalidHeader`. (5914)

- Fixed bug where two Host headers were sent for chunked requests. (5391)

- Fixed regression in Requests 2.26.0 where `Proxy-Authorization` was
incorrectly stripped from all requests sent with `Session.send`. (5924)

- Fixed performance regression in 2.26.0 for hosts with a large number of
proxies available in the environment. (5924)

- Fixed idna exception leak, wrapping `UnicodeError` with
`requests.exceptions.InvalidURL` for URLs with a leading dot (.) in the
domain. (5414)

**Deprecations**

- Requests support for Python 2.7 and 3.6 will be ending in 2022. While we
don't have exact dates, Requests 2.27.x is likely to be the last release
series providing support.
Links

@JarryShaw JarryShaw merged commit 704dd8b into master Jan 3, 2022
@JarryShaw JarryShaw deleted the pyup-scheduled-update-2022-01-03 branch January 3, 2022 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants