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

Scheduled weekly dependency update for week 46 #152

Closed
wants to merge 16 commits into from

Conversation

pyup-bot
Copy link
Contributor

Update attrs from 19.1.0 to 20.3.0.

Changelog

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/1e3844d0c99e479e716169034b5fa963file-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/1e3844d0c99e479e716169034b5fa963file-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.htmlprovisional-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>`_


----

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 cocos2d from 0.6.5 to 0.6.9.

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

Links

Update freezegun from 0.3.11 to 1.0.0.

Changelog

1.0.0

------

* Dropped Py2 support
* Added as_kwarg argument in order to have the frozen time object passed with the name provided in as_kwarg argument

0.3.15

------

* Fix locale timestamp bug. CC 328

0.3.14

------

* Fix calendar.timegm behavior

0.3.13

------

* Fix for Py3.8
* Reset time.time_ns on stop

0.3.12

------

* Refactor classes to functions
* Ignore Selenium
* Move to pytest
* Conditionally patch time.clock
* Patch time.time_ns added in Python 3.7
Links

Update future from 0.17.1 to 0.18.2.

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

Links

Update numpy from 1.16.2 to 1.19.4.

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

Links

Update pluggy from 0.9.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.

0.11.0

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

Bug Fixes
---------

- `205 <https://github.com/pytest-dev/pluggy/issues/205>`_: Revert changes made in 0.10.0 release breaking ``.egg`` installs.

0.10.0

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

Features
--------

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

Update psutil from 5.5.1 to 5.7.3.

Changelog

5.7.3

=====

2020-10-23

**Enhancements**

- 809_: [FreeBSD] add support for `Process.rlimit()`.
- 893_: [BSD] add support for `Process.environ()` (patch by Armin Gruner)
- 1830_: [UNIX] `net_if_stats()`'s `isup` also checks whether the NIC is
running (meaning Wi-Fi or ethernet cable is connected).  (patch by Chris Burger)
- 1837_: [Linux] improved battery detection and charge "secsleft" calculation
(patch by aristocratos)

**Bug fixes**

- 1620_: [Linux] physical cpu_count() result is incorrect on systems with more
than one CPU socket.  (patch by Vincent A. Arcila)
- 1738_: [macOS] Process.exe() may raise FileNotFoundError if process is still
alive but the exe file which launched it got deleted.
- 1791_: [macOS] fix missing include for getpagesize().
- 1823_: [Windows] Process.open_files() may cause a segfault due to a NULL
pointer.
- 1838_: [Linux] sensors_battery(): if `percent` can be determined but not
the remaining values, still return a result instead of None.
(patch by aristocratos)

5.7.2

=====

2020-07-15

**Bug fixes**

- wheels for 2.7 were inadvertently deleted.

5.7.1

=====

2020-07-15

**Enhancements**

- 1729_: parallel tests on UNIX (make test-parallel). They're twice as fast!
- 1741_: "make build/install" is now run in parallel and it's about 15% faster
on UNIX.
- 1747_: `Process.wait()` on POSIX returns an enum, showing the negative signal
which was used to terminate the process::
 >>> import psutil
 >>> p = psutil.Process(9891)
 >>> p.terminate()
 >>> p.wait()
 <Negsignal.SIGTERM: -15>
- 1747_: `Process.wait()` return value is cached so that the exit code can be
retrieved on then next call.
- 1747_: Process provides more info about the process on str() and repr()
(status and exit code)::
 >>> proc
 psutil.Process(pid=12739, name='python3', status='terminated',
                exitcode=<Negsigs.SIGTERM: -15>, started='15:08:20')
- 1757_: memory leak tests are now stable.
- 1768_: [Windows] added support for Windows Nano Server. (contributed by
Julien Lebot)

**Bug fixes**

- 1726_: [Linux] cpu_freq() parsing should use spaces instead of tabs on ia64.
(patch by Michał Górny)
- 1760_: [Linux] Process.rlimit() does not handle long long type properly.
- 1766_: [macOS] NoSuchProcess may be raised instead of ZombieProcess.
- 1781_: fix signature of callback function for getloadavg().  (patch by
Ammar Askar)

5.7.0

=====

2020-02-18

**Enhancements**

- 1637_: [SunOS] add partial support for old SunOS 5.10 Update 0 to 3.
- 1648_: [Linux] sensors_temperatures() looks into an additional /sys/device/
directory for additional data.  (patch by Javad Karabi)
- 1652_: [Windows] dropped support for Windows XP and Windows Server 2003.
Minimum supported Windows version now is Windows Vista.
- 1671_: [FreeBSD] add CI testing/service for FreeBSD (Cirrus CI).
- 1677_: [Windows] process exe() will succeed for all process PIDs (instead of
raising AccessDenied).
- 1679_: [Windows] net_connections() and Process.connections() are 10% faster.
- 1682_: [PyPy] added CI / test integration for PyPy via Travis.
- 1686_: [Windows] added support for PyPy on Windows.
- 1693_: [Windows] boot_time(), Process.create_time() and users()'s login time
now have 1 micro second precision (before the precision was of 1 second).

**Bug fixes**

