Package cherrypy :: Module _cpwsgi_server
[hide private]
[frames] | no frames]

Source Code for Module cherrypy._cpwsgi_server

 1  """WSGI server interface (see PEP 333). This adds some CP-specific bits to 
 2  the framework-agnostic wsgiserver package. 
 3  """ 
 4  import sys 
 5   
 6  import cherrypy 
 7  from cherrypy import wsgiserver 
 8   
 9   
10 -class CPWSGIServer(wsgiserver.CherryPyWSGIServer):
11 """Wrapper for wsgiserver.CherryPyWSGIServer. 12 13 wsgiserver has been designed to not reference CherryPy in any way, 14 so that it can be used in other frameworks and applications. Therefore, 15 we wrap it here, so we can set our own mount points from cherrypy.tree 16 and apply some attributes from config -> cherrypy.server -> wsgiserver. 17 """ 18
19 - def __init__(self, server_adapter=cherrypy.server):
20 self.server_adapter = server_adapter 21 self.max_request_header_size = self.server_adapter.max_request_header_size or 0 22 self.max_request_body_size = self.server_adapter.max_request_body_size or 0 23 24 server_name = (self.server_adapter.socket_host or 25 self.server_adapter.socket_file or 26 None) 27 28 self.wsgi_version = self.server_adapter.wsgi_version 29 s = wsgiserver.CherryPyWSGIServer 30 s.__init__(self, server_adapter.bind_addr, cherrypy.tree, 31 self.server_adapter.thread_pool, 32 server_name, 33 max = self.server_adapter.thread_pool_max, 34 request_queue_size = self.server_adapter.socket_queue_size, 35 timeout = self.server_adapter.socket_timeout, 36 shutdown_timeout = self.server_adapter.shutdown_timeout, 37 ) 38 self.protocol = self.server_adapter.protocol_version 39 self.nodelay = self.server_adapter.nodelay 40 41 if sys.version_info >= (3, 0): 42 ssl_module = self.server_adapter.ssl_module or 'builtin' 43 else: 44 ssl_module = self.server_adapter.ssl_module or 'pyopenssl' 45 if self.server_adapter.ssl_context: 46 adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module) 47 self.ssl_adapter = adapter_class( 48 self.server_adapter.ssl_certificate, 49 self.server_adapter.ssl_private_key, 50 self.server_adapter.ssl_certificate_chain) 51 self.ssl_adapter.context = self.server_adapter.ssl_context 52 elif self.server_adapter.ssl_certificate: 53 adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module) 54 self.ssl_adapter = adapter_class( 55 self.server_adapter.ssl_certificate, 56 self.server_adapter.ssl_private_key, 57 self.server_adapter.ssl_certificate_chain) 58 59 self.stats['Enabled'] = getattr(self.server_adapter, 'statistics', False)
60
61 - def error_log(self, msg="", level=20, traceback=False):
62 cherrypy.engine.log(msg, level, traceback)
63