Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Initial Update #30

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

Initial Update #30

wants to merge 5 commits into from

Conversation

pyup-bot
Copy link

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

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

Update CherryPy from 3.8.0 to 18.6.0.

Changelog

18.6.0

-------

* :issue:`1776` via :pr:`1851`: Add support for UTF-8 encoded attachment
file names in ``Content-Disposition`` header via :rfc:`6266appendix-D`.

18.5.0

-------

* :issue:`1827`: Fixed issue where bytes values in a ``HeaderMap``
would be converted to strings.

* :pr:`1826`: Rely on
`jaraco.collections <https://pypi.org/project/jaraco.collections>`_
for its case-insensitive dictionary support.

18.4.0

-------

* :pr:`1715`: Fixed issue in cpstats where the ``data/`` endpoint
would fail with encoding errors on Python 3.

* :pr:`1821`: Simplify the passthrough of parameters to
``CPWebCase.getPage`` to cheroot. CherryPy now requires
cheroot 8.2.1 or later.

18.3.0

-------

* :pr:`1806`: Support handling multiple exceptions when processing hooks as
reported in :issue:`1770`.

18.2.0

-------

* File-based sessions no longer attempt to remove the lock files
when releasing locks, instead deferring to the default behavior
of zc.lockfile. Fixes :issue:`1391` and :issue:`1779`.

* :pr:`1794`: Add native support for ``308 Permanent Redirect``
usable via ``raise cherrypy.HTTPRedirect('/new_uri', 308)``.

18.1.2

-------

* Fixed :issue:`1377` via :pr:`1785`: Restore a native WSGI-less
HTTP server support.
* :pr:`1769`: Reduce log level for non-error events in win32.py

18.1.1

-------

* :pr:`1774` reverts :pr:`1759` as new evidence emerged that
the original behavior was intentional. Re-opens :issue:`1758`.

18.1.0

-------

* :issue:`1758` via :pr:`1759`: In the bus, when awaiting a
state change, only publish after the state has changed.

18.0.1

-------

* :issue:`1738` via :pr:`1736`: Restore support for 'bytes'
in response headers.

* Substantial removal of Python 2 compatibility code.

18.0.0

-------

* :issue:`1730`: Drop support for Python 2.7. CherryPy 17 will
remain an LTS release for bug and security fixes.

* Drop support for Python 3.4.

17.4.2

-------

* Fixed :issue:`1377` by backporting :pr:`1785` via :pr:`1786`:
Restore a native WSGI-less HTTP server support.

17.4.1

-------

* :issue:`1738` via :pr:`1755`: Restore support for 'bytes'
in response headers (backport from v18.0.1).

17.4.0

-------

* :commit:`a95e619f`: When setting Response Body, reject Unicode
values, making behavior on Python 2 same as on Python 3.

* Other inconsequential refactorings.

17.3.0

-------

* :issue:`1193` via :pr:`1729`: Rely on zc.lockfile for
session concurrency support.

17.2.0

-------

* :issue:`1690` via :pr:`1692`: Prevent orphaned Event object in cached
304 response.

17.1.0

-------

* :issue:`1694` via :pr:`1695`: Add support for accepting uploaded files
with non-ascii filenames per RFC 5987.

17.0.0

-------

* :issue:`1673`: CherryPy now allows namespace packages for
its dependencies. Environments that cannot handle namespace
packgaes like py2exe will need to add such support or pin to
older CherryPy versions.

16.0.3

-------

* :issue:`1722`: Pinned the ``tempora`` dependency against
version 1.13 to avoid pulling in namespace packages.

16.0.2

-------

* :issue:`1716` via :pr:`1717`: Fixed handling of url-encoded parameters
in digest authentication handling, correcting regression in v14.2.0.

* :issue:`1719` via :commit:`1d41828`: Digest-auth tool will now return
a status code of 401 for when a scheme other than 'digest' is
indicated.

16.0.0

-------

* :issue:`1688` via :commit:`38ad1da`: Removed  ``basic_auth`` and
``digest_auth`` tools and the ``httpauth`` module, which have been
officially deprecated earlier in v14.0.0.

* Removed deprecated properties:

- ``cherrypy._cpreqbody.Entity.type`` deprecated in favor of
 :py:attr:`cherrypy._cpreqbody.Entity.content_type`

