summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTres Seaver <tseaver@palladion.com>2018-03-09 12:26:28 -0500
committerGitHub <noreply@github.com>2018-03-09 12:26:28 -0500
commit396e5339a6d21c9ae122c7a810fdc33bf45e4a40 (patch)
treeabd46eab19f13bd402cc7f4aeedf51aa52a69b90
parentd3edffe1efb6126c028d2e351908daf7ad30be60 (diff)
parent7cf1a5d2ba1f963ba84b0d8196322476b0fe5ec8 (diff)
downloadpyramid-396e5339a6d21c9ae122c7a810fdc33bf45e4a40.tar.gz
pyramid-396e5339a6d21c9ae122c7a810fdc33bf45e4a40.tar.bz2
pyramid-396e5339a6d21c9ae122c7a810fdc33bf45e4a40.zip
Merge pull request #3235 from heron182/3195_cherrypy_import
Prefer standalone 'cheroot' to deprecated 'cherrypy.wsgiserver'.
-rw-r--r--CHANGES.rst4
-rw-r--r--CONTRIBUTORS.txt2
-rw-r--r--pyramid/scripts/pserve.py20
3 files changed, 20 insertions, 6 deletions
diff --git a/CHANGES.rst b/CHANGES.rst
index 482610319..7a8fa31f2 100644
--- a/CHANGES.rst
+++ b/CHANGES.rst
@@ -21,6 +21,10 @@ Features
instead of ``pyramid.util.Request``.
See https://github.com/Pylons/pyramid/pull/3129
+- In ``cherrypy_server_runner``, prefer imports from the ``cheroot`` package over the legacy
+ imports from `cherrypy.wsgiserver`.
+ See https://github.com/Pylons/pyramid/pull/3235
+
Bug Fixes
---------
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 83469c14c..b6dbcff2c 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -314,3 +314,5 @@ Contributors
- Lars Blumberg, 2017/08/14
- Deneys Maartens, 2017/11/03
+
+- Heron Rossi, 2018/03/08
diff --git a/pyramid/scripts/pserve.py b/pyramid/scripts/pserve.py
index f7d094980..8ee6e1467 100644
--- a/pyramid/scripts/pserve.py
+++ b/pyramid/scripts/pserve.py
@@ -341,18 +341,26 @@ def cherrypy_server_runner(
if var is not None:
kwargs[var_name] = int(var)
- from cherrypy import wsgiserver
+ try:
+ from cheroot.wsgi import Server as WSGIServer
+ except ImportError:
+ from cherrypy.wsgiserver import CherryPyWSGIServer as WSGIServer
- server = wsgiserver.CherryPyWSGIServer(bind_addr, app,
- server_name=server_name, **kwargs)
+ server = WSGIServer(bind_addr, app,
+ server_name=server_name, **kwargs)
if ssl_pem is not None:
if PY2:
server.ssl_certificate = server.ssl_private_key = ssl_pem
else:
# creates wsgiserver.ssl_builtin as side-effect
- wsgiserver.get_ssl_adapter_class()
- server.ssl_adapter = wsgiserver.ssl_builtin.BuiltinSSLAdapter(
- ssl_pem, ssl_pem)
+ try:
+ from cheroot.server import get_ssl_adapter_class
+ from cheroot.ssl.builtin import BuiltinSSLAdapter
+ except ImportError:
+ from cherrypy.wsgiserver import get_ssl_adapter_class
+ from cherrypy.wsgiserver.ssl_builtin import BuiltinSSLAdapter
+ get_ssl_adapter_class()
+ server.ssl_adapter = BuiltinSSLAdapter(ssl_pem, ssl_pem)
if protocol_version:
server.protocol = protocol_version