- 1538_: [NetBSD] process cwd() may return ENOENT instead of NoSuchProcess.
- 1627_: [Linux] Process.memory_maps() can raise KeyError.
- 1642_: [SunOS] querying basic info for PID 0 results in FileNotFoundError.
- 1646_: [FreeBSD] many Process methods may cause a segfault on FreeBSD 12.0
due to a backward incompatible change in a C type introduced in 12.0.
- 1656_: [Windows] Process.memory_full_info() raises AccessDenied even for the
current user and os.getpid().
- 1660_: [Windows] Process.open_files() complete rewrite + check of errors.
- 1662_: [Windows] process exe() may raise WinError 0.
- 1665_: [Linux] disk_io_counters() does not take into account extra fields
added to recent kernels.  (patch by Mike Hommey)
- 1672_: use the right C type when dealing with PIDs (int or long). Thus far
(long) was almost always assumed, which is wrong on most platforms.
- 1673_: [OpenBSD] Process connections(), num_fds() and threads() returned
improper exception if process is gone.
- 1674_: [SunOS] disk_partitions() may raise OSError.
- 1684_: [Linux] disk_io_counters() may raise ValueError on systems not
having /proc/diskstats.
- 1695_: [Linux] could not compile on kernels <= 2.6.13 due to
PSUTIL_HAVE_IOPRIO not being defined.  (patch by Anselm Kruis)

5.6.7

=====

2019-11-26

**Bug fixes**

- 1630_: [Windows] can't compile source distribution due to C syntax error.

5.6.6

=====

2019-11-25

**Bug fixes**

- 1179_: [Linux] Process cmdline() now takes into account misbehaving processes
renaming the command line and using inappropriate chars to separate args.
- 1616_: use of Py_DECREF instead of Py_CLEAR will result in double free and
segfault
(`CVE-2019-18874 <https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-18874>`__).
(patch by Riccardo Schirone)
- 1619_: [OpenBSD] compilation fails due to C syntax error.  (patch by Nathan
Houghton)

5.6.5

=====

2019-11-06

**Bug fixes**

- 1615_: remove pyproject.toml as it was causing installation issues.

5.6.4

=====

2019-11-04

**Enhancements**

- 1527_: [Linux] added Process.cpu_times().iowait counter, which is the time
spent waiting for blocking I/O to complete.
- 1565_: add PEP 517/8 build backend and requirements specification for better
pip integration.  (patch by Bernát Gábor)

**Bug fixes**

- 875_: [Windows] Process' cmdline(), environ() or cwd() may occasionally fail
with ERROR_PARTIAL_COPY which now gets translated to AccessDenied.
- 1126_: [Linux] cpu_affinity() segfaults on CentOS 5 / manylinux.
cpu_affinity() support for CentOS 5 was removed.
- 1528_: [AIX] compilation error on AIX 7.2 due to 32 vs 64 bit differences.
(patch by Arnon Yaari)
- 1535_: 'type' and 'family' fields returned by net_connections() are not
always turned into enums.
- 1536_: [NetBSD] process cmdline() erroneously raise ZombieProcess error if
cmdline has non encodable chars.
- 1546_: usage percent may be rounded to 0 on Python 2.
- 1552_: [Windows] getloadavg() math for calculating 5 and 15 mins values is
incorrect.
- 1568_: [Linux] use CC compiler env var if defined.
- 1570_: [Windows] `NtWow64*` syscalls fail to raise the proper error code
- 1585_: [OSX] calling close() (in C) on possible negative integers.  (patch
by Athos Ribeiro)
- 1606_: [SunOS] compilation fails on SunOS 5.10.  (patch by vser1)

5.6.3

=====

2019-06-11

**Enhancements**

- 1494_: [AIX] added support for Process.environ().  (patch by Arnon Yaari)

**Bug fixes**

- 1276_: [AIX] can't get whole cmdline().  (patch by Arnon Yaari)
- 1501_: [Windows] Process cmdline() and exe() raise unhandled "WinError 1168
element not found" exceptions for "Registry" and "Memory Compression" psuedo
processes on Windows 10.
- 1526_: [NetBSD] process cmdline() could raise MemoryError.  (patch by
Kamil Rytarowski)

5.6.2

=====

2019-04-26

**Enhancements**

- 604_: [Windows, Windows] add new psutil.getloadavg(), returning system load
average calculation, including on Windows (emulated).  (patch by Ammar Askar)
- 1404_: [Linux] cpu_count(logical=False) uses a second method (read from
`/sys/devices/system/cpu/cpu[0-9]/topology/core_id`) in order to determine
the number of physical CPUs in case /proc/cpuinfo does not provide this info.
- 1458_: provide coloured test output. Also show failures on KeyboardInterrupt.
- 1464_: various docfixes (always point to python3 doc, fix links, etc.).
- 1476_: [Windows] it is now possible to set process high I/O priority
(ionice()).Also, I/O priority values are now exposed as 4 new constants:
IOPRIO_VERYLOW, IOPRIO_LOW, IOPRIO_NORMAL, IOPRIO_HIGH.
- 1478_: add make command to re-run tests failed on last run.

**Bug fixes**