- ``cherrypy._cprequest.Request.body_params`` deprecated in favor of
 :py:attr:`cherrypy._cprequest.RequestBody.params`

* :issue:`1377`: In _cp_native server, set ``req.status`` using bytes
(fixed in :pr:`1712`).

* :issue:`1697` via :commit:`841f795`: Fixed error on Python 3.7 with
AutoReloader when ``__file__`` is ``None``.

* :issue:`1713` via :commit:`15aa80d`: Fix warning emitted during
test run.

* :issue:`1370` via :commit:`38f199c`: Fail with HTTP 400 for invalid
headers.

15.0.0

-------

* :issue:`1708`: Removed components from webtest that were
removed in the refactoring of cheroot.test.webtest for
cheroot 6.1.0.

14.2.0

-------

* :issue:`1680` via :pr:`1683`: Basic Auth and Digest Auth
tools now support :rfc:`7617` UTF-8 charset decoding where
possible, using latin-1 as a fallback.

14.1.0

-------

* :cr-pr:`37`: Add support for peercreds lookup over UNIX domain socket.
This enables app to automatically identify "who's on the other
end of the wire".

This is how you enable it::

 server.peercreds: True
 server.peercreds_resolve: True

The first option will put remote numeric data to WSGI env vars:
app's PID, user's id and group.

Second option will resolve that into user and group names.

To prevent expensive syscalls, data is cached on per connection
basis.

14.0.1

-------

* :issue:`1700`: Improve windows pywin32 dependency declaration via
conditional extras.

14.0.0

-------

* :issue:`1688`: Officially deprecated ``basic_auth`` and ``digest_auth``
tools and the ``httpauth`` module, triggering DeprecationWarnings
if they're used. Applications should instead adapt to use the
more recent ``auth_basic`` and ``auth_digest`` tools.
This deprecated functionality will be removed in a subsequent
release soon.
* Removed ``DeprecatedTool`` and the long-deprecated and disabled
``tidy`` and ``nsgmls`` tools. See `the rationale
<https://github.com/cherrypy/cherrypy/pull/1689issuecomment-362924962>`_
for this change.

13.1.0

-------

* :issue:`1231` via :pr:`1654`: CaseInsensitiveDict now re-uses the
generalized functionality from ``jaraco.collections`` to
provide a more complete interface for a CaseInsensitiveDict
and HeaderMap.

Users are encouraged to use the implementation from
`jaraco.collections <https://pypi.org/project/jaraco.collections>`_
except when dealing with headers in CherryPy.

13.0.1

-------

* :pr:`1671`: Restore support for installing CherryPy into
environments hostile to namespace packages, broken since
the 11.1.0 release.

13.0.0

-------

* :issue:`1666`: Drop support for Python 3.3.

12.0.2

-------

* :issue:`1665`: In request processing, when an invalid cookie is
received, render the actual error message reported rather
than guessing (sometimes incorrectly) what error occurred.

12.0.1

-------

* Fixed issues importing :py:mod:`cherrypy.test.webtest` (by creating
a module and importing classes from :py:mod:`cheroot`) and added a
corresponding :py:class:`DeprecationWarning`.

12.0.0

-------

* Drop support for Python 3.1 and 3.2.

* :issue:`1625`: Removed response timeout and timeout monitor and
related exceptions, as it not possible to interrupt a request.
Servers that wish to exit a request prematurely are
recommended to monitor ``response.time`` and raise an
exception or otherwise act accordingly.

Servers that previously disabled timeouts by invoking
``cherrypy.engine.timeout_monitor.unsubscribe()`` will now
crash. For forward-compatibility with this release on older
versions of CherryPy, disable
timeouts using the config option::

 'engine.timeout_monitor.on': False,

Or test for the presence of the timeout_monitor attribute::

 with contextlib2.suppress(AttributeError):
     cherrypy.engine.timeout_monitor.unsubscribe()

Additionally, the ``TimeoutError`` exception has been removed,
as it's no longer called anywhere. If your application
benefits from this Exception, please comment in the linked
ticket describing the use case, and we'll help devise a
solution or bring the exception back.

11.3.0

-------

* Bump to cheroot 5.9.0.

* ``cherrypy.test.webtest`` module is now merged with the
``cheroot.test.webtest`` module. The CherryPy name is retained
for now for compatibility and will be removed eventually.

11.2.0

-------

* ``cherrypy.engine.subscribe`` now may be called without a
callback, in which case it returns a decorator expecting the
callback.

