class_docstr: A Tornado Application used to implement the Bokeh Server.
  
  Args:
      applications (dict[str,Application] or Application) :
          A map from paths to ``Application`` instances.
  
          If the value is a single Application, then the following mapping
          is generated:
  
          .. code-block:: python
  
              applications = {{ '/' : applications }}
  
          When a connection comes in to a given path, the associate
          Application is used to generate a new document for the session.
  
      prefix (str, optional) :
          A URL prefix to use for all Bokeh server paths. (default: None)
  
      ico_path (str, optional) :
          A path to a .ico file to return for ``/favicon.ico``.
  
      extra_websocket_origins (list[str], optional) :
          A list of hosts that can connect to the websocket.
  
          This is typically required when embedding a Bokeh server app in an
          external web site using :func:`~bokeh.embed.server_document` or
          similar.
  
          If None, ``["localhost"]`` will be assumed (default: None)
  
      extra_patterns (seq[tuple], optional) :
          A list of tuples of (str, http or websocket handler)
  
          Use this argument to add additional endpoints to custom deployments
          of the Bokeh Server.
  
          If None, then ``[]`` will be used. (default: None)
  
      secret_key (str, optional) :
          A secret key for signing session IDs.
  
          Defaults to the current value of the environment variable
          ``BOKEH_SECRET_KEY``
  
      sign_sessions (bool, optional) :
          Whether to cryptographically sign session IDs
  
          Defaults to the current value of the environment variable
          ``BOKEH_SIGN_SESSIONS``. If ``True``, then ``secret_key`` must
          also be provided (either via environment setting or passed as
          a parameter value)
  
      generate_session_ids (bool, optional) :
          Whether to generate a session ID if one is not provided
          (default: True)
  
      keep_alive_milliseconds (int, optional) :
          Number of milliseconds between keep-alive pings
          (default: {DEFAULT_KEEP_ALIVE_MS})
  
          Pings normally required to keep the websocket open. Set to 0 to
          disable pings.
  
      check_unused_sessions_milliseconds (int, optional) :
          Number of milliseconds between checking for unused sessions
          (default: {DEFAULT_CHECK_UNUSED_MS})
  
      unused_session_lifetime_milliseconds (int, optional) :
          Number of milliseconds for unused session lifetime
          (default: {DEFAULT_UNUSED_LIFETIME_MS})
  
      stats_log_frequency_milliseconds (int, optional) :
          Number of milliseconds between logging stats
          (default: {DEFAULT_STATS_LOG_FREQ_MS})
  
      mem_log_frequency_milliseconds (int, optional) :
          Number of milliseconds between logging memory information
          (default: {DEFAULT_MEM_LOG_FREQ_MS})
  
          Enabling this feature requires the optional dependency ``psutil`` to be
          installed.
  
      use_index (bool, optional) :
          Whether to generate an index of running apps in the ``RootHandler``
          (default: True)
  
      index (str, optional) :
          Path to a Jinja2 template to serve as the index for "/" if use_index
          is True. If None, the basic built in app index template is used.
          (default: None)
  
      redirect_root (bool, optional) :
          When there is only a single running application, whether to
          redirect requests to ``"/"`` to that application automatically
          (default: True)
  
          If there are multiple Bokeh applications configured, this option
          has no effect.
  
      websocket_max_message_size_bytes (int, optional):
          Set the Tornado ``websocket_max_message_size`` value.
          (default: {DEFAULT_WEBSOCKET_MAX_MESSAGE_SIZE_BYTES})
  
      websocket_compression_level (int, optional):
          Set the Tornado WebSocket ``compression_level`` documented in
          https://docs.python.org/3.7/library/zlib.html#zlib.compressobj.
  
      websocket_compression_mem_level (int, optional):
          Set the Tornado WebSocket compression ``mem_level`` documented in
          https://docs.python.org/3.7/library/zlib.html#zlib.compressobj.
  
      index (str, optional):
          Path to a Jinja2 template to use for the root URL
  
      auth_provider (AuthProvider, optional):
          An AuthProvider instance
  
      include_headers (list, optional) :
          List of request headers to include in session context
          (by default all headers are included)
  
      exclude_headers (list, optional) :
          List of request headers to exclude in session context
          (by default all headers are included)
  
      include_cookies (list, optional) :
          List of cookies to include in session context
          (by default all cookies are included)
  
      exclude_cookies (list, optional) :
          List of cookies to exclude in session context
          (by default all cookies are included)
  
      session_token_expiration (int, optional) :
          Duration in seconds that a new session token is valid
          for session creation. After the expiry time has elapsed,
          the token will not be able create a new session
          (default: {DEFAULT_SESSION_TOKEN_EXPIRATION})
  
  Any additional keyword arguments are passed to ``tornado.web.Application``.