- 1223_: [Windows] boot_time() may return value on Windows XP.
- 1456_: [Linux] cpu_freq() returns None instead of 0.0 when min/max not
available (patch by Alex Manuskin)
- 1462_: [Linux] (tests) make tests invariant to LANG setting (patch by
Benjamin Drung)
- 1463_: cpu_distribution.py script was broken.
- 1470_: [Linux] disk_partitions(): fix corner case when /etc/mtab doesn't
exist.  (patch by Cedric Lamoriniere)
- 1471_: [SunOS] Process name() and cmdline() can return SystemError.  (patch
by Daniel Beer)
- 1472_: [Linux] cpu_freq() does not return all CPUs on Rasbperry-pi 3.
- 1474_: fix formatting of psutil.tests() which mimicks 'ps aux' output.
- 1475_: [Windows] OSError.winerror attribute wasn't properly checked resuling
in WindowsError being raised instead of AccessDenied.
- 1477_: [Windows] wrong or absent error handling for private NTSTATUS Windows
APIs. Different process methods were affected by this.
- 1480_: [Windows] psutil.cpu_count(logical=False) could cause a crash due to
fixed read violation.  (patch by Samer Masterson)
- 1486_: [AIX, SunOS] AttributeError when interacting with Process methods
involved into oneshot() context.
- 1491_: [SunOS] net_if_addrs(): free() ifap struct on error.  (patch by
Agnewee)
- 1493_: [Linux] cpu_freq(): handle the case where
/sys/devices/system/cpu/cpufreq/ exists but is empty.

5.6.1

=====

2019-03-11

**Bug fixes**

- 1329_: [AIX] psutil doesn't compile on AIX 6.1.  (patch by Arnon Yaari)
- 1448_: [Windows] crash on import due to rtlIpv6AddressToStringA not available
on Wine.
- 1451_: [Windows] Process.memory_full_info() segfaults. NtQueryVirtualMemory
is now used instead of QueryWorkingSet to calculate USS memory.

5.6.0

=====

2019-03-05

**Enhancements**

- 1379_: [Windows] Process suspend() and resume() now use NtSuspendProcess
and NtResumeProcess instead of stopping/resuming all threads of a process.
This is faster and more reliable (aka this is what ProcessHacker does).
- 1420_: [Windows] in case of exception disk_usage() now also shows the path
name.
- 1422_: [Windows] Windows APIs requiring to be dynamically loaded from DLL
libraries are now loaded only once on startup (instead of on per function
call) significantly speeding up different functions and methods.
- 1426_: [Windows] PAGESIZE and number of processors is now calculated on
startup.
- 1428_: in case of error, the traceback message now shows the underlying C
function called which failed.
- 1433_: new Process.parents() method.  (idea by Ghislain Le Meur)
- 1437_: pids() are returned in sorted order.
- 1442_: python3 is now the default interpreter used by Makefile.

**Bug fixes**

- 1353_: process_iter() is now thread safe (it rarely raised TypeError).
- 1394_: [Windows] Process name() and exe() may erroneously return "Registry".
QueryFullProcessImageNameW is now used instead of GetProcessImageFileNameW
in order to prevent that.
- 1411_: [BSD] lack of Py_DECREF could cause segmentation fault on process
instantiation.
- 1419_: [Windows] Process.environ() raises NotImplementedError when querying
a 64-bit process in 32-bit-WoW mode. Now it raises AccessDenied.
- 1427_: [OSX] Process cmdline() and environ() may erroneously raise OSError
on failed malloc().
- 1429_: [Windows] SE DEBUG was not properly set for current process. It is
now, and it should result in less AccessDenied exceptions for low-pid
processes.
- 1432_: [Windows] Process.memory_info_ex()'s USS memory is miscalculated
because we're not using the actual system PAGESIZE.
- 1439_: [NetBSD] Process.connections() may return incomplete results if using
oneshot().
- 1447_: original exception wasn't turned into NSP/AD exceptions when using
Process.oneshot() ctx manager.

**Incompatible API changes**

- 1291_: [OSX] Process.memory_maps() was removed because inherently broken
(segfault) for years.
Links

Update py from 1.8.0 to 1.9.0.

Changelog

1.9.0

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

- Add type annotation stubs for the following modules:

* ``py.error``
* ``py.iniconfig``
* ``py.path`` (not including SVN paths)
* ``py.io``
* ``py.xml``

There are no plans to type other modules at this time.

The type annotations are provided in external .pyi files, not inline in the
code, and may therefore contain small errors or omissions. If you use ``py``
in conjunction with a type checker, and encounter any type errors you believe
should be accepted, please report it in an issue.

1.8.2

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

- On Windows, ``py.path.local``s which differ only in case now have the same
Python hash value. Previously, such paths were considered equal but had
different hashes, which is not allowed and breaks the assumptions made by
dicts, sets and other users of hashes.

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 pyglet from 1.3.2 to 1.5.10.

Changelog

1.5.9

Bugfixes
--------
- Explicitly cast media.synthesis data to bytes to prevent issues on some audio drivers.
- Refactor WIC module to work with new com module. (298)
- Prevent crash when setting `shapes.Circle.visable`. (294)
- Remove deprecated `tostring` calls in PIL/PNG decoders to prevent crash on Python 3.9. (295, 302)