* :pr:`1656`: Images are now compressed using lossless compression
and consume less space.

11.1.0

-------

* :pr:`1611`: Expose default status logic for a redirect as
``HTTPRedirect.default_status``.

* :pr:`1615`: ``HTTPRedirect.status`` is now an instance property and
derived from the value in ``args``. Although it was previously
possible to set the property on an instance, and this change
prevents that possibilty, CherryPy never relied on that behavior
and we presume no applications depend on that interface.

* :issue:`1627`: Fixed issue in proxy tool where more than one port would
appear in the ``request.base`` and thus in ``cherrypy.url``.

* :pr:`1645`: Added new log format markers:

- ``i`` holds a per-request UUID4
- ``z`` outputs UTC time in format of RFC 3339
- ``cherrypy._cprequest.Request.unique_id.uuid4`` now has lazily
 invocable UUID4

* :issue:`1646`: Improve http status conversion helper.

* :pr:`1638`: Always use backslash for path separator when processing
paths in staticdir.

* :issue:`1190`: Fix gzip, caching, and staticdir tools integration. Makes
cache of gzipped content valid.

* Requires cheroot 5.8.3 or later.

* Also, many improvements around continuous integration and code
quality checks.

This release contained an unintentional regression in environments that
are hostile to namespace packages, such as Pex, Celery, and py2exe.
See :pr:`1671` for details.

11.0.0

-------

* :issue:`1607`: Dropped support for Python 2.6.

10.2.2

-------

* :issue:`1595`: Fixed over-eager normalization of paths in cherrypy.url.

10.2.1

-------

* Remove unintended dependency on ``graphviz`` in Python
2.6.

10.2.0

-------

* :pr:`1580`: ``CPWSGIServer.version`` now reported as
``CherryPy/x.y.z Cheroot/x.y.z``. Bump to cheroot 5.2.0.
* The codebase is now :pep:`8` complaint, flake8 linter is `enabled in TravisCI by
default <https://github.com/cherrypy/cherrypy/commit/b6e752b>`_.
* Max line restriction is now set to 120 for flake8 linter.
* :pep:`257` linter runs as separate allowed failure job in Travis CI.
* A few bugs related to undeclared variables have been fixed.
* ``pre-commit`` testing goes faster due to enabled caching.

10.1.1

-------

* :issue:`1342`: Fix AssertionError on shutdown.

10.1.0

-------

* Bump to cheroot 5.1.0.

* :issue:`794`: Prefer setting max-age for session cookie
expiration, moving MSIE hack into a function
documenting its purpose.

10.0.0

-------

* :issue:`1332`: CherryPy now uses `portend
<https://pypi.org/project/portend>`_ for checking and
waiting on ports for startup and teardown checks. The
following names are no longer present:

- cherrypy._cpserver.client_host
- cherrypy._cpserver.check_port
- cherrypy._cpserver.wait_for_free_port
- cherrypy._cpserver.wait_for_occupied_port
- cherrypy.process.servers.check_port
- cherrypy.process.servers.wait_for_free_port
- cherrypy.process.servers.wait_for_occupied_port

Use this functionality from the portend package directly.

9.0.0

------

* :issue:`1481`: Move functionality from cherrypy.wsgiserver to
the `cheroot 5.0 <https://pypi.org/project/Cheroot/5.0.1/>`_
project.

8.9.1

------

* :issue:`1537`: Restore dependency on pywin32 for Python 3.6.

8.9.0

------

* :pr:`1547`: Replaced ``cherryd`` distutils script with a setuptools
console entry point.

When running CherryPy in daemon mode, the forked process no
longer changes directory to ``/``. If that behavior is something
on which your application relied and should rely, please file
a ticket with the project.

8.8.0

------

* :pr:`1528`: Allow a timeout of 0 to server.

8.7.0

------

* :issue:`645`: Setting a bind port of 0 will bind to an ephemeral port.

8.6.0

------

* :issue:`1538` and :issue:`1090`: Removed cruft from the setup script and
instead rely on `include_package_data
<https://setuptools.readthedocs.io/en/latest/setuptools.html?highlight=include_package_datanew-and-changed-setup-keywords>`_
to ensure the relevant files are included in the package.
Note, this change does cause LICENSE.md no longer to
be included in the installed package.

8.5.0

------