class_docstr_tok: ["A","Tornado","Application","used","to","implement","the","Bokeh","Server",".","Args",":","applications","(","dict","[","str",",","Application","]","or","Application",")",":","A","map","from","paths","to","``","Application","``","instances",".","If","the","value","is","a","single","Application",",","then","the","following","mapping","is","generated",":","..","code-block",":",":","python","applications","=","{","{","'\/","'",":","applications","}","}","When","a","connection","comes","in","to","a","given","path",",","the","associate","Application","is","used","to","generate","a","new","document","for","the","session",".","prefix","(","str",",","optional",")",":","A","URL","prefix","to","use","for","all","Bokeh","server","paths",".","(","default",":","None",")","ico_path","(","str",",","optional",")",":","A","path","to","a",".ico","file","to","return","for","``","\/favicon.ico","``",".","extra_websocket_origins","(","list","[","str","]",",","optional",")",":","A","list","of","hosts","that","can","connect","to","the","websocket",".","This","is","typically","required","when","embedding","a","Bokeh","server","app","in","an","external","web","site","using",":","func",":","`","~bokeh.embed.server_document","`","or","similar",".","If","None",",","``","[","``","localhost","''","]","``","will","be","assumed","(","default",":","None",")","extra_patterns","(","seq","[","tuple","]",",","optional",")",":","A","list","of","tuples","of","(","str",",","http","or","websocket","handler",")","Use","this","argument","to","add","additional","endpoints","to","custom","deployments","of","the","Bokeh","Server",".","If","None",",","then","``","[","]","``","will","be","used",".","(","default",":","None",")","secret_key","(","str",",","optional",")",":","A","secret","key","for","signing","session","IDs",".","Defaults","to","the","current","value","of","the","environment","variable","``","BOKEH_SECRET_KEY","``","sign_sessions","(","bool",",","optional",")",":","Whether","to","cryptographically","sign","session","IDs","Defaults","to","the","current","value","of","the","environment","variable","``","BOKEH_SIGN_SESSIONS","``",".","If","``","True","``",",","then","``","secret_key","``","must","also","be","provided","(","either","via","environment","setting","or","passed","as","a","parameter","value",")","generate_session_ids","(","bool",",","optional",")",":","Whether","to","generate","a","session","ID","if","one","is","not","provided","(","default",":","True",")","keep_alive_milliseconds","(","int",",","optional",")",":","Number","of","milliseconds","between","keep-alive","pings","(","default",":","{","DEFAULT_KEEP_ALIVE_MS","}",")","Pings","normally","required","to","keep","the","websocket","open",".","Set","to","0","to","disable","pings",".","check_unused_sessions_milliseconds","(","int",",","optional",")",":","Number","of","milliseconds","between","checking","for","unused","sessions","(","default",":","{","DEFAULT_CHECK_UNUSED_MS","}",")","unused_session_lifetime_milliseconds","(","int",",","optional",")",":","Number","of","milliseconds","for","unused","session","lifetime","(","default",":","{","DEFAULT_UNUSED_LIFETIME_MS","}",")","stats_log_frequency_milliseconds","(","int",",","optional",")",":","Number","of","milliseconds","between","logging","stats","(","default",":","{","DEFAULT_STATS_LOG_FREQ_MS","}",")","mem_log_frequency_milliseconds","(","int",",","optional",")",":","Number","of","milliseconds","between","logging","memory","information","(","default",":","{","DEFAULT_MEM_LOG_FREQ_MS","}",")","Enabling","this","feature","requires","the","optional","dependency","``","psutil","``","to","be","installed",".","use_index","(","bool",",","optional",")",":","Whether","to","generate","an","index","of","running","apps","in","the","``","RootHandler","``","(","default",":","True",")","index","(","str",",","optional",")",":","Path","to","a","Jinja2","template","to","serve","as","the","index","for","``","\/","''","if","use_index","is","True",".","If","None",",","the","basic","built","in","app","index","template","is","used",".","(","default",":","None",")","redirect_root","(","bool",",","optional",")",":","When","there","is","only","a","single","running","application",",","whether","to","redirect","requests","to","``","``","\/","''","``","to","that","application","automatically","(","default",":","True",")","If","there","are","multiple","Bokeh","applications","configured",",","this","option","has","no","effect",".","websocket_max_message_size_bytes","(","int",",","optional",")",":","Set","the","Tornado","``","websocket_max_message_size","``","value",".","(","default",":","{","DEFAULT_WEBSOCKET_MAX_MESSAGE_SIZE_BYTES","}",")","websocket_compression_level","(","int",",","optional",")",":","Set","the","Tornado","WebSocket","``","compression_level","``","documented","in","https",":","\/\/docs.python.org\/3.7\/library\/zlib.html","#","zlib.compressobj",".","websocket_compression_mem_level","(","int",",","optional",")",":","Set","the","Tornado","WebSocket","compression","``","mem_level","``","documented","in","https",":","\/\/docs.python.org\/3.7\/library\/zlib.html","#","zlib.compressobj",".","index","(","str",",","optional",")",":","Path","to","a","Jinja2","template","to","use","for","the","root","URL","auth_provider","(","AuthProvider",",","optional",")",":","An","AuthProvider","instance","include_headers","(","list",",","optional",")",":","List","of","request","headers","to","include","in","session","context","(","by","default","all","headers","are","included",")","exclude_headers","(","list",",","optional",")",":","List","of","request","headers","to","exclude","in","session","context","(","by","default","all","headers","are","included",")","include_cookies","(","list",",","optional",")",":","List","of","cookies","to","include","in","session","context","(","by","default","all","cookies","are","included",")","exclude_cookies","(","list",",","optional",")",":","List","of","cookies","to","exclude","in","session","context","(","by","default","all","cookies","are","included",")","session_token_expiration","(","int",",","optional",")",":","Duration","in","seconds","that","a","new","session","token","is","valid","for","session","creation",".","After","the","expiry","time","has","elapsed",",","the","token","will","not","be","able","create","a","new","session","(","default",":","{","DEFAULT_SESSION_TOKEN_EXPIRATION","}",")","Any","additional","keyword","arguments","are","passed","to","``","tornado.web.Application","``","."]
docstr: A list of request headers to make available in the session
  context.