Improvements
------------
- Add new Xaudio2 driver. (288)
- Refactor pyglet's lazy module loading to better support code inspection.
- Added new `TextEntry` widget.

1.5.8

Improvements
------------
- Added new experimental `gui` module. Currently this only contains basic widgets.
- Added new `Group.visible` property, to toggle rendering of entire Groups when used in a Batch.
- Added `Sprite.paused` and `Sprite.frame_index` helper properties for controlling Animations.
- Reorganized the examples folder.
- Added new CenteredCamera example.
- Backport pyglet.math from 2.0, for more exposure and testing.
- Consolidate Codec logic into base class to reuse among various modules.

1.5.7

Bugfixes
--------
- Fix crash when no audio device is available.
- Prevent `__del__` spam in DirectSound buffers and Wave decoder.
- Explicitly cast warnings.warn message to a str to prevent numba error.

1.5.6

Bugfixes
--------
- Fix infinite recursion error on OSX. (5)
- The on_mouse_scroll event no longer clamps to int, preventing lost motion on trackpads.
- Prevent traceback when DirectSound buffers are garbage collected on exit.
- Fix StaticSource playback with WMF decoder (streaming=False).
- Fix colorspace for WMF video decoding.
- Prevent crash on garbage collection for FFmpeg decoder.

Improvements
------------
- New image decoder leveraging Windows Imaging Component (WIC).
- TextureAtlas/Bins now have a `border` argument for leaving n-pixels of blank space around
images when adding. By default the `resource` module leaves a 1-pixel space around images.
- Many small documentation fixes and corrections.

1.5.5

Bugfixes
--------
- GStreamer decoder clamped to 16bit sample width, since the default OpenAL backend on Linux does
not support anything higher.

Improvements
------------
- shapes module: added `Circle.rotation` property and blending to standalone shape `draw` methods.
- shapes module: added missing `delete` and `__del__` methods.
- The ImageMouseCursor has a new `accelerated` parameter to allow custom mouse points to be drawn
natively on Windows and Linux.

1.5.4

Bugfixes
--------
- Avoid WMFDecoder crash when mixing pyglet with other tookits. (174)
- Prevent EventDispatcher subclasses from hiding AttributeError exceptions.

Improvements
------------
- Added `pyglet.shapes` module for creating simple 2D shapes.

1.5.3

Bugfixes
--------
- Fix memory leak caused by not freeing stale buffers and textures.

1.5.2

Bugfixes
--------
- Fix WMF decoder for pre-Windows 8 systems.
- Fix WMF decoder loading from file-like objects for Windows Vista.
- Fix WMF decoder crashing when attempting to seek past file duration.

Changes
-------
- Allow GStreamer and FFmpeg decoder to load from file-like objects.

1.5.1

Improvements
------------
- New "file_drops" Window argument to allow drag and drop of files. This is complimented
by a new `Window.on_file_drop` event, which returns the mouse position and file path.

Bugfixes
--------
- Fix issue with changing Label positions by fractional values.
- Avoid performance issue due to unnecessary context switching with single Window programs.
- Fix crash on Player.next_source when playing a video with no audio track.
- Fix crash when disconnecting a Joystick on Windows.
- Prevent media Players from seeking to negative timestamps.
- Fix OpenAL audio driver not dispatching events.

Changes
--------
- text.TextLayouts are no longer bound to int positioning.
- Raise exception if attempting to import from legacy Python.
- Add GStreamer decoder for compressed audio on Linux.
- Add Windows Media Foundation decoder for compressed audio on Windows.

1.5.0

Bugfix and Maintenance release

Bugfixes
--------
- Removed global dubug function access in __del__ methods to prevent smooth shutdown.
- Fix regression not allow SourceGroups to be queued on Player objects. (140)

Changes
-------
- Support for Python 2 has been dropped. Python 3.5 is now the minimum supported version.

1.4.10

Bugfixes
--------
- Explicitly set Window size in game example. (116)
- Prevent crash when checking if FFMpeg is available. (121)

1.4.9

Bugfix and small improvement release

Bugfixes
--------
- Fix TextLayoutGroup consolidation when using custom Groups for Labels.
- FFmpeg: Cast 'date' to string instead of int in file_info. (109)
- Fix ctypes error causing by incorrectly specifying a Union as an argtype. (112)

Improvements
------------
- Added a simple 2D Camera example to examples/camera.py in the repository.
- OSX: OpenGL context creation is more lenient with requested versions.

1.4.8

Bugfixes
--------
- FFmpeg: fix an occasional crash during seek operation.
- Revert Event Dispatcher changes from v1.4.7 due to possible bug.
- Linux: Warn on failure to set vsync, instead of crashing.

1.4.7

Bugfixes
--------
- Allow creation of non-power-of-two compressed Textures. (78)
- Fix EventDispatchers surpressing `AttributeError`s. (87)
- Fix external lib loading on Windows under Python 3.8. (90)

Improvements
------------
- Windows: Add support for `Desktop Window Manager` composition for smoother rendering.
- TextureAtlases allow a single pixel border to avoid rendering artifacts.
- Add support for `conda`-installed FFmpeg on macOS (92)

1.4.6

Bugfixes
--------
- Fix PNG encoder saving upside-down images due to incorrect pitch. (83)
- pyglet.info shows more platform specific information.

1.4.5

Improvements
------------
- Documentation has been rebased on the standard RTD theme.
- Other documentation clarifications and improvements.
- New `MouseStateHandler` convenience class.

Bugfixes
--------
- Fix Allocator creating orphaned regions.
- Allow npot compressed texture loading.
- Fix MachOLibraryLoader failing on lib names containing extra "."s.

1.4.4

Fix incorrect glXSwapIntervalEXT arguments for Xlib contexts.

1.4.3

Bugfixes
--------
- Fix crash due to inconsistent API when changing Label or HTMLLabel color. (45)
- Add support for GLX_EXT_swap_control on Linux platforms.

1.4.2

Improvements
------------
- Removed broken projects from /contrib
- Update setup.py with project_urls and long_description.
- Added Window.get_pixel_ratio function for calculating scaling on HiDPI displays.
- Start some code quality improvements, such as whitespace removal, star imports, etc.

Bugfixes
--------
- Fix invalid argtype in image GDIplus decoder.
- Change sys.is_epydoc to sys.is_pyglet_doc_run to prevent crashing with Anaconda, etc. (9)
- Prevent gl_info.get_version from crashing with blank version string. (36)
Links

Update pytest from 4.3.0 to 6.1.2.

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

Links

Update python-dateutil from 2.8.0 to 2.8.1.

Changelog

2.8.1

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

Data updates
------------

- Updated tzdata version to 2019c.


Bugfixes
--------

- Fixed a race condition in the ``tzoffset`` and ``tzstr`` "strong" caches on
Python 2.7. Reported by kainjow (gh issue 901).
- Parsing errors will now raise ``ParserError``, a subclass of ``ValueError``,
which has a nicer string representation. Patch by gfyoung (gh pr 881).
- ``parser.parse`` will now raise ``TypeError`` when ``tzinfos`` is passed a
type that cannot be interpreted as a time zone. Prior to this change, it
would raise an ``UnboundLocalError`` instead.  Patch by jbrockmendel (gh pr
891).
- Changed error message raised when when passing a ``bytes`` object as the time
zone name to gettz in Python 3.  Reported and fixed by labrys () (gh issue
927, gh pr 935).
- Changed compatibility logic to support a potential Python 4.0 release. Patch
by Hugo van Kemenade (gh pr 950).
- Updated many modules to use ``tz.UTC`` in favor of ``tz.tzutc()`` internally,
to avoid an unnecessary function call. (gh pr 910).
- Fixed issue where ``dateutil.tz`` was using a backported version of
``contextlib.nullcontext`` even in Python 3.7 due to a malformed import
statement. (gh pr 963).


Tests
-----

- Switched from using assertWarns to using pytest.warns in the test suite. (gh
pr 969).
- Fix typo in setup.cfg causing PendingDeprecationWarning to not be explicitly
specified as an error in the warnings filter. (gh pr 966)
- Fixed issue where ``test_tzlocal_offset_equal`` would fail in certain
environments (such as FreeBSD) due to an invalid assumption about what time
zone names are provided. Reported and fixed by Kubilay Kocak (gh issue 918,
pr 928).
- Fixed a minor bug in ``test_isoparser`` related to ``bytes``/``str``
handling. Fixed by fhuang5 (gh issue 776, gh pr 879).
- Explicitly listed all markers used in the pytest configuration. (gh pr 915)
- Extensive improvements to the parser test suite, including the adoption of
``pytest``-style tests and the addition of parametrization of several test
cases. Patches by jbrockmendel (gh prs 735, 890, 892, 894).
- Added tests for tzinfos input types. Patch by jbrockmendel (gh pr 891).
- Fixed failure of test suite when changing the TZ variable is forbidden.
Patch by shadchin (gh pr 893).
- Pinned all test dependencies on Python 3.3. (gh prs 934, 962)


Documentation changes
---------------------

- Fixed many misspellings, typos and styling errors in the comments and
documentation. Patch by Hugo van Kemenade (gh pr 952).


Misc
----

- Added Python 3.8 to the trove classifiers. (gh pr 970)
- Moved as many keys from ``setup.py`` to ``setup.cfg`` as possible.  Fixed by
FakeNameSE, aquinlan82, jachen20, and gurgenz221 (gh issue 871, gh pr
880).
- Reorganized ``parser`` methods by functionality. Patch by jbrockmendel (gh
pr 882).
- Switched ``release.py`` over to using ``pep517.build`` for creating releases,
rather than direct invocations of ``setup.py``. Fixed by smeng10 (gh issue
869, gh pr 875).
- Added a "build" environment into the tox configuration, to handle dependency
management when making releases. Fixed by smeng10 (gh issue 870,r
gh pr 876).
- GH 916, GH 971
Links

Update PyYAML from 3.13 to 5.3.1.

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

Links

Update redis from 3.2.0 to 3.5.3.

Changelog

3.5.2

* Tune the locking in ConnectionPool.get_connection so that the lock is
   not held while waiting for the socket to establish and validate the
   TCP connection.

3.5.1

* Fix for HSET argument validation to allow any non-None key. Thanks
   AleksMat, 1337, 1341

3.5.0

