prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Import environment bokeh version in HTML
  As described in #425, having the environment Bokeh version NOT match the HTML template Bokeh version can cause problems.
  
  I wrote some tests #429 that will test and make sure this is always the case in the future, but we could be even smarter about this if we programmatically set the Bokeh version using a Django variable. We could even include it in `context_processors` so it happens behind the scenes.
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `jwql/website/apps/jwql/context_processors.py`
  Content:
  ```
  1 """Provides functions that define context inherent to all views.
  2 
  3 The functions within this module define ``context`` that will be
  4 included in requests, in addition to any specific ``context`` provided
  5 in the view.
  6 
  7 Authors
  8 -------
  9 
  10     - Matthew Bourque
  11 
  12 Use
  13 ---
  14 
  15     This module is defined under the ``TEMPLATES.OPTIONS`` setting in
  16     ``settings.py``, e.g.:
  17     ::
  18 
  19         TEMPLATES = [
  20             {'OPTIONS': {'context_processors': ['jwql.website.apps.jwql.context_processors.base_context'],},}
  21         ]
  22 
  23     As such, it will automatically be executed upon each request.
  24 """
  25 
  26 import jwql
  27 from jwql.utils.constants import JWST_INSTRUMENT_NAMES, MONITORS
  28 
  29 from .oauth import auth_info
  30 
  31 
  32 @auth_info
  33 def base_context(request, user):
  34     """Provide the context needed for the ``base.html`` template.
  35 
  36     Parameters
  37     ----------
  38     request : HttpRequest object
  39         Incoming request from the webpage
  40 
  41     Returns
  42     -------
  43     context : dict
  44         A dictionary containing data needed to render the ``base.html``
  45         template
  46     """
  47 
  48     context = {}
  49     context['inst_list'] = JWST_INSTRUMENT_NAMES
  50     context['tools'] = MONITORS
  51     context['user'] = user
  52     context['version'] = jwql.__version__
  53 
  54     return context
  55
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/jwql/website/apps/jwql/context_processors.py b/jwql/website/apps/jwql/context_processors.py
  --- a/jwql/website/apps/jwql/context_processors.py
  +++ b/jwql/website/apps/jwql/context_processors.py
  @@ -23,6 +23,8 @@
       As such, it will automatically be executed upon each request.
   """
   
  +import bokeh
  +
   import jwql
   from jwql.utils.constants import JWST_INSTRUMENT_NAMES, MONITORS
   
  @@ -50,5 +52,6 @@
       context['tools'] = MONITORS
       context['user'] = user
       context['version'] = jwql.__version__
  +    context['bokeh_version'] = bokeh.__version__
   
       return context
  
verification_info: {"golden_diff": "diff --git a/jwql/website/apps/jwql/context_processors.py b/jwql/website/apps/jwql/context_processors.py\n--- a/jwql/website/apps/jwql/context_processors.py\n+++ b/jwql/website/apps/jwql/context_processors.py\n@@ -23,6 +23,8 @@\n     As such, it will automatically be executed upon each request.\n \"\"\"\n \n+import bokeh\n+\n import jwql\n from jwql.utils.constants import JWST_INSTRUMENT_NAMES, MONITORS\n \n@@ -50,5 +52,6 @@\n     context['tools'] = MONITORS\n     context['user'] = user\n     context['version'] = jwql.__version__\n+    context['bokeh_version'] = bokeh.__version__\n \n     return context\n", "issue": "Import environment bokeh version in HTML\nAs described in #425, having the environment Bokeh version NOT match the HTML template Bokeh version can cause problems.\r\n\r\nI wrote some tests #429 that will test and make sure this is always the case in the future, but we could be even smarter about this if we programmatically set the Bokeh version using a Django variable. We could even include it in `context_processors` so it happens behind the scenes.\n", "before_files": [{"content": "\"\"\"Provides functions that define context inherent to all views.\n\nThe functions within this module define ``context`` that will be\nincluded in requests, in addition to any specific ``context`` provided\nin the view.\n\nAuthors\n-------\n\n    - Matthew Bourque\n\nUse\n---\n\n    This module is defined under the ``TEMPLATES.OPTIONS`` setting in\n    ``settings.py``, e.g.:\n    ::\n\n        TEMPLATES = [\n            {'OPTIONS': {'context_processors': ['jwql.website.apps.jwql.context_processors.base_context'],},}\n        ]\n\n    As such, it will automatically be executed upon each request.\n\"\"\"\n\nimport jwql\nfrom jwql.utils.constants import JWST_INSTRUMENT_NAMES, MONITORS\n\nfrom .oauth import auth_info\n\n\n@auth_info\ndef base_context(request, user):\n    \"\"\"Provide the context needed for the ``base.html`` template.\n\n    Parameters\n    ----------\n    request : HttpRequest object\n        Incoming request from the webpage\n\n    Returns\n    -------\n    context : dict\n        A dictionary containing data needed to render the ``base.html``\n        template\n    \"\"\"\n\n    context = {}\n    context['inst_list'] = JWST_INSTRUMENT_NAMES\n    context['tools'] = MONITORS\n    context['user'] = user\n    context['version'] = jwql.__version__\n\n    return context\n", "path": "jwql/website/apps/jwql/context_processors.py"}], "after_files": [{"content": "\"\"\"Provides functions that define context inherent to all views.\n\nThe functions within this module define ``context`` that will be\nincluded in requests, in addition to any specific ``context`` provided\nin the view.\n\nAuthors\n-------\n\n    - Matthew Bourque\n\nUse\n---\n\n    This module is defined under the ``TEMPLATES.OPTIONS`` setting in\n    ``settings.py``, e.g.:\n    ::\n\n        TEMPLATES = [\n            {'OPTIONS': {'context_processors': ['jwql.website.apps.jwql.context_processors.base_context'],},}\n        ]\n\n    As such, it will automatically be executed upon each request.\n\"\"\"\n\nimport bokeh\n\nimport jwql\nfrom jwql.utils.constants import JWST_INSTRUMENT_NAMES, MONITORS\n\nfrom .oauth import auth_info\n\n\n@auth_info\ndef base_context(request, user):\n    \"\"\"Provide the context needed for the ``base.html`` template.\n\n    Parameters\n    ----------\n    request : HttpRequest object\n        Incoming request from the webpage\n\n    Returns\n    -------\n    context : dict\n        A dictionary containing data needed to render the ``base.html``\n        template\n    \"\"\"\n\n    context = {}\n    context['inst_list'] = JWST_INSTRUMENT_NAMES\n    context['tools'] = MONITORS\n    context['user'] = user\n    context['version'] = jwql.__version__\n    context['bokeh_version'] = bokeh.__version__\n\n    return context\n", "path": "jwql/website/apps/jwql/context_processors.py"}]}