* The pyOpenSSL support is now included on Python 3 builds,
removing the last disparity between Python 2 and Python 3
in the CherryPy package. This change is one small step
in consideration of :issue:`1399`. This change also fixes RPM
builds, as reported in :issue:`1149`.

8.4.0

------

* :issue:`1532`: Also release wheels for Python 2, enabling
offline installation.

8.3.1

------

* :issue:`1537`: Disable dependency on pypiwin32 on Python 3.6
until a viable build of pypiwin32 can be made on that
Python version.

8.3.0

------

* Consolidated some documentation and include the more
concise readme in the package long description, as found
on PyPI.

8.2.0

------

* :issue:`1463`: CherryPy tests are now run under pytest and
invoked using tox.

8.1.3

------

* :issue:`1530`: Fix the issue with TypeError being swallowed by
decorated handlers.

8.1.2

------

* :issue:`1508`

8.1.1

------

* :issue:`1497`: Handle errors thrown by ``ssl_module: 'builtin'``
when client opens connection to HTTPS port using HTTP.

* :issue:`1350`: Fix regression introduced in v6.1.0 where environment
construction for WSGIGateway_u0 was passing one parameter
and not two.

* Other miscellaneous fixes.

8.1.0

------

* :issue:`1473`: ``HTTPError`` now also works as a context manager.

* :issue:`1487`: The sessions tool now accepts a ``storage_class``
parameter, which supersedes the new deprecated
``storage_type`` parameter. The ``storage_class`` should
be the actual Session subclass to be used.

* Releases now use ``setuptools_scm`` to track the release
versions. Therefore, releases can be cut by simply tagging
a commit in the repo. Versions numbers are now stored in
exactly one place.

8.0.1

------

* :issue:`1489` via :pr:`1493`: Additionally reject anything else that's
not bytes.
* :issue:`1492`: systemd socket activation.

8.0.0

------

* :issue:`1483`: Remove Deprecated constructs:

- ``cherrypy.lib.http`` module.
- ``unrepr``, ``modules``, and ``attributes`` in
 ``cherrypy.lib``.

* :pr:`1476`: Drop support for python-memcached<1.58
* :issue:`1401`: Handle NoSSLErrors.
* :issue:`1489`: In ``wsgiserver.WSGIGateway.respond``, the application
must now yield bytes and not text, as the spec requires.
If text is received, it will now raise a ValueError instead
of silently encoding using ISO-8859-1.
* Removed unicode filename from the package, working around
:gh:`pypa/pip3894 <pypa/pip/issues/3894>` and :gh:`pypa/setuptools704
<pypa/setuptools/issues/704>`.

7.1.0

------

* :pr:`1458`: Implement systemd's socket activation mechanism for
CherryPy servers, based on work sponsored by Endless Computers.

Socket Activation allows one to setup a system so that
systemd will sit on a port and start services
'on demand' (a little bit like inetd and xinetd
used to do).

7.0.0

------

Removed the long-deprecated backward compatibility for
legacy config keys in the engine. Use the config for the
namespaced-plugins instead:

- autoreload_on -> autoreload.on
- autoreload_frequency -> autoreload.frequency
- autoreload_match -> autoreload.match
- reload_files -> autoreload.files
- deadlock_poll_frequency -> timeout_monitor.frequency

6.2.1

------

* :issue:`1460`: Fix KeyError in Bus.publish when signal handlers
set in config.

6.2.0

------

* :issue:`1441`: Added tool to automatically convert request
params based on type annotations (primarily in
Python 3). For example::

 cherrypy.tools.params()
 def resource(self, limit: int):
     assert isinstance(limit, int)

6.1.1

------

* Issue :issue:`1411`: Fix issue where autoreload fails when
the host interpreter for CherryPy was launched using
``python -m``.

6.1.0

------

* Combined wsgiserver2 and wsgiserver3 modules into a
single module, ``cherrypy.wsgiserver``.

6.0.2

------

* Issue :pr:`1445`: Correct additional typos.

6.0.1

------

* Issue :issue:`1444`: Correct typos in ``cherrypy.expose``
decorators.

6.0.0

------