* Removed exception trapping from __del__ methods. redis-py objects that
   hold various resources implement __del__ cleanup methods to release
   those resources when the object goes out of scope. This provides a
   fallback for when these objects aren't explicitly closed by user code.
   Prior to this change any errors encountered in closing these resources
   would be hidden from the user. Thanks jdufresne. 1281
 * Expanded support for connection strings specifying a username connecting
   to pre-v6 servers. 1274
 * Optimized Lock's blocking_timeout and sleep. If the lock cannot be
   acquired and the sleep value would cause the loop to sleep beyond
   blocking_timeout, fail immediately. Thanks clslgrnc. 1263
 * Added support for passing Python memoryviews to Redis command args that
   expect strings or bytes. The memoryview instance is sent directly to
   the socket such that there are zero copies made of the underlying data
   during command packing. Thanks Cody-G. 1265, 1285
 * HSET command now can accept multiple pairs. HMSET has been marked as
   deprecated now. Thanks to laixintao 1271
 * Don't manually DISCARD when encountering an ExecAbortError.
   Thanks nickgaya, 1300/1301
 * Reset the watched state of pipelines after calling exec. This saves
   a roundtrip to the server by not having to call UNWATCH within
   Pipeline.reset(). Thanks nickgaya, 1299/1302
 * Added the KEEPTTL option for the SET command. Thanks
   laixintao 1304/1280
 * Added the MEMORY STATS command. 1268
 * Lock.extend() now has a new option, `replace_ttl`. When False (the
   default), Lock.extend() adds the `additional_time` to the lock's existing
   TTL. When replace_ttl=True, the lock's existing TTL is replaced with
   the value of `additional_time`.
 * Add testing and support for PyPy.

3.4.1

* Move the username argument in the Redis and Connection classes to the
   end of the argument list. This helps those poor souls that specify all
   their connection options as non-keyword arguments. 1276
 * Prior to ACL support, redis-py ignored the username component of
   Connection URLs. With ACL support, usernames are no longer ignored and
   are used to authenticate against an ACL rule. Some cloud vendors with
   managed Redis instances (like Heroku) provide connection URLs with a
   username component pre-ACL that is not intended to be used. Sending that
   username to Redis servers < 6.0.0 results in an error. Attempt to detect
   this condition and retry the AUTH command with only the password such
   that authentication continues to work for these users. 1274
 * Removed the __eq__ hooks to Redis and ConnectionPool that were added
   in 3.4.0. This ended up being a bad idea as two separate connection
   pools be considered equal yet manage a completely separate set of
   connections.

3.4.0

* Allow empty pipelines to be executed if there are WATCHed keys.
   This is a convenient way to test if any of the watched keys changed
   without actually running any other commands. Thanks brianmaissy.
   1233, 1234
 * Removed support for end of life Python 3.4.
 * Added support for all ACL commands in Redis 6. Thanks IAmATeaPot418
   for helping.
 * Pipeline instances now always evaluate to True. Prior to this change,
   pipeline instances relied on __len__ for boolean evaluation which
   meant that pipelines with no commands on the stack would be considered
   False. 994
 * Client instances and Connection pools now support a 'client_name'
   argument. If supplied, all connections created will call CLIENT SETNAME
   as soon as the connection is opened. Thanks to Habbie for supplying
   the basis of this change. 802
 * Added the 'ssl_check_hostname' argument to specify whether SSL
   connections should require the server hostname to match the hostname
   specified in the SSL cert. By default 'ssl_check_hostname' is False
   for backwards compatibility. 1196
 * Slightly optimized command packing. Thanks Deneby67. 1255
 * Added support for the TYPE argument to SCAN. Thanks netocp. 1220
 * Better thread and fork safety in ConnectionPool and
   BlockingConnectionPool. Added better locking to synchronize critical
   sections rather than relying on CPython-specific implementation details
   relating to atomic operations. Adjusted how the pools identify and
   deal with a fork. Added a ChildDeadlockedError exception that is
   raised by child processes in the very unlikely chance that a deadlock
   is encountered. Thanks gmbnomis, mdellweg, yht804421715. 1270,
   1138, 1178, 906, 1262
 * Added __eq__ hooks to the Redis and ConnectionPool classes.
   Thanks brainix. 1240

3.3.11

* Further fix for the SSLError -> TimeoutError mapping to work
   on obscure releases of Python 2.7.

3.3.10

* Fixed a potential error handling bug for the SSLError -> TimeoutError
   mapping introduced in 3.3.9. Thanks zbristow. 1224

3.3.9

* Mapped Python 2.7 SSLError to TimeoutError where appropriate. Timeouts
   should now consistently raise TimeoutErrors on Python 2.7 for both
   unsecured and secured connections. Thanks zbristow. 1222

3.3.8

* Fixed MONITOR parsing to properly parse IPv6 client addresses, unix
   socket connections and commands issued from Lua. Thanks kukey. 1201

3.3.7

* Fixed a regression introduced in 3.3.0 where socket.error exceptions
   (or subclasses) could potentially be raised instead of
   redis.exceptions.ConnectionError. 1202

3.3.6

* Fixed a regression in 3.3.5 that caused PubSub.get_message() to raise
   a socket.timeout exception when passing a timeout value. 1200

3.3.5

