in azure/functions/_http_wsgi.py [0:0]
def to_environ(self, errors_buffer: StringIO) -> Dict[str, Any]:
if self._environ_cache is not None:
return self._environ_cache
environ = {
'REQUEST_METHOD': self.request_method,
'SCRIPT_NAME': self.script_name,
'PATH_INFO': self.path_info,
'QUERY_STRING': self.query_string,
'CONTENT_TYPE': self.content_type,
'CONTENT_LENGTH': self.content_length,
'SERVER_NAME': self.server_name,
'SERVER_PORT': self.server_port,
'SERVER_PROTOCOL': self.server_protocol,
'wsgi.version': self.wsgi_version,
'wsgi.url_scheme': self.wsgi_url_scheme,
'wsgi.input': self.wsgi_input,
'wsgi.errors': errors_buffer,
'wsgi.multithread': self.wsgi_multithread,
'wsgi.multiprocess': self.wsgi_multiprocess,
'wsgi.run_once': self.wsgi_run_once,
'azure_functions.function_directory': self.af_function_directory,
'azure_functions.function_name': self.af_function_name,
'azure_functions.invocation_id': self.af_invocation_id,
'azure_functions.thread_local_storage':
self.af_thread_local_storage,
'azure_functions.trace_context': self.af_trace_context,
'azure_functions.retry_context': self.af_retry_context
}
environ.update(self._http_environ)
# Ensure WSGI string fits in IOS-8859-1 code points
for k, v in environ.items():
if isinstance(v, (str,)):
environ[k] = wsgi_encoding_dance(v)
# Remove None values
self._environ_cache = {
k: v for k, v in environ.items() if v is not None
}
return self._environ_cache