* Setuptools is now required to build CherryPy. Pure
distutils installs are no longer supported. This change
allows CherryPy to depend on other packages and re-use
code from them. It's still possible to install
pre-built CherryPy packages (wheels) using pip without
Setuptools.
* `six <https://pypi.io/project/six>`_ is now a
requirement and subsequent requirements will be
declared in the project metadata.
* :issue:`1440`: Back out changes from :pr:`1432` attempting to
fix redirects with Unicode URLs, as it also had the
unintended consequence of causing the 'Location'
to be ``bytes`` on Python 3.
* ``cherrypy.expose`` now works on classes.
* ``cherrypy.config`` decorator is now used throughout
the code internally.

5.6.0

------

* ``cherrypy.expose`` now will also set the exposed
attribute on a class.
* Rewrote all tutorials and internal usage to prefer
the decorator usage of ``expose`` rather than setting
the attribute explicitly.
* Removed test-specific code from tutorials.

5.5.0

------

* :issue:`1397`: Fix for filenames with semicolons and quote
characters in filenames found in headers.
* :issue:`1311`: Added decorator for registering tools.
* :issue:`1194`: Use simpler encoding rules for SCRIPT_NAME
and PATH_INFO environment variables in CherryPy Tree
allowing non-latin characters to pass even when
``wsgi.version`` is not ``u.0``.
* :issue:`1352`: Ensure that multipart fields are decoded even
when cached in a file.

5.4.0

------

* ``cherrypy.test.webtest.WebCase`` now honors a
'WEBTEST_INTERACTIVE' environment variable to disable
interactive tests (still enabled by default). Set to '0'
or 'false' or 'False' to disable interactive tests.
* :issue:`1408`: Fix AttributeError when listiterator was accessed
using the ``next`` attribute.
* :issue:`748`: Removed ``cherrypy.lib.sessions.PostgresqlSession``.
* :pr:`1432`: Fix errors with redirects to Unicode URLs.

5.3.0

------

* :issue:`1202`: Add support for specifying a certificate authority when
serving SSL using the built-in SSL support.
* Use ssl.create_default_context when available.
* :issue:`1392`: Catch platform-specific socket errors on OS X.
* :issue:`1386`: Fix parsing of URIs containing ``://`` in the path part.

5.2.0

------

* :issue:`1410`: Moved hosting to Github
(`cherrypy/cherrypy <https://github.com/cherrypy/cherrypy>`_).

5.1.0

------

* Bugfix issue :issue:`1315` for ``test_HTTP11_pipelining`` test in Python 3.5
* Bugfix issue :issue:`1382` regarding the keyword arguments support for Python 3
on the config file.
* Bugfix issue :issue:`1406` for ``test_2_KeyboardInterrupt`` test in Python 3.5.
by monkey patching the HTTPRequest given a bug on CPython
that is affecting the testsuite (https://bugs.python.org/issue23377).
* Add additional parameter ``raise_subcls`` to the tests helpers
`openURL` and ``CPWebCase.getPage`` to have finer control on
which exceptions can be raised.
* Add support for direct keywords on the calls (e.g. ``foo=bar``) on
the config file under Python 3.
* Add additional validation to determine if the process is running
as a daemon on ``cherrypy.process.plugins.SignalHandler`` to allow
the execution of the testsuite under CI tools.

5.0.1

------

* Bugfix for NameError following :issue:`94`.

5.0.0

------

* Removed deprecated support for ``ssl_certificate`` and
``ssl_private_key`` attributes and implicit construction
of SSL adapter on Python 2 WSGI servers.
* Default SSL Adapter on Python 2 is the builtin SSL adapter,
matching Python 3 behavior.
* Pull request :issue:`94`: In proxy tool, defer to Host header for
resolving the base if no base is supplied.

4.0.0

------

* Drop support for Python 2.5 and earlier.
* No longer build Windows installers by default.

3.8.2

------

* Pull Request :issue:`116`: Correct InternalServerError when null bytes in
static file path. Now responds with 404 instead.
Links

Update graphviz from 0.4.5 to 0.14.

Changelog

0.14

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

Improve handling of escaped quotes (``\"``). Different from other layout engine
escapes sequences such as ``\l`` and ``\N`` (which are passed on as is by
default), there is no use case for backslash-escaping a literal quote character
because escaping of quotes is done by this library. Therefore, a
backslash-escaped quote (e.g. in ``label='\\"'``) is now treated the same as a
plain unescaped quote, i.e. both ``label='"'`` and ``label='\\"'`` produce
the same DOT source ``[label="\""]`` (a label that renders as a literal quote).
Before this change, use of ``'\\"'`` could break the quoting mechanism creating
invalid or unintended DOT, possibly leading to syntax errors from the rendering
process.

Add notebook section to documentation.

Add ``sphinx.ext.viewcode`` to docs (note that this currently lacks links for
methods, so that not all of the code is linked; use the source repo for reading
on).

Improve test and doc building config.

0.13.2

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

Fix missing support for four-part versions in ``graphviz.version()``.

0.13.1

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

Tag Python 3.8 support.

Fix quoting for non-ASCII numerals.

0.13

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

Add explicit support for layout engine escape sequences such as ``\l`` and
``\N``. These already worked implicitly before but where broken by backslash
escaping in ``0.12``, which is reverted by this release. Escaping now resembles
the stdlib ``re`` module: literal backslashes need to be escaped (doubled),
which is most conveniently done by using raw string literals for strings that
use escape sequences (including escaped backslashes), e.g. ``label=r'\\'``.

Add ``escape()`` function (resembling ``re.escape()``) for disabling all
meta-characters in a string for rendering.

Use ``logging`` in example notebook, add notebooks demonstrating layout engines
and escape sequence usage, improve tests with parametrization.

0.12

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

Fix missing escaping of backslashes, e.g. in labels (pull request DNGros).

Add ``quiet`` argument to standalone ``view()`` function, and ``quiet_view``
argument on ``.render()`` and ``.view()`` methods. Supresses the ``stderr``
output of started viewer processes (unavailable on Windows).

Add basic debug logging via the stdlib ``logging`` module.

Reformatted some examples, improved tests by using autospec for mocks.

0.11.1

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

Include ``stderr`` in ``str()`` of raised ``subprocess.CalledProcessError``.

0.11

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

Add ``quiet`` argument to ``.render()`` and ``.pipe()`` methods of ``Graph``,
``Digraph``, and ``Source`` objects, allowing to suppress ``stderr`` of the
layout subprocess (parity with stand-alone ``render()`` and ``pipe()``
functions).

The rendering process for ``render()`` methods and stand-alone function is now
started from the directory of the rendered dot source file. This allows to
render graph descriptions that use relative paths inline (e.g. for referring to
image files to be included) by using paths relative to the source file
location. Previously, such relative paths would need to be given relative to
the directory from which ``render()`` was  started, so this change is backwards
incompatible for code that relied on the previous behaviour.

Drop Python 3.4 support.

0.10.1

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

Fix broken renderer argument in ``pipe()`` method and function.

0.10

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

Add ``format`` argument to ``Graph/Digraph.render()``. This follows stand-alone
``render()`` function and mirrors the ``Graph/Digraph.pipe()`` method (usually,
``format`` is set on the instance).

Add ``renderer`` and ``formatter`` arguments to ``Graph/Digraph.render()`` and
``pipe()`` methods, as well as stand-alone ``render()`` and ``pipe()`` functions.

0.9

-----------

Use ``sys.stderr`` to write stderr output from rendering process to stderr
(instead of file descriptor inheritance). Ensures stderr is passed in special
environments such as IDLE.

Suppress rendering process ``stdout`` in ``render()``.

Make ``quiet=True`` also suppress ``stderr`` on success of ``render()`` and
``pipe()`` (exit-status ``0``).

Include ``stderr`` from rendering process in ``CalledProcessError`` exception.

0.8.4

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

Tag Python 3.7 support (work around subprocess ``close_fds`` issue on Windows).

0.8.3

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

Fix compatibility with ``python -OO``.

0.8.2

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

Add ``nohtml()`` to support labels of the form ``'<...>'`` (disabling their default
treatment as HTML strings).

Make default ``'utf-8'`` ``encoding`` more visible.

Set ``encoding = locale.getpreferredencoding()`` when ``encoding`` argument/property is
set to ``None`` explicitly (follow stdlib ``io.open()`` behaviour).

0.8.1

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

Add ``Source.from_file()``-classmethod (simpler in-line SVG display of ready-made
.gv files within Jupyter).

Drop Python 3.3 support.

0.8

-----------

Add ``clear()``-method for ``Graph`` and ``Digraph``. 

Add ``grapviz.version()`` function.

Drop dot source extra indent for edge statements following dotguide examples.

Include LICENSE file in wheel.

0.7.1

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

Fix ``TypeError`` in ``graphviz.pipe()`` with invalid dot code under Python 3.

Add ``copy()``-method for ``Graph``, ``Digraph``, and ``Source``.

Add ``graphviz.render(..., quiet=True)``.

Fix ``graphivz.view()`` exception on unsupported platform.

Raise a dedicated ``RuntimeError`` subclass ``graphviz.ExecutableNotFound`` when the
Graphviz executables are not found.

Port tests from ``nose/unittest`` to ``pytest``, extend, use mocks.

0.7

-----------

Support setting top-level attrs with ``g.attr(key=value)``.

Add context manager usage of ``subgraph()`` for adding a subgraph in a with-block.

Add json-based output formats to known ``FORMATS`` (Graphviz 2.40+).

Drop extra indent level for DOT source with nonempty ``graph/node/edge_attr``.

Add a final newline to a saved DOT source file if it does not end with one.

Raise ``subprocess.CalledProcessError`` on non-zero exit status from rendering.

Raise early when adding a ``subgraph()`` with ``strict=True`` (avoid DOT syntax error).

Make undocumented ``quote()``, ``quote_edge()``, and ``attributes()`` methods private.

0.6

-----------

Drop Python 2.6 support (use ``graphviz<0.6`` there).

Improve tests for ``mkdirs()``.

Better document adding custom DOT using the ``body`` attribute.

Add ``view()``-support for FreeBSD (pull request Julien Gamba).

0.5.2

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

Add ``ENGINES`` and ``FORMATS`` to the documented public API.

0.5.1

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

Fixed PY3 compatibility.

0.5

-----------

Add low-level functions ``render()``, ``pipe()``, and ``view()`` for directly working with
existing files and strings.

Support all ``render()``-arguments in the ``view()``-short-cut-method.

0.4.10

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

Added ``'patchwork'`` engine.

0.4.9

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

Add support for ``strict`` graphs and digraphs.

Hide ``render/pipe()`` subprocess console window on Windows when invoked from
non-console process (e.g. from IDLE).

Improve documentation markup/wording.

Make ``TestNoent`` more robust.

0.4.8

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

Make ``_repr_svg_()`` available on ``Source`` (pull request RafalSkolasinski).

0.4.7

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

Fixed ``view()``-method on Linux under Python 3 (pull request Antony Lee).

0.4.6

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

Fixed ``view()``-method on Linux and Darwin (pull request Eric L. Frederich).
Links

Update Jinja2 from 2.7.3 to 2.11.2.

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

Links

Update nose from 1.3.6 to 1.3.7.

Changelog

1.3.7

- Fix loading packages from capitalised package on Windows
Patch by Thomas Kluyver
Links

Update simplejson from 3.6.5 to 3.17.0.

Changelog

3.17.0

* Updated documentation to be Python 3 first, and
have removed documentation notes about version changes
that occurred more than five years ago.
https://github.com/simplejson/simplejson/pull/257
https://github.com/simplejson/simplejson/pull/254
* Update build matrix for Python 3.8
https://github.com/simplejson/simplejson/pull/255
https://github.com/simplejson/simplejson/pull/256

3.16.1

* Added examples for JSON lines use cases
https://github.com/simplejson/simplejson/pull/236
* Add wheels for more Python versions and platforms
https://github.com/simplejson/simplejson/pull/234
https://github.com/simplejson/simplejson/pull/233
https://github.com/simplejson/simplejson/pull/231

3.16.0

* Restore old behavior with regard to the type of decoded empty
strings with speedups enabled on Python 2.x
https://github.com/simplejson/simplejson/pull/225
* Add python_requires to setup.py to help pip
https://github.com/simplejson/simplejson/pull/224
* Fix CSS in docs when built locally
https://github.com/simplejson/simplejson/pull/222

3.15.0

* Clean up the C code
https://github.com/simplejson/simplejson/pull/220
* Bypass the decode() method in bytes subclasses
https://github.com/simplejson/simplejson/pull/219
* Support builds without cStringIO
https://github.com/simplejson/simplejson/pull/217
* Allow to disable serializing bytes by default in Python 3
https://github.com/simplejson/simplejson/pull/216
* Simplify the compatibility code
https://github.com/simplejson/simplejson/pull/215
* Fix tests in Python 2.5
https://github.com/simplejson/simplejson/pull/214

3.14.0

* Defer is_raw_json test (performance improvement)
https://github.com/simplejson/simplejson/pull/212
* Avoid escaping U+2028 and U+2029 without ensure_ascii
https://github.com/simplejson/simplejson/pull/211
* Fix an incorrect type test in Python 2, avoiding an unnecessary unicode copy.
https://github.com/simplejson/simplejson/pull/210

3.13.2

* Fix additional Python 2.x compilation issue on Windows

3.13.1

* Improve CI to catch speedups build regressions
* Fix speedups build regression in Python 2.x
https://github.com/simplejson/simplejson/issues/193

3.13.0

* Workarounds for NamedTemporaryFile issues with Windows for tool tests
* Make TypeError messages contain type name instead of a repr.
https://github.com/simplejson/simplejson/pull/191
* Ensure that encoding of text subtypes is consistent with or without speedups
https://github.com/simplejson/simplejson/issues/185

3.12.1

* Misc updates to build infrastructure
* Fix an assertion failure when make_encoder receives a bad encoder argument
https://github.com/simplejson/simplejson/pull/188
* Fix potential crash during GC
https://github.com/simplejson/simplejson/pull/187
* Fix a reference leak when sorting keys
https://github.com/simplejson/simplejson/pull/186

3.12.0

* Fix threaded import race condition
https://github.com/simplejson/simplejson/issues/184
* Move RawJSON implementation to simplejson.raw_json module
* Move JSONDecodeError implementation to simplejson.errors module

3.11.1

* Fix issue with item_sort_key when speedups are available, and add
auto-discovery to test suites to prevent similar regressions
https://github.com/simplejson/simplejson/issues/173

3.11.0

* docstring fix in JSONEncoder
https://github.com/simplejson/simplejson/pull/172
* Call PyObject_IsTrue() only once for the strict argument of scanner
https://github.com/simplejson/simplejson/pull/170
* Fix a crash with unencodable encoding in the encoder
https://github.com/simplejson/simplejson/pull/171
* Remove unused imports
https://github.com/simplejson/simplejson/pull/162
* Remove remnants of Python 2.4 support
https://github.com/simplejson/simplejson/pull/168
* Fix argument checking errors in _speedups.c
https://github.com/simplejson/simplejson/pull/169
* Remove the `__init__` methods in extension classes
https://github.com/simplejson/simplejson/pull/166
* Fix typo in the doc for loads
https://github.com/simplejson/simplejson/issues/161
* Add Python 3.6 to testing matrix and PyPI metadata
https://github.com/simplejson/simplejson/pull/153
https://github.com/simplejson/simplejson/pull/152

3.10.0

* Add RawJSON class to allow a faster path for already encoded JSON.
https://github.com/simplejson/simplejson/pull/143

3.9.0

* Workaround for bad behavior in string subclasses
https://github.com/simplejson/simplejson/issues/144
* Fix warnings flagged by -3
https://github.com/simplejson/simplejson/pull/146
* Update readthedocs documentation links
https://github.com/simplejson/simplejson/pull/137
* Add build status badge to README
https://github.com/simplejson/simplejson/pull/134

3.8.2

* Fix implicit cast compiler warning in _speedups.c
* simplejson is now available as wheels for OS X and Windows thanks to Travis-CI
and AppVeyor respectively! Many thanks to aebrahim for getting this party
started.
https://github.com/simplejson/simplejson/pull/130
https://github.com/simplejson/simplejson/issues/122

3.8.1

* Fix issue with iterable_as_array and indent option
https://github.com/simplejson/simplejson/issues/128
* Fix typo in keyword argument name introduced in 3.8.0
https://github.com/simplejson/simplejson/pull/123

3.8.0

* New iterable_as_array encoder option to perform lazy serialization of
any iterable objects, without having to convert to tuple or list.

3.7.3

* Fix typo introduced in 3.7.0 (behavior should be indistinguishable)
https://github.com/simplejson/simplejson/commit/e18cc09b688ea1f3305c27616fd3cadd2adc6d31commitcomment-11443842

3.7.2

* Do not cache Decimal class in encoder, only reference the decimal module.
This may make reload work in more common scenarios.

3.7.1

* Fix compilation with MSVC
https://github.com/simplejson/simplejson/pull/119

3.7.0

* simplejson no longer trusts custom str/repr methods for int, long, float
subclasses. These instances are now formatted as if they were exact
instances of those types.
https://github.com/simplejson/simplejson/issues/118
Links

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

Successfully merging this pull request may close these issues.

1 participant