* Fix an issue where socket.timeout errors could be handled by the wrong
   exception handler in Python 2.7.

3.3.4

* More specifically identify nonblocking read errors for both SSL and
   non-SSL connections. 3.3.1, 3.3.2 and 3.3.3 on Python 2.7 could
   potentially mask a ConnectionError. 1197

3.3.3

* The SSL module in Python < 2.7.9 handles non-blocking sockets
   differently than 2.7.9+. This patch accommodates older versions. 1197

3.3.2

* Further fixed a regression introduced in 3.3.0 involving SSL and
   non-blocking sockets. 1197

3.3.1

* Fixed a regression introduced in 3.3.0 involving SSL and non-blocking
   sockets. 1197

3.3.0

* Resolve a race condition with the PubSubWorkerThread. 1150
 * Cleanup socket read error messages. Thanks Vic Yu. 1159
 * Cleanup the Connection's selector correctly. Thanks Bruce Merry. 1153
 * Added a Monitor object to make working with MONITOR output easy.
   Thanks Roey Prat 1033
 * Internal cleanup: Removed the legacy Token class which was necessary
   with older version of Python that are no longer supported. 1066
 * Response callbacks are now case insensitive. This allows users that
   call Redis.execute_command() directly to pass lower-case command
   names and still get reasonable responses. 1168
 * Added support for hiredis-py 1.0.0 encoding error support. This should
   make the PythonParser and the HiredisParser behave identically
   when encountering encoding errors. Thanks Brian Candler. 1161/1162
 * All authentication errors now properly raise AuthenticationError.
   AuthenticationError is now a subclass of ConnectionError, which will
   cause the connection to be disconnected and cleaned up appropriately.
   923
 * Add READONLY and READWRITE commands. Thanks theodesp. 1114
 * Remove selectors in favor of nonblocking sockets. Selectors had
   issues in some environments including eventlet and gevent. This should
   resolve those issues with no other side effects.
 * Fixed an issue with XCLAIM and previously claimed but not removed
   messages. Thanks thomdask. 1192/1191
 * Allow for single connection client instances. These instances
   are not thread safe but offer other benefits including a subtle
   performance increase.
 * Added extensive health checks that keep the connections lively.
   Passing the "health_check_interval=N" option to the Redis client class
   or to a ConnectionPool ensures that a round trip PING/PONG is successful
   before any command if the underlying connection has been idle for more
   than N seconds. ConnectionErrors and TimeoutErrors are automatically
   retried once for health checks.
 * Changed the PubSubWorkerThread to use a threading.Event object rather
   than a boolean to control the thread's life cycle. Thanks Timothy
   Rule. 1194/1195.
 * Fixed a bug in Pipeline error handling that would incorrectly retry
   ConnectionErrors.

3.2.1

* Fix SentinelConnectionPool to work in multiprocess/forked environments.
Links

Update six from 1.12.0 to 1.15.0.

Changelog

1.15.0

------

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

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 pytest-mock from 1.10.1 to 3.3.1.

Changelog

3.3.1

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

* Introduce ``MockFixture`` as an alias to ``MockerFixture``.

Before ``3.3.0``, the fixture class was named ``MockFixture``, but was renamed to ``MockerFixture`` to better
match the ``mocker`` fixture. While not officially part of the API, it was later discovered that this broke
the code of some users which already imported ``pytest_mock.MockFixture`` for type annotations, so we
decided to reintroduce the name as an alias.

Note however that this is just a stop gap measure, and new code should use ``MockerFixture`` for type annotations.

3.3.0

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

* ``pytest-mock`` now includes inline type annotations and exposes them to user programs. The ``mocker`` fixture returns ``pytest_mock.MockerFixture``, which can be used to annotate your tests:

.. code-block:: python

     from pytest_mock import MockerFixture

     def test_foo(mocker: MockerFixture) -> None:
         ...

The type annotations were developed against mypy version ``0.782``, the
minimum version supported at the moment. If you run into an error that you believe to be incorrect, please open an issue.

Many thanks to `staticdev`_ for providing the initial patch (`199`_).

.. _staticdev: https://github.com/staticdev
.. _199: https://github.com/pytest-dev/pytest-mock/pull/199

3.2.0

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

* `AsyncMock <https://docs.python.org/3/library/unittest.mock.htmlunittest.mock.AsyncMock>`__ is now exposed in ``mocker`` and supports provides assertion introspection similar to ``Mock`` objects.

Added by `tirkarthi`_ in `197`_.

.. _tirkarthi: https://github.com/tirkarthi
.. _197: https://github.com/pytest-dev/pytest-mock/pull/197

3.1.1

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

* Fixed performance regression caused by the ``ValueError`` raised
when ``mocker`` is used as context manager (`191`_).

.. _191: https://github.com/pytest-dev/pytest-mock/issues/191

3.1.0

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

* New mocker fixtures added that allow using mocking functionality in other scopes:

* ``class_mocker``
* ``module_mocker``
* ``package_mocker``
* ``session_mocker``

Added by `scorphus`_ in `182`_.

.. _scorphus: https://github.com/scorphus
.. _182: https://github.com/pytest-dev/pytest-mock/pull/182

3.0.0

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

