profile
viewpoint

aio-libs/aiohttp 10282

Asynchronous HTTP client/server framework for asyncio and Python

agconti/cookiecutter-django-rest 1014

Build best practiced apis fast with Python3

aio-libs/aiobotocore 559

asyncio support for botocore library using aiohttp

ahawker/crython 192

Lightweight task scheduler using cron expressions

ahawker/ulid 187

Universally Unique Lexicographically Sortable Identifier (ULID) in Python 3

aio-libs/aiohttp-debugtoolbar 174

aiohttp_debugtoolbar is library for debugtoolbar support for aiohttp

aio-libs/aiohttp-security 172

auth and permissions for aiohttp

aio-libs/aiohttp-cors 165

CORS support for aiohttp

aio-libs/aiohttp-session 158

Web sessions for aiohttp.web

aio-libs/aiohttp-sse 117

Server-sent events support for aiohttp

PR opened munterfinger/zeitsprung

Pin codecov to latest version 2.1.9

This PR pins codecov to the latest release 2.1.9.

<details> <summary>Changelog</summary>

2.1.9

- [289](https://github.com/codecov/codecov-python/pull/289)Remove token restriction as it is changed server-side

2.1.8

- [285](https://github.com/codecov/codecov-python/pull/285)Add support for CODECOV_FLAGS
- [276](https://github.com/codecov/codecov-python/pull/276)Add ability to specify number of upload retries

2.1.7

- [279](https://github.com/codecov/codecov-python/pull/279) Fix pinned coverage version

2.1.6

- [275](https://github.com/codecov/codecov-python/pull/275) Fix GitHub Actions implementation

2.1.5

- [273](https://github.com/codecov/codecov-python/pull/273) Implement retries on Codecov API calls
- [265](https://github.com/codecov/codecov-python/pull/265) Add GitHub Actions CI detection
- [267](https://github.com/codecov/codecov-python/pull/267) Add CODECOV_NAME as default for name

2.1.4

- [260](https://github.com/codecov/codecov-python/pull/260) Enforce black formatting
- [169](https://github.com/codecov/codecov-python/pull/169) Fix command line quoting on Windows
- [216](https://github.com/codecov/codecov-python/pull/216) Fix GitLab CI project directory detection on Windows
- [264](https://github.com/codecov/codecov-python/pull/264) Fix GitLab CI post version 9
- [262](https://github.com/codecov/codecov-python/pull/262) Check text for NoneType on writes
- [266](https://github.com/codecov/codecov-python/pull/266) Include the cacert in the PUT call when uploading to S3
- [263](https://github.com/codecov/codecov-python/pull/263) Fixed gcov not being found in certain instances

2.1.3

- Fix find command not working on Windows
- Add support for gzipping reports
- Dynamic syncing of version

2.1.1

- Fix command when neither hg or git are not available

2.1.0

- Remove x-amz-acl header
- Reformat with Black

2.0.22

- Cleaning TOC generation

2.0.21

- fixed string issues

2.0.20

- fixed broken subprocess handling

2.0.19

- fixed broken subprocess handling

2.0.18

- fixed broken subprocess handling

2.0.17

- fixed reported command injection vulnerability.

2.0.16

- fixed reported command injection vulnerability.

2.0.15

- add `-X s3` to disable direct to S3 uploading

2.0.14

- fixed coverage combine

2.0.13

- fix encoding issues

2.0.12

- revert merge commit fix, back to old way

2.0.11

- fix merge commit when it&#39;s a pull request
- remove snapci, business closed
- skip vendor directories for gcov parsing
- run coverage combine not merge
- fix report encoding

2.0.10

- fix uploading when reports contain characters outside of latin-1
- remove reduced_redundancy header from

2.0.7

- Add `--name/-n` to cli
- Add support for Jenkins Blue
- Fix environment variable joining
- Add Greenhouse CI detection
- Fix GitLab detection
- Add default `VCS_*` environment
- Auto-merge py-coverage
- Remove Xcode processing support, please use bash uploader.
- Support yaml:token and yaml:slug

2.0.5

- Use `%20` for encoding spaces [appveyor] https://github.com/codecov/codecov-python/pull/66

2.0.4

- fix detecting merge commits on all CI, not just Travis

2.0.3

- add `-F` to flagging uploads [new feature]
- fixed some reports ascii chars
- added `--pr` flag for manually specifing pulls
- added `--tag` flag for manually git tags
- added env detection for Travis
- added buildkite detection
- added teamcity detection
- added more snapci detection
- detect `codecov.yml` file detection
- depreciating xcode support, use [bash uploader](https://github.com/codecov/codecov-bash)
- hide token from stdout

1.6.4

- fix gitlab project directory
- fallback on git branch/commit
- fix using gcov_exec

1.6.0

- depreciate `--no-fail` now a default
- add `--required` to fail the build if Codecov fails
- added `--cacerts` for enterprise customers
- added fix reports http://bit.ly/1O4eBpt

1.5.0

- fix retreiving mercurial commit
- add support for swift/xcode7 profdata
- now uploading direct-to-s3 to improve product performance
- not require branch, will default to `master` (the default branch)
- fix drone.io commit number, which is not a full 40 sha.

1.4.1

- added `--no-fail` to prevent failing builds when missing configuration or Codecov errors

1.4.0

- Ignore other known bad files/paths
- Added test suite to test against example repositories
- Using `coverage xml -i` to ignore No source for code errors
- Cleaned up command output with help and colors
- Added `gcov` processing, see `codecov --help` for more info.

1.3.1

- Ignore other known bad files/paths
- Fix issue with decoding files in py3+

1.3.0

- Refactor project to be a global uploader for more reports

1.2.3

- Remove `test-results.xml`, not a coverage file
- Add CircleCI container numbers

1.2.2

- bring back client-side pre-processing for jacoco (they can crush)

1.2.1

- accept any file ending in `coverge.xml`

1.2.0

- accept `nosetests.xml` and `test-results.xml` files
- no longer do client side pre-processing, upload raw
- capture SEMAPHORE_CURRENT_THREAD

1.1.13

- added --build arg for advanced usage

1.1.10

- fix package for 2.6 on windows
- fix showing `--help` when called in non-git backed repo
- fix AppVeyor public repos

1.1.8

- support GitLab CI Runner
- added rollbar to help bugs if presented
- added more filepath matching
- pep8 cleanup
- added Shippable ci

1.1.7

- support for D lang added, special thanks to ColdenCullen
- Wercker CI supported by Robpol86
- fixed Drone build number

1.1.6

- fix semaphore commit revision number
- preprocess reports from xml

1.1.5

- search for all `lcov|gcov` files
- depreciate `--min-coverage`, use GitHub Status Update feature
- pre-process xml =&gt; json

1.1.4

- added support for pyhton 2.6 by Robpol86
- added AppVeyor support by Robpol86

1.1.3

- added more ignore paths

1.1.2

- search for `lcov.info` files
- pause for `.1` before checking for min-coverage
- accept `--env` variables which are stored in front-end for build specs

1.1.1

- build python coverage xml only when no reports found to fix overriding reports
- now defaulting output to **plain text**. Use `--json` to return json results
- added `jacocoTestReport.xml` to search list
- changed `--min-coverage` waiting methods to, `5 tries  15s` each
- added `Sites/www/bower` and `node_modules` to ignored table of contents

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/codecov
  • Changelog: https://pyup.io/changelogs/codecov/
  • Repo: https://github.com/codecov/codecov-python </details>
+1 -1

0 comment

1 changed file

pr created time in 4 minutes

PR opened munterfinger/zeitsprung

Pin pytest-cov to latest version 2.10.1

This PR pins pytest-cov to the latest release 2.10.1.

<details> <summary>Changelog</summary>

2.10.1

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

* Support for ``pytest-xdist`` 2.0, which breaks compatibility with ``pytest-xdist`` before 1.22.3 (from 2017).
Contributed by Zac Hatfield-Dodds in `412 &lt;https://github.com/pytest-dev/pytest-cov/pull/412&gt;`_.
* Fixed the ``LocalPath has no attribute startswith`` failure that occurred when using the ``pytester`` plugin
in inline mode.

2.10.0

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

* Improved the ``--no-cov`` warning. Now it&#39;s only shown if ``--no-cov`` is present before ``--cov``.
* Removed legacy pytest support. Changed ``setup.py`` so that ``pytest&gt;=4.6`` is required.

2.9.0

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

* Fixed ``RemovedInPytest4Warning`` when using Pytest 3.10.
Contributed by Michael Manganiello in `354 &lt;https://github.com/pytest-dev/pytest-cov/pull/354&gt;`_.
* Made pytest startup faster when plugin not active by lazy-importing.
Contributed by Anders Hovmöller in `339 &lt;https://github.com/pytest-dev/pytest-cov/pull/339&gt;`_.
* Various CI improvements.
Contributed by Daniel Hahler in `363 &lt;https://github.com/pytest-dev/pytest-cov/pull/&gt;`_ and
`364 &lt;https://github.com/pytest-dev/pytest-cov/pull/364&gt;`_.
* Various Python support updates (drop EOL 3.4, test against 3.8 final).
Contributed by Hugo van Kemenade in
`336 &lt;https://github.com/pytest-dev/pytest-cov/pull/336&gt;`_ and
`367 &lt;https://github.com/pytest-dev/pytest-cov/pull/367&gt;`_.
* Changed ``--cov-append`` to always enable ``data_suffix`` (a coverage setting).
Contributed by Harm Geerts in
`387 &lt;https://github.com/pytest-dev/pytest-cov/pull/387&gt;`_.
* Changed ``--cov-append`` to handle loading previous data better
(fixes various path aliasing issues).
* Various other testing improvements, github issue templates, example updates.
* Fixed internal failures that are caused by tests that change the current working directory by
ensuring a consistent working directory when coverage is called.
See `306 &lt;https://github.com/pytest-dev/pytest-cov/issues/306&gt;`_ and
`coveragepy881 &lt;https://github.com/nedbat/coveragepy/issues/881&gt;`_

2.8.1

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

* Fixed `348 &lt;https://github.com/pytest-dev/pytest-cov/issues/348&gt;`_ -
regression when only certain reports (html or xml) are used then ``--cov-fail-under`` always fails.

2.8.0

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

* Fixed ``RecursionError`` that can occur when using
`cleanup_on_signal &lt;https://pytest-cov.readthedocs.io/en/latest/subprocess-support.htmlif-you-got-custom-signal-handling&gt;`__ or
`cleanup_on_sigterm &lt;https://pytest-cov.readthedocs.io/en/latest/subprocess-support.htmlif-you-got-custom-signal-handling&gt;`__.
See: `294 &lt;https://github.com/pytest-dev/pytest-cov/issues/294&gt;`_.
The 2.7.x releases of pytest-cov should be considered broken regarding aforementioned cleanup API.
* Added compatibility with future xdist release that deprecates some internals
(match pytest-xdist master/worker terminology).
Contributed by Thomas Grainger in `321 &lt;https://github.com/pytest-dev/pytest-cov/pull/321&gt;`_
* Fixed breakage that occurs when multiple reporting options are used.
Contributed by Thomas Grainger in `338 &lt;https://github.com/pytest-dev/pytest-cov/pull/338&gt;`_.
* Changed internals to use a stub instead of ``os.devnull``.
Contributed by Thomas Grainger in `332 &lt;https://github.com/pytest-dev/pytest-cov/pull/332&gt;`_.
* Added support for Coverage 5.0.
Contributed by Ned Batchelder in `319 &lt;https://github.com/pytest-dev/pytest-cov/pull/319&gt;`_.
* Added support for float values in ``--cov-fail-under``.
Contributed by Martín Gaitán in `311 &lt;https://github.com/pytest-dev/pytest-cov/pull/311&gt;`_.
* Various documentation fixes. Contributed by
Juanjo Bazán,
Andrew Murray and
Albert Tugushev in
`298 &lt;https://github.com/pytest-dev/pytest-cov/pull/298&gt;`_,
`299 &lt;https://github.com/pytest-dev/pytest-cov/pull/299&gt;`_ and
`307 &lt;https://github.com/pytest-dev/pytest-cov/pull/307&gt;`_.
* Various testing improvements. Contributed by
Ned Batchelder,
Daniel Hahler,
Ionel Cristian Mărieș and
Hugo van Kemenade in
`313 &lt;https://github.com/pytest-dev/pytest-cov/pull/313&gt;`_,
`314 &lt;https://github.com/pytest-dev/pytest-cov/pull/314&gt;`_,
`315 &lt;https://github.com/pytest-dev/pytest-cov/pull/315&gt;`_,
`316 &lt;https://github.com/pytest-dev/pytest-cov/pull/316&gt;`_,
`325 &lt;https://github.com/pytest-dev/pytest-cov/pull/325&gt;`_,
`326 &lt;https://github.com/pytest-dev/pytest-cov/pull/326&gt;`_,
`334 &lt;https://github.com/pytest-dev/pytest-cov/pull/334&gt;`_ and
`335 &lt;https://github.com/pytest-dev/pytest-cov/pull/335&gt;`_.
* Added the ``--cov-context`` CLI options that enables coverage contexts. Only works with coverage 5.0+.
Contributed by Ned Batchelder in `345 &lt;https://github.com/pytest-dev/pytest-cov/pull/345&gt;`_.

2.7.1

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

* Fixed source distribution manifest so that garbage ain&#39;t included in the tarball.

2.7.0

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

* Fixed ``AttributeError: &#39;NoneType&#39; object has no attribute &#39;configure_node&#39;`` error when ``--no-cov`` is used.
Contributed by Alexander Shadchin in `263 &lt;https://github.com/pytest-dev/pytest-cov/pull/263&gt;`_.
* Various testing and CI improvements. Contributed by Daniel Hahler in
`255 &lt;https://github.com/pytest-dev/pytest-cov/pull/255&gt;`_,
`266 &lt;https://github.com/pytest-dev/pytest-cov/pull/266&gt;`_,
`272 &lt;https://github.com/pytest-dev/pytest-cov/pull/272&gt;`_,
`271 &lt;https://github.com/pytest-dev/pytest-cov/pull/271&gt;`_ and
`269 &lt;https://github.com/pytest-dev/pytest-cov/pull/269&gt;`_.
* Improved documentation regarding subprocess and multiprocessing.
Contributed in `265 &lt;https://github.com/pytest-dev/pytest-cov/pull/265&gt;`_.
* Improved ``pytest_cov.embed.cleanup_on_sigterm`` to be reentrant (signal deliveries while signal handling is
running won&#39;t break stuff).
* Added ``pytest_cov.embed.cleanup_on_signal`` for customized cleanup.
* Improved cleanup code and fixed various issues with leftover data files. All contributed in
`265 &lt;https://github.com/pytest-dev/pytest-cov/pull/265&gt;`_ or
`262 &lt;https://github.com/pytest-dev/pytest-cov/pull/262&gt;`_.
* Improved examples. Now there are two examples for the common project layouts, complete with working coverage
configuration. The examples have CI testing. Contributed in
`267 &lt;https://github.com/pytest-dev/pytest-cov/pull/267&gt;`_.
* Improved help text for CLI options.

2.6.1

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

* Added support for Pytest 4.1. Contributed by Daniel Hahler and Семён Марьясин in
`253 &lt;https://github.com/pytest-dev/pytest-cov/pull/253&gt;`_ and
`230 &lt;https://github.com/pytest-dev/pytest-cov/pull/230&gt;`_.
* Various test and docs fixes. Contributed by Daniel Hahler in
`224 &lt;https://github.com/pytest-dev/pytest-cov/pull/224&gt;`_ and
`223 &lt;https://github.com/pytest-dev/pytest-cov/pull/223&gt;`_.
* Fixed the &quot;Module already imported&quot; issue (`211 &lt;https://github.com/pytest-dev/pytest-cov/issues/211&gt;`_).
Contributed by Daniel Hahler in `228 &lt;https://github.com/pytest-dev/pytest-cov/pull/228&gt;`_.

2.6.0

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

* Dropped support for Python 3 &lt; 3.4, Pytest &lt; 3.5 and Coverage &lt; 4.4.
* Fixed some documentation formatting. Contributed by Jean Jordaan and Julian.
* Added an example with ``addopts`` in documentation. Contributed by Samuel Giffard in
`195 &lt;https://github.com/pytest-dev/pytest-cov/pull/195&gt;`_.
* Fixed ``TypeError: &#39;NoneType&#39; object is not iterable`` in certain xdist configurations. Contributed by Jeremy Bowman in
`213 &lt;https://github.com/pytest-dev/pytest-cov/pull/213&gt;`_.
* Added a ``no_cover`` marker and fixture. Fixes
`78 &lt;https://github.com/pytest-dev/pytest-cov/issues/78&gt;`_.
* Fixed broken ``no_cover`` check when running doctests. Contributed by Terence Honles in
`200 &lt;https://github.com/pytest-dev/pytest-cov/pull/200&gt;`_.
* Fixed various issues with path normalization in reports (when combining coverage data from parallel mode). Fixes
`130 &lt;https://github.com/pytest-dev/pytest-cov/issues/161&gt;`_.
Contributed by Ryan Hiebert &amp; Ionel Cristian Mărieș in
`178 &lt;https://github.com/pytest-dev/pytest-cov/pull/178&gt;`_.
* Report generation failures don&#39;t raise exceptions anymore. A warning will be logged instead. Fixes
`161 &lt;https://github.com/pytest-dev/pytest-cov/issues/161&gt;`_.
* Fixed multiprocessing issue on Windows (empty env vars are not passed). Fixes
`165 &lt;https://github.com/pytest-dev/pytest-cov/issues/165&gt;`_.

2.5.1

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

* Fixed xdist breakage (regression in ``2.5.0``).
Fixes `157 &lt;https://github.com/pytest-dev/pytest-cov/issues/157&gt;`_.
* Allow setting custom ``data_file`` name in ``.coveragerc``.
Fixes `145 &lt;https://github.com/pytest-dev/pytest-cov/issues/145&gt;`_.
Contributed by Jannis Leidel &amp; Ionel Cristian Mărieș in
`156 &lt;https://github.com/pytest-dev/pytest-cov/pull/156&gt;`_.

2.5.0

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

* Always show a summary when ``--cov-fail-under`` is used. Contributed by Francis Niu in `PR141
&lt;https://github.com/pytest-dev/pytest-cov/pull/141&gt;`_.
* Added ``--cov-branch`` option. Fixes `85 &lt;https://github.com/pytest-dev/pytest-cov/issues/85&gt;`_.
* Improve exception handling in subprocess setup. Fixes `144 &lt;https://github.com/pytest-dev/pytest-cov/issues/144&gt;`_.
* Fixed handling when ``--cov`` is used multiple times. Fixes `151 &lt;https://github.com/pytest-dev/pytest-cov/issues/151&gt;`_.

2.4.0

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

* Added a &quot;disarm&quot; option: ``--no-cov``. It will disable coverage measurements. Contributed by Zoltan Kozma in
`PR135 &lt;https://github.com/pytest-dev/pytest-cov/pull/135&gt;`_.

**WARNING: Do not put this in your configuration files, it&#39;s meant to be an one-off for situations where you want to
disable coverage from command line.**
* Fixed broken exception handling on ``.pth`` file. See `136 &lt;https://github.com/pytest-dev/pytest-cov/issues/136&gt;`_.

2.3.1

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

* Fixed regression causing spurious errors when xdist was used. See `124
&lt;https://github.com/pytest-dev/pytest-cov/issues/124&gt;`_.
* Fixed DeprecationWarning about incorrect `addoption` use. Contributed by Florian Bruhin in `PR127
&lt;https://github.com/pytest-dev/pytest-cov/pull/127&gt;`_.
* Fixed deprecated use of funcarg fixture API. Contributed by Daniel Hahler in `PR125
&lt;https://github.com/pytest-dev/pytest-cov/pull/125&gt;`_.

2.3.0

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

* Add support for specifying output location for html, xml, and annotate report.
Contributed by Patrick Lannigan in `PR113 &lt;https://github.com/pytest-dev/pytest-cov/pull/113&gt;`_.
* Fix bug hiding test failure when cov-fail-under failed.
* For coverage &gt;= 4.0, match the default behaviour of `coverage report` and
error if coverage fails to find the source instead of just printing a warning.
Contributed by David Szotten in `PR116 &lt;https://github.com/pytest-dev/pytest-cov/pull/116&gt;`_.
* Fixed bug occurred when bare ``--cov`` parameter was used with xdist.
Contributed by Michael Elovskikh in `PR120 &lt;https://github.com/pytest-dev/pytest-cov/pull/120&gt;`_.
* Add support for ``skip_covered`` and added ``--cov-report=term-skip-covered`` command
line options. Contributed by Saurabh Kumar in `PR115 &lt;https://github.com/pytest-dev/pytest-cov/pull/115&gt;`_.

2.2.1

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

* Fixed incorrect merging of coverage data when xdist was used and coverage was ``&gt;= 4.0``.

2.2.0

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

* Added support for changing working directory in tests. Previously changing working
directory would disable coverage measurements in suprocesses.
* Fixed broken handling for ``--cov-report=annotate``.

2.1.0

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

* Added support for `coverage 4.0b2`.
* Added the ``--cov-append`` command line options. Contributed by Christian Ledermann
in `PR80 &lt;https://github.com/pytest-dev/pytest-cov/pull/80&gt;`_.

2.0.0

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

* Added ``--cov-fail-under``, akin to the new ``fail_under`` option in `coverage-4.0`
(automatically activated if there&#39;s a ``[report] fail_under = ...`` in ``.coveragerc``).
* Changed ``--cov-report=term`` to automatically upgrade to ``--cov-report=term-missing``
if there&#39;s ``[run] show_missing = True`` in ``.coveragerc``.
* Changed ``--cov`` so it can be used with no path argument (in which case the source
settings from ``.coveragerc`` will be used instead).
* Fixed `.pth` installation to work in all cases (install, easy_install, wheels, develop etc).
* Fixed `.pth` uninstallation to work for wheel installs.
* Support for coverage 4.0.
* Data file suffixing changed to use coverage&#39;s ``data_suffix=True`` option (instead of the
custom suffixing).
* Avoid warning about missing coverage data (just like ``coverage.control.process_startup``).
* Fixed a race condition when running with xdist (all the workers tried to combine the files).
It&#39;s possible that this issue is not present in `pytest-cov 1.8.X`.

1.8.2

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

* N/A

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pytest-cov
  • Changelog: https://pyup.io/changelogs/pytest-cov/
  • Repo: https://github.com/pytest-dev/pytest-cov </details>
+1 -1

0 comment

1 changed file

pr created time in 4 minutes

PR closed umeboshi2/hattie

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.6.0 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 17 minutes

pull request commentumeboshi2/hattie

Update zope.interface to 5.1.0

Closing this in favor of #295

pyup-bot

comment created time in 17 minutes

PR opened umeboshi2/hattie

Update zope.interface to 5.1.1

This PR updates zope.interface from 4.6.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in 17 minutes

PR closed Shivamagrawal2014/tf_base

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.5.0 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

4.6.0

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

- Add support for Python 3.7

- Fix ``verifyObject`` for class objects with staticmethods on
Python 3. See `issue 126
&lt;https://github.com/zopefoundation/zope.interface/issues/126&gt;`_.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 26 minutes

pull request commentShivamagrawal2014/tf_base

Update zope.interface to 5.1.0

Closing this in favor of #1206

pyup-bot

comment created time in 26 minutes

PR opened Shivamagrawal2014/tf_base

Update zope.interface to 5.1.1

This PR updates zope.interface from 4.5.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

4.6.0

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

- Add support for Python 3.7

- Fix ``verifyObject`` for class objects with staticmethods on
Python 3. See `issue 126
&lt;https://github.com/zopefoundation/zope.interface/issues/126&gt;`_.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in 26 minutes

PR opened shankarpandala/lazypredict

Update zope.interface to 5.1.1

This PR updates zope.interface from 5.1.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in 27 minutes

PR opened rodrigoddc/django-channels-realtime

Update zope.interface to 5.1.1

This PR updates zope.interface from 5.1.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in 30 minutes

PR closed reversepy/CrawlerPython

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.6.0 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 31 minutes

pull request commentreversepy/CrawlerPython

Update zope.interface to 5.1.0

Closing this in favor of #92

pyup-bot

comment created time in 31 minutes

PR opened reversepy/CrawlerPython

Update zope.interface to 5.1.1

This PR updates zope.interface from 4.6.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in 31 minutes

PR opened eghuro/crawlcheck

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in 32 minutes

PR opened munterfinger/zeitsprung

Pin pytest-runner to latest version 5.2

This PR pins pytest-runner to the latest release 5.2.

<details> <summary>Changelog</summary>

5.2

===

* 50: This project is deprecated.

5.1

===

* 49: Surgically restore support for older setuptools versions.

5.0

===

* 42: Prefer pyproject.toml
* Refresh package metadata.
* This release now intentionally introduces the changes
unintionally brought about in 4.5 and 4.3, where the
adoption of declarative config adds a new requirement
on setuptools 30.4 or later. On systems running older
setuptools, installation of pytest-runner via
``easy_install`` (or ``setup_requires``), will result
in a ``DistributionNotFound`` exception.

All projects should pin to ``pytest-runner &lt; 5``
or upgrade the environment to ``setuptools &gt;= 30.4``
(prior to invoking setup.py).

4.5.1

=====

* 48: Revert changes from 4.5 - restoring project to the
state at 4.4.

4.5

===

(Pulled from PyPI due to 43 and 48)

* Packaging (skeleton) refresh, including adoption of
`black &lt;https://pypi.org/project/black&gt;`_ for style.

4.4

===

* 43: Detect condition where declarative config will cause
errors and emit a UserWarning with guidance on necessary
actions.

4.3.1

=====

* 43: Re-release of 4.2 to supersede the 4.3 release which
proved to be backward-incompatible in that it requires
setuptools 30.4 or possibly later (to install). In the future, a
backward-incompatible release will re-release these changes.
For projects including pytest-runner, particularly as
``setup_requires``, if support for older setuptools is required,
please pin to ``pytest-runner &lt; 5``.

4.3

===

(Pulled from PyPI due to 43)

* 42: Update project metadata, including pyproject.toml declaration.

4.2

===

* 40: Remove declared dependency and instead assert it at
run time.

4.1

===

* 40: Declare dependency on Setuptools in package metadata.

4.0

===

* Drop support for Setuptools before Setuptools 27.3.0.

3.0.1

=====

* 38: Fixed AttributeError when running with ``--dry-run``.
``PyTest.run()`` no longer stores nor returns the result code.
Based on the commit message for `840ff4c &lt;
https://github.com/pytest-dev/pytest-runner/commit/840ff4c2bf6c752d9770f0dd8d64a841060cf9bc&gt;`_,
nothing has ever relied on that value.

3.0

===

* Dropped support for Python 2.6 and 3.1.

2.12.2

======

* 33: Packaging refresh.

2.12.1

======

* 32: Fix support for ``dependency_links``.

2.12

====

* 30: Rework support for ``--allow-hosts`` and
``--index-url``, removing dependence on
``setuptools.Distribution``&#39;s private member.
Additionally corrects logic in marker evaluation
along with unit tests!

2.11.1

======

* 28: Fix logic in marker evaluation.

2.11

====

* 27: Improved wording in the README around configuration
for the distutils command and pytest proper.

2.10.1

======

* 21: Avoid mutating dictionary keys during iteration.

2.10

====

* 20: Leverage technique in `setuptools 794
&lt;https://github.com/pypa/setuptools/issues/794&gt;`_
to populate PYTHONPATH during test runs such that
Python subprocesses will have a dependency context
comparable to the test runner.

2.9

===

* Added Trove Classifier indicating this package is part
of the pytest framework.

2.8

===

* 16: Added a license file, required for membership to
pytest-dev.
* Releases are now made automatically by pushing a
tagged release that passes tests on Python 3.5.

2.7

===

* Moved hosting to Github.

2.6

===

* Add support for un-named, environment-specific extras.

2.5.1

=====

* Restore Python 2.6 compatibility.

2.5

===

* Moved hosting to `pytest-dev
&lt;https://bitbucket.org/pytest-dev/pytest-runner&gt;`_.

2.4

===

* Added `documentation &lt;https://pythonhosted.org/pytest-runner&gt;`_.
* Use setuptools_scm for version management and file discovery.
* Updated internal packaging technique. README is now included
in the package metadata.

2.3

===

* Use hgdistver for version management and file discovery.

2.2

===

* Honor ``.eggs`` directory for transient downloads as introduced in Setuptools
7.0.

2.1

===

* The preferred invocation is now the &#39;pytest&#39; command.

2.0

===

* Removed support for the alternate usage. The recommended usage (as a
distutils command) is now the only supported usage.
* Removed support for the --junitxml parameter to the ptr command. Clients
should pass the same parameter (and all other py.test arguments) to py.test
via the --addopts parameter.

1.1

===

* Added support for --addopts to pass any arguments through to py.test.
* Deprecated support for --junitxml. Use --addopts instead. --junitxml will be
removed in 2.0.

1.0

===

Initial implementation.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pytest-runner
  • Changelog: https://pyup.io/changelogs/pytest-runner/
  • Repo: https://github.com/pytest-dev/pytest-runner/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin pytest to latest version 6.1.0

This PR pins pytest to the latest release 6.1.0.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pytest
  • Homepage: https://docs.pytest.org/en/latest/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin twine to latest version 3.2.0

This PR pins twine to the latest release 3.2.0.

<details> <summary>Changelog</summary>

3.2.0

* :feature:`666` Improve display of HTTP errors during upload
* :feature:`649` Use red text when printing errors on the command line
* :feature:`652` Print packages and signatures to be uploaded when using
``--verbose`` option
* :bug:`655 major` Update URL to ``.pypirc`` specfication
* :feature:`602` Require repository URL scheme to be ``http`` or ``https``
* :bug:`612 major` Don&#39;t raise an exception when Python version can&#39;t be
parsed from filename
* :bug:`611 major` Fix inaccurate retry message during ``upload``
* :bug:`601 major` Clarify error messages for archive format
* :feature:`231` Add type annotations, checked with mypy, with :pep:`561`
support for users of Twine&#39;s API

3.1.1

* :bug:`548` Restore ``--non-interactive`` as a flag not expecting an
argument.

3.1.0

* :feature:`547` Add support for specifying ``--non-interactive`` as an
environment variable.

3.0.0

* :feature:`336` When a client certificate is indicated, all password
processing is disabled.
* :feature:`489` Add ``--non-interactive`` flag to abort upload rather than
interactively prompt if credentials are missing.
* :feature:`524` Twine now unconditionally requires the keyring library
and no longer supports uninstalling ``keyring`` as a means to disable
that functionality. Instead, use ``keyring --disable`` keyring functionality
if necessary.
* :feature:`518` Add Python 3.8 to classifiers.
* :bug:`332 major` More robust handling of server response in
``--skip-existing``

2.0.0

* :feature:`437` Twine now requires Python 3.6 or later. Use pip
9 or pin to &quot;twine&lt;2&quot; to install twine on older Python versions.
* :bug:`491 major` Require requests 2.20 or later to avoid reported security
vulnerabilities in earlier releases.

1.15.0

* :feature:`488` Improved output on ``check`` command:
Prints a message when there are no distributions given to check.
Improved handling of errors in a distribution&#39;s markup, avoiding
messages flowing through to the next distribution&#39;s errors.

1.14.0

* :feature:`456` Better error handling and gpg2 fallback if gpg not available.
* :bug:`341 major` Fail more gracefully when encountering bad metadata
* :feature:`459` Show Warehouse URL after uploading a package
* :feature:`310` Now provide a more meaningful error on redirect during upload.

1.13.0

* :bug:`452 major` Restore prompts while retaining support for suppressing
prompts.
* :bug:`447 major` Avoid requests-toolbelt to 0.9.0 to prevent attempting to
use
openssl when it isn&#39;t available.
* :feature:`427` Add disable_progress_bar option to disable tqdm.
* :feature:`426` Allow defining an empty username and password in .pypirc.
* :bug:`441 major` Only install pyblake2 if needed.
* :bug:`444 major` Use io.StringIO instead of StringIO.
* :bug:`436 major` Use modern Python language features.
* :support:`439` Refactor tox env and travis config.
* :bug:`435 major` Specify python_requires in setup.py
* :bug:`432 major` Use https URLs everywhere.
* :bug:`428 major` Fix --skip-existing for Nexus Repos.
* :feature:`419` Support keyring.get_credential.
* :feature:`418` Support keyring.get_username_and_password.
* :bug:`421 major` Remove unnecessary usage of readme_render.markdown.
* :feature:`416` Add Python 3.7 to classifiers.
* :bug:`412 major` Don&#39;t crash if there&#39;s no package description.
* :bug:`408 major` Fix keyring support.

1.12.1

* :bug:`404` Fix regression with upload exit code

1.12.0

* :feature:`395 major` Add ``twine check`` command to check long description
* :feature:`392 major` Drop support for Python 3.3
* :feature:`363` Empower ``--skip-existing`` for Artifactory repositories
* :bug:`367 major` Avoid MD5 when Python is compiled in FIPS mode

1.11.0

* :bug:`269 major` Avoid uploading to PyPI when given alternate
repository URL, and require ``http://`` or ``https://`` in
``repository_url``.
* :support:`277` Add instructions on how to use keyring.
* :support:`314` Add new maintainer, release checklists.
* :bug:`322 major` Raise exception if attempting upload to deprecated legacy
PyPI URLs.
* :feature:`320` Remove PyPI as default ``register`` package index.
* :feature:`319` Support Metadata 2.1 (:pep:`566`), including Markdown
for ``description`` fields.
* :support:`318` `Update PyPI URLs
&lt;https://packaging.python.org/guides/migrating-to-pypi-org/&gt;`_.

1.10.0

* :bug:`315 major` Degrade gracefully when keyring is unavailable
* :feature:`304` Reorganize &amp; improve user &amp; developer documentation.
* :feature:`46` Link to changelog from ``README``
* :feature:`295` Add doc building instructions
* :feature:`296` Add architecture overview to docs
* :feature:`303` Revise docs predicting future of ``twine``
* :bug:`298 major` Fix syntax highlighting in ``README``
* :bug:`299 major` Fix changelog formatting
* :bug:`200 major` Remove obsolete registration guidance
* :bug:`286 major` Fix Travis CI and test configuration
* :feature:`257` Declare support for Python 3.6
* :bug:`297 major` Fix Read the Docs, tox, Travis configuration
* :bug:`268 major` Print progress to ``stdout``, not ``stderr``
* :bug:`265 major` Fix ``--repository[-url]`` help text
* :feature:`256` Improve progressbar

1.9.1

* :bug:`-` Blacklist known bad versions of Requests. See also :bug:`253`

1.9.0

* :support:`-` Twine will now resolve passwords using the
`keyring &lt;https://pypi.org/project/keyring/&gt;`_ if available.
Module can be required with the ``keyring`` extra.
* :support:`-` Twine will use ``hashlib.blake2b`` on Python 3.6+
instead of using pyblake2 for Blake2 hashes 256 bit hashes.
* :support:`-` Twine sends less information about the user&#39;s system in
the User-Agent string. See also :bug:`229`
* :support:`-` Fix ``--skip-existing`` when used to upload a package
for the first time.  See also :bug:`220`
* :support:`-` Fix precedence of ``--repository-url`` over
``--repository``. See also :bug:`206`

1.8.1

* :support:`-` Check if a package exists if the URL is one of:

 * ``https://pypi.python.org/pypi/``
 * ``https://upload.pypi.org/``
 * ``https://upload.pypi.io/``

 This helps people with ``https://upload.pypi.io`` still in their
 :file:`.pypirc` file.

1.8.0

* :feature:`201` Switch from upload.pypi.io to upload.pypi.org.
* :feature:`144` Retrieve configuration from the environment as a default.

 * Repository URL will default to ``TWINE_REPOSITORY``
 * Username will default to ``TWINE_USERNAME``
 * Password will default to ``TWINE_PASSWORD``

* :feature:`166` Allow the Repository URL to be provided on the
command-line (``--repository-url``) or via an environment variable
(``TWINE_REPOSITORY_URL``).
* :support:`-` Generate SHA256 digest for all packages
by default.
* :feature:`171` Generate Blake2b 256 digests for packages *if* ``pyblake2``
is installed. Users can use ``python -m pip install twine[with-blake2]``
to have ``pyblake2`` installed with Twine.
* :support:`-` Stop testing on Python 2.6. 2.6 support will be &quot;best
effort&quot; until 2.0.0
* :support:`-` Warn users if they receive a 500 error when uploading
to ``*pypi.python.org``

1.7.4

* :bug:`-` Correct a packaging error.

1.7.3

* :bug:`195` Fix uploads to instances of pypiserver using
``--skip-existing``. We were not properly checking the return
status code on the response after attempting an upload.
* :support:`-` Do not generate traffic to Legacy PyPI unless we&#39;re
uploading to it or uploading to Warehouse (e.g., pypi.io). This
avoids the attempt to upload a package to the index if we can find
it on Legacy PyPI already.

1.7.2

* :bug:`189`, :bug:`191` Fix issue where we were checking the existence of
packages even if the user didn&#39;t specify ``--skip-existing``.

1.7.1

* :bug:`187` Clint was not specified in the wheel metadata as a dependency.

1.7.0

* :feature:`142` Support ``--cert`` and ``--client-cert`` command-line flags
and config file options for feature parity with pip. This allows users to
verify connections to servers other than PyPI (e.g., local package
repositories) with different certificates.
* :feature:`152` Add progress bar to uploads.
* :feature:`162` Allow ``--skip-existing`` to work for 409 status codes.
* :feature:`167` Implement retries when the CDN in front of PyPI gives us a
5xx error.
* :feature:`177` Switch Twine to upload to pypi.io instead of
pypi.python.org.
* :bug:`186 major` Allow passwords to have ``%``\ s in them.

1.6.5

* :bug:`155` Bump requests-toolbelt version to ensure we avoid
ConnectionErrors

1.6.4

* :bug:`145` Paths with hyphens in them break the Wheel regular expression.
* :bug:`146` Exception while accessing the ``repository`` key (sic)
when raising a redirect exception.

1.6.3

* :bug:`137`, :bug:`140` Uploading signatures was broken due to the pull
request that added large file support via ``requests-toolbelt``. This
caused a 500 error on PyPI and prevented package and signature upload in
twine 1.6.0

1.6.2

* :bug:`132` Upload signatures with packages appropriately

 As part of the refactor for the 1.6.0 release, we were using the wrong
 name to find the signature file.

 This also uncovered a bug where if you&#39;re using twine in a situation where
 ``*`` is not expanded by your shell, we might also miss uploading
 signatures to PyPI. Both were fixed as part of this.

1.6.1

* :bug:`130` Fix signing support for uploads

1.6.0

* :feature:`106` Upload wheels first to PyPI
* :feature:`104` Large file support via the ``requests-toolbelt``
* :bug:`92 major` Raise an exception on redirects
* :feature:`97` Allow the user to specify the location of their
:file:`.pypirc`
* :feature:`115` Add the ``--skip-existing`` flag to ``twine upload`` to
allow users to skip releases that already exist on PyPI.
* :bug:`114 major` Warnings triggered by pkginfo searching for
``PKG-INFO`` files should no longer be user visible.
* :bug:`116 major` Work around problems with Windows when using
``getpass.getpass``
* :bug:`111 major` Provide more helpful messages if :file:`.pypirc` is
out of date.
* :feature:`8` Support registering new packages with ``twine register``

1.5.0

* :bug:`85 major` Display information about the version of setuptools installed
* :bug:`61 major` Support deprecated pypirc file format
* :feature:`29` Support commands not named &quot;gpg&quot; for signing
* :support:`-` Add lower-limit to requests dependency

1.4.0

* :bug:`28 major` Prevent ResourceWarning from being shown
* :bug:`34 major` List registered commands in help text
* :bug:`32 major` Use ``pkg_resources`` to load registered commands
* :bug:`47 major` Fix issue uploading packages with ``_``\ s in the name
* :bug:`26 major` Add support for uploading Windows installers
* :bug:`65 major` Expand globs and check for existence of dists to upload
* :feature:`13` Parse :file:`~/.pypirc` ourselves and use
``subprocess`` instead of the ``distutils.spawn`` module.
* :feature:`6` Switch to a git style dispatching for the commands to enable
simpler commands and programmatic invocation.

1.3.0

* :feature:`-` Additional functionality.

1.2.2

* :feature:`0` Basic functionality.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/twine
  • Changelog: https://pyup.io/changelogs/twine/
  • Docs: https://twine.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin sphinx to latest version 3.2.1

This PR pins Sphinx to the latest release 3.2.1.

<details> <summary>Changelog</summary>

3.2.1

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

Features added
--------------

* 8095: napoleon: Add :confval:`napoleon_preprocess_types` to enable the type
preprocessor for numpy style docstrings
* 8114: C and C++, parse function attributes after parameters and qualifiers.

Bugs fixed
----------

* 8074: napoleon: Crashes during processing C-ext module
* 8088: napoleon: &quot;Inline literal start-string without end-string&quot; warning in
Numpy style Parameters section
* 8084: autodoc: KeyError is raised on documenting an attribute of the broken
class
* 8091: autodoc: AttributeError is raised on documenting an attribute on Python
3.5.2
* 8099: autodoc: NameError is raised when target code uses ``TYPE_CHECKING``
* C++, fix parsing of template template paramters, broken by the fix of 7944

3.2.0

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

Deprecated
----------

* ``sphinx.ext.autodoc.members_set_option()``
* ``sphinx.ext.autodoc.merge_special_members_option()``
* ``sphinx.writers.texinfo.TexinfoWriter.desc``
* C, parsing of pre-v3 style type directives and roles, along with the options
:confval:`c_allow_pre_v3` and :confval:`c_warn_on_allowed_pre_v3`.

Features added
--------------

* 2076: autodoc: Allow overriding of exclude-members in skip-member function
* 8034: autodoc: ``:private-member:`` can take an explicit list of member names
to be documented
* 2024: autosummary: Add :confval:`autosummary_filename_map` to avoid conflict
of filenames between two object with different case
* 8011: autosummary: Support instance attributes as a target of autosummary
directive
* 7849: html: Add :confval:`html_codeblock_linenos_style` to change the style
of line numbers for code-blocks
* 7853: C and C++, support parameterized GNU style attributes.
* 7888: napoleon: Add aliases Warn and Raise.
* 7690: napoleon: parse type strings and make them hyperlinks as possible.  The
conversion rule can be updated via :confval:`napoleon_type_aliases`
* 8049: napoleon: Create a hyperlink for each the type of parameter when
:confval:`napoleon_use_params` is False
* C, added :rst:dir:`c:alias` directive for inserting copies
of existing declarations.
* 7745: html: inventory is broken if the docname contains a space
* 7991: html search: Allow searching for numbers
* 7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control
the behavior of globaltoc in sidebar
* 7840: i18n: Optimize the dependencies check on bootstrap
* 7768: i18n: :confval:`figure_language_filename` supports ``docpath`` token
* 5208: linkcheck: Support checks for local links
* 5090: setuptools: Link verbosity to distutils&#39; -v and -q option
* 6698: doctest: Add ``:trim-doctest-flags:`` and ``:no-trim-doctest-flags:``
options to doctest, testcode and testoutput directives
* 7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains.
Update the documentation to better reflect the relationship between this option
and the ``:noindex:`` option.
* 7899: C, add possibility of parsing of some pre-v3 style type directives and
roles and try to convert them to equivalent v3 directives/roles.
Set the new option :confval:`c_allow_pre_v3` to ``True`` to enable this.
The warnings printed from this functionality can be suppressed by setting
:confval:`c_warn_on_allowed_pre_v3`` to ``True``.
The functionality is immediately deprecated.
* 7999: C, add support for named variadic macro arguments.
* 8071: Allow to suppress &quot;self referenced toctrees&quot; warning

Bugs fixed
----------

* 7886: autodoc: TypeError is raised on mocking generic-typed classes
* 7935: autodoc: function signature is not shown when the function has a
parameter having ``inspect._empty`` as its default value
* 7901: autodoc: type annotations for overloaded functions are not resolved
* 904: autodoc: An instance attribute cause a crash of autofunction directive
* 1362: autodoc: ``private-members`` option does not work for class attributes
* 7983: autodoc: Generator type annotation is wrongly rendered in py36
* 8030: autodoc: An uninitialized annotated instance variable is not documented
when ``:inherited-members:`` option given
* 8032: autodoc: A type hint for the instance variable defined at parent class
is not shown in the document of the derived class
* 8041: autodoc: An annotated instance variable on super class is not
documented when derived class has other annotated instance variables
* 7839: autosummary: cannot handle umlauts in function names
* 7865: autosummary: Failed to extract summary line when abbreviations found
* 7866: autosummary: Failed to extract correct summary line when docstring
contains a hyperlink target
* 7469: autosummary: &quot;Module attributes&quot; header is not translatable
* 7940: apidoc: An extra newline is generated at the end of the rst file if a
module has submodules 
* 4258: napoleon: decorated special methods are not shown
* 7799: napoleon: parameters are not escaped for combined params in numpydoc
* 7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
recognized when napoleon_use_params=True
* 7715: LaTeX: ``numfig_secnum_depth &gt; 1`` leads to wrong figure links
* 7846: html theme: XML-invalid files were generated
* 7894: gettext: Wrong source info is shown when using rst_epilog
* 7691: linkcheck: HEAD requests are not used for checking
* 4888: i18n: Failed to add an explicit title to ``:ref:`` role on translation
* 7928: py domain: failed to resolve a type annotation for the attribute
* 8008: py domain: failed to parse a type annotation containing ellipsis
* 7994: std domain: option directive does not generate old node_id compatible
with 2.x or older
* 7968: i18n: The content of ``math`` directive is interpreted as reST on
translation
* 7768: i18n: The ``root`` element for :confval:`figure_language_filename` is
not a path that user specifies in the document
* 7993: texinfo: TypeError is raised for nested object descriptions
* 7993: texinfo: a warning not supporting desc_signature_line node is shown
* 7869: :rst:role:`abbr` role without an explanation will show the explanation
from the previous abbr role
* 8048: graphviz: graphviz.css was copied on building non-HTML document
* C and C++, removed ``noindex`` directive option as it did
nothing.
* 7619: Duplicated node IDs are generated if node has multiple IDs
* 2050: Symbols sections are appeared twice in the index page
* 8017: Fix circular import in sphinx.addnodes
* 7986: CSS: make &quot;highlight&quot; selector more robust
* 7944: C++, parse non-type template parameters starting with
a dependent qualified name.
* C, don&#39;t deepcopy the entire symbol table and make a mess every time an
enumerator is handled.

3.1.2

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

Incompatible changes
--------------------

* 7650: autodoc: the signature of base function will be shown for decorated
functions, not a signature of decorator

Bugs fixed
----------

* 7844: autodoc: Failed to detect module when relative module name given
* 7856: autodoc: AttributeError is raised when non-class object is given to
the autoclass directive
* 7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints
is &#39;description&#39;
* 7812: autodoc: crashed if the target name matches to both an attribute and
module that are same name
* 7650: autodoc: function signature becomes ``(*args, **kwargs)`` if the
function is decorated by generic decorator
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7806: viewcode: Failed to resolve viewcode references on 3rd party builders
* 7838: html theme: List items have extra vertical space
* 7878: html theme: Undesired interaction between &quot;overflow&quot; and &quot;float&quot;

3.1.1

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

Incompatible changes
--------------------

* 7808: napoleon: a type for attribute are represented as typed field

Features added
--------------

* 7807: autodoc: Show detailed warning when type_comment is mismatched with its
signature

Bugs fixed
----------

* 7808: autodoc: Warnings raised on variable and attribute type annotations
* 7802: autodoc: EOFError is raised on parallel build
* 7821: autodoc: TypeError is raised for overloaded C-ext function
* 7805: autodoc: an object which descriptors returns is unexpectedly documented
* 7807: autodoc: wrong signature is shown for the function using contextmanager
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7808: napoleon: Warnings raised on variable and attribute type annotations
* 7811: sphinx.util.inspect causes circular import problem

3.1.0

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

Dependencies
------------

* 7746: mathjax: Update to 2.7.5

Incompatible changes
--------------------

* 7477: imgconverter: Invoke &quot;magick convert&quot; command by default on Windows

Deprecated
----------

* The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has
been changed to Sphinx object
* ``sphinx.ext.autosummary.generate.AutosummaryRenderer`` takes an object type
as an argument
* The ``ignore`` argument of ``sphinx.ext.autodoc.Documenter.get_doc()``
* The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
AutosummaryRenderer``
* The ``module`` argument of ``sphinx.ext.autosummary.generate.
find_autosummary_in_docstring()``
* The ``builder`` argument of ``sphinx.ext.autosummary.generate.
generate_autosummary_docs()``
* The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
generate_autosummary_docs()``
* The ``ignore`` argument of ``sphinx.util.docstring.prepare_docstring()``
* ``sphinx.ext.autosummary.generate.AutosummaryRenderer.exists()``
* ``sphinx.util.rpartition()``

Features added
--------------

* LaTeX: Make the ``toplevel_sectioning`` setting optional in LaTeX theme
* LaTeX: Allow to override papersize and pointsize from LaTeX themes
* LaTeX: Add :confval:`latex_theme_options` to override theme options
* 7410: Allow to suppress &quot;circular toctree references detected&quot; warnings using
:confval:`suppress_warnings`
* C, added scope control directives, :rst:dir:`c:namespace`,
:rst:dir:`c:namespace-push`, and :rst:dir:`c:namespace-pop`.
* 2044: autodoc: Suppress default value for instance attributes
* 7473: autodoc: consider a member public if docstring contains
``:meta public:`` in info-field-list
* 7487: autodoc: Allow to generate docs for singledispatch functions by
py:autofunction
* 7143: autodoc: Support final classes and methods
* 7384: autodoc: Support signatures defined by ``__new__()``, metaclasses and
builtin base classes
* 2106: autodoc: Support multiple signatures on docstring
* 4422: autodoc: Support GenericAlias in Python 3.7 or above
* 3610: autodoc: Support overloaded functions
* 7722: autodoc: Support TypeVar
* 7466: autosummary: headings in generated documents are not translated
* 7490: autosummary: Add ``:caption:`` option to autosummary directive to set a
caption to the toctree
* 7469: autosummary: Support module attributes
* 248, 6040: autosummary: Add ``:recursive:`` option to autosummary directive
to generate stub files recursively
* 4030: autosummary: Add :confval:`autosummary_context` to add template
variables for custom templates
* 7530: html: Support nested &lt;kbd&gt; elements
* 7481: html theme: Add right margin to footnote/citation labels
* 7482, 7717: html theme: CSS spacing for code blocks with captions and line
numbers
* 7443: html theme: Add new options :confval:`globaltoc_collapse` and
:confval:`globaltoc_includehidden` to control the behavior of globaltoc in
sidebar
* 7484: html theme: Avoid clashes between sidebar and other blocks
* 7476: html theme: Relbar breadcrumb should contain current page
* 7506: html theme: A canonical URL is not escaped
* 7533: html theme: Avoid whitespace at the beginning of genindex.html
* 7541: html theme: Add a &quot;clearer&quot; at the end of the &quot;body&quot;
* 7542: html theme: Make admonition/topic/sidebar scrollable
* 7543: html theme: Add top and bottom margins to tables
* 7695: html theme: Add viewport meta tag for basic theme
* 7721: html theme: classic: default codetextcolor/codebgcolor doesn&#39;t override
Pygments 
* C and C++: allow semicolon in the end of declarations.
* C++, parse parameterized noexcept specifiers.
* 7294: C++, parse expressions with user-defined literals.
* C++, parse trailing return types.
* 7143: py domain: Add ``:final:`` option to :rst:dir:`py:class:`,
:rst:dir:`py:exception:` and :rst:dir:`py:method:` directives
* 7596: py domain: Change a type annotation for variables to a hyperlink
* 7770: std domain: :rst:dir:`option` directive support arguments in the form
of ``foo[=bar]``
* 7582: napoleon: a type for attribute are represented like type annotation
* 7734: napoleon: overescaped trailing underscore on attribute
* 7247: linkcheck: Add :confval:`linkcheck_request_headers` to send custom HTTP
headers for specific host
* 7792: setuptools: Support ``--verbosity`` option
* 7683: Add ``allowed_exceptions`` parameter to ``Sphinx.emit()`` to allow
handlers to raise specified exceptions
* 7295: C++, parse (trailing) requires clauses.

Bugs fixed
----------

* 6703: autodoc: incremental build does not work for imported objects
* 7564: autodoc: annotations not to be shown for descriptors
* 6588: autodoc: Decorated inherited method has no documentation
* 7469: autodoc: The change of autodoc-process-docstring for variables is
cached unexpectedly
* 7559: autodoc: misdetects a sync function is async
* 6857: autodoc: failed to detect a classmethod on Enum class
* 7562: autodoc: a typehint contains spaces is wrongly rendered under
autodoc_typehints=&#39;description&#39; mode
* 7551: autodoc: failed to import nested class
* 7362: autodoc: does not render correct signatures for built-in functions
* 7654: autodoc: ``Optional[Union[foo, bar]]`` is presented as
``Union[foo, bar, None]``
* 7629: autodoc: autofunction emits an unfriendly warning if an invalid object
specified
* 7650: autodoc: undecorated signature is shown for decorated functions
* 7676: autodoc: typo in the default value of autodoc_member_order
* 7676: autodoc: wrong value for :member-order: option is ignored silently
* 7676: autodoc: member-order=&quot;bysource&quot; does not work for C module
* 3673: autodoc: member-order=&quot;bysource&quot; does not work for a module having
__all__
* 7668: autodoc: wrong retann value is passed to a handler of
autodoc-proccess-signature
* 7711: autodoc: fails with ValueError when processing numpy objects
* 7791: autodoc: TypeError is raised on documenting singledispatch function
* 7551: autosummary: a nested class is indexed as non-nested class
* 7661: autosummary: autosummary directive emits warnings twices if failed to
import the target module
* 7685: autosummary: The template variable &quot;members&quot; contains imported members
even if :confval:`autossummary_imported_members` is False
* 7671: autosummary: The location of import failure warning is missing
* 7535: sphinx-autogen: crashes when custom template uses inheritance
* 7536: sphinx-autogen: crashes when template uses i18n feature
* 7781: sphinx-build: Wrong error message when outdir is not directory
* 7653: sphinx-quickstart: Fix multiple directory creation for nested relpath
* 2785: html: Bad alignment of equation links
* 7718: html theme: some themes does not respect background color of Pygments
style (agogo, haiku, nature, pyramid, scrolls, sphinxdoc and traditional)
* 7544: html theme: inconsistent padding in admonitions
* 7581: napoleon: bad parsing of inline code in attribute docstrings
* 7628: imgconverter: runs imagemagick once unnecessary for builders not
supporting images
* 7610: incorrectly renders consecutive backslashes for docutils-0.16
* 7646: handle errors on event handlers
* 4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents
* 7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels
* 7723: LaTeX: pdflatex crashed when URL contains a single quote
* 7756: py domain: The default value for positional only argument is not shown
* 7760: coverage: Add :confval:`coverage_show_missing_items` to show coverage
result to console
* C++, fix rendering and xrefs in nested names explicitly starting
in global scope, e.g., ``::A::B``.
* C, fix rendering and xrefs in nested names explicitly starting
in global scope, e.g., ``.A.B``.
* 7763: C and C++, don&#39;t crash during display stringification of unary
expressions and fold expressions.

3.0.4

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

Bugs fixed
----------

* 7567: autodoc: parametrized types are shown twice for generic types
* 7637: autodoc: system defined TypeVars are shown in Python 3.9
* 7696: html: Updated jQuery version from 3.4.1 to 3.5.1 for security reasons
* 7611: md5 fails when OpenSSL FIPS is enabled
* 7626: release package does not contain ``CODE_OF_CONDUCT``

3.0.3

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

Features added
--------------

* C, parse array declarators with static, qualifiers, and VLA specification.

Bugs fixed
----------

* 7516: autodoc: crashes if target object raises an error on accessing
its attributes

3.0.2

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

Features added
--------------

* C, parse attributes and add :confval:`c_id_attributes`
and :confval:`c_paren_attributes` to support user-defined attributes.

Bugs fixed
----------

* 7461: py domain: fails with IndexError for empty tuple in type annotation
* 7510: py domain: keyword-only arguments are documented as having a default of
None
* 7418: std domain: :rst:role:`term` role could not match case-insensitively
* 7461: autodoc: empty tuple in type annotation is not shown correctly
* 7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking
* C++, fix spacing issue in east-const declarations.
* 7414: LaTeX: Xindy language options were incorrect
* sphinx crashes with ImportError on python3.5.1

3.0.1

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

Incompatible changes
--------------------

* 7418: std domain: :rst:dir:`term` role becomes case sensitive

Bugs fixed
----------

* 7428: py domain: a reference to class ``None`` emits a nitpicky warning
* 7445: py domain: a return annotation ``None`` in the function signature is
not converted to a hyperlink when using intersphinx
* 7418: std domain: duplication warning for glossary terms is case insensitive
* 7438: C++, fix merging overloaded functions in parallel builds.
* 7422: autodoc: fails with ValueError when using autodoc_mock_imports
* 7435: autodoc: ``autodoc_typehints=&#39;description&#39;`` doesn&#39;t suppress typehints
in signature for classes/methods
* 7451: autodoc: fails with AttributeError when an object returns non-string
object as a ``__doc__`` member
* 7423: crashed when giving a non-string object to logger
* 7479: html theme: Do not include xmlns attribute with HTML 5 doctype
* 7426: html theme: Escape some links in HTML templates

3.0.0

* 7364: autosummary: crashed when :confval:`autosummary_generate` is False
* 7370: autosummary: raises UnboundLocalError when unknown module given
* 7367: C++, alternate operator spellings are now supported.
* C, alternate operator spellings are now supported.
* 7368: C++, comma operator in expressions, pack expansion in template
argument lists, and more comprehensive error messages in some cases.
* C, C++, fix crash and wrong duplicate warnings related to anon symbols.
* 6477: Escape first &quot;!&quot; in a cross reference linking no longer possible
* 7219: py domain: The index entry generated by ``py:function`` directive is
different with one from ``index`` directive with &quot;builtin&quot; type
* 7301: capital characters are not allowed for node_id
* 7301: epub: duplicated node_ids are generated
* 6564: html: a width of table was ignored on HTML builder
* 7401: Incorrect argument is passed for :event:`env-get-outdated` handlers
* 7355: autodoc: a signature of cython-function is not recognized well
* 7222: autodoc: ``__wrapped__`` functions are not documented correctly
* 7409: intersphinx: ValueError is raised when an extension sets up
:confval:`intersphinx_mapping` on :event:`config-inited` event
* 7343: Sphinx builds has been slower since 2.4.0 on debug mode

3.0.0b1

* C++, fix cross reference lookup in certain cases involving
function overloads.
* 5078: C++, fix cross reference lookup when a directive contains multiple
declarations.
* C++, suppress warnings for directly dependent typenames in cross references
generated automatically in signatures.
* 5637: autodoc: Incorrect handling of nested class names on show-inheritance
* 7267: autodoc: error message for invalid directive options has wrong location
* 7329: autodoc: info-field-list is wrongly generated from type hints into the
class description even if ``autoclass_content=&#39;class&#39;`` set
* 7331: autodoc: a cython-function is not recognized as a function
* 5637: inheritance_diagram: Incorrect handling of nested class names
* 7139: ``code-block:: guess`` does not work
* 7325: html: source_suffix containing dot leads to wrong source link
* 7357: html: Resizing SVG image fails with ValueError
* 7278: html search: Fix use of ``html_file_suffix`` instead of
``html_link_suffix`` in search results
* 7297: html theme: ``bizstyle`` does not support ``sidebarwidth``
* 3842: singlehtml: Path to images broken when master doc is not in source root
* 7179: std domain: Fix whitespaces are suppressed on referring GenericObject
* 7289: console: use bright colors instead of bold
* 1539: C, parse array types.
* 2377: C, parse function pointers even in complex types.
* 7345: sphinx-build: Sphinx crashes if output directory exists as a file
* 7290: sphinx-build: Ignore bdb.BdbQuit when handling exceptions
* 6240: napoleon: Attributes and Methods sections ignore :noindex: option

2.4.4

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

Bugs fixed
----------

* 7197: LaTeX: platex cause error to build image directive with target url
* 7223: Sphinx builds has been slower since 2.4.0

2.4.3

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

Bugs fixed
----------

* 7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled
properly
* 7189: autodoc: classmethod coroutines are not detected
* 7183: intersphinx: ``:attr:`` reference to property is broken
* 6244, 6387: html search: Search breaks/hangs when built with dirhtml builder
* 7195: todo: emit doctree-resolved event with non-document node incorrectly

2.4.2

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

Bugs fixed
----------

* 7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object
as a value
* 7156: autodoc: separator for keyword only arguments is not shown
* 7146: autodoc: IndexError is raised on suppressed type_comment found
* 7161: autodoc: typehints extension does not support parallel build
* 7178: autodoc: TypeError is raised on fetching type annotations
* 7151: crashed when extension assigns a value to ``env.indexentries``
* 7170: text: Remove debug print
* 7137: viewcode: Avoid to crash when non-python code given

2.4.1

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

Bugs fixed
----------

* 7120: html: crashed when on scaling SVG images which have float dimensions
* 7126: autodoc: TypeError: &#39;getset_descriptor&#39; object is not iterable

2.4.0

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

Deprecated
----------

* The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()``
* ``sphinx.directives.other.Index``
* ``sphinx.environment.temp_data[&#39;gloss_entries&#39;]``
* ``sphinx.environment.BuildEnvironment.indexentries``
* ``sphinx.environment.collectors.indexentries.IndexEntriesCollector``
* ``sphinx.ext.apidoc.INITPY``
* ``sphinx.ext.apidoc.shall_skip()``
* ``sphinx.io.FiletypeNotFoundError``
* ``sphinx.io.get_filetype()``
* ``sphinx.pycode.ModuleAnalyzer.encoding``
* ``sphinx.roles.Index``
* ``sphinx.util.detect_encoding()``
* ``sphinx.util.get_module_source()``
* ``sphinx.util.inspect.Signature``
* ``sphinx.util.inspect.safe_getmembers()``
* ``sphinx.writers.latex.LaTeXTranslator.settings.author``
* ``sphinx.writers.latex.LaTeXTranslator.settings.contentsname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docclass``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.title``
* ``sphinx.writers.latex.ADDITIONAL_SETTINGS``
* ``sphinx.writers.latex.DEFAULT_SETTINGS``
* ``sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG``

Features added
--------------

* 6910: inheritance_diagram: Make the background of diagrams transparent
* 6446: duration: Add ``sphinx.ext.durations`` to inspect which documents slow
down the build
* 6837: LaTeX: Support a nested table
* 7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment
variable
* 6966: graphviz: Support ``:class:`` option
* 6696: html: ``:scale:`` option of image/figure directive not working for SVG
images (imagesize-1.2.0 or above is required)
* 6994: imgconverter: Support illustrator file (.ai) to .png conversion
* autodoc: Support Positional-Only Argument separator (PEP-570 compliant)
* autodoc: Support type annotations for variables
* 2755: autodoc: Add new event: :event:`autodoc-before-process-signature`
* 2755: autodoc: Support type_comment style (ex. `` type: (str) -&gt; str``)
annotation (python3.8+ or `typed_ast &lt;https://github.com/python/typed_ast&gt;`_
is required)
* 7051: autodoc: Support instance variables without defaults (PEP-526)
* 6418: autodoc: Add a new extension ``sphinx.ext.autodoc.typehints``. It shows
typehints as object description if ``autodoc_typehints = &quot;description&quot;`` set.
This is an experimental extension and it will be integrated into autodoc core
in Sphinx-3.0
* SphinxTranslator now calls visitor/departure method for super node class if
visitor/departure method for original node class not found
* 6418: Add new event: :event:`object-description-transform`
* py domain: :rst:dir:`py:data` and :rst:dir:`py:attribute` take new options
named ``:type:`` and ``:value:`` to describe its type and initial value
* 6785: py domain: ``:py:attr:`` is able to refer properties again
* 6772: apidoc: Add ``-q`` option for quiet mode

Bugs fixed
----------

* 6925: html: Remove redundant type=&quot;text/javascript&quot; from &lt;script&gt; elements
* 7112: html: SVG image is not layouted as float even if aligned
* 6906, 6907: autodoc: failed to read the source codes encoeded in cp1251
* 6961: latex: warning for babel shown twice
* 7059: latex: LaTeX compilation falls into infinite loop (wrapfig issue)
* 6581: latex: ``:reversed:`` option for toctree does not effect to LaTeX build
* 6559: Wrong node-ids are generated in glossary directive
* 6986: apidoc: misdetects module name for .so file inside module
* 6899: apidoc: private members are not shown even if ``--private`` given
* 6327: apidoc: Support a python package consisted of __init__.so file
* 6999: napoleon: fails to parse tilde in :exc: role
* 7019: gettext: Absolute path used in message catalogs
* 7023: autodoc: nested partial functions are not listed
* 7023: autodoc: partial functions imported from other modules are listed as
module members without :impoprted-members: option
* 6889: autodoc: Trailing comma in ``:members::`` option causes cryptic warning
* 6568: autosummary: ``autosummary_imported_members`` is ignored on generating
a stub file for submodule
* 7055: linkcheck: redirect is treated as an error
* 7088: HTML template: If ``navigation_with_keys`` option is activated,
modifier keys are ignored, which means the feature can interfere with browser
features
* 7090: std domain: Can&#39;t assign numfig-numbers for custom container nodes
* 7106: std domain: enumerated nodes are marked as duplicated when extensions
call ``note_explicit_target()``
* 7095: dirhtml: Cross references are broken via intersphinx and ``:doc:`` role
* C++:

- Don&#39;t crash when using the ``struct`` role in some cases.
- Don&#39;t warn when using the ``var``/``member`` role for function
 parameters.
- Render call and braced-init expressions correctly.
* 7097: Filenames of images generated by
``sphinx.transforms.post_transforms.images.ImageConverter``
or its subclasses (used for latex build) are now sanitized,
to prevent broken paths

2.3.1

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

Bugs fixed
----------

* 6936: sphinx-autogen: raises AttributeError

2.3.0

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

Incompatible changes
--------------------

* 6742: ``end-before`` option of :rst:dir:`literalinclude` directive does not
match the first line of the code block.
* 1331: Change default User-Agent header to ``&quot;Sphinx/X.Y.Z requests/X.Y.Z
python/X.Y.Z&quot;``.  It can be changed via :confval:`user_agent`.
* 6867: text: content of admonitions starts after a blank line

Deprecated
----------

* ``sphinx.builders.gettext.POHEADER``
* ``sphinx.io.SphinxStandaloneReader.app``
* ``sphinx.io.SphinxStandaloneReader.env``
* ``sphinx.util.texescape.tex_escape_map``
* ``sphinx.util.texescape.tex_hl_escape_map_new``
* ``sphinx.writers.latex.LaTeXTranslator.no_contractions``

Features added
--------------

* 6707: C++, support bit-fields.
* 267: html: Eliminate prompt characters of doctest block from copyable text
* 6548: html: Use favicon for OpenSearch if available
* 6729: html theme: agogo theme now supports ``rightsidebar`` option
* 6780: Add PEP-561 Support
* 6762: latex: Allow to load additional LaTeX packages via ``extrapackages`` key
of :confval:`latex_elements`
* 1331: Add new config variable: :confval:`user_agent`
* 6000: LaTeX: have backslash also be an inline literal word wrap break
character
* 4186: LaTeX: Support upLaTeX as a new :confval:`latex_engine` (experimental)
* 6812: Improve a warning message when extensions are not parallel safe
* 6818: Improve Intersphinx performance for multiple remote inventories.
* 2546: apidoc: .so file support
* 6798: autosummary: emit ``autodoc-skip-member`` event on generating stub file
* 6483: i18n: make explicit titles in toctree translatable
* 6816: linkcheck: Add :confval:`linkcheck_auth` option to provide
authentication information when doing ``linkcheck`` builds
* 6872: linkcheck: Handles HTTP 308 Permanent Redirect
* 6613: html: Wrap section number in span tag
* 6781: gettext: Add :confval:`gettext_last_translator&#39; and
:confval:`gettext_language_team` to customize headers of POT file

Bugs fixed
----------

* 6668: LaTeX: Longtable before header has incorrect distance
(refs: `latex3/latex2e173`_)

.. _latex3/latex2e173: https://github.com/latex3/latex2e/issues/173
* 6618: LaTeX: Avoid section names at the end of a page
* 6738: LaTeX: Do not replace unicode characters by LaTeX macros on unicode
supported LaTeX engines: ¶, §, €, ∞, ±, →, ‣, –, superscript and subscript
digits go through &quot;as is&quot; (as default OpenType font supports them)
* 6704: linkcheck: Be defensive and handle newly defined HTTP error code
* 6806: linkcheck: Failure on parsing content
* 6655: image URLs containing ``data:`` causes gettext builder crashed
* 6584: i18n: Error when compiling message catalogs on Hindi
* 6718: i18n: KeyError is raised if section title and table title are same
* 6743: i18n: :confval:`rst_prolog` breaks the translation
* 6708: mathbase: Some deprecated functions have removed
* 6709: autodoc: mock object does not work as a class decorator
* 5070: epub: Wrong internal href fragment links
* 6712: Allow not to install sphinx.testing as runtime (mainly for ALT Linux)
* 6741: html: search result was broken with empty :confval:`html_file_suffix`
* 6001: LaTeX does not wrap long code lines at backslash character
* 6804: LaTeX: PDF build breaks if admonition of danger type contains
code-block long enough not to fit on one page
* 6809: LaTeX: code-block in a danger type admonition can easily spill over
bottom of page
* 6793: texinfo: Code examples broken following &quot;sidebar&quot;
* 6813: An orphan warning is emitted for included document on Windows.  Thanks
to drillan
* 6850: Fix smartypants module calls re.sub() with wrong options
* 6824: HTML search: If a search term is partially matched in the title and
fully matched in a text paragraph on the same page, the search does not
include this match.
* 6848: config.py shouldn&#39;t pop extensions from overrides
* 6867: text: extra spaces are inserted to hyphenated words on folding lines
* 6886: LaTeX: xelatex converts straight double quotes into right curly ones
(shows when :confval:`smartquotes` is ``False``)
* 6890: LaTeX: even with smartquotes off, PDF output transforms straight
quotes and consecutive hyphens into curly quotes and dashes
* 6876: LaTeX: multi-line display of authors on title page has ragged edges
* 6887: Sphinx crashes with docutils-0.16b0
* 6920: sphinx-build: A console message is wrongly highlighted
* 6900: sphinx-build: ``-D`` option does not considers ``0`` and ``1`` as a
boolean value

2.2.2

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

Incompatible changes
--------------------

* 6803: For security reason of python, parallel mode is disabled on macOS and
Python3.8+

Bugs fixed
----------

* 6776: LaTeX: 2019-10-01 LaTeX release breaks :file:`sphinxcyrillic.sty`
* 6815: i18n: French, Hindi, Chinese, Japanese and Korean translation messages
has been broken
* 6803: parallel build causes AttributeError on macOS and Python3.8

2.2.1

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

Bugs fixed
----------

* 6641: LaTeX: Undefined control sequence ``\sphinxmaketitle``
* 6710: LaTeX not well configured for Greek language as main language
* 6759: validation of html static paths and extra paths no longer throws
an error if the paths are in different directories

2.2.0

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

Incompatible changes
--------------------

* apidoc: template files are renamed to ``.rst_t``
* html: Field lists will be styled by grid layout

Deprecated
----------

* ``sphinx.domains.math.MathDomain.add_equation()``
* ``sphinx.domains.math.MathDomain.get_next_equation_number()``
* The ``info`` and ``warn`` arguments of
``sphinx.ext.autosummary.generate.generate_autosummary_docs()``
* ``sphinx.ext.autosummary.generate._simple_info()``
* ``sphinx.ext.autosummary.generate._simple_warn()``
* ``sphinx.ext.todo.merge_info()``
* ``sphinx.ext.todo.process_todo_nodes()``
* ``sphinx.ext.todo.process_todos()``
* ``sphinx.ext.todo.purge_todos()``

Features added
--------------

* 5124: graphviz: ``:graphviz_dot:`` option is renamed to ``:layout:``
* 1464: html: emit a warning if :confval:`html_static_path` and
:confval:`html_extra_path` directories are inside output directory
* 6514: html: Add a label to search input for accessability purposes
* 5602: apidoc: Add ``--templatedir`` option
* 6475: Add ``override`` argument to ``app.add_autodocumenter()``
* 6310: imgmath: let :confval:`imgmath_use_preview` work also with the SVG
format for images rendering inline math
* 6533: LaTeX: refactor visit_enumerated_list() to use ``\sphinxsetlistlabels``
* 6628: quickstart: Use ``https://docs.python.org/3/`` for default setting of
:confval:`intersphinx_mapping`
* 6419: sphinx-build: give reasons why rebuilded

Bugs fixed
----------

* py domain: duplicated warning does not point the location of source code
* 6499: html: Sphinx never updates a copy of :confval:`html_logo` even if
original file has changed
* 1125: html theme: scrollbar is hard to see on classic theme and macOS
* 5502: linkcheck: Consider HTTP 503 response as not an error
* 6439: Make generated download links reproducible
* 6486: UnboundLocalError is raised if broken extension installed
* 6567: autodoc: :confval:`autodoc_inherit_docstrings` does not effect to
``__init__()`` and ``__new__()``
* 6574: autodoc: :confval:`autodoc_member_order` does not refer order of
imports when ``&#39;bysource&#39;`` order
* 6574: autodoc: missing type annotation for variadic and keyword parameters
* 6589: autodoc: Formatting issues with autodoc_typehints=&#39;none&#39;
* 6605: autodoc: crashed when target code contains custom method-like objects
* 6498: autosummary: crashed with wrong autosummary_generate setting
* 6507: autosummary: crashes without no autosummary_generate setting
* 6511: LaTeX: autonumbered list can not be customized in LaTeX
since Sphinx 1.8.0 (refs: 6533)
* 6531: Failed to load last environment object when extension added
* 736: Invalid sort in pair index
* 6527: :confval:`last_updated` wrongly assumes timezone as UTC
* 5592: std domain: :rst:dir:`option` directive registers an index entry for
each comma separated option
* 6549: sphinx-build: Escaped characters in error messages
* 6545: doctest comments not getting trimmed since Sphinx 1.8.0
* 6561: glossary: Wrong hyperlinks are generated for non alphanumeric terms
* 6620: i18n: classifiers of definition list are not translated with
docutils-0.15
* 6474: ``DocFieldTransformer`` raises AttributeError when given directive is
not a subclass of ObjectDescription

2.1.2

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

Bugs fixed
----------

* 6497: custom lexers fails highlighting when syntax error
* 6478, 6488: info field lists are incorrectly recognized

2.1.1

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

Incompatible changes
--------------------

* 6447: autodoc: Stop to generate document for undocumented module variables

Bugs fixed
----------

* 6442: LaTeX: admonitions of :rst:dir:`note` type can get separated from
immediately preceding section title by pagebreak
* 6448: autodoc: crashed when autodocumenting classes with ``__slots__ = None``
* 6451: autodoc: generates docs for &quot;optional import&quot;ed modules as variables
* 6452: autosummary: crashed when generating document of properties
* 6455: napoleon: docstrings for properties are not processed
* 6436: napoleon: &quot;Unknown target name&quot; error if variable name ends with
underscore
* 6440: apidoc: missing blank lines between modules

2.1.0

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

Incompatible changes
--------------------

* Ignore filenames without file extension given to ``Builder.build_specific()``
API directly
* 6230: The anchor of term in glossary directive is changed if it is consisted
by non-ASCII characters
* 4550: html: Centering tables by default using CSS
* 6239: latex: xelatex and xeCJK are used for Chinese documents by default
* ``Sphinx.add_lexer()`` now takes a Lexer class instead of instance.  An
instance of lexers are still supported until Sphinx-3.x.

Deprecated
----------

* ``sphinx.builders.latex.LaTeXBuilder.apply_transforms()``
* ``sphinx.builders._epub_base.EpubBuilder.esc()``
* ``sphinx.directives.Acks``
* ``sphinx.directives.Author``
* ``sphinx.directives.Centered``
* ``sphinx.directives.Class``
* ``sphinx.directives.CodeBlock``
* ``sphinx.directives.Figure``
* ``sphinx.directives.HList``
* ``sphinx.directives.Highlight``
* ``sphinx.directives.Include``
* ``sphinx.directives.Index``
* ``sphinx.directives.LiteralInclude``
* ``sphinx.directives.Meta``
* ``sphinx.directives.Only``
* ``sphinx.directives.SeeAlso``
* ``sphinx.directives.TabularColumns``
* ``sphinx.directives.TocTree``
* ``sphinx.directives.VersionChange``
* ``sphinx.domains.python.PyClassmember``
* ``sphinx.domains.python.PyModulelevel``
* ``sphinx.domains.std.StandardDomain._resolve_citation_xref()``
* ``sphinx.domains.std.StandardDomain.note_citations()``
* ``sphinx.domains.std.StandardDomain.note_citation_refs()``
* ``sphinx.domains.std.StandardDomain.note_labels()``
* ``sphinx.environment.NoUri``
* ``sphinx.ext.apidoc.format_directive()``
* ``sphinx.ext.apidoc.format_heading()``
* ``sphinx.ext.apidoc.makename()``
* ``sphinx.ext.autodoc.importer.MockFinder``
* ``sphinx.ext.autodoc.importer.MockLoader``
* ``sphinx.ext.autodoc.importer.mock()``
* ``sphinx.ext.autosummary.autolink_role()``
* ``sphinx.ext.imgmath.DOC_BODY``
* ``sphinx.ext.imgmath.DOC_BODY_PREVIEW``
* ``sphinx.ext.imgmath.DOC_HEAD``
* ``sphinx.transforms.CitationReferences``
* ``sphinx.transforms.SmartQuotesSkipper``
* ``sphinx.util.docfields.DocFieldTransformer.preprocess_fieldtypes()``
* ``sphinx.util.node.find_source_node()``
* ``sphinx.util.i18n.find_catalog()``
* ``sphinx.util.i18n.find_catalog_files()``
* ``sphinx.util.i18n.find_catalog_source_files()``

For more details, see :ref:`deprecation APIs list &lt;dev-deprecated-apis&gt;`.

Features added
--------------

* Add a helper class ``sphinx.transforms.post_transforms.SphinxPostTransform``
* Add helper methods

- ``PythonDomain.note_module()``
- ``PythonDomain.note_object()``
- ``SphinxDirective.set_source_info()``

* 6180: Support ``--keep-going`` with BuildDoc setup command
* ``math`` directive now supports ``:class:`` option
* todo: ``todo`` directive now supports ``:name:`` option
* Enable override via environment of ``SPHINXOPTS`` and ``SPHINXBUILD`` Makefile
variables (refs: 6232, 6303)
* 6287: autodoc: Unable to document bound instance methods exported as module
functions
* 6289: autodoc: :confval:`autodoc_default_options` now supports
``imported-members`` option
* 4777: autodoc: Support coroutine
* 744: autodoc: Support abstractmethod
* 6325: autodoc: Support attributes in __slots__.  For dict-style __slots__,
autodoc considers values as a docstring of the attribute
* 6361: autodoc: Add :confval:`autodoc_typehints` to suppress typehints from
signature
* 1063: autodoc: ``automodule`` directive now handles undocumented module level
variables
* 6212 autosummary: Add :confval:`autosummary_imported_members` to display
imported members on autosummary
* 6271: ``make clean`` is catastrophically broken if building into &#39;.&#39;
* 6363: Support ``%O%`` environment variable in make.bat
* 4777: py domain: Add ``:async:`` option to :rst:dir:`py:function` directive
* py domain: Add new options to :rst:dir:`py:method` directive

- ``:abstractmethod:``
- ``:async:``
- ``:classmethod:``
- ``:property:``
- ``:staticmethod:``

* rst domain: Add :rst:dir:`directive:option` directive to describe the option
for directive
* 6306: html: Add a label to search form for accessability purposes
* 4390: html: Consistent and semantic CSS for signatures
* 6358: The ``rawsource`` property of ``production`` nodes now contains the
full production rule
* 6373: autosectionlabel: Allow suppression of warnings
* coverage: Support a new ``coverage_ignore_pyobjects`` option
* 6239: latex: Support to build Chinese documents

Bugs fixed
----------

* 6230: Inappropriate node_id has been generated by glossary directive if term
is consisted by non-ASCII characters
* 6213: ifconfig: contents after headings are not shown
* commented term in glossary directive is wrongly recognized
* 6299: rst domain: rst:directive directive generates waste space
* 6379: py domain: Module index (py-modindex.html) has duplicate titles
* 6331: man: invalid output when doctest follows rubric
* 6351: &quot;Hyperlink target is not referenced&quot; message is shown even if
referenced
* 6165: autodoc: ``tab_width`` setting of docutils has been ignored
* 6347: autodoc: crashes with a plain Tuple on Python 3.6 and 3.5
* 6311: autosummary: autosummary table gets confused by complex type hints
* 6350: autosummary: confused by an argument having some kind of default value
* Generated Makefiles lack a final EOL (refs: 6232)
* 6375: extlinks: Cannot escape angle brackets in link caption
* 6378: linkcheck: Send commonly used User-Agent
* 6387: html search: failed to search document with haiku and scrolls themes
* 6408: html search: Fix the ranking of search results
* 6406: Wrong year is returned for ``SOURCE_DATE_EPOCH``
* 6402: image directive crashes by unknown image format
* 6286: C++, allow 8 and 9 in hexadecimal integer literals.
* 6305: Fix the string in quickstart for &#39;path&#39; argument of parser
* LaTeX: Figures in admonitions produced errors (refs: 6364)

2.0.1

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

Bugs fixed
----------

* LaTeX: some system labels are not translated
* RemovedInSphinx30Warning is marked as pending
* deprecation warnings are not emitted

- sphinx.application.CONFIG_FILENAME
- sphinx.builders.htmlhelp
- :confval:`viewcode_import`

* 6208: C++, properly parse full xrefs that happen to have a short xref as
prefix
* 6220, 6225: napoleon: AttributeError is raised for raised section having
references
* 6245: circular import error on importing SerializingHTMLBuilder
* 6243: LaTeX: &#39;releasename&#39; setting for latex_elements is ignored
* 6244: html: Search function is broken with 3rd party themes
* 6263: html: HTML5Translator crashed with invalid field node
* 6262: html theme: The style of field lists has changed in bizstyle theme

2.0.0

* 6196: py domain: unexpected prefix is generated

Testing
--------

2.0.0b2

* Add a helper function: ``sphinx.testing.restructuredtext.parse()``

2.0.0b1

* Stop to use ``SPHINX_TEST_TEMPDIR`` envvar

1.8.5

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

Bugs fixed
----------

* LaTeX: Remove extraneous space after author names on PDF title page (refs:
6004)
* 6026: LaTeX: A cross reference to definition list does not work
* 6046: LaTeX: ``TypeError`` is raised when invalid latex_elements given
* 6067: LaTeX: images having a target are concatenated to next line
* 6067: LaTeX: images having a target are not aligned even if specified
* 6149: LaTeX: ``:index:`` role in titles causes ``Use of \icentercr doesn&#39;t
match its definition`` error on latexpdf build
* 6019: imgconverter: Including multipage PDF fails
* 6047: autodoc: ``autofunction`` emits a warning for method objects
* 6028: graphviz: Ensure the graphviz filenames are reproducible
* 6068: doctest: ``skipif`` option may remove the code block from documentation
* 6136: ``:name:`` option for ``math`` directive causes a crash
* 6139: intersphinx: ValueError on failure reporting
* 6135: changes: Fix UnboundLocalError when any module found
* 3859: manpage: code-block captions are not displayed correctly

1.8.4

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

Bugs fixed
----------

* 3707: latex: no bold checkmark (✔) available.
* 5605: with the documentation language set to Chinese, English words could not
be searched.
* 5889: LaTeX: user ``numfig_format`` is stripped of spaces and may cause
build failure
* C++, fix hyperlinks for declarations involving east cv-qualifiers.
* 5755: C++, fix duplicate declaration error on function templates with
constraints in the return type.
* C++, parse unary right fold expressions and binary fold expressions.
* pycode could not handle egg files on windows
* 5928: KeyError: &#39;DOCUTILSCONFIG&#39; when running build
* 5936: LaTeX: PDF build broken by inclusion of image taller than page height
in an admonition
* 5231: &quot;make html&quot; does not read and build &quot;po&quot; files in &quot;locale&quot; dir
* 5954: ``:scale:`` image option may break PDF build if image in an admonition
* 5966: mathjax has not been loaded on incremental build
* 5960: LaTeX: modified PDF layout since September 2018 TeXLive update of
:file:`parskip.sty`
* 5948: LaTeX: duplicated labels are generated for sections
* 5958: versionadded directive causes crash with Python 3.5.0
* 5995: autodoc: autodoc_mock_imports conflict with metaclass on Python 3.7
* 5871: texinfo: a section title ``.`` is not allowed

1.8.3

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

Features added
--------------

* LaTeX: it is possible to insert custom material to appear on back of title
page, see discussion of ``&#39;maketitle&#39;`` key of :confval:`latex_elements`
(``&#39;manual&#39;`` docclass only)

Bugs fixed
----------

* 5725: mathjax: Use CDN URL for &quot;latest&quot; version by default
* 5460: html search does not work with some 3rd party themes
* 5520: LaTeX, caption package incompatibility since Sphinx 1.6
* 5614: autodoc: incremental build is broken when builtin modules are imported
* 5627: qthelp: index.html missing in QtHelp
* 5659: linkcheck: crashes for a hyperlink containing multibyte character
* 5754: DOC: Fix some mistakes in :doc:`/latex`
* 5810: LaTeX: sphinxVerbatim requires explicit &quot;hllines&quot; set-up since 1.6.6
(refs: 1238)
* 5636: C++, fix parsing of floating point literals.
* 5496 (again): C++, fix assertion in partial builds with duplicates.
* 5724: quickstart: sphinx-quickstart fails when $LC_ALL is empty
* 1956: Default conf.py is not PEP8-compliant
* 5849: LaTeX: document class ``\maketitle`` is overwritten with no
possibility to use original meaning in place of Sphinx custom one
* 5834: apidoc: wrong help for ``--tocfile``
* 5800: todo: crashed if todo is defined in TextElement
* 5846: htmlhelp: convert hex escaping to decimal escaping in .hhc/.hhk files
* htmlhelp: broken .hhk file generated when title contains a double quote

1.8.2

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

Incompatible changes
--------------------

* 5497: Do not include MathJax.js and jsmath.js unless it is really needed

Features added
--------------

* 5471: Show appropriate deprecation warnings

Bugs fixed
----------

* 5490: latex: enumerated list causes a crash with recommonmark
* 5492: sphinx-build fails to build docs w/ Python &lt; 3.5.2
* 3704: latex: wrong ``\label`` positioning for figures with a legend
* 5496: C++, fix assertion when a symbol is declared more than twice.
* 5493: gettext: crashed with broken template
* 5495: csv-table directive with file option in included file is broken (refs:
4821)
* 5498: autodoc: unable to find type hints for a ``functools.partial``
* 5480: autodoc: unable to find type hints for unresolvable Forward references
* 5419: incompatible math_block node has been generated
* 5548: Fix ensuredir() in case of pre-existing file
* 5549: graphviz Correctly deal with non-existing static dir
* 3002: i18n: multiple footnote_references referring same footnote cause
duplicated node_ids
* 5563: latex: footnote_references generated by extension causes a LaTeX
builder crash
* 5561: make all-pdf fails with old xindy version
* 5557: quickstart: --no-batchfile isn&#39;t honored
* 3080: texinfo: multiline rubrics are broken
* 3080: texinfo: multiline citations are broken

1.8.1

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

Incompatible changes
--------------------

* LaTeX ``\pagestyle`` commands have been moved to the LaTeX template. No
changes in PDF, except possibly if ``\sphinxtableofcontents``, which
contained them, had been customized in :file:`conf.py`. (refs: 5455)

Bugs fixed
----------

* 5418: Incorrect default path for sphinx-build -d/doctrees files
* 5421: autodoc emits deprecation warning for :confval:`autodoc_default_flags`
* 5422: lambda object causes PicklingError on storing environment
* 5417: Sphinx fails to build with syntax error in Python 2.7.5
* 4911: add latexpdf to make.bat for non make-mode
* 5436: Autodoc does not work with enum subclasses with properties/methods
* 5437: autodoc: crashed on modules importing eggs
* 5433: latex: ImportError: cannot import name &#39;DEFAULT_SETTINGS&#39;
* 5431: autodoc: ``autofunction`` emits a warning for callable objects
* 5457: Fix TypeError in error message when override is prohibited
* 5453: PDF builds of &#39;howto&#39; documents have no page numbers
* 5463: mathbase: math_role and MathDirective was disappeared in 1.8.0
* 5454: latex: Index has disappeared from PDF for Japanese documents
* 5432: py domain: ``:type:`` field can&#39;t process ``:term:`` references
* 5426: py domain: TypeError has been raised for class attribute

1.8.0

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

Dependencies
------------

1.8.0b2

* html: search box overrides to other elements if scrolled
* i18n: warnings for translation catalogs have wrong line numbers (refs: 5321)
* 5325: latex: cross references has been broken by multiply labeled objects
* C++, fixes for symbol addition and lookup. Lookup should no longer break
in partial builds. See also 5337.
* 5348: download reference to remote file is not displayed
* 5282: html theme: ``pygments_style`` of theme was overridden by ``conf.py``
by default
* 4379: toctree shows confusing warning when document is excluded
* 2401: autodoc: ``:members:`` causes ``:special-members:`` not to be shown
* autodoc: ImportError is replaced by AttributeError for deeper module
* 2720, 4034: Incorrect links with ``:download:``, duplicate names, and
parallel builds
* 5290: autodoc: failed to analyze source code in egg package
* 5399: Sphinx crashes if unknown po file exists

1.8.0b1

* 5083: Fix wrong make.bat option for internationalization.
* 5115: napoleon: add admonitions added by 4613 to the docs.

1.7.9

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

Features added
--------------

* 5359: Make generated texinfo files reproducible by sorting the anchors

Bugs fixed
----------

* 5361: crashed on incremental build if document uses include directive

1.7.8

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

Incompatible changes
--------------------

* The type of ``env.included`` has been changed to dict of set

Bugs fixed
----------

* 5320: intersphinx: crashed if invalid url given
* 5326: manpage: crashed when invalid docname is specified as ``man_pages``
* 5322: autodoc: ``Any`` typehint causes formatting error
* 5327: &quot;document isn&#39;t included in any toctree&quot; warning on rebuild with
generated files
* 5335: quickstart: escape sequence has been displayed with MacPorts&#39; python

1.7.7

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

Bugs fixed
----------

* 5198: document not in toctree warning when including files only for parallel
builds
* LaTeX: reduce &quot;Token not allowed in a PDF string&quot; hyperref warnings in latex
console output (refs: 5236)
* LaTeX: suppress &quot;remreset Warning: The remreset package is obsolete&quot; in latex
console output with recent LaTeX (refs: 5237)
* 5234: PDF output: usage of PAPER environment variable is broken since Sphinx
1.5
* LaTeX: fix the :confval:`latex_engine` documentation regarding Latin Modern
font with XeLaTeX/LuaLateX (refs: 5251)
* 5280: autodoc: Fix wrong type annotations for complex typing
* autodoc: Optional types are wrongly rendered
* 5291: autodoc crashed by ForwardRef types
* 5211: autodoc: No docs generated for functools.partial functions
* 5306: autodoc: ``getargspec()`` raises NameError for invalid typehints
* 5298: imgmath: math_number_all causes equations to have two numbers in html
* 5294: sphinx-quickstart blank prompts in PowerShell

1.7.6

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

Bugs fixed
----------

* 5037: LaTeX ``\sphinxupquote{}`` breaks in Russian
* sphinx.testing uses deprecated pytest API; ``Node.get_marker(name)``
* 5016: crashed when recommonmark.AutoStrictify is enabled
* 5022: latex: crashed with docutils package provided by Debian/Ubuntu
* 5009: latex: a label for table is vanished if table does not have a caption
* 5048: crashed with numbered toctree
* 2410: C, render empty argument lists for macros.
* C++, fix lookup of full template specializations with no template arguments.
* 4667: C++, fix assertion on missing references in global scope when using
intersphinx. Thanks to Alan M. Carroll.
* 5019: autodoc: crashed by Form Feed Character
* 5032: autodoc: loses the first staticmethod parameter for old styled classes
* 5036: quickstart: Typing Ctrl-U clears the whole of line
* 5066: html: &quot;relations&quot; sidebar is not shown by default
* 5091: latex: curly braces in index entries are not handled correctly
* 5070: epub: Wrong internal href fragment links
* 5104: apidoc: Interface of ``sphinx.apidoc:main()`` has changed
* 4272: PDF builds of French projects have issues with XeTeX
* 5076: napoleon raises RuntimeError with python 3.7
* 5125: sphinx-build: Interface of ``sphinx:main()`` has changed
* sphinx-build: ``sphinx.cmd.build.main()`` refers ``sys.argv`` instead of given
argument
* 5146: autosummary: warning is emitted when the first line of docstring ends
with literal notation
* autosummary: warnings of autosummary indicates wrong location (refs: 5146)
* 5143: autodoc: crashed on inspecting dict like object which does not support
sorting
* 5139: autodoc: Enum argument missing if it shares value with another
* 4946: py domain: rtype field could not handle &quot;None&quot; as a type
* 5176: LaTeX: indexing of terms containing `, ``!``, or ``&quot;`` fails
* 5161: html: crashes if copying static files are failed
* 5167: autodoc: Fix formatting type annotations for tuples with more than two
arguments
* 3329: i18n: crashed by auto-symbol footnote references
* 5158: autosummary: module summary has been broken when it starts with heading

1.7.5

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

Bugs fixed
----------

* 4924: html search: Upper characters problem in any other languages
* 4932: apidoc: some subpackage is ignored if sibling subpackage contains a
module starting with underscore
* 4863, 4938, 4939: i18n doesn&#39;t handle correctly node.title as used for
contents, topic, admonition, table and section.
* 4913: i18n: literal blocks in bullet list are not translated
* 4962: C++, raised TypeError on duplicate declaration.
* 4825: C++, properly parse expr roles and give better error messages when
(escaped) line breaks are present.
* C++, properly use ``desc_addname`` nodes for prefixes of names.
* C++, parse pack expansions in function calls.
* 4915, 4916: links on search page are broken when using dirhtml builder
* 4969: autodoc: constructor method should not have return annotation
* latex: deeply nested enumerated list which is beginning with non-1 causes
LaTeX engine crashed
* 4978: latex: shorthandoff is not set up for Brazil locale
* 4928: i18n: Ignore dot-directories like .git/ in LC_MESSAGES/
* 4946: py domain: type field could not handle &quot;None&quot; as a type
* 4979: latex: Incorrect escaping of curly braces in index entries
* 4956: autodoc: Failed to extract document from a subclass of the class on
mocked module
* 4973: latex: glossary directive adds whitespace to each item
* 4980: latex: Explicit labels on code blocks are duplicated
* 4919: node.asdom() crashes if toctree has :numbered: option
* 4914: autodoc: Parsing error when using dataclasses without default values
* 4931: autodoc: crashed when handler for autodoc-skip-member raises an error
* 4931: autodoc: crashed when subclass of mocked class are processed by
napoleon module
* 5007: sphinx-build crashes when error log contains a &quot;%&quot; character

1.7.4

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

Bugs fixed
----------

* 4885, 4887: domains: Crashed with duplicated objects
* 4889: latex: sphinx.writers.latex causes recursive import

1.7.3

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

Bugs fixed
----------

* 4769: autodoc loses the first staticmethod parameter
* 4790: autosummary: too wide two column tables in PDF builds
* 4795: Latex customization via ``_templates/longtable.tex_t`` is broken
* 4789: imgconverter: confused by convert.exe of Windows
* 4783: On windows, Sphinx crashed when drives of srcdir and outdir are
different
* 4812: autodoc ignores type annotated variables
* 4817: wrong URLs on warning messages
* 4784: latex: :confval:`latex_show_urls` assigns incorrect footnote numbers if
hyperlinks exists inside substitutions
* 4837: latex with class memoir Error: Font command ``\sf`` is not supported
* 4803: latex: too slow in proportion to number of auto numbered footnotes
* 4838: htmlhelp: The entries in .hhp file is not ordered
* toctree directive tries to glob for URL having query_string
* 4871: html search: Upper characters problem in German
* 4717: latex: Compilation for German docs failed with LuaLaTeX and XeLaTeX
* 4459: duplicated labels detector does not work well in parallel build
* 4878: Crashed with extension which returns invalid metadata

1.7.2

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

Incompatible changes
--------------------
* 4520: apidoc: folders with an empty __init__.py are no longer excluded from
TOC

Bugs fixed
----------

* 4669: sphinx.build_main and sphinx.make_main throw NameError
* 4685: autosummary emits meaningless warnings
* autodoc: crashed when invalid options given
* pydomain: always strip parenthesis if empty (refs: 1042)
* 4689: autosummary: unexpectedly strips docstrings containing &quot;i.e.&quot;
* 4701: viewcode: Misplaced ``&lt;div&gt;`` in viewcode html output
* 4444: Don&#39;t require numfig to use :numref: on sections
* 4727: Option clash for package textcomp
* 4725: Sphinx does not work with python 3.5.0 and 3.5.1
* 4716: Generation PDF file with TexLive on Windows, file not found error
* 4574: vertical space before equation in latex
* 4720: message when an image is mismatched for builder is not clear
* 4655, 4684: Incomplete localization strings in Polish and Chinese
* 2286: Sphinx crashes when error is happens in rendering HTML pages
* 4688: Error to download remote images having long URL
* 4754: sphinx/pycode/__init__.py raises AttributeError
* 1435: qthelp builder should htmlescape keywords
* epub: Fix docTitle elements of toc.ncx is not escaped
* 4520: apidoc: Subpackage not in toc (introduced in 1.6.6) now fixed
* 4767: html: search highlighting breaks mathjax equations

1.7.1

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

Deprecated
----------

* 4623: ``sphinx.build_main()`` is deprecated.
* autosummary: The interface of ``sphinx.ext.autosummary.get_documenter()`` has
been changed (Since 1.7.0)
* 4664: ``sphinx.ext.intersphinx.debug()`` is deprecated.

For more details, see `deprecation APIs list
&lt;http://www.sphinx-doc.org/en/master/extdev/index.htmldeprecated-apis&gt;`_

Bugs fixed
----------

* 4608: epub: Invalid meta tag is generated
* 4260: autodoc: keyword only argument separator is not disappeared if it is
appeared at top of the argument list
* 4622: epub: :confval:`epub_scheme` does not effect to content.opf
* 4627: graphviz: Fit graphviz images to page
* 4617: quickstart: PROJECT_DIR argument is required
* 4623: sphinx.build_main no longer exists in 1.7.0
* 4615: The argument of ``sphinx.build`` has been changed in 1.7.0
* autosummary: The interface of ``sphinx.ext.autosummary.get_documenter()`` has
been changed
* 4630: Have order on msgids in sphinx.pot deterministic
* 4563: autosummary: Incorrect end of line punctuation detection
* 4577: Enumerated sublists with explicit start with wrong number
* 4641: A external link in TOC cannot contain &quot;?&quot; with ``:glob:`` option
* C++, add missing parsing of explicit casts and typeid in expression parsing.
* C++, add missing parsing of ``this`` in expression parsing.
* 4655: Fix incomplete localization strings in Polish
* 4653: Fix error reporting for parameterless ImportErrors
* 4664: Reading objects.inv fails again
* 4662: ``any`` refs with ``term`` targets crash when an ambiguity is
encountered

1.7.0

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

Dependencies
------------

1.7.0b3

* 4019: inheritance_diagram AttributeError stopping make process
* 4531: autosummary: methods are not treated as attributes
* 4538: autodoc: ``sphinx.ext.autodoc.Options`` has been moved
* 4539: autodoc emits warnings for partialmethods
* 4223: doctest: failing tests reported in wrong file, at wrong line
* i18n: message catalogs are not compiled if specific filenames are given for
``sphinx-build`` as arguments (refs: 4560)
* 4027: sphinx.ext.autosectionlabel now expects labels to be the same as they
are in the raw source; no smart quotes, nothig fancy.
* 4581: apidoc: Excluded modules still includ
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin coverage to latest version 5.3

This PR pins coverage to the latest release 5.3.

<details> <summary>Changelog</summary>

5.3

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

- The ``source`` setting has always been interpreted as either a file path or a
module, depending on which existed.  If both interpretations were valid, it
was assumed to be a file path.  The new ``source_pkgs`` setting can be used
to name a package to disambiguate this case.  Thanks, Thomas Grainger. Fixes
`issue 268`_.

- If a plugin was disabled due to an exception, we used to still try to record
its information, causing an exception, as reported in `issue 1011`_.  This is
now fixed.

.. _issue 268: https://github.com/nedbat/coveragepy/issues/268
.. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011


.. _changes_521:

5.2.1

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

- The dark mode HTML report still used light colors for the context listing,
making them unreadable (`issue 1009`_).  This is now fixed.

- The time stamp on the HTML report now includes the time zone. Thanks, Xie
Yanbo (`pull request 960`_).

.. _pull request 960: https://github.com/nedbat/coveragepy/pull/960
.. _issue 1009: https://github.com/nedbat/coveragepy/issues/1009


.. _changes_52:

5.2

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

- The HTML report has been redesigned by Vince Salvino.  There is now a dark
mode, the code text is larger, and system sans serif fonts are used, in
addition to other small changes (`issue 858`_ and `pull request 931`_).

- The ``coverage report`` and ``coverage html`` commands now accept a
``--precision`` option to control the number of decimal points displayed.
Thanks, Teake Nutma (`pull request 982`_).

- The ``coverage report`` and ``coverage html`` commands now accept a
``--no-skip-covered`` option to negate ``--skip-covered``.  Thanks, Anthony
Sottile (`issue 779`_ and `pull request 932`_).

- The ``--skip-empty`` option is now available for the XML report, closing
`issue 976`_.

- The ``coverage report`` command now accepts a ``--sort`` option to specify
how to sort the results.  Thanks, Jerin Peter George (`pull request 1005`_).

- If coverage fails due to the coverage total not reaching the ``--fail-under``
value, it will now print a message making the condition clear.  Thanks,
Naveen Yadav (`pull request 977`_).

- TOML configuration files with non-ASCII characters would cause errors on
Windows (`issue 990`_).  This is now fixed.

- The output of ``--debug=trace`` now includes information about how the
``--source`` option is being interpreted, and the module names being
considered.

.. _pull request 931: https://github.com/nedbat/coveragepy/pull/931
.. _pull request 932: https://github.com/nedbat/coveragepy/pull/932
.. _pull request 977: https://github.com/nedbat/coveragepy/pull/977
.. _pull request 982: https://github.com/nedbat/coveragepy/pull/982
.. _pull request 1005: https://github.com/nedbat/coveragepy/pull/1005
.. _issue 779: https://github.com/nedbat/coveragepy/issues/779
.. _issue 858: https://github.com/nedbat/coveragepy/issues/858
.. _issue 976: https://github.com/nedbat/coveragepy/issues/976
.. _issue 990: https://github.com/nedbat/coveragepy/issues/990


.. _changes_51:

5.1

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

- The JSON report now includes counts of covered and missing branches. Thanks,
Salvatore Zagaria.

- On Python 3.8, try-finally-return reported wrong branch coverage with
decorated async functions (`issue 964`_).  This is now fixed. Thanks, Kjell
Braden.

- The :meth:`~coverage.Coverage.get_option` and
:meth:`~coverage.Coverage.set_option` methods can now manipulate the
``[paths]`` configuration setting.  Thanks to Bernát Gábor for the fix for
`issue 967`_.

.. _issue 964: https://github.com/nedbat/coveragepy/issues/964
.. _issue 967: https://github.com/nedbat/coveragepy/issues/967


.. _changes_504:

5.0.4

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

- If using the ``[run] relative_files`` setting, the XML report will use
relative files in the ``&lt;source&gt;`` elements indicating the location of source
code.  Closes `issue 948`_.

- The textual summary report could report missing lines with negative line
numbers on PyPy3 7.1 (`issue 943`_).  This is now fixed.

- Windows wheels for Python 3.8 were incorrectly built, but are now fixed.
(`issue 949`_)

- Updated Python 3.9 support to 3.9a4.

- HTML reports couldn&#39;t be sorted if localStorage wasn&#39;t available. This is now
fixed: sorting works even though the sorting setting isn&#39;t retained. (`issue
944`_ and `pull request 945`_). Thanks, Abdeali Kothari.

.. _issue 943: https://github.com/nedbat/coveragepy/issues/943
.. _issue 944: https://github.com/nedbat/coveragepy/issues/944
.. _pull request 945: https://github.com/nedbat/coveragepy/pull/945
.. _issue 948: https://github.com/nedbat/coveragepy/issues/948
.. _issue 949: https://github.com/nedbat/coveragepy/issues/949


.. _changes_503:

5.0.3

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

- A performance improvement in 5.0.2 didn&#39;t work for test suites that changed
directory before combining data, causing &quot;Couldn&#39;t use data file: no such
table: meta&quot; errors (`issue 916`_).  This is now fixed.

- Coverage could fail to run your program with some form of &quot;ModuleNotFound&quot; or
&quot;ImportError&quot; trying to import from the current directory. This would happen
if coverage had been packaged into a zip file (for example, on Windows), or
was found indirectly (for example, by pyenv-virtualenv).  A number of
different scenarios were described in `issue 862`_ which is now fixed.  Huge
thanks to Agbonze O. Jeremiah for reporting it, and Alexander Waters and
George-Cristian Bîrzan for protracted debugging sessions.

- Added the &quot;premain&quot; debug option.

- Added SQLite compile-time options to the &quot;debug sys&quot; output.

.. _issue 862: https://github.com/nedbat/coveragepy/issues/862
.. _issue 916: https://github.com/nedbat/coveragepy/issues/916


.. _changes_502:

5.0.2

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

- Programs that used multiprocessing and changed directories would fail under
coverage.  This is now fixed (`issue 890`_).  A side effect is that debug
information about the config files read now shows absolute paths to the
files.

- When running programs as modules (``coverage run -m``) with ``--source``,
some measured modules were imported before coverage starts.  This resulted in
unwanted warnings (&quot;Already imported a file that will be measured&quot;) and a
reduction in coverage totals (`issue 909`_).  This is now fixed.

- If no data was collected, an exception about &quot;No data to report&quot; could happen
instead of a 0% report being created (`issue 884`_).  This is now fixed.

- The handling of source files with non-encodable file names has changed.
Previously, if a file name could not be encoded as UTF-8, an error occurred,
as described in `issue 891`_.  Now, those files will not be measured, since
their data would not be recordable.

- A new warning (&quot;dynamic-conflict&quot;) is issued if two mechanisms are trying to
change the dynamic context.  Closes `issue 901`_.

- ``coverage run --debug=sys`` would fail with an AttributeError. This is now
fixed (`issue 907`_).

.. _issue 884: https://github.com/nedbat/coveragepy/issues/884
.. _issue 890: https://github.com/nedbat/coveragepy/issues/890
.. _issue 891: https://github.com/nedbat/coveragepy/issues/891
.. _issue 901: https://github.com/nedbat/coveragepy/issues/901
.. _issue 907: https://github.com/nedbat/coveragepy/issues/907
.. _issue 909: https://github.com/nedbat/coveragepy/issues/909


.. _changes_501:

5.0.1

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

- If a 4.x data file is the cause of a &quot;file is not a database&quot; error, then use
a more specific error message, &quot;Looks like a coverage 4.x data file, are you
mixing versions of coverage?&quot;  Helps diagnose the problems described in
`issue 886`_.

- Measurement contexts and relative file names didn&#39;t work together, as
reported in `issue 899`_ and `issue 900`_.  This is now fixed, thanks to
David Szotten.

- When using ``coverage run --concurrency=multiprocessing``, all data files
should be named with parallel-ready suffixes.  5.0 mistakenly named the main
process&#39; file with no suffix when using ``--append``.  This is now fixed,
closing `issue 880`_.

- Fixed a problem on Windows when the current directory is changed to a
different drive (`issue 895`_).  Thanks, Olivier Grisel.

- Updated Python 3.9 support to 3.9a2.

.. _issue 880: https://github.com/nedbat/coveragepy/issues/880
.. _issue 886: https://github.com/nedbat/coveragepy/issues/886
.. _issue 895: https://github.com/nedbat/coveragepy/issues/895
.. _issue 899: https://github.com/nedbat/coveragepy/issues/899
.. _issue 900: https://github.com/nedbat/coveragepy/issues/900


.. _changes_50:

5.0

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

Nothing new beyond 5.0b2.


.. _changes_50b2:

5.0b2

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

- An experimental ``[run] relative_files`` setting tells coverage to store
relative file names in the data file. This makes it easier to run tests in
one (or many) environments, and then report in another.  It has not had much
real-world testing, so it may change in incompatible ways in the future.

- When constructing a :class:`coverage.Coverage` object, `data_file` can be
specified as None to prevent writing any data file at all.  In previous
versions, an explicit `data_file=None` argument would use the default of
&quot;.coverage&quot;. Fixes `issue 871`_.

- Python files run with ``-m`` now have ``__spec__`` defined properly.  This
fixes `issue 745`_ (about not being able to run unittest tests that spawn
subprocesses), and `issue 838`_, which described the problem directly.

- The ``[paths]`` configuration section is now ordered. If you specify more
than one list of patterns, the first one that matches will be used.  Fixes
`issue 649`_.

- The :func:`.coverage.numbits.register_sqlite_functions` function now also
registers `numbits_to_nums` for use in SQLite queries.  Thanks, Simon
Willison.

- Python 3.9a1 is supported.

- Coverage.py has a mascot: :ref:`Sleepy Snake &lt;sleepy&gt;`.

.. _issue 649: https://github.com/nedbat/coveragepy/issues/649
.. _issue 745: https://github.com/nedbat/coveragepy/issues/745
.. _issue 838: https://github.com/nedbat/coveragepy/issues/838
.. _issue 871: https://github.com/nedbat/coveragepy/issues/871


.. _changes_50b1:

5.0b1

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

- The HTML and textual reports now have a ``--skip-empty`` option that skips
files with no statements, notably ``__init__.py`` files.  Thanks, Reya B.

- Configuration can now be read from `TOML`_ files.  This requires installing
coverage.py with the ``[toml]`` extra.  The standard &quot;pyproject.toml&quot; file
will be read automatically if no other configuration file is found, with
settings in the ``[tool.coverage.]`` namespace.  Thanks to Frazer McLean for
implementation and persistence.  Finishes `issue 664`_.

- The ``[run] note`` setting has been deprecated. Using it will result in a
warning, and the note will not be written to the data file.  The
corresponding :class:`.CoverageData` methods have been removed.

- The HTML report has been reimplemented (no more table around the source
code). This allowed for a better presentation of the context information,
hopefully resolving `issue 855`_.

- Added sqlite3 module version information to ``coverage debug sys`` output.

- Asking the HTML report to show contexts (``[html] show_contexts=True`` or
``coverage html --show-contexts``) will issue a warning if there were no
contexts measured (`issue 851`_).

.. _TOML: https://github.com/toml-lang/tomlreadme
.. _issue 664: https://github.com/nedbat/coveragepy/issues/664
.. _issue 851: https://github.com/nedbat/coveragepy/issues/851
.. _issue 855: https://github.com/nedbat/coveragepy/issues/855


.. _changes_50a8:

5.0a8

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

- The :class:`.CoverageData` API has changed how queries are limited to
specific contexts.  Now you use :meth:`.CoverageData.set_query_context` to
set a single exact-match string, or :meth:`.CoverageData.set_query_contexts`
to set a list of regular expressions to match contexts.  This changes the
command-line ``--contexts`` option to use regular expressions instead of
filename-style wildcards.


.. _changes_50a7:

5.0a7

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

- Data can now be &quot;reported&quot; in JSON format, for programmatic use, as requested
in `issue 720`_.  The new ``coverage json`` command writes raw and summarized
data to a JSON file.  Thanks, Matt Bachmann.

- Dynamic contexts are now supported in the Python tracer, which is important
for PyPy users.  Closes `issue 846`_.

- The compact line number representation introduced in 5.0a6 is called a
&quot;numbits.&quot;  The :mod:`coverage.numbits` module provides functions for working
with them.

- The reporting methods used to permanently apply their arguments to the
configuration of the Coverage object.  Now they no longer do.  The arguments
affect the operation of the method, but do not persist.

- A class named &quot;test_something&quot; no longer confuses the ``test_function``
dynamic context setting.  Fixes `issue 829`_.

- Fixed an unusual tokenizing issue with backslashes in comments.  Fixes
`issue 822`_.

- ``debug=plugin`` didn&#39;t properly support configuration or dynamic context
plugins, but now it does, closing `issue 834`_.

.. _issue 720: https://github.com/nedbat/coveragepy/issues/720
.. _issue 822: https://github.com/nedbat/coveragepy/issues/822
.. _issue 834: https://github.com/nedbat/coveragepy/issues/834
.. _issue 829: https://github.com/nedbat/coveragepy/issues/829
.. _issue 846: https://github.com/nedbat/coveragepy/issues/846


.. _changes_50a6:

5.0a6

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

- Reporting on contexts. Big thanks to Stephan Richter and Albertas Agejevas
for the contribution.

- The ``--contexts`` option is available on the ``report`` and ``html``
 commands.  It&#39;s a comma-separated list of shell-style wildcards, selecting
 the contexts to report on.  Only contexts matching one of the wildcards
 will be included in the report.

- The ``--show-contexts`` option for the ``html`` command adds context
 information to each covered line.  Hovering over the &quot;ctx&quot; marker at the
 end of the line reveals a list of the contexts that covered the line.

- Database changes:

- Line numbers are now stored in a much more compact way.  For each file and
 context, a single binary string is stored with a bit per line number.  This
 greatly improves memory use, but makes ad-hoc use difficult.

- Dynamic contexts with no data are no longer written to the database.

- SQLite data storage is now faster.  There&#39;s no longer a reason to keep the
 JSON data file code, so it has been removed.

- Changes to the :class:`.CoverageData` interface:

- The new :meth:`.CoverageData.dumps` method serializes the data to a string,
 and a corresponding :meth:`.CoverageData.loads` method reconstitutes this
 data.  The format of the data string is subject to change at any time, and
 so should only be used between two installations of the same version of
 coverage.py.

- The :meth:`CoverageData constructor&lt;.CoverageData.__init__&gt;` has a new
 argument, `no_disk` (default: False).  Setting it to True prevents writing
 any data to the disk.  This is useful for transient data objects.

- Added the classmethod :meth:`.Coverage.current` to get the latest started
Coverage instance.

- Multiprocessing support in Python 3.8 was broken, but is now fixed.  Closes
`issue 828`_.

- Error handling during reporting has changed slightly.  All reporting methods
now behave the same.  The ``--ignore-errors`` option keeps errors from
stopping the reporting, but files that couldn&#39;t parse as Python will always
be reported as warnings.  As with other warnings, you can suppress them with
the ``[run] disable_warnings`` configuration setting.

- Coverage.py no longer fails if the user program deletes its current
directory. Fixes `issue 806`_.  Thanks, Dan Hemberger.

- The scrollbar markers in the HTML report now accurately show the highlighted
lines, regardless of what categories of line are highlighted.

- The hack to accommodate ShiningPanda_ looking for an obsolete internal data
file has been removed, since ShiningPanda 0.22 fixed it four years ago.

- The deprecated `Reporter.file_reporters` property has been removed.

.. _ShiningPanda: https://wiki.jenkins.io/display/JENKINS/ShiningPanda+Plugin
.. _issue 806: https://github.com/nedbat/coveragepy/pull/806
.. _issue 828: https://github.com/nedbat/coveragepy/issues/828


.. _changes_50a5:

5.0a5

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

- Drop support for Python 3.4

- Dynamic contexts can now be set two new ways, both thanks to Justas
Sadzevičius.

- A plugin can implement a ``dynamic_context`` method to check frames for
 whether a new context should be started.  See
 :ref:`dynamic_context_plugins` for more details.

- Another tool (such as a test runner) can use the new
 :meth:`.Coverage.switch_context` method to explicitly change the context.

- The ``dynamic_context = test_function`` setting now works with Python 2
old-style classes, though it only reports the method name, not the class it
was defined on.  Closes `issue 797`_.

- ``fail_under`` values more than 100 are reported as errors.  Thanks to Mike
Fiedler for closing `issue 746`_.

- The &quot;missing&quot; values in the text output are now sorted by line number, so
that missing branches are reported near the other lines they affect. The
values used to show all missing lines, and then all missing branches.

- Access to the SQLite database used for data storage is now thread-safe.
Thanks, Stephan Richter. This closes `issue 702`_.

- Combining data stored in SQLite is now about twice as fast, fixing `issue
761`_.  Thanks, Stephan Richter.

- The ``filename`` attribute on :class:`.CoverageData` objects has been made
private.  You can use the ``data_filename`` method to get the actual file
name being used to store data, and the ``base_filename`` method to get the
original filename before parallelizing suffixes were added.  This is part of
fixing `issue 708`_.

- Line numbers in the HTML report now align properly with source lines, even
when Chrome&#39;s minimum font size is set, fixing `issue 748`_.  Thanks Wen Ye.

.. _issue 702: https://github.com/nedbat/coveragepy/issues/702
.. _issue 708: https://github.com/nedbat/coveragepy/issues/708
.. _issue 746: https://github.com/nedbat/coveragepy/issues/746
.. _issue 748: https://github.com/nedbat/coveragepy/issues/748
.. _issue 761: https://github.com/nedbat/coveragepy/issues/761
.. _issue 797: https://github.com/nedbat/coveragepy/issues/797


.. _changes_50a4:

5.0a4

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

- You can specify the command line to run your program with the ``[run]
command_line`` configuration setting, as requested in `issue 695`_.

- Coverage will create directories as needed for the data file if they don&#39;t
exist, closing `issue 721`_.

- The ``coverage run`` command has always adjusted the first entry in sys.path,
to properly emulate how Python runs your program.  Now this adjustment is
skipped if sys.path[0] is already different than Python&#39;s default.  This
fixes `issue 715`_.

- Improvements to context support:

- The &quot;no such table: meta&quot; error is fixed.: `issue 716`_.

- Combining data files is now much faster.

- Python 3.8 (as of today!) passes all tests.

.. _issue 695: https://github.com/nedbat/coveragepy/issues/695
.. _issue 715: https://github.com/nedbat/coveragepy/issues/715
.. _issue 716: https://github.com/nedbat/coveragepy/issues/716
.. _issue 721: https://github.com/nedbat/coveragepy/issues/721


.. _changes_50a3:

5.0a3

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

- Context support: static contexts let you specify a label for a coverage run,
which is recorded in the data, and retained when you combine files.  See
:ref:`contexts` for more information.

- Dynamic contexts: specifying ``[run] dynamic_context = test_function`` in the
config file will record the test function name as a dynamic context during
execution.  This is the core of &quot;Who Tests What&quot; (`issue 170`_).  Things to
note:

- There is no reporting support yet.  Use SQLite to query the .coverage file
 for information.  Ideas are welcome about how reporting could be extended
 to use this data.

- There&#39;s a noticeable slow-down before any test is run.

- Data files will now be roughly N times larger, where N is the number of
 tests you have.  Combining data files is therefore also N times slower.

- No other values for ``dynamic_context`` are recognized yet.  Let me know
 what else would be useful.  I&#39;d like to use a pytest plugin to get better
 information directly from pytest, for example.

.. _issue 170: https://github.com/nedbat/coveragepy/issues/170

- Environment variable substitution in configuration files now supports two
syntaxes for controlling the behavior of undefined variables: if ``VARNAME``
is not defined, ``${VARNAME?}`` will raise an error, and ``${VARNAME-default
value}`` will use &quot;default value&quot;.

- Partial support for Python 3.8, which has not yet released an alpha. Fixes
`issue 707`_ and `issue 714`_.

.. _issue 707: https://github.com/nedbat/coveragepy/issues/707
.. _issue 714: https://github.com/nedbat/coveragepy/issues/714


.. _changes_50a2:

5.0a2

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

- Coverage&#39;s data storage has changed.  In version 4.x, .coverage files were
basically JSON.  Now, they are SQLite databases.  This means the data file
can be created earlier than it used to.  A large amount of code was
refactored to support this change.

- Because the data file is created differently than previous releases, you
 may need ``parallel=true`` where you didn&#39;t before.

- The old data format is still available (for now) by setting the environment
 variable COVERAGE_STORAGE=json. Please tell me if you think you need to
 keep the JSON format.

- The database schema is guaranteed to change in the future, to support new
 features.  I&#39;m looking for opinions about making the schema part of the
 public API to coverage.py or not.

- Development moved from `Bitbucket`_ to `GitHub`_.

- HTML files no longer have trailing and extra whitespace.

- The sort order in the HTML report is stored in local storage rather than
cookies, closing `issue 611`_.  Thanks, Federico Bond.

- pickle2json, for converting v3 data files to v4 data files, has been removed.

.. _Bitbucket: https://bitbucket.org
.. _GitHub: https://github.com/nedbat/coveragepy

.. _issue 611: https://github.com/nedbat/coveragepy/issues/611


.. _changes_50a1:

5.0a1

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

- Coverage.py no longer supports Python 2.6 or 3.3.

- The location of the configuration file can now be specified with a
``COVERAGE_RCFILE`` environment variable, as requested in `issue 650`_.

- Namespace packages are supported on Python 3.7, where they used to cause
TypeErrors about path being None. Fixes `issue 700`_.

- A new warning (``already-imported``) is issued if measurable files have
already been imported before coverage.py started measurement.  See
:ref:`cmd_warnings` for more information.

- Running coverage many times for small runs in a single process should be
faster, closing `issue 625`_.  Thanks, David MacIver.

- Large HTML report pages load faster.  Thanks, Pankaj Pandey.

.. _issue 625: https://github.com/nedbat/coveragepy/issues/625
.. _issue 650: https://github.com/nedbat/coveragepy/issues/650
.. _issue 700: https://github.com/nedbat/coveragepy/issues/700


.. _changes_454:

4.5.4

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

- Multiprocessing support in Python 3.8 was broken, but is now fixed.  Closes
`issue 828`_.

.. _issue 828: https://github.com/nedbat/coveragepy/issues/828


.. _changes_453:

4.5.3

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

- Only packaging metadata changes.


.. _changes_452:

4.5.2

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

- Namespace packages are supported on Python 3.7, where they used to cause
TypeErrors about path being None. Fixes `issue 700`_.

- Python 3.8 (as of today!) passes all tests.  Fixes `issue 707`_ and
`issue 714`_.

- Development moved from `Bitbucket`_ to `GitHub`_.

.. _issue 700: https://github.com/nedbat/coveragepy/issues/700
.. _issue 707: https://github.com/nedbat/coveragepy/issues/707
.. _issue 714: https://github.com/nedbat/coveragepy/issues/714

.. _Bitbucket: https://bitbucket.org
.. _GitHub: https://github.com/nedbat/coveragepy


.. _changes_451:

4.5.1

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

- Now that 4.5 properly separated the ``[run] omit`` and ``[report] omit``
settings, an old bug has become apparent.  If you specified a package name
for ``[run] source``, then omit patterns weren&#39;t matched inside that package.
This bug (`issue 638`_) is now fixed.

- On Python 3.7, reporting about a decorated function with no body other than a
docstring would crash coverage.py with an IndexError (`issue 640`_).  This is
now fixed.

- Configurer plugins are now reported in the output of ``--debug=sys``.

.. _issue 638: https://github.com/nedbat/coveragepy/issues/638
.. _issue 640: https://github.com/nedbat/coveragepy/issues/640


.. _changes_45:

4.5

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

- A new kind of plugin is supported: configurers are invoked at start-up to
allow more complex configuration than the .coveragerc file can easily do.
See :ref:`api_plugin` for details.  This solves the complex configuration
problem described in `issue 563`_.

- The ``fail_under`` option can now be a float.  Note that you must specify the
``[report] precision`` configuration option for the fractional part to be
used.  Thanks to Lars Hupfeldt Nielsen for help with the implementation.
Fixes `issue 631`_.

- The ``include`` and ``omit`` options can be specified for both the ``[run]``
and ``[report]`` phases of execution.  4.4.2 introduced some incorrect
interactions between those phases, where the options for one were confused
for the other.  This is now corrected, fixing `issue 621`_ and `issue 622`_.
Thanks to Daniel Hahler for seeing more clearly than I could.

- The ``coverage combine`` command used to always overwrite the data file, even
when no data had been read from apparently combinable files.  Now, an error
is raised if we thought there were files to combine, but in fact none of them
could be used.  Fixes `issue 629`_.

- The ``coverage combine`` command could get confused about path separators
when combining data collected on Windows with data collected on Linux, as
described in `issue 618`_.  This is now fixed: the result path always uses
the path separator specified in the ``[paths]`` result.

- On Windows, the HTML report could fail when source trees are deeply nested,
due to attempting to create HTML filenames longer than the 250-character
maximum.  Now filenames will never get much larger than 200 characters,
fixing `issue 627`_.  Thanks to Alex Sandro for helping with the fix.

.. _issue 563: https://github.com/nedbat/coveragepy/issues/563
.. _issue 618: https://github.com/nedbat/coveragepy/issues/618
.. _issue 621: https://github.com/nedbat/coveragepy/issues/621
.. _issue 622: https://github.com/nedbat/coveragepy/issues/622
.. _issue 627: https://github.com/nedbat/coveragepy/issues/627
.. _issue 629: https://github.com/nedbat/coveragepy/issues/629
.. _issue 631: https://github.com/nedbat/coveragepy/issues/631


.. _changes_442:

4.4.2

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

- Support for Python 3.7.  In some cases, class and module docstrings are no
longer counted in statement totals, which could slightly change your total
results.

- Specifying both ``--source`` and ``--include`` no longer silently ignores the
include setting, instead it displays a warning. Thanks, Loïc Dachary.  Closes
`issue 265`_ and `issue 101`_.

- Fixed a race condition when saving data and multiple threads are tracing
(`issue 581`_). It could produce a &quot;dictionary changed size during iteration&quot;
RuntimeError.  I believe this mostly but not entirely fixes the race
condition.  A true fix would likely be too expensive.  Thanks, Peter Baughman
for the debugging, and Olivier Grisel for the fix with tests.

- Configuration values which are file paths will now apply tilde-expansion,
closing `issue 589`_.

- Now secondary config files like tox.ini and setup.cfg can be specified
explicitly, and prefixed sections like `[coverage:run]` will be read. Fixes
`issue 588`_.

- Be more flexible about the command name displayed by help, fixing
`issue 600`_. Thanks, Ben Finney.

.. _issue 101: https://github.com/nedbat/coveragepy/issues/101
.. _issue 581: https://github.com/nedbat/coveragepy/issues/581
.. _issue 588: https://github.com/nedbat/coveragepy/issues/588
.. _issue 589: https://github.com/nedbat/coveragepy/issues/589
.. _issue 600: https://github.com/nedbat/coveragepy/issues/600


.. _changes_441:

4.4.1

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

- No code changes: just corrected packaging for Python 2.7 Linux wheels.


.. _changes_44:

4.4

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

- Reports could produce the wrong file names for packages, reporting ``pkg.py``
instead of the correct ``pkg/__init__.py``.  This is now fixed.  Thanks, Dirk
Thomas.

- XML reports could produce ``&lt;source&gt;`` and ``&lt;class&gt;`` lines that together
didn&#39;t specify a valid source file path.  This is now fixed. (`issue 526`_)

- Namespace packages are no longer warned as having no code. (`issue 572`_)

- Code that uses ``sys.settrace(sys.gettrace())`` in a file that wasn&#39;t being
coverage-measured would prevent correct coverage measurement in following
code. An example of this was running doctests programmatically. This is now
fixed. (`issue 575`_)

- Errors printed by the ``coverage`` command now go to stderr instead of
stdout.

- Running ``coverage xml`` in a directory named with non-ASCII characters would
fail under Python 2. This is now fixed. (`issue 573`_)

.. _issue 526: https://github.com/nedbat/coveragepy/issues/526
.. _issue 572: https://github.com/nedbat/coveragepy/issues/572
.. _issue 573: https://github.com/nedbat/coveragepy/issues/573
.. _issue 575: https://github.com/nedbat/coveragepy/issues/575

4.4b1

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

- Some warnings can now be individually disabled.  Warnings that can be
disabled have a short name appended.  The ``[run] disable_warnings`` setting
takes a list of these warning names to disable. Closes both `issue 96`_ and
`issue 355`_.

- The XML report now includes attributes from version 4 of the Cobertura XML
format, fixing `issue 570`_.

- In previous versions, calling a method that used collected data would prevent
further collection.  For example, `save()`, `report()`, `html_report()`, and
others would all stop collection.  An explicit `start()` was needed to get it
going again.  This is no longer true.  Now you can use the collected data and
also continue measurement. Both `issue 79`_ and `issue 448`_ described this
problem, and have been fixed.

- Plugins can now find unexecuted files if they choose, by implementing the
`find_executable_files` method.  Thanks, Emil Madsen.

- Minimal IronPython support. You should be able to run IronPython programs
under ``coverage run``, though you will still have to do the reporting phase
with CPython.

- Coverage.py has long had a special hack to support CPython&#39;s need to measure
the coverage of the standard library tests. This code was not installed by
kitted versions of coverage.py.  Now it is.

.. _issue 79: https://github.com/nedbat/coveragepy/issues/79
.. _issue 96: https://github.com/nedbat/coveragepy/issues/96
.. _issue 355: https://github.com/nedbat/coveragepy/issues/355
.. _issue 448: https://github.com/nedbat/coveragepy/issues/448
.. _issue 570: https://github.com/nedbat/coveragepy/issues/570


.. _changes_434:

4.3.4

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

- Fixing 2.6 in version 4.3.3 broke other things, because the too-tricky
exception wasn&#39;t properly derived from Exception, described in `issue 556`_.
A newb mistake; it hasn&#39;t been a good few days.

.. _issue 556: https://github.com/nedbat/coveragepy/issues/556


.. _changes_433:

4.3.3

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

- Python 2.6 support was broken due to a testing exception imported for the
benefit of the coverage.py test suite.  Properly conditionalizing it fixed
`issue 554`_ so that Python 2.6 works again.

.. _issue 554: https://github.com/nedbat/coveragepy/issues/554


.. _changes_432:

4.3.2

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

- Using the ``--skip-covered`` option on an HTML report with 100% coverage
would cause a &quot;No data to report&quot; error, as reported in `issue 549`_. This is
now fixed; thanks, Loïc Dachary.

- If-statements can be optimized away during compilation, for example, `if 0:`
or `if __debug__:`.  Coverage.py had problems properly understanding these
statements which existed in the source, but not in the compiled bytecode.
This problem, reported in `issue 522`_, is now fixed.

- If you specified ``--source`` as a directory, then coverage.py would look for
importable Python files in that directory, and could identify ones that had
never been executed at all.  But if you specified it as a package name, that
detection wasn&#39;t performed.  Now it is, closing `issue 426`_. Thanks to Loïc
Dachary for the fix.

- If you started and stopped coverage measurement thousands of times in your
process, you could crash Python with a &quot;Fatal Python error: deallocating
None&quot; error.  This is now fixed.  Thanks to Alex Groce for the bug report.

- On PyPy, measuring coverage in subprocesses could produce a warning: &quot;Trace
function changed, measurement is likely wrong: None&quot;.  This was spurious, and
has been suppressed.

- Previously, coverage.py couldn&#39;t start on Jython, due to that implementation
missing the multiprocessing module (`issue 551`_). This problem has now been
fixed. Also, `issue 322`_ about not being able to invoke coverage
conveniently, seems much better: ``jython -m coverage run myprog.py`` works
properly.

- Let&#39;s say you ran the HTML report over and over again in the same output
directory, with ``--skip-covered``. And imagine due to your heroic
test-writing efforts, a file just achieved the goal of 100% coverage. With
coverage.py 4.3, the old HTML file with the less-than-100% coverage would be
left behind.  This file is now properly deleted.

.. _issue 322: https://github.com/nedbat/coveragepy/issues/322
.. _issue 426: https://github.com/nedbat/coveragepy/issues/426
.. _issue 522: https://github.com/nedbat/coveragepy/issues/522
.. _issue 549: https://github.com/nedbat/coveragepy/issues/549
.. _issue 551: https://github.com/nedbat/coveragepy/issues/551


.. _changes_431:

4.3.1

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

- Some environments couldn&#39;t install 4.3, as described in `issue 540`_. This is
now fixed.

- The check for conflicting ``--source`` and ``--include`` was too simple in a
few different ways, breaking a few perfectly reasonable use cases, described
in `issue 541`_.  The check has been reverted while we re-think the fix for
`issue 265`_.

.. _issue 540: https://github.com/nedbat/coveragepy/issues/540
.. _issue 541: https://github.com/nedbat/coveragepy/issues/541


.. _changes_43:

4.3

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

Special thanks to **Loïc Dachary**, who took an extraordinary interest in
coverage.py and contributed a number of improvements in this release.

- Subprocesses that are measured with `automatic subprocess measurement`_ used
to read in any pre-existing data file.  This meant data would be incorrectly
carried forward from run to run.  Now those files are not read, so each
subprocess only writes its own data. Fixes `issue 510`_.

- The ``coverage combine`` command will now fail if there are no data files to
combine. The combine changes in 4.2 meant that multiple combines could lose
data, leaving you with an empty .coverage data file. Fixes
`issue 525`_, `issue 412`_, `issue 516`_, and probably `issue 511`_.

- Coverage.py wouldn&#39;t execute `sys.excepthook`_ when an exception happened in
your program.  Now it does, thanks to Andrew Hoos.  Closes `issue 535`_.

- Branch coverage fixes:

- Branch coverage could misunderstand a finally clause on a try block that
 never continued on to the following statement, as described in `issue
 493`_.  This is now fixed. Thanks to Joe Doherty for the report and Loïc
 Dachary for the fix.

- A while loop with a constant condition (while True) and a continue
 statement would be mis-analyzed, as described in `issue 496`_. This is now
 fixed, thanks to a bug report by Eli Skeggs and a fix by Loïc Dachary.

- While loops with constant conditions that were never executed could result
 in a non-zero coverage report.  Artem Dayneko reported this in `issue
 502`_, and Loïc Dachary provided the fix.

- The HTML report now supports a ``--skip-covered`` option like the other
reporting commands.  Thanks, Loïc Dachary for the implementation, closing
`issue 433`_.

- Options can now be read from a tox.ini file, if any. Like setup.cfg, sections
are prefixed with &quot;coverage:&quot;, so ``[run]`` options will be read from the
``[coverage:run]`` section of tox.ini. Implements part of `issue 519`_.
Thanks, Stephen Finucane.

- Specifying both ``--source`` and ``--include`` no longer silently ignores the
include setting, instead it fails with a message. Thanks, Nathan Land and
Loïc Dachary. Closes `issue 265`_.

- The ``Coverage.combine`` method has a new parameter, ``strict=False``, to
support failing if there are no data files to combine.

- When forking subprocesses, the coverage data files would have the same random
number appended to the file name. This didn&#39;t cause problems, because the
file names had the process id also, making collisions (nearly) impossible.
But it was disconcerting.  This is now fixed.

- The text report now properly sizes headers when skipping some files, fixing
`issue 524`_. Thanks, Anthony Sottile and Loïc Dachary.

- Coverage.py can now search .pex files for source, just as it can .zip and
.egg.  Thanks, Peter Ebden.

- Data files are now about 15% smaller.

- Improvements in the ``[run] debug`` setting:

- The &quot;dataio&quot; debug setting now also logs when data files are deleted during
 combining or erasing.

- A new debug option, &quot;multiproc&quot;, for logging the behavior of
 ``concurrency=multiprocessing``.

- If you used the debug options &quot;config&quot; and &quot;callers&quot; together, you&#39;d get a
 call stack printed for every line in the multi-line config output. This is
 now fixed.

- Fixed an unusual bug involving multiple coding declarations affecting code
containing code in multi-line strings: `issue 529`_.

- Coverage.py will no longer be misled into thinking that a plain file is a
package when interpreting ``--source`` options.  Thanks, Cosimo Lupo.

- If you try to run a non-Python file with coverage.py, you will now get a more
useful error message. `Issue 514`_.

- The default pragma regex changed slightly, but this will only matter to you
if you are deranged and use mixed-case pragmas.

- Deal properly with non-ASCII file names in an ASCII-only world, `issue 533`_.

- Programs that set Unicode configuration values could cause UnicodeErrors when
generating HTML reports.  Pytest-cov is one example.  This is now fixed.

- Prevented deprecation warnings from configparser that happened in some
circumstances, closing `issue 530`_.

- Corrected the name of the jquery.ba-throttle-debounce.js library. Thanks,
Ben Finney.  Closes `issue 505`_.

- Testing against PyPy 5.6 and PyPy3 5.5.

- Switched to pytest from nose for running the coverage.py tests.

- Renamed AUTHORS.txt to CONTRIBUTORS.txt, since there are other ways to
contribute than by writing code. Also put the count of contributors into the
author string in setup.py, though this might be too cute.

.. _sys.excepthook: https://docs.python.org/3/library/sys.htmlsys.excepthook
.. _issue 265: https://github.com/nedbat/coveragepy/issues/265
.. _issue 412: https://github.com/nedbat/coveragepy/issues/412
.. _issue 433: https://github.com/nedbat/coveragepy/issues/433
.. _issue 493: https://github.com/nedbat/coveragepy/issues/493
.. _issue 496: https://github.com/nedbat/coveragepy/issues/496
.. _issue 502: https://github.com/nedbat/coveragepy/issues/502
.. _issue 505: https://github.com/nedbat/coveragepy/issues/505
.. _issue 514: https://github.com/nedbat/coveragepy/issues/514
.. _issue 510: https://github.com/nedbat/coveragepy/issues/510
.. _issue 511: https://github.com/nedbat/coveragepy/issues/511
.. _issue 516: https://github.com/nedbat/coveragepy/issues/516
.. _issue 519: https://github.com/nedbat/coveragepy/issues/519
.. _issue 524: https://github.com/nedbat/coveragepy/issues/524
.. _issue 525: https://github.com/nedbat/coveragepy/issues/525
.. _issue 529: https://github.com/nedbat/coveragepy/issues/529
.. _issue 530: https://github.com/nedbat/coveragepy/issues/530
.. _issue 533: https://github.com/nedbat/coveragepy/issues/533
.. _issue 535: https://github.com/nedbat/coveragepy/issues/535


.. _changes_42:

4.2

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

- Since ``concurrency=multiprocessing`` uses subprocesses, options specified on
the coverage.py command line will not be communicated down to them.  Only
options in the configuration file will apply to the subprocesses.
Previously, the options didn&#39;t apply to the subprocesses, but there was no
indication.  Now it is an error to use ``--concurrency=multiprocessing`` and
other run-affecting options on the command line.  This prevents
failures like those reported in `issue 495`_.

- Filtering the HTML report is now faster, thanks to Ville Skyttä.

.. _issue 495: https://github.com/nedbat/coveragepy/issues/495

4.2b1

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

Work from the PyCon 2016 Sprints!

- BACKWARD INCOMPATIBILITY: the ``coverage combine`` command now ignores an
existing ``.coverage`` data file.  It used to include that file in its
combining.  This caused confusing results, and extra tox &quot;clean&quot; steps.  If
you want the old behavior, use the new ``coverage combine --append`` option.

- The ``concurrency`` option can now take multiple values, to support programs
using multiprocessing and another library such as eventlet.  This is only
possible in the configuration file, not from the command line. The
configuration file is the only way for sub-processes to all run with the same
options.  Fixes `issue 484`_.  Thanks to Josh Williams for prototyping.

- Using a ``concurrency`` setting of ``multiprocessing`` now implies
``--parallel`` so that the main program is measured similarly to the
sub-processes.

- When using `automatic subprocess measurement`_, running coverage commands
would create spurious data files.  This is now fixed, thanks to diagnosis and
testing by Dan Riti.  Closes `issue 492`_.

- A new configuration option, ``report:sort``, controls what column of the
text report is used to sort the rows.  Thanks to Dan Wandschneider, this
closes `issue 199`_.

- The HTML report has a more-visible indicator for which column is being
sorted.  Closes `issue 298`_, thanks to Josh Williams.

- If the HTML report cannot find the source for a file, the message now
suggests using the ``-i`` flag to allow the report to continue. Closes
`issue 231`_, thanks, Nathan Land.

- When reports are ignoring errors, there&#39;s now a warning if a file cannot be
parsed, rather than being silently ignored.  Closes `issue 396`_. Thanks,
Matthew Boehm.

- A new option for ``coverage debug`` is available: ``coverage debug config``
shows the current configuration.  Closes `issue 454`_, thanks to Matthew
Boehm.

- Running coverage as a module (``python -m coverage``) no longer shows the
program name as ``__main__.py``.  Fixes `issue 478`_.  Thanks, Scott Belden.

- The `test_helpers` module has been moved into a separate pip-installable
package: `unittest-mixins`_.

.. _automatic subprocess measurement: https://coverage.readthedocs.io/en/latest/subprocess.html
.. _issue 199: https://github.com/nedbat/coveragepy/issues/199
.. _issue 231: https://github.com/nedbat/coveragepy/issues/231
.. _issue 298: https://github.com/nedbat/coveragepy/issues/298
.. _issue 396: https://github.com/nedbat/coveragepy/issues/396
.. _issue 454: https://github.com/nedbat/coveragepy/issues/454
.. _issue 478: https://github.com/nedbat/coveragepy/issues/478
.. _issue 484: https://github.com/nedbat/coveragepy/issues/484
.. _issue 492: https://github.com/nedbat/coveragepy/issues/492
.. _unittest-mixins: https://pypi.org/project/unittest-mixins/


.. _changes_41:

4.1

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

- The internal attribute `Reporter.file_reporters` was removed in 4.1b3.  It
should have come has no surprise that there were third-party tools out there
using that attribute.  It has been restored, but with a deprecation warning.

4.1b3

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

- When running your program, execution can jump from an ``except X:`` line to
some other line when an exception other than ``X`` happens.  This jump is no
longer considered a branch when measuring branch coverage.

- When measuring branch coverage, ``yield`` statements that were never resumed
were incorrectly marked as missing, as reported in `issue 440`_.  This is now
fixed.

- During branch coverage of single-line callables like lambdas and generator
expressions, coverage.py can now distinguish between them never being called,
or being called but not completed.  Fixes `issue 90`_, `issue 460`_ and
`issue 475`_.

- The HTML report now has a map of the file along the rightmost edge of the
page, giving an overview of where the missed lines are.  Thanks, Dmitry
Shishov.

- The HTML report now uses different monospaced fonts, favoring Consolas over
Courier.  Along the way, `issue 472`_ about not properly handling one-space
indents was fixed.  The index page also has slightly different styling, to
try to make the clickable detail pages more apparent.

- Missing branches reported with ``coverage report -m`` will now say ``-&gt;exit``
for missed branches to the exit of a function, rather than a negative number.
Fixes `issue 469`_.

- ``coverage --help`` and ``coverage --version`` now mention which tracer is
installed, to help diagnose problems. The docs mention which features need
the C extension. (`issue 479`_)

- Officially support PyPy 5.1, which required no changes, just updates to the
docs.

- The `Coverage.report` function had two parameters with non-None defaults,
which have been changed.  `show_missing` used to default to True, but now
defaults to None.  If you had been calling `Coverage.report` without
specifying `show_missing`, you&#39;ll need to explicitly set it to True to keep
the same behavior.  `skip_covered` used to default to False. It is now None,
which doesn&#39;t change the behavior.  This fixes `issue 485`_.

- It&#39;s never been possible to pass a namespace module to one of the analysis
functions, but now at least we raise a more specific error message, rather
than getting confused. (`issue 456`_)

- The `coverage.process_startup` function now returns the `Coverage` instance
it creates, as suggested in `issue 481`_.

- Make a small tweak to how we compare threads, to avoid buggy custom
comparison code in thread classes. (`issue 245`_)

.. _issue 90: https://github.com/nedbat/coveragepy/issues/90
.. _issue 245: https://github.com/nedbat/coveragepy/issues/245
.. _issue 440: https://github.com/nedbat/coveragepy/issues/440
.. _issue 456: https://github.com/nedbat/coveragepy/issues/456
.. _issue 460: https://github.com/nedbat/coveragepy/issues/460
.. _issue 469: https://github.com/nedbat/coveragepy/issues/469
.. _issue 472: https://github.com/nedbat/coveragepy/issues/472
.. _issue 475: https://github.com/nedbat/coveragepy/issues/475
.. _issue 479: https://github.com/nedbat/coveragepy/issues/479
.. _issue 481: https://github.com/nedbat/coveragepy/issues/481
.. _issue 485: https://github.com/nedbat/coveragepy/issues/485

4.1b2

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

- Problems with the new branch measurement in 4.1 beta 1 were fixed:

- Class docstrings were considered executable.  Now they no longer are.

- ``yield from`` and ``await`` were considered returns from functions, since
 they could transfer control to the caller.  This produced unhelpful
 &quot;missing branch&quot; reports in a number of circumstances.  Now they no longer
 are considered returns.

- In unusual situations, a missing branch to a negative number was reported.
 This has been fixed, closing `issue 466`_.

- The XML report now produces correct package names for modules found in
directories specified with ``source=``.  Fixes `issue 465`_.

- ``coverage report`` won&#39;t produce trailing whitespace.

.. _issue 465: https://github.com/nedbat/coveragepy/issues/465
.. _issue 466: https://github.com/nedbat/coveragepy/issues/466

4.1b1

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

- Branch analysis has been rewritten: it used to be based on bytecode, but now
uses AST analysis.  This has changed a number of things:

- More code paths are now considered runnable, especially in
 ``try``/``except`` structures.  This may mean that coverage.py will
 identify more code paths as uncovered.  This could either raise or lower
 your overall coverage number.

- Python 3.5&#39;s ``async`` and ``await`` keywords are properly supported,
 fixing `issue 434`_.

- Some long-standing branch coverage bugs were fixed:

 - `issue 129`_: functions with only a docstring for a body would
   incorrectly report a missing branch on the ``def`` line.

 - `issue 212`_: code in an ``except`` block could be incorrectly marked as
   a missing branch.

 - `issue 146`_: context managers (``with`` statements) in a loop or ``try``
   block could confuse the branch measurement, reporting incorrect partial
   branches.

 - `issue 422`_: in Python 3.5, an actual partial branch could be marked as
   complete.

- Pragmas to disable coverage measurement can now be used on decorator lines,
and they will apply to the entire function or class being decorated.  This
implements the feature requested in `issue 131`_.

- Multiprocessing support is now available on Windows.  Thanks, Rodrigue
Cloutier.

- Files with two encoding declarations are properly supported, fixing
`issue 453`_. Thanks, Max Linke.

- Non-ascii characters in regexes in the configuration file worked in 3.7, but
stopped working in 4.0.  Now they work again, closing `issue 455`_.

- Form-feed characters would prevent accurate determination of the beginning of
statements in the rest of the file.  This is now fixed, closing `issue 461`_.

.. _issue 129: https://github.com/nedbat/coveragepy/issues/129
.. _issue 131: https://github.com/nedbat/coveragepy/issues/131
.. _issue 146: https://github.com/nedbat/coveragepy/issues/146
.. _issue 212: https://github.com/nedbat/coveragepy/issues/212
.. _issue 422: https://github.com/nedbat/coveragepy/issues/422
.. _issue 434: https://github.com/nedbat/coveragepy/issues/434
.. _issue 453: https://github.com/nedbat/coveragepy/issues/453
.. _issue 455: https://github.com/nedbat/coveragepy/issues/455
.. _issue 461: https://github.com/nedbat/coveragepy/issues/461


.. _changes_403:

4.0.3

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

- Fixed a mysterious problem that manifested in different ways: sometimes
hanging the process (`issue 420`_), sometimes making database connections
fail (`issue 445`_).

- The XML report now has correct ``&lt;source&gt;`` elements when using a
``--source=`` option somewhere besides the current directory.  This fixes
`issue 439`_. Thanks, Arcadiy Ivanov.

- Fixed an unusual edge case of detecting source encodings, described in
`issue 443`_.

- Help messages that mention the command to use now properly use the actual
command name, which might be different than &quot;coverage&quot;.  Thanks to Ben
Finney, this closes `issue 438`_.

.. _issue 420: https://github.com/nedbat/coveragepy/issues/420
.. _issue 438: https://github.com/nedbat/coveragepy/issues/438
.. _issue 439: https://github.com/nedbat/coveragepy/issues/439
.. _issue 443: https://github.com/nedbat/coveragepy/issues/443
.. _issue 445: https://github.com/nedbat/coveragepy/issues/445


.. _changes_402:

4.0.2

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

- More work on supporting unusually encoded source. Fixed `issue 431`_.

- Files or directories with non-ASCII characters are now handled properly,
fixing `issue 432`_.

- Setting a trace function with sys.settrace was broken by a change in 4.0.1,
as reported in `issue 436`_.  This is now fixed.

- Officially support PyPy 4.0, which required no changes, just updates to the
docs.

.. _issue 431: https://github.com/nedbat/coveragepy/issues/431
.. _issue 432: https://github.com/nedbat/coveragepy/issues/432
.. _issue 436: https://github.com/nedbat/coveragepy/issues/436


.. _changes_401:

4.0.1

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

- When combining data files, unreadable files will now generate a warning
instead of failing the command.  This is more in line with the older
coverage.py v3.7.1 behavior, which silently ignored unreadable files.
Prompted by `issue 418`_.

- The --skip-covered option would skip reporting on 100% covered files, but
also skipped them when calculating total coverage.  This was wrong, it should
only remove lines from the report, not change the final answer.  This is now
fixed, closing `issue 423`_.

- In 4.0, the data file recorded a summary of the system on which it was run.
Combined data files would keep all of those summaries.  This could lead to
enormous data files consisting of mostly repetitive useless information. That
summary is now gone, fixing `issue 415`_.  If you want summary information,
get in touch, and we&#39;ll figure out a better way to do it.

- Test suites that mocked os.path.exists would experience strange failures, due
to coverage.py using their mock inadvertently.  This is now fixed, closing
`issue 416`_.

- Importing a ``__init__`` module explicitly would lead to an error:
``AttributeError: &#39;module&#39; object has no attribute &#39;__path__&#39;``, as reported
in `issue 410`_.  This is now fixed.

- Code that uses ``sys.settrace(sys.gettrace())`` used to incur a more than 2x
speed penalty.  Now there&#39;s no penalty at all. Fixes `issue 397`_.

- Pyexpat C code will no longer be recorded as a source file, fixing
`issue 419`_.

- The source kit now contains all of the files needed to have a complete source
tree, re-fixing `issue 137`_ and closing `issue 281`_.

.. _issue 281: https://github.com/nedbat/coveragepy/issues/281
.. _issue 397: https://github.com/nedbat/coveragepy/issues/397
.. _issue 410: https://github.com/nedbat/coveragepy/issues/410
.. _issue 415: https://github.com/nedbat/coveragepy/issues/415
.. _issue 416: https://github.com/nedbat/coveragepy/issues/416
.. _issue 418: https://github.com/nedbat/coveragepy/issues/418
.. _issue 419: https://github.com/nedbat/coveragepy/issues/419
.. _issue 423: https://github.com/nedbat/coveragepy/issues/423


.. _changes_40:

4.0

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

4.0b3

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

- Reporting on an unmeasured file would fail with a traceback.  This is now
fixed, closing `issue 403`_.

- The Jenkins ShiningPanda_ plugin looks for an obsolete file name to find the
HTML reports to publish, so it was failing under coverage.py 4.0.  Now we
create that file if we are running under Jenkins, to keep things working
smoothly. `issue 404`_.

- Kits used to include tests and docs, but didn&#39;t install them anywhere, or
provide all of the supporting tools to make them useful.  Kits no longer
include tests and docs.  If you were using them from the older packages, get
in touch and help me understand how.

.. _issue 403: https://github.com/nedbat/coveragepy/issues/403
.. _issue 404: https://github.com/nedbat/coveragepy/issues/404

4.0b2

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

- 4.0b1 broke ``--append`` creating new data files.  This is now fixed, closing
`issue 392`_.

- ``py.test --cov`` can write empty data, then touch files due to ``--source``,
which made coverage.py mistakenly force the data file to record lines instead
of arcs.  This would lead to a &quot;Can&#39;t combine line data with arc data&quot; error
message.  This is now fixed, and changed some method names in the
CoverageData interface.  Fixes `issue 399`_.

- `CoverageData.read_fileobj` and `CoverageData.write_fileobj` replace the
`.read` and `.write` methods, and are now properly inverses of each other.

- When using ``report --skip-covered``, a message will now be included in the
report output indicating how many files were skipped, and if all files are
skipped, coverage.py won&#39;t accidentally scold you for having no data to
report.  Thanks, Krystian Kichewko.

- A new conversion utility has been added:  ``python -m coverage.pickle2json``
will convert v3.x pickle data files to v4.x JSON data files.  Thanks,
Alexander Todorov.  Closes `issue 395`_.

- A new version identifier is available, `coverage.version_info`, a plain tuple
of values similar to `sys.version_info`_.

.. _issue 392: https://github.com/nedbat/coveragepy/issues/392
.. _issue 395: https://github.com/nedbat/coveragepy/issues/395
.. _issue 399: https://github.com/nedbat/coveragepy/issues/399
.. _sys.version_info: https://docs.python.org/3/library/sys.htmlsys.version_info

4.0b1

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

- Coverage.py is now licensed under the Apache 2.0 license.  See NOTICE.txt for
details.  Closes `issue 313`_.

- The data storage has been completely revamped.  The data file is now
JSON-based instead of a pickle, closing `issue 236`_.  The `CoverageData`
class is now a public supported documented API to the data file.

- A new configuration option, ``[run] note``, lets you set a note that will be
stored in the `runs` section of the data file.  You can use this to annotate
the data file with any information you like.

- Unrecognized configuration options will now print an error message and stop
coverage.py.  This should help prevent configuration mistakes from passing
silently.  Finishes `issue 386`_.

- In parallel mode, ``coverage erase`` will now delete all of the data files,
fixing `issue 262`_.

- Coverage.py now accepts a directory name for ``coverage run`` and will run a
``__main__.py`` found there, just like Python will.  Fixes `issue 252`_.
Thanks, Dmitry Trofimov.

- The XML report now includes a ``missing-branches`` attribute.  Thanks, Steve
Peak.  This is not a part of the Cobertura DTD, so the XML report no longer
references the DTD.

- Missing branches in the HTML report now have a bit more information in the
right-hand annotations.  Hopefully this will make their meaning clearer.

- All the reporting functions now behave the same if no data had been
collected, exiting with a status code of 1.  Fixed ``fail_under`` to be
applied even when the report is empty.  Thanks, Ionel Cristian Mărieș.

- Plugins are now initialized differently.  Instead of looking for a class
called ``Plugin``, coverage.py looks for a function called ``coverage_init``.

- A file-tracing plugin can now ask to have built-in Python reporting by
returning `&quot;python&quot;` from its `file_reporter()` method.

- Code that was executed with `exec` would be mis-attributed to the file that
called it.  This is now fixed, closing `issue 380`_.

- The ability to use item access on `Coverage.config` (introduced in 4.0a2) has
been changed to a more explicit `Coverage.get_option` and
`Coverage.set_option` API.

- The ``Coverage.use_cache`` method is no longer supported.

- The private method ``Coverage._harvest_data`` is now called
``Coverage.get_data``, and returns the ``CoverageData`` containing the
collected data.

- The project is consistently referred to as &quot;coverage.py&quot; throughout the code
and the documentation, closing `issue 275`_.

- Combining data files with an explicit configuration file was broken in 4.0a6,
but now works again, closing `issue 385`_.

- ``coverage combine`` now accepts files as well as directories.

- The speed is back to 3.7.1 levels, after having slowed down due to plugin
support, finishing up `issue 387`_.

.. _issue 236: https://github.com/nedbat/coveragepy/issues/236
.. _issue 252: https://github.com/nedbat/coveragepy/issues/252
.. _issue 262: https://github.com/nedbat/coveragepy/issues/262
.. _issue 275: https://github.com/nedbat/coveragepy/issues/275
.. _issue 313: https://github.com/nedbat/coveragepy/issues/313
.. _issue 380: https://github.com/nedbat/coveragepy/issues/380
.. _issue 385: https://github.com/nedbat/coveragepy/issues/385
.. _issue 386: https://github.com/nedbat/coveragepy/issues/386
.. _issue 387: https://github.com/nedbat/coveragepy/issues/387

.. 40 issues closed in 4.0 below here

4.0a6

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

- Python 3.5b2 and PyPy 2.6.0 are supported.

- The original module-level function interface to coverage.py is no longer
supported.  You must now create a ``coverage.Coverage`` object, and use
methods on it.

- The ``coverage combine`` command now accepts any number of directories as
arguments, and will combine all the data files from those directories.  This
means you don&#39;t have to copy the files to one directory before combining.
Thanks, Christine Lytwynec.  Finishes `issue 354`_.

- Branch coverage couldn&#39;t properly handle certain extremely long files. This
is now fixed (`issue 359`_).

- Branch coverage didn&#39;t understand yield statements properly.  Mickie Betz
persisted in pursuing this despite Ned&#39;s pessimism.  Fixes `issue 308`_ and
`issue 324`_.

- The COVERAGE_DEBUG environment variable can be used to set the
``[run] debug`` configuration option to control what internal operations are
logged.

- HTML reports were truncated at formfeed characters.  This is now fixed
(`issue 360`_).  It&#39;s always fun when the problem is due to a `bug in the
Python standard library &lt;http://bugs.python.org/issue19035&gt;`_.

- Files with incorrect encoding declaration comments are no longer ignored by
the reporting commands, fixing `issue 351`_.

- HTML reports now include a timestamp in the footer, closing `issue 299`_.
Thanks, Conrad Ho.

- HTML reports now begrudgingly use double-quotes rather than single quotes,
because there are &quot;software engineers&quot; out there writing tools that read HTML
and somehow have no idea that single quotes exist.  Capitulates to the absurd
`issue 361`_.  Thanks, Jon Chappell.

- The ``coverage annotate`` command now handles non-ASCII characters properly,
closing `issue 363`_.  Thanks, Leonardo Pistone.

- Drive letters on Windows were not normalized correctly, now they are. Thanks,
Ionel Cristian Mărieș.

- Plugin support had some bugs fixed, closing `issue 374`_ and `issue 375`_.
Thanks, Stefan Behnel.

.. _issue 299: https://github.com/nedbat/coverag
+1 -1

0 comment

1 changed file

pr created time in an hour

pull request commentJoelGoh92/channels_obstruction

Update zope.interface to 5.1.0

Closing this in favor of #213

pyup-bot

comment created time in an hour

PR closed JoelGoh92/channels_obstruction

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.4.3 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

4.6.0

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

- Add support for Python 3.7

- Fix ``verifyObject`` for class objects with staticmethods on
Python 3. See `issue 126
&lt;https://github.com/zopefoundation/zope.interface/issues/126&gt;`_.

4.5.0

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

- Drop support for 3.3, avoid accidental dependence breakage via setup.py.
See `PR 110 &lt;https://github.com/zopefoundation/zope.interface/pull/110&gt;`_.
- Allow registering and unregistering instance methods as listeners.
See `issue 12 &lt;https://github.com/zopefoundation/zope.interface/issues/12&gt;`_
and `PR 102 &lt;https://github.com/zopefoundation/zope.interface/pull/102&gt;`_.
- Synchronize and simplify zope/__init__.py. See `issue 114
&lt;https://github.com/zopefoundation/zope.interface/issues/114&gt;`_

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

PR opened munterfinger/zeitsprung

Pin tox to latest version 3.20.0

This PR pins tox to the latest release 3.20.0.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/tox
  • Docs: http://tox.readthedocs.org </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin watchdog to latest version 0.10.3

This PR pins watchdog to the latest release 0.10.3.

<details> <summary>Changelog</summary>

0.10.3

~~~~~~

2020-06-25 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.10.2...v0.10.3&gt;`__

- Ensure ``ObservedWatch.path`` is a string (`651 &lt;https://github.com/gorakhargosh/watchdog/pull/651&gt;`_)
- [inotify] Allow to monitor single file (`655 &lt;https://github.com/gorakhargosh/watchdog/pull/655&gt;`__)
- [inotify] Prevent raising an exception when a file in a monitored folder has no permissions (`669 &lt;https://github.com/gorakhargosh/watchdog/pull/669&gt;`__, `670 &lt;https://github.com/gorakhargosh/watchdog/pull/670&gt;`__)
- Thanks to our beloved contributors: brant-ruan, rec, andfoy, BoboTiG

0.10.2

~~~~~~

2020-02-08 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.10.1...v0.10.2&gt;`__

- Fixed the ``build_ext`` command on macOS Catalina (`628 &lt;https://github.com/gorakhargosh/watchdog/pull/628&gt;`__)
- Fixed the installation of macOS requirements on non-macOS OSes (`635 &lt;https://github.com/gorakhargosh/watchdog/pull/635&gt;`__)
- Refactored ``dispatch()`` method of ``FileSystemEventHandler``,
``PatternMatchingEventHandler`` and ``RegexMatchingEventHandler``
- [bsd] Improved tests support on non Windows/Linux platforms (`633 &lt;https://github.com/gorakhargosh/watchdog/pull/633&gt;`__, `639 &lt;https://github.com/gorakhargosh/watchdog/pull/639&gt;`__)
- [bsd] Added FreeBSD CI support (`532 &lt;https://github.com/gorakhargosh/watchdog/pull/532&gt;`__)
- [bsd] Restored full support (`638 &lt;https://github.com/gorakhargosh/watchdog/pull/638&gt;`__, `641 &lt;https://github.com/gorakhargosh/watchdog/pull/641&gt;`__)
- Thanks to our beloved contributors: BoboTiG, evilham, danilobellini

0.10.1

~~~~~~

2020-01-30 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.10.0...v0.10.1&gt;`__

- Fixed Python 2.7 to 3.6 installation when the OS locale is set to POSIX (`615 &lt;https://github.com/gorakhargosh/watchdog/pull/615&gt;`__)
- Fixed the ``build_ext`` command on macOS  (`618 &lt;https://github.com/gorakhargosh/watchdog/pull/618&gt;`__, `620 &lt;https://github.com/gorakhargosh/watchdog/pull/620&gt;`_)
- Moved requirements to ``setup.cfg``  (`617 &lt;https://github.com/gorakhargosh/watchdog/pull/617&gt;`__)
- [mac] Removed old C code for Python 2.5 in the `fsevents` C implementation
- [snapshot] Added ``EmptyDirectorySnapshot`` (`613 &lt;https://github.com/gorakhargosh/watchdog/pull/613&gt;`__)
- Thanks to our beloved contributors: Ajordat, tehkirill, BoboTiG

0.10.0

~~~~~~

2020-01-26 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.9.0...v0.10.0&gt;`__

**Breaking Changes**

- Dropped support for Python 2.6, 3.2 and 3.3
- Emitters that failed to start are now removed
- [snapshot] Removed the deprecated ``walker_callback`` argument,
use ``stat`` instead
- [watchmedo] The utility is no more installed by default but via the extra
``watchdog[watchmedo]``

**Other Changes**

- Fixed several Python 3 warnings
- Identify synthesized events with ``is_synthetic`` attribute (`369 &lt;https://github.com/gorakhargosh/watchdog/pull/369&gt;`__)
- Use ``os.scandir()`` to improve memory usage (`503 &lt;https://github.com/gorakhargosh/watchdog/pull/503&gt;`__)
- [bsd] Fixed flavors of FreeBSD detection (`529 &lt;https://github.com/gorakhargosh/watchdog/pull/529&gt;`__)
- [bsd] Skip unprocessable socket files (`509 &lt;https://github.com/gorakhargosh/watchdog/issue/509&gt;`__)
- [inotify] Fixed events containing non-ASCII characters (`516 &lt;https://github.com/gorakhargosh/watchdog/issues/516&gt;`__)
- [inotify] Fixed the way ``OSError`` are re-raised (`377 &lt;https://github.com/gorakhargosh/watchdog/issues/377&gt;`__)
- [inotify] Fixed wrong source path after renaming a top level folder (`515 &lt;https://github.com/gorakhargosh/watchdog/pull/515&gt;`__)
- [inotify] Removed  delay from non-move events (`477 &lt;https://github.com/gorakhargosh/watchdog/pull/477&gt;`__)
- [mac] Fixed a bug when calling ``FSEventsEmitter.stop()`` twice (`466 &lt;https://github.com/gorakhargosh/watchdog/pull/466&gt;`__)
- [mac] Support for unscheduling deleted watch (`541 &lt;https://github.com/gorakhargosh/watchdog/issue/541&gt;`__)
- [mac] Fixed missing field initializers and unused parameters in
``watchdog_fsevents.c``
- [snapshot] Don&#39;t walk directories without read permissions (`408 &lt;https://github.com/gorakhargosh/watchdog/pull/408&gt;`__)
- [snapshot] Fixed a race condition crash when a directory is swapped for a file (`513 &lt;https://github.com/gorakhargosh/watchdog/pull/513&gt;`__)
- [snasphot] Fixed an ``AttributeError`` about forgotten ``path_for_inode`` attr (`436 &lt;https://github.com/gorakhargosh/watchdog/issues/436&gt;`__)
- [snasphot] Added the ``ignore_device=False`` parameter to the ctor (`597 &lt;https://github.com/gorakhargosh/watchdog/pull/597&gt;`__)
- [watchmedo] Fixed the path separator used (`478 &lt;https://github.com/gorakhargosh/watchdog/pull/478&gt;`__)
- [watchmedo] Fixed the use of ``yaml.load()`` for ``yaml.safe_load()`` (`453 &lt;https://github.com/gorakhargosh/watchdog/issues/453&gt;`__)
- [watchmedo] Handle all available signals (`549 &lt;https://github.com/gorakhargosh/watchdog/issue/549&gt;`__)
- [watchmedo] Added the ``--debug-force-polling`` argument (`404 &lt;https://github.com/gorakhargosh/watchdog/pull/404&gt;`__)
- [windows] Fixed issues when the observed directory is deleted (`570 &lt;https://github.com/gorakhargosh/watchdog/issues/570&gt;`__ and `601 &lt;https://github.com/gorakhargosh/watchdog/pull/601&gt;`__)
- [windows] ``WindowsApiEmitter`` made easier to subclass (`344 &lt;https://github.com/gorakhargosh/watchdog/pull/344&gt;`__)
- [windows] Use separate ctypes DLL instances
- [windows] Generate sub created events only if ``recursive=True`` (`454 &lt;https://github.com/gorakhargosh/watchdog/pull/454&gt;`__)
- Thanks to our beloved contributors: BoboTiG, LKleinNux, rrzaripov,
wildmichael, TauPan, segevfiner, petrblahos, QuantumEnergyE,
jeffwidman, kapsh, nickoala, petrblahos, julianolf, tonybaloney,
mbakiev, pR0Ps, javaguirre, skurfer, exarkun, joshuaskelly,
danilobellini, Ajordat

0.9.0

~~~~~

2018-08-28 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.8.3...v0.9.0&gt;`__

- Deleting the observed directory now emits a ``DirDeletedEvent`` event
- [bsd] Improved the platform detection (`378 &lt;https://github.com/gorakhargosh/watchdog/pull/378&gt;`__)
- [inotify] Fixed a crash when the root directory being watched by was deleted (`374 &lt;https://github.com/gorakhargosh/watchdog/pull/374&gt;`__)
- [inotify] Handle systems providing uClibc
- [linux] Fixed a possible ``DirDeletedEvent`` duplication when
deleting a directory
- [mac] Fixed unicode path handling ``fsevents2.py`` (`298 &lt;https://github.com/gorakhargosh/watchdog/pull/298&gt;`__)
- [watchmedo] Added the ``--debug-force-polling`` argument (`336 &lt;https://github.com/gorakhargosh/watchdog/pull/336&gt;`__)
- [windows] Fixed the ``FILE_LIST_DIRECTORY`` constant (`376 &lt;https://github.com/gorakhargosh/watchdog/pull/376&gt;`__)
- Thanks to our beloved contributors: vulpeszerda, hpk42, tamland, senden9,
gorakhargosh, nolsto, mafrosis, DonyorM, anthrotype, danilobellini,
pierregr, ShinNoNoir, adrpar, gforcada, pR0Ps, yegorich, dhke

0.8.3

~~~~~

2015-02-11 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.8.2...v0.8.3&gt;`__

- Fixed the use of the root logger (`274 &lt;https://github.com/gorakhargosh/watchdog/issues/274&gt;`__)
- [inotify] Refactored libc loading and improved error handling in
``inotify_c.py``
- [inotify] Fixed a possible unbound local error in ``inotify_c.py``
- Thanks to our beloved contributors: mmorearty, tamland, tony,
gorakhargosh

0.8.2

~~~~~

2014-10-29 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.8.1...v0.8.2&gt;`__

- Event emitters are no longer started on schedule if ``Observer`` is not
already running
- [mac] Fixed usued arguments to pass clang compilation (`265 &lt;https://github.com/gorakhargosh/watchdog/pull/265&gt;`__)
- [snapshot] Fixed a possible race condition crash on directory deletion (`281 &lt;https://github.com/gorakhargosh/watchdog/pull/281&gt;`__)
- [windows] Fixed an error when watching the same folder again (`270 &lt;https://github.com/gorakhargosh/watchdog/pull/270&gt;`__)
- Thanks to our beloved contributors: tamland, apetrone, Falldog,
theospears

0.8.1

~~~~~

2014-07-28 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.8.0...v0.8.1&gt;`__

- Fixed ``anon_inode`` descriptors leakage  (`249 &lt;https://github.com/gorakhargosh/watchdog/pull/249&gt;`__)
- [inotify] Fixed thread stop dead lock (`250 &lt;https://github.com/gorakhargosh/watchdog/issues/250&gt;`__)
- Thanks to our beloved contributors: Witos, adiroiban, tamland

0.8.0

~~~~~

2014-07-02 • `full history &lt;https://github.com/gorakhargosh/watchdog/compare/v0.7.1...v0.8.0&gt;`__

- Fixed ``argh`` deprecation warnings (`242 &lt;https://github.com/gorakhargosh/watchdog/pull/242&gt;`__)
- [snapshot] Methods returning internal stats info were replaced by
``mtime()``, ``inode()`` and ``path()`` methods
- [snapshot] Deprecated the ``walker_callback`` argument
- [watchmedo] Fixed ``auto-restart`` to terminate all children processes (`225 &lt;https://github.com/gorakhargosh/watchdog/pull/225&gt;`__)
- [watchmedo] Added the ``--no-parallel`` argument (`227 &lt;https://github.com/gorakhargosh/watchdog/issues/227&gt;`__)
- [windows] Fixed the value of ``INVALID_HANDLE_VALUE`` (`123 &lt;https://github.com/gorakhargosh/watchdog/issues/123&gt;`__)
- [windows] Fixed octal usages to work with Python 3 as well (`223 &lt;https://github.com/gorakhargosh/watchdog/issues/223&gt;`__)
- Thanks to our beloved contributors: tamland, Ormod, berdario, cro,
BernieSumption, pypingou, gotcha, tommorris, frewsxcv

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/watchdog
  • Changelog: https://pyup.io/changelogs/watchdog/
  • Repo: http://github.com/gorakhargosh/watchdog
  • Docs: https://pythonhosted.org/watchdog/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin wheel to latest version 0.35.1

This PR pins wheel to the latest release 0.35.1.

<details> <summary>Changelog</summary>

0.35.0

- Switched to the packaging_ library for computing wheel tags
- Fixed a resource leak in ``WheelFile.open()`` (PR by Jon Dufresne)

.. _packaging: https://pypi.org/project/packaging/

0.34.2

- Fixed installation of ``wheel`` from sdist on environments without Unicode
file name support

0.34.1

- Fixed installation of ``wheel`` from sdist which was broken due to a chicken
and egg problem with PEP 517 and setuptools_scm

0.34.0

- Dropped Python 3.4 support
- Added automatic platform tag detection for macOS binary wheels
(PR by Grzegorz Bokota)
- Added the ``--compression=`` option to the ``bdist_wheel`` command
- Fixed PyPy tag generation to work with the updated semantics (328)
- Updated project packaging and testing configuration for :pep:`517`
- Moved the contents of setup.py to setup.cfg
- Fixed duplicate RECORD file when using ``wheel pack`` on Windows
- Fixed bdist_wheel failing at cleanup on Windows with a read-only source tree
- Fixed ``wheel pack`` not respecting the existing build tag in ``WHEEL``
- Switched the project to use the &quot;src&quot; layout
- Switched to setuptools_scm_ for versioning

.. _setuptools_scm: https://github.com/pypa/setuptools_scm/

0.33.6

- Fixed regression from 0.33.5 that broke building binary wheels against the
limited ABI
- Fixed egg2wheel compatibility with the future release of Python 3.10
(PR by Anthony Sottile)

0.33.5

- Don&#39;t add the ``m`` ABI flag to wheel names on Python 3.8 (PR by rdb)
- Updated ``MANIFEST.in`` to include many previously omitted files in the sdist

0.33.4

- Reverted PR 289 (adding directory entries to the wheel file) due to
incompatibility with ``distlib.wheel``

0.33.3

- Fixed wheel build failures on some systems due to all attributes being
preserved (PR by Matt Wozniski)

0.33.2

- Fixed empty directories missing from the wheel (PR by Jason R. Coombs)

0.33.1

- Fixed the ``--build-number`` option for ``wheel pack`` not being applied

0.33.0

- Added the ``--build-number`` option to the ``wheel pack`` command
- Fixed bad shebangs sneaking into wheels
- Fixed documentation issue with ``wheel pack`` erroneously being called
``wheel repack``
- Fixed filenames with &quot;bad&quot; characters (like commas) not being quoted in
``RECORD`` (PR by Paul Moore)
- Sort requirements extras to ensure deterministic builds
(PR by PoncinMatthieu)
- Forced ``inplace = False`` when building a C extension for the wheel

0.32.3

- Fixed compatibility with Python 2.7.0 – 2.7.3
- Fixed handling of direct URL requirements with markers (PR by Benoit Pierre)

0.32.2

- Fixed build number appearing in the ``.dist-info`` directory name
- Made wheel file name parsing more permissive
- Fixed wrong Python tag in wheels converted from eggs
(PR by John T. Wodder II)

0.32.1

- Fixed ``AttributeError: &#39;Requirement&#39; object has no attribute &#39;url&#39;`` on
setuptools/pkg_resources versions older than 18.8 (PR by Benoit Pierre)
- Fixed ``AttributeError: &#39;module&#39; object has no attribute
&#39;algorithms_available&#39;`` on Python &lt; 2.7.9 (PR by Benoit Pierre)
- Fixed permissions on the generated ``.dist-info/RECORD`` file

0.32.0

- Removed wheel signing and verifying features
- Removed the &quot;wheel install&quot; and &quot;wheel installscripts&quot; commands
- Added the ``wheel pack`` command
- Allowed multiple license files to be specified using the ``license_files``
option
- Deprecated the ``license_file`` option
- Eliminated duplicate lines from generated requirements in
``.dist-info/METADATA`` (thanks to Wim Glenn for the contribution)
- Fixed handling of direct URL specifiers in requirements
(PR by Benoit Pierre)
- Fixed canonicalization of extras (PR by Benoit Pierre)
- Warn when the deprecated ``[wheel]`` section is used in ``setup.cfg``
(PR by Jon Dufresne)

0.31.1

- Fixed arch as ``None`` when converting eggs to wheels

0.31.0

- Fixed displaying of errors on Python 3
- Fixed single digit versions in wheel files not being properly recognized
- Fixed wrong character encodings being used (instead of UTF-8) to read and
write ``RECORD`` (this sometimes crashed bdist_wheel too)
- Enabled Zip64 support in wheels by default
- Metadata-Version is now 2.1
- Dropped DESCRIPTION.rst and metadata.json from the list of generated files
- Dropped support for the non-standard, undocumented ``provides-extra`` and
``requires-dist`` keywords in setup.cfg metadata
- Deprecated all wheel signing and signature verification commands
- Removed the (already defunct) ``tool`` extras from setup.py

0.30.0

- Added py-limited-api {cp32|cp33|cp34|...} flag to produce cpNN.abi3.{arch}
tags on CPython 3.
- Documented the ``license_file`` metadata key
- Improved Python, abi tagging for ``wheel convert``. Thanks Ales Erjavec.
- Fixed ``&gt;`` being prepended to lines starting with &quot;From&quot; in the long
description
- Added support for specifying a build number (as per PEP 427).
Thanks Ian Cordasco.
- Made the order of files in generated ZIP files deterministic.
Thanks Matthias Bach.
- Made the order of requirements in metadata deterministic. Thanks Chris Lamb.
- Fixed ``wheel install`` clobbering existing files
- Improved the error message when trying to verify an unsigned wheel file
- Removed support for Python 2.6, 3.2 and 3.3.

0.29.0

- Fix compression type of files in archive (Issue 155, Pull Request 62,
thanks Xavier Fernandez)

0.28.0

- Fix file modes in archive (Issue 154)

0.27.0

- Support forcing a platform tag using ``--plat-name`` on pure-Python wheels,
as well as nonstandard platform tags on non-pure wheels (Pull Request 60,
Issue 144, thanks Andrés Díaz)
- Add SOABI tags to platform-specific wheels built for Python 2.X (Pull Request
55, Issue 63, Issue 101)
- Support reproducible wheel files, wheels that can be rebuilt and will hash to
the same values as previous builds (Pull Request 52, Issue 143, thanks
Barry Warsaw)
- Support for changes in keyring &gt;= 8.0 (Pull Request 61, thanks Jason R.
Coombs)
- Use the file context manager when checking if dependency_links.txt is empty,
fixes problems building wheels under PyPy on Windows  (Issue 150, thanks
Cosimo Lupo)
- Don&#39;t attempt to (recursively) create a build directory ending with ``..``
(invalid on all platforms, but code was only executed on Windows) (Issue 91)
- Added the PyPA Code of Conduct (Pull Request 56)

0.26.0

- Fix multiple entrypoint comparison failure on Python 3 (Issue 148)

0.25.0

- Add Python 3.5 to tox configuration
- Deterministic (sorted) metadata
- Fix tagging for Python 3.5 compatibility
- Support py2-none-&#39;arch&#39; and py3-none-&#39;arch&#39; tags
- Treat data-only wheels as pure
- Write to temporary file and rename when using wheel install --force

0.24.0

- The python tag used for pure-python packages is now .pyN (major version
only). This change actually occurred in 0.23.0 when the --python-tag
option was added, but was not explicitly mentioned in the changelog then.
- wininst2wheel and egg2wheel removed. Use &quot;wheel convert [archive]&quot;
instead.
- Wheel now supports setuptools style conditional requirements via the
extras_require={} syntax. Separate &#39;extra&#39; names from conditions using
the : character. Wheel&#39;s own setup.py does this. (The empty-string
extra is the same as install_requires.) These conditional requirements
should work the same whether the package is installed by wheel or
by setup.py.

0.23.0

- Compatibility tag flags added to the bdist_wheel command
- sdist should include files necessary for tests
- &#39;wheel convert&#39; can now also convert unpacked eggs to wheel
- Rename pydist.json to metadata.json to avoid stepping on the PEP
- The --skip-scripts option has been removed, and not generating scripts is now
the default. The option was a temporary approach until installers could
generate scripts themselves. That is now the case with pip 1.5 and later.
Note that using pip 1.4 to install a wheel without scripts will leave the
installation without entry-point wrappers. The &quot;wheel install-scripts&quot;
command can be used to generate the scripts in such cases.
- Thank you contributors

0.22.0

- Include entry_points.txt, scripts a.k.a. commands, in experimental
pydist.json
- Improved test_requires parsing
- Python 2.6 fixes, &quot;wheel version&quot; command courtesy pombredanne

0.21.0

- Pregenerated scripts are the default again.
- &quot;setup.py bdist_wheel --skip-scripts&quot; turns them off.
- setuptools is no longer a listed requirement for the &#39;wheel&#39;
package. It is of course still required in order for bdist_wheel
to work.
- &quot;python -m wheel&quot; avoids importing pkg_resources until it&#39;s necessary.

0.20.0

- No longer include console_scripts in wheels. Ordinary scripts (shell files,
standalone Python files) are included as usual.
- Include new command &quot;python -m wheel install-scripts [distribution
[distribution ...]]&quot; to install the console_scripts (setuptools-style
scripts using pkg_resources) for a distribution.

0.19.0

- pymeta.json becomes pydist.json

0.18.0

- Python 3 Unicode improvements

0.17.0

- Support latest PEP-426 &quot;pymeta.json&quot; (json-format metadata)

0.16.0

- Python 2.6 compatibility bugfix (thanks John McFarlane)
- Bugfix for C-extension tags for CPython 3.3 (using SOABI)
- Bugfix for bdist_wininst converter &quot;wheel convert&quot;
- Bugfix for dists where &quot;is pure&quot; is None instead of True or False
- Python 3 fix for moving Unicode Description to metadata body
- Include rudimentary API documentation in Sphinx (thanks Kevin Horn)

0.15.0

- Various improvements

0.14.0

- Changed the signature format to better comply with the current JWS spec.
Breaks all existing signatures.
- Include ``wheel unsign`` command to remove RECORD.jws from an archive.
- Put the description in the newly allowed payload section of PKG-INFO
(METADATA) files.

0.13.0

- Use distutils instead of sysconfig to get installation paths; can install
headers.
- Improve WheelFile() sort.
- Allow bootstrap installs without any pkg_resources.

0.12.0

- Unit test for wheel.tool.install

0.11.0

- API cleanup

0.10.3

- Scripts fixer fix

0.10.2

- Fix keygen

0.10.1

- Preserve attributes on install.

0.10.0

- Include a copy of pkg_resources. Wheel can now install into a virtualenv
that does not have distribute (though most packages still require
pkg_resources to actually work; wheel install distribute)
- Define a new setup.cfg section [wheel]. universal=1 will
apply the py2.py3-none-any tag for pure python wheels.

0.9.7

- Only import dirspec when needed. dirspec is only needed to find the
configuration for keygen/signing operations.

0.9.6

- requires-dist from setup.cfg overwrites any requirements from setup.py
Care must be taken that the requirements are the same in both cases,
or just always install from wheel.
- drop dirspec requirement on win32
- improved command line utility, adds &#39;wheel convert [egg or wininst]&#39; to
convert legacy binary formats to wheel

0.9.5

- Wheel&#39;s own wheel file can be executed by Python, and can install itself:
``python wheel-0.9.5-py27-none-any/wheel install ...``
- Use argparse; basic ``wheel install`` command should run with only stdlib
dependencies.
- Allow requires_dist in setup.cfg&#39;s [metadata] section. In addition to
dependencies in setup.py, but will only be interpreted when installing
from wheel, not from sdist. Can be qualified with environment markers.

0.9.4

- Fix wheel.signatures in sdist

0.9.3

- Integrated digital signatures support without C extensions.
- Integrated &quot;wheel install&quot; command (single package, no dependency
resolution) including compatibility check.
- Support Python 3.3
- Use Metadata 1.3 (PEP 426)

0.9.2

- Automatic signing if WHEEL_TOOL points to the wheel binary
- Even more Python 3 fixes

0.9.1

- &#39;wheel sign&#39; uses the keys generated by &#39;wheel keygen&#39; (instead of generating
a new key at random each time)
- Python 2/3 encoding/decoding fixes
- Run tests on Python 2.6 (without signature verification)

0.9

- Updated digital signatures scheme
- Python 3 support for digital signatures
- Always verify RECORD hashes on extract
- &quot;wheel&quot; command line tool to sign, verify, unpack wheel files

0.8

- none/any draft pep tags update
- improved wininst2wheel script
- doc changes and other improvements

0.7

- sort .dist-info at end of wheel archive
- Windows &amp; Python 3 fixes from Paul Moore
- pep8
- scripts to convert wininst &amp; egg to wheel

0.6

- require distribute &gt;= 0.6.28
- stop using verlib

0.5

- working pretty well

0.4.2

- hyphenated name fix

0.4

- improve test coverage
- improve Windows compatibility
- include tox.ini courtesy of Marc Abramowitz
- draft hmac sha-256 signing function

0.3

- prototype egg2wheel conversion script

0.2

- Python 3 compatibility

0.1

- Initial version

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/wheel
  • Changelog: https://pyup.io/changelogs/wheel/
  • Repo: https://github.com/pypa/wheel </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin bump2version to latest version 1.0.0

This PR pins bump2version to the latest release 1.0.0.

<details> <summary>Changelog</summary>

1.0.0

- Fix the spurious newline that bump2version adds when writing to bumpversion.cfg, thanks kyluca 58
- Add Python3.8 support, thanks florisla 
- Drop Python2 support, thanks hugovk
- Allow additional arguments to the commit call, thanks lubomir
- Various documentation improvements, thanks lubomir florisla padamstx glotis
- Housekeeping, move changelog into own file

0.5.11

- Housekeeping, also publish an sdist
- Housekeeping, fix appveyor builds
- Housekeeping, `make lint` now lints with pylint
- Drop support for Python3.4, thanks hugovk 79 
- Enhance missing VCS command detection (errno 13), thanks lowell80 75
- Add environment variables for other scripts to use, thanks mauvilsa 70
- Refactor, cli.main is now much more readable, thanks florisla 68
- Fix, retain file newlines for Windows, thanks hesstobi 59
- Add support (tests) for Pythno3.7, thanks florisla 49
- Allow any part to be configured in configurable strings such as tag_name etc., thanks florisla 41

0.5.10

- Housekeeping, use twine

0.5.9

- Fixed windows appveyor-based testing, thanks: jeremycarroll 33 and 34
- Fixed interpolating correctly when using setup.cfg for config, thanks: SethMMorton 32
- Improve tox/travis testing, thanks: ekohl 27
- Fixed markdown formatting in setup.py for pypi.org documentation, thanks: florisla, Mattwmaster58 26

0.5.8

- Updated the readme to markdown for easier maintainability
- Fixed travis testing, thanks: sharksforarms 15
- Added support for newlines, thanks: sharksforarms 14
- Fixed an issue with a TypeError on Windows, thanks: lorengordon 12
- Standardised the python versions, thanks: ekohl 8
- Fixed testing for pypy, 7

0.5.7

- Added support for signing tags (git tag -s)
thanks: Californian [6](https://github.com/c4urself/bump2version/pull/6)

0.5.6

- Added compatibility with `bumpversion` by making script install as `bumpversion` as well
thanks: the-allanc [2](https://github.com/c4urself/bump2version/pull/2)

0.5.5

- Added support for annotated tags
thanks: ekohl gvangool [58](https://github.com/peritus/bumpversion/pull/58)

0.5.4

- Renamed to bump2version to ensure no conflicts with original package

0.5.3

- Fix bug where `--new-version` value was not used when config was present
(thanks cscetbon ecordell [60](https://github.com/peritus/bumpversion/pull/60)
- Preserve case of keys config file
(thanks theskumar [75](https://github.com/peritus/bumpversion/pull/75)
- Windows CRLF improvements (thanks thebjorn)

0.5.1

- Document file specific options `search =` and `replace =` (introduced in 0.5.0)
- Fix parsing individual labels from `serialize =` config even if there are
characters after the last label (thanks mskrajnowski [56](https://github.com/peritus/bumpversion/pull/56)
- Fix: Don&#39;t crash in git repositories that have tags that contain hyphens [51](https://github.com/peritus/bumpversion/pull/51) and [52](https://github.com/peritus/bumpversion/pull/52)
- Fix: Log actual content of the config file, not what ConfigParser prints
after reading it.
- Fix: Support multiline values in `search =`
- also load configuration from `setup.cfg`, thanks t-8ch [57](https://github.com/peritus/bumpversion/pull/57)

0.5.0

This is a major one, containing two larger features, that require some changes
in the configuration format. This release is fully backwards compatible to
*v0.4.1*, however deprecates two uses that will be removed in a future version.

- New feature: `Part specific configuration`
- New feature: `File specific configuration`
- New feature: parse option can now span multiple line (allows to comment complex
regular expressions. See re.VERBOSE in the [Python documentation](https://docs.python.org/library/re.htmlre.VERBOSE) for details, also see [this testcase](https://github.com/peritus/bumpversion/blob/165e5d8bd308e9b7a1a6d17dba8aec9603f2d063/tests.pyL1202-L1211) as an example.
- New feature: `--allow-dirty` [42](https://github.com/peritus/bumpversion/pull/42)
- Fix: Save the files in binary mode to avoid mutating newlines (thanks jaraco [45](https://github.com/peritus/bumpversion/pull/45)
- License: bumpversion is now licensed under the MIT License [47](https://github.com/peritus/bumpversion/issues/47)
- Deprecate multiple files on the command line (use a `configuration file` instead, or invoke `bumpversion` multiple times)
- Deprecate &#39;files =&#39; configuration (use `file specific configuration` instead)

0.4.1

- Add --list option [39](https://github.com/peritus/bumpversion/issues/39)
- Use temporary files for handing over commit/tag messages to git/hg [36](https://github.com/peritus/bumpversion/issues/36)
- Fix: don&#39;t encode stdout as utf-8 on py3 [40](https://github.com/peritus/bumpversion/issues/40)
- Fix: logging of content of config file was wrong

0.4.0

- Add --verbose option [21](https://github.com/peritus/bumpversion/issues/21) [30](https://github.com/peritus/bumpversion/issues/30)
- Allow option --serialize multiple times

0.3.8

- Fix: --parse/--serialize didn&#39;t work from cfg [34](https://github.com/peritus/bumpversion/issues/34)

0.3.7

- Don&#39;t fail if git or hg is not installed (thanks keimlink)
- &quot;files&quot; option is now optional [16](https://github.com/peritus/bumpversion/issues/16)
- Fix bug related to dirty work dir [28](https://github.com/peritus/bumpversion/issues/28)

0.3.6

- Fix --tag default (thanks keimlink)

0.3.5

- add {now} and {utcnow} to context
- use correct file encoding writing to config file. NOTE: If you are using
Python2 and want to use UTF-8 encoded characters in your config file, you
need to update ConfigParser like using &#39;pip install -U configparser&#39;
- leave `current_version` in config even if available from vcs tags (was
confusing)
- print own version number in usage
- allow bumping parts that contain non-numerics
- various fixes regarding file encoding

0.3.4

- bugfix: tag_name and message in .bumpversion.cfg didn&#39;t have an effect [9](https://github.com/peritus/bumpversion/issues/9)

0.3.3

- add --tag-name option
- now works on Python 3.2, 3.3 and PyPy

0.3.2

- bugfix: Read only tags from `git describe` that look like versions

0.3.1

- bugfix: `--help` in git workdir raising AssertionError
- bugfix: fail earlier if one of files does not exist
- bugfix: `commit = True` / `tag = True` in .bumpversion.cfg had no effect

0.3.0

- **BREAKING CHANGE** The `--bump` argument was removed, this is now the first
positional argument.
If you used `bumpversion --bump major` before, you can use
`bumpversion major` now.
If you used `bumpversion` without arguments before, you now
need to specify the part (previous default was `patch`) as in
`bumpversion patch`).

0.2.2

- add --no-commit, --no-tag

0.2.1

- If available, use git to learn about current version

0.2.0

- Mercurial support

0.1.1

- Only create a tag when it&#39;s requested (thanks gvangool)

0.1.0

- Initial public version

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/bump2version
  • Changelog: https://pyup.io/changelogs/bump2version/
  • Repo: https://github.com/c4urself/bump2version </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin pip to latest version 20.2.3

This PR pins pip to the latest release 20.2.3.

<details> <summary>Changelog</summary>

20.2.3

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

Deprecations and Removals
-------------------------

- Deprecate support for Python 3.5 (`8181 &lt;https://github.com/pypa/pip/issues/8181&gt;`_)

Features
--------

- Make the ``setup.py install`` deprecation warning less noisy. We warn only
when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
situations where both fails are most probably irrelevant to this deprecation. (`8752 &lt;https://github.com/pypa/pip/issues/8752&gt;`_)

20.2.2

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

Bug Fixes
---------

- Only attempt to use the keyring once and if it fails, don&#39;t try again.
This prevents spamming users with several keyring unlock prompts when they
cannot unlock or don&#39;t want to do so. (`8090 &lt;https://github.com/pypa/pip/issues/8090&gt;`_)
- Fix regression that distributions in system site-packages are not correctly
found when a virtual environment is configured with ``system-site-packages``
on. (`8695 &lt;https://github.com/pypa/pip/issues/8695&gt;`_)
- Disable caching for range requests, which causes corrupted wheels
when pip tries to obtain metadata using the feature ``fast-deps``. (`8701 &lt;https://github.com/pypa/pip/issues/8701&gt;`_, `8716 &lt;https://github.com/pypa/pip/issues/8716&gt;`_)
- Always use UTF-8 to read ``pyvenv.cfg`` to match the built-in ``venv``. (`8717 &lt;https://github.com/pypa/pip/issues/8717&gt;`_)
- 2020 Resolver: Correctly handle marker evaluation in constraints and exclude
them if their markers do not match the current environment. (`8724 &lt;https://github.com/pypa/pip/issues/8724&gt;`_)

20.2.1

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

Features
--------

- Ignore require-virtualenv in ``pip list`` (`8603 &lt;https://github.com/pypa/pip/issues/8603&gt;`_)

Bug Fixes
---------

- Correctly find already-installed distributions with dot (``.``) in the name
and uninstall them when needed. (`8645 &lt;https://github.com/pypa/pip/issues/8645&gt;`_)
- Trace a better error message on installation failure due to invalid ``.data``
files in wheels. (`8654 &lt;https://github.com/pypa/pip/issues/8654&gt;`_)
- Fix SVN version detection for alternative SVN distributions. (`8665 &lt;https://github.com/pypa/pip/issues/8665&gt;`_)
- New resolver: Correctly include the base package when specified with extras
in ``--no-deps`` mode. (`8677 &lt;https://github.com/pypa/pip/issues/8677&gt;`_)
- Use UTF-8 to handle ZIP archive entries on Python 2 according to PEP 427, so
non-ASCII paths can be resolved as expected. (`8684 &lt;https://github.com/pypa/pip/issues/8684&gt;`_)

Improved Documentation
----------------------

- Add details on old resolver deprecation and removal to migration documentation. (`8371 &lt;https://github.com/pypa/pip/issues/8371&gt;`_)
- Fix feature flag name in docs. (`8660 &lt;https://github.com/pypa/pip/issues/8660&gt;`_)

20.2

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

Deprecations and Removals
-------------------------

- Deprecate setup.py-based builds that do not generate an ``.egg-info`` directory. (`6998 &lt;https://github.com/pypa/pip/issues/6998&gt;`_, `8617 &lt;https://github.com/pypa/pip/issues/8617&gt;`_)
- Disallow passing install-location-related arguments in ``--install-options``. (`7309 &lt;https://github.com/pypa/pip/issues/7309&gt;`_)
- Add deprecation warning for invalid requirements format &quot;base&gt;=1.0[extra]&quot; (`8288 &lt;https://github.com/pypa/pip/issues/8288&gt;`_)
- Deprecate legacy setup.py install when building a wheel failed for source
distributions without pyproject.toml (`8368 &lt;https://github.com/pypa/pip/issues/8368&gt;`_)
- Deprecate -b/--build/--build-dir/--build-directory. Its current behaviour is confusing
and breaks in case different versions of the same distribution need to be built during
the resolution process. Using the TMPDIR/TEMP/TMP environment variable, possibly
combined with --no-clean covers known use cases. (`8372 &lt;https://github.com/pypa/pip/issues/8372&gt;`_)
- Remove undocumented and deprecated option ``--always-unzip`` (`8408 &lt;https://github.com/pypa/pip/issues/8408&gt;`_)

Features
--------

- Log debugging information about pip, in ``pip install --verbose``. (`3166 &lt;https://github.com/pypa/pip/issues/3166&gt;`_)
- Refine error messages to avoid showing Python tracebacks when an HTTP error occurs. (`5380 &lt;https://github.com/pypa/pip/issues/5380&gt;`_)
- Install wheel files directly instead of extracting them to a temp directory. (`6030 &lt;https://github.com/pypa/pip/issues/6030&gt;`_)
- Add a beta version of pip&#39;s next-generation dependency resolver.

Move pip&#39;s new resolver into beta, remove the
``--unstable-feature=resolver`` flag, and enable the
``--use-feature=2020-resolver`` flag. The new resolver is
significantly stricter and more consistent when it receives
incompatible instructions, and reduces support for certain kinds of
:ref:`Constraints Files`, so some workarounds and workflows may
break. More details about how to test and migrate, and how to report
issues, at :ref:`Resolver changes 2020` . Maintainers are preparing to

20.2b1

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

Bug Fixes
---------

- Correctly treat wheels containing non-ASCII file contents so they can be
installed on Windows. (`5712 &lt;https://github.com/pypa/pip/issues/5712&gt;`_)
- Prompt the user for password if the keyring backend doesn&#39;t return one (`7998 &lt;https://github.com/pypa/pip/issues/7998&gt;`_)

Improved Documentation
----------------------

- Add GitHub issue template for reporting when the dependency resolver fails (`8207 &lt;https://github.com/pypa/pip/issues/8207&gt;`_)

20.1.1

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

Deprecations and Removals
-------------------------

- Revert building of local directories in place, restoring the pre-20.1
behaviour of copying to a temporary directory. (`7555 &lt;https://github.com/pypa/pip/issues/7555&gt;`_)
- Drop parallelization from ``pip list --outdated``. (`8167 &lt;https://github.com/pypa/pip/issues/8167&gt;`_)

Bug Fixes
---------

- Fix metadata permission issues when umask has the executable bit set. (`8164 &lt;https://github.com/pypa/pip/issues/8164&gt;`_)
- Avoid unnecessary message about the wheel package not being installed
when a wheel would not have been built. Additionally, clarify the message. (`8178 &lt;https://github.com/pypa/pip/issues/8178&gt;`_)

20.1

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

Process
-------

- Document that pip 21.0 will drop support for Python 2.7.

Features
--------

- Add ``pip cache dir`` to show the cache directory. (`7350 &lt;https://github.com/pypa/pip/issues/7350&gt;`_)

Bug Fixes
---------

- Abort pip cache commands early when cache is disabled. (`8124 &lt;https://github.com/pypa/pip/issues/8124&gt;`_)
- Correctly set permissions on metadata files during wheel installation,
to permit non-privileged users to read from system site-packages. (`8139 &lt;https://github.com/pypa/pip/issues/8139&gt;`_)

20.1b1

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

Deprecations and Removals
-------------------------

- Remove emails from AUTHORS.txt to prevent usage for spamming, and only populate names in AUTHORS.txt at time of release (`5979 &lt;https://github.com/pypa/pip/issues/5979&gt;`_)
- Remove deprecated ``--skip-requirements-regex`` option. (`7297 &lt;https://github.com/pypa/pip/issues/7297&gt;`_)
- Building of local directories is now done in place, instead of a temporary
location containing a copy of the directory tree. (`7555 &lt;https://github.com/pypa/pip/issues/7555&gt;`_)
- Remove unused ``tests/scripts/test_all_pip.py`` test script and the ``tests/scripts`` folder. (`7680 &lt;https://github.com/pypa/pip/issues/7680&gt;`_)

Features
--------

- pip now implements PEP 610, so ``pip freeze`` has better fidelity
in presence of distributions installed from Direct URL requirements. (`609 &lt;https://github.com/pypa/pip/issues/609&gt;`_)
- Add ``pip cache`` command for inspecting/managing pip&#39;s wheel cache. (`6391 &lt;https://github.com/pypa/pip/issues/6391&gt;`_)
- Raise error if ``--user`` and ``--target`` are used together in ``pip install`` (`7249 &lt;https://github.com/pypa/pip/issues/7249&gt;`_)
- Significantly improve performance when ``--find-links`` points to a very large HTML page. (`7729 &lt;https://github.com/pypa/pip/issues/7729&gt;`_)
- Indicate when wheel building is skipped, due to lack of the ``wheel`` package. (`7768 &lt;https://github.com/pypa/pip/issues/7768&gt;`_)
- Change default behaviour to always cache responses from trusted-host source. (`7847 &lt;https://github.com/pypa/pip/issues/7847&gt;`_)
- An alpha version of a new resolver is available via ``--unstable-feature=resolver``. (`988 &lt;https://github.com/pypa/pip/issues/988&gt;`_)

Bug Fixes
---------

- Correctly freeze a VCS editable package when it is nested inside another VCS repository. (`3988 &lt;https://github.com/pypa/pip/issues/3988&gt;`_)
- Correctly handle ``%2F`` in URL parameters to avoid accidentally unescape them
into ``/``. (`6446 &lt;https://github.com/pypa/pip/issues/6446&gt;`_)
- Reject VCS URLs with an empty revision. (`7402 &lt;https://github.com/pypa/pip/issues/7402&gt;`_)
- Warn when an invalid URL is passed with ``--index-url`` (`7430 &lt;https://github.com/pypa/pip/issues/7430&gt;`_)
- Use better mechanism for handling temporary files, when recording metadata
about installed files (RECORD) and the installer (INSTALLER). (`7699 &lt;https://github.com/pypa/pip/issues/7699&gt;`_)
- Correctly detect global site-packages availability of virtual environments
created by PyPA’s virtualenv&gt;=20.0. (`7718 &lt;https://github.com/pypa/pip/issues/7718&gt;`_)
- Remove current directory from ``sys.path`` when invoked as ``python -m pip &lt;command&gt;`` (`7731 &lt;https://github.com/pypa/pip/issues/7731&gt;`_)
- Stop failing uninstallation, when trying to remove non-existent files. (`7856 &lt;https://github.com/pypa/pip/issues/7856&gt;`_)
- Prevent an infinite recursion with ``pip wheel`` when ``$TMPDIR`` is within the source directory. (`7872 &lt;https://github.com/pypa/pip/issues/7872&gt;`_)
- Significantly speedup ``pip list --outdated`` by parallelizing index interaction. (`7962 &lt;https://github.com/pypa/pip/issues/7962&gt;`_)
- Improve Windows compatibility when detecting writability in folder. (`8013 &lt;https://github.com/pypa/pip/issues/8013&gt;`_)

Vendored Libraries
------------------

- Update semi-supported debundling script to reflect that appdirs is vendored.
- Add ResolveLib as a vendored dependency.
- Upgrade certifi to 2020.04.05.1
- Upgrade contextlib2 to 0.6.0.post1
- Upgrade distro to 1.5.0.
- Upgrade idna to 2.9.
- Upgrade msgpack to 1.0.0.
- Upgrade packaging to 20.3.
- Upgrade pep517 to 0.8.2.
- Upgrade pyparsing to 2.4.7.
- Remove pytoml as a vendored dependency.
- Upgrade requests to 2.23.0.
- Add toml as a vendored dependency.
- Upgrade urllib3 to 1.25.8.

Improved Documentation
----------------------

- Emphasize that VCS URLs using git, git+git and git+http are insecure due to
lack of authentication and encryption (`1983 &lt;https://github.com/pypa/pip/issues/1983&gt;`_)
- Clarify the usage of --no-binary command. (`3191 &lt;https://github.com/pypa/pip/issues/3191&gt;`_)
- Clarify the usage of freeze command in the example of Using pip in your program (`7008 &lt;https://github.com/pypa/pip/issues/7008&gt;`_)
- Add a &quot;Copyright&quot; page. (`7767 &lt;https://github.com/pypa/pip/issues/7767&gt;`_)
- Added example of defining multiple values for options which support them (`7803 &lt;https://github.com/pypa/pip/issues/7803&gt;`_)

20.0.2

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

Bug Fixes
---------

- Fix a regression in generation of compatibility tags. (`7626 &lt;https://github.com/pypa/pip/issues/7626&gt;`_)

Vendored Libraries
------------------

- Upgrade packaging to 20.1

20.0.1

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

Bug Fixes
---------

- Rename an internal module, to avoid ImportErrors due to improper uninstallation. (`7621 &lt;https://github.com/pypa/pip/issues/7621&gt;`_)

20.0

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

Process
-------

- Switch to a dedicated CLI tool for vendoring dependencies.

Deprecations and Removals
-------------------------

- Remove wheel tag calculation from pip and use ``packaging.tags``. This
should provide more tags ordered better than in prior releases. (`6908 &lt;https://github.com/pypa/pip/issues/6908&gt;`_)
- Deprecate setup.py-based builds that do not generate an ``.egg-info`` directory. (`6998 &lt;https://github.com/pypa/pip/issues/6998&gt;`_)
- The pip&gt;=20 wheel cache is not retro-compatible with previous versions. Until
pip 21.0, pip will continue to take advantage of existing legacy cache
entries. (`7296 &lt;https://github.com/pypa/pip/issues/7296&gt;`_)
- Deprecate undocumented ``--skip-requirements-regex`` option. (`7297 &lt;https://github.com/pypa/pip/issues/7297&gt;`_)
- Deprecate passing install-location-related options via ``--install-option``. (`7309 &lt;https://github.com/pypa/pip/issues/7309&gt;`_)
- Use literal &quot;abi3&quot; for wheel tag on CPython 3.x, to align with PEP 384
which only defines it for this platform. (`7327 &lt;https://github.com/pypa/pip/issues/7327&gt;`_)
- Remove interpreter-specific major version tag e.g. ``cp3-none-any``
from consideration. This behavior was not documented strictly, and this
tag in particular is `not useful &lt;https://snarky.ca/the-challenges-in-designing-a-library-for-pep-425/&gt;`_.
Anyone with a use case can create an issue with pypa/packaging. (`7355 &lt;https://github.com/pypa/pip/issues/7355&gt;`_)
- Wheel processing no longer permits wheels containing more than one top-level
.dist-info directory. (`7487 &lt;https://github.com/pypa/pip/issues/7487&gt;`_)
- Support for the ``git+git`` form of VCS requirement is being deprecated and
will be removed in pip 21.0. Switch to ``git+https://`` or
``git+ssh://``. ``git+git://`` also works but its use is discouraged as it is
insecure. (`7543 &lt;https://github.com/pypa/pip/issues/7543&gt;`_)

Features
--------

- Default to doing a user install (as if ``--user`` was passed) when the main
site-packages directory is not writeable and user site-packages are enabled. (`1668 &lt;https://github.com/pypa/pip/issues/1668&gt;`_)
- Warn if a path in PATH starts with tilde during ``pip install``. (`6414 &lt;https://github.com/pypa/pip/issues/6414&gt;`_)
- Cache wheels built from Git requirements that are considered immutable,
because they point to a commit hash. (`6640 &lt;https://github.com/pypa/pip/issues/6640&gt;`_)
- Add option ``--no-python-version-warning`` to silence warnings
related to deprecation of Python versions. (`6673 &lt;https://github.com/pypa/pip/issues/6673&gt;`_)
- Cache wheels that ``pip wheel`` built locally, matching what
``pip install`` does. This particularly helps performance in workflows where
``pip wheel`` is used for `building before installing
&lt;https://pip.pypa.io/en/stable/user_guide/installing-from-local-packages&gt;`_.
Users desiring the original behavior can use ``pip wheel --no-cache-dir``. (`6852 &lt;https://github.com/pypa/pip/issues/6852&gt;`_)
- Display CA information in ``pip debug``. (`7146 &lt;https://github.com/pypa/pip/issues/7146&gt;`_)
- Show only the filename (instead of full URL), when downloading from PyPI. (`7225 &lt;https://github.com/pypa/pip/issues/7225&gt;`_)
- Suggest a more robust command to upgrade pip itself to avoid confusion when the
current pip command is not available as ``pip``. (`7376 &lt;https://github.com/pypa/pip/issues/7376&gt;`_)
- Define all old pip console script entrypoints to prevent import issues in
stale wrapper scripts. (`7498 &lt;https://github.com/pypa/pip/issues/7498&gt;`_)
- The build step of ``pip wheel`` now builds all wheels to a cache first,
then copies them to the wheel directory all at once.
Before, it built them to a temporary directory and moved
them to the wheel directory one by one. (`7517 &lt;https://github.com/pypa/pip/issues/7517&gt;`_)
- Expand ``~`` prefix to user directory in path options, configs, and
environment variables. Values that may be either URL or path are not
currently supported, to avoid ambiguity:

* ``--find-links``
* ``--constraint``, ``-c``
* ``--requirement``, ``-r``
* ``--editable``, ``-e`` (`980 &lt;https://github.com/pypa/pip/issues/980&gt;`_)

Bug Fixes
---------

- Correctly handle system site-packages, in virtual environments created with venv (PEP 405). (`5702 &lt;https://github.com/pypa/pip/issues/5702&gt;`_, `7155 &lt;https://github.com/pypa/pip/issues/7155&gt;`_)
- Fix case sensitive comparison of pip freeze when used with -r option. (`5716 &lt;https://github.com/pypa/pip/issues/5716&gt;`_)
- Enforce PEP 508 requirement format in ``pyproject.toml``
``build-system.requires``. (`6410 &lt;https://github.com/pypa/pip/issues/6410&gt;`_)
- Make ``ensure_dir()`` also ignore ``ENOTEMPTY`` as seen on Windows. (`6426 &lt;https://github.com/pypa/pip/issues/6426&gt;`_)
- Fix building packages which specify ``backend-path`` in pyproject.toml. (`6599 &lt;https://github.com/pypa/pip/issues/6599&gt;`_)
- Do not attempt to run ``setup.py clean`` after a ``pep517`` build error,
since a ``setup.py`` may not exist in that case. (`6642 &lt;https://github.com/pypa/pip/issues/6642&gt;`_)
- Fix passwords being visible in the index-url in
&quot;Downloading &lt;url&gt;&quot; message. (`6783 &lt;https://github.com/pypa/pip/issues/6783&gt;`_)
- Change method from shutil.remove to shutil.rmtree in noxfile.py. (`7191 &lt;https://github.com/pypa/pip/issues/7191&gt;`_)
- Skip running tests which require subversion, when svn isn&#39;t installed (`7193 &lt;https://github.com/pypa/pip/issues/7193&gt;`_)
- Fix not sending client certificates when using ``--trusted-host``. (`7207 &lt;https://github.com/pypa/pip/issues/7207&gt;`_)
- Make sure ``pip wheel`` never outputs pure python wheels with a
python implementation tag. Better fix/workaround for
`3025 &lt;https://github.com/pypa/pip/issues/3025&gt;`_ by
using a per-implementation wheel cache instead of caching pure python
wheels with an implementation tag in their name. (`7296 &lt;https://github.com/pypa/pip/issues/7296&gt;`_)
- Include ``subdirectory`` URL fragments in cache keys. (`7333 &lt;https://github.com/pypa/pip/issues/7333&gt;`_)
- Fix typo in warning message when any of ``--build-option``, ``--global-option``
and ``--install-option`` is used in requirements.txt (`7340 &lt;https://github.com/pypa/pip/issues/7340&gt;`_)
- Fix the logging of cached HTTP response shown as downloading. (`7393 &lt;https://github.com/pypa/pip/issues/7393&gt;`_)
- Effectively disable the wheel cache when it is not writable, as is the
case with the http cache. (`7488 &lt;https://github.com/pypa/pip/issues/7488&gt;`_)
- Correctly handle relative cache directory provided via --cache-dir. (`7541 &lt;https://github.com/pypa/pip/issues/7541&gt;`_)

Vendored Libraries
------------------

- Upgrade CacheControl to 0.12.5
- Upgrade certifi to 2019.9.11
- Upgrade colorama to 0.4.1
- Upgrade distlib to 0.2.9.post0
- Upgrade ipaddress to 1.0.22
- Update packaging to 20.0.
- Upgrade pkg_resources (via setuptools) to 44.0.0
- Upgrade pyparsing to 2.4.2
- Upgrade six to 1.12.0
- Upgrade urllib3 to 1.25.6

Improved Documentation
----------------------

- Document that &quot;coding: utf-8&quot; is supported in requirements.txt (`7182 &lt;https://github.com/pypa/pip/issues/7182&gt;`_)
- Explain how to get pip&#39;s source code in `Getting Started &lt;https://pip.pypa.io/en/stable/development/getting-started/&gt;`_ (`7197 &lt;https://github.com/pypa/pip/issues/7197&gt;`_)
- Describe how basic authentication credentials in URLs work. (`7201 &lt;https://github.com/pypa/pip/issues/7201&gt;`_)
- Add more clear installation instructions (`7222 &lt;https://github.com/pypa/pip/issues/7222&gt;`_)
- Fix documentation links for index options (`7347 &lt;https://github.com/pypa/pip/issues/7347&gt;`_)
- Better document the requirements file format (`7385 &lt;https://github.com/pypa/pip/issues/7385&gt;`_)

19.3.1

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

Features
--------

- Document Python 3.8 support. (`7219 &lt;https://github.com/pypa/pip/issues/7219&gt;`_)

Bug Fixes
---------

- Fix bug that prevented installation of PEP 517 packages without ``setup.py``. (`6606 &lt;https://github.com/pypa/pip/issues/6606&gt;`_)

19.3

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

Deprecations and Removals
-------------------------

- Remove undocumented support for un-prefixed URL requirements pointing
to SVN repositories. Users relying on this can get the original behavior
by prefixing their URL with ``svn+`` (which is backwards-compatible). (`7037 &lt;https://github.com/pypa/pip/issues/7037&gt;`_)
- Remove the deprecated ``--venv`` option from ``pip config``. (`7163 &lt;https://github.com/pypa/pip/issues/7163&gt;`_)

Features
--------

- Print a better error message when ``--no-binary`` or ``--only-binary`` is given
an argument starting with ``-``. (`3191 &lt;https://github.com/pypa/pip/issues/3191&gt;`_)
- Make ``pip show`` warn about packages not found. (`6858 &lt;https://github.com/pypa/pip/issues/6858&gt;`_)
- Support including a port number in ``--trusted-host`` for both HTTP and HTTPS. (`6886 &lt;https://github.com/pypa/pip/issues/6886&gt;`_)
- Redact single-part login credentials from URLs in log messages. (`6891 &lt;https://github.com/pypa/pip/issues/6891&gt;`_)
- Implement manylinux2014 platform tag support.  manylinux2014 is the successor
to manylinux2010.  It allows carefully compiled binary wheels to be installed
on compatible Linux platforms.  The manylinux2014 platform tag definition can
be found in `PEP599 &lt;https://www.python.org/dev/peps/pep-0599/&gt;`_. (`7102 &lt;https://github.com/pypa/pip/issues/7102&gt;`_)

Bug Fixes
---------

- Abort installation if any archive contains a file which would be placed
outside the extraction location. (`3907 &lt;https://github.com/pypa/pip/issues/3907&gt;`_)
- pip&#39;s CLI completion code no longer prints a Traceback if it is interrupted. (`3942 &lt;https://github.com/pypa/pip/issues/3942&gt;`_)
- Correct inconsistency related to the ``hg+file`` scheme. (`4358 &lt;https://github.com/pypa/pip/issues/4358&gt;`_)
- Fix ``rmtree_errorhandler`` to skip non-existing directories. (`4910 &lt;https://github.com/pypa/pip/issues/4910&gt;`_)
- Ignore errors copying socket files for local source installs (in Python 3). (`5306 &lt;https://github.com/pypa/pip/issues/5306&gt;`_)
- Fix requirement line parser to correctly handle PEP 440 requirements with a URL
pointing to an archive file. (`6202 &lt;https://github.com/pypa/pip/issues/6202&gt;`_)
- The ``pip-wheel-metadata`` directory does not need to persist between invocations of pip, use a temporary directory instead of the current ``setup.py`` directory. (`6213 &lt;https://github.com/pypa/pip/issues/6213&gt;`_)
- Fix ``--trusted-host`` processing under HTTPS to trust any port number used
with the host. (`6705 &lt;https://github.com/pypa/pip/issues/6705&gt;`_)
- Switch to new ``distlib`` wheel script template. This should be functionally
equivalent for end users. (`6763 &lt;https://github.com/pypa/pip/issues/6763&gt;`_)
- Skip copying .tox and .nox directories to temporary build directories (`6770 &lt;https://github.com/pypa/pip/issues/6770&gt;`_)
- Fix handling of tokens (single part credentials) in URLs. (`6795 &lt;https://github.com/pypa/pip/issues/6795&gt;`_)
- Fix a regression that caused ``~`` expansion not to occur in ``--find-links``
paths. (`6804 &lt;https://github.com/pypa/pip/issues/6804&gt;`_)
- Fix bypassed pip upgrade warning on Windows. (`6841 &lt;https://github.com/pypa/pip/issues/6841&gt;`_)
- Fix &#39;m&#39; flag erroneously being appended to ABI tag in Python 3.8 on platforms that do not provide SOABI (`6885 &lt;https://github.com/pypa/pip/issues/6885&gt;`_)
- Hide security-sensitive strings like passwords in log messages related to
version control system (aka VCS) command invocations. (`6890 &lt;https://github.com/pypa/pip/issues/6890&gt;`_)
- Correctly uninstall symlinks that were installed in a virtualenv,
by tools such as ``flit install --symlink``. (`6892 &lt;https://github.com/pypa/pip/issues/6892&gt;`_)
- Don&#39;t fail installation using pip.exe on Windows when pip wouldn&#39;t be upgraded. (`6924 &lt;https://github.com/pypa/pip/issues/6924&gt;`_)
- Use canonical distribution names when computing ``Required-By`` in ``pip show``. (`6947 &lt;https://github.com/pypa/pip/issues/6947&gt;`_)
- Don&#39;t use hardlinks for locking selfcheck state file. (`6954 &lt;https://github.com/pypa/pip/issues/6954&gt;`_)
- Ignore &quot;require_virtualenv&quot; in ``pip config`` (`6991 &lt;https://github.com/pypa/pip/issues/6991&gt;`_)
- Fix ``pip freeze`` not showing correct entry for mercurial packages that use subdirectories. (`7071 &lt;https://github.com/pypa/pip/issues/7071&gt;`_)
- Fix a crash when ``sys.stdin`` is set to ``None``, such as on AWS Lambda. (`7118 &lt;https://github.com/pypa/pip/issues/7118&gt;`_, `7119 &lt;https://github.com/pypa/pip/issues/7119&gt;`_)

Vendored Libraries
------------------

- Upgrade certifi to 2019.9.11
- Add contextlib2 0.6.0 as a vendored dependency.
- Remove Lockfile as a vendored dependency.
- Upgrade msgpack to 0.6.2
- Upgrade packaging to 19.2
- Upgrade pep517 to 0.7.0
- Upgrade pyparsing to 2.4.2
- Upgrade pytoml to 0.1.21
- Upgrade setuptools to 41.4.0
- Upgrade urllib3 to 1.25.6

Improved Documentation
----------------------

- Document caveats for UNC paths in uninstall and add .pth unit tests. (`6516 &lt;https://github.com/pypa/pip/issues/6516&gt;`_)
- Add architectural overview documentation. (`6637 &lt;https://github.com/pypa/pip/issues/6637&gt;`_)
- Document that ``--ignore-installed`` is dangerous. (`6794 &lt;https://github.com/pypa/pip/issues/6794&gt;`_)

19.2.3

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

Bug Fixes
---------

- Fix &#39;m&#39; flag erroneously being appended to ABI tag in Python 3.8 on platforms that do not provide SOABI (`6885 &lt;https://github.com/pypa/pip/issues/6885&gt;`_)

19.2.2

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

Bug Fixes
---------

- Fix handling of tokens (single part credentials) in URLs. (`6795 &lt;https://github.com/pypa/pip/issues/6795&gt;`_)
- Fix a regression that caused ``~`` expansion not to occur in ``--find-links``
paths. (`6804 &lt;https://github.com/pypa/pip/issues/6804&gt;`_)

19.2.1

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

Bug Fixes
---------

- Fix a ``NoneType`` ``AttributeError`` when evaluating hashes and no hashes
are provided. (`6772 &lt;https://github.com/pypa/pip/issues/6772&gt;`_)

19.2

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

Deprecations and Removals
-------------------------

- Drop support for EOL Python 3.4. (`6685 &lt;https://github.com/pypa/pip/issues/6685&gt;`_)
- Improve deprecation messages to include the version in which the functionality will be removed. (`6549 &lt;https://github.com/pypa/pip/issues/6549&gt;`_)

Features
--------

- Credentials will now be loaded using `keyring` when installed. (`5948 &lt;https://github.com/pypa/pip/issues/5948&gt;`_)
- Fully support using ``--trusted-host`` inside requirements files. (`3799 &lt;https://github.com/pypa/pip/issues/3799&gt;`_)
- Update timestamps in pip&#39;s ``--log`` file to include milliseconds. (`6587 &lt;https://github.com/pypa/pip/issues/6587&gt;`_)
- Respect whether a file has been marked as &quot;yanked&quot; from a simple repository
(see `PEP 592 &lt;https://www.python.org/dev/peps/pep-0592/&gt;`__ for details). (`6633 &lt;https://github.com/pypa/pip/issues/6633&gt;`_)
- When choosing candidates to install, prefer candidates with a hash matching
one of the user-provided hashes. (`5874 &lt;https://github.com/pypa/pip/issues/5874&gt;`_)
- Improve the error message when ``METADATA`` or ``PKG-INFO`` is None when
accessing metadata. (`5082 &lt;https://github.com/pypa/pip/issues/5082&gt;`_)
- Add a new command ``pip debug`` that can display e.g. the list of compatible
tags for the current Python. (`6638 &lt;https://github.com/pypa/pip/issues/6638&gt;`_)
- Display hint on installing with --pre when search results include pre-release versions. (`5169 &lt;https://github.com/pypa/pip/issues/5169&gt;`_)
- Report to Warehouse that pip is running under CI if the ``PIP_IS_CI`` environment variable is set. (`5499 &lt;https://github.com/pypa/pip/issues/5499&gt;`_)
- Allow ``--python-version`` to be passed as a dotted version string (e.g.
``3.7`` or ``3.7.3``). (`6585 &lt;https://github.com/pypa/pip/issues/6585&gt;`_)
- Log the final filename and SHA256 of a ``.whl`` file when done building a
wheel. (`5908 &lt;https://github.com/pypa/pip/issues/5908&gt;`_)
- Include the wheel&#39;s tags in the log message explanation when a candidate
wheel link is found incompatible. (`6121 &lt;https://github.com/pypa/pip/issues/6121&gt;`_)
- Add a ``--path`` argument to ``pip freeze`` to support ``--target``
installations. (`6404 &lt;https://github.com/pypa/pip/issues/6404&gt;`_)
- Add a ``--path`` argument to ``pip list`` to support ``--target``
installations. (`6551 &lt;https://github.com/pypa/pip/issues/6551&gt;`_)

Bug Fixes
---------

- Set ``sys.argv[0]`` to the underlying ``setup.py`` when invoking ``setup.py``
via the setuptools shim so setuptools doesn&#39;t think the path is ``-c``. (`1890 &lt;https://github.com/pypa/pip/issues/1890&gt;`_)
- Update ``pip download`` to respect the given ``--python-version`` when checking
``&quot;Requires-Python&quot;``. (`5369 &lt;https://github.com/pypa/pip/issues/5369&gt;`_)
- Respect ``--global-option`` and ``--install-option`` when installing from
a version control url (e.g. ``git``). (`5518 &lt;https://github.com/pypa/pip/issues/5518&gt;`_)
- Make the &quot;ascii&quot; progress bar really be &quot;ascii&quot; and not Unicode. (`5671 &lt;https://github.com/pypa/pip/issues/5671&gt;`_)
- Fail elegantly when trying to set an incorrectly formatted key in config. (`5963 &lt;https://github.com/pypa/pip/issues/5963&gt;`_)
- Prevent DistutilsOptionError when prefix is indicated in the global environment and `--target` is used. (`6008 &lt;https://github.com/pypa/pip/issues/6008&gt;`_)
- Fix ``pip install`` to respect ``--ignore-requires-python`` when evaluating
links. (`6371 &lt;https://github.com/pypa/pip/issues/6371&gt;`_)
- Fix a debug log message when freezing an editable, non-version controlled
requirement. (`6383 &lt;https://github.com/pypa/pip/issues/6383&gt;`_)
- Extend to Subversion 1.8+ the behavior of calling Subversion in
interactive mode when pip is run interactively. (`6386 &lt;https://github.com/pypa/pip/issues/6386&gt;`_)
- Prevent ``pip install &lt;url&gt;`` from permitting directory traversal if e.g.
a malicious server sends a ``Content-Disposition`` header with a filename
containing ``../`` or ``..\\``. (`6413 &lt;https://github.com/pypa/pip/issues/6413&gt;`_)
- Hide passwords in output when using ``--find-links``. (`6489 &lt;https://github.com/pypa/pip/issues/6489&gt;`_)
- Include more details in the log message if ``pip freeze`` can&#39;t generate a
requirement string for a particular distribution. (`6513 &lt;https://github.com/pypa/pip/issues/6513&gt;`_)
- Add the line number and file location to the error message when reading an
invalid requirements file in certain situations. (`6527 &lt;https://github.com/pypa/pip/issues/6527&gt;`_)
- Prefer ``os.confstr`` to ``ctypes`` when extracting glibc version info. (`6543 &lt;https://github.com/pypa/pip/issues/6543&gt;`_, `6675 &lt;https://github.com/pypa/pip/issues/6675&gt;`_)
- Improve error message printed when an invalid editable requirement is provided. (`6648 &lt;https://github.com/pypa/pip/issues/6648&gt;`_)
- Improve error message formatting when a command errors out in a subprocess. (`6651 &lt;https://github.com/pypa/pip/issues/6651&gt;`_)

Vendored Libraries
------------------

- Upgrade certifi to 2019.6.16
- Upgrade distlib to 0.2.9.post0
- Upgrade msgpack to 0.6.1
- Upgrade requests to 2.22.0
- Upgrade urllib3 to 1.25.3
- Patch vendored html5lib, to prefer using `collections.abc` where possible.

Improved Documentation
----------------------

- Document how Python 2.7 support will be maintained. (`6726 &lt;https://github.com/pypa/pip/issues/6726&gt;`_)
- Upgrade Sphinx version used to build documentation. (`6471 &lt;https://github.com/pypa/pip/issues/6471&gt;`_)
- Fix generation of subcommand manpages. (`6724 &lt;https://github.com/pypa/pip/issues/6724&gt;`_)
- Mention that pip can install from git refs. (`6512 &lt;https://github.com/pypa/pip/issues/6512&gt;`_)
- Replace a failing example of pip installs with extras with a working one. (`4733 &lt;https://github.com/pypa/pip/issues/4733&gt;`_)

19.1.1

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

Features
--------

- Restore ``pyproject.toml`` handling to how it was with pip 19.0.3 to prevent
the need to add ``--no-use-pep517`` when installing in editable mode. (`6434 &lt;https://github.com/pypa/pip/issues/6434&gt;`_)

Bug Fixes
---------

- Fix a regression that caused `` to be quoted in pypiserver links.
This interfered with parsing the revision string from VCS urls. (`6440 &lt;https://github.com/pypa/pip/issues/6440&gt;`_)

19.1

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

Features
--------

- Configuration files may now also be stored under ``sys.prefix`` (`5060 &lt;https://github.com/pypa/pip/issues/5060&gt;`_)
- Avoid creating an unnecessary local clone of a Bazaar branch when exporting. (`5443 &lt;https://github.com/pypa/pip/issues/5443&gt;`_)
- Include in pip&#39;s User-Agent string whether it looks like pip is running
under CI. (`5499 &lt;https://github.com/pypa/pip/issues/5499&gt;`_)
- A custom (JSON-encoded) string can now be added to pip&#39;s User-Agent
using the ``PIP_USER_AGENT_USER_DATA`` environment variable. (`5549 &lt;https://github.com/pypa/pip/issues/5549&gt;`_)
- For consistency, passing ``--no-cache-dir`` no longer affects whether wheels
will be built.  In this case, a temporary directory is used. (`5749 &lt;https://github.com/pypa/pip/issues/5749&gt;`_)
- Command arguments in ``subprocess`` log messages are now quoted using
``shlex.quote()``. (`6290 &lt;https://github.com/pypa/pip/issues/6290&gt;`_)
- Prefix warning and error messages in log output with `WARNING` and `ERROR`. (`6298 &lt;https://github.com/pypa/pip/issues/6298&gt;`_)
- Using ``--build-options`` in a PEP 517 build now fails with an error,
rather than silently ignoring the option. (`6305 &lt;https://github.com/pypa/pip/issues/6305&gt;`_)
- Error out with an informative message if one tries to install a
``pyproject.toml``-style (PEP 517) source tree using ``--editable`` mode. (`6314 &lt;https://github.com/pypa/pip/issues/6314&gt;`_)
- When downloading a package, the ETA and average speed now only update once per second for better legibility. (`6319 &lt;https://github.com/pypa/pip/issues/6319&gt;`_)

Bug Fixes
---------

- The stdout and stderr from VCS commands run by pip as subprocesses (e.g.
``git``, ``hg``, etc.) no longer pollute pip&#39;s stdout. (`1219 &lt;https://github.com/pypa/pip/issues/1219&gt;`_)
- Fix handling of requests exceptions when dependencies are debundled. (`4195 &lt;https://github.com/pypa/pip/issues/4195&gt;`_)
- Make pip&#39;s self version check avoid recommending upgrades to prereleases if the currently-installed version is stable. (`5175 &lt;https://github.com/pypa/pip/issues/5175&gt;`_)
- Fixed crash when installing a requirement from a URL that comes from a dependency without a URL. (`5889 &lt;https://github.com/pypa/pip/issues/5889&gt;`_)
- Improve handling of file URIs: correctly handle `file://localhost/...` and don&#39;t try to use UNC paths on Unix. (`5892 &lt;https://github.com/pypa/pip/issues/5892&gt;`_)
- Fix ``utils.encoding.auto_decode()`` ``LookupError`` with invalid encodings.
``utils.encoding.auto_decode()`` was broken when decoding Big Endian BOM
byte-strings on Little Endian or vice versa. (`6054 &lt;https://github.com/pypa/pip/issues/6054&gt;`_)
- Fix incorrect URL quoting of IPv6 addresses. (`6285 &lt;https://github.com/pypa/pip/issues/6285&gt;`_)
- Redact the password from the extra index URL when using ``pip -v``. (`6295 &lt;https://github.com/pypa/pip/issues/6295&gt;`_)
- The spinner no longer displays a completion message after subprocess calls
not needing a spinner. It also no longer incorrectly reports an error after
certain subprocess calls to Git that succeeded. (`6312 &lt;https://github.com/pypa/pip/issues/6312&gt;`_)
- Fix the handling of editable mode during installs when ``pyproject.toml`` is
present but PEP 517 doesn&#39;t require the source tree to be treated as
``pyproject.toml``-style. (`6370 &lt;https://github.com/pypa/pip/issues/6370&gt;`_)
- Fix ``NameError`` when handling an invalid requirement. (`6419 &lt;https://github.com/pypa/pip/issues/6419&gt;`_)

Vendored Libraries
------------------

- Updated certifi to 2019.3.9
- Updated distro to 1.4.0
- Update progress to 1.5
- Updated pyparsing to 2.4.0
- Updated pkg_resources to 41.0.1 (via setuptools)

Improved Documentation
----------------------

- Make dashes render correctly when displaying long options like
``--find-links`` in the text. (`6422 &lt;https://github.com/pypa/pip/issues/6422&gt;`_)

19.0.3

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

Bug Fixes
---------

- Fix an ``IndexError`` crash when a legacy build of a wheel fails. (`6252 &lt;https://github.com/pypa/pip/issues/6252&gt;`_)
- Fix a regression introduced in 19.0.2 where the filename in a RECORD file
of an installed file would not be updated when installing a wheel. (`6266 &lt;https://github.com/pypa/pip/issues/6266&gt;`_)

19.0.2

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

Bug Fixes
---------

- Fix a crash where PEP 517-based builds using ``--no-cache-dir`` would fail in
some circumstances with an ``AssertionError`` due to not finalizing a build
directory internally. (`6197 &lt;https://github.com/pypa/pip/issues/6197&gt;`_)
- Provide a better error message if attempting an editable install of a
directory with a ``pyproject.toml`` but no ``setup.py``. (`6170 &lt;https://github.com/pypa/pip/issues/6170&gt;`_)
- The implicit default backend used for projects that provide a ``pyproject.toml``
file without explicitly specifying ``build-backend`` now behaves more like direct
execution of ``setup.py``, and hence should restore compatibility with projects
that were unable to be installed with ``pip`` 19.0. This raised the minimum
required version of ``setuptools`` for such builds to 40.8.0. (`6163 &lt;https://github.com/pypa/pip/issues/6163&gt;`_)
- Allow ``RECORD`` lines with more than three elements, and display a warning. (`6165 &lt;https://github.com/pypa/pip/issues/6165&gt;`_)
- ``AdjacentTempDirectory`` fails on unwritable directory instead of locking up the uninstall command. (`6169 &lt;https://github.com/pypa/pip/issues/6169&gt;`_)
- Make failed uninstalls roll back more reliably and better at avoiding naming conflicts. (`6194 &lt;https://github.com/pypa/pip/issues/6194&gt;`_)
- Ensure the correct wheel file is copied when building PEP 517 distribution is built. (`6196 &lt;https://github.com/pypa/pip/issues/6196&gt;`_)
- The Python 2 end of life warning now only shows on CPython, which is the
implementation that has announced end of life plans. (`6207 &lt;https://github.com/pypa/pip/issues/6207&gt;`_)

Improved Documentation
----------------------

- Re-write README and documentation index (`5815 &lt;https://github.com/pypa/pip/issues/5815&gt;`_)

19.0.1

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

Bug Fixes
---------

- Fix a crash when using --no-cache-dir with PEP 517 distributions (`6158 &lt;https://github.com/pypa/pip/issues/6158&gt;`_, `6171 &lt;https://github.com/pypa/pip/issues/6171&gt;`_)

19.0

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

Deprecations and Removals
-------------------------

- Deprecate support for Python 3.4 (`6106 &lt;https://github.com/pypa/pip/issues/6106&gt;`_)
- Start printing a warning for Python 2.7 to warn of impending Python 2.7 End-of-life and
prompt users to start migrating to Python 3. (`6148 &lt;https://github.com/pypa/pip/issues/6148&gt;`_)
- Remove the deprecated ``--process-dependency-links`` option. (`6060 &lt;https://github.com/pypa/pip/issues/6060&gt;`_)
- Remove the deprecated SVN editable detection based on dependency links
during freeze. (`5866 &lt;https://github.com/pypa/pip/issues/5866&gt;`_)

Features
--------

- Implement PEP 517 (allow projects to specify a build backend via pyproject.toml). (`5743 &lt;https://github.com/pypa/pip/issues/5743&gt;`_)
- Implement manylinux2010 platform tag support.  manylinux2010 is the successor
to manylinux1.  It allows carefully compiled binary wheels to be installed
on compatible Linux platforms. (`5008 &lt;https://github.com/pypa/pip/issues/5008&gt;`_)
- Improve build isolation: handle ``.pth`` files, so namespace packages are correctly supported under Python 3.2 and earlier. (`5656 &lt;https://github.com/pypa/pip/issues/5656&gt;`_)
- Include the package name in a freeze warning if the package is not installed. (`5943 &lt;https://github.com/pypa/pip/issues/5943&gt;`_)
- Warn when dropping an ``--[extra-]index-url`` value that points to an existing local directory. (`5827 &lt;https://github.com/pypa/pip/issues/5827&gt;`_)
- Prefix pip&#39;s ``--log`` file lines with their timestamp. (`6141 &lt;https://github.com/pypa/pip/issues/6141&gt;`_)

Bug Fixes
---------

- Avoid creating excessively long temporary paths when uninstalling packages. (`3055 &lt;https://github.com/pypa/pip/issues/3055&gt;`_)
- Redact the password from the URL in various log messages. (`4746 &lt;https://github.com/pypa/pip/issues/4746&gt;`_, `6124 &lt;https://github.com/pypa/pip/issues/6124&gt;`_)
- Avoid creating excessively long temporary paths when uninstalling packages. (`3055 &lt;https://github.com/pypa/pip/issues/3055&gt;`_)
- Avoid printing a stack trace when given an invalid requirement. (`5147 &lt;https://github.com/pypa/pip/issues/5147&gt;`_)
- Present 401 warning if username/password do not work for URL (`4833 &lt;https://github.com/pypa/pip/issues/4833&gt;`_)
- Handle ``requests.exceptions.RetryError`` raised in ``PackageFinder`` that was causing pip to fail silently when some indexes were unreachable. (`5270 &lt;https://github.com/pypa/pip/issues/5270&gt;`_, `5483 &lt;https://github.com/pypa/pip/issues/5483&gt;`_)
- Handle a broken stdout pipe more gracefully (e.g. when running ``pip list | head``). (`4170 &lt;https://github.com/pypa/pip/issues/4170&gt;`_)
- Fix crash from setting ``PIP_NO_CACHE_DIR=yes``. (`5385 &lt;https://github.com/pypa/pip/issues/5385&gt;`_)
- Fix crash from unparsable requirements when checking installed packages. (`5839 &lt;https://github.com/pypa/pip/issues/5839&gt;`_)
- Fix content type detection if a directory named like an archive is used as a package source. (`5838 &lt;https://github.com/pypa/pip/issues/5838&gt;`_)
- Fix listing of outdated packages that are not dependencies of installed packages in ``pip list --outdated --not-required`` (`5737 &lt;https://github.com/pypa/pip/issues/5737&gt;`_)
- Fix sorting ``TypeError`` in ``move_wheel_files()`` when installing some packages. (`5868 &lt;https://github.com/pypa/pip/issues/5868&gt;`_)
- Fix support for invoking pip using ``python src/pip ...``. (`5841 &lt;https://github.com/pypa/pip/issues/5841&gt;`_)
- Greatly reduce memory usage when installing wheels containing large files. (`5848 &lt;https://github.com/pypa/pip/issues/5848&gt;`_)
- Editable non-VCS installs now freeze as editable. (`5031 &lt;https://github.com/pypa/pip/issues/5031&gt;`_)
- Editable Git installs without a remote now freeze as editable. (`4759 &lt;https://github.com/pypa/pip/issues/4759&gt;`_)
- Canonicalize sdist file names so they can be matched to a canonicalized package name passed to ``pip install``. (`5870 &lt;https://github.com/pypa/pip/issues/5870&gt;`_)
- Properly decode special characters in SVN URL credentials. (`5968 &lt;https://github.com/pypa/pip/issues/5968&gt;`_)
- Make ``PIP_NO_CACHE_DIR`` disable the cache also for truthy values like ``&quot;true&quot;``, ``&quot;yes&quot;``, ``&quot;1&quot;``, etc. (`5735 &lt;https://github.com/pypa/pip/issues/5735&gt;`_)

Vendored Libraries
------------------

- Include license text of vendored 3rd party libraries. (`5213 &lt;https://github.com/pypa/pip/issues/5213&gt;`_)
- Update certifi to 2018.11.29
- Update colorama to 0.4.1
- Update distlib to 0.2.8
- Update idna to 2.8
- Update packaging to 19.0
- Update pep517 to 0.5.0
- Update pkg_resources to 40.6.3 (via setuptools)
- Update pyparsing to 2.3.1
- Update pytoml to 0.1.20
- Update requests to 2.21.0
- Update six to 1.12.0
- Update urllib3 to 1.24.1

Improved Documentation
----------------------

- Include the Vendoring Policy in the documentation. (`5958 &lt;https://github.com/pypa/pip/issues/5958&gt;`_)
- Add instructions for running pip from source to Development documentation. (`5949 &lt;https://github.com/pypa/pip/issues/5949&gt;`_)
- Remove references to removed ``egg=&lt;name&gt;-&lt;version&gt;`` functionality (`5888 &lt;https://github.com/pypa/pip/issues/5888&gt;`_)
- Fix omission of command name in HTML usage documentation (`5984 &lt;https://github.com/pypa/pip/issues/5984&gt;`_)

18.1

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

Features
--------

- Allow PEP 508 URL requirements to be used as dependencies.

As a security measure, pip will raise an exception when installing packages from
PyPI if those packages depend on packages not also hosted on PyPI.
In the future, PyPI will block uploading packages with such external URL dependencies directly. (`4187 &lt;https://github.com/pypa/pip/issues/4187&gt;`_)
- Allows dist options (--abi, --python-version, --platform, --implementation) when installing with --target (`5355 &lt;https://github.com/pypa/pip/issues/5355&gt;`_)
- Support passing ``svn+ssh`` URLs with a username to ``pip install -e``. (`5375 &lt;https://github.com/pypa/pip/issues/5375&gt;`_)
- pip now ensures that the RECORD file is sorted when installing from a wheel file. (`5525 &lt;https://github.com/pypa/pip/issues/5525&gt;`_)
- Add support for Python 3.7. (`5561 &lt;https://github.com/pypa/pip/issues/5561&gt;`_)
- Malformed configuration files now show helpful error messages, instead of tracebacks. (`5798 &lt;https://github.com/pypa/pip/issues/5798&gt;`_)

Bug Fixes
---------

- Checkout the correct branch when doing an editable Git install. (`2037 &lt;https://github.com/pypa/pip/issues/2037&gt;`_)
- Run self-version-check only on commands that may access the index, instead of
trying on every run and failing to do so due to missing options. (`5433 &lt;https://github.com/pypa/pip/issues/5433&gt;`_)
- Allow a Git ref to be installed over an existing installation. (`5624 &lt;https://github.com/pypa/pip/issues/5624&gt;`_)
- Show a better error message when a configuration option has an invalid value. (`5644 &lt;https://github.com/pypa/pip/issues/5644&gt;`_)
- Always revalidate cached simple API pages instead of blindly caching them for up to 10
minutes. (`5670 &lt;https://github.com/pypa/pip/issues/5670&gt;`_)
- Avoid caching self-version-check information when cache is disabled. (`5679 &lt;https://github.com/pypa/pip/issues/5679&gt;`_)
- Avoid traceback printing on autocomplete after flags in the CLI. (`5751 &lt;https://github.com/pypa/pip/issues/5751&gt;`_)
- Fix incorrect parsing of egg names if pip needs to guess the package name. (`5819 &lt;https://github.com/pypa/pip/issues/5819&gt;`_)

Vendored Libraries
------------------

- Upgrade certifi to 2018.8.24
- Upgrade packaging to 18.0
- Upgrade pyparsing to 2.2.1
- Add pep517 version 0.2
- Upgrade pytoml to 0.1.19
- Upgrade pkg_resources to 40.4.3 (via setuptools)

Improved Documentation
----------------------

- Fix &quot;Requirements Files&quot; reference in User Guide (`user_guide_fix_requirements_file_ref &lt;https://github.com/pypa/pip/issues/user_guide_fix_requirements_file_ref&gt;`_)

18.0

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

Process
-------

- Switch to a Calendar based versioning scheme.
- Formally document our deprecation process as a minimum of 6 months of deprecation
warnings.
- Adopt and document NEWS fragment writing style.
- Switch to releasing a new, non-bug fix version of pip every 3 months.

Deprecations and Removals
-------------------------

- Remove the legacy format from pip list. (3651, 3654)
- Dropped support for Python 3.3. (3796)
- Remove support for cleaning up egg fragment postfixes. (4174)
- Remove the shim for the old get-pip.py location. (5520)

For the past 2 years, it&#39;s only been redirecting users to use the newer
https://bootstrap.pypa.io/get-pip.py location.

Features
--------

- Introduce a new --prefer-binary flag, to prefer older wheels over newer source packages. (3785)
- Improve autocompletion function on file name completion after options
which have ``&lt;file&gt;``, ``&lt;dir&gt;`` or ``&lt;path&gt;`` as metavar. (4842, 5125)
- Add support for installing PEP 518 build dependencies from source. (5229)
- Improve status message when upgrade is skipped due to only-if-needed strategy. (5319)

Bug Fixes
---------

- Update pip&#39;s self-check logic to not use a virtualenv specific file and honor cache-dir. (3905)
- Remove compiled pyo files for wheel packages. (4471)
- Speed up printing of newly installed package versions. (5127)
- Restrict install time dependency warnings to directly-dependant packages. (5196, 5457)

Warning about the entire package set has resulted in users getting confused as
to why pip is printing these warnings.
- Improve handling of PEP 518 build requirements: support environment markers and extras. (5230, 5265)
- Remove username/password from log message when using index with basic auth. (5249)
- Remove trailing os.sep from PATH directories to avoid false negatives. (5293)
- Fix &quot;pip wheel pip&quot; being blocked by the &quot;don&#39;t use pip to modify itself&quot; check. (5311, 5312)
- Disable pip&#39;s version check (and upgrade message) when installed by a different package manager. (5346)

This works better with Linux distributions where pip&#39;s upgrade message may
result in users running pip in a manner that modifies files that should be
managed by the OS&#39;s package manager.
- Check for file existence and unlink first when clobbering existing files during a wheel install. (5366)
- Improve error message to be more specific when no files are found as listed in as listed in PKG-INFO. (5381)
- Always read ``pyproject.toml`` as UTF-8. This fixes Unicode handling on Windows and Python 2. (5482)
- Fix a crash that occurs when PATH not set, while generating script location warning. (5558)
- Disallow packages with ``pyproject.toml`` files that have an empty build-system table. (5627)

Vendored Libraries
------------------

- Update CacheControl to 0.12.5.
- Update certifi to 2018.4.16.
- Update distro to 1.3.0.
- Update idna to 2.7.
- Update ipaddress to 1.0.22.
- Update pkg_resources to 39.2.0 (via setuptools).
- Update progress to 1.4.
- Update pytoml to 0.1.16.
- Update requests to 2.19.1.
- Update urllib3 to 1.23.

Improved Documentation
----------------------

- Document how to use pip with a proxy server. (512, 5574)
- Document that the output of pip show is in RFC-compliant mail header format. (5261)

10.0.1

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

Features
--------

- Switch the default repository to the new &quot;PyPI 2.0&quot; running at
https://pypi.org/. (5214)

Bug Fixes
---------

- Fix a bug that made get-pip.py unusable on Windows without renaming. (5219)
- Fix a TypeError when loading the cache on older versions of Python 2.7.
(5231)
- Fix and improve error message when EnvironmentError occurs during
installation. (5237)
- A crash when reinstalling from VCS requirements has been fixed. (5251)
- Fix PEP 518 support when pip is installed in the user site. (5524)

Vendored Libraries
------------------

- Upgrade distlib to 0.2.7

10.0.0

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

Bug Fixes
---------

- Prevent false-positive installation warnings due to incomplete name
normalization. (5134)
- Fix issue where installing from Git with a short SHA would fail. (5140)
- Accept pre-release versions when checking for conflicts with pip check or pip
install. (5141)
- ``ioctl(fd, termios.TIOCGWINSZ, ...)`` needs 8 bytes of data (5150)
- Do not warn about script location when installing to the directory containing
sys.executable. This is the case when &#39;pip install&#39;ing without activating a
virtualenv. (5157)
- Fix PEP 518 support. (5188)
- Don&#39;t warn about script locations if ``--target`` is specified. (5203)

10.0.0b2

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

Bug Fixes
---------

- Fixed line endings in CA Bundle - 10.0.0b1 was inadvertently released with Windows
line endings. (5131)

10.0.0b1

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

Deprecations and Removals
-------------------------

- Removed the deprecated ``--egg`` parameter to ``pip install``. (1749)
- Removed support for uninstalling projects which have been installed using
distutils. distutils installed projects do not include metadata indicating
what files belong to that install and thus it is impossible to *actually*
uninstall them rather than just remove the metadata saying they&#39;ve been
installed while leaving all of the actual files behind. (2386)
- Removed the deprecated ``--download`` option to ``pip install``. (2643)
- Removed the deprecated --(no-)use-wheel flags to ``pip install`` and ``pip
wheel``. (2699)
- Removed the deprecated ``--allow-external``, ``--allow-all-external``, and
``--allow-unverified`` options. (3070)
- Switch the default for ``pip list`` to the columns format, and deprecate the
legacy format. (3654, 3686)
- Deprecate support for Python 3.3. (3796)
- Removed the deprecated ``--default-vcs`` option. (4052)
- Removed the ``setup.py test`` support from our sdist as it wasn&#39;t being
maintained as a supported means to run our tests. (4203)
- Dropped support for Python 2.6. (4343)
- Removed the --editable flag from pip download, as it did not make sense
(4362)
- Deprecate SVN detection based on dependency links in ``pip freeze``. (4449)
- Move all of pip&#39;s APIs into the pip._internal package, properly reflecting
the fact that pip does not currently have any public APIs. (4696, 4700)

Features
--------

- Add `--progress-bar &lt;progress_bar&gt;` to ``pip download``, ``pip install`` and
``pip wheel`` commands, to allow selecting a specific progress indicator or,
to completely suppress, (for example in a CI environment) use
``--progress-bar off. (2369, 2756)
- Add `--no-color` to `pip`. All colored output is disabled if this flag is
detected. (2449)
- pip uninstall now ignores the absence of a requirement and prints a warning.
(3016, 4642)
- Improved the memory and disk efficiency of the HTTP cache. (3515)
- Support for packages specifying build dependencies in pyproject.toml (see
`PEP 518 &lt;https://www.python.org/dev/peps/pep-0518/&gt;`__). Packages which
specify one or more build dependencies this way will be built into wheels in
an isolated environment with those dependencies installed. (3691)
- pip now supports environment variable expansion in requirement files using
only ``${VARIABLE}`` syntax on all platforms. (3728)
- Allowed combinations of -q and -v to act sanely. Then we don&#39;t need warnings
mentioned in the issue. (4008)
- Add `--exclude-editable` to ``pip freeze`` and ``pip list`` to exclude
editable packages from installed package list. (4015, 4016)
- Improve the error message for the common ``pip install ./requirements.txt``
case. (4127)
- Add support for the new `` url`` syntax from PEP 508. (4175)
- Add setuptools version to the statistics sent to BigQuery. (4209)
- Report the line which caused the hash error when using requirement files.
(4227)
- Add a pip config command for managing configuration files. (4240)
- Allow ``pip download`` to be used with a specific platform when ``--no-deps``
is set. (4289)
- Support build-numbers in wheel versions and support sorting with
build-numbers. (4299)
- Change pip outdated to use PackageFinder in order to do the version lookup so
that local mirrors in Environments that do not have Internet connections can
be used as the Source of Truth for latest version. (4336)
- pip now retries on more HTTP status codes, for intermittent failures.
Previously, it only retried on the standard 503. Now, it also retries on 500
(transient failures on AWS S3), 520 and 527 (transient failures on
Cloudflare). (4473)
- pip now displays where it is looking for packages, if non-default locations
are used. (4483)
- Display a message to run the right command for modifying pip on Windows
(4490)
- Add Man Pages for pip (4491)
- Make uninstall command less verbose by default (4493)
- Switch the default upgrade strategy to be &#39;only-if-needed&#39; (4500)
- Installing from a local directory or a VCS URL now builds a wheel to install,
rather than running ``setup.py install``. Wheels from these sources are not
cached. (4501)
- Don&#39;t log a warning when installing a dependency from Git if the name looks
like a commit hash. (4507)
- pip now displays a warning when it installs scripts from a wheel outside the
PATH. These warnings can be suppressed using a new --no-warn-script-location
option. (4553)
- Local Packages can now be referenced using forward slashes on Windows.
(4563)
- pip show learnt a new Required-by field that lists currently installed
packages that depend on the shown package (4564)
- The command-line autocompletion engine ``pip show`` now autocompletes
installed distribution names. (4749)
- Change documentation theme to be in line with Python Documentation (4758)
- Add auto completion of short options. (4954)
- Run &#39;setup.py develop&#39; inside pep518 build environment. (4999)
- pip install now prints an error message when it installs an incompatible
version of a dependency. (5000)
- Added a way to distinguish between pip installed packages and those from the
system package manager in &#39;pip list&#39;. Specifically, &#39;pip list -v&#39; also shows
the installer of package if it has that meta data. (949)
- Show install locations when list command ran with &quot;-v&quot; option. (979)

Bug Fixes
---------

- Allow pip to work if the ``GIT_DIR`` and ``GIT_WORK_TREE`` environment
variables are set. (1130)
- Make ``pip install --force-reinstall`` not require passing ``--upgrade``.
(1139)
- Return a failing exit status when `pip install`, `pip download`, or `pip
wheel` is called with no requirements. (2720)
- Interactive setup.py files will no longer hang indefinitely. (2732, 4982)
- Correctly reset the terminal if an exception occurs while a progress bar is
being shown. (3015)
- &quot;Support URL-encoded characters in URL credentials.&quot; (3236)
- Don&#39;t assume sys.__stderr__.encoding exists (3356)
- Fix ``pip uninstall`` when ``easy-install.pth`` lacks a trailing newline.
(3741)
- Keep install options in requirements.txt from leaking. (3763)
- pip no longer passes global options from one package to later packages in the
same requirement file. (3830)
- Support installing from Git refs (3876)
- Use pkg_resources to parse the entry points file to allow names with colons.
(3901)
- ``-q`` specified once correctly sets logging level to WARNING, instead of
CRITICAL. Use `-qqq` to have the previous behavior back. (3994)
- Shell completion scripts now use correct executable names (e.g., ``pip3``
instead of ``pip``) (3997)
- Changed vendored encodings from ``utf8`` to ``utf-8``. (4076)
- Fixes destination directory of data_files when ``pip install --target`` is
used. (4092)
- Limit the disabling of requests&#39; pyopenssl to Windows only. Fixes
&quot;SNIMissingWarning / InsecurePlatformWarning not fixable with pip 9.0 /
9.0.1&quot; (for non-Windows) (4098)
- Support the installation of wheels with non-PEP 440 version in their
filenames. (4169)
- Fall back to sys.getdefaultencoding() if locale.getpreferredencoding()
returns None in `pip.utils.encoding.auto_decode`. (4184)
- Fix a bug where `SETUPTOOLS_SHIM` got called incorrectly for relative path
requirements by converting relative paths to absolute paths prior to calling
the shim. (4208)
- Return the latest version number in search results. (4219)
- Improve error message on permission errors (4233)
- Fail gracefully when ``/etc/image_version`` (or another distro version file)
appears to exists but is not readable. (4249)
- Avoid importing setuptools in the parent pip process, to avoid a race
condition when upgrading one of setuptools dependencies. (4264)
- Fix for an incorrect ``freeze`` warning message due to a package being
included in multiple requirements files that were passed to ``freeze``.
Instead of warning incorrectly that the package is not installed, pip now
warns that the package was declared multiple times and lists the name of each
requirements file that contains the package in question. (4293)
- Generalize help text for ``compile``/``no-compile`` flags. (4316)
- Handle the case when ``/etc`` is not readable by the current user by using a
hardcoded list of possible names of release files. (4320)
- Fixed a ``NameError`` when attempting to catch ``FileNotFoundError`` on
Python 2.7. (4322)
- Ensure USER_SITE is correctly initialised. (4437)
- Reinstalling an editable package from Git no longer assumes that the
``master`` branch exists. (4448)
- This fixes an issue where when someone who tries to use git with pip but pip
can&#39;t because git is not in the path environment variable. This clarifies the
error given to suggest to the user what might be wrong. (4461)
- Improve handling of text output from build tools (avoid Unicode errors)
(4486)
- Fix a &quot;No such file or directory&quot; error when using --prefix. (4495)
- Allow commands to opt out of --require-venv. This allows pip help to work
even when the environment variable PIP_REQUIRE_VIRTUALENV is set. (4496)
- Fix warning message on mismatched versions during installation. (4655)
- pip now records installed files in a deterministic manner improving
reproducibility. (4667)
- Fix an issue where ``pip install -e`` on a Git url would fail to update if a
branch or tag name is specified that happens to match the prefix of the
current ``HEAD`` commit hash. (4675)
- Fix an issue where a variable assigned in a try clause was accessed in the
except clause, resulting in an undefined variable error in the except clause.
(4811)
- Use log level `info` instead of `warning` when ignoring packages due to
environment markers. (4876)
- Replaced typo mistake in subversion support. (4908)
- Terminal size is now correctly inferred when using Python 3 on Windows.
(4966)
- Abort if reading configuration causes encoding errors. (4976)
- Add a ``--no-user`` option and use it when installing build dependencies.
(5085)

Vendored Libraries
------------------

- Upgraded appdirs to 1.4.3.
- Upgraded CacheControl to 0.12.3.
- Vendored certifi at 2017.7.27.1.
- Vendored chardet at 3.0.4.
- Upgraded colorama to 0.3.9.
- Upgraded distlib to 0.2.6.
- Upgraded distro to 1.2.0.
- Vendored idna at idna==2.6.
- Upgraded ipaddress to 1.0.18.
- Vendored msgpack-python at 0.4.8.
- Removed the vendored ordereddict.
- Upgraded progress to 1.3.
- Upgraded pyparsing to 2.2.0.
- Upgraded pytoml to 0.1.14.
- Upgraded requests to 2.18.4.
- Upgraded pkg_resources (via setuptools) to 36.6.0.
- Upgraded six to 1.11.0.
- Vendored urllib3 at 1.22.
- Upgraded webencodings to 0.5.1.

Improved Documentation
----------------------

- Added documentation on usage of --build command line option (4262)
-  (4358)
- Document how to call pip from your code, including the fact that we do not
provide a Python API. (4743)

9.0.3

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

- Fix an error where the vendored requests was not correctly containing itself
to only the internal vendored prefix.
- Restore compatibility with 2.6.

9.0.2

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

- Fallback to using SecureTransport on macOS when the linked OpenSSL is too old
to support TLSv1.2.

9.0.1

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

- Correct the deprecation message when not specifying a --format so that it
uses the correct setting name (``format``) rather than the incorrect one
(``list_format``). (4058)
- Fix ``pip check`` to check all available distributions and not just the
local ones. (4083)
- 
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin requests to latest version 2.24.0

This PR pins requests to the latest release 2.24.0.

<details> <summary>Changelog</summary>

2.24.0

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

**Improvements**

- pyOpenSSL TLS implementation is now only used if Python
either doesn&#39;t have an `ssl` module or doesn&#39;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&#39;t use it. (5496)

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.

2.22.0

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

**Dependencies**

- Requests now supports urllib3 v1.25.2.
(note: 1.25.0 and 1.25.1 are incompatible)

**Deprecations**

- Requests has officially stopped support for Python 3.4.

2.21.0

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

**Dependencies**

- Requests now supports idna v2.8.

2.20.1

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

**Bugfixes**

- Fixed bug with unintended Authorization header stripping for
redirects using default ports (http/80, https/443).

2.20.0

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

**Bugfixes**

-   Content-Type header parsing is now case-insensitive (e.g.
 charset=utf8 v Charset=utf8).
-   Fixed exception leak where certain redirect urls would raise
 uncaught urllib3 exceptions.
-   Requests removes Authorization header from requests redirected
 from https to http on the same hostname. (CVE-2018-18074)
-   `should_bypass_proxies` now handles URIs without hostnames (e.g.
 files).

**Dependencies**

- Requests now supports urllib3 v1.24.

**Deprecations**

- Requests has officially stopped support for Python 2.6.

2.19.1

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

**Bugfixes**

-   Fixed issue where status\_codes.py&#39;s `init` function failed trying
 to append to a `__doc__` value of `None`.

2.19.0

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

**Improvements**

-   Warn user about possible slowdown when using cryptography version
 &amp;lt; 1.3.4
-   Check for invalid host in proxy URL, before forwarding request to
 adapter.
-   Fragments are now properly maintained across redirects. (RFC7231
 7.1.2)
-   Removed use of cgi module to expedite library load time.
-   Added support for SHA-256 and SHA-512 digest auth algorithms.
-   Minor performance improvement to `Request.content`.
-   Migrate to using collections.abc for 3.7 compatibility.

**Bugfixes**

-   Parsing empty `Link` headers with `parse_header_links()` no longer
 return one bogus entry.
-   Fixed issue where loading the default certificate bundle from a zip
 archive would raise an `IOError`.
-   Fixed issue with unexpected `ImportError` on windows system which do
 not support `winreg` module.
-   DNS resolution in proxy bypass no longer includes the username and
 password in the request. This also fixes the issue of DNS queries
 failing on macOS.
-   Properly normalize adapter prefixes for url comparison.
-   Passing `None` as a file pointer to the `files` param no longer
 raises an exception.
-   Calling `copy` on a `RequestsCookieJar` will now preserve the cookie
 policy correctly.

**Dependencies**

-   We now support idna v2.7.
-   We now support urllib3 v1.23.

2.18.4

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

**Improvements**

-   Error messages for invalid headers now include the header name for
 easier debugging

**Dependencies**

-   We now support idna v2.6.

2.18.3

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

**Improvements**

-   Running `$ python -m requests.help` now includes the installed
 version of idna.

**Bugfixes**

-   Fixed issue where Requests would raise `ConnectionError` instead of
 `SSLError` when encountering SSL problems when using urllib3 v1.22.

2.18.2

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

**Bugfixes**

-   `requests.help` no longer fails on Python 2.6 due to the absence of
 `ssl.OPENSSL_VERSION_NUMBER`.

**Dependencies**

-   We now support urllib3 v1.22.

2.18.1

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

**Bugfixes**

-   Fix an error in the packaging whereby the `*.whl` contained
 incorrect data that regressed the fix in v2.17.3.

2.18.0

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

**Improvements**

-   `Response` is now a context manager, so can be used directly in a
 `with` statement without first having to be wrapped by
 `contextlib.closing()`.

**Bugfixes**

-   Resolve installation failure if multiprocessing is not available
-   Resolve tests crash if multiprocessing is not able to determine the
 number of CPU cores
-   Resolve error swallowing in utils set\_environ generator

2.17.3

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

**Improvements**

-   Improved `packages` namespace identity support, for monkeypatching
 libraries.

2.17.2

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

**Improvements**

-   Improved `packages` namespace identity support, for monkeypatching
 libraries.

2.17.1

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

**Improvements**

-   Improved `packages` namespace identity support, for monkeypatching
 libraries.

2.17.0

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

**Improvements**

-   Removal of the 301 redirect cache. This improves thread-safety.

2.16.5

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

-   Improvements to `$ python -m requests.help`.

2.16.4

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

-   Introduction of the `$ python -m requests.help` command, for
 debugging with maintainers!

2.16.3

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

-   Further restored the `requests.packages` namespace for compatibility
 reasons.

2.16.2

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

-   Further restored the `requests.packages` namespace for compatibility
 reasons.

No code modification (noted below) should be necessary any longer.

2.16.1

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

-   Restored the `requests.packages` namespace for compatibility
 reasons.
-   Bugfix for `urllib3` version parsing.

**Note**: code that was written to import against the
`requests.packages` namespace previously will have to import code that
rests at this module-level now.

For example:

 from requests.packages.urllib3.poolmanager import PoolManager

Will need to be re-written to be:

 from requests.packages import urllib3
 urllib3.poolmanager.PoolManager

Or, even better:

 from urllib3.poolmanager import PoolManager

2.16.0

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

-   Unvendor ALL the things!

2.15.1

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

-   Everyone makes mistakes.

2.15.0

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

**Improvements**

-   Introduction of the `Response.next` property, for getting the next
 `PreparedResponse` from a redirect chain (when
 `allow_redirects=False`).
-   Internal refactoring of `__version__` module.

**Bugfixes**

-   Restored once-optional parameter for
 `requests.utils.get_environ_proxies()`.

2.14.2

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

**Bugfixes**

-   Changed a less-than to an equal-to and an or in the dependency
 markers to widen compatibility with older setuptools releases.

2.14.1

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

**Bugfixes**

-   Changed the dependency markers to widen compatibility with older pip
 releases.

2.14.0

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

**Improvements**

-   It is now possible to pass `no_proxy` as a key to the `proxies`
 dictionary to provide handling similar to the `NO_PROXY` environment
 variable.
-   When users provide invalid paths to certificate bundle files or
 directories Requests now raises `IOError`, rather than failing at
 the time of the HTTPS request with a fairly inscrutable certificate
 validation error.
-   The behavior of `SessionRedirectMixin` was slightly altered.
 `resolve_redirects` will now detect a redirect by calling
 `get_redirect_target(response)` instead of directly querying
 `Response.is_redirect` and `Response.headers[&#39;location&#39;]`. Advanced
 users will be able to process malformed redirects more easily.
-   Changed the internal calculation of elapsed request time to have
 higher resolution on Windows.
-   Added `win_inet_pton` as conditional dependency for the `[socks]`
 extra on Windows with Python 2.7.
-   Changed the proxy bypass implementation on Windows: the proxy bypass
 check doesn&#39;t use forward and reverse DNS requests anymore
-   URLs with schemes that begin with `http` but are not `http` or
 `https` no longer have their host parts forced to lowercase.

**Bugfixes**

-   Much improved handling of non-ASCII `Location` header values in
 redirects. Fewer `UnicodeDecodeErrors` are encountered on Python 2,
 and Python 3 now correctly understands that Latin-1 is unlikely to
 be the correct encoding.
-   If an attempt to `seek` file to find out its length fails, we now
 appropriately handle that by aborting our content-length
 calculations.
-   Restricted `HTTPDigestAuth` to only respond to auth challenges made
 on 4XX responses, rather than to all auth challenges.
-   Fixed some code that was firing `DeprecationWarning` on Python 3.6.
-   The dismayed person emoticon (`/o\\`) no longer has a big head. I&#39;m
 sure this is what you were all worrying about most.

**Miscellaneous**

-   Updated bundled urllib3 to v1.21.1.
-   Updated bundled chardet to v3.0.2.
-   Updated bundled idna to v2.5.
-   Updated bundled certifi to 2017.4.17.

2.13.0

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

**Features**

-   Only load the `idna` library when we&#39;ve determined we need it. This
 will save some memory for users.

**Miscellaneous**

-   Updated bundled urllib3 to 1.20.
-   Updated bundled idna to 2.2.

2.12.5

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

**Bugfixes**

-   Fixed an issue with JSON encoding detection, specifically detecting
 big-endian UTF-32 with BOM.

2.12.4

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

**Bugfixes**

-   Fixed regression from 2.12.2 where non-string types were rejected in
 the basic auth parameters. While support for this behaviour has been
 readded, the behaviour is deprecated and will be removed in the
 future.

2.12.3

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

**Bugfixes**

-   Fixed regression from v2.12.1 for URLs with schemes that begin with
 &quot;http&quot;. These URLs have historically been processed as though they
 were HTTP-schemed URLs, and so have had parameters added. This was
 removed in v2.12.2 in an overzealous attempt to resolve problems
 with IDNA-encoding those URLs. This change was reverted: the other
 fixes for IDNA-encoding have been judged to be sufficient to return
 to the behaviour Requests had before v2.12.0.

2.12.2

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

**Bugfixes**

-   Fixed several issues with IDNA-encoding URLs that are technically
 invalid but which are widely accepted. Requests will now attempt to
 IDNA-encode a URL if it can but, if it fails, and the host contains
 only ASCII characters, it will be passed through optimistically.
 This will allow users to opt-in to using IDNA2003 themselves if they
 want to, and will also allow technically invalid but still common
 hostnames.
-   Fixed an issue where URLs with leading whitespace would raise
 `InvalidSchema` errors.
-   Fixed an issue where some URLs without the HTTP or HTTPS schemes
 would still have HTTP URL preparation applied to them.
-   Fixed an issue where Unicode strings could not be used in basic
 auth.
-   Fixed an issue encountered by some Requests plugins where
 constructing a Response object would cause `Response.content` to
 raise an `AttributeError`.

2.12.1

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

**Bugfixes**

-   Updated setuptools &#39;security&#39; extra for the new PyOpenSSL backend in
 urllib3.

**Miscellaneous**

-   Updated bundled urllib3 to 1.19.1.

2.12.0

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

**Improvements**

-   Updated support for internationalized domain names from IDNA2003 to
 IDNA2008. This updated support is required for several forms of IDNs
 and is mandatory for .de domains.
-   Much improved heuristics for guessing content lengths: Requests will
 no longer read an entire `StringIO` into memory.
-   Much improved logic for recalculating `Content-Length` headers for
 `PreparedRequest` objects.
-   Improved tolerance for file-like objects that have no `tell` method
 but do have a `seek` method.
-   Anything that is a subclass of `Mapping` is now treated like a
 dictionary by the `data=` keyword argument.
-   Requests now tolerates empty passwords in proxy credentials, rather
 than stripping the credentials.
-   If a request is made with a file-like object as the body and that
 request is redirected with a 307 or 308 status code, Requests will
 now attempt to rewind the body object so it can be replayed.

**Bugfixes**

-   When calling `response.close`, the call to `close` will be
 propagated through to non-urllib3 backends.
-   Fixed issue where the `ALL_PROXY` environment variable would be
 preferred over scheme-specific variables like `HTTP_PROXY`.
-   Fixed issue where non-UTF8 reason phrases got severely mangled by
 falling back to decoding using ISO 8859-1 instead.
-   Fixed a bug where Requests would not correctly correlate cookies set
 when using custom Host headers if those Host headers did not use the
 native string type for the platform.

**Miscellaneous**

-   Updated bundled urllib3 to 1.19.
-   Updated bundled certifi certs to 2016.09.26.

2.11.1

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

**Bugfixes**

-   Fixed a bug when using `iter_content` with `decode_unicode=True` for
 streamed bodies would raise `AttributeError`. This bug was
 introduced in 2.11.
-   Strip Content-Type and Transfer-Encoding headers from the header
 block when following a redirect that transforms the verb from
 POST/PUT to GET.

2.11.0

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

**Improvements**

-   Added support for the `ALL_PROXY` environment variable.
-   Reject header values that contain leading whitespace or newline
 characters to reduce risk of header smuggling.

**Bugfixes**

-   Fixed occasional `TypeError` when attempting to decode a JSON
 response that occurred in an error case. Now correctly returns a
 `ValueError`.
-   Requests would incorrectly ignore a non-CIDR IP address in the
 `NO_PROXY` environment variables: Requests now treats it as a
 specific IP.
-   Fixed a bug when sending JSON data that could cause us to encounter
 obscure OpenSSL errors in certain network conditions (yes, really).
-   Added type checks to ensure that `iter_content` only accepts
 integers and `None` for chunk sizes.
-   Fixed issue where responses whose body had not been fully consumed
 would have the underlying connection closed but not returned to the
 connection pool, which could cause Requests to hang in situations
 where the `HTTPAdapter` had been configured to use a blocking
 connection pool.

**Miscellaneous**

-   Updated bundled urllib3 to 1.16.
-   Some previous releases accidentally accepted non-strings as
 acceptable header values. This release does not.

2.10.0

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

**New Features**

-   SOCKS Proxy Support! (requires PySocks;
 `$ pip install requests[socks]`)

**Miscellaneous**

-   Updated bundled urllib3 to 1.15.1.

2.9.2

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

**Improvements**

-   Change built-in CaseInsensitiveDict (used for headers) to use
 OrderedDict as its underlying datastore.

**Bugfixes**

-   Don&#39;t use redirect\_cache if allow\_redirects=False
-   When passed objects that throw exceptions from `tell()`, send them
 via chunked transfer encoding instead of failing.
-   Raise a ProxyError for proxy related connection issues.

2.9.1

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

**Bugfixes**

-   Resolve regression introduced in 2.9.0 that made it impossible to
 send binary strings as bodies in Python 3.
-   Fixed errors when calculating cookie expiration dates in certain
 locales.

**Miscellaneous**

-   Updated bundled urllib3 to 1.13.1.

2.9.0

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

**Minor Improvements** (Backwards compatible)

-   The `verify` keyword argument now supports being passed a path to a
 directory of CA certificates, not just a single-file bundle.
-   Warnings are now emitted when sending files opened in text mode.
-   Added the 511 Network Authentication Required status code to the
 status code registry.

**Bugfixes**

-   For file-like objects that are not sought to the very beginning, we
 now send the content length for the number of bytes we will actually
 read, rather than the total size of the file, allowing partial file
 uploads.
-   When uploading file-like objects, if they are empty or have no
 obvious content length we set `Transfer-Encoding: chunked` rather
 than `Content-Length: 0`.
-   We correctly receive the response in buffered mode when uploading
 chunked bodies.
-   We now handle being passed a query string as a bytestring on Python
 3, by decoding it as UTF-8.
-   Sessions are now closed in all cases (exceptional and not) when
 using the functional API rather than leaking and waiting for the
 garbage collector to clean them up.
-   Correctly handle digest auth headers with a malformed `qop`
 directive that contains no token, by treating it the same as if no
 `qop` directive was provided at all.
-   Minor performance improvements when removing specific cookies by
 name.

**Miscellaneous**

-   Updated urllib3 to 1.13.

2.8.1

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

**Bugfixes**

-   Update certificate bundle to match `certifi` 2015.9.6.2&#39;s weak
 certificate bundle.
-   Fix a bug in 2.8.0 where requests would raise `ConnectTimeout`
 instead of `ConnectionError`
-   When using the PreparedRequest flow, requests will now correctly
 respect the `json` parameter. Broken in 2.8.0.
-   When using the PreparedRequest flow, requests will now correctly
 handle a Unicode-string method name on Python 2. Broken in 2.8.0.

2.8.0

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

**Minor Improvements** (Backwards Compatible)

-   Requests now supports per-host proxies. This allows the `proxies`
 dictionary to have entries of the form
 `{&#39;&lt;scheme&gt;://&lt;hostname&gt;&#39;: &#39;&lt;proxy&gt;&#39;}`. Host-specific proxies will
 be used in preference to the previously-supported scheme-specific
 ones, but the previous syntax will continue to work.
-   `Response.raise_for_status` now prints the URL that failed as part
 of the exception message.
-   `requests.utils.get_netrc_auth` now takes an `raise_errors` kwarg,
 defaulting to `False`. When `True`, errors parsing `.netrc` files
 cause exceptions to be thrown.
-   Change to bundled projects import logic to make it easier to
 unbundle requests downstream.
-   Changed the default User-Agent string to avoid leaking data on
 Linux: now contains only the requests version.

**Bugfixes**

-   The `json` parameter to `post()` and friends will now only be used
 if neither `data` nor `files` are present, consistent with the
 documentation.
-   We now ignore empty fields in the `NO_PROXY` environment variable.
-   Fixed problem where `httplib.BadStatusLine` would get raised if
 combining `stream=True` with `contextlib.closing`.
-   Prevented bugs where we would attempt to return the same connection
 back to the connection pool twice when sending a Chunked body.
-   Miscellaneous minor internal changes.
-   Digest Auth support is now thread safe.

**Updates**

-   Updated urllib3 to 1.12.

2.7.0

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

This is the first release that follows our new release process. For
more, see [our
documentation](https://requests.readthedocs.io/en/latest/community/release-process/).

**Bugfixes**

-   Updated urllib3 to 1.10.4, resolving several bugs involving chunked
 transfer encoding and response framing.

2.6.2

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

**Bugfixes**

-   Fix regression where compressed data that was sent as chunked data
 was not properly decompressed. (\2561)

2.6.1

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

**Bugfixes**

-   Remove VendorAlias import machinery introduced in v2.5.2.
-   Simplify the PreparedRequest.prepare API: We no longer require the
 user to pass an empty list to the hooks keyword argument. (c.f.
 \2552)
-   Resolve redirects now receives and forwards all of the original
 arguments to the adapter. (\2503)
-   Handle UnicodeDecodeErrors when trying to deal with a unicode URL
 that cannot be encoded in ASCII. (\2540)
-   Populate the parsed path of the URI field when performing Digest
 Authentication. (\2426)
-   Copy a PreparedRequest&#39;s CookieJar more reliably when it is not an
 instance of RequestsCookieJar. (\2527)

2.6.0

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

**Bugfixes**

-   CVE-2015-2296: Fix handling of cookies on redirect. Previously a
 cookie without a host value set would use the hostname for the
 redirected URL exposing requests users to session fixation attacks
 and potentially cookie stealing. This was disclosed privately by
 Matthew Daley of [BugFuzz](https://bugfuzz.com). This affects all
 versions of requests from v2.1.0 to v2.5.3 (inclusive on both ends).
-   Fix error when requests is an `install_requires` dependency and
 `python setup.py test` is run. (\2462)
-   Fix error when urllib3 is unbundled and requests continues to use
 the vendored import location.
-   Include fixes to `urllib3`&#39;s header handling.
-   Requests&#39; handling of unvendored dependencies is now more
 restrictive.

**Features and Improvements**

-   Support bytearrays when passed as parameters in the `files`
 argument. (\2468)
-   Avoid data duplication when creating a request with `str`, `bytes`,
 or `bytearray` input to the `files` argument.

2.5.3

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

**Bugfixes**

-   Revert changes to our vendored certificate bundle. For more context
 see (\2455, \2456, and &lt;https://bugs.python.org/issue23476&gt;)

2.5.2

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

**Features and Improvements**

-   Add sha256 fingerprint support.
 ([shazow/urllib3\540](https://github.com/shazow/urllib3/pull/540))
-   Improve the performance of headers.
 ([shazow/urllib3\544](https://github.com/shazow/urllib3/pull/544))

**Bugfixes**

-   Copy pip&#39;s import machinery. When downstream redistributors remove
 requests.packages.urllib3 the import machinery will continue to let
 those same symbols work. Example usage in requests&#39; documentation
 and 3rd-party libraries relying on the vendored copies of urllib3
 will work without having to fallback to the system urllib3.
-   Attempt to quote parts of the URL on redirect if unquoting and then
 quoting fails. (\2356)
-   Fix filename type check for multipart form-data uploads. (\2411)
-   Properly handle the case where a server issuing digest
 authentication challenges provides both auth and auth-int
 qop-values. (\2408)
-   Fix a socket leak.
 ([shazow/urllib3\549](https://github.com/shazow/urllib3/pull/549))
-   Fix multiple `Set-Cookie` headers properly.
 ([shazow/urllib3\534](https://github.com/shazow/urllib3/pull/534))
-   Disable the built-in hostname verification.
 ([shazow/urllib3\526](https://github.com/shazow/urllib3/pull/526))
-   Fix the behaviour of decoding an exhausted stream.
 ([shazow/urllib3\535](https://github.com/shazow/urllib3/pull/535))

**Security**

-   Pulled in an updated `cacert.pem`.
-   Drop RC4 from the default cipher list.
 ([shazow/urllib3\551](https://github.com/shazow/urllib3/pull/551))

2.5.1

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

**Behavioural Changes**

-   Only catch HTTPErrors in raise\_for\_status (\2382)

**Bugfixes**

-   Handle LocationParseError from urllib3 (\2344)
-   Handle file-like object filenames that are not strings (\2379)
-   Unbreak HTTPDigestAuth handler. Allow new nonces to be negotiated
 (\2389)

2.5.0

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

**Improvements**

-   Allow usage of urllib3&#39;s Retry object with HTTPAdapters (\2216)
-   The `iter_lines` method on a response now accepts a delimiter with
 which to split the content (\2295)

**Behavioural Changes**

-   Add deprecation warnings to functions in requests.utils that will be
 removed in 3.0 (\2309)
-   Sessions used by the functional API are always closed (\2326)
-   Restrict requests to HTTP/1.1 and HTTP/1.0 (stop accepting HTTP/0.9)
 (\2323)

**Bugfixes**

-   Only parse the URL once (\2353)
-   Allow Content-Length header to always be overridden (\2332)
-   Properly handle files in HTTPDigestAuth (\2333)
-   Cap redirect\_cache size to prevent memory abuse (\2299)
-   Fix HTTPDigestAuth handling of redirects after authenticating
 successfully (\2253)
-   Fix crash with custom method parameter to Session.request (\2317)
-   Fix how Link headers are parsed using the regular expression library
 (\2271)

**Documentation**

-   Add more references for interlinking (\2348)
-   Update CSS for theme (\2290)
-   Update width of buttons and sidebar (\2289)
-   Replace references of Gittip with Gratipay (\2282)
-   Add link to changelog in sidebar (\2273)

2.4.3

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

**Bugfixes**

-   Unicode URL improvements for Python 2.
-   Re-order JSON param for backwards compat.
-   Automatically defrag authentication schemes from host/pass URIs.
 ([\2249](https://github.com/psf/requests/issues/2249))

2.4.2

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

**Improvements**

-   FINALLY! Add json parameter for uploads!
 ([\2258](https://github.com/psf/requests/pull/2258))
-   Support for bytestring URLs on Python 3.x
 ([\2238](https://github.com/psf/requests/pull/2238))

**Bugfixes**

-   Avoid getting stuck in a loop
 ([\2244](https://github.com/psf/requests/pull/2244))
-   Multiple calls to iter\* fail with unhelpful error.
 ([\2240](https://github.com/psf/requests/issues/2240),
 [\2241](https://github.com/psf/requests/issues/2241))

**Documentation**

-   Correct redirection introduction
 ([\2245](https://github.com/psf/requests/pull/2245/))
-   Added example of how to send multiple files in one request.
 ([\2227](https://github.com/psf/requests/pull/2227/))
-   Clarify how to pass a custom set of CAs
 ([\2248](https://github.com/psf/requests/pull/2248/))

2.4.1

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

-   Now has a &quot;security&quot; package extras set,
 `$ pip install requests[security]`
-   Requests will now use Certifi if it is available.
-   Capture and re-raise urllib3 ProtocolError
-   Bugfix for responses that attempt to redirect to themselves forever
 (wtf?).

2.4.0

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

**Behavioral Changes**

-   `Connection: keep-alive` header is now sent automatically.

**Improvements**

-   Support for connect timeouts! Timeout now accepts a tuple (connect,
 read) which is used to set individual connect and read timeouts.
-   Allow copying of PreparedRequests without headers/cookies.
-   Updated bundled urllib3 version.
-   Refactored settings loading from environment -- new
 Session.merge\_environment\_settings.
-   Handle socket errors in iter\_content.

2.3.0

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

**API Changes**

-   New `Response` property `is_redirect`, which is true when the
 library could have processed this response as a redirection (whether
 or not it actually did).
-   The `timeout` parameter now affects requests with both `stream=True`
 and `stream=False` equally.
-   The change in v2.0.0 to mandate explicit proxy schemes has been
 reverted. Proxy schemes now default to `http://`.
-   The `CaseInsensitiveDict` used for HTTP headers now behaves like a
 normal dictionary when references as string or viewed in the
 interpreter.

**Bugfixes**

-   No longer expose Authorization or Proxy-Authorization headers on
 redirect. Fix CVE-2014-1829 and CVE-2014-1830 respectively.
-   Authorization is re-evaluated each redirect.
-   On redirect, pass url as native strings.
-   Fall-back to autodetected encoding for JSON when Unicode detection
 fails.
-   Headers set to `None` on the `Session` are now correctly not sent.
-   Correctly honor `decode_unicode` even if it wasn&#39;t used earlier in
 the same response.
-   Stop advertising `compress` as a supported Content-Encoding.
-   The `Response.history` parameter is now always a list.
-   Many, many `urllib3` bugfixes.

2.2.1

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

**Bugfixes**

-   Fixes incorrect parsing of proxy credentials that contain a literal
 or encoded &#39;\&#39; character.
-   Assorted urllib3 fixes.

2.2.0

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

**API Changes**

-   New exception: `ContentDecodingError`. Raised instead of `urllib3`
 `DecodeError` exceptions.

**Bugfixes**

-   Avoid many many exceptions from the buggy implementation of
 `proxy_bypass` on OS X in Python 2.6.
-   Avoid crashing when attempting to get authentication credentials
 from \~/.netrc when running as a user without a home directory.
-   Use the correct pool size for pools of connections to proxies.
-   Fix iteration of `CookieJar` objects.
-   Ensure that cookies are persisted over redirect.
-   Switch back to using chardet, since it has merged with charade.

2.1.0

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

-   Updated CA Bundle, of course.
-   Cookies set on individual Requests through a `Session` (e.g. via
 `Session.get()`) are no longer persisted to the `Session`.
-   Clean up connections when we hit problems during chunked upload,
 rather than leaking them.
-   Return connections to the pool when a chunked upload is successful,
 rather than leaking it.
-   Match the HTTPbis recommendation for HTTP 301 redirects.
-   Prevent hanging when using streaming uploads and Digest Auth when a
 401 is received.
-   Values of headers set by Requests are now always the native string
 type.
-   Fix previously broken SNI support.
-   Fix accessing HTTP proxies using proxy authentication.
-   Unencode HTTP Basic usernames and passwords extracted from URLs.
-   Support for IP address ranges for no\_proxy environment variable
-   Parse headers correctly when users override the default `Host:`
 header.
-   Avoid munging the URL in case of case-sensitive servers.
-   Looser URL handling for non-HTTP/HTTPS urls.
-   Accept unicode methods in Python 2.6 and 2.7.
-   More resilient cookie handling.
-   Make `Response` objects pickleable.
-   Actually added MD5-sess to Digest Auth instead of pretending to like
 last time.
-   Updated internal urllib3.
-   Fixed Lukasa&#39;s lack of taste.

2.0.1

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

-   Updated included CA Bundle with new mistrusts and automated process
 for the future
-   Added MD5-sess to Digest Auth
-   Accept per-file headers in multipart file POST messages.
-   Fixed: Don&#39;t send the full URL on CONNECT messages.
-   Fixed: Correctly lowercase a redirect scheme.
-   Fixed: Cookies not persisted when set via functional API.
-   Fixed: Translate urllib3 ProxyError into a requests ProxyError
 derived from ConnectionError.
-   Updated internal urllib3 and chardet.

2.0.0

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

**API Changes:**

-   Keys in the Headers dictionary are now native strings on all Python
 versions, i.e. bytestrings on Python 2, unicode on Python 3.
-   Proxy URLs now *must* have an explicit scheme. A `MissingSchema`
 exception will be raised if they don&#39;t.
-   Timeouts now apply to read time if `Stream=False`.
-   `RequestException` is now a subclass of `IOError`, not
 `RuntimeError`.
-   Added new method to `PreparedRequest` objects:
 `PreparedRequest.copy()`.
-   Added new method to `Session` objects: `Session.update_request()`.
 This method updates a `Request` object with the data (e.g. cookies)
 stored on the `Session`.
-   Added new method to `Session` objects: `Session.prepare_request()`.
 This method updates and prepares a `Request` object, and returns the
 corresponding `PreparedRequest` object.
-   Added new method to `HTTPAdapter` objects:
 `HTTPAdapter.proxy_headers()`. This should not be called directly,
 but improves the subclass interface.
-   `httplib.IncompleteRead` exceptions caused by incorrect chunked
 encoding will now raise a Requests `ChunkedEncodingError` instead.
-   Invalid percent-escape sequences now cause a Requests `InvalidURL`
 exception to be raised.
-   HTTP 208 no longer uses reason phrase `&quot;im_used&quot;`. Correctly uses
 `&quot;already_reported&quot;`.
-   HTTP 226 reason added (`&quot;im_used&quot;`).

**Bugfixes:**

-   Vastly improved proxy support, including the CONNECT verb. Special
 thanks to the many contributors who worked towards this improvement.
-   Cookies are now properly managed when 401 authentication responses
 are received.
-   Chunked encoding fixes.
-   Support for mixed case schemes.
-   Better handling of streaming downloads.
-   Retrieve environment proxies from more locations.
-   Minor cookies fixes.
-   Improved redirect behaviour.
-   Improved streaming behaviour, particularly for compressed data.
-   Miscellaneous small Python 3 text encoding bugs.
-   `.netrc` no longer overrides explicit auth.
-   Cookies set by hooks are now correctly persisted on Sessions.
-   Fix problem with cookies that specify port numbers in their host
 field.
-   `BytesIO` can be used to perform streaming uploads.
-   More generous parsing of the `no_proxy` environment variable.
-   Non-string objects can be passed in data values alongside files.

1.2.3

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

-   Simple packaging fix

1.2.2

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

-   Simple packaging fix

1.2.1

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

-   301 and 302 redirects now change the verb to GET for all verbs, not
 just POST, improving browser compatibility.
-   Python 3.3.2 compatibility
-   Always percent-encode location headers
-   Fix connection adapter matching to be most-specific first
-   new argument to the default connection adapter for passing a block
 argument
-   prevent a KeyError when there&#39;s no link headers

1.2.0

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

-   Fixed cookies on sessions and on requests
-   Significantly change how hooks are dispatched - hooks now receive
 all the arguments specified by the user when making a request so
 hooks can make a secondary request with the same parameters. This is
 especially necessary for authentication handler authors
-   certifi support was removed
-   Fixed bug where using OAuth 1 with body `signature_type` sent no
 data
-   Major proxy work thanks to Lukasa including parsing of proxy
 authentication from the proxy url
-   Fix DigestAuth handling too many 401s
-   Update vendored urllib3 to include SSL bug fixes
-   Allow keyword arguments to be passed to `json.loads()` via the
 `Response.json()` method
-   Don&#39;t send `Content-Length` header by default on `GET` or `HEAD`
 requests
-   Add `elapsed` attribute to `Response` objects to time how long a
 request took.
-   Fix `RequestsCookieJar`
-   Sessions and Adapters are now picklable, i.e., can be used with the
 multiprocessing library
-   Update charade to version 1.0.3

The change in how hooks are dispatched will likely cause a great deal of
issues.

1.1.0

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

-   CHUNKED REQUESTS
-   Support for iterable response bodies
-   Assume servers persist redirect params
-   Allow explicit content types to be specified for file data
-   Make merge\_kwargs case-insensitive when looking up keys

1.0.3

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

-   Fix file upload encoding bug
-   Fix cookie behavior

1.0.2

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

-   Proxy fix for HTTPAdapter.

1.0.1

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

-   Cert verification exception bug.
-   Proxy fix for HTTPAdapter.

1.0.0

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

-   Massive Refactor and Simplification
-   Switch to Apache 2.0 license
-   Swappable Connection Adapters
-   Mountable Connection Adapters
-   Mutable ProcessedRequest chain
-   /s/prefetch/stream
-   Removal of all configuration
-   Standard library logging
-   Make Response.json() callable, not property.
-   Usage of new charade project, which provides python 2 and 3
 simultaneous chardet.
-   Removal of all hooks except &#39;response&#39;
-   Removal of all authentication helpers (OAuth, Kerberos)

This is not a backwards compatible change.

0.14.2

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

-   Improved mime-compatible JSON handling
-   Proxy fixes
-   Path hack fixes
-   Case-Insensitive Content-Encoding headers
-   Support for CJK parameters in form posts

0.14.1

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

-   Python 3.3 Compatibility
-   Simply default accept-encoding
-   Bugfixes

0.14.0

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

-   No more iter\_content errors if already downloaded.

0.13.9

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

-   Fix for OAuth + POSTs
-   Remove exception eating from dispatch\_hook
-   General bugfixes

0.13.8

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

-   Incredible Link header support :)

0.13.7

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

-   Support for (key, value) lists everywhere.
-   Digest Authentication improvements.
-   Ensure proxy exclusions work properly.
-   Clearer UnicodeError exceptions.
-   Automatic casting of URLs to strings (fURL and such)
-   Bugfixes.

0.13.6

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

-   Long awaited fix for hanging connections!

0.13.5

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

-   Packaging fix

0.13.4

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

-   GSSAPI/Kerberos authentication!
-   App Engine 2.7 Fixes!
-   Fix leaking connections (from urllib3 update)
-   OAuthlib path hack fix
-   OAuthlib URL parameters fix.

0.13.3

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

-   Use simplejson if available.
-   Do not hide SSLErrors behind Timeouts.
-   Fixed param handling with urls containing fragments.
-   Significantly improved information in User Agent.
-   client certificates are ignored when verify=False

0.13.2

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

-   Zero dependencies (once again)!
-   New: Response.reason
-   Sign querystring parameters in OAuth 1.0
-   Client certificates no longer ignored when verify=False
-   Add openSUSE certificate support

0.13.1

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

-   Allow passing a file or file-like object as data.
-   Allow hooks to return responses that indicate errors.
-   Fix Response.text and Response.json for body-less responses.

0.13.0

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

-   Removal of Requests.async in favor of
 [grequests](https://github.com/kennethreitz/grequests)
-   Allow disabling of cookie persistence.
-   New implementation of safe\_mode
-   cookies.get now supports default argument
-   Session cookies not saved when Session.request is called with
 return\_response=False
-   Env: no\_proxy support.
-   RequestsCookieJar improvements.
-   Various bug fixes.

0.12.1

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

-   New `Response.json` property.
-   Ability to add string file uploads.
-   Fix out-of-range issue with iter\_lines.
-   Fix iter\_content default size.
-   Fix POST redirects containing files.

0.12.0

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

-   EXPERIMENTAL OAUTH SUPPORT!
-   Proper CookieJar-backed cookies interface with awesome dict-like
 interface.
-   Speed fix for non-iterated content chunks.
-   Move `pre_request` to a more usable place.
-   New `pre_send` hook.
-   Lazily encode data, params, files.
-   Load system Certificate Bundle if `certify` isn&#39;t available.
-   Cleanups, fixes.

0.11.2

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

-   Attempt to use the OS&#39;s certificate bundle if `certifi` isn&#39;t
 available.
-   Infinite digest auth redirect fix.
-   Multi-part file upload improvements.
-   Fix decoding of invalid %encodings in URLs.
-   If there is no content in a response don&#39;t throw an error the second
 time that content is attempted to be read.
-   Upload data on redirects.

0.11.1

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

-   POST redirects now break RFC to do what browsers do: Follow up with
 a GET.
-   New `strict_mode` configuration to disable new redirect behavior.

0.11.0

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

-   Private SSL Certificate support
-   Remove select.poll from Gevent monkeypatching
-   Remove redundant generator for chunked transfer encoding
-   Fix: Response.ok raises Timeout Exception in safe\_mode

0.10.8

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

-   Generate chunked ValueError fix
-   Proxy configuration by environment variables
-   Simplification of iter\_lines.
-   New trust\_env configuration for disabling system/environment hints.
-   Suppress cookie errors.

0.10.7

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

-   encode\_uri = False

0.10.6

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

-   Allow &#39;=&#39; in cookies.

0.10.5

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

-   Response body with 0 content-length fix.
-   New async.imap.
-   Don&#39;t fail on netrc.

0.10.4

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

-   Honor netrc.

0.10.3

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

-   HEAD requests don&#39;t follow redirects anymore.
-   raise\_for\_status() doesn&#39;t raise for 3xx anymore.
-   Make Session objects picklable.
-   ValueError for invalid schema URLs.

0.10.2

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

-   Vastly improved URL quoting.
-   Additional allowed cookie key values.
-   Attempted fix for &quot;Too many open files&quot; Error
-   Replace unicode errors on first pass, no need for second pass.
-   Append &#39;/&#39; to bare-domain urls before query insertion.
-   Exceptions now inherit from RuntimeError.
-   Binary uploads + auth fix.
-   Bugfixes.

0.10.1

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

-   PYTHON 3 SUPPORT!
-   Dropped 2.5 Support. (*Backwards Incompatible*)

0.10.0

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

-   `Response.content` is now bytes-only. (*Backwards Incompatible*)
-   New `Response.text` is unicode-only.
-   If no `Response.encoding` is specified and `chardet` is available,
 `Response.text` will guess an encoding.
-   Default to ISO-8859-1 (Western) encoding for &quot;text&quot; subtypes.
-   Removal of decode\_unicode. (*Backwards Incompatible*)
-   New multiple-hooks system.
-   New `Response.register_hook` for registering hooks within the
 pipeline.
-   `Response.url` is now Unicode.

0.9.3

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

-   SSL verify=False bugfix (apparent on windows machines).

0.9.2

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

-   Asynchronous async.send method.
-   Support for proper chunk streams with boundaries.
-   session argument for Session classes.
-   Print entire hook tracebacks, not just exception instance.
-   Fix response.iter\_lines from pending next line.
-   Fix but in HTTP-digest auth w/ URI having query strings.
-   Fix in Event Hooks section.
-   Urllib3 update.

0.9.1

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

-   danger\_mode for automatic Response.raise\_for\_status()
-   Response.iter\_lines refactor

0.9.0

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

-   verify ssl is default.

0.8.9

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

-   Packaging fix.

0.8.8

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

-   SSL CERT VERIFICATION!
-   Release of Cerifi: Mozilla&#39;s cert list.
-   New &#39;verify&#39; argument for SSL requests.
-   Urllib3 update.

0.8.7

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

-   iter\_lines last-line truncation fix
-   Force safe\_mode for async requests
-   Handle safe\_mode exceptions more consistently
-   Fix iteration on null responses in safe\_mode

0.8.6

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

-   Socket timeout fixes.
-   Proxy Authorization support.

0.8.5

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

-   Response.iter\_lines!

0.8.4

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

-   Prefetch bugfix.
-   Added license to installed version.

0.8.3

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

-   Converted auth system to use simpler callable objects.
-   New session parameter to API methods.
-   Display full URL while logging.

0.8.2

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

-   New Unicode decoding system, based on over-ridable
 Response.encoding.
-   Proper URL slash-quote handling.
-   Cookies with `[`, `]`, and `_` allowed.

0.8.1

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

-   URL Request path fix
-   Proxy fix.
-   Timeouts fix.

0.8.0

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

-   Keep-alive support!
-   Complete removal of Urllib2
-   Complete removal of Poster
-   Complete removal of CookieJars
-   New ConnectionError raising
-   Safe\_mode for error catching
-   prefetch parameter for request methods
-   OPTION method
-   Async pool size throttling
-   File uploads send real names
-   Vendored in urllib3

0.7.6

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

-   Digest authentication bugfix (attach query data to path)

0.7.5

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

-   Response.content = None if there was an invalid response.
-   Redirection auth handling.

0.7.4

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

-   Session Hooks fix.

0.7.3

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

-   Digest Auth fix.

0.7.2

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

-   PATCH Fix.

0.7.1

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

-   Move away from urllib2 authentication handling.
-   Fully Remove AuthManager, AuthObject, &amp;c.
-   New tuple-based auth system with handler callbacks.

0.7.0

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

-   Sessions are now the primary interface.
-   Deprecated InvalidMethodException.
-   PATCH fix.
-   New config system (no more global settings).

0.6.6

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

-   Session parameter bugfix (params merging).

0.6.5

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

-   Offline (fast) test suite.
-   Session dictionary argument merging.

0.6.4

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

-   Automatic decoding of unicode, based on HTTP Headers.
-   New `decode_unicode` setting.
-   Removal of `r.read/close` methods.
-   New `r.faw` interface for advanced response usage.\*
-   Automatic expansion of parameterized headers.

0.6.3

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

-   Beautiful `requests.async` module, for making async requests w/
 gevent.

0.6.2

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

-   GET/HEAD obeys allow\_redirects=False.

0.6.1

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

-   Enhanced status codes experience `\o/`
-   Set a maximum number of redirects (`settings.max_redirects`)
-   Full Unicode URL support
-   Support for protocol-less redirects.
-   Allow for arbitrary request types.
-   Bugfixes

0.6.0

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

-   New callback hook system
-   New persistent sessions object and context manager
-   Transparent Dict-cookie handling
-   Status code reference object
-   Removed Response.cached
-   Added Response.request
-   All args are kwargs
-   Relative redirect support
-   HTTPError handling improvements
-   Improved https testing
-   Bugfixes

0.5.1

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

-   International Domain Name Support!
-   Access headers without fetching entire body (`read()`)
-   Use lists as dicts for parameters
-   Add Forced Basic Authentication
-   Forced Basic is default authentication type
-   `python-requests.org` default User-Agent header
-   CaseInsensitiveDict lower-case caching
-   Response.history bugfix

0.5.0

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

-   PATCH Support
-   Support for Proxies
-   HTTPBin Test Suite
-   Redirect Fixes
-   settings.verbose stream writing
-   Querystrings for all methods
-   URLErrors (Connection Refused, Timeout, Invalid URLs) are treated as
 explicitly raised
 `r.requests.get(&#39;hwe://blah&#39;); r.raise_for_status()`

0.4.1

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

-   Improved Redirection Handling
-   New &#39;allow\_redirects&#39; param for following non-GET/HEAD Redirects
-   Settings module refactoring

0.4.0

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

-   Response.history: list of redirected responses
-   Case-Insensitive Header Dictionaries!
-   Unicode URLs

0.3.4

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

-   Urllib2 HTTPAuthentication Recursion fix (Basic/Digest)
-   Internal Refactor
-   Bytes data upload Bugfix

0.3.3

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

-   Request timeouts
-   Unicode url-encoded data
-   Settings context manager and module

0.3.2

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

-   Automatic Decompression of GZip Encoded Content
-   AutoAuth Support for Tupled HTTP Auth

0.3.1

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

-   Cookie Changes
-   Response.read()
-   Poster fix

0.3.0

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

-   Automatic Authentication API Change
-   Smarter Query URL Parameterization
-   Allow file uploads and POST data together
-   

 New Authentication Manager System

 :   -   Simpler Basic HTTP System
     -   Supports all build-in urllib2 Auths
     -   Allows for custom Auth Handlers

0.2.4

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

-   Python 2.5 Support
-   PyPy-c v1.4 Support
-   Auto-Authentication tests
-   Improved Request object constructor

0.2.3

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

-   

 New HTTPHandling Methods

 :   -   Response.\_\_nonzero\_\_ (false if bad HTTP Status)
     -   Response.ok (True if expected HTTP Status)
     -   Response.error (Logged HTTPError if bad HTTP Status)
     -   Response.raise\_for\_status() (Raises stored HTTPError)

0.2.2

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

-   Still handles request in the event of an HTTPError. (Issue \2)
-   Eventlet and Gevent Monkeypatch support.
-   Cookie Support (Issue \1)

0.2.1

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

-   Added file attribute to POST and PUT requests for multipart-encode
 file uploads.
-   Added Request.url attribute for context and redirects

0.2.0

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

-   Birth!

0.0.1

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

-   Frustration
-   Conception

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/requests
  • Changelog: https://pyup.io/changelogs/requests/
  • Docs: https://requests.readthedocs.io </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin pydub to latest version 0.24.1

This PR pins pydub to the latest release 0.24.1.

<details> <summary>Changelog</summary>

0.24.1

- Fix bug where ffmpeg errors in Python 3 are illegible
- Fix bug where `split_on_silence` fails when there are one or fewer nonsilent segments
- Fix bug in fallback audioop implementation

0.24.0

- Fix inconsistent handling of 8-bit audio
- Fix bug where certain files will fail to parse
- Fix bug where pyaudio stream is not closed on error
- Allow codecs and parameters in wav and raw export
- Fix bug in `pydub.AudioSegment.from_file` where supplied codec is ignored
- Allow `pydub.silence.split_on_silence` to take a boolean for `keep_silence`
- Fix bug where `pydub.silence.split_on_silence` sometimes adds non-silence from adjacent segments
- Fix bug where `pydub.AudioSegment.extract_wav_headers` fails on empty wav files
- Add new function `pydub.silence.detect_leading_silence`
- Support conversion between an arbitrary number of channels and mono in `pydub.AudioSegment.set_channels`
- Fix several issues related to reading from filelike objects

0.23.1

- Fix bug in passing ffmpeg/avconv parameters for `pydub.AudioSegment.from_mp3()`, `pydub.AudioSegment.from_flv()`, `pydub.AudioSegment.from_ogg()`, and `pydub.AudioSegment.from_wav()`
- Fix logic bug in `pydub.effects.strip_silence()`

0.23.0

- Add support for playback via simpleaudio
- Allow users to override the type in `pydub.AudioSegment().get_array_of_samples()` (PR 313)
- Fix a bug where the wrong codec was used for 8-bit audio (PR 309 - issue 308)

0.22.1

- Fix `pydub.utils.mediainfo_json()` to work with newer, backwards-incompatible versions of ffprobe/avprobe

0.22.0

- Adds support for audio with frame rates (sample rates) of 48k and higher (requires scipy) (PR 262, fixes 134, 237, 209)
- Adds support for PEP 519 File Path protocol (PR 252)
- Fixes a few places where handles to temporary files are kept open (PR 280)
- Add the license file to the python package to aid other packaging projects (PR 279, fixes 274)
- Big fix for `pydub.silence.detect_silence()` (PR 263)

0.21.0

- NOTE: Semi-counterintuitive change: using the a stride when slicing AudioSegment instances (for example, `sound[::5000]`) will return chunks of 5000ms (not 1ms chunks every 5000ms) (222)
- Debug output from ffmpeg/avlib is no longer printed to the console unless you set up logging (see README for how to set up logging for your converter) (223)
- All pydub exceptions are now subclasses of `pydub.exceptions.PydubException` (PR 244)
- The utilities in `pydub.silence` now accept a `seek_step`argument which can optionally be passed to improve the performance of silence detection (211)
- Fix to `pydub.silence` utilities which allow you to detect perfect silence (233)
- Fix a bug where threaded code screws up your terminal session due to ffmpeg inheriting the stdin from the parent process. (231)
- Fix a bug where a crashing programs using pydub would leave behind their temporary files (206)

0.20.0

- Add new parameter `gain_during_overlay` to `pydub.AudioSegment.overlay` which allows users to adjust the volume of the target AudioSegment during the portion of the segment which is overlaid with the additional AudioSegment.
- `pydub.playback.play()` No longer displays the (very verbose) playback &quot;banner&quot; when using ffplay
- Fix a confusing error message when using invalid crossfade durations (issue 193)

0.19.0

- Allow codec and ffmpeg/avconv parameters to be set in the `pydub.AudioSegment.from_file()` for more control while decoding audio files
- Allow `AudioSegment` objects with more than two channels to be split using `pydub.AudioSegment().split_to_mono()`
- Add support for inverting the phase of only one channel in a multi-channel `pydub.AudioSegment` object
- Fix a bug with the latest avprobe that broke `pydub.utils.mediainfo()`
- Add tests for webm encoding/decoding

0.18.0

- Add a new constructor: `pydub.AudioSegment.from_mono_audiosegments()` which allows users to create a multi-channel audiosegment out of multiple mono ones.
- Refactor `pydub.AudioSegment._sync()` to support an arbitrary number of audiosegment arguments.

0.17.0

- Add the ability to add a cover image to MP3 exports via the `cover` keyword argument to `pydub.AudioSegment().export()`
- Add `pydub.AudioSegment().get_dc_offset()` and `pydub.AudioSegment().remove_dc_offset()` which allow detection and removal of DC offset in audio files.
- Minor fixes for windows users

0.16.7

- Make `pydub.AudioSegment()._spawn()` accept array.array instances containing audio samples

0.16.6

- Make `pydub.AudioSegment()` objects playable inline in ipython notebooks.
- Add scipy powered high pass, low pass, and band pass filters, which can be high order filters (they take `order` as a keyword argument). They are used for `pydub.AudioSegment().high_pass_filter()`, `pydub.AudioSegment().low_pass_filter()`, `pydub.AudioSegment().band_pass_filter()` when the `pydub.scipy_effects` module is imported.
- Fix minor bug in `pydub.silence.detect_silence()`

0.16.5

- Update `pydub.AudioSegment()._spawn()` method to allow user subclassing of `pydub.AudioSegment`
- Add a workaround for incorrect duration reporting of some mp3 files on macOS

0.16.4

- Add support for radd (basically, allow `sum()` to operate on an iterable of `pydub.AudioSegment()` objects)
- Fix bug in 24-bit wav support (understatement. It didn&#39;t work right at all the first time)

0.16.3

- Add support for python 3.5 (overstatement. We just added python 3.5 to CI and it worked 😄)
- Add native support for 24-bit wav files (ffmpeg/avconv not required)

0.16.2

- Fix bug where you couldn&#39;t directly instantiate `pydub.AudioSegment` with `bytes` data in python 3

0.16.1

- pydub will use any ffmpeg/avconv binary that&#39;s in the current directory (as reported by `os.getcwd()`) before searching for a system install

0.16.0

- Make it easier to instantiate `pydub.AudioSegment()` directly when creating audio segments from raw audio data (without having to write it to a file first)
- Add `pydub.AudioSegment().get_array_of_samples()` method which returns the samples which make up an audio segment (you should usually prefer this over `pydub.AudioSegment().raw_data`)
- Add `pydub.AudioSegment().raw_data` property which returns the raw audio data for an audio segment as a bytes (python 3) or a bytestring (python 3)
- Allow users to specify frame rate in `pydub.AudioSegment.silent()` constructor

0.15.0

- Add support for RAW audio (basically WAV format, but without wave headers)
- Add a new exception `pydub.exceptions.CouldntDecodeError` to indicate a failure of ffmpeg/avconv to decode a file (as indicated by ffmpeg/avconv exit code)

0.14.2

- Fix a bug in python 3.4 which failed to read wave files with no audio data (should have been audio segments with a duration of 0 ms)

0.14.1

- Fix a bug in `pydub.utils.mediainfo()` that caused inputs containing unescaped characters to raise a runtime error (inputs are not supposed to require escaping)

0.14.0

- Rename `pydub.AudioSegment().set_gain()` to `pydub.AudioSegment().apply_gain_stereo()` to better reflect it&#39;s place in the world (as a counterpart to `pydub.AudioSegment().apply_gain()`)

0.13.0

- Add `pydub.AudioSegment().pan()` which returns a new stereo audio segment panned left/right as specified.

0.12.0

- Add a logger, `&quot;pydub.converter&quot;` which logs the ffmpeg commands being run by pydub.
- Add `pydub.AudioSegment().split_to_mono()` method which returns a list of mono audio segments. One for each channel in the original audio segment.
- Fix a bug in `pydub.silence.detect_silence()` which caused the function to break when a silent audio segment was equal in length to the minimum silence length. It should report a single span of silence covering the whole silent audio segment. Now it does.
- Fix a bug where uncommon wav formats (those not supported by the stdlib wave module) would throw an exception rather than converting to a more common format via ffmpeg/avconv

0.11.0

- Add `pydub.AudioSegment().max_dBFS` which reports the loudness (in dBFS) of the loudest point (i.e., highest amplitude sample) of an audio segment

0.10.0

- Overhaul Documentation
- Improve performance of `pydub.AudioSegment().overlay()`
- Add `pydub.AudioSegment().invert_phase()` which (shocker) inverts the phase of an audio segment
- Fix a type error in `pydub.AudioSegment.get_sample_slice()`

0.9.5

- Add `pydub.generators` module containing simple signal generation functions (white noise, sine, square wave, etc)
- Add a `loops` keyword argument to `pydub.AudioSegment().overlay()` which allows users to specify that the overlaid audio should be repeated (i.e., looped) a certain number of times, or indefinitely

0.9.4

- Fix a bug in db_to_float() where all values were off by a factor of 2

0.9.3

- Allow users to set the location of their converter by setting `pydub.AudioSegment.converter = &quot;/path/to/ffmpeg&quot;` and added a shim to support the old method of assigning to `pydub.AudioSegment.ffmpeg` (which is deprecated now that we support avconv)

0.9.2

- Add support for Python 3.4
- Audio files opened with format &quot;wave&quot; are treated as &quot;wav&quot; and &quot;m4a&quot; are treated as &quot;mp4&quot;
- Add `pydub.silence` module with simple utilities for detecting and removing silence.
- Fix a bug affecting auto-detection of ffmpeg/avconv on windows.
- Fix a bug that caused pydub to only work when ffmpeg/avconv is present (it should be able to work with WAV data without any dependencies)

0.9.1

- Add a runtime warning when ffmpeg/avconv cannot be found to aid debugging

0.9.0

- Added support for pypy (by reimplementing audioop in python). Also, we contributed our implementation to the pypy project, so that&#39;s 💯
- Add support for avconv as an alternative to ffmpeg
- Add a new helper module `pydub.playback` which allows you to quickly listen to an audio segment using ffplay (or avplay)
- Add new function `pydub.utils.mediainfo(&#39;/path/to/audio/file.ext&#39;)` which reports back the results of ffprobe (or avprobe) including codec, bitrate, channels, etc

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pydub
  • Changelog: https://pyup.io/changelogs/pydub/
  • Homepage: http://pydub.com </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin pandas to latest version 1.1.2

This PR pins pandas to the latest release 1.1.2.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pandas
  • Homepage: https://pandas.pydata.org </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened munterfinger/zeitsprung

Pin beautifulsoup4 to latest version 4.9.2

This PR pins beautifulsoup4 to the latest release 4.9.2.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/beautifulsoup4
  • Homepage: http://www.crummy.com/software/BeautifulSoup/bs4/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened pythonprobr/pythonpro-website

Update humanize to 3.0.0

This PR updates humanize from 2.6.0 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+3 -4

0 comment

1 changed file

pr created time in an hour

pull request commentJackDanger/autodeployer

Update zope.interface to 5.1.0

Closing this in favor of #189

pyup-bot

comment created time in an hour

PR closed JackDanger/autodeployer

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.7.1 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

PR opened JackDanger/autodeployer

Update zope.interface to 5.1.1

This PR updates zope.interface from 4.7.1 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR closed jimr/Showcase

Update humanize to 2.6.0

This PR updates humanize from 0.5.1 to 2.6.0.

<details> <summary>Changelog</summary>

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

pull request commentjimr/Showcase

Update humanize to 2.6.0

Closing this in favor of #77

pyup-bot

comment created time in an hour

PR opened jimr/Showcase

Update humanize to 3.0.0

This PR updates humanize from 0.5.1 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened fwupd/lvfs-website-archived

Update humanize to 3.0.0

This PR updates humanize from 2.6.0 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

pull request commentfurlongm/patchman

Update humanize to 2.6.0

Closing this in favor of #244

pyup-bot

comment created time in an hour

PR closed furlongm/patchman

Update humanize to 2.6.0

This PR updates humanize from 1.0.0 to 2.6.0.

<details> <summary>Changelog</summary>

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

PR opened furlongm/patchman

Update humanize to 3.0.0

This PR updates humanize from 1.0.0 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR closed furlongm/openvpn-monitor

Update humanize to 2.6.0

This PR updates humanize from 0.5.1 to 2.6.0.

<details> <summary>Changelog</summary>

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

pull request commentfurlongm/openvpn-monitor

Update humanize to 2.6.0

Closing this in favor of #182

pyup-bot

comment created time in an hour

PR opened furlongm/openvpn-monitor

Update humanize to 3.0.0

This PR updates humanize from 0.5.1 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR closed chrisspen/eod-requirements

Update humanize to 2.6.0

This PR updates humanize from 0.5.1 to 2.6.0.

<details> <summary>Changelog</summary>

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

pull request commentchrisspen/eod-requirements

Update humanize to 2.6.0

Closing this in favor of #1329

pyup-bot

comment created time in an hour

PR opened chrisspen/eod-requirements

Update humanize to 3.0.0

This PR updates humanize from 0.5.1 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR closed chrisspen/dryden-requirements

Update humanize to 2.6.0

This PR updates humanize from 0.5.1 to 2.6.0.

<details> <summary>Changelog</summary>

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

pull request commentchrisspen/dryden-requirements

Update humanize to 2.6.0

Closing this in favor of #2256

pyup-bot

comment created time in an hour

PR opened chrisspen/dryden-requirements

Update humanize to 3.0.0

This PR updates humanize from 0.5.1 to 3.0.0.

<details> <summary>Changelog</summary>

3.0.0

Added

* Add explicit setuptools dependency for pkg_resources (158) mgorny

Removed

* Drop support for Python 3.5 (151) hugovk

Fixed

* Update `minimum_unit` handling of `naturaldelta` and `naturaltime` (142) hugovk
* Internationalise a previously hardcoded &#39;and&#39; (163) hugovk
* Update docs (153) hugovk

2.6.0

Added

* Deploy docs to Read the Docs (148) hugovk
* Build API reference docs from docstrings using MKDocs (147) hugovk
* Function to represent timedeltas without losing precision (precisedelta) (137) eldipa

Changed

* Improve default locale path discovering. (146) mondeja

Fixed

* Added Ukrainian language to list in README.md (141) tuxlabore

2.5.0

Added

* Add pt_PT locale (138) rjgpacheco

2.4.1

Fixed

*  Explicit error if _DEFAULT_LOCALE_PATH is None (132) eldipa
* Fix incorrect Portuguese spelling (135) webkaiyo
* Fix fractional(0.333) output in README (134) hugovk

2.4.0

Added

* Polish (pl_PL) locales added (129) parasit

2.3.0

Added

* Added Spanish (Spain) locale (128) mondeja

2.2.0

Added

* Add Ukrainian (125) tuxlabore

Changed

* Update translations (126) hugovk

2.1.0

Added

* Add `ndigits` option to `intcomma` (123) hugovk
* Show more than bytes for negative file sizes (122) hugovk

Fixed

* Fix: AP style for 0 is &#39;zero&#39; (121) hugovk

2.0.0

**Note: Humanize 1.1.0 was meant to be tagged 2.0.0 because it drops support for Python 2, so is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.1.0

**Note: This was meant to be tagged 2.0.0 because it drops support for Python 2, and is also released as 2.0.0. If you still support Python 2, use Humanize 1.0.0.**

Added

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Add scientific notation to string support (110) Thx3r hugovk
* Add micro- and millisecond units to naturaldelta and naturaltime (104) hugovk

Changed

* Disambiguate naturaldate return: only append year if more than ~5 months away (107) hugovk
* Convert remaining tests to use pytest.mark.parametrize (109) hugovk
* Refactor some tests to use pytest.mark.parametrize (108) hugovk

Removed

* Drop support for EOL Python 2 (102) hugovk

Fixed

* Fix intword returning 1000.0 million instead of 1.0 billion (113) Jasarin-V hugovk

1.0.0

* Supports Python 2.7 and 3.5+
* Version 1.x is the last to support EOL Python 2.7
* Add new translations:
* German
* Persian
* Dutch
* Finnish
* Brazilian Portuguese
* Indonesian
* Italian
* Japanese
* Simplified Chinese
* Slovak
* Turkish
* Vietnamese
* Update translations:
* French
* Korean
* Russian
* Include tests in release source tarball
* Python 3.6 invalid escape sequence deprecation fixes
* Use built-in mock from unittest when available (Python 3.4+)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/humanize
  • Changelog: https://pyup.io/changelogs/humanize/
  • Repo: https://github.com/jmoiron/humanize </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

pull request commentalisonamerico/staks-videos

Update zope.interface to 5.1.0

Closing this in favor of #174

pyup-bot

comment created time in an hour

PR opened alisonamerico/staks-videos

Update zope.interface to 5.1.1

This PR updates zope.interface from 4.6.0 to 5.1.1.

<details> <summary>Changelog</summary>

5.1.1

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

- Fix the method definitions of ``IAdapterRegistry.subscribe``,
``subscriptions`` and ``subscribers``. Previously, they all were
defined to accept a ``name`` keyword argument, but subscribers have
no names and the implementation of that interface did not accept
that argument. See `issue 208
&lt;https://github.com/zopefoundation/zope.interface/issues/208&gt;`_.

- Fix a potential reference leak in the C optimizations. Previously,
applications that dynamically created unique ``Specification``
objects (e.g., used ``implementer`` on dynamic classes) could
notice a growth of small objects over time leading to increased
garbage collection times. See `issue 216
&lt;https://github.com/zopefoundation/zope.interface/issues/216&gt;`_.

.. caution::

  This leak could prevent interfaces used as the bases of
  other interfaces from being garbage collected. Those interfaces
  will now be collected.

  One way in which this would manifest was that ``weakref.ref``
  objects (and things built upon them, like
  ``Weak[Key|Value]Dictionary``) would continue to have access to
  the original object even if there were no other visible
  references to Python and the original object *should* have been
  collected. This could be especially problematic for the
  ``WeakKeyDictionary`` when combined with dynamic or local
  (created in the scope of a function) interfaces, since interfaces
  are hashed based just on their name and module name. See the
  linked issue for an example of a resulting ``KeyError``.

  Note that such potential errors are not new, they are just once
  again a possibility.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+13 -31

0 comment

1 changed file

pr created time in an hour

PR closed alisonamerico/staks-videos

Update zope.interface to 5.1.0

This PR updates zope.interface from 4.6.0 to 5.1.0.

<details> <summary>Changelog</summary>

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
&lt;https://github.com/zopefoundation/zope.interface/issues/199&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/200&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/3&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/204&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/197&gt;`_.

5.0.1

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/194&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/158&gt;`_.

- 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&#39;t present. Any other
value forces the Python implementation to be used, ignoring the C
extensions. See `PR 151 &lt;https://github.com/zopefoundation/zope.interface/pull/151&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/156&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/154&gt;`_.

- 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&#39;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 &lt;https://github.com/zopefoundation/zope.interface/pull/155&gt;`_.

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 &lt;https://github.com/zopefoundation/zope.interface/issues/157&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/pull/161&gt;`_.

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

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

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

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/118&gt;`_.

- 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
&lt;https://github.com/zopefoundation/zope.interface/issues/170&gt;`_.

.. 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
&lt;https://github.com/zopefoundation/zope.interface/issues/171&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://pypi.org/project/dolmen.builtins/&gt;`_.
See `issue 138 &lt;https://github.com/zopefoundation/zope.interface/issues/138&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/11&gt;`_.

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

- Adopt Python&#39;s standard `C3 resolution order
&lt;https://www.python.org/download/releases/2.3/mro/&gt;`_ 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&#39;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
&lt;https://github.com/zopefoundation/zope.interface/issues/190&gt;`_.

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

- 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 &lt;https://github.com/zopefoundation/zope.interface/issues/8&gt;`_.

- 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 &lt;https://github.com/zopefoundation/zope.interface/pull/183&gt;`_.

4.7.2

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

- Remove deprecated use of setuptools features.  See `issue 30
&lt;https://github.com/zopefoundation/zope.interface/issues/30&gt;`_.

4.7.1

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

- Use Python 3 syntax in the documentation.  See `issue 119
&lt;https://github.com/zopefoundation/zope.interface/issues/119&gt;`_.

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
&lt;https://github.com/zopefoundation/zope.interface/pull/144&gt;`_.

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

- Add support for Python 3.8.

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/zope.interface
  • Changelog: https://pyup.io/changelogs/zope.interface/
  • Repo: https://github.com/zopefoundation/zope.interface </details>
+25 -31

1 comment

1 changed file

pyup-bot

pr closed time in an hour

PR opened csmithchicago/YouChoose

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened lyftbryan/securetest

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.3 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR closed cleanunicorn/karl

Update py-ecc to 4.1.0

This PR updates py-ecc from 1.6.0 to 4.1.0.

<details> <summary>Changelog</summary>

1.7.1

-----

2019-07-12

* Introduce the `Domain` type as an alias for `bytes` of size 8 in BLS package.

1.7.0

-----

2019-05-23

* Update hash function for BLS Signatures https://github.com/ethereum/py_ecc/pull/70

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/py-ecc
  • Changelog: https://pyup.io/changelogs/py-ecc/
  • Repo: https://github.com/ethereum/py_ecc </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in an hour

pull request commentcleanunicorn/karl

Update py-ecc to 4.1.0

Closing this in favor of #126

pyup-bot

comment created time in an hour

PR opened cleanunicorn/karl

Update py-ecc to 5.0.0

This PR updates py-ecc from 1.6.0 to 5.0.0.

<details> <summary>Changelog</summary>

1.7.1

-----

2019-07-12

* Introduce the `Domain` type as an alias for `bytes` of size 8 in BLS package.

1.7.0

-----

2019-05-23

* Update hash function for BLS Signatures https://github.com/ethereum/py_ecc/pull/70

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/py-ecc
  • Changelog: https://pyup.io/changelogs/py-ecc/
  • Repo: https://github.com/ethereum/py_ecc </details>
+1 -1

0 comment

1 changed file

pr created time in an hour

PR opened lfstos/curso-django

Update install to 1.3.4

This PR updates install from 1.3.3 to 1.3.4.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/install
  • Repo: https://github.com/eugenekolo/pip-install </details>
+3 -4

0 comment

1 changed file

pr created time in 2 hours

PR closed DemocracyClub/UK-Polling-Stations

Update rapidfuzz to 0.12.0

This PR updates rapidfuzz from 0.5.0 to 0.12.0.

<details> <summary>Changelog</summary>

0.12.0

Improved
- partial_ratio is using the Levenshtein distance now, which is a lot faster. Since many of the other algorithms use partial_ratio, this helps to improve the overall performance

0.11.3

Fixed
- fix partial_token_set_ratio returning 100 all the time

0.11.2

Changed
- add rapidfuzz.\_\_author\_\_, rapidfuzz.\_\_license\_\_ and rapidfuzz.\_\_version\_\_

0.11.1

Fixed
- do not use auto junk when searching the optimal alignment for partial_ratio

0.11.0

Changed
- support for python 2.7 added 40 
- add wheels for python2.7 (both pypy and cpython) on MacOS and Linux

0.10.0

Changed
- wheels are now build for Python3.9 aswell

Fixed
- tuple scores in process.extractOne are now supported 39

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/rapidfuzz
  • Changelog: https://pyup.io/changelogs/rapidfuzz/
  • Repo: https://github.com/maxbachmann/rapidfuzz </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 2 hours

pull request commentDemocracyClub/UK-Polling-Stations

Update rapidfuzz to 0.12.0

Closing this in favor of #2862

pyup-bot

comment created time in 2 hours

PR opened DemocracyClub/UK-Polling-Stations

Update rapidfuzz to 0.12.1

This PR updates rapidfuzz from 0.5.0 to 0.12.1.

<details> <summary>Changelog</summary>

0.12.1

Fixed
- MSVC has a bug and therefore crashed on some of the templates used. This Release simplifies the templates so compiling on msvc works again

0.12.0

Improved
- partial_ratio is using the Levenshtein distance now, which is a lot faster. Since many of the other algorithms use partial_ratio, this helps to improve the overall performance

0.11.3

Fixed
- fix partial_token_set_ratio returning 100 all the time

0.11.2

Changed
- add rapidfuzz.\_\_author\_\_, rapidfuzz.\_\_license\_\_ and rapidfuzz.\_\_version\_\_

0.11.1

Fixed
- do not use auto junk when searching the optimal alignment for partial_ratio

0.11.0

Changed
- support for python 2.7 added 40 
- add wheels for python2.7 (both pypy and cpython) on MacOS and Linux

0.10.0

Changed
- wheels are now build for Python3.9 aswell

Fixed
- tuple scores in process.extractOne are now supported 39

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/rapidfuzz
  • Changelog: https://pyup.io/changelogs/rapidfuzz/
  • Repo: https://github.com/maxbachmann/rapidfuzz </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR opened blue-yonder/devpi-acceptancetests

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR opened beer-garden/brew-view

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR opened beer-garden/bg-utils

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR opened beer-garden/bartender

Update urllib3 to 1.25.10

This PR updates urllib3 from 1.24.2 to 1.25.10.

<details> <summary>Changelog</summary>

1.25.9

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

* Added ``InvalidProxyConfigurationWarning`` which is raised when
erroneously specifying an HTTPS proxy URL. urllib3 doesn&#39;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 &lt;https://github.com/urllib3/urllib3/issues/1850&gt;`_
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 &lt;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)

1.25.2

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

* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull 1583)

* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull 1586)

1.25.1

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

* Add support for Google&#39;s ``Brotli`` package. (Pull 1572, Pull 1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull 1578)

1.25

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

* Require and validate certificates by default when using HTTPS (Pull 1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull 1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull 1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull 1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue 303, PR 1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull 1489)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull 1532)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull 1496)

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue 1483)

1.24.3

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

* Apply fix for CVE-2019-9740. (Pull 1591)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/urllib3
  • Changelog: https://pyup.io/changelogs/urllib3/
  • Docs: https://urllib3.readthedocs.io/ </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR closed robotools/fontParts

Update fonttools to 4.15.0

This PR updates FontTools[unicode,ufo,lxml] from 4.14.0 to 4.15.0.

<details> <summary>Changelog</summary>

4.15.0

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

- [plistlib] Added typing annotations to plistlib module. Set up mypy static
typechecker to run automatically on CI (2061).
- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict.
- [feaLib] Optionally add an entry into the ``Debg`` table with the original
lookup name (if any), feature name / script / language combination (if any),
and original source filename and line location. Annotate the ttx output for
a lookup with the information from the Debg table (2052).
- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (2058).
- [Docs] Document ``mtiLib`` module (2027).
- [varLib.interpolatable] Added checks for contour node count and operation type
of each node (2054).
- [ttLib] Added API to register custom table packer/unpacker classes (2055).

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/fonttools
  • Changelog: https://pyup.io/changelogs/fonttools/
  • Repo: http://github.com/fonttools/fonttools </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 2 hours

pull request commentrobotools/fontParts

Update fonttools to 4.15.0

Closing this in favor of #556

pyup-bot

comment created time in 2 hours

PR opened robotools/fontParts

Update fonttools to 4.16.0

This PR updates FontTools[ufo,lxml,unicode] from 4.14.0 to 4.16.0.

<details> <summary>Changelog</summary>

4.16.0

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

- [removeOverlaps] Added new module and ``removeOverlaps`` function that merges
overlapping contours and components in TrueType glyphs. It requires the
`skia-pathops &lt;https://github.com/fonttools/skia-pathops&gt;`__ module.
Note that removing overlaps invalidates the TrueType hinting (2068).
- [varLib.instancer] Added ``--remove-overlaps`` command-line option.
The ``overlap`` option in ``instantiateVariableFont`` now takes an ``OverlapMode``
enum: 0: KEEP_AND_DONT_SET_FLAGS, 1: KEEP_AND_SET_FLAGS (default), and 2: REMOVE.
The latter is equivalent to calling ``removeOverlaps`` on the generated static
instance. The option continues to accept ``bool`` value for backward compatibility.

4.15.0

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

- [plistlib] Added typing annotations to plistlib module. Set up mypy static
typechecker to run automatically on CI (2061).
- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict.
- [feaLib] Optionally add an entry into the ``Debg`` table with the original
lookup name (if any), feature name / script / language combination (if any),
and original source filename and line location. Annotate the ttx output for
a lookup with the information from the Debg table (2052).
- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (2058).
- [Docs] Document ``mtiLib`` module (2027).
- [varLib.interpolatable] Added checks for contour node count and operation type
of each node (2054).
- [ttLib] Added API to register custom table packer/unpacker classes (2055).

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/fonttools
  • Changelog: https://pyup.io/changelogs/fonttools/
  • Repo: http://github.com/fonttools/fonttools </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR closed googlefonts/nanoemoji

Update fonttools to 4.15.0

This PR updates fonttools[ufo] from 4.14.0 to 4.15.0.

<details> <summary>Changelog</summary>

4.15.0

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

- [plistlib] Added typing annotations to plistlib module. Set up mypy static
typechecker to run automatically on CI (2061).
- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict.
- [feaLib] Optionally add an entry into the ``Debg`` table with the original
lookup name (if any), feature name / script / language combination (if any),
and original source filename and line location. Annotate the ttx output for
a lookup with the information from the Debg table (2052).
- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (2058).
- [Docs] Document ``mtiLib`` module (2027).
- [varLib.interpolatable] Added checks for contour node count and operation type
of each node (2054).
- [ttLib] Added API to register custom table packer/unpacker classes (2055).

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/fonttools
  • Changelog: https://pyup.io/changelogs/fonttools/
  • Repo: http://github.com/fonttools/fonttools </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 2 hours

pull request commentgooglefonts/nanoemoji

Update fonttools to 4.15.0

Closing this in favor of #145

pyup-bot

comment created time in 2 hours

PR opened googlefonts/nanoemoji

Update fonttools to 4.16.0

This PR updates fonttools[ufo] from 4.14.0 to 4.16.0.

<details> <summary>Changelog</summary>

4.16.0

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

- [removeOverlaps] Added new module and ``removeOverlaps`` function that merges
overlapping contours and components in TrueType glyphs. It requires the
`skia-pathops &lt;https://github.com/fonttools/skia-pathops&gt;`__ module.
Note that removing overlaps invalidates the TrueType hinting (2068).
- [varLib.instancer] Added ``--remove-overlaps`` command-line option.
The ``overlap`` option in ``instantiateVariableFont`` now takes an ``OverlapMode``
enum: 0: KEEP_AND_DONT_SET_FLAGS, 1: KEEP_AND_SET_FLAGS (default), and 2: REMOVE.
The latter is equivalent to calling ``removeOverlaps`` on the generated static
instance. The option continues to accept ``bool`` value for backward compatibility.

4.15.0

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

- [plistlib] Added typing annotations to plistlib module. Set up mypy static
typechecker to run automatically on CI (2061).
- [ttLib] Implement private ``Debg`` table, a reverse-DNS namespaced JSON dict.
- [feaLib] Optionally add an entry into the ``Debg`` table with the original
lookup name (if any), feature name / script / language combination (if any),
and original source filename and line location. Annotate the ttx output for
a lookup with the information from the Debg table (2052).
- [sfnt] Disabled checksum checking by default in ``SFNTReader`` (2058).
- [Docs] Document ``mtiLib`` module (2027).
- [varLib.interpolatable] Added checks for contour node count and operation type
of each node (2054).
- [ttLib] Added API to register custom table packer/unpacker classes (2055).

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/fonttools
  • Changelog: https://pyup.io/changelogs/fonttools/
  • Repo: http://github.com/fonttools/fonttools </details>
+1 -1

0 comment

1 changed file

pr created time in 2 hours

PR closed tech-teach/microservice-topology

Update sanic to 20.6.3

This PR updates sanic from 0.7.0 to 20.6.3.

<details> <summary>Changelog</summary>

20.6.2

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

Features
********

*
 `1641 &lt;https://github.com/huge-success/sanic/pull/1641&gt;`_
 Socket binding implemented properly for IPv6 and UNIX sockets

20.6.1

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

Features
********

*
 `1760 &lt;https://github.com/huge-success/sanic/pull/1760&gt;`_
 Add version parameter to websocket routes

*
 `1866 &lt;https://github.com/huge-success/sanic/pull/1866&gt;`_
 Add ``sanic`` as an entry point command

*
 `1880 &lt;https://github.com/huge-success/sanic/pull/1880&gt;`_
 Add handler names for websockets for url_for usage 

Bugfixes
********

*
 `1776 &lt;https://github.com/huge-success/sanic/pull/1776&gt;`_
 Bug fix for host parameter issue with lists

*
 `1842 &lt;https://github.com/huge-success/sanic/pull/1842&gt;`_
 Fix static _handler pickling error

*
 `1827 &lt;https://github.com/huge-success/sanic/pull/1827&gt;`_
 Fix reloader on OSX py38 and Windows

*
 `1848 &lt;https://github.com/huge-success/sanic/pull/1848&gt;`_
 Reverse named_response_middlware execution order, to match normal response middleware execution order

*
 `1853 &lt;https://github.com/huge-success/sanic/pull/1853&gt;`_
 Fix pickle error when attempting to pickle an application which contains websocket routes

Deprecations and Removals
*************************

*
 `1739 &lt;https://github.com/huge-success/sanic/pull/1739&gt;`_
 Deprecate body_bytes to merge into body

Developer infrastructure
************************

*
 `1852 &lt;https://github.com/huge-success/sanic/pull/1852&gt;`_
 Fix naming of CI test env on Python nightlies

*
 `1857 &lt;https://github.com/huge-success/sanic/pull/1857&gt;`_
 Adjust websockets version to setup.py

*
 `1869 &lt;https://github.com/huge-success/sanic/pull/1869&gt;`_
 Wrap run()&#39;s &quot;protocol&quot; type annotation in Optional[]


Improved Documentation
**********************

*
 `1846 &lt;https://github.com/huge-success/sanic/pull/1846&gt;`_
 Update docs to clarify response middleware execution order

*
 `1865 &lt;https://github.com/huge-success/sanic/pull/1865&gt;`_
 Fixing rst format issue that was hiding documentation

20.6.0

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

*Released, but unintentionally ommitting PR 1880, so was replaced by 20.6.1*

20.3.0

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

Features
********

* 
 `1762 &lt;https://github.com/huge-success/sanic/pull/1762&gt;`_
 Add ``srv.start_serving()`` and ``srv.serve_forever()`` to ``AsyncioServer``

* 
 `1767 &lt;https://github.com/huge-success/sanic/pull/1767&gt;`_
 Make Sanic usable on ``hypercorn -k trio myweb.app``

* 
 `1768 &lt;https://github.com/huge-success/sanic/pull/1768&gt;`_
 No tracebacks on normal errors and prettier error pages

* 
 `1769 &lt;https://github.com/huge-success/sanic/pull/1769&gt;`_
 Code cleanup in file responses

* 
 `1793 &lt;https://github.com/huge-success/sanic/pull/1793&gt;`_ and
 `1819 &lt;https://github.com/huge-success/sanic/pull/1819&gt;`_ 
 Upgrade ``str.format()`` to f-strings

* 
 `1798 &lt;https://github.com/huge-success/sanic/pull/1798&gt;`_
 Allow multiple workers on MacOS with Python 3.8

*
 `1820 &lt;https://github.com/huge-success/sanic/pull/1820&gt;`_
 Do not set content-type and content-length headers in exceptions

Bugfixes
********

* 
 `1748 &lt;https://github.com/huge-success/sanic/pull/1748&gt;`_
 Remove loop argument in ``asyncio.Event`` in Python 3.8

* 
 `1764 &lt;https://github.com/huge-success/sanic/pull/1764&gt;`_
 Allow route decorators to stack up again

* 
 `1789 &lt;https://github.com/huge-success/sanic/pull/1789&gt;`_
 Fix tests using hosts yielding incorrect ``url_for``

* 
 `1808 &lt;https://github.com/huge-success/sanic/pull/1808&gt;`_
  Fix Ctrl+C and tests on Windows

Deprecations and Removals
*************************

*
 `1800 &lt;https://github.com/huge-success/sanic/pull/1800&gt;`_
 Begin deprecation in way of first-class streaming, removal of ``body_init``, ``body_push``, and ``body_finish``

*
 `1801 &lt;https://github.com/huge-success/sanic/pull/1801&gt;`_
 Complete deprecation from `1666 &lt;https://github.com/huge-success/sanic/pull/1666&gt;`_ of dictionary context on ``request`` objects.
 
*
 `1807 &lt;https://github.com/huge-success/sanic/pull/1807&gt;`_
 Remove server config args that can be read directly from app

*
 `1818 &lt;https://github.com/huge-success/sanic/pull/1818&gt;`_
 Complete deprecation of ``app.remove_route`` and ``request.raw_args``

Dependencies
************

*
 `1794 &lt;https://github.com/huge-success/sanic/pull/1794&gt;`_
 Bump ``httpx`` to 0.11.1

*
 `1806 &lt;https://github.com/huge-success/sanic/pull/1806&gt;`_
 Import ``ASGIDispatch`` from top-level ``httpx`` (from third-party deprecation)

Developer infrastructure
************************

* 
 `1833 &lt;https://github.com/huge-success/sanic/pull/1833&gt;`_
 Resolve broken documentation builds

Improved Documentation
**********************

* 
 `1755 &lt;https://github.com/huge-success/sanic/pull/1755&gt;`_
 Usage of ``response.empty()``

* 
 `1778 &lt;https://github.com/huge-success/sanic/pull/1778&gt;`_
 Update README

* 
 `1783 &lt;https://github.com/huge-success/sanic/pull/1783&gt;`_
 Fix typo

*
 `1784 &lt;https://github.com/huge-success/sanic/pull/1784&gt;`_
 Corrected changelog for docs move of MD to RST (`1691 &lt;https://github.com/huge-success/sanic/pull/1691&gt;`_)

*
 `1803 &lt;https://github.com/huge-success/sanic/pull/1803&gt;`_
 Update config docs to match DEFAULT_CONFIG

*
 `1814 &lt;https://github.com/huge-success/sanic/pull/1814&gt;`_
 Update getting_started.rst

*
 `1821 &lt;https://github.com/huge-success/sanic/pull/1821&gt;`_
 Update to deployment

*
 `1822 &lt;https://github.com/huge-success/sanic/pull/1822&gt;`_
 Update docs with changes done in 20.3

*
 `1834 &lt;https://github.com/huge-success/sanic/pull/1834&gt;`_
 Order of listeners

19.12.0

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

Bugfixes
********

- Fix blueprint middleware application

Currently, any blueprint middleware registered, irrespective of which blueprint was used to do so, was
being applied to all of the routes created by the :code:`app` and :code:`blueprint` alike.

As part of this change, the blueprint based middleware application is enforced based on where they are
registered.

- If you register a middleware via :code:`blueprint.middleware` then it will apply only to the routes defined by the blueprint.
- If you register a middleware via :code:`blueprint_group.middleware` then it will apply to all blueprint based routes that are part of the group.
- If you define a middleware via :code:`app.middleware` then it will be applied on all available routes (`37 &lt;https://github.com/huge-success/sanic/issues/37&gt;`__)
- Fix `url_for` behavior with missing SERVER_NAME

If the `SERVER_NAME` was missing in the `app.config` entity, the `url_for` on the `request` and  `app` were failing
due to an `AttributeError`. This fix makes the availability of `SERVER_NAME` on our `app.config` an optional behavior. (`1707 &lt;https://github.com/huge-success/sanic/issues/1707&gt;`__)


Improved Documentation
**********************

- Move docs from MD to RST

Moved all docs from markdown to restructured text like the rest of the docs to unify the scheme and make it easier in
the future to update documentation. (`1691 &lt;https://github.com/huge-success/sanic/issues/1691&gt;`__)
- Fix documentation for `get` and `getlist` of the `request.args`

Add additional example for showing the usage of `getlist` and fix the documentation string for `request.args` behavior (`1704 &lt;https://github.com/huge-success/sanic/issues/1704&gt;`__)

19.6.3

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

Features
********

- Enable Towncrier Support

As part of this feature, `towncrier` is being introduced as a mechanism to partially  automate the process
of generating and managing change logs as part of each of pull requests. (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)


Improved Documentation
**********************

- Documentation infrastructure changes

- Enable having a single common `CHANGELOG` file for both GitHub page and documentation
- Fix Sphinix deprecation warnings
- Fix documentation warnings due to invalid `rst` indentation
- Enable common contribution guidelines file across GitHub and documentation via `CONTRIBUTING.rst` (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)

19.6.2

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

Features
********

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Remove ``aiohttp`` dependencey and create new ``SanicTestClient`` based upon
 `requests-async &lt;https://github.com/encode/requests-async&gt;`_

* 
 `1475 &lt;https://github.com/huge-success/sanic/pull/1475&gt;`_
 Added ASGI support (Beta)

* 
 `1436 &lt;https://github.com/huge-success/sanic/pull/1436&gt;`_
 Add Configure support from object string


Bugfixes
********

* 
 `1587 &lt;https://github.com/huge-success/sanic/pull/1587&gt;`_
 Add missing handle for Expect header.

* 
 `1560 &lt;https://github.com/huge-success/sanic/pull/1560&gt;`_
 Allow to disable Transfer-Encoding: chunked.

* 
 `1558 &lt;https://github.com/huge-success/sanic/pull/1558&gt;`_
 Fix graceful shutdown.

* 
 `1594 &lt;https://github.com/huge-success/sanic/pull/1594&gt;`_
 Strict Slashes behavior fix

Deprecations and Removals
*************************

*
 `1544 &lt;https://github.com/huge-success/sanic/pull/1544&gt;`_
 Drop dependency on distutil

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Drop support for Python 3.5

* 
 `1568 &lt;https://github.com/huge-success/sanic/pull/1568&gt;`_
 Deprecate route removal.

.. warning::
 Sanic will not support Python 3.5 from version 19.6 and forward. However,
 version 18.12LTS will have its support period extended thru December 2020, and
 therefore passing Python&#39;s official support version 3.5, which is set to expire
 in September 2020.

19.3

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

Features
********

* 
 `1497 &lt;https://github.com/huge-success/sanic/pull/1497&gt;`_
 Add support for zero-length and RFC 5987 encoded filename for
 multipart/form-data requests.

* 
 `1484 &lt;https://github.com/huge-success/sanic/pull/1484&gt;`_
 The type of ``expires`` attribute of ``sanic.cookies.Cookie`` is now
 enforced to be of type ``datetime``.

* 
 `1482 &lt;https://github.com/huge-success/sanic/pull/1482&gt;`_
 Add support for the ``stream`` parameter of ``sanic.Sanic.add_route()``
 available to ``sanic.Blueprint.add_route()``.

* 
 `1481 &lt;https://github.com/huge-success/sanic/pull/1481&gt;`_
 Accept negative values for route parameters with type ``int`` or ``number``.

* 
 `1476 &lt;https://github.com/huge-success/sanic/pull/1476&gt;`_
 Deprecated the use of ``sanic.request.Request.raw_args`` - it has a
 fundamental flaw in which is drops repeated query string parameters.
 Added ``sanic.request.Request.query_args`` as a replacement for the
 original use-case.

* 
 `1472 &lt;https://github.com/huge-success/sanic/pull/1472&gt;`_
 Remove an unwanted ``None`` check in Request class ``repr`` implementation.
 This changes the default ``repr`` of a Request from ``&lt;Request&gt;`` to
 ``&lt;Request: None /&gt;``

* 
 `1470 &lt;https://github.com/huge-success/sanic/pull/1470&gt;`_
 Added 2 new parameters to ``sanic.app.Sanic.create_server``\ :


 * ``return_asyncio_server`` - whether to return an asyncio.Server.
 * ``asyncio_server_kwargs`` - kwargs to pass to ``loop.create_server`` for
   the event loop that sanic is using.

 This is a breaking change.

* 
 `1499 &lt;https://github.com/huge-success/sanic/pull/1499&gt;`_
 Added a set of test cases that test and benchmark route resolution.

* 
 `1457 &lt;https://github.com/huge-success/sanic/pull/1457&gt;`_
 The type of the ``&quot;max-age&quot;`` value in a ``sanic.cookies.Cookie`` is now
 enforced to be an integer. Non-integer values are replaced with ``0``.

* 
 `1445 &lt;https://github.com/huge-success/sanic/pull/1445&gt;`_
 Added the ``endpoint`` attribute to an incoming ``request``\ , containing the
 name of the handler function.

* 
 `1423 &lt;https://github.com/huge-success/sanic/pull/1423&gt;`_
 Improved request streaming. ``request.stream`` is now a bounded-size buffer
 instead of an unbounded queue. Callers must now call
 ``await request.stream.read()`` instead of ``await request.stream.get()``
 to read each portion of the body.

 This is a breaking change.

Bugfixes
********


* 
 `1502 &lt;https://github.com/huge-success/sanic/pull/1502&gt;`_
 Sanic was prefetching ``time.time()`` and updating it once per second to
 avoid excessive ``time.time()`` calls. The implementation was observed to
 cause memory leaks in some cases. The benefit of the prefetch appeared
 to negligible, so this has been removed. Fixes
 `1500 &lt;https://github.com/huge-success/sanic/pull/1500&gt;`_

* 
 `1501 &lt;https://github.com/huge-success/sanic/pull/1501&gt;`_
 Fix a bug in the auto-reloader when the process was launched as a module
 i.e. ``python -m init0.mod1`` where the sanic server is started
 in ``init0/mod1.py`` with ``debug`` enabled and imports another module in
 ``init0``.

* 
 `1376 &lt;https://github.com/huge-success/sanic/pull/1376&gt;`_
 Allow sanic test client to bind to a random port by specifying
 ``port=None`` when constructing a ``SanicTestClient``

* 
 `1399 &lt;https://github.com/huge-success/sanic/pull/1399&gt;`_
 Added the ability to specify middleware on a blueprint group, so that all
 routes produced from the blueprints in the group have the middleware
 applied.

* 
 `1442 &lt;https://github.com/huge-success/sanic/pull/1442&gt;`_
 Allow the the use the ``SANIC_ACCESS_LOG`` environment variable to
 enable/disable the access log when not explicitly passed to ``app.run()``.
 This allows the access log to be disabled for example when running via
 gunicorn.

Developer infrastructure
************************

* `1529 &lt;https://github.com/huge-success/sanic/pull/1529&gt;`_ Update project PyPI credentials
* `1515 &lt;https://github.com/huge-success/sanic/pull/1515&gt;`_ fix linter issue causing travis build failures (fix 1514)
* `1490 &lt;https://github.com/huge-success/sanic/pull/1490&gt;`_ Fix python version in doc build
* `1478 &lt;https://github.com/huge-success/sanic/pull/1478&gt;`_ Upgrade setuptools version and use native docutils in doc build
* `1464 &lt;https://github.com/huge-success/sanic/pull/1464&gt;`_ Upgrade pytest, and fix caplog unit tests

Improved Documentation
**********************

* `1516 &lt;https://github.com/huge-success/sanic/pull/1516&gt;`_ Fix typo at the exception documentation
* `1510 &lt;https://github.com/huge-success/sanic/pull/1510&gt;`_ fix typo in Asyncio example
* `1486 &lt;https://github.com/huge-success/sanic/pull/1486&gt;`_ Documentation typo
* `1477 &lt;https://github.com/huge-success/sanic/pull/1477&gt;`_ Fix grammar in README.md
* `1489 &lt;https://github.com/huge-success/sanic/pull/1489&gt;`_ Added &quot;databases&quot; to the extensions list
* `1483 &lt;https://github.com/huge-success/sanic/pull/1483&gt;`_ Add sanic-zipkin to extensions list
* `1487 &lt;https://github.com/huge-success/sanic/pull/1487&gt;`_ Removed link to deleted repo, Sanic-OAuth, from the extensions list
* `1460 &lt;https://github.com/huge-success/sanic/pull/1460&gt;`_ 18.12 changelog
* `1449 &lt;https://github.com/huge-success/sanic/pull/1449&gt;`_ Add example of amending request object
* `1446 &lt;https://github.com/huge-success/sanic/pull/1446&gt;`_ Update README
* `1444 &lt;https://github.com/huge-success/sanic/pull/1444&gt;`_ Update README
* `1443 &lt;https://github.com/huge-success/sanic/pull/1443&gt;`_ Update README, including new logo
* `1440 &lt;https://github.com/huge-success/sanic/pull/1440&gt;`_ fix minor type and pip install instruction mismatch
* `1424 &lt;https://github.com/huge-success/sanic/pull/1424&gt;`_ Documentation Enhancements

Note: 19.3.0 was skipped for packagement purposes and not released on PyPI

18.12

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

18.12.0

*******

* 
Changes:


* Improved codebase test coverage from 81% to 91%.
* Added stream_large_files and host examples in static_file document
* Added methods to append and finish body content on Request (1379)
* Integrated with .appveyor.yml for windows ci support
* Added documentation for AF_INET6 and AF_UNIX socket usage
* Adopt black/isort for codestyle
* Cancel task when connection_lost
* Simplify request ip and port retrieval logic
* Handle config error in load config file.
* Integrate with codecov for CI
* Add missed documentation for config section.
* Deprecate Handler.log
* Pinned httptools requirement to version 0.0.10+

* 
Fixes:


* Fix ``remove_entity_headers`` helper function (1415)
* Fix TypeError when use Blueprint.group() to group blueprint with default url_prefix, Use os.path.normpath to avoid invalid url_prefix like api//v1
 f8a6af1 Rename the ``http`` module to ``helpers`` to prevent conflicts with the built-in Python http library (fixes 1323)
* Fix unittests on windows
* Fix Namespacing of sanic logger
* Fix missing quotes in decorator example
* Fix redirect with quoted param
* Fix doc for latest blueprint code
* Fix build of latex documentation relating to markdown lists
* Fix loop exception handling in app.py
* Fix content length mismatch in windows and other platform
* Fix Range header handling for static files (1402)
* Fix the logger and make it work (1397)
* Fix type pikcle-&gt;pickle in multiprocessing test
* Fix pickling blueprints Change the string passed in the &quot;name&quot; section of the namedtuples in Blueprint to match the name of the Blueprint module attribute name. This allows blueprints to be pickled and unpickled, without errors, which is a requirment of running Sanic in multiprocessing mode in Windows. Added a test for pickling and unpickling blueprints Added a test for pickling and unpickling sanic itself Added a test for enabling multiprocessing on an app with a blueprint (only useful to catch this bug if the tests are run on Windows).
* Fix document for logging

0.8.3

*****

* Changes:

* Ownership changed to org &#39;huge-success&#39;

0.8

===========

0.8.0

*****

* Changes:


* Add Server-Sent Events extension (Innokenty Lebedev)
* Graceful handling of request_handler_task cancellation (Ashley Sommer)
* Sanitize URL before redirection (aveao)
* Add url_bytes to request (johndoe46)
* py37 support for travisci (yunstanford)
* Auto reloader support for OSX (garyo)
* Add UUID route support (Volodymyr Maksymiv)
* Add pausable response streams (Ashley Sommer)
* Add weakref to request slots (vopankov)
* remove ubuntu 12.04 from test fixture due to deprecation (yunstanford)
* Allow streaming handlers in add_route (kinware)
* use travis_retry for tox (Raphael Deem)
* update aiohttp version for test client (yunstanford)
* add redirect import for clarity (yingshaoxo)
* Update HTTP Entity headers (Arnulfo Solís)
* Add register_listener method (Stephan Fitzpatrick)
* Remove uvloop/ujson dependencies for Windows (abuckenheimer)
* Content-length header on 204/304 responses (Arnulfo Solís)
* Extend WebSocketProtocol arguments and add docs (Bob Olde Hampsink, yunstanford)
* Update development status from pre-alpha to beta (Maksim Anisenkov)
* KeepAlive Timout log level changed to debug (Arnulfo Solís)
* Pin pytest to 3.3.2 because of pytest-dev/pytest3170 (Maksim Aniskenov)
* Install Python 3.5 and 3.6 on docker container for tests (Shahin Azad)
* Add support for blueprint groups and nesting (Elias Tarhini)
* Remove uvloop for windows setup (Aleksandr Kurlov)
* Auto Reload (Yaser Amari)
* Documentation updates/fixups (multiple contributors)

* Fixes:


* Fix: auto_reload in Linux (Ashley Sommer)
* Fix: broken tests for aiohttp &gt;= 3.3.0 (Ashley Sommer)
* Fix: disable auto_reload by default on windows (abuckenheimer)
* Fix (1143): Turn off access log with gunicorn (hqy)
* Fix (1268): Support status code for file response (Cosmo Borsky)
* Fix (1266): Add content_type flag to Sanic.static (Cosmo Borsky)
* Fix: subprotocols parameter missing from add_websocket_route (ciscorn)
* Fix (1242): Responses for CI header (yunstanford)
* Fix (1237): add version constraint for websockets (yunstanford)
* Fix (1231): memory leak - always release resource (Phillip Xu)
* Fix (1221): make request truthy if transport exists (Raphael Deem)
* Fix failing tests for aiohttp&gt;=3.1.0 (Ashley Sommer)
* Fix try_everything examples (PyManiacGR, kot83)
* Fix (1158): default to auto_reload in debug mode (Raphael Deem)
* Fix (1136): ErrorHandler.response handler call too restrictive (Julien Castiaux)
* Fix: raw requires bytes-like object (cloudship)
* Fix (1120): passing a list in to a route decorator&#39;s host arg (Timothy Ebiuwhe)
* Fix: Bug in multipart/form-data parser (DirkGuijt)
* Fix: Exception for missing parameter when value is null (NyanKiyoshi)
* Fix: Parameter check (Howie Hu)
* Fix (1089): Routing issue with named parameters and different methods (yunstanford)
* Fix (1085): Signal handling in multi-worker mode (yunstanford)
* Fix: single quote in readme.rst (Cosven)
* Fix: method typos (Dmitry Dygalo)
* Fix: log_response correct output for ip and port (Wibowo Arindrarto)
* Fix (1042): Exception Handling (Raphael Deem)
* Fix: Chinese URIs (Howie Hu)
* Fix (1079): timeout bug when self.transport is None (Raphael Deem)
* Fix (1074): fix strict_slashes when route has slash (Raphael Deem)
* Fix (1050): add samesite cookie to cookie keys (Raphael Deem)
* Fix (1065): allow add_task after server starts (Raphael Deem)
* Fix (1061): double quotes in unauthorized exception (Raphael Deem)
* Fix (1062): inject the app in add_task method (Raphael Deem)
* Fix: update environment.yml for readthedocs (Eli Uriegas)
* Fix: Cancel request task when response timeout is triggered (Jeong YunWon)
* Fix (1052): Method not allowed response for RFC7231 compliance (Raphael Deem)
* Fix: IPv6 Address and Socket Data Format (Dan Palmer)

Note: Changelog was unmaintained between 0.1 and 0.7

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sanic
  • Changelog: https://pyup.io/changelogs/sanic/
  • Repo: http://github.com/huge-success/sanic/ </details>
+2 -2

1 comment

2 changed files

pyup-bot

pr closed time in 3 hours

pull request commenttech-teach/microservice-topology

Update sanic to 20.6.3

Closing this in favor of #152

pyup-bot

comment created time in 3 hours

PR opened tech-teach/microservice-topology

Update sanic to 20.9.0

This PR updates sanic from 0.7.0 to 20.9.0.

<details> <summary>Changelog</summary>

20.9.0

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


Features
********

*
 `1887 &lt;https://github.com/huge-success/sanic/pull/1887&gt;`_
 Pass subprotocols in websockets (both sanic server and ASGI)

*
 `1894 &lt;https://github.com/huge-success/sanic/pull/1894&gt;`_
 Automatically set ``test_mode`` flag on app instance

*
 `1903 &lt;https://github.com/huge-success/sanic/pull/1903&gt;`_ 
 Add new unified method for updating app values

*
 `1906 &lt;https://github.com/huge-success/sanic/pull/1906&gt;`_,
 `1909 &lt;https://github.com/huge-success/sanic/pull/1909&gt;`_
 Adds WEBSOCKET_PING_TIMEOUT and WEBSOCKET_PING_INTERVAL configuration values

*
 `1935 &lt;https://github.com/huge-success/sanic/pull/1935&gt;`_
 httpx version dependency updated, it is slated for removal as a dependency in v20.12

*
 `1937 &lt;https://github.com/huge-success/sanic/pull/1937&gt;`_ 
 Added auto, text, and json fallback error handlers (in v21.3, the default will change form html to auto)

Bugfixes
********

*
 `1897 &lt;https://github.com/huge-success/sanic/pull/1897&gt;`_
 Resolves exception from unread bytes in stream

Deprecations and Removals
*************************

*
 `1903 &lt;https://github.com/huge-success/sanic/pull/1903&gt;`_
 config.from_envar, config.from_pyfile, and config.from_object are deprecated and set to be removed in v21.3

Developer infrastructure
************************

*
 `1890 &lt;https://github.com/huge-success/sanic/pull/1890&gt;`_,
 `1891 &lt;https://github.com/huge-success/sanic/pull/1891&gt;`_
 Update isort calls to be compatible with new API

*
 `1893 &lt;https://github.com/huge-success/sanic/pull/1893&gt;`_
 Remove version section from setup.cfg

*
 `1924 &lt;https://github.com/huge-success/sanic/pull/1924&gt;`_
 Adding --strict-markers for pytest

Improved Documentation
**********************

*
 `1922 &lt;https://github.com/huge-success/sanic/pull/1922&gt;`_
 Add explicit ASGI compliance to the README

20.6.3

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

Bugfixes
********

*
 `1884 &lt;https://github.com/huge-success/sanic/pull/1884&gt;`_
 Revert change to multiprocessing mode

20.6.2

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

Features
********

*
 `1641 &lt;https://github.com/huge-success/sanic/pull/1641&gt;`_
 Socket binding implemented properly for IPv6 and UNIX sockets

20.6.1

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

Features
********

*
 `1760 &lt;https://github.com/huge-success/sanic/pull/1760&gt;`_
 Add version parameter to websocket routes

*
 `1866 &lt;https://github.com/huge-success/sanic/pull/1866&gt;`_
 Add ``sanic`` as an entry point command

*
 `1880 &lt;https://github.com/huge-success/sanic/pull/1880&gt;`_
 Add handler names for websockets for url_for usage 

Bugfixes
********

*
 `1776 &lt;https://github.com/huge-success/sanic/pull/1776&gt;`_
 Bug fix for host parameter issue with lists

*
 `1842 &lt;https://github.com/huge-success/sanic/pull/1842&gt;`_
 Fix static _handler pickling error

*
 `1827 &lt;https://github.com/huge-success/sanic/pull/1827&gt;`_
 Fix reloader on OSX py38 and Windows

*
 `1848 &lt;https://github.com/huge-success/sanic/pull/1848&gt;`_
 Reverse named_response_middlware execution order, to match normal response middleware execution order

*
 `1853 &lt;https://github.com/huge-success/sanic/pull/1853&gt;`_
 Fix pickle error when attempting to pickle an application which contains websocket routes

Deprecations and Removals
*************************

*
 `1739 &lt;https://github.com/huge-success/sanic/pull/1739&gt;`_
 Deprecate body_bytes to merge into body

Developer infrastructure
************************

*
 `1852 &lt;https://github.com/huge-success/sanic/pull/1852&gt;`_
 Fix naming of CI test env on Python nightlies

*
 `1857 &lt;https://github.com/huge-success/sanic/pull/1857&gt;`_
 Adjust websockets version to setup.py

*
 `1869 &lt;https://github.com/huge-success/sanic/pull/1869&gt;`_
 Wrap run()&#39;s &quot;protocol&quot; type annotation in Optional[]


Improved Documentation
**********************

*
 `1846 &lt;https://github.com/huge-success/sanic/pull/1846&gt;`_
 Update docs to clarify response middleware execution order

*
 `1865 &lt;https://github.com/huge-success/sanic/pull/1865&gt;`_
 Fixing rst format issue that was hiding documentation

20.6.0

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

*Released, but unintentionally ommitting PR 1880, so was replaced by 20.6.1*

20.3.0

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

Features
********

* 
 `1762 &lt;https://github.com/huge-success/sanic/pull/1762&gt;`_
 Add ``srv.start_serving()`` and ``srv.serve_forever()`` to ``AsyncioServer``

* 
 `1767 &lt;https://github.com/huge-success/sanic/pull/1767&gt;`_
 Make Sanic usable on ``hypercorn -k trio myweb.app``

* 
 `1768 &lt;https://github.com/huge-success/sanic/pull/1768&gt;`_
 No tracebacks on normal errors and prettier error pages

* 
 `1769 &lt;https://github.com/huge-success/sanic/pull/1769&gt;`_
 Code cleanup in file responses

* 
 `1793 &lt;https://github.com/huge-success/sanic/pull/1793&gt;`_ and
 `1819 &lt;https://github.com/huge-success/sanic/pull/1819&gt;`_ 
 Upgrade ``str.format()`` to f-strings

* 
 `1798 &lt;https://github.com/huge-success/sanic/pull/1798&gt;`_
 Allow multiple workers on MacOS with Python 3.8

*
 `1820 &lt;https://github.com/huge-success/sanic/pull/1820&gt;`_
 Do not set content-type and content-length headers in exceptions

Bugfixes
********

* 
 `1748 &lt;https://github.com/huge-success/sanic/pull/1748&gt;`_
 Remove loop argument in ``asyncio.Event`` in Python 3.8

* 
 `1764 &lt;https://github.com/huge-success/sanic/pull/1764&gt;`_
 Allow route decorators to stack up again

* 
 `1789 &lt;https://github.com/huge-success/sanic/pull/1789&gt;`_
 Fix tests using hosts yielding incorrect ``url_for``

* 
 `1808 &lt;https://github.com/huge-success/sanic/pull/1808&gt;`_
  Fix Ctrl+C and tests on Windows

Deprecations and Removals
*************************

*
 `1800 &lt;https://github.com/huge-success/sanic/pull/1800&gt;`_
 Begin deprecation in way of first-class streaming, removal of ``body_init``, ``body_push``, and ``body_finish``

*
 `1801 &lt;https://github.com/huge-success/sanic/pull/1801&gt;`_
 Complete deprecation from `1666 &lt;https://github.com/huge-success/sanic/pull/1666&gt;`_ of dictionary context on ``request`` objects.
 
*
 `1807 &lt;https://github.com/huge-success/sanic/pull/1807&gt;`_
 Remove server config args that can be read directly from app

*
 `1818 &lt;https://github.com/huge-success/sanic/pull/1818&gt;`_
 Complete deprecation of ``app.remove_route`` and ``request.raw_args``

Dependencies
************

*
 `1794 &lt;https://github.com/huge-success/sanic/pull/1794&gt;`_
 Bump ``httpx`` to 0.11.1

*
 `1806 &lt;https://github.com/huge-success/sanic/pull/1806&gt;`_
 Import ``ASGIDispatch`` from top-level ``httpx`` (from third-party deprecation)

Developer infrastructure
************************

* 
 `1833 &lt;https://github.com/huge-success/sanic/pull/1833&gt;`_
 Resolve broken documentation builds

Improved Documentation
**********************

* 
 `1755 &lt;https://github.com/huge-success/sanic/pull/1755&gt;`_
 Usage of ``response.empty()``

* 
 `1778 &lt;https://github.com/huge-success/sanic/pull/1778&gt;`_
 Update README

* 
 `1783 &lt;https://github.com/huge-success/sanic/pull/1783&gt;`_
 Fix typo

*
 `1784 &lt;https://github.com/huge-success/sanic/pull/1784&gt;`_
 Corrected changelog for docs move of MD to RST (`1691 &lt;https://github.com/huge-success/sanic/pull/1691&gt;`_)

*
 `1803 &lt;https://github.com/huge-success/sanic/pull/1803&gt;`_
 Update config docs to match DEFAULT_CONFIG

*
 `1814 &lt;https://github.com/huge-success/sanic/pull/1814&gt;`_
 Update getting_started.rst

*
 `1821 &lt;https://github.com/huge-success/sanic/pull/1821&gt;`_
 Update to deployment

*
 `1822 &lt;https://github.com/huge-success/sanic/pull/1822&gt;`_
 Update docs with changes done in 20.3

*
 `1834 &lt;https://github.com/huge-success/sanic/pull/1834&gt;`_
 Order of listeners

19.12.0

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

Bugfixes
********

- Fix blueprint middleware application

Currently, any blueprint middleware registered, irrespective of which blueprint was used to do so, was
being applied to all of the routes created by the :code:`app` and :code:`blueprint` alike.

As part of this change, the blueprint based middleware application is enforced based on where they are
registered.

- If you register a middleware via :code:`blueprint.middleware` then it will apply only to the routes defined by the blueprint.
- If you register a middleware via :code:`blueprint_group.middleware` then it will apply to all blueprint based routes that are part of the group.
- If you define a middleware via :code:`app.middleware` then it will be applied on all available routes (`37 &lt;https://github.com/huge-success/sanic/issues/37&gt;`__)
- Fix `url_for` behavior with missing SERVER_NAME

If the `SERVER_NAME` was missing in the `app.config` entity, the `url_for` on the `request` and  `app` were failing
due to an `AttributeError`. This fix makes the availability of `SERVER_NAME` on our `app.config` an optional behavior. (`1707 &lt;https://github.com/huge-success/sanic/issues/1707&gt;`__)


Improved Documentation
**********************

- Move docs from MD to RST

Moved all docs from markdown to restructured text like the rest of the docs to unify the scheme and make it easier in
the future to update documentation. (`1691 &lt;https://github.com/huge-success/sanic/issues/1691&gt;`__)
- Fix documentation for `get` and `getlist` of the `request.args`

Add additional example for showing the usage of `getlist` and fix the documentation string for `request.args` behavior (`1704 &lt;https://github.com/huge-success/sanic/issues/1704&gt;`__)

19.6.3

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

Features
********

- Enable Towncrier Support

As part of this feature, `towncrier` is being introduced as a mechanism to partially  automate the process
of generating and managing change logs as part of each of pull requests. (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)


Improved Documentation
**********************

- Documentation infrastructure changes

- Enable having a single common `CHANGELOG` file for both GitHub page and documentation
- Fix Sphinix deprecation warnings
- Fix documentation warnings due to invalid `rst` indentation
- Enable common contribution guidelines file across GitHub and documentation via `CONTRIBUTING.rst` (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)

19.6.2

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

Features
********

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Remove ``aiohttp`` dependency and create new ``SanicTestClient`` based upon
 `requests-async &lt;https://github.com/encode/requests-async&gt;`_

* 
 `1475 &lt;https://github.com/huge-success/sanic/pull/1475&gt;`_
 Added ASGI support (Beta)

* 
 `1436 &lt;https://github.com/huge-success/sanic/pull/1436&gt;`_
 Add Configure support from object string


Bugfixes
********

* 
 `1587 &lt;https://github.com/huge-success/sanic/pull/1587&gt;`_
 Add missing handle for Expect header.

* 
 `1560 &lt;https://github.com/huge-success/sanic/pull/1560&gt;`_
 Allow to disable Transfer-Encoding: chunked.

* 
 `1558 &lt;https://github.com/huge-success/sanic/pull/1558&gt;`_
 Fix graceful shutdown.

* 
 `1594 &lt;https://github.com/huge-success/sanic/pull/1594&gt;`_
 Strict Slashes behavior fix

Deprecations and Removals
*************************

*
 `1544 &lt;https://github.com/huge-success/sanic/pull/1544&gt;`_
 Drop dependency on distutil

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Drop support for Python 3.5

* 
 `1568 &lt;https://github.com/huge-success/sanic/pull/1568&gt;`_
 Deprecate route removal.

.. warning::
 Sanic will not support Python 3.5 from version 19.6 and forward. However,
 version 18.12LTS will have its support period extended thru December 2020, and
 therefore passing Python&#39;s official support version 3.5, which is set to expire
 in September 2020.

19.3

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

Features
********

* 
 `1497 &lt;https://github.com/huge-success/sanic/pull/1497&gt;`_
 Add support for zero-length and RFC 5987 encoded filename for
 multipart/form-data requests.

* 
 `1484 &lt;https://github.com/huge-success/sanic/pull/1484&gt;`_
 The type of ``expires`` attribute of ``sanic.cookies.Cookie`` is now
 enforced to be of type ``datetime``.

* 
 `1482 &lt;https://github.com/huge-success/sanic/pull/1482&gt;`_
 Add support for the ``stream`` parameter of ``sanic.Sanic.add_route()``
 available to ``sanic.Blueprint.add_route()``.

* 
 `1481 &lt;https://github.com/huge-success/sanic/pull/1481&gt;`_
 Accept negative values for route parameters with type ``int`` or ``number``.

* 
 `1476 &lt;https://github.com/huge-success/sanic/pull/1476&gt;`_
 Deprecated the use of ``sanic.request.Request.raw_args`` - it has a
 fundamental flaw in which is drops repeated query string parameters.
 Added ``sanic.request.Request.query_args`` as a replacement for the
 original use-case.

* 
 `1472 &lt;https://github.com/huge-success/sanic/pull/1472&gt;`_
 Remove an unwanted ``None`` check in Request class ``repr`` implementation.
 This changes the default ``repr`` of a Request from ``&lt;Request&gt;`` to
 ``&lt;Request: None /&gt;``

* 
 `1470 &lt;https://github.com/huge-success/sanic/pull/1470&gt;`_
 Added 2 new parameters to ``sanic.app.Sanic.create_server``\ :


 * ``return_asyncio_server`` - whether to return an asyncio.Server.
 * ``asyncio_server_kwargs`` - kwargs to pass to ``loop.create_server`` for
   the event loop that sanic is using.

 This is a breaking change.

* 
 `1499 &lt;https://github.com/huge-success/sanic/pull/1499&gt;`_
 Added a set of test cases that test and benchmark route resolution.

* 
 `1457 &lt;https://github.com/huge-success/sanic/pull/1457&gt;`_
 The type of the ``&quot;max-age&quot;`` value in a ``sanic.cookies.Cookie`` is now
 enforced to be an integer. Non-integer values are replaced with ``0``.

* 
 `1445 &lt;https://github.com/huge-success/sanic/pull/1445&gt;`_
 Added the ``endpoint`` attribute to an incoming ``request``\ , containing the
 name of the handler function.

* 
 `1423 &lt;https://github.com/huge-success/sanic/pull/1423&gt;`_
 Improved request streaming. ``request.stream`` is now a bounded-size buffer
 instead of an unbounded queue. Callers must now call
 ``await request.stream.read()`` instead of ``await request.stream.get()``
 to read each portion of the body.

 This is a breaking change.

Bugfixes
********


* 
 `1502 &lt;https://github.com/huge-success/sanic/pull/1502&gt;`_
 Sanic was prefetching ``time.time()`` and updating it once per second to
 avoid excessive ``time.time()`` calls. The implementation was observed to
 cause memory leaks in some cases. The benefit of the prefetch appeared
 to negligible, so this has been removed. Fixes
 `1500 &lt;https://github.com/huge-success/sanic/pull/1500&gt;`_

* 
 `1501 &lt;https://github.com/huge-success/sanic/pull/1501&gt;`_
 Fix a bug in the auto-reloader when the process was launched as a module
 i.e. ``python -m init0.mod1`` where the sanic server is started
 in ``init0/mod1.py`` with ``debug`` enabled and imports another module in
 ``init0``.

* 
 `1376 &lt;https://github.com/huge-success/sanic/pull/1376&gt;`_
 Allow sanic test client to bind to a random port by specifying
 ``port=None`` when constructing a ``SanicTestClient``

* 
 `1399 &lt;https://github.com/huge-success/sanic/pull/1399&gt;`_
 Added the ability to specify middleware on a blueprint group, so that all
 routes produced from the blueprints in the group have the middleware
 applied.

* 
 `1442 &lt;https://github.com/huge-success/sanic/pull/1442&gt;`_
 Allow the the use the ``SANIC_ACCESS_LOG`` environment variable to
 enable/disable the access log when not explicitly passed to ``app.run()``.
 This allows the access log to be disabled for example when running via
 gunicorn.

Developer infrastructure
************************

* `1529 &lt;https://github.com/huge-success/sanic/pull/1529&gt;`_ Update project PyPI credentials
* `1515 &lt;https://github.com/huge-success/sanic/pull/1515&gt;`_ fix linter issue causing travis build failures (fix 1514)
* `1490 &lt;https://github.com/huge-success/sanic/pull/1490&gt;`_ Fix python version in doc build
* `1478 &lt;https://github.com/huge-success/sanic/pull/1478&gt;`_ Upgrade setuptools version and use native docutils in doc build
* `1464 &lt;https://github.com/huge-success/sanic/pull/1464&gt;`_ Upgrade pytest, and fix caplog unit tests

Improved Documentation
**********************

* `1516 &lt;https://github.com/huge-success/sanic/pull/1516&gt;`_ Fix typo at the exception documentation
* `1510 &lt;https://github.com/huge-success/sanic/pull/1510&gt;`_ fix typo in Asyncio example
* `1486 &lt;https://github.com/huge-success/sanic/pull/1486&gt;`_ Documentation typo
* `1477 &lt;https://github.com/huge-success/sanic/pull/1477&gt;`_ Fix grammar in README.md
* `1489 &lt;https://github.com/huge-success/sanic/pull/1489&gt;`_ Added &quot;databases&quot; to the extensions list
* `1483 &lt;https://github.com/huge-success/sanic/pull/1483&gt;`_ Add sanic-zipkin to extensions list
* `1487 &lt;https://github.com/huge-success/sanic/pull/1487&gt;`_ Removed link to deleted repo, Sanic-OAuth, from the extensions list
* `1460 &lt;https://github.com/huge-success/sanic/pull/1460&gt;`_ 18.12 changelog
* `1449 &lt;https://github.com/huge-success/sanic/pull/1449&gt;`_ Add example of amending request object
* `1446 &lt;https://github.com/huge-success/sanic/pull/1446&gt;`_ Update README
* `1444 &lt;https://github.com/huge-success/sanic/pull/1444&gt;`_ Update README
* `1443 &lt;https://github.com/huge-success/sanic/pull/1443&gt;`_ Update README, including new logo
* `1440 &lt;https://github.com/huge-success/sanic/pull/1440&gt;`_ fix minor type and pip install instruction mismatch
* `1424 &lt;https://github.com/huge-success/sanic/pull/1424&gt;`_ Documentation Enhancements

Note: 19.3.0 was skipped for packagement purposes and not released on PyPI

18.12

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

18.12.0

*******

* 
Changes:


* Improved codebase test coverage from 81% to 91%.
* Added stream_large_files and host examples in static_file document
* Added methods to append and finish body content on Request (1379)
* Integrated with .appveyor.yml for windows ci support
* Added documentation for AF_INET6 and AF_UNIX socket usage
* Adopt black/isort for codestyle
* Cancel task when connection_lost
* Simplify request ip and port retrieval logic
* Handle config error in load config file.
* Integrate with codecov for CI
* Add missed documentation for config section.
* Deprecate Handler.log
* Pinned httptools requirement to version 0.0.10+

* 
Fixes:


* Fix ``remove_entity_headers`` helper function (1415)
* Fix TypeError when use Blueprint.group() to group blueprint with default url_prefix, Use os.path.normpath to avoid invalid url_prefix like api//v1
 f8a6af1 Rename the ``http`` module to ``helpers`` to prevent conflicts with the built-in Python http library (fixes 1323)
* Fix unittests on windows
* Fix Namespacing of sanic logger
* Fix missing quotes in decorator example
* Fix redirect with quoted param
* Fix doc for latest blueprint code
* Fix build of latex documentation relating to markdown lists
* Fix loop exception handling in app.py
* Fix content length mismatch in windows and other platform
* Fix Range header handling for static files (1402)
* Fix the logger and make it work (1397)
* Fix type pikcle-&gt;pickle in multiprocessing test
* Fix pickling blueprints Change the string passed in the &quot;name&quot; section of the namedtuples in Blueprint to match the name of the Blueprint module attribute name. This allows blueprints to be pickled and unpickled, without errors, which is a requirment of running Sanic in multiprocessing mode in Windows. Added a test for pickling and unpickling blueprints Added a test for pickling and unpickling sanic itself Added a test for enabling multiprocessing on an app with a blueprint (only useful to catch this bug if the tests are run on Windows).
* Fix document for logging

0.8.3

*****

* Changes:

* Ownership changed to org &#39;huge-success&#39;

0.8

===========

0.8.0

*****

* Changes:


* Add Server-Sent Events extension (Innokenty Lebedev)
* Graceful handling of request_handler_task cancellation (Ashley Sommer)
* Sanitize URL before redirection (aveao)
* Add url_bytes to request (johndoe46)
* py37 support for travisci (yunstanford)
* Auto reloader support for OSX (garyo)
* Add UUID route support (Volodymyr Maksymiv)
* Add pausable response streams (Ashley Sommer)
* Add weakref to request slots (vopankov)
* remove ubuntu 12.04 from test fixture due to deprecation (yunstanford)
* Allow streaming handlers in add_route (kinware)
* use travis_retry for tox (Raphael Deem)
* update aiohttp version for test client (yunstanford)
* add redirect import for clarity (yingshaoxo)
* Update HTTP Entity headers (Arnulfo Solís)
* Add register_listener method (Stephan Fitzpatrick)
* Remove uvloop/ujson dependencies for Windows (abuckenheimer)
* Content-length header on 204/304 responses (Arnulfo Solís)
* Extend WebSocketProtocol arguments and add docs (Bob Olde Hampsink, yunstanford)
* Update development status from pre-alpha to beta (Maksim Anisenkov)
* KeepAlive Timout log level changed to debug (Arnulfo Solís)
* Pin pytest to 3.3.2 because of pytest-dev/pytest3170 (Maksim Aniskenov)
* Install Python 3.5 and 3.6 on docker container for tests (Shahin Azad)
* Add support for blueprint groups and nesting (Elias Tarhini)
* Remove uvloop for windows setup (Aleksandr Kurlov)
* Auto Reload (Yaser Amari)
* Documentation updates/fixups (multiple contributors)

* Fixes:


* Fix: auto_reload in Linux (Ashley Sommer)
* Fix: broken tests for aiohttp &gt;= 3.3.0 (Ashley Sommer)
* Fix: disable auto_reload by default on windows (abuckenheimer)
* Fix (1143): Turn off access log with gunicorn (hqy)
* Fix (1268): Support status code for file response (Cosmo Borsky)
* Fix (1266): Add content_type flag to Sanic.static (Cosmo Borsky)
* Fix: subprotocols parameter missing from add_websocket_route (ciscorn)
* Fix (1242): Responses for CI header (yunstanford)
* Fix (1237): add version constraint for websockets (yunstanford)
* Fix (1231): memory leak - always release resource (Phillip Xu)
* Fix (1221): make request truthy if transport exists (Raphael Deem)
* Fix failing tests for aiohttp&gt;=3.1.0 (Ashley Sommer)
* Fix try_everything examples (PyManiacGR, kot83)
* Fix (1158): default to auto_reload in debug mode (Raphael Deem)
* Fix (1136): ErrorHandler.response handler call too restrictive (Julien Castiaux)
* Fix: raw requires bytes-like object (cloudship)
* Fix (1120): passing a list in to a route decorator&#39;s host arg (Timothy Ebiuwhe)
* Fix: Bug in multipart/form-data parser (DirkGuijt)
* Fix: Exception for missing parameter when value is null (NyanKiyoshi)
* Fix: Parameter check (Howie Hu)
* Fix (1089): Routing issue with named parameters and different methods (yunstanford)
* Fix (1085): Signal handling in multi-worker mode (yunstanford)
* Fix: single quote in readme.rst (Cosven)
* Fix: method typos (Dmitry Dygalo)
* Fix: log_response correct output for ip and port (Wibowo Arindrarto)
* Fix (1042): Exception Handling (Raphael Deem)
* Fix: Chinese URIs (Howie Hu)
* Fix (1079): timeout bug when self.transport is None (Raphael Deem)
* Fix (1074): fix strict_slashes when route has slash (Raphael Deem)
* Fix (1050): add samesite cookie to cookie keys (Raphael Deem)
* Fix (1065): allow add_task after server starts (Raphael Deem)
* Fix (1061): double quotes in unauthorized exception (Raphael Deem)
* Fix (1062): inject the app in add_task method (Raphael Deem)
* Fix: update environment.yml for readthedocs (Eli Uriegas)
* Fix: Cancel request task when response timeout is triggered (Jeong YunWon)
* Fix (1052): Method not allowed response for RFC7231 compliance (Raphael Deem)
* Fix: IPv6 Address and Socket Data Format (Dan Palmer)

Note: Changelog was unmaintained between 0.1 and 0.7

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sanic
  • Changelog: https://pyup.io/changelogs/sanic/
  • Repo: http://github.com/huge-success/sanic/ </details>
+2 -2

0 comment

2 changed files

pr created time in 3 hours

PR closed dcalsky/fish-hook

Update sanic to 20.6.3

This PR updates sanic from 0.3.1 to 20.6.3.

<details> <summary>Changelog</summary>

20.6.2

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

Features
********

*
 `1641 &lt;https://github.com/huge-success/sanic/pull/1641&gt;`_
 Socket binding implemented properly for IPv6 and UNIX sockets

20.6.1

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

Features
********

*
 `1760 &lt;https://github.com/huge-success/sanic/pull/1760&gt;`_
 Add version parameter to websocket routes

*
 `1866 &lt;https://github.com/huge-success/sanic/pull/1866&gt;`_
 Add ``sanic`` as an entry point command

*
 `1880 &lt;https://github.com/huge-success/sanic/pull/1880&gt;`_
 Add handler names for websockets for url_for usage 

Bugfixes
********

*
 `1776 &lt;https://github.com/huge-success/sanic/pull/1776&gt;`_
 Bug fix for host parameter issue with lists

*
 `1842 &lt;https://github.com/huge-success/sanic/pull/1842&gt;`_
 Fix static _handler pickling error

*
 `1827 &lt;https://github.com/huge-success/sanic/pull/1827&gt;`_
 Fix reloader on OSX py38 and Windows

*
 `1848 &lt;https://github.com/huge-success/sanic/pull/1848&gt;`_
 Reverse named_response_middlware execution order, to match normal response middleware execution order

*
 `1853 &lt;https://github.com/huge-success/sanic/pull/1853&gt;`_
 Fix pickle error when attempting to pickle an application which contains websocket routes

Deprecations and Removals
*************************

*
 `1739 &lt;https://github.com/huge-success/sanic/pull/1739&gt;`_
 Deprecate body_bytes to merge into body

Developer infrastructure
************************

*
 `1852 &lt;https://github.com/huge-success/sanic/pull/1852&gt;`_
 Fix naming of CI test env on Python nightlies

*
 `1857 &lt;https://github.com/huge-success/sanic/pull/1857&gt;`_
 Adjust websockets version to setup.py

*
 `1869 &lt;https://github.com/huge-success/sanic/pull/1869&gt;`_
 Wrap run()&#39;s &quot;protocol&quot; type annotation in Optional[]


Improved Documentation
**********************

*
 `1846 &lt;https://github.com/huge-success/sanic/pull/1846&gt;`_
 Update docs to clarify response middleware execution order

*
 `1865 &lt;https://github.com/huge-success/sanic/pull/1865&gt;`_
 Fixing rst format issue that was hiding documentation

20.6.0

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

*Released, but unintentionally ommitting PR 1880, so was replaced by 20.6.1*

20.3.0

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

Features
********

* 
 `1762 &lt;https://github.com/huge-success/sanic/pull/1762&gt;`_
 Add ``srv.start_serving()`` and ``srv.serve_forever()`` to ``AsyncioServer``

* 
 `1767 &lt;https://github.com/huge-success/sanic/pull/1767&gt;`_
 Make Sanic usable on ``hypercorn -k trio myweb.app``

* 
 `1768 &lt;https://github.com/huge-success/sanic/pull/1768&gt;`_
 No tracebacks on normal errors and prettier error pages

* 
 `1769 &lt;https://github.com/huge-success/sanic/pull/1769&gt;`_
 Code cleanup in file responses

* 
 `1793 &lt;https://github.com/huge-success/sanic/pull/1793&gt;`_ and
 `1819 &lt;https://github.com/huge-success/sanic/pull/1819&gt;`_ 
 Upgrade ``str.format()`` to f-strings

* 
 `1798 &lt;https://github.com/huge-success/sanic/pull/1798&gt;`_
 Allow multiple workers on MacOS with Python 3.8

*
 `1820 &lt;https://github.com/huge-success/sanic/pull/1820&gt;`_
 Do not set content-type and content-length headers in exceptions

Bugfixes
********

* 
 `1748 &lt;https://github.com/huge-success/sanic/pull/1748&gt;`_
 Remove loop argument in ``asyncio.Event`` in Python 3.8

* 
 `1764 &lt;https://github.com/huge-success/sanic/pull/1764&gt;`_
 Allow route decorators to stack up again

* 
 `1789 &lt;https://github.com/huge-success/sanic/pull/1789&gt;`_
 Fix tests using hosts yielding incorrect ``url_for``

* 
 `1808 &lt;https://github.com/huge-success/sanic/pull/1808&gt;`_
  Fix Ctrl+C and tests on Windows

Deprecations and Removals
*************************

*
 `1800 &lt;https://github.com/huge-success/sanic/pull/1800&gt;`_
 Begin deprecation in way of first-class streaming, removal of ``body_init``, ``body_push``, and ``body_finish``

*
 `1801 &lt;https://github.com/huge-success/sanic/pull/1801&gt;`_
 Complete deprecation from `1666 &lt;https://github.com/huge-success/sanic/pull/1666&gt;`_ of dictionary context on ``request`` objects.
 
*
 `1807 &lt;https://github.com/huge-success/sanic/pull/1807&gt;`_
 Remove server config args that can be read directly from app

*
 `1818 &lt;https://github.com/huge-success/sanic/pull/1818&gt;`_
 Complete deprecation of ``app.remove_route`` and ``request.raw_args``

Dependencies
************

*
 `1794 &lt;https://github.com/huge-success/sanic/pull/1794&gt;`_
 Bump ``httpx`` to 0.11.1

*
 `1806 &lt;https://github.com/huge-success/sanic/pull/1806&gt;`_
 Import ``ASGIDispatch`` from top-level ``httpx`` (from third-party deprecation)

Developer infrastructure
************************

* 
 `1833 &lt;https://github.com/huge-success/sanic/pull/1833&gt;`_
 Resolve broken documentation builds

Improved Documentation
**********************

* 
 `1755 &lt;https://github.com/huge-success/sanic/pull/1755&gt;`_
 Usage of ``response.empty()``

* 
 `1778 &lt;https://github.com/huge-success/sanic/pull/1778&gt;`_
 Update README

* 
 `1783 &lt;https://github.com/huge-success/sanic/pull/1783&gt;`_
 Fix typo

*
 `1784 &lt;https://github.com/huge-success/sanic/pull/1784&gt;`_
 Corrected changelog for docs move of MD to RST (`1691 &lt;https://github.com/huge-success/sanic/pull/1691&gt;`_)

*
 `1803 &lt;https://github.com/huge-success/sanic/pull/1803&gt;`_
 Update config docs to match DEFAULT_CONFIG

*
 `1814 &lt;https://github.com/huge-success/sanic/pull/1814&gt;`_
 Update getting_started.rst

*
 `1821 &lt;https://github.com/huge-success/sanic/pull/1821&gt;`_
 Update to deployment

*
 `1822 &lt;https://github.com/huge-success/sanic/pull/1822&gt;`_
 Update docs with changes done in 20.3

*
 `1834 &lt;https://github.com/huge-success/sanic/pull/1834&gt;`_
 Order of listeners

19.12.0

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

Bugfixes
********

- Fix blueprint middleware application

Currently, any blueprint middleware registered, irrespective of which blueprint was used to do so, was
being applied to all of the routes created by the :code:`app` and :code:`blueprint` alike.

As part of this change, the blueprint based middleware application is enforced based on where they are
registered.

- If you register a middleware via :code:`blueprint.middleware` then it will apply only to the routes defined by the blueprint.
- If you register a middleware via :code:`blueprint_group.middleware` then it will apply to all blueprint based routes that are part of the group.
- If you define a middleware via :code:`app.middleware` then it will be applied on all available routes (`37 &lt;https://github.com/huge-success/sanic/issues/37&gt;`__)
- Fix `url_for` behavior with missing SERVER_NAME

If the `SERVER_NAME` was missing in the `app.config` entity, the `url_for` on the `request` and  `app` were failing
due to an `AttributeError`. This fix makes the availability of `SERVER_NAME` on our `app.config` an optional behavior. (`1707 &lt;https://github.com/huge-success/sanic/issues/1707&gt;`__)


Improved Documentation
**********************

- Move docs from MD to RST

Moved all docs from markdown to restructured text like the rest of the docs to unify the scheme and make it easier in
the future to update documentation. (`1691 &lt;https://github.com/huge-success/sanic/issues/1691&gt;`__)
- Fix documentation for `get` and `getlist` of the `request.args`

Add additional example for showing the usage of `getlist` and fix the documentation string for `request.args` behavior (`1704 &lt;https://github.com/huge-success/sanic/issues/1704&gt;`__)

19.6.3

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

Features
********

- Enable Towncrier Support

As part of this feature, `towncrier` is being introduced as a mechanism to partially  automate the process
of generating and managing change logs as part of each of pull requests. (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)


Improved Documentation
**********************

- Documentation infrastructure changes

- Enable having a single common `CHANGELOG` file for both GitHub page and documentation
- Fix Sphinix deprecation warnings
- Fix documentation warnings due to invalid `rst` indentation
- Enable common contribution guidelines file across GitHub and documentation via `CONTRIBUTING.rst` (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)

19.6.2

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

Features
********

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Remove ``aiohttp`` dependencey and create new ``SanicTestClient`` based upon
 `requests-async &lt;https://github.com/encode/requests-async&gt;`_

* 
 `1475 &lt;https://github.com/huge-success/sanic/pull/1475&gt;`_
 Added ASGI support (Beta)

* 
 `1436 &lt;https://github.com/huge-success/sanic/pull/1436&gt;`_
 Add Configure support from object string


Bugfixes
********

* 
 `1587 &lt;https://github.com/huge-success/sanic/pull/1587&gt;`_
 Add missing handle for Expect header.

* 
 `1560 &lt;https://github.com/huge-success/sanic/pull/1560&gt;`_
 Allow to disable Transfer-Encoding: chunked.

* 
 `1558 &lt;https://github.com/huge-success/sanic/pull/1558&gt;`_
 Fix graceful shutdown.

* 
 `1594 &lt;https://github.com/huge-success/sanic/pull/1594&gt;`_
 Strict Slashes behavior fix

Deprecations and Removals
*************************

*
 `1544 &lt;https://github.com/huge-success/sanic/pull/1544&gt;`_
 Drop dependency on distutil

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Drop support for Python 3.5

* 
 `1568 &lt;https://github.com/huge-success/sanic/pull/1568&gt;`_
 Deprecate route removal.

.. warning::
 Sanic will not support Python 3.5 from version 19.6 and forward. However,
 version 18.12LTS will have its support period extended thru December 2020, and
 therefore passing Python&#39;s official support version 3.5, which is set to expire
 in September 2020.

19.3

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

Features
********

* 
 `1497 &lt;https://github.com/huge-success/sanic/pull/1497&gt;`_
 Add support for zero-length and RFC 5987 encoded filename for
 multipart/form-data requests.

* 
 `1484 &lt;https://github.com/huge-success/sanic/pull/1484&gt;`_
 The type of ``expires`` attribute of ``sanic.cookies.Cookie`` is now
 enforced to be of type ``datetime``.

* 
 `1482 &lt;https://github.com/huge-success/sanic/pull/1482&gt;`_
 Add support for the ``stream`` parameter of ``sanic.Sanic.add_route()``
 available to ``sanic.Blueprint.add_route()``.

* 
 `1481 &lt;https://github.com/huge-success/sanic/pull/1481&gt;`_
 Accept negative values for route parameters with type ``int`` or ``number``.

* 
 `1476 &lt;https://github.com/huge-success/sanic/pull/1476&gt;`_
 Deprecated the use of ``sanic.request.Request.raw_args`` - it has a
 fundamental flaw in which is drops repeated query string parameters.
 Added ``sanic.request.Request.query_args`` as a replacement for the
 original use-case.

* 
 `1472 &lt;https://github.com/huge-success/sanic/pull/1472&gt;`_
 Remove an unwanted ``None`` check in Request class ``repr`` implementation.
 This changes the default ``repr`` of a Request from ``&lt;Request&gt;`` to
 ``&lt;Request: None /&gt;``

* 
 `1470 &lt;https://github.com/huge-success/sanic/pull/1470&gt;`_
 Added 2 new parameters to ``sanic.app.Sanic.create_server``\ :


 * ``return_asyncio_server`` - whether to return an asyncio.Server.
 * ``asyncio_server_kwargs`` - kwargs to pass to ``loop.create_server`` for
   the event loop that sanic is using.

 This is a breaking change.

* 
 `1499 &lt;https://github.com/huge-success/sanic/pull/1499&gt;`_
 Added a set of test cases that test and benchmark route resolution.

* 
 `1457 &lt;https://github.com/huge-success/sanic/pull/1457&gt;`_
 The type of the ``&quot;max-age&quot;`` value in a ``sanic.cookies.Cookie`` is now
 enforced to be an integer. Non-integer values are replaced with ``0``.

* 
 `1445 &lt;https://github.com/huge-success/sanic/pull/1445&gt;`_
 Added the ``endpoint`` attribute to an incoming ``request``\ , containing the
 name of the handler function.

* 
 `1423 &lt;https://github.com/huge-success/sanic/pull/1423&gt;`_
 Improved request streaming. ``request.stream`` is now a bounded-size buffer
 instead of an unbounded queue. Callers must now call
 ``await request.stream.read()`` instead of ``await request.stream.get()``
 to read each portion of the body.

 This is a breaking change.

Bugfixes
********


* 
 `1502 &lt;https://github.com/huge-success/sanic/pull/1502&gt;`_
 Sanic was prefetching ``time.time()`` and updating it once per second to
 avoid excessive ``time.time()`` calls. The implementation was observed to
 cause memory leaks in some cases. The benefit of the prefetch appeared
 to negligible, so this has been removed. Fixes
 `1500 &lt;https://github.com/huge-success/sanic/pull/1500&gt;`_

* 
 `1501 &lt;https://github.com/huge-success/sanic/pull/1501&gt;`_
 Fix a bug in the auto-reloader when the process was launched as a module
 i.e. ``python -m init0.mod1`` where the sanic server is started
 in ``init0/mod1.py`` with ``debug`` enabled and imports another module in
 ``init0``.

* 
 `1376 &lt;https://github.com/huge-success/sanic/pull/1376&gt;`_
 Allow sanic test client to bind to a random port by specifying
 ``port=None`` when constructing a ``SanicTestClient``

* 
 `1399 &lt;https://github.com/huge-success/sanic/pull/1399&gt;`_
 Added the ability to specify middleware on a blueprint group, so that all
 routes produced from the blueprints in the group have the middleware
 applied.

* 
 `1442 &lt;https://github.com/huge-success/sanic/pull/1442&gt;`_
 Allow the the use the ``SANIC_ACCESS_LOG`` environment variable to
 enable/disable the access log when not explicitly passed to ``app.run()``.
 This allows the access log to be disabled for example when running via
 gunicorn.

Developer infrastructure
************************

* `1529 &lt;https://github.com/huge-success/sanic/pull/1529&gt;`_ Update project PyPI credentials
* `1515 &lt;https://github.com/huge-success/sanic/pull/1515&gt;`_ fix linter issue causing travis build failures (fix 1514)
* `1490 &lt;https://github.com/huge-success/sanic/pull/1490&gt;`_ Fix python version in doc build
* `1478 &lt;https://github.com/huge-success/sanic/pull/1478&gt;`_ Upgrade setuptools version and use native docutils in doc build
* `1464 &lt;https://github.com/huge-success/sanic/pull/1464&gt;`_ Upgrade pytest, and fix caplog unit tests

Improved Documentation
**********************

* `1516 &lt;https://github.com/huge-success/sanic/pull/1516&gt;`_ Fix typo at the exception documentation
* `1510 &lt;https://github.com/huge-success/sanic/pull/1510&gt;`_ fix typo in Asyncio example
* `1486 &lt;https://github.com/huge-success/sanic/pull/1486&gt;`_ Documentation typo
* `1477 &lt;https://github.com/huge-success/sanic/pull/1477&gt;`_ Fix grammar in README.md
* `1489 &lt;https://github.com/huge-success/sanic/pull/1489&gt;`_ Added &quot;databases&quot; to the extensions list
* `1483 &lt;https://github.com/huge-success/sanic/pull/1483&gt;`_ Add sanic-zipkin to extensions list
* `1487 &lt;https://github.com/huge-success/sanic/pull/1487&gt;`_ Removed link to deleted repo, Sanic-OAuth, from the extensions list
* `1460 &lt;https://github.com/huge-success/sanic/pull/1460&gt;`_ 18.12 changelog
* `1449 &lt;https://github.com/huge-success/sanic/pull/1449&gt;`_ Add example of amending request object
* `1446 &lt;https://github.com/huge-success/sanic/pull/1446&gt;`_ Update README
* `1444 &lt;https://github.com/huge-success/sanic/pull/1444&gt;`_ Update README
* `1443 &lt;https://github.com/huge-success/sanic/pull/1443&gt;`_ Update README, including new logo
* `1440 &lt;https://github.com/huge-success/sanic/pull/1440&gt;`_ fix minor type and pip install instruction mismatch
* `1424 &lt;https://github.com/huge-success/sanic/pull/1424&gt;`_ Documentation Enhancements

Note: 19.3.0 was skipped for packagement purposes and not released on PyPI

18.12

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

18.12.0

*******

* 
Changes:


* Improved codebase test coverage from 81% to 91%.
* Added stream_large_files and host examples in static_file document
* Added methods to append and finish body content on Request (1379)
* Integrated with .appveyor.yml for windows ci support
* Added documentation for AF_INET6 and AF_UNIX socket usage
* Adopt black/isort for codestyle
* Cancel task when connection_lost
* Simplify request ip and port retrieval logic
* Handle config error in load config file.
* Integrate with codecov for CI
* Add missed documentation for config section.
* Deprecate Handler.log
* Pinned httptools requirement to version 0.0.10+

* 
Fixes:


* Fix ``remove_entity_headers`` helper function (1415)
* Fix TypeError when use Blueprint.group() to group blueprint with default url_prefix, Use os.path.normpath to avoid invalid url_prefix like api//v1
 f8a6af1 Rename the ``http`` module to ``helpers`` to prevent conflicts with the built-in Python http library (fixes 1323)
* Fix unittests on windows
* Fix Namespacing of sanic logger
* Fix missing quotes in decorator example
* Fix redirect with quoted param
* Fix doc for latest blueprint code
* Fix build of latex documentation relating to markdown lists
* Fix loop exception handling in app.py
* Fix content length mismatch in windows and other platform
* Fix Range header handling for static files (1402)
* Fix the logger and make it work (1397)
* Fix type pikcle-&gt;pickle in multiprocessing test
* Fix pickling blueprints Change the string passed in the &quot;name&quot; section of the namedtuples in Blueprint to match the name of the Blueprint module attribute name. This allows blueprints to be pickled and unpickled, without errors, which is a requirment of running Sanic in multiprocessing mode in Windows. Added a test for pickling and unpickling blueprints Added a test for pickling and unpickling sanic itself Added a test for enabling multiprocessing on an app with a blueprint (only useful to catch this bug if the tests are run on Windows).
* Fix document for logging

0.8.3

*****

* Changes:

* Ownership changed to org &#39;huge-success&#39;

0.8

===========

0.8.0

*****

* Changes:


* Add Server-Sent Events extension (Innokenty Lebedev)
* Graceful handling of request_handler_task cancellation (Ashley Sommer)
* Sanitize URL before redirection (aveao)
* Add url_bytes to request (johndoe46)
* py37 support for travisci (yunstanford)
* Auto reloader support for OSX (garyo)
* Add UUID route support (Volodymyr Maksymiv)
* Add pausable response streams (Ashley Sommer)
* Add weakref to request slots (vopankov)
* remove ubuntu 12.04 from test fixture due to deprecation (yunstanford)
* Allow streaming handlers in add_route (kinware)
* use travis_retry for tox (Raphael Deem)
* update aiohttp version for test client (yunstanford)
* add redirect import for clarity (yingshaoxo)
* Update HTTP Entity headers (Arnulfo Solís)
* Add register_listener method (Stephan Fitzpatrick)
* Remove uvloop/ujson dependencies for Windows (abuckenheimer)
* Content-length header on 204/304 responses (Arnulfo Solís)
* Extend WebSocketProtocol arguments and add docs (Bob Olde Hampsink, yunstanford)
* Update development status from pre-alpha to beta (Maksim Anisenkov)
* KeepAlive Timout log level changed to debug (Arnulfo Solís)
* Pin pytest to 3.3.2 because of pytest-dev/pytest3170 (Maksim Aniskenov)
* Install Python 3.5 and 3.6 on docker container for tests (Shahin Azad)
* Add support for blueprint groups and nesting (Elias Tarhini)
* Remove uvloop for windows setup (Aleksandr Kurlov)
* Auto Reload (Yaser Amari)
* Documentation updates/fixups (multiple contributors)

* Fixes:


* Fix: auto_reload in Linux (Ashley Sommer)
* Fix: broken tests for aiohttp &gt;= 3.3.0 (Ashley Sommer)
* Fix: disable auto_reload by default on windows (abuckenheimer)
* Fix (1143): Turn off access log with gunicorn (hqy)
* Fix (1268): Support status code for file response (Cosmo Borsky)
* Fix (1266): Add content_type flag to Sanic.static (Cosmo Borsky)
* Fix: subprotocols parameter missing from add_websocket_route (ciscorn)
* Fix (1242): Responses for CI header (yunstanford)
* Fix (1237): add version constraint for websockets (yunstanford)
* Fix (1231): memory leak - always release resource (Phillip Xu)
* Fix (1221): make request truthy if transport exists (Raphael Deem)
* Fix failing tests for aiohttp&gt;=3.1.0 (Ashley Sommer)
* Fix try_everything examples (PyManiacGR, kot83)
* Fix (1158): default to auto_reload in debug mode (Raphael Deem)
* Fix (1136): ErrorHandler.response handler call too restrictive (Julien Castiaux)
* Fix: raw requires bytes-like object (cloudship)
* Fix (1120): passing a list in to a route decorator&#39;s host arg (Timothy Ebiuwhe)
* Fix: Bug in multipart/form-data parser (DirkGuijt)
* Fix: Exception for missing parameter when value is null (NyanKiyoshi)
* Fix: Parameter check (Howie Hu)
* Fix (1089): Routing issue with named parameters and different methods (yunstanford)
* Fix (1085): Signal handling in multi-worker mode (yunstanford)
* Fix: single quote in readme.rst (Cosven)
* Fix: method typos (Dmitry Dygalo)
* Fix: log_response correct output for ip and port (Wibowo Arindrarto)
* Fix (1042): Exception Handling (Raphael Deem)
* Fix: Chinese URIs (Howie Hu)
* Fix (1079): timeout bug when self.transport is None (Raphael Deem)
* Fix (1074): fix strict_slashes when route has slash (Raphael Deem)
* Fix (1050): add samesite cookie to cookie keys (Raphael Deem)
* Fix (1065): allow add_task after server starts (Raphael Deem)
* Fix (1061): double quotes in unauthorized exception (Raphael Deem)
* Fix (1062): inject the app in add_task method (Raphael Deem)
* Fix: update environment.yml for readthedocs (Eli Uriegas)
* Fix: Cancel request task when response timeout is triggered (Jeong YunWon)
* Fix (1052): Method not allowed response for RFC7231 compliance (Raphael Deem)
* Fix: IPv6 Address and Socket Data Format (Dan Palmer)

Note: Changelog was unmaintained between 0.1 and 0.7

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sanic
  • Changelog: https://pyup.io/changelogs/sanic/
  • Repo: http://github.com/huge-success/sanic/ </details>
+1 -1

1 comment

1 changed file

pyup-bot

pr closed time in 3 hours

pull request commentdcalsky/fish-hook

Update sanic to 20.6.3

Closing this in favor of #16

pyup-bot

comment created time in 3 hours

PR opened dcalsky/fish-hook

Update sanic to 20.9.0

This PR updates sanic from 0.3.1 to 20.9.0.

<details> <summary>Changelog</summary>

20.9.0

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


Features
********

*
 `1887 &lt;https://github.com/huge-success/sanic/pull/1887&gt;`_
 Pass subprotocols in websockets (both sanic server and ASGI)

*
 `1894 &lt;https://github.com/huge-success/sanic/pull/1894&gt;`_
 Automatically set ``test_mode`` flag on app instance

*
 `1903 &lt;https://github.com/huge-success/sanic/pull/1903&gt;`_ 
 Add new unified method for updating app values

*
 `1906 &lt;https://github.com/huge-success/sanic/pull/1906&gt;`_,
 `1909 &lt;https://github.com/huge-success/sanic/pull/1909&gt;`_
 Adds WEBSOCKET_PING_TIMEOUT and WEBSOCKET_PING_INTERVAL configuration values

*
 `1935 &lt;https://github.com/huge-success/sanic/pull/1935&gt;`_
 httpx version dependency updated, it is slated for removal as a dependency in v20.12

*
 `1937 &lt;https://github.com/huge-success/sanic/pull/1937&gt;`_ 
 Added auto, text, and json fallback error handlers (in v21.3, the default will change form html to auto)

Bugfixes
********

*
 `1897 &lt;https://github.com/huge-success/sanic/pull/1897&gt;`_
 Resolves exception from unread bytes in stream

Deprecations and Removals
*************************

*
 `1903 &lt;https://github.com/huge-success/sanic/pull/1903&gt;`_
 config.from_envar, config.from_pyfile, and config.from_object are deprecated and set to be removed in v21.3

Developer infrastructure
************************

*
 `1890 &lt;https://github.com/huge-success/sanic/pull/1890&gt;`_,
 `1891 &lt;https://github.com/huge-success/sanic/pull/1891&gt;`_
 Update isort calls to be compatible with new API

*
 `1893 &lt;https://github.com/huge-success/sanic/pull/1893&gt;`_
 Remove version section from setup.cfg

*
 `1924 &lt;https://github.com/huge-success/sanic/pull/1924&gt;`_
 Adding --strict-markers for pytest

Improved Documentation
**********************

*
 `1922 &lt;https://github.com/huge-success/sanic/pull/1922&gt;`_
 Add explicit ASGI compliance to the README

20.6.3

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

Bugfixes
********

*
 `1884 &lt;https://github.com/huge-success/sanic/pull/1884&gt;`_
 Revert change to multiprocessing mode

20.6.2

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

Features
********

*
 `1641 &lt;https://github.com/huge-success/sanic/pull/1641&gt;`_
 Socket binding implemented properly for IPv6 and UNIX sockets

20.6.1

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

Features
********

*
 `1760 &lt;https://github.com/huge-success/sanic/pull/1760&gt;`_
 Add version parameter to websocket routes

*
 `1866 &lt;https://github.com/huge-success/sanic/pull/1866&gt;`_
 Add ``sanic`` as an entry point command

*
 `1880 &lt;https://github.com/huge-success/sanic/pull/1880&gt;`_
 Add handler names for websockets for url_for usage 

Bugfixes
********

*
 `1776 &lt;https://github.com/huge-success/sanic/pull/1776&gt;`_
 Bug fix for host parameter issue with lists

*
 `1842 &lt;https://github.com/huge-success/sanic/pull/1842&gt;`_
 Fix static _handler pickling error

*
 `1827 &lt;https://github.com/huge-success/sanic/pull/1827&gt;`_
 Fix reloader on OSX py38 and Windows

*
 `1848 &lt;https://github.com/huge-success/sanic/pull/1848&gt;`_
 Reverse named_response_middlware execution order, to match normal response middleware execution order

*
 `1853 &lt;https://github.com/huge-success/sanic/pull/1853&gt;`_
 Fix pickle error when attempting to pickle an application which contains websocket routes

Deprecations and Removals
*************************

*
 `1739 &lt;https://github.com/huge-success/sanic/pull/1739&gt;`_
 Deprecate body_bytes to merge into body

Developer infrastructure
************************

*
 `1852 &lt;https://github.com/huge-success/sanic/pull/1852&gt;`_
 Fix naming of CI test env on Python nightlies

*
 `1857 &lt;https://github.com/huge-success/sanic/pull/1857&gt;`_
 Adjust websockets version to setup.py

*
 `1869 &lt;https://github.com/huge-success/sanic/pull/1869&gt;`_
 Wrap run()&#39;s &quot;protocol&quot; type annotation in Optional[]


Improved Documentation
**********************

*
 `1846 &lt;https://github.com/huge-success/sanic/pull/1846&gt;`_
 Update docs to clarify response middleware execution order

*
 `1865 &lt;https://github.com/huge-success/sanic/pull/1865&gt;`_
 Fixing rst format issue that was hiding documentation

20.6.0

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

*Released, but unintentionally ommitting PR 1880, so was replaced by 20.6.1*

20.3.0

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

Features
********

* 
 `1762 &lt;https://github.com/huge-success/sanic/pull/1762&gt;`_
 Add ``srv.start_serving()`` and ``srv.serve_forever()`` to ``AsyncioServer``

* 
 `1767 &lt;https://github.com/huge-success/sanic/pull/1767&gt;`_
 Make Sanic usable on ``hypercorn -k trio myweb.app``

* 
 `1768 &lt;https://github.com/huge-success/sanic/pull/1768&gt;`_
 No tracebacks on normal errors and prettier error pages

* 
 `1769 &lt;https://github.com/huge-success/sanic/pull/1769&gt;`_
 Code cleanup in file responses

* 
 `1793 &lt;https://github.com/huge-success/sanic/pull/1793&gt;`_ and
 `1819 &lt;https://github.com/huge-success/sanic/pull/1819&gt;`_ 
 Upgrade ``str.format()`` to f-strings

* 
 `1798 &lt;https://github.com/huge-success/sanic/pull/1798&gt;`_
 Allow multiple workers on MacOS with Python 3.8

*
 `1820 &lt;https://github.com/huge-success/sanic/pull/1820&gt;`_
 Do not set content-type and content-length headers in exceptions

Bugfixes
********

* 
 `1748 &lt;https://github.com/huge-success/sanic/pull/1748&gt;`_
 Remove loop argument in ``asyncio.Event`` in Python 3.8

* 
 `1764 &lt;https://github.com/huge-success/sanic/pull/1764&gt;`_
 Allow route decorators to stack up again

* 
 `1789 &lt;https://github.com/huge-success/sanic/pull/1789&gt;`_
 Fix tests using hosts yielding incorrect ``url_for``

* 
 `1808 &lt;https://github.com/huge-success/sanic/pull/1808&gt;`_
  Fix Ctrl+C and tests on Windows

Deprecations and Removals
*************************

*
 `1800 &lt;https://github.com/huge-success/sanic/pull/1800&gt;`_
 Begin deprecation in way of first-class streaming, removal of ``body_init``, ``body_push``, and ``body_finish``

*
 `1801 &lt;https://github.com/huge-success/sanic/pull/1801&gt;`_
 Complete deprecation from `1666 &lt;https://github.com/huge-success/sanic/pull/1666&gt;`_ of dictionary context on ``request`` objects.
 
*
 `1807 &lt;https://github.com/huge-success/sanic/pull/1807&gt;`_
 Remove server config args that can be read directly from app

*
 `1818 &lt;https://github.com/huge-success/sanic/pull/1818&gt;`_
 Complete deprecation of ``app.remove_route`` and ``request.raw_args``

Dependencies
************

*
 `1794 &lt;https://github.com/huge-success/sanic/pull/1794&gt;`_
 Bump ``httpx`` to 0.11.1

*
 `1806 &lt;https://github.com/huge-success/sanic/pull/1806&gt;`_
 Import ``ASGIDispatch`` from top-level ``httpx`` (from third-party deprecation)

Developer infrastructure
************************

* 
 `1833 &lt;https://github.com/huge-success/sanic/pull/1833&gt;`_
 Resolve broken documentation builds

Improved Documentation
**********************

* 
 `1755 &lt;https://github.com/huge-success/sanic/pull/1755&gt;`_
 Usage of ``response.empty()``

* 
 `1778 &lt;https://github.com/huge-success/sanic/pull/1778&gt;`_
 Update README

* 
 `1783 &lt;https://github.com/huge-success/sanic/pull/1783&gt;`_
 Fix typo

*
 `1784 &lt;https://github.com/huge-success/sanic/pull/1784&gt;`_
 Corrected changelog for docs move of MD to RST (`1691 &lt;https://github.com/huge-success/sanic/pull/1691&gt;`_)

*
 `1803 &lt;https://github.com/huge-success/sanic/pull/1803&gt;`_
 Update config docs to match DEFAULT_CONFIG

*
 `1814 &lt;https://github.com/huge-success/sanic/pull/1814&gt;`_
 Update getting_started.rst

*
 `1821 &lt;https://github.com/huge-success/sanic/pull/1821&gt;`_
 Update to deployment

*
 `1822 &lt;https://github.com/huge-success/sanic/pull/1822&gt;`_
 Update docs with changes done in 20.3

*
 `1834 &lt;https://github.com/huge-success/sanic/pull/1834&gt;`_
 Order of listeners

19.12.0

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

Bugfixes
********

- Fix blueprint middleware application

Currently, any blueprint middleware registered, irrespective of which blueprint was used to do so, was
being applied to all of the routes created by the :code:`app` and :code:`blueprint` alike.

As part of this change, the blueprint based middleware application is enforced based on where they are
registered.

- If you register a middleware via :code:`blueprint.middleware` then it will apply only to the routes defined by the blueprint.
- If you register a middleware via :code:`blueprint_group.middleware` then it will apply to all blueprint based routes that are part of the group.
- If you define a middleware via :code:`app.middleware` then it will be applied on all available routes (`37 &lt;https://github.com/huge-success/sanic/issues/37&gt;`__)
- Fix `url_for` behavior with missing SERVER_NAME

If the `SERVER_NAME` was missing in the `app.config` entity, the `url_for` on the `request` and  `app` were failing
due to an `AttributeError`. This fix makes the availability of `SERVER_NAME` on our `app.config` an optional behavior. (`1707 &lt;https://github.com/huge-success/sanic/issues/1707&gt;`__)


Improved Documentation
**********************

- Move docs from MD to RST

Moved all docs from markdown to restructured text like the rest of the docs to unify the scheme and make it easier in
the future to update documentation. (`1691 &lt;https://github.com/huge-success/sanic/issues/1691&gt;`__)
- Fix documentation for `get` and `getlist` of the `request.args`

Add additional example for showing the usage of `getlist` and fix the documentation string for `request.args` behavior (`1704 &lt;https://github.com/huge-success/sanic/issues/1704&gt;`__)

19.6.3

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

Features
********

- Enable Towncrier Support

As part of this feature, `towncrier` is being introduced as a mechanism to partially  automate the process
of generating and managing change logs as part of each of pull requests. (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)


Improved Documentation
**********************

- Documentation infrastructure changes

- Enable having a single common `CHANGELOG` file for both GitHub page and documentation
- Fix Sphinix deprecation warnings
- Fix documentation warnings due to invalid `rst` indentation
- Enable common contribution guidelines file across GitHub and documentation via `CONTRIBUTING.rst` (`1631 &lt;https://github.com/huge-success/sanic/issues/1631&gt;`__)

19.6.2

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

Features
********

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Remove ``aiohttp`` dependency and create new ``SanicTestClient`` based upon
 `requests-async &lt;https://github.com/encode/requests-async&gt;`_

* 
 `1475 &lt;https://github.com/huge-success/sanic/pull/1475&gt;`_
 Added ASGI support (Beta)

* 
 `1436 &lt;https://github.com/huge-success/sanic/pull/1436&gt;`_
 Add Configure support from object string


Bugfixes
********

* 
 `1587 &lt;https://github.com/huge-success/sanic/pull/1587&gt;`_
 Add missing handle for Expect header.

* 
 `1560 &lt;https://github.com/huge-success/sanic/pull/1560&gt;`_
 Allow to disable Transfer-Encoding: chunked.

* 
 `1558 &lt;https://github.com/huge-success/sanic/pull/1558&gt;`_
 Fix graceful shutdown.

* 
 `1594 &lt;https://github.com/huge-success/sanic/pull/1594&gt;`_
 Strict Slashes behavior fix

Deprecations and Removals
*************************

*
 `1544 &lt;https://github.com/huge-success/sanic/pull/1544&gt;`_
 Drop dependency on distutil

* 
 `1562 &lt;https://github.com/huge-success/sanic/pull/1562&gt;`_
 Drop support for Python 3.5

* 
 `1568 &lt;https://github.com/huge-success/sanic/pull/1568&gt;`_
 Deprecate route removal.

.. warning::
 Sanic will not support Python 3.5 from version 19.6 and forward. However,
 version 18.12LTS will have its support period extended thru December 2020, and
 therefore passing Python&#39;s official support version 3.5, which is set to expire
 in September 2020.

19.3

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

Features
********

* 
 `1497 &lt;https://github.com/huge-success/sanic/pull/1497&gt;`_
 Add support for zero-length and RFC 5987 encoded filename for
 multipart/form-data requests.

* 
 `1484 &lt;https://github.com/huge-success/sanic/pull/1484&gt;`_
 The type of ``expires`` attribute of ``sanic.cookies.Cookie`` is now
 enforced to be of type ``datetime``.

* 
 `1482 &lt;https://github.com/huge-success/sanic/pull/1482&gt;`_
 Add support for the ``stream`` parameter of ``sanic.Sanic.add_route()``
 available to ``sanic.Blueprint.add_route()``.

* 
 `1481 &lt;https://github.com/huge-success/sanic/pull/1481&gt;`_
 Accept negative values for route parameters with type ``int`` or ``number``.

* 
 `1476 &lt;https://github.com/huge-success/sanic/pull/1476&gt;`_
 Deprecated the use of ``sanic.request.Request.raw_args`` - it has a
 fundamental flaw in which is drops repeated query string parameters.
 Added ``sanic.request.Request.query_args`` as a replacement for the
 original use-case.

* 
 `1472 &lt;https://github.com/huge-success/sanic/pull/1472&gt;`_
 Remove an unwanted ``None`` check in Request class ``repr`` implementation.
 This changes the default ``repr`` of a Request from ``&lt;Request&gt;`` to
 ``&lt;Request: None /&gt;``

* 
 `1470 &lt;https://github.com/huge-success/sanic/pull/1470&gt;`_
 Added 2 new parameters to ``sanic.app.Sanic.create_server``\ :


 * ``return_asyncio_server`` - whether to return an asyncio.Server.
 * ``asyncio_server_kwargs`` - kwargs to pass to ``loop.create_server`` for
   the event loop that sanic is using.

 This is a breaking change.

* 
 `1499 &lt;https://github.com/huge-success/sanic/pull/1499&gt;`_
 Added a set of test cases that test and benchmark route resolution.

* 
 `1457 &lt;https://github.com/huge-success/sanic/pull/1457&gt;`_
 The type of the ``&quot;max-age&quot;`` value in a ``sanic.cookies.Cookie`` is now
 enforced to be an integer. Non-integer values are replaced with ``0``.

* 
 `1445 &lt;https://github.com/huge-success/sanic/pull/1445&gt;`_
 Added the ``endpoint`` attribute to an incoming ``request``\ , containing the
 name of the handler function.

* 
 `1423 &lt;https://github.com/huge-success/sanic/pull/1423&gt;`_
 Improved request streaming. ``request.stream`` is now a bounded-size buffer
 instead of an unbounded queue. Callers must now call
 ``await request.stream.read()`` instead of ``await request.stream.get()``
 to read each portion of the body.

 This is a breaking change.

Bugfixes
********


* 
 `1502 &lt;https://github.com/huge-success/sanic/pull/1502&gt;`_
 Sanic was prefetching ``time.time()`` and updating it once per second to
 avoid excessive ``time.time()`` calls. The implementation was observed to
 cause memory leaks in some cases. The benefit of the prefetch appeared
 to negligible, so this has been removed. Fixes
 `1500 &lt;https://github.com/huge-success/sanic/pull/1500&gt;`_

* 
 `1501 &lt;https://github.com/huge-success/sanic/pull/1501&gt;`_
 Fix a bug in the auto-reloader when the process was launched as a module
 i.e. ``python -m init0.mod1`` where the sanic server is started
 in ``init0/mod1.py`` with ``debug`` enabled and imports another module in
 ``init0``.

* 
 `1376 &lt;https://github.com/huge-success/sanic/pull/1376&gt;`_
 Allow sanic test client to bind to a random port by specifying
 ``port=None`` when constructing a ``SanicTestClient``

* 
 `1399 &lt;https://github.com/huge-success/sanic/pull/1399&gt;`_
 Added the ability to specify middleware on a blueprint group, so that all
 routes produced from the blueprints in the group have the middleware
 applied.

* 
 `1442 &lt;https://github.com/huge-success/sanic/pull/1442&gt;`_
 Allow the the use the ``SANIC_ACCESS_LOG`` environment variable to
 enable/disable the access log when not explicitly passed to ``app.run()``.
 This allows the access log to be disabled for example when running via
 gunicorn.

Developer infrastructure
************************

* `1529 &lt;https://github.com/huge-success/sanic/pull/1529&gt;`_ Update project PyPI credentials
* `1515 &lt;https://github.com/huge-success/sanic/pull/1515&gt;`_ fix linter issue causing travis build failures (fix 1514)
* `1490 &lt;https://github.com/huge-success/sanic/pull/1490&gt;`_ Fix python version in doc build
* `1478 &lt;https://github.com/huge-success/sanic/pull/1478&gt;`_ Upgrade setuptools version and use native docutils in doc build
* `1464 &lt;https://github.com/huge-success/sanic/pull/1464&gt;`_ Upgrade pytest, and fix caplog unit tests

Improved Documentation
**********************

* `1516 &lt;https://github.com/huge-success/sanic/pull/1516&gt;`_ Fix typo at the exception documentation
* `1510 &lt;https://github.com/huge-success/sanic/pull/1510&gt;`_ fix typo in Asyncio example
* `1486 &lt;https://github.com/huge-success/sanic/pull/1486&gt;`_ Documentation typo
* `1477 &lt;https://github.com/huge-success/sanic/pull/1477&gt;`_ Fix grammar in README.md
* `1489 &lt;https://github.com/huge-success/sanic/pull/1489&gt;`_ Added &quot;databases&quot; to the extensions list
* `1483 &lt;https://github.com/huge-success/sanic/pull/1483&gt;`_ Add sanic-zipkin to extensions list
* `1487 &lt;https://github.com/huge-success/sanic/pull/1487&gt;`_ Removed link to deleted repo, Sanic-OAuth, from the extensions list
* `1460 &lt;https://github.com/huge-success/sanic/pull/1460&gt;`_ 18.12 changelog
* `1449 &lt;https://github.com/huge-success/sanic/pull/1449&gt;`_ Add example of amending request object
* `1446 &lt;https://github.com/huge-success/sanic/pull/1446&gt;`_ Update README
* `1444 &lt;https://github.com/huge-success/sanic/pull/1444&gt;`_ Update README
* `1443 &lt;https://github.com/huge-success/sanic/pull/1443&gt;`_ Update README, including new logo
* `1440 &lt;https://github.com/huge-success/sanic/pull/1440&gt;`_ fix minor type and pip install instruction mismatch
* `1424 &lt;https://github.com/huge-success/sanic/pull/1424&gt;`_ Documentation Enhancements

Note: 19.3.0 was skipped for packagement purposes and not released on PyPI

18.12

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

18.12.0

*******

* 
Changes:


* Improved codebase test coverage from 81% to 91%.
* Added stream_large_files and host examples in static_file document
* Added methods to append and finish body content on Request (1379)
* Integrated with .appveyor.yml for windows ci support
* Added documentation for AF_INET6 and AF_UNIX socket usage
* Adopt black/isort for codestyle
* Cancel task when connection_lost
* Simplify request ip and port retrieval logic
* Handle config error in load config file.
* Integrate with codecov for CI
* Add missed documentation for config section.
* Deprecate Handler.log
* Pinned httptools requirement to version 0.0.10+

* 
Fixes:


* Fix ``remove_entity_headers`` helper function (1415)
* Fix TypeError when use Blueprint.group() to group blueprint with default url_prefix, Use os.path.normpath to avoid invalid url_prefix like api//v1
 f8a6af1 Rename the ``http`` module to ``helpers`` to prevent conflicts with the built-in Python http library (fixes 1323)
* Fix unittests on windows
* Fix Namespacing of sanic logger
* Fix missing quotes in decorator example
* Fix redirect with quoted param
* Fix doc for latest blueprint code
* Fix build of latex documentation relating to markdown lists
* Fix loop exception handling in app.py
* Fix content length mismatch in windows and other platform
* Fix Range header handling for static files (1402)
* Fix the logger and make it work (1397)
* Fix type pikcle-&gt;pickle in multiprocessing test
* Fix pickling blueprints Change the string passed in the &quot;name&quot; section of the namedtuples in Blueprint to match the name of the Blueprint module attribute name. This allows blueprints to be pickled and unpickled, without errors, which is a requirment of running Sanic in multiprocessing mode in Windows. Added a test for pickling and unpickling blueprints Added a test for pickling and unpickling sanic itself Added a test for enabling multiprocessing on an app with a blueprint (only useful to catch this bug if the tests are run on Windows).
* Fix document for logging

0.8.3

*****

* Changes:

* Ownership changed to org &#39;huge-success&#39;

0.8

===========

0.8.0

*****

* Changes:


* Add Server-Sent Events extension (Innokenty Lebedev)
* Graceful handling of request_handler_task cancellation (Ashley Sommer)
* Sanitize URL before redirection (aveao)
* Add url_bytes to request (johndoe46)
* py37 support for travisci (yunstanford)
* Auto reloader support for OSX (garyo)
* Add UUID route support (Volodymyr Maksymiv)
* Add pausable response streams (Ashley Sommer)
* Add weakref to request slots (vopankov)
* remove ubuntu 12.04 from test fixture due to deprecation (yunstanford)
* Allow streaming handlers in add_route (kinware)
* use travis_retry for tox (Raphael Deem)
* update aiohttp version for test client (yunstanford)
* add redirect import for clarity (yingshaoxo)
* Update HTTP Entity headers (Arnulfo Solís)
* Add register_listener method (Stephan Fitzpatrick)
* Remove uvloop/ujson dependencies for Windows (abuckenheimer)
* Content-length header on 204/304 responses (Arnulfo Solís)
* Extend WebSocketProtocol arguments and add docs (Bob Olde Hampsink, yunstanford)
* Update development status from pre-alpha to beta (Maksim Anisenkov)
* KeepAlive Timout log level changed to debug (Arnulfo Solís)
* Pin pytest to 3.3.2 because of pytest-dev/pytest3170 (Maksim Aniskenov)
* Install Python 3.5 and 3.6 on docker container for tests (Shahin Azad)
* Add support for blueprint groups and nesting (Elias Tarhini)
* Remove uvloop for windows setup (Aleksandr Kurlov)
* Auto Reload (Yaser Amari)
* Documentation updates/fixups (multiple contributors)

* Fixes:


* Fix: auto_reload in Linux (Ashley Sommer)
* Fix: broken tests for aiohttp &gt;= 3.3.0 (Ashley Sommer)
* Fix: disable auto_reload by default on windows (abuckenheimer)
* Fix (1143): Turn off access log with gunicorn (hqy)
* Fix (1268): Support status code for file response (Cosmo Borsky)
* Fix (1266): Add content_type flag to Sanic.static (Cosmo Borsky)
* Fix: subprotocols parameter missing from add_websocket_route (ciscorn)
* Fix (1242): Responses for CI header (yunstanford)
* Fix (1237): add version constraint for websockets (yunstanford)
* Fix (1231): memory leak - always release resource (Phillip Xu)
* Fix (1221): make request truthy if transport exists (Raphael Deem)
* Fix failing tests for aiohttp&gt;=3.1.0 (Ashley Sommer)
* Fix try_everything examples (PyManiacGR, kot83)
* Fix (1158): default to auto_reload in debug mode (Raphael Deem)
* Fix (1136): ErrorHandler.response handler call too restrictive (Julien Castiaux)
* Fix: raw requires bytes-like object (cloudship)
* Fix (1120): passing a list in to a route decorator&#39;s host arg (Timothy Ebiuwhe)
* Fix: Bug in multipart/form-data parser (DirkGuijt)
* Fix: Exception for missing parameter when value is null (NyanKiyoshi)
* Fix: Parameter check (Howie Hu)
* Fix (1089): Routing issue with named parameters and different methods (yunstanford)
* Fix (1085): Signal handling in multi-worker mode (yunstanford)
* Fix: single quote in readme.rst (Cosven)
* Fix: method typos (Dmitry Dygalo)
* Fix: log_response correct output for ip and port (Wibowo Arindrarto)
* Fix (1042): Exception Handling (Raphael Deem)
* Fix: Chinese URIs (Howie Hu)
* Fix (1079): timeout bug when self.transport is None (Raphael Deem)
* Fix (1074): fix strict_slashes when route has slash (Raphael Deem)
* Fix (1050): add samesite cookie to cookie keys (Raphael Deem)
* Fix (1065): allow add_task after server starts (Raphael Deem)
* Fix (1061): double quotes in unauthorized exception (Raphael Deem)
* Fix (1062): inject the app in add_task method (Raphael Deem)
* Fix: update environment.yml for readthedocs (Eli Uriegas)
* Fix: Cancel request task when response timeout is triggered (Jeong YunWon)
* Fix (1052): Method not allowed response for RFC7231 compliance (Raphael Deem)
* Fix: IPv6 Address and Socket Data Format (Dan Palmer)

Note: Changelog was unmaintained between 0.1 and 0.7

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sanic
  • Changelog: https://pyup.io/changelogs/sanic/
  • Repo: http://github.com/huge-success/sanic/ </details>
+1 -1

0 comment

1 changed file

pr created time in 3 hours

PR closed VoidMaster23/espressif8266api

Scheduled daily dependency update on Tuesday

Update pip from 20.2.2 to 20.2.3.

<details> <summary>Changelog</summary>

20.2.3

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

Deprecations and Removals
-------------------------

- Deprecate support for Python 3.5 (`8181 &lt;https://github.com/pypa/pip/issues/8181&gt;`_)

Features
--------

- Make the ``setup.py install`` deprecation warning less noisy. We warn only
when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
situations where both fails are most probably irrelevant to this deprecation. (`8752 &lt;https://github.com/pypa/pip/issues/8752&gt;`_)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pip
  • Changelog: https://pyup.io/changelogs/pip/
  • Homepage: https://pip.pypa.io/ </details>

Update coverage from 5.2.1 to 5.3.

<details> <summary>Changelog</summary>

5.3

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

- The ``source`` setting has always been interpreted as either a file path or a
module, depending on which existed.  If both interpretations were valid, it
was assumed to be a file path.  The new ``source_pkgs`` setting can be used
to name a package to disambiguate this case.  Thanks, Thomas Grainger. Fixes
`issue 268`_.

- If a plugin was disabled due to an exception, we used to still try to record
its information, causing an exception, as reported in `issue 1011`_.  This is
now fixed.

.. _issue 268: https://github.com/nedbat/coveragepy/issues/268
.. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011


.. _changes_521:

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/coverage
  • Changelog: https://pyup.io/changelogs/coverage/
  • Repo: https://github.com/nedbat/coveragepy </details>
+2 -2

1 comment

1 changed file

pyup-bot

pr closed time in 4 hours

pull request commentVoidMaster23/espressif8266api

Scheduled daily dependency update on Tuesday

Closing this in favor of #25

pyup-bot

comment created time in 4 hours

PR opened VoidMaster23/espressif8266api

Scheduled daily dependency update on Wednesday

Update pip from 20.2.2 to 20.2.3.

<details> <summary>Changelog</summary>

20.2.3

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

Deprecations and Removals
-------------------------

- Deprecate support for Python 3.5 (`8181 &lt;https://github.com/pypa/pip/issues/8181&gt;`_)

Features
--------

- Make the ``setup.py install`` deprecation warning less noisy. We warn only
when ``setup.py install`` succeeded and ``setup.py bdist_wheel`` failed, as
situations where both fails are most probably irrelevant to this deprecation. (`8752 &lt;https://github.com/pypa/pip/issues/8752&gt;`_)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pip
  • Changelog: https://pyup.io/changelogs/pip/
  • Homepage: https://pip.pypa.io/ </details>

Update coverage from 5.2.1 to 5.3.

<details> <summary>Changelog</summary>

5.3

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

- The ``source`` setting has always been interpreted as either a file path or a
module, depending on which existed.  If both interpretations were valid, it
was assumed to be a file path.  The new ``source_pkgs`` setting can be used
to name a package to disambiguate this case.  Thanks, Thomas Grainger. Fixes
`issue 268`_.

- If a plugin was disabled due to an exception, we used to still try to record
its information, causing an exception, as reported in `issue 1011`_.  This is
now fixed.

.. _issue 268: https://github.com/nedbat/coveragepy/issues/268
.. _issue 1011: https://github.com/nedbat/coveragepy/issues/1011


.. _changes_521:

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/coverage
  • Changelog: https://pyup.io/changelogs/coverage/
  • Repo: https://github.com/nedbat/coveragepy </details>
+2 -2

0 comment

1 changed file

pr created time in 4 hours

PR closed vCra/pipeline

Scheduled daily dependency update on Tuesday

Update gitpython from 2.1.11 to 3.1.8.

<details> <summary>Changelog</summary>

3.1.8

=====

* support for &#39;includeIf&#39; in git configuration files
* tests are now excluded from the package, making it conisderably smaller


See the following for more details:
https://github.com/gitpython-developers/gitpython/milestone/40?closed=1*

3.1.7

=====

* Fix tutorial examples, which disappeared in 3.1.6 due to a missed path change.

3.1.6

=====

* Greatly reduced package size, see https://github.com/gitpython-developers/GitPython/pull/1031

3.1.5

=====

* rollback: package size was reduced significantly not placing tests into the package anymore.
See https://github.com/gitpython-developers/GitPython/issues/1030

3.1.4

=====

* all exceptions now keep track of their cause
* package size was reduced significantly not placing tests into the package anymore.

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/39?closed=1*

3.1.3

=====

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/38?closed=1*

3.1.2

=====

* Re-release of 3.1.1, with known signature

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/37?closed=1

3.1.1

=====

* support for PyOxidizer, which previously failed due to usage of `__file__`.

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/36?closed=1

3.1.0

=====

* Switched back to using gitdb package as requirement
(`gitdb59 &lt;https://github.com/gitpython-developers/gitdb/issues/59&gt;`_)

3.0.9

=====

* Restricted GitDB (gitdb2) version requirement to &lt; 4
* Removed old nose library from test requirements

Bugfixes
--------

* Changed to use UTF-8 instead of default encoding when getting information about a symbolic reference
(`774 &lt;https://github.com/gitpython-developers/GitPython/issues/774&gt;`_)
* Fixed decoding of tag object message so as to replace invalid bytes
(`943 &lt;https://github.com/gitpython-developers/GitPython/issues/943&gt;`_)

3.0.8

=====

* Added support for Python 3.8
* Bumped GitDB (gitdb2) version requirement to &gt; 3

Bugfixes
--------

* Fixed Repo.__repr__ when subclassed 
(`968 &lt;https://github.com/gitpython-developers/GitPython/pull/968&gt;`_)
* Removed compatibility shims for Python &lt; 3.4 and old mock library
* Replaced usage of deprecated unittest aliases and Logger.warn
* Removed old, no longer used assert methods
* Replaced usage of nose assert methods with unittest

3.0.7

=====

Properly signed re-release of v3.0.6 with new signature
(See `980 &lt;https://github.com/gitpython-developers/GitPython/issues/980&gt;`_)

3.0.6

=====

| Note: There was an issue that caused this version to be released to PyPI without a signature
| See the changelog for v3.0.7 and `980 &lt;https://github.com/gitpython-developers/GitPython/issues/980&gt;`_

Bugfixes
--------

* Fixed warning for usage of environment variables for paths containing ``$`` or ``%``
(`832 &lt;https://github.com/gitpython-developers/GitPython/issues/832&gt;`_, 
`961 &lt;https://github.com/gitpython-developers/GitPython/pull/961&gt;`_)
* Added support for parsing Git internal date format (&lt;unix timestamp&gt; &lt;timezone offset&gt;)
(`965 &lt;https://github.com/gitpython-developers/GitPython/pull/965&gt;`_)
* Removed Python 2 and &lt; 3.3 compatibility shims
(`979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)
* Fixed GitDB (gitdb2) requirement version specifier formatting in requirements.txt
(`979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)

3.0.5

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

see the following for details:
https://github.com/gitpython-developers/gitpython/milestone/32?closed=1

3.0.4

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

see the following for details:
https://github.com/gitpython-developers/gitpython/milestone/31?closed=1

3.0.3

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

see the following for (most) details:
https://github.com/gitpython-developers/gitpython/milestone/30?closed=1

3.0.2

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

* fixes an issue with installation

3.0.1

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

* Fix a `performance regression &lt;https://github.com/gitpython-developers/GitPython/issues/906&gt;`__ which could make certain workloads 50% slower
* Add `currently_rebasing_on` method on `Repo`, see `the PR &lt;https://github.com/gitpython-developers/GitPython/pull/903/filesdiff-c276fc3c4df38382ec884e59657b869dR1065&gt;`__
* Fix incorrect `requirements.txt` which could lead to broken installations, see this `issue &lt;https://github.com/gitpython-developers/GitPython/issues/908&gt;`__ for details.

3.0.0 - Remove Python 2 support
===============================

Motivation for this is a patch which improves unicode handling when dealing with filesystem paths.
Python 2 compatibility was introduced to deal with differences, and I thought it would be a good idea
to &#39;just&#39; drop support right now, mere 5 months away from the official maintenance stop of python 2.7.

The underlying motivation clearly is my anger when thinking python and unicode, which was a hassle from the
start, at least in a codebase as old as GitPython, which totally doesn&#39;t handle encodings correctly in many cases.

Having migrated to using `Rust` exclusively for tooling, I still see that correct handling of encodings isn&#39;t entirely
trivial, but at least `Rust` makes clear what has to be done at compile time, allowing to write software that is pretty
much guaranteed to work once it compiles.

Again, my apologies if removing Python 2 support caused inconveniences, please see release 2.1.13 which returns it.

see the following for (most) details:
https://github.com/gitpython-developers/gitpython/milestone/27?closed=1

or run have a look at the difference between tags v2.1.12 and v3.0.0:
https://github.com/gitpython-developers/GitPython/compare/2.1.12...3.0.0.

2.1.15

======

* Fixed GitDB (gitdb2) requirement version specifier formatting in requirements.txt
(Backported from `979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)
* Restricted GitDB (gitdb2) version requirement to &lt; 3
(`897 &lt;https://github.com/gitpython-developers/GitPython/issues/897&gt;`_)

2.1.14

======

* Fixed handling of 0 when transforming kwargs into Git command arguments
(Backported from `899 &lt;https://github.com/gitpython-developers/GitPython/pull/899&gt;`_)

2.1.13 - Bring back Python 2.7 support
======================================

My apologies for any inconvenience this may have caused. Following semver, backward incompatible changes
will be introduced in a minor version.

2.1.12

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

* Multi-value support and interface improvements for Git configuration. Thanks to A. Jesse Jiryu Davis.

or run have a look at the difference between tags v2.1.11 and v2.1.12:
https://github.com/gitpython-developers/GitPython/compare/2.1.11...2.1.12

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/gitpython
  • Changelog: https://pyup.io/changelogs/gitpython/
  • Repo: https://github.com/gitpython-developers/GitPython
  • Docs: https://pythonhosted.org/GitPython/ </details>

Update pluginbase from 0.7 to 1.0.0.

<details> <summary>Changelog</summary>

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pluginbase
  • Changelog: https://pyup.io/changelogs/pluginbase/
  • Repo: http://github.com/mitsuhiko/pluginbase </details>

Update docker from 3.5.1 to 4.3.1.

<details> <summary>Changelog</summary>

4.3.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/64?closed=1)

Features
- Add `DeviceRequest` type to expose host resources such as GPUs
- Add support for `DriverOpts` in EndpointConfig
- Disable compression by default when using container.get_archive method

Miscellaneous
- Update default API version to v1.39
- Update test engine version to 19.03.12

4.2.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/66?closed=1)

Bugfixes

- Fix context load for non-docker endpoints

4.2.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/65?closed=1)

Features

- Add option on when to use `tls` on Context constructor
- Make context orchestrator field optional

4.2.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/63?closed=1)

Bugfixes

- Fix `win32pipe.WaitNamedPipe` throw exception in Windows containers
- Use `Hostname`, `Username`, `Port` and `ProxyCommand` settings from `.ssh/config` when on SSH
- Set host key policy for ssh transport to `paramiko.WarningPolicy()`
- Set logging level of `paramiko` to warn

Features

- Add support for docker contexts through `docker.ContextAPI`

4.1.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/61?closed=1)

Bugfixes

- Correct `INDEX_URL` logic in build.py _set_auth_headers
- Fix for empty auth keys in config.json

Features

- Add `NetworkAttachmentConfig` for service create/update

Miscellaneous

- Bump pytest to 4.3.1
- Adjust `--platform` tests for changes in docker engine
- Update credentials-helpers to v0.6.3

4.0.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/62?closed=1)

Bugfixes

- Unified the way `HealthCheck` is created/configured

Miscellaneous

- Bumped version of websocket-client

4.0.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/60?closed=1)

Bugfixes

- Fixed an obsolete import in the `credentials` subpackage that caused import errors in
Python 3.7

Miscellaneous

- Docs building has been repaired

4.0.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/57?closed=1)

Breaking changes

- Support for Python 3.3 and Python 3.4 has been dropped
- `APIClient.update_service`, `APIClient.init_swarm`, and
`DockerClient.swarm.init` now return a `dict` from the API&#39;s response body
- In `APIClient.build` and `DockerClient.images.build`, the `use_config_proxy`
parameter now defaults to True
- `init_path` is no longer a valid parameter for `HostConfig`

Features

- It is now possible to provide `SCTP` ports for port mappings
- `ContainerSpec`s now support the `init` parameter
- `DockerClient.swarm.init` and `APIClient.init_swarm` now support the
`data_path_addr` parameter
- `APIClient.update_swarm` and `DockerClient.swarm.update` now support the
`rotate_manager_unlock_key` parameter
- `APIClient.update_service` returns the API&#39;s response body as a `dict`
- `APIClient.init_swarm`, and `DockerClient.swarm.init` now return the API&#39;s
response body as a `dict`

Bugfixes

- Fixed `PlacementPreference` instances to produce a valid API type
- Fixed a bug where not setting a value for `buildargs` in `build` could cause
the library to attempt accessing attributes of a `None` value
- Fixed a bug where setting the `volume_driver` parameter in
`DockerClient.containers.create` would result in an error
- `APIClient.inspect_distribution` now correctly sets the authentication
headers on the request, allowing it to be used with private repositories
This change also applies to `DockerClient.get_registry_data`

3.7.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/59?closed=1)

Bugfixes

* Fix base_url to keep TCP protocol on utils.py by letting the responsibility of changing the
protocol to `parse_host` afterwards, letting `base_url` with the original value.
* XFAIL test_attach_stream_and_cancel on TLS

3.7.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/58?closed=1)

Bugfixes

* Set a different default number (which is now 9) for SSH pools
* Adds a BaseHTTPAdapter with a close method to ensure that the
pools is clean on close()
* Makes SSHHTTPAdapter reopen a closed connection when needed
like the others

3.7.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/56?closed=1)

Features

* Added support for multiplexed streams (for `attach` and `exec_start`). Learn
more at https://docker-py.readthedocs.io/en/stable/user_guides/multiplex.html
* Added the `use_config_proxy` parameter to the following methods:
`APIClient.build`, `APIClient.create_container`, `DockerClient.images.build`
and `DockerClient.containers.run` (`False` by default). **This parameter**
**will become `True` by default in the 4.0.0 release.**
* Placement preferences for Swarm services are better validated on the client
and documentation has been updated accordingly

Bugfixes

* Fixed a bug where credential stores weren&#39;t queried for relevant registry
credentials with certain variations of the `config.json` file.
* `DockerClient.swarm.init` now returns a boolean value as advertised.

3.6.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone=55?closed=1)

Features

* Added support for connecting to the Docker Engine over SSH. Additional
dependencies for this feature can be installed with
`pip install &quot;docker[ssh]&quot;`
* Added support for the `named` parameter in `Image.save`, which may be
used to ensure the resulting tarball retains the image&#39;s name on save.

Bugfixes

* Fixed a bug where builds on Windows with a context path using the `\\?\`
prefix would fail with some relative Dockerfile paths.
* Fixed an issue where pulls made with the `DockerClient` would fail when
setting the `stream` parameter to `True`.

Miscellaneous

* The minimum requirement for the `requests` dependency has been bumped
to 2.20.0

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/docker
  • Changelog: https://pyup.io/changelogs/docker/
  • Repo: https://github.com/docker/docker-py </details>

Update python-slugify from 1.2.6 to 4.0.1.

<details> <summary>Changelog</summary>

4.0.1

- Add support for Py 3.8

4.0.0

- Drop support from 2.6, &amp; &lt; 3.4.5

3.0.6

- Fixed encoding in special.py

3.0.5

- Add test for pre-translation (e.g German Umlaut)
- Add special char supports (optional Use)

3.0.4

- Now supporting text-unidecode&gt;=1.3
- Now supporting Unidecode&gt;=1.1.1

3.0.3

- Remove unicode chars from file

3.0.2

- Add official support of Py 3.7

3.0.1

- Add test.py to manifest

3.0.0

- Upgrade Unidecode
- Promote text-unidecode as the primary decoding package
- Add Unidecode as an optional extra. &quot;pip install python-slugify[unidecode]&quot;

2.0.1

- Add replacements option e.g. [[&#39;|&#39;, &#39;or&#39;], [&#39;%&#39;, &#39;percent&#39;], [&#39;-&#39;, &#39;_&#39;]] (andriyor)

2.0.0

- Fix alternative dependency installation

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/python-slugify
  • Changelog: https://pyup.io/changelogs/python-slugify/
  • Repo: https://github.com/un33k/python-slugify </details>

Update transitions from 0.6.8 to 0.8.3.

<details> <summary>Changelog</summary>

0.8.3

- Feature 473: Assign `is_&lt;model_attribute&gt;_&lt;state_name&gt;` instead of `is_&lt;state_name&gt;` when `model_attribute != &quot;state&quot;` to enable multiple versions of such convenience functions. A warning will be raised when `is_&lt;state_name&gt;` is used. (thanks artofhuman)
- Similarly, auto transitions (`to_&lt;state_name&gt;`) will be assigned as `to_&lt;model_attribute&gt;_&lt;state_name&gt;`. `to_&lt;state_name&gt;` will work as before but raise a warning until version 0.9.0.
- Bugfix: `allow_substates` did not consider enum states
- Feature: Nested enums can now be passed in a dict as `children` with `initial` parameter
- Bugfix 449: get_triggers/get_transitions did not return nested triggers correctly (thanks alexandretanem)
- Feature 452: Improve handling of label attributes in custom diagram states and `TransitionGraphSupport` (thanks badiku)
- Bugfix 456: Prevent parents from overriding (falsy) results of their children&#39;s events (thanks alexandretanem)
- Bugfix 458: Entering the same state caused key errors when transition was defined on a parent (thanks matlom)
- Bugfix 459: Do not remove current timeout runner in AsyncTimeout to prevent accidental overrides (thanks rgov)
- Rewording of `State.enter/exit` debug message emitted when callbacks have been processed.
- Bugfix 370: Fix order of `before_state_change/before` and `after/after_state_change` in `AsyncMachine` (thanks tzoiker and vishes-shell)
- Bugfix 470: `Graph.get_graph()` did not consider `enum` states when `show_roi=True` (thanks termim)

0.8.2

- Bugfix 438: Improved testing without any optional `graphviz` package
- Bugfix: `_check_event_result` failed when model was in parallel state
- Bugfix 440: Only allow explicit `dest=None` in `Machine.add_transition` (not just falsy) for internal transitions (thanks Pathfinder216)
- Bugfix 419: Fix state creation of nested enums (thanks thedrow)
- Bugfix 428: HierarchicalGraphMachine did not find/apply styling for parallel states (thanks xiaohuihui1024)
- Bugfix: `Model.trigger` now considers the machine&#39;s and current state&#39;s `ignore_invalid_triggers` attribute and can be called with non-existing events (thanks potens1)
- Bugfix: Child states may not have been exited when the executed transition had been defined on a parent (thanks thedrow)
- Feature 429: Introduced `transitions.extensions.asyncio.AsyncTimeout` as a state decorator to avoid threads used in `transitions.extensions.state.Timeout` (thanks potens1)
- Feature 444: `transitions` can now be tested online at mybinder.org
- PR 418: Use sets instead of lists to cache already covered transitions in nested state machines (thanks thedrow)
- PR 422: Improve handling of unresolved attributes for easier inheritance (thanks thedrow)
- PR 445: Refactored AsyncMachine to enable trio/anyio override

0.8.1

- Feature: Introduced experimental `HierarchicalAsync(Graph)Machine`
- Feature 405: Support for nested Enums in `HierarchicalMachine` (thanks thedrow)
- Bugfix 400: Fix style initialization when initial state is an `Enum` (thanks kbinpgh)
- Bugfix 403: AsyncMachine.dispatch now returns a boolean as expected (thanks thedrow)
- Bugfix 413: Improve diagram output for `HierarchicalMachine` (thanks xiaohuihui1024)
- Increased coverage (thanks thedrow)
- Introduced `xdist` for parallel testing with `pytest` (thanks thedrow)

0.8.0

Release 0.8.0 is a major release and introduces asyncio support for Python 3.7+, parallel state support and some bugfixes:

- Feature: `HierarchicalMachine` has been rewritten to support parallel states. Please have a look at the ReadMe.md to check what has changed.
+ The previous version can be found in `transitions.extensions.nesting_legacy` for now
- Feature: Introduced `AsyncMachine` (see discussion 259); note that async HSMs are not yet supported
- Feature 390: String callbacks can now point to properties and attributes (thanks jsenecal)
- Bugfix: Auto transitions are added multiple times when add_states is called more than once
- Bugfix: Convert state._name from `Enum` into strings in `MarkupMachine` when necessary
- Bugfix 392: Allow `Machine.add_ordered_transitions` to be called without the initial state (thanks mkaranki and facundofc)
- `GraphMachine` now attempts to fall back to `graphviz` when importing `pygraphviz` fails
- Not implemented/tested so far (contributions are welcome!):
+ Proper Graphviz support of parallel states
+ AsyncHierachicalMachine

0.7.2

- Bugfix 386: Fix transitions for enums with str behavior (thanks artofhuman)
- Bugfix 378: Don&#39;t mask away KeyError when executing a transition (thanks facundofc)
- Feature 387: Add support for dynamic model state attribute (thanks v1k45)

0.7.1

- Feature 334: Added Enum (Python 3.4+: `enum` Python 2.7: `enum34`) support (thanks artofhuman and justinttl)
- Replaced test framework `nosetests` with `pytest` (thanks artofhuman)
- Extended `add_ordered_transitions` documentation in `Readme.md`
- Collected code snippets from earlier discussions in `examples/Frequently asked questions.ipynb`
- Improved stripping of `long_description` in `setup.py` (thanks artofhuman)

0.7.0

Release 0.7.0 is a major release with fundamental changes to the diagram extension. It also introduces an intermediate `MarkupMachine` which can be used to transfer and (re-)initialize machine configurations.

- Feature 263: `MarkupMachine` can be used to retrieve a Machine&#39;s dictionary representation
- `GraphMachine` uses this representation for Graphs now and does not rely on `Machine` attributes any longer
- Feature: The default value of `State.ignore_invalid_triggers` changed to `None`. If it is not explicitly set, the `Machine`&#39;s value is used instead.
- Feature 325: transitions now supports `pygraphviz` and `graphviz` for the creation of diagrams. Currently, `GraphMachine` will check for `pygraphviz` first and fall back to `graphviz`. To use `graphviz` directly pass `use_pygraphiv=False` to the constructor of `GraphMachine`
- Diagram style has been overhauled. Have a look at `GraphMachine`&#39;s attributes `machine_attributes` and `style_attributes` to adjust it to your needs.
- Feature 305: Timeouts and other features are now marked in the graphs
- Bugfix 343: `get_graph` was not assigned to models added during machine runtime

0.6.9

- Bugfix 314: Do not override already defined model functions with convenience functions (thanks Arkanayan)
- Bugfix 316: `state.Error` did not call parent&#39;s `enter` method (thanks potens1)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/transitions
  • Changelog: https://pyup.io/changelogs/transitions/
  • Repo: https://github.com/pytransitions/transitions/archive/0.8.3.tar.gz </details>
+5 -5

1 comment

1 changed file

pyup-bot

pr closed time in 4 hours

pull request commentvCra/pipeline

Scheduled daily dependency update on Tuesday

Closing this in favor of #723

pyup-bot

comment created time in 4 hours

PR opened vCra/pipeline

Scheduled daily dependency update on Wednesday

Update gitpython from 2.1.11 to 3.1.8.

<details> <summary>Changelog</summary>

3.1.8

=====

* support for &#39;includeIf&#39; in git configuration files
* tests are now excluded from the package, making it conisderably smaller


See the following for more details:
https://github.com/gitpython-developers/gitpython/milestone/40?closed=1*

3.1.7

=====

* Fix tutorial examples, which disappeared in 3.1.6 due to a missed path change.

3.1.6

=====

* Greatly reduced package size, see https://github.com/gitpython-developers/GitPython/pull/1031

3.1.5

=====

* rollback: package size was reduced significantly not placing tests into the package anymore.
See https://github.com/gitpython-developers/GitPython/issues/1030

3.1.4

=====

* all exceptions now keep track of their cause
* package size was reduced significantly not placing tests into the package anymore.

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/39?closed=1*

3.1.3

=====

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/38?closed=1*

3.1.2

=====

* Re-release of 3.1.1, with known signature

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/37?closed=1

3.1.1

=====

* support for PyOxidizer, which previously failed due to usage of `__file__`.

See the following for details:
https://github.com/gitpython-developers/gitpython/milestone/36?closed=1

3.1.0

=====

* Switched back to using gitdb package as requirement
(`gitdb59 &lt;https://github.com/gitpython-developers/gitdb/issues/59&gt;`_)

3.0.9

=====

* Restricted GitDB (gitdb2) version requirement to &lt; 4
* Removed old nose library from test requirements

Bugfixes
--------

* Changed to use UTF-8 instead of default encoding when getting information about a symbolic reference
(`774 &lt;https://github.com/gitpython-developers/GitPython/issues/774&gt;`_)
* Fixed decoding of tag object message so as to replace invalid bytes
(`943 &lt;https://github.com/gitpython-developers/GitPython/issues/943&gt;`_)

3.0.8

=====

* Added support for Python 3.8
* Bumped GitDB (gitdb2) version requirement to &gt; 3

Bugfixes
--------

* Fixed Repo.__repr__ when subclassed 
(`968 &lt;https://github.com/gitpython-developers/GitPython/pull/968&gt;`_)
* Removed compatibility shims for Python &lt; 3.4 and old mock library
* Replaced usage of deprecated unittest aliases and Logger.warn
* Removed old, no longer used assert methods
* Replaced usage of nose assert methods with unittest

3.0.7

=====

Properly signed re-release of v3.0.6 with new signature
(See `980 &lt;https://github.com/gitpython-developers/GitPython/issues/980&gt;`_)

3.0.6

=====

| Note: There was an issue that caused this version to be released to PyPI without a signature
| See the changelog for v3.0.7 and `980 &lt;https://github.com/gitpython-developers/GitPython/issues/980&gt;`_

Bugfixes
--------

* Fixed warning for usage of environment variables for paths containing ``$`` or ``%``
(`832 &lt;https://github.com/gitpython-developers/GitPython/issues/832&gt;`_, 
`961 &lt;https://github.com/gitpython-developers/GitPython/pull/961&gt;`_)
* Added support for parsing Git internal date format (&lt;unix timestamp&gt; &lt;timezone offset&gt;)
(`965 &lt;https://github.com/gitpython-developers/GitPython/pull/965&gt;`_)
* Removed Python 2 and &lt; 3.3 compatibility shims
(`979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)
* Fixed GitDB (gitdb2) requirement version specifier formatting in requirements.txt
(`979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)

3.0.5

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

see the following for details:
https://github.com/gitpython-developers/gitpython/milestone/32?closed=1

3.0.4

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

see the following for details:
https://github.com/gitpython-developers/gitpython/milestone/31?closed=1

3.0.3

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

see the following for (most) details:
https://github.com/gitpython-developers/gitpython/milestone/30?closed=1

3.0.2

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

* fixes an issue with installation

3.0.1

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

* Fix a `performance regression &lt;https://github.com/gitpython-developers/GitPython/issues/906&gt;`__ which could make certain workloads 50% slower
* Add `currently_rebasing_on` method on `Repo`, see `the PR &lt;https://github.com/gitpython-developers/GitPython/pull/903/filesdiff-c276fc3c4df38382ec884e59657b869dR1065&gt;`__
* Fix incorrect `requirements.txt` which could lead to broken installations, see this `issue &lt;https://github.com/gitpython-developers/GitPython/issues/908&gt;`__ for details.

3.0.0 - Remove Python 2 support
===============================

Motivation for this is a patch which improves unicode handling when dealing with filesystem paths.
Python 2 compatibility was introduced to deal with differences, and I thought it would be a good idea
to &#39;just&#39; drop support right now, mere 5 months away from the official maintenance stop of python 2.7.

The underlying motivation clearly is my anger when thinking python and unicode, which was a hassle from the
start, at least in a codebase as old as GitPython, which totally doesn&#39;t handle encodings correctly in many cases.

Having migrated to using `Rust` exclusively for tooling, I still see that correct handling of encodings isn&#39;t entirely
trivial, but at least `Rust` makes clear what has to be done at compile time, allowing to write software that is pretty
much guaranteed to work once it compiles.

Again, my apologies if removing Python 2 support caused inconveniences, please see release 2.1.13 which returns it.

see the following for (most) details:
https://github.com/gitpython-developers/gitpython/milestone/27?closed=1

or run have a look at the difference between tags v2.1.12 and v3.0.0:
https://github.com/gitpython-developers/GitPython/compare/2.1.12...3.0.0.

2.1.15

======

* Fixed GitDB (gitdb2) requirement version specifier formatting in requirements.txt
(Backported from `979 &lt;https://github.com/gitpython-developers/GitPython/pull/979&gt;`_)
* Restricted GitDB (gitdb2) version requirement to &lt; 3
(`897 &lt;https://github.com/gitpython-developers/GitPython/issues/897&gt;`_)

2.1.14

======

* Fixed handling of 0 when transforming kwargs into Git command arguments
(Backported from `899 &lt;https://github.com/gitpython-developers/GitPython/pull/899&gt;`_)

2.1.13 - Bring back Python 2.7 support
======================================

My apologies for any inconvenience this may have caused. Following semver, backward incompatible changes
will be introduced in a minor version.

2.1.12

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

* Multi-value support and interface improvements for Git configuration. Thanks to A. Jesse Jiryu Davis.

or run have a look at the difference between tags v2.1.11 and v2.1.12:
https://github.com/gitpython-developers/GitPython/compare/2.1.11...2.1.12

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/gitpython
  • Changelog: https://pyup.io/changelogs/gitpython/
  • Repo: https://github.com/gitpython-developers/GitPython
  • Docs: https://pythonhosted.org/GitPython/ </details>

Update pluginbase from 0.7 to 1.0.0.

<details> <summary>Changelog</summary>

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/pluginbase
  • Changelog: https://pyup.io/changelogs/pluginbase/
  • Repo: http://github.com/mitsuhiko/pluginbase </details>

Update docker from 3.5.1 to 4.3.1.

<details> <summary>Changelog</summary>

4.3.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/64?closed=1)

Features
- Add `DeviceRequest` type to expose host resources such as GPUs
- Add support for `DriverOpts` in EndpointConfig
- Disable compression by default when using container.get_archive method

Miscellaneous
- Update default API version to v1.39
- Update test engine version to 19.03.12

4.2.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/66?closed=1)

Bugfixes

- Fix context load for non-docker endpoints

4.2.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/65?closed=1)

Features

- Add option on when to use `tls` on Context constructor
- Make context orchestrator field optional

4.2.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/63?closed=1)

Bugfixes

- Fix `win32pipe.WaitNamedPipe` throw exception in Windows containers
- Use `Hostname`, `Username`, `Port` and `ProxyCommand` settings from `.ssh/config` when on SSH
- Set host key policy for ssh transport to `paramiko.WarningPolicy()`
- Set logging level of `paramiko` to warn

Features

- Add support for docker contexts through `docker.ContextAPI`

4.1.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/61?closed=1)

Bugfixes

- Correct `INDEX_URL` logic in build.py _set_auth_headers
- Fix for empty auth keys in config.json

Features

- Add `NetworkAttachmentConfig` for service create/update

Miscellaneous

- Bump pytest to 4.3.1
- Adjust `--platform` tests for changes in docker engine
- Update credentials-helpers to v0.6.3

4.0.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/62?closed=1)

Bugfixes

- Unified the way `HealthCheck` is created/configured

Miscellaneous

- Bumped version of websocket-client

4.0.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/60?closed=1)

Bugfixes

- Fixed an obsolete import in the `credentials` subpackage that caused import errors in
Python 3.7

Miscellaneous

- Docs building has been repaired

4.0.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/57?closed=1)

Breaking changes

- Support for Python 3.3 and Python 3.4 has been dropped
- `APIClient.update_service`, `APIClient.init_swarm`, and
`DockerClient.swarm.init` now return a `dict` from the API&#39;s response body
- In `APIClient.build` and `DockerClient.images.build`, the `use_config_proxy`
parameter now defaults to True
- `init_path` is no longer a valid parameter for `HostConfig`

Features

- It is now possible to provide `SCTP` ports for port mappings
- `ContainerSpec`s now support the `init` parameter
- `DockerClient.swarm.init` and `APIClient.init_swarm` now support the
`data_path_addr` parameter
- `APIClient.update_swarm` and `DockerClient.swarm.update` now support the
`rotate_manager_unlock_key` parameter
- `APIClient.update_service` returns the API&#39;s response body as a `dict`
- `APIClient.init_swarm`, and `DockerClient.swarm.init` now return the API&#39;s
response body as a `dict`

Bugfixes

- Fixed `PlacementPreference` instances to produce a valid API type
- Fixed a bug where not setting a value for `buildargs` in `build` could cause
the library to attempt accessing attributes of a `None` value
- Fixed a bug where setting the `volume_driver` parameter in
`DockerClient.containers.create` would result in an error
- `APIClient.inspect_distribution` now correctly sets the authentication
headers on the request, allowing it to be used with private repositories
This change also applies to `DockerClient.get_registry_data`

3.7.2

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/59?closed=1)

Bugfixes

* Fix base_url to keep TCP protocol on utils.py by letting the responsibility of changing the
protocol to `parse_host` afterwards, letting `base_url` with the original value.
* XFAIL test_attach_stream_and_cancel on TLS

3.7.1

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/58?closed=1)

Bugfixes

* Set a different default number (which is now 9) for SSH pools
* Adds a BaseHTTPAdapter with a close method to ensure that the
pools is clean on close()
* Makes SSHHTTPAdapter reopen a closed connection when needed
like the others

3.7.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone/56?closed=1)

Features

* Added support for multiplexed streams (for `attach` and `exec_start`). Learn
more at https://docker-py.readthedocs.io/en/stable/user_guides/multiplex.html
* Added the `use_config_proxy` parameter to the following methods:
`APIClient.build`, `APIClient.create_container`, `DockerClient.images.build`
and `DockerClient.containers.run` (`False` by default). **This parameter**
**will become `True` by default in the 4.0.0 release.**
* Placement preferences for Swarm services are better validated on the client
and documentation has been updated accordingly

Bugfixes

* Fixed a bug where credential stores weren&#39;t queried for relevant registry
credentials with certain variations of the `config.json` file.
* `DockerClient.swarm.init` now returns a boolean value as advertised.

3.6.0

-----

[List of PRs / issues for this release](https://github.com/docker/docker-py/milestone=55?closed=1)

Features

* Added support for connecting to the Docker Engine over SSH. Additional
dependencies for this feature can be installed with
`pip install &quot;docker[ssh]&quot;`
* Added support for the `named` parameter in `Image.save`, which may be
used to ensure the resulting tarball retains the image&#39;s name on save.

Bugfixes

* Fixed a bug where builds on Windows with a context path using the `\\?\`
prefix would fail with some relative Dockerfile paths.
* Fixed an issue where pulls made with the `DockerClient` would fail when
setting the `stream` parameter to `True`.

Miscellaneous

* The minimum requirement for the `requests` dependency has been bumped
to 2.20.0

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/docker
  • Changelog: https://pyup.io/changelogs/docker/
  • Repo: https://github.com/docker/docker-py </details>

Update python-slugify from 1.2.6 to 4.0.1.

<details> <summary>Changelog</summary>

4.0.1

- Add support for Py 3.8

4.0.0

- Drop support from 2.6, &amp; &lt; 3.4.5

3.0.6

- Fixed encoding in special.py

3.0.5

- Add test for pre-translation (e.g German Umlaut)
- Add special char supports (optional Use)

3.0.4

- Now supporting text-unidecode&gt;=1.3
- Now supporting Unidecode&gt;=1.1.1

3.0.3

- Remove unicode chars from file

3.0.2

- Add official support of Py 3.7

3.0.1

- Add test.py to manifest

3.0.0

- Upgrade Unidecode
- Promote text-unidecode as the primary decoding package
- Add Unidecode as an optional extra. &quot;pip install python-slugify[unidecode]&quot;

2.0.1

- Add replacements option e.g. [[&#39;|&#39;, &#39;or&#39;], [&#39;%&#39;, &#39;percent&#39;], [&#39;-&#39;, &#39;_&#39;]] (andriyor)

2.0.0

- Fix alternative dependency installation

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/python-slugify
  • Changelog: https://pyup.io/changelogs/python-slugify/
  • Repo: https://github.com/un33k/python-slugify </details>

Update transitions from 0.6.8 to 0.8.3.

<details> <summary>Changelog</summary>

0.8.3

- Feature 473: Assign `is_&lt;model_attribute&gt;_&lt;state_name&gt;` instead of `is_&lt;state_name&gt;` when `model_attribute != &quot;state&quot;` to enable multiple versions of such convenience functions. A warning will be raised when `is_&lt;state_name&gt;` is used. (thanks artofhuman)
- Similarly, auto transitions (`to_&lt;state_name&gt;`) will be assigned as `to_&lt;model_attribute&gt;_&lt;state_name&gt;`. `to_&lt;state_name&gt;` will work as before but raise a warning until version 0.9.0.
- Bugfix: `allow_substates` did not consider enum states
- Feature: Nested enums can now be passed in a dict as `children` with `initial` parameter
- Bugfix 449: get_triggers/get_transitions did not return nested triggers correctly (thanks alexandretanem)
- Feature 452: Improve handling of label attributes in custom diagram states and `TransitionGraphSupport` (thanks badiku)
- Bugfix 456: Prevent parents from overriding (falsy) results of their children&#39;s events (thanks alexandretanem)
- Bugfix 458: Entering the same state caused key errors when transition was defined on a parent (thanks matlom)
- Bugfix 459: Do not remove current timeout runner in AsyncTimeout to prevent accidental overrides (thanks rgov)
- Rewording of `State.enter/exit` debug message emitted when callbacks have been processed.
- Bugfix 370: Fix order of `before_state_change/before` and `after/after_state_change` in `AsyncMachine` (thanks tzoiker and vishes-shell)
- Bugfix 470: `Graph.get_graph()` did not consider `enum` states when `show_roi=True` (thanks termim)

0.8.2

- Bugfix 438: Improved testing without any optional `graphviz` package
- Bugfix: `_check_event_result` failed when model was in parallel state
- Bugfix 440: Only allow explicit `dest=None` in `Machine.add_transition` (not just falsy) for internal transitions (thanks Pathfinder216)
- Bugfix 419: Fix state creation of nested enums (thanks thedrow)
- Bugfix 428: HierarchicalGraphMachine did not find/apply styling for parallel states (thanks xiaohuihui1024)
- Bugfix: `Model.trigger` now considers the machine&#39;s and current state&#39;s `ignore_invalid_triggers` attribute and can be called with non-existing events (thanks potens1)
- Bugfix: Child states may not have been exited when the executed transition had been defined on a parent (thanks thedrow)
- Feature 429: Introduced `transitions.extensions.asyncio.AsyncTimeout` as a state decorator to avoid threads used in `transitions.extensions.state.Timeout` (thanks potens1)
- Feature 444: `transitions` can now be tested online at mybinder.org
- PR 418: Use sets instead of lists to cache already covered transitions in nested state machines (thanks thedrow)
- PR 422: Improve handling of unresolved attributes for easier inheritance (thanks thedrow)
- PR 445: Refactored AsyncMachine to enable trio/anyio override

0.8.1

- Feature: Introduced experimental `HierarchicalAsync(Graph)Machine`
- Feature 405: Support for nested Enums in `HierarchicalMachine` (thanks thedrow)
- Bugfix 400: Fix style initialization when initial state is an `Enum` (thanks kbinpgh)
- Bugfix 403: AsyncMachine.dispatch now returns a boolean as expected (thanks thedrow)
- Bugfix 413: Improve diagram output for `HierarchicalMachine` (thanks xiaohuihui1024)
- Increased coverage (thanks thedrow)
- Introduced `xdist` for parallel testing with `pytest` (thanks thedrow)

0.8.0

Release 0.8.0 is a major release and introduces asyncio support for Python 3.7+, parallel state support and some bugfixes:

- Feature: `HierarchicalMachine` has been rewritten to support parallel states. Please have a look at the ReadMe.md to check what has changed.
+ The previous version can be found in `transitions.extensions.nesting_legacy` for now
- Feature: Introduced `AsyncMachine` (see discussion 259); note that async HSMs are not yet supported
- Feature 390: String callbacks can now point to properties and attributes (thanks jsenecal)
- Bugfix: Auto transitions are added multiple times when add_states is called more than once
- Bugfix: Convert state._name from `Enum` into strings in `MarkupMachine` when necessary
- Bugfix 392: Allow `Machine.add_ordered_transitions` to be called without the initial state (thanks mkaranki and facundofc)
- `GraphMachine` now attempts to fall back to `graphviz` when importing `pygraphviz` fails
- Not implemented/tested so far (contributions are welcome!):
+ Proper Graphviz support of parallel states
+ AsyncHierachicalMachine

0.7.2

- Bugfix 386: Fix transitions for enums with str behavior (thanks artofhuman)
- Bugfix 378: Don&#39;t mask away KeyError when executing a transition (thanks facundofc)
- Feature 387: Add support for dynamic model state attribute (thanks v1k45)

0.7.1

- Feature 334: Added Enum (Python 3.4+: `enum` Python 2.7: `enum34`) support (thanks artofhuman and justinttl)
- Replaced test framework `nosetests` with `pytest` (thanks artofhuman)
- Extended `add_ordered_transitions` documentation in `Readme.md`
- Collected code snippets from earlier discussions in `examples/Frequently asked questions.ipynb`
- Improved stripping of `long_description` in `setup.py` (thanks artofhuman)

0.7.0

Release 0.7.0 is a major release with fundamental changes to the diagram extension. It also introduces an intermediate `MarkupMachine` which can be used to transfer and (re-)initialize machine configurations.

- Feature 263: `MarkupMachine` can be used to retrieve a Machine&#39;s dictionary representation
- `GraphMachine` uses this representation for Graphs now and does not rely on `Machine` attributes any longer
- Feature: The default value of `State.ignore_invalid_triggers` changed to `None`. If it is not explicitly set, the `Machine`&#39;s value is used instead.
- Feature 325: transitions now supports `pygraphviz` and `graphviz` for the creation of diagrams. Currently, `GraphMachine` will check for `pygraphviz` first and fall back to `graphviz`. To use `graphviz` directly pass `use_pygraphiv=False` to the constructor of `GraphMachine`
- Diagram style has been overhauled. Have a look at `GraphMachine`&#39;s attributes `machine_attributes` and `style_attributes` to adjust it to your needs.
- Feature 305: Timeouts and other features are now marked in the graphs
- Bugfix 343: `get_graph` was not assigned to models added during machine runtime

0.6.9

- Bugfix 314: Do not override already defined model functions with convenience functions (thanks Arkanayan)
- Bugfix 316: `state.Error` did not call parent&#39;s `enter` method (thanks potens1)

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/transitions
  • Changelog: https://pyup.io/changelogs/transitions/
  • Repo: https://github.com/pytransitions/transitions/archive/0.8.3.tar.gz </details>
+5 -5

0 comment

1 changed file

pr created time in 4 hours

PR closed unbit/django-uwsgi

Scheduled daily dependency update on Tuesday

Update sphinx from 2.2.1 to 3.2.1.

<details> <summary>Changelog</summary>

3.2.1

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

Features added
--------------

* 8095: napoleon: Add :confval:`napoleon_preprocess_types` to enable the type
preprocessor for numpy style docstrings
* 8114: C and C++, parse function attributes after parameters and qualifiers.

Bugs fixed
----------

* 8074: napoleon: Crashes during processing C-ext module
* 8088: napoleon: &quot;Inline literal start-string without end-string&quot; warning in
Numpy style Parameters section
* 8084: autodoc: KeyError is raised on documenting an attribute of the broken
class
* 8091: autodoc: AttributeError is raised on documenting an attribute on Python
3.5.2
* 8099: autodoc: NameError is raised when target code uses ``TYPE_CHECKING``
* C++, fix parsing of template template paramters, broken by the fix of 7944

3.2.0

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

Deprecated
----------

* ``sphinx.ext.autodoc.members_set_option()``
* ``sphinx.ext.autodoc.merge_special_members_option()``
* ``sphinx.writers.texinfo.TexinfoWriter.desc``
* C, parsing of pre-v3 style type directives and roles, along with the options
:confval:`c_allow_pre_v3` and :confval:`c_warn_on_allowed_pre_v3`.

Features added
--------------

* 2076: autodoc: Allow overriding of exclude-members in skip-member function
* 8034: autodoc: ``:private-member:`` can take an explicit list of member names
to be documented
* 2024: autosummary: Add :confval:`autosummary_filename_map` to avoid conflict
of filenames between two object with different case
* 8011: autosummary: Support instance attributes as a target of autosummary
directive
* 7849: html: Add :confval:`html_codeblock_linenos_style` to change the style
of line numbers for code-blocks
* 7853: C and C++, support parameterized GNU style attributes.
* 7888: napoleon: Add aliases Warn and Raise.
* 7690: napoleon: parse type strings and make them hyperlinks as possible.  The
conversion rule can be updated via :confval:`napoleon_type_aliases`
* 8049: napoleon: Create a hyperlink for each the type of parameter when
:confval:`napoleon_use_params` is False
* C, added :rst:dir:`c:alias` directive for inserting copies
of existing declarations.
* 7745: html: inventory is broken if the docname contains a space
* 7991: html search: Allow searching for numbers
* 7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control
the behavior of globaltoc in sidebar
* 7840: i18n: Optimize the dependencies check on bootstrap
* 7768: i18n: :confval:`figure_language_filename` supports ``docpath`` token
* 5208: linkcheck: Support checks for local links
* 5090: setuptools: Link verbosity to distutils&#39; -v and -q option
* 6698: doctest: Add ``:trim-doctest-flags:`` and ``:no-trim-doctest-flags:``
options to doctest, testcode and testoutput directives
* 7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains.
Update the documentation to better reflect the relationship between this option
and the ``:noindex:`` option.
* 7899: C, add possibility of parsing of some pre-v3 style type directives and
roles and try to convert them to equivalent v3 directives/roles.
Set the new option :confval:`c_allow_pre_v3` to ``True`` to enable this.
The warnings printed from this functionality can be suppressed by setting
:confval:`c_warn_on_allowed_pre_v3`` to ``True``.
The functionality is immediately deprecated.
* 7999: C, add support for named variadic macro arguments.
* 8071: Allow to suppress &quot;self referenced toctrees&quot; warning

Bugs fixed
----------

* 7886: autodoc: TypeError is raised on mocking generic-typed classes
* 7935: autodoc: function signature is not shown when the function has a
parameter having ``inspect._empty`` as its default value
* 7901: autodoc: type annotations for overloaded functions are not resolved
* 904: autodoc: An instance attribute cause a crash of autofunction directive
* 1362: autodoc: ``private-members`` option does not work for class attributes
* 7983: autodoc: Generator type annotation is wrongly rendered in py36
* 8030: autodoc: An uninitialized annotated instance variable is not documented
when ``:inherited-members:`` option given
* 8032: autodoc: A type hint for the instance variable defined at parent class
is not shown in the document of the derived class
* 8041: autodoc: An annotated instance variable on super class is not
documented when derived class has other annotated instance variables
* 7839: autosummary: cannot handle umlauts in function names
* 7865: autosummary: Failed to extract summary line when abbreviations found
* 7866: autosummary: Failed to extract correct summary line when docstring
contains a hyperlink target
* 7469: autosummary: &quot;Module attributes&quot; header is not translatable
* 7940: apidoc: An extra newline is generated at the end of the rst file if a
module has submodules 
* 4258: napoleon: decorated special methods are not shown
* 7799: napoleon: parameters are not escaped for combined params in numpydoc
* 7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
recognized when napoleon_use_params=True
* 7715: LaTeX: ``numfig_secnum_depth &gt; 1`` leads to wrong figure links
* 7846: html theme: XML-invalid files were generated
* 7894: gettext: Wrong source info is shown when using rst_epilog
* 7691: linkcheck: HEAD requests are not used for checking
* 4888: i18n: Failed to add an explicit title to ``:ref:`` role on translation
* 7928: py domain: failed to resolve a type annotation for the attribute
* 8008: py domain: failed to parse a type annotation containing ellipsis
* 7994: std domain: option directive does not generate old node_id compatible
with 2.x or older
* 7968: i18n: The content of ``math`` directive is interpreted as reST on
translation
* 7768: i18n: The ``root`` element for :confval:`figure_language_filename` is
not a path that user specifies in the document
* 7993: texinfo: TypeError is raised for nested object descriptions
* 7993: texinfo: a warning not supporting desc_signature_line node is shown
* 7869: :rst:role:`abbr` role without an explanation will show the explanation
from the previous abbr role
* 8048: graphviz: graphviz.css was copied on building non-HTML document
* C and C++, removed ``noindex`` directive option as it did
nothing.
* 7619: Duplicated node IDs are generated if node has multiple IDs
* 2050: Symbols sections are appeared twice in the index page
* 8017: Fix circular import in sphinx.addnodes
* 7986: CSS: make &quot;highlight&quot; selector more robust
* 7944: C++, parse non-type template parameters starting with
a dependent qualified name.
* C, don&#39;t deepcopy the entire symbol table and make a mess every time an
enumerator is handled.

3.1.2

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

Incompatible changes
--------------------

* 7650: autodoc: the signature of base function will be shown for decorated
functions, not a signature of decorator

Bugs fixed
----------

* 7844: autodoc: Failed to detect module when relative module name given
* 7856: autodoc: AttributeError is raised when non-class object is given to
the autoclass directive
* 7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints
is &#39;description&#39;
* 7812: autodoc: crashed if the target name matches to both an attribute and
module that are same name
* 7650: autodoc: function signature becomes ``(*args, **kwargs)`` if the
function is decorated by generic decorator
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7806: viewcode: Failed to resolve viewcode references on 3rd party builders
* 7838: html theme: List items have extra vertical space
* 7878: html theme: Undesired interaction between &quot;overflow&quot; and &quot;float&quot;

3.1.1

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

Incompatible changes
--------------------

* 7808: napoleon: a type for attribute are represented as typed field

Features added
--------------

* 7807: autodoc: Show detailed warning when type_comment is mismatched with its
signature

Bugs fixed
----------

* 7808: autodoc: Warnings raised on variable and attribute type annotations
* 7802: autodoc: EOFError is raised on parallel build
* 7821: autodoc: TypeError is raised for overloaded C-ext function
* 7805: autodoc: an object which descriptors returns is unexpectedly documented
* 7807: autodoc: wrong signature is shown for the function using contextmanager
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7808: napoleon: Warnings raised on variable and attribute type annotations
* 7811: sphinx.util.inspect causes circular import problem

3.1.0

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

Dependencies
------------

* 7746: mathjax: Update to 2.7.5

Incompatible changes
--------------------

* 7477: imgconverter: Invoke &quot;magick convert&quot; command by default on Windows

Deprecated
----------

* The first argument for sphinx.ext.autosummary.generate.AutosummaryRenderer has
been changed to Sphinx object
* ``sphinx.ext.autosummary.generate.AutosummaryRenderer`` takes an object type
as an argument
* The ``ignore`` argument of ``sphinx.ext.autodoc.Documenter.get_doc()``
* The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
AutosummaryRenderer``
* The ``module`` argument of ``sphinx.ext.autosummary.generate.
find_autosummary_in_docstring()``
* The ``builder`` argument of ``sphinx.ext.autosummary.generate.
generate_autosummary_docs()``
* The ``template_dir`` argument of ``sphinx.ext.autosummary.generate.
generate_autosummary_docs()``
* The ``ignore`` argument of ``sphinx.util.docstring.prepare_docstring()``
* ``sphinx.ext.autosummary.generate.AutosummaryRenderer.exists()``
* ``sphinx.util.rpartition()``

Features added
--------------

* LaTeX: Make the ``toplevel_sectioning`` setting optional in LaTeX theme
* LaTeX: Allow to override papersize and pointsize from LaTeX themes
* LaTeX: Add :confval:`latex_theme_options` to override theme options
* 7410: Allow to suppress &quot;circular toctree references detected&quot; warnings using
:confval:`suppress_warnings`
* C, added scope control directives, :rst:dir:`c:namespace`,
:rst:dir:`c:namespace-push`, and :rst:dir:`c:namespace-pop`.
* 2044: autodoc: Suppress default value for instance attributes
* 7473: autodoc: consider a member public if docstring contains
``:meta public:`` in info-field-list
* 7487: autodoc: Allow to generate docs for singledispatch functions by
py:autofunction
* 7143: autodoc: Support final classes and methods
* 7384: autodoc: Support signatures defined by ``__new__()``, metaclasses and
builtin base classes
* 2106: autodoc: Support multiple signatures on docstring
* 4422: autodoc: Support GenericAlias in Python 3.7 or above
* 3610: autodoc: Support overloaded functions
* 7722: autodoc: Support TypeVar
* 7466: autosummary: headings in generated documents are not translated
* 7490: autosummary: Add ``:caption:`` option to autosummary directive to set a
caption to the toctree
* 7469: autosummary: Support module attributes
* 248, 6040: autosummary: Add ``:recursive:`` option to autosummary directive
to generate stub files recursively
* 4030: autosummary: Add :confval:`autosummary_context` to add template
variables for custom templates
* 7530: html: Support nested &lt;kbd&gt; elements
* 7481: html theme: Add right margin to footnote/citation labels
* 7482, 7717: html theme: CSS spacing for code blocks with captions and line
numbers
* 7443: html theme: Add new options :confval:`globaltoc_collapse` and
:confval:`globaltoc_includehidden` to control the behavior of globaltoc in
sidebar
* 7484: html theme: Avoid clashes between sidebar and other blocks
* 7476: html theme: Relbar breadcrumb should contain current page
* 7506: html theme: A canonical URL is not escaped
* 7533: html theme: Avoid whitespace at the beginning of genindex.html
* 7541: html theme: Add a &quot;clearer&quot; at the end of the &quot;body&quot;
* 7542: html theme: Make admonition/topic/sidebar scrollable
* 7543: html theme: Add top and bottom margins to tables
* 7695: html theme: Add viewport meta tag for basic theme
* 7721: html theme: classic: default codetextcolor/codebgcolor doesn&#39;t override
Pygments 
* C and C++: allow semicolon in the end of declarations.
* C++, parse parameterized noexcept specifiers.
* 7294: C++, parse expressions with user-defined literals.
* C++, parse trailing return types.
* 7143: py domain: Add ``:final:`` option to :rst:dir:`py:class:`,
:rst:dir:`py:exception:` and :rst:dir:`py:method:` directives
* 7596: py domain: Change a type annotation for variables to a hyperlink
* 7770: std domain: :rst:dir:`option` directive support arguments in the form
of ``foo[=bar]``
* 7582: napoleon: a type for attribute are represented like type annotation
* 7734: napoleon: overescaped trailing underscore on attribute
* 7247: linkcheck: Add :confval:`linkcheck_request_headers` to send custom HTTP
headers for specific host
* 7792: setuptools: Support ``--verbosity`` option
* 7683: Add ``allowed_exceptions`` parameter to ``Sphinx.emit()`` to allow
handlers to raise specified exceptions
* 7295: C++, parse (trailing) requires clauses.

Bugs fixed
----------

* 6703: autodoc: incremental build does not work for imported objects
* 7564: autodoc: annotations not to be shown for descriptors
* 6588: autodoc: Decorated inherited method has no documentation
* 7469: autodoc: The change of autodoc-process-docstring for variables is
cached unexpectedly
* 7559: autodoc: misdetects a sync function is async
* 6857: autodoc: failed to detect a classmethod on Enum class
* 7562: autodoc: a typehint contains spaces is wrongly rendered under
autodoc_typehints=&#39;description&#39; mode
* 7551: autodoc: failed to import nested class
* 7362: autodoc: does not render correct signatures for built-in functions
* 7654: autodoc: ``Optional[Union[foo, bar]]`` is presented as
``Union[foo, bar, None]``
* 7629: autodoc: autofunction emits an unfriendly warning if an invalid object
specified
* 7650: autodoc: undecorated signature is shown for decorated functions
* 7676: autodoc: typo in the default value of autodoc_member_order
* 7676: autodoc: wrong value for :member-order: option is ignored silently
* 7676: autodoc: member-order=&quot;bysource&quot; does not work for C module
* 3673: autodoc: member-order=&quot;bysource&quot; does not work for a module having
__all__
* 7668: autodoc: wrong retann value is passed to a handler of
autodoc-proccess-signature
* 7711: autodoc: fails with ValueError when processing numpy objects
* 7791: autodoc: TypeError is raised on documenting singledispatch function
* 7551: autosummary: a nested class is indexed as non-nested class
* 7661: autosummary: autosummary directive emits warnings twices if failed to
import the target module
* 7685: autosummary: The template variable &quot;members&quot; contains imported members
even if :confval:`autossummary_imported_members` is False
* 7671: autosummary: The location of import failure warning is missing
* 7535: sphinx-autogen: crashes when custom template uses inheritance
* 7536: sphinx-autogen: crashes when template uses i18n feature
* 7781: sphinx-build: Wrong error message when outdir is not directory
* 7653: sphinx-quickstart: Fix multiple directory creation for nested relpath
* 2785: html: Bad alignment of equation links
* 7718: html theme: some themes does not respect background color of Pygments
style (agogo, haiku, nature, pyramid, scrolls, sphinxdoc and traditional)
* 7544: html theme: inconsistent padding in admonitions
* 7581: napoleon: bad parsing of inline code in attribute docstrings
* 7628: imgconverter: runs imagemagick once unnecessary for builders not
supporting images
* 7610: incorrectly renders consecutive backslashes for docutils-0.16
* 7646: handle errors on event handlers
* 4187: LaTeX: EN DASH disappears from PDF bookmarks in Japanese documents
* 7701: LaTeX: Anonymous indirect hyperlink target causes duplicated labels
* 7723: LaTeX: pdflatex crashed when URL contains a single quote
* 7756: py domain: The default value for positional only argument is not shown
* 7760: coverage: Add :confval:`coverage_show_missing_items` to show coverage
result to console
* C++, fix rendering and xrefs in nested names explicitly starting
in global scope, e.g., ``::A::B``.
* C, fix rendering and xrefs in nested names explicitly starting
in global scope, e.g., ``.A.B``.
* 7763: C and C++, don&#39;t crash during display stringification of unary
expressions and fold expressions.

3.0.4

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

Bugs fixed
----------

* 7567: autodoc: parametrized types are shown twice for generic types
* 7637: autodoc: system defined TypeVars are shown in Python 3.9
* 7696: html: Updated jQuery version from 3.4.1 to 3.5.1 for security reasons
* 7611: md5 fails when OpenSSL FIPS is enabled
* 7626: release package does not contain ``CODE_OF_CONDUCT``

3.0.3

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

Features added
--------------

* C, parse array declarators with static, qualifiers, and VLA specification.

Bugs fixed
----------

* 7516: autodoc: crashes if target object raises an error on accessing
its attributes

3.0.2

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

Features added
--------------

* C, parse attributes and add :confval:`c_id_attributes`
and :confval:`c_paren_attributes` to support user-defined attributes.

Bugs fixed
----------

* 7461: py domain: fails with IndexError for empty tuple in type annotation
* 7510: py domain: keyword-only arguments are documented as having a default of
None
* 7418: std domain: :rst:role:`term` role could not match case-insensitively
* 7461: autodoc: empty tuple in type annotation is not shown correctly
* 7479: autodoc: Sphinx builds has been slower since 3.0.0 on mocking
* C++, fix spacing issue in east-const declarations.
* 7414: LaTeX: Xindy language options were incorrect
* sphinx crashes with ImportError on python3.5.1

3.0.1

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

Incompatible changes
--------------------

* 7418: std domain: :rst:dir:`term` role becomes case sensitive

Bugs fixed
----------

* 7428: py domain: a reference to class ``None`` emits a nitpicky warning
* 7445: py domain: a return annotation ``None`` in the function signature is
not converted to a hyperlink when using intersphinx
* 7418: std domain: duplication warning for glossary terms is case insensitive
* 7438: C++, fix merging overloaded functions in parallel builds.
* 7422: autodoc: fails with ValueError when using autodoc_mock_imports
* 7435: autodoc: ``autodoc_typehints=&#39;description&#39;`` doesn&#39;t suppress typehints
in signature for classes/methods
* 7451: autodoc: fails with AttributeError when an object returns non-string
object as a ``__doc__`` member
* 7423: crashed when giving a non-string object to logger
* 7479: html theme: Do not include xmlns attribute with HTML 5 doctype
* 7426: html theme: Escape some links in HTML templates

3.0.0

* 7364: autosummary: crashed when :confval:`autosummary_generate` is False
* 7370: autosummary: raises UnboundLocalError when unknown module given
* 7367: C++, alternate operator spellings are now supported.
* C, alternate operator spellings are now supported.
* 7368: C++, comma operator in expressions, pack expansion in template
argument lists, and more comprehensive error messages in some cases.
* C, C++, fix crash and wrong duplicate warnings related to anon symbols.
* 6477: Escape first &quot;!&quot; in a cross reference linking no longer possible
* 7219: py domain: The index entry generated by ``py:function`` directive is
different with one from ``index`` directive with &quot;builtin&quot; type
* 7301: capital characters are not allowed for node_id
* 7301: epub: duplicated node_ids are generated
* 6564: html: a width of table was ignored on HTML builder
* 7401: Incorrect argument is passed for :event:`env-get-outdated` handlers
* 7355: autodoc: a signature of cython-function is not recognized well
* 7222: autodoc: ``__wrapped__`` functions are not documented correctly
* 7409: intersphinx: ValueError is raised when an extension sets up
:confval:`intersphinx_mapping` on :event:`config-inited` event
* 7343: Sphinx builds has been slower since 2.4.0 on debug mode

3.0.0b1

* C++, fix cross reference lookup in certain cases involving
function overloads.
* 5078: C++, fix cross reference lookup when a directive contains multiple
declarations.
* C++, suppress warnings for directly dependent typenames in cross references
generated automatically in signatures.
* 5637: autodoc: Incorrect handling of nested class names on show-inheritance
* 7267: autodoc: error message for invalid directive options has wrong location
* 7329: autodoc: info-field-list is wrongly generated from type hints into the
class description even if ``autoclass_content=&#39;class&#39;`` set
* 7331: autodoc: a cython-function is not recognized as a function
* 5637: inheritance_diagram: Incorrect handling of nested class names
* 7139: ``code-block:: guess`` does not work
* 7325: html: source_suffix containing dot leads to wrong source link
* 7357: html: Resizing SVG image fails with ValueError
* 7278: html search: Fix use of ``html_file_suffix`` instead of
``html_link_suffix`` in search results
* 7297: html theme: ``bizstyle`` does not support ``sidebarwidth``
* 3842: singlehtml: Path to images broken when master doc is not in source root
* 7179: std domain: Fix whitespaces are suppressed on referring GenericObject
* 7289: console: use bright colors instead of bold
* 1539: C, parse array types.
* 2377: C, parse function pointers even in complex types.
* 7345: sphinx-build: Sphinx crashes if output directory exists as a file
* 7290: sphinx-build: Ignore bdb.BdbQuit when handling exceptions
* 6240: napoleon: Attributes and Methods sections ignore :noindex: option

2.4.4

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

Bugs fixed
----------

* 7197: LaTeX: platex cause error to build image directive with target url
* 7223: Sphinx builds has been slower since 2.4.0

2.4.3

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

Bugs fixed
----------

* 7184: autodoc: ``*args`` and ``**kwarg`` in type comments are not handled
properly
* 7189: autodoc: classmethod coroutines are not detected
* 7183: intersphinx: ``:attr:`` reference to property is broken
* 6244, 6387: html search: Search breaks/hangs when built with dirhtml builder
* 7195: todo: emit doctree-resolved event with non-document node incorrectly

2.4.2

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

Bugs fixed
----------

* 7138: autodoc: ``autodoc.typehints`` crashed when variable has unbound object
as a value
* 7156: autodoc: separator for keyword only arguments is not shown
* 7146: autodoc: IndexError is raised on suppressed type_comment found
* 7161: autodoc: typehints extension does not support parallel build
* 7178: autodoc: TypeError is raised on fetching type annotations
* 7151: crashed when extension assigns a value to ``env.indexentries``
* 7170: text: Remove debug print
* 7137: viewcode: Avoid to crash when non-python code given

2.4.1

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

Bugs fixed
----------

* 7120: html: crashed when on scaling SVG images which have float dimensions
* 7126: autodoc: TypeError: &#39;getset_descriptor&#39; object is not iterable

2.4.0

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

Deprecated
----------

* The ``decode`` argument of ``sphinx.pycode.ModuleAnalyzer()``
* ``sphinx.directives.other.Index``
* ``sphinx.environment.temp_data[&#39;gloss_entries&#39;]``
* ``sphinx.environment.BuildEnvironment.indexentries``
* ``sphinx.environment.collectors.indexentries.IndexEntriesCollector``
* ``sphinx.ext.apidoc.INITPY``
* ``sphinx.ext.apidoc.shall_skip()``
* ``sphinx.io.FiletypeNotFoundError``
* ``sphinx.io.get_filetype()``
* ``sphinx.pycode.ModuleAnalyzer.encoding``
* ``sphinx.roles.Index``
* ``sphinx.util.detect_encoding()``
* ``sphinx.util.get_module_source()``
* ``sphinx.util.inspect.Signature``
* ``sphinx.util.inspect.safe_getmembers()``
* ``sphinx.writers.latex.LaTeXTranslator.settings.author``
* ``sphinx.writers.latex.LaTeXTranslator.settings.contentsname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docclass``
* ``sphinx.writers.latex.LaTeXTranslator.settings.docname``
* ``sphinx.writers.latex.LaTeXTranslator.settings.title``
* ``sphinx.writers.latex.ADDITIONAL_SETTINGS``
* ``sphinx.writers.latex.DEFAULT_SETTINGS``
* ``sphinx.writers.latex.LUALATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.PDFLATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_DEFAULT_FONTPKG``
* ``sphinx.writers.latex.XELATEX_GREEK_DEFAULT_FONTPKG``

Features added
--------------

* 6910: inheritance_diagram: Make the background of diagrams transparent
* 6446: duration: Add ``sphinx.ext.durations`` to inspect which documents slow
down the build
* 6837: LaTeX: Support a nested table
* 7115: LaTeX: Allow to override LATEXOPTS and LATEXMKOPTS via environment
variable
* 6966: graphviz: Support ``:class:`` option
* 6696: html: ``:scale:`` option of image/figure directive not working for SVG
images (imagesize-1.2.0 or above is required)
* 6994: imgconverter: Support illustrator file (.ai) to .png conversion
* autodoc: Support Positional-Only Argument separator (PEP-570 compliant)
* autodoc: Support type annotations for variables
* 2755: autodoc: Add new event: :event:`autodoc-before-process-signature`
* 2755: autodoc: Support type_comment style (ex. `` type: (str) -&gt; str``)
annotation (python3.8+ or `typed_ast &lt;https://github.com/python/typed_ast&gt;`_
is required)
* 7051: autodoc: Support instance variables without defaults (PEP-526)
* 6418: autodoc: Add a new extension ``sphinx.ext.autodoc.typehints``. It shows
typehints as object description if ``autodoc_typehints = &quot;description&quot;`` set.
This is an experimental extension and it will be integrated into autodoc core
in Sphinx-3.0
* SphinxTranslator now calls visitor/departure method for super node class if
visitor/departure method for original node class not found
* 6418: Add new event: :event:`object-description-transform`
* py domain: :rst:dir:`py:data` and :rst:dir:`py:attribute` take new options
named ``:type:`` and ``:value:`` to describe its type and initial value
* 6785: py domain: ``:py:attr:`` is able to refer properties again
* 6772: apidoc: Add ``-q`` option for quiet mode

Bugs fixed
----------

* 6925: html: Remove redundant type=&quot;text/javascript&quot; from &lt;script&gt; elements
* 7112: html: SVG image is not layouted as float even if aligned
* 6906, 6907: autodoc: failed to read the source codes encoeded in cp1251
* 6961: latex: warning for babel shown twice
* 7059: latex: LaTeX compilation falls into infinite loop (wrapfig issue)
* 6581: latex: ``:reversed:`` option for toctree does not effect to LaTeX build
* 6559: Wrong node-ids are generated in glossary directive
* 6986: apidoc: misdetects module name for .so file inside module
* 6899: apidoc: private members are not shown even if ``--private`` given
* 6327: apidoc: Support a python package consisted of __init__.so file
* 6999: napoleon: fails to parse tilde in :exc: role
* 7019: gettext: Absolute path used in message catalogs
* 7023: autodoc: nested partial functions are not listed
* 7023: autodoc: partial functions imported from other modules are listed as
module members without :impoprted-members: option
* 6889: autodoc: Trailing comma in ``:members::`` option causes cryptic warning
* 6568: autosummary: ``autosummary_imported_members`` is ignored on generating
a stub file for submodule
* 7055: linkcheck: redirect is treated as an error
* 7088: HTML template: If ``navigation_with_keys`` option is activated,
modifier keys are ignored, which means the feature can interfere with browser
features
* 7090: std domain: Can&#39;t assign numfig-numbers for custom container nodes
* 7106: std domain: enumerated nodes are marked as duplicated when extensions
call ``note_explicit_target()``
* 7095: dirhtml: Cross references are broken via intersphinx and ``:doc:`` role
* C++:

- Don&#39;t crash when using the ``struct`` role in some cases.
- Don&#39;t warn when using the ``var``/``member`` role for function
 parameters.
- Render call and braced-init expressions correctly.
* 7097: Filenames of images generated by
``sphinx.transforms.post_transforms.images.ImageConverter``
or its subclasses (used for latex build) are now sanitized,
to prevent broken paths

2.3.1

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

Bugs fixed
----------

* 6936: sphinx-autogen: raises AttributeError

2.3.0

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

Incompatible changes
--------------------

* 6742: ``end-before`` option of :rst:dir:`literalinclude` directive does not
match the first line of the code block.
* 1331: Change default User-Agent header to ``&quot;Sphinx/X.Y.Z requests/X.Y.Z
python/X.Y.Z&quot;``.  It can be changed via :confval:`user_agent`.
* 6867: text: content of admonitions starts after a blank line

Deprecated
----------

* ``sphinx.builders.gettext.POHEADER``
* ``sphinx.io.SphinxStandaloneReader.app``
* ``sphinx.io.SphinxStandaloneReader.env``
* ``sphinx.util.texescape.tex_escape_map``
* ``sphinx.util.texescape.tex_hl_escape_map_new``
* ``sphinx.writers.latex.LaTeXTranslator.no_contractions``

Features added
--------------

* 6707: C++, support bit-fields.
* 267: html: Eliminate prompt characters of doctest block from copyable text
* 6548: html: Use favicon for OpenSearch if available
* 6729: html theme: agogo theme now supports ``rightsidebar`` option
* 6780: Add PEP-561 Support
* 6762: latex: Allow to load additional LaTeX packages via ``extrapackages`` key
of :confval:`latex_elements`
* 1331: Add new config variable: :confval:`user_agent`
* 6000: LaTeX: have backslash also be an inline literal word wrap break
character
* 4186: LaTeX: Support upLaTeX as a new :confval:`latex_engine` (experimental)
* 6812: Improve a warning message when extensions are not parallel safe
* 6818: Improve Intersphinx performance for multiple remote inventories.
* 2546: apidoc: .so file support
* 6798: autosummary: emit ``autodoc-skip-member`` event on generating stub file
* 6483: i18n: make explicit titles in toctree translatable
* 6816: linkcheck: Add :confval:`linkcheck_auth` option to provide
authentication information when doing ``linkcheck`` builds
* 6872: linkcheck: Handles HTTP 308 Permanent Redirect
* 6613: html: Wrap section number in span tag
* 6781: gettext: Add :confval:`gettext_last_translator&#39; and
:confval:`gettext_language_team` to customize headers of POT file

Bugs fixed
----------

* 6668: LaTeX: Longtable before header has incorrect distance
(refs: `latex3/latex2e173`_)

.. _latex3/latex2e173: https://github.com/latex3/latex2e/issues/173
* 6618: LaTeX: Avoid section names at the end of a page
* 6738: LaTeX: Do not replace unicode characters by LaTeX macros on unicode
supported LaTeX engines: ¶, §, €, ∞, ±, →, ‣, –, superscript and subscript
digits go through &quot;as is&quot; (as default OpenType font supports them)
* 6704: linkcheck: Be defensive and handle newly defined HTTP error code
* 6806: linkcheck: Failure on parsing content
* 6655: image URLs containing ``data:`` causes gettext builder crashed
* 6584: i18n: Error when compiling message catalogs on Hindi
* 6718: i18n: KeyError is raised if section title and table title are same
* 6743: i18n: :confval:`rst_prolog` breaks the translation
* 6708: mathbase: Some deprecated functions have removed
* 6709: autodoc: mock object does not work as a class decorator
* 5070: epub: Wrong internal href fragment links
* 6712: Allow not to install sphinx.testing as runtime (mainly for ALT Linux)
* 6741: html: search result was broken with empty :confval:`html_file_suffix`
* 6001: LaTeX does not wrap long code lines at backslash character
* 6804: LaTeX: PDF build breaks if admonition of danger type contains
code-block long enough not to fit on one page
* 6809: LaTeX: code-block in a danger type admonition can easily spill over
bottom of page
* 6793: texinfo: Code examples broken following &quot;sidebar&quot;
* 6813: An orphan warning is emitted for included document on Windows.  Thanks
to drillan
* 6850: Fix smartypants module calls re.sub() with wrong options
* 6824: HTML search: If a search term is partially matched in the title and
fully matched in a text paragraph on the same page, the search does not
include this match.
* 6848: config.py shouldn&#39;t pop extensions from overrides
* 6867: text: extra spaces are inserted to hyphenated words on folding lines
* 6886: LaTeX: xelatex converts straight double quotes into right curly ones
(shows when :confval:`smartquotes` is ``False``)
* 6890: LaTeX: even with smartquotes off, PDF output transforms straight
quotes and consecutive hyphens into curly quotes and dashes
* 6876: LaTeX: multi-line display of authors on title page has ragged edges
* 6887: Sphinx crashes with docutils-0.16b0
* 6920: sphinx-build: A console message is wrongly highlighted
* 6900: sphinx-build: ``-D`` option does not considers ``0`` and ``1`` as a
boolean value

2.2.2

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

Incompatible changes
--------------------

* 6803: For security reason of python, parallel mode is disabled on macOS and
Python3.8+

Bugs fixed
----------

* 6776: LaTeX: 2019-10-01 LaTeX release breaks :file:`sphinxcyrillic.sty`
* 6815: i18n: French, Hindi, Chinese, Japanese and Korean translation messages
has been broken
* 6803: parallel build causes AttributeError on macOS and Python3.8

</details>

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sphinx
  • Changelog: https://pyup.io/changelogs/sphinx/
  • Homepage: http://sphinx-doc.org/ </details>

Update releases from 1.6.1 to 1.6.3.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/releases
  • Changelog: https://pyup.io/changelogs/releases/
  • Repo: https://github.com/bitprophet/releases </details>

Update sphinx-rtd-theme from 0.4.3 to 0.5.0.

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

<details> <summary>Links</summary>

  • PyPI: https://pypi.org/project/sphinx-rtd-theme
  • Repo: https://github.com/rtfd/sphinx_rtd_theme/ </details>
+3 -3

1 comment

1 changed file

pyup-bot

pr closed time in 4 hours

pull request commentunbit/django-uwsgi

Scheduled daily dependency update on Tuesday

Closing this in favor of #750

pyup-bot

comment created time in 4 hours

PR opened unbit/django-uwsgi

Scheduled daily dependency update on Wednesday

Update sphinx from 2.2.1 to 3.2.1.

<details> <summary>Changelog</summary>

3.2.1

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

Features added
--------------

* 8095: napoleon: Add :confval:`napoleon_preprocess_types` to enable the type
preprocessor for numpy style docstrings
* 8114: C and C++, parse function attributes after parameters and qualifiers.

Bugs fixed
----------

* 8074: napoleon: Crashes during processing C-ext module
* 8088: napoleon: &quot;Inline literal start-string without end-string&quot; warning in
Numpy style Parameters section
* 8084: autodoc: KeyError is raised on documenting an attribute of the broken
class
* 8091: autodoc: AttributeError is raised on documenting an attribute on Python
3.5.2
* 8099: autodoc: NameError is raised when target code uses ``TYPE_CHECKING``
* C++, fix parsing of template template paramters, broken by the fix of 7944

3.2.0

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

Deprecated
----------

* ``sphinx.ext.autodoc.members_set_option()``
* ``sphinx.ext.autodoc.merge_special_members_option()``
* ``sphinx.writers.texinfo.TexinfoWriter.desc``
* C, parsing of pre-v3 style type directives and roles, along with the options
:confval:`c_allow_pre_v3` and :confval:`c_warn_on_allowed_pre_v3`.

Features added
--------------

* 2076: autodoc: Allow overriding of exclude-members in skip-member function
* 8034: autodoc: ``:private-member:`` can take an explicit list of member names
to be documented
* 2024: autosummary: Add :confval:`autosummary_filename_map` to avoid conflict
of filenames between two object with different case
* 8011: autosummary: Support instance attributes as a target of autosummary
directive
* 7849: html: Add :confval:`html_codeblock_linenos_style` to change the style
of line numbers for code-blocks
* 7853: C and C++, support parameterized GNU style attributes.
* 7888: napoleon: Add aliases Warn and Raise.
* 7690: napoleon: parse type strings and make them hyperlinks as possible.  The
conversion rule can be updated via :confval:`napoleon_type_aliases`
* 8049: napoleon: Create a hyperlink for each the type of parameter when
:confval:`napoleon_use_params` is False
* C, added :rst:dir:`c:alias` directive for inserting copies
of existing declarations.
* 7745: html: inventory is broken if the docname contains a space
* 7991: html search: Allow searching for numbers
* 7902: html theme: Add a new option :confval:`globaltoc_maxdepth` to control
the behavior of globaltoc in sidebar
* 7840: i18n: Optimize the dependencies check on bootstrap
* 7768: i18n: :confval:`figure_language_filename` supports ``docpath`` token
* 5208: linkcheck: Support checks for local links
* 5090: setuptools: Link verbosity to distutils&#39; -v and -q option
* 6698: doctest: Add ``:trim-doctest-flags:`` and ``:no-trim-doctest-flags:``
options to doctest, testcode and testoutput directives
* 7052: add ``:noindexentry:`` to the Python, C, C++, and Javascript domains.
Update the documentation to better reflect the relationship between this option
and the ``:noindex:`` option.
* 7899: C, add possibility of parsing of some pre-v3 style type directives and
roles and try to convert them to equivalent v3 directives/roles.
Set the new option :confval:`c_allow_pre_v3` to ``True`` to enable this.
The warnings printed from this functionality can be suppressed by setting
:confval:`c_warn_on_allowed_pre_v3`` to ``True``.
The functionality is immediately deprecated.
* 7999: C, add support for named variadic macro arguments.
* 8071: Allow to suppress &quot;self referenced toctrees&quot; warning

Bugs fixed
----------

* 7886: autodoc: TypeError is raised on mocking generic-typed classes
* 7935: autodoc: function signature is not shown when the function has a
parameter having ``inspect._empty`` as its default value
* 7901: autodoc: type annotations for overloaded functions are not resolved
* 904: autodoc: An instance attribute cause a crash of autofunction directive
* 1362: autodoc: ``private-members`` option does not work for class attributes
* 7983: autodoc: Generator type annotation is wrongly rendered in py36
* 8030: autodoc: An uninitialized annotated instance variable is not documented
when ``:inherited-members:`` option given
* 8032: autodoc: A type hint for the instance variable defined at parent class
is not shown in the document of the derived class
* 8041: autodoc: An annotated instance variable on super class is not
documented when derived class has other annotated instance variables
* 7839: autosummary: cannot handle umlauts in function names
* 7865: autosummary: Failed to extract summary line when abbreviations found
* 7866: autosummary: Failed to extract correct summary line when docstring
contains a hyperlink target
* 7469: autosummary: &quot;Module attributes&quot; header is not translatable
* 7940: apidoc: An extra newline is generated at the end of the rst file if a
module has submodules 
* 4258: napoleon: decorated special methods are not shown
* 7799: napoleon: parameters are not escaped for combined params in numpydoc
* 7780: napoleon: multiple paramaters declaration in numpydoc was wrongly
recognized when napoleon_use_params=True
* 7715: LaTeX: ``numfig_secnum_depth &gt; 1`` leads to wrong figure links
* 7846: html theme: XML-invalid files were generated
* 7894: gettext: Wrong source info is shown when using rst_epilog
* 7691: linkcheck: HEAD requests are not used for checking
* 4888: i18n: Failed to add an explicit title to ``:ref:`` role on translation
* 7928: py domain: failed to resolve a type annotation for the attribute
* 8008: py domain: failed to parse a type annotation containing ellipsis
* 7994: std domain: option directive does not generate old node_id compatible
with 2.x or older
* 7968: i18n: The content of ``math`` directive is interpreted as reST on
translation
* 7768: i18n: The ``root`` element for :confval:`figure_language_filename` is
not a path that user specifies in the document
* 7993: texinfo: TypeError is raised for nested object descriptions
* 7993: texinfo: a warning not supporting desc_signature_line node is shown
* 7869: :rst:role:`abbr` role without an explanation will show the explanation
from the previous abbr role
* 8048: graphviz: graphviz.css was copied on building non-HTML document
* C and C++, removed ``noindex`` directive option as it did
nothing.
* 7619: Duplicated node IDs are generated if node has multiple IDs
* 2050: Symbols sections are appeared twice in the index page
* 8017: Fix circular import in sphinx.addnodes
* 7986: CSS: make &quot;highlight&quot; selector more robust
* 7944: C++, parse non-type template parameters starting with
a dependent qualified name.
* C, don&#39;t deepcopy the entire symbol table and make a mess every time an
enumerator is handled.

3.1.2

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

Incompatible changes
--------------------

* 7650: autodoc: the signature of base function will be shown for decorated
functions, not a signature of decorator

Bugs fixed
----------

* 7844: autodoc: Failed to detect module when relative module name given
* 7856: autodoc: AttributeError is raised when non-class object is given to
the autoclass directive
* 7850: autodoc: KeyError is raised for invalid mark up when autodoc_typehints
is &#39;description&#39;
* 7812: autodoc: crashed if the target name matches to both an attribute and
module that are same name
* 7650: autodoc: function signature becomes ``(*args, **kwargs)`` if the
function is decorated by generic decorator
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7806: viewcode: Failed to resolve viewcode references on 3rd party builders
* 7838: html theme: List items have extra vertical space
* 7878: html theme: Undesired interaction between &quot;overflow&quot; and &quot;float&quot;

3.1.1

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

Incompatible changes
--------------------

* 7808: napoleon: a type for attribute are represented as typed field

Features added
--------------

* 7807: autodoc: Show detailed warning when type_comment is mismatched with its
signature

Bugs fixed
----------

* 7808: autodoc: Warnings raised on variable and attribute type annotations
* 7802: autodoc: EOFError is raised on parallel build
* 7821: autodoc: TypeError is raised for overloaded C-ext function
* 7805: autodoc: an object which descriptors returns is unexpectedly documented
* 7807: autodoc: wrong signature is shown for the function using contextmanager
* 7812: autosummary: generates broken stub files if the target code contains
an attribute and module that are same name
* 7808: napoleon: Warnings raised on variable and attribute type annotations
* 7811: sphinx.util.inspect causes circular import problem

3.1.0

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

Dependencies
------------

* 7746: mathjax: Update to 2.7.5

Incompatible changes
--------------------

* 7477: imgconverter: Invoke &qu