docstr_tok: ["A","list","of","request","headers","to","make","available","in","the","session","context","."]
code: def include_headers(self) -> list[str] | None:
      """A list of request headers to make available in the session
      context.
  
      """
      return self._include_headers
  
imports: from __future__ import annotations
  import logging
  import gc
  import os
  from pprint import pformat
  from types import ModuleType
  from typing import TYPE_CHECKING, Any, Mapping, Sequence
  from urllib.parse import urljoin
  from tornado.ioloop import PeriodicCallback
  from tornado.web import Application, StaticFileHandler
  from ..application import Application
  from ..document import Document
  from ..model import Model
  from ..resources import Resources
  from ..settings import settings
  from ..util.dependencies import import_optional
  from ..util.strings import format_docstring
  from ..util.tornado import fixup_windows_event_loop_policy
  from .auth_provider import NullAuth
  from .connection import ServerConnection
  from .contexts import ApplicationContext
  from .session import ServerSession
  from .urls import per_app_patterns, toplevel_patterns
  from .views.ico_handler import IcoHandler
  from .views.root_handler import RootHandler
  from .views.static_handler import StaticHandler
  from .views.ws import WSHandler
label_desc: Use image node_id 12 for calling the BokehTornado obj's underlying member method code with example usage: obj.include_headers() and returns: self