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 12 """Wrapper for wsgiserver.CherryPyWSGIServer. 13 14 wsgiserver has been designed to not reference CherryPy in any way, 15 so that it can be used in other frameworks and applications. Therefore, 16 we wrap it here, so we can set our own mount points from cherrypy.tree 17 and apply some attributes from config -> cherrypy.server -> wsgiserver. 18 """ 19
20 - def __init__(self, server_adapter=cherrypy.server):
21 self.server_adapter = server_adapter 22 self.max_request_header_size = ( 23 self.server_adapter.max_request_header_size or 0 24 ) 25 self.max_request_body_size = ( 26 self.server_adapter.max_request_body_size or 0 27 ) 28 29 server_name = (self.server_adapter.socket_host or 30 self.server_adapter.socket_file or 31 None) 32 33 self.wsgi_version = self.server_adapter.wsgi_version 34 s = wsgiserver.CherryPyWSGIServer 35 s.__init__(self, server_adapter.bind_addr, cherrypy.tree, 36 self.server_adapter.thread_pool, 37 server_name, 38 max=self.server_adapter.thread_pool_max, 39 request_queue_size=self.server_adapter.socket_queue_size, 40 timeout=self.server_adapter.socket_timeout, 41 shutdown_timeout=self.server_adapter.shutdown_timeout, 42 accepted_queue_size=self.server_adapter.accepted_queue_size, 43 accepted_queue_timeout=self.server_adapter.accepted_queue_timeout, 44 ) 45 self.protocol = self.server_adapter.protocol_version 46 self.nodelay = self.server_adapter.nodelay 47 48 if sys.version_info >= (3, 0): 49 ssl_module = self.server_adapter.ssl_module or 'builtin' 50 else: 51 ssl_module = self.server_adapter.ssl_module or 'pyopenssl' 52 if self.server_adapter.ssl_context: 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 self.ssl_adapter.context = self.server_adapter.ssl_context 59 elif self.server_adapter.ssl_certificate: 60 adapter_class = wsgiserver.get_ssl_adapter_class(ssl_module) 61 self.ssl_adapter = adapter_class( 62 self.server_adapter.ssl_certificate, 63 self.server_adapter.ssl_private_key, 64 self.server_adapter.ssl_certificate_chain) 65 66 self.stats['Enabled'] = getattr( 67 self.server_adapter, 'statistics', False)
68
69 - def error_log(self, msg="", level=20, traceback=False):
70 cherrypy.engine.log(msg, level, traceback)
71