* Python 2.7 and 3.4 are no longer supported. Users using ``pip 9`` or later will install
a compatible version automatically.

* ``mocker.spy`` now also works with ``async def`` functions (`179`_). Thanks `frankie567`_ for the PR!

.. _179: https://github.com/pytest-dev/pytest-mock/issues/179
.. _frankie567: https://github.com/frankie567

2.0.0

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

Breaking Changes
++++++++++++++++

* ``mocker.spy`` attributes for tracking returned values and raised exceptions of its spied functions
are now called ``spy_return`` and ``spy_exception``, instead of reusing the existing
``MagicMock`` attributes ``return_value`` and ``side_effect``.

Version ``1.13`` introduced a serious regression: after a spied function using ``mocker.spy``
raises an exception, further calls to the spy will not call the spied function,
always raising the first exception instead: assigning to ``side_effect`` causes
``unittest.mock`` to behave this way (`175`_).

* The deprecated ``mock`` alias to the ``mocker`` fixture has finally been removed.

.. _175: https://github.com/pytest-dev/pytest-mock/issues/175

1.13.0

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

* The object returned by ``mocker.spy`` now also tracks any side effect
of the spied method/function.

1.12.1

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

* Fix error if ``mocker.patch`` is used in code where the source file
is not available, for example stale ``.pyc`` files (`169`_).

.. _169: https://github.com/pytest-dev/pytest-mock/issues/169issuecomment-555729265

1.12.0

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

* Now all patch functions also raise a ``ValueError`` when used
as a context-manager. Thanks `AlexGascon`_ for the PR (`168`_).

.. _AlexGascon: https://github.com/AlexGascon
.. _168: https://github.com/pytest-dev/pytest-mock/pull/168

1.11.2

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

* The *pytest introspection follows* message is no longer shown
if there is no pytest introspection (`154`_).
Thanks `The-Compiler`_ for the report.

* ``mocker`` now raises a ``ValueError`` when used as a context-manager.
Thanks `binarymason`_ for the PR (`165`_).

.. _154: https://github.com/pytest-dev/pytest-mock/issues/154
.. _165: https://github.com/pytest-dev/pytest-mock/pull/165
.. _binarymason: https://github.com/binarymason

1.11.1

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

* Fix ``mocker.spy`` on Python 2 when used on non-function objects
which implement ``__call__`` (`157`_). Thanks `pbasista`_  for
the report.

.. _157: https://github.com/pytest-dev/pytest-mock/issues/157
.. _pbasista: https://github.com/pbasista

1.11.0

------

* The object returned by ``mocker.spy`` now also tracks the return value
of the spied method/function.

1.10.4

------

* Fix plugin when 'terminal' plugin is disabled

1.10.3

------

* Fix test suite in Python 3.8. Thanks `hroncok`_ for the report and `blueyed`_ for the PR (`140`_).

.. _140: https://github.com/pytest-dev/pytest-mock/pull/140
.. _hroncok: https://github.com/hroncok

1.10.2

------

* Fix bug at the end of the test session when a call to ``patch.stopall`` is done explicitly by
user code. Thanks `craiga`_ for the report (`137`_).

.. _137: https://github.com/pytest-dev/pytest-mock/issues/137
.. _craiga: https://github.com/craiga
Links

Update Pillow from 5.4.1 to 8.0.1.

Changelog

8.0.1

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

- Update FreeType used in binary wheels to 2.10.4 to fix CVE-2020-15999.
[radarhere]

- Moved string_dimension image to pillow-depends 4993
[radarhere]

8.0.0

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

- Drop support for EOL Python 3.5 4746, 4794
[hugovk, radarhere, nulano]

- Drop support for PyPy3 < 7.2.0 4964
[nulano]

- Remove ImageCms.CmsProfile attributes deprecated since 3.2.0 4768
[hugovk, radarhere]

- Remove long-deprecated Image.py functions 4798
[hugovk, nulano, radarhere]

- Add support for 16-bit precision JPEG quantization values 4918
[gofr]

- Added reading of IFD tag type 4979
[radarhere]

- Initialize offset memory for PyImagingPhotoPut 4806
[nqbit]

- Fix TiffDecode comparison warnings 4756
[nulano]

- Docs: Add dark mode 4968
[hugovk, nulano]

- Added macOS SDK install path to library and include directories 4974
[radarhere, fxcoudert]

- Imaging.h: prevent confusion with system 4923
[ax3l, ,radarhere]

- Avoid using pkg_resources in PIL.features.pilinfo 4975
[nulano]

- Add getlength and getbbox functions for TrueType fonts 4959
[nulano, radarhere, hugovk]

- Allow tuples with one item to give single color value in getink 4927
[radarhere, nulano]

- Add support for CBDT and COLR fonts 4955
[nulano, hugovk]

- Removed OSError in favo

@coveralls
Copy link

Coverage Status

Coverage remained the same at 80.787% when pulling df21e2f on pyup-scheduled-update-2020-11-16 into 843988d on master.

@pyup-bot
Copy link
Contributor Author

Closing this in favor of #153

@pyup-bot pyup-bot closed this Nov 23, 2020
@buxx buxx deleted the pyup-scheduled-update-2020-11-16 branch November 23, 2020 14:18
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

2 participants