mirror of
https://github.com/evilhero/mylar
synced 2025-02-20 13:06:50 +00:00
Update bs4 to latest version to fix issues Get clean modules using `pip install --upgrade --target=lib` Move cherrypy, mako, pystun, bs4 into lib directory
54 lines
2.5 KiB
Python
Executable file
54 lines
2.5 KiB
Python
Executable file
"""WSGI server interface (see PEP 333). This adds some CP-specific bits to
|
|
the framework-agnostic wsgiserver package.
|
|
"""
|
|
import sys
|
|
|
|
import cherrypy
|
|
from cherrypy import wsgiserver
|
|
|
|
|
|
class CPWSGIServer(wsgiserver.CherryPyWSGIServer):
|
|
"""Wrapper for wsgiserver.CherryPyWSGIServer.
|
|
|
|
wsgiserver has been designed to not reference CherryPy in any way,
|
|
so that it can be used in other frameworks and applications. Therefore,
|
|
we wrap it here, so we can set our own mount points from cherrypy.tree
|
|
and apply some attributes from config -> cherrypy.server -> wsgiserver.
|
|
"""
|
|
|
|
def __init__(self, server_adapter=cherrypy.server):
|
|
self.server_adapter = server_adapter
|
|
self.max_request_header_size = self.server_adapter.max_request_header_size or 0
|
|
self.max_request_body_size = self.server_adapter.max_request_body_size or 0
|
|
|
|
server_name = (self.server_adapter.socket_host or
|
|
self.server_adapter.socket_file or
|
|
None)
|
|
|
|
self.wsgi_version = self.server_adapter.wsgi_version
|
|
s = wsgiserver.CherryPyWSGIServer
|
|
s.__init__(self, server_adapter.bind_addr, cherrypy.tree,
|
|
self.server_adapter.thread_pool,
|
|
server_name,
|
|
max = self.server_adapter.thread_pool_max,
|
|
request_queue_size = self.server_adapter.socket_queue_size,
|
|
timeout = self.server_adapter.socket_timeout,
|
|
shutdown_timeout = self.server_adapter.shutdown_timeout,
|
|
)
|
|
self.protocol = self.server_adapter.protocol_version
|
|
self.nodelay = self.server_adapter.nodelay
|
|
|
|
ssl_module = self.server_adapter.ssl_module or 'pyopenssl'
|
|
if self.server_adapter.ssl_context:
|
|
adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module)
|
|
self.ssl_adapter = adapter_class(
|
|
self.server_adapter.ssl_certificate,
|
|
self.server_adapter.ssl_private_key,
|
|
self.server_adapter.ssl_certificate_chain)
|
|
self.ssl_adapter.context = self.server_adapter.ssl_context
|
|
elif self.server_adapter.ssl_certificate:
|
|
adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module)
|
|
self.ssl_adapter = adapter_class(
|
|
self.server_adapter.ssl_certificate,
|
|
self.server_adapter.ssl_private_key,
|
|
self.server_adapter.ssl_certificate_chain)
|