cherrypy.request.headers['Host'].raw
if needed.Content-Disposition
header via RFC 6266.HeaderMap
would be converted to strings.data/
endpoint
would fail with encoding errors on Python 3.CPWebCase.getPage
to cheroot. CherryPy now requires
cheroot 8.2.1 or later.308 Permanent Redirect
usable via raise cherrypy.HTTPRedirect('/new_uri', 308)
.tempora
dependency against
version 1.13 to avoid pulling in namespace packages.basic_auth
and
digest_auth
tools and the httpauth
module, which have been
officially deprecated earlier in v14.0.0.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`
req.status
using bytes
(fixed in :pr:`1712`).__file__
is None
.: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.
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.DeprecatedTool
and the long-deprecated and disabled
tidy
and nsgmls
tools. See the rationale
for this change.: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 except when dealing with headers in CherryPy.
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.
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.cherrypy.engine.subscribe
now may be called without a
callback, in which case it returns a decorator expecting the
callback.HTTPRedirect.default_status
.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.request.base
and thus in cherrypy.url
.i
holds a per-request UUID4z
outputs UTC time in format of RFC 3339cherrypy._cprequest.Request.unique_id.uuid4
now has lazily
invocable UUID4This release contained an unintentional regression in environments that are hostile to namespace packages, such as Pex, Celery, and py2exe. See :pr:`1671` for details.
graphviz
in Python
2.6.CPWSGIServer.version
now reported as
CherryPy/x.y.z Cheroot/x.y.z
. Bump to cheroot 5.2.0.pre-commit
testing goes faster due to enabled caching.:issue:`1332`: CherryPy now uses portend for checking and waiting on ports for startup and teardown checks. The following names are no longer present:
Use this functionality from the portend package directly.
: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.
ssl_module: 'builtin'
when client opens connection to HTTPS port using HTTP.HTTPError
now also works as a context manager.storage_class
parameter, which supersedes the new deprecated
storage_type
parameter. The storage_class
should
be the actual Session subclass to be used.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.cherrypy.lib.http
module.unrepr
, modules
, and attributes
in
cherrypy.lib
.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.: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).
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
: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)
python -m
.cherrypy.wsgiserver
.@cherrypy.expose
decorators.bytes
on Python 3.cherrypy.expose
now works on classes.cherrypy.config
decorator is now used throughout
the code internally.@cherrypy.expose
now will also set the exposed
attribute on a class.expose
rather than setting
the attribute explicitly.wsgi.version
is not u.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.next
attribute.cherrypy.lib.sessions.PostgresqlSession
.://
in the path part.test_HTTP11_pipelining
test in Python 3.5test_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).raise_subcls
to the tests helpers
openURL and CPWebCase.getPage
to have finer control on
which exceptions can be raised.foo=bar
) on
the config file under Python 3.cherrypy.process.plugins.SignalHandler
to allow
the execution of the testsuite under CI tools.ssl_certificate
and
ssl_private_key
attributes and implicit construction
of SSL adapter on Python 2 WSGI servers.exc_info
to logger as keyword rather than
formatting the error and injecting into the message.python -m cherrypy
in
addition to the cherryd
script.check_auth
when encrypt is used.CherryPy adopts semver.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )