prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Cron jobs for monitors currently failing 
  Traceback (most recent call last):
    File "/home/jwqladm/repositories/jwql/jwql/instrument_monitors/common_monitors/bias_monitor.py", line 58, in <module>
      from jwql.instrument_monitors.common_monitors.dark_monitor import mast_query_darks
    File "/home/jwqladm/repositories/jwql/jwql/instrument_monitors/common_monitors/dark_monitor.py", line 77, in <module>
      from jwql.jwql_monitors import monitor_mast
    File "/home/jwqladm/repositories/jwql/jwql/jwql_monitors/monitor_mast.py", line 25, in <module>
      from bokeh.embed import components
    File "/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/__init__.py", line 81, in <module>
      from .util import logconfig
    File "/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/util/logconfig.py", line 87, in <module>
      level = settings.py_log_level()
    File "/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/settings.py", line 310, in __call__
      return self._convert(os.environ[self._env_var])
    File "/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/settings.py", line 236, in convert_logging
      raise ValueError("Cannot convert {} to log level, valid values are: {}".format(value, ", ".join(_log_levels)))
  ValueError: Cannot convert WARN to log level, valid values are: CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE, NONE
  
  </issue>
  <code>
  [start of setup.py]
  1 import numpy as np
  2 from setuptools import setup
  3 from setuptools import find_packages
  4 
  5 VERSION = '0.22.0'
  6 
  7 AUTHORS = 'Matthew Bourque, Misty Cracraft, Joe Filippazzo, Bryan Hilbert, '
  8 AUTHORS += 'Graham Kanarek, Catherine Martlin, Johannes Sahlmann, Ben Sunnquist'
  9 
  10 DESCRIPTION = 'The James Webb Space Telescope Quicklook Project'
  11 
  12 DEPENDENCY_LINKS = ['git+https://github.com/spacetelescope/jwst#0.13.0']
  13 REQUIRES = [
  14     'asdf>=2.3.3',
  15     'astropy>=3.2.1',
  16     'astroquery>=0.3.9',
  17     'authlib',
  18     'bokeh>=1.0',
  19     'codecov',
  20     'django>=2.0',
  21     'flake8',
  22     'inflection',
  23     'ipython',
  24     'jinja2',
  25     'jsonschema==2.6.0',
  26     'jwedb>=0.0.3',
  27     'matplotlib',
  28     'numpy',
  29     'numpydoc',
  30     'pandas',
  31     'psycopg2',
  32     'pysiaf',
  33     'pytest',
  34     'pytest-cov',
  35     'scipy',
  36     'sphinx',
  37     'sqlalchemy',
  38     'stsci_rtd_theme',
  39     'twine'
  40 ]
  41 
  42 setup(
  43     name='jwql',
  44     version=VERSION,
  45     description=DESCRIPTION,
  46     url='https://github.com/spacetelescope/jwql.git',
  47     author=AUTHORS,
  48     author_email='jwql@stsci.edu',
  49     license='BSD',
  50     keywords=['astronomy', 'python'],
  51     classifiers=['Programming Language :: Python'],
  52     packages=find_packages(),
  53     install_requires=REQUIRES,
  54     dependency_links=DEPENDENCY_LINKS,
  55     include_package_data=True,
  56     include_dirs=[np.get_include()],
  57 )
  58
  [end of setup.py]
  </code>
  
  I need you to solve this issue by generating a single patch file that I can apply directly to this repository using git apply. Please respond with a single patch file in the following format.
  <patch>
  diff --git a/file.py b/file.py
  --- a/file.py
  +++ b/file.py
  @@ -1,27 +1,35 @@
   def euclidean(a, b):
  -    while b:
  -        a, b = b, a % b
  -    return a
  +    if b == 0:
  +        return a
  +    return euclidean(b, a % b)
   
   
   def bresenham(x0, y0, x1, y1):
       points = []
       dx = abs(x1 - x0)
       dy = abs(y1 - y0)
  -    sx = 1 if x0 < x1 else -1
  -    sy = 1 if y0 < y1 else -1
  -    err = dx - dy
  +    x, y = x0, y0
  +    sx = -1 if x0 > x1 else 1
  +    sy = -1 if y0 > y1 else 1
   
  -    while True:
  -        points.append((x0, y0))
  -        if x0 == x1 and y0 == y1:
  -            break
  -        e2 = 2 * err
  -        if e2 > -dy:
  -            err -= dy
  -            x0 += sx
  -        if e2 < dx:
  -            err += dx
  -            y0 += sy
  +    if dx > dy:
  +        err = dx / 2.0
  +        while x != x1:
  +            points.append((x, y))
  +            err -= dy
  +            if err < 0:
  +                y += sy
  +                err += dx
  +            x += sx
  +    else:
  +        err = dy / 2.0
  +        while y != y1:
  +            points.append((x, y))
  +            err -= dx
  +            if err < 0:
  +                x += sx
  +                err += dy
  +            y += sy
  +
  +    points.append((x, y))
       return points
  
  </patch>
golden_diff: diff --git a/setup.py b/setup.py
  --- a/setup.py
  +++ b/setup.py
  @@ -15,7 +15,7 @@
       'astropy>=3.2.1',
       'astroquery>=0.3.9',
       'authlib',
  -    'bokeh>=1.0',
  +    'bokeh>=1.0,<1.4',
       'codecov',
       'django>=2.0',
       'flake8',
  
verification_info: {"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -15,7 +15,7 @@\n     'astropy>=3.2.1',\n     'astroquery>=0.3.9',\n     'authlib',\n-    'bokeh>=1.0',\n+    'bokeh>=1.0,<1.4',\n     'codecov',\n     'django>=2.0',\n     'flake8',\n", "issue": "Cron jobs for monitors currently failing \nTraceback (most recent call last):\r\n  File \"/home/jwqladm/repositories/jwql/jwql/instrument_monitors/common_monitors/bias_monitor.py\", line 58, in <module>\r\n    from jwql.instrument_monitors.common_monitors.dark_monitor import mast_query_darks\r\n  File \"/home/jwqladm/repositories/jwql/jwql/instrument_monitors/common_monitors/dark_monitor.py\", line 77, in <module>\r\n    from jwql.jwql_monitors import monitor_mast\r\n  File \"/home/jwqladm/repositories/jwql/jwql/jwql_monitors/monitor_mast.py\", line 25, in <module>\r\n    from bokeh.embed import components\r\n  File \"/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/__init__.py\", line 81, in <module>\r\n    from .util import logconfig\r\n  File \"/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/util/logconfig.py\", line 87, in <module>\r\n    level = settings.py_log_level()\r\n  File \"/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/settings.py\", line 310, in __call__\r\n    return self._convert(os.environ[self._env_var])\r\n  File \"/grp/jwst/ins/jwql/envs/miniconda3/envs/jwql-3.6/lib/python3.6/site-packages/bokeh/settings.py\", line 236, in convert_logging\r\n    raise ValueError(\"Cannot convert {} to log level, valid values are: {}\".format(value, \", \".join(_log_levels)))\r\nValueError: Cannot convert WARN to log level, valid values are: CRITICAL, ERROR, WARNING, INFO, DEBUG, TRACE, NONE\n", "before_files": [{"content": "import numpy as np\nfrom setuptools import setup\nfrom setuptools import find_packages\n\nVERSION = '0.22.0'\n\nAUTHORS = 'Matthew Bourque, Misty Cracraft, Joe Filippazzo, Bryan Hilbert, '\nAUTHORS += 'Graham Kanarek, Catherine Martlin, Johannes Sahlmann, Ben Sunnquist'\n\nDESCRIPTION = 'The James Webb Space Telescope Quicklook Project'\n\nDEPENDENCY_LINKS = ['git+https://github.com/spacetelescope/jwst#0.13.0']\nREQUIRES = [\n    'asdf>=2.3.3',\n    'astropy>=3.2.1',\n    'astroquery>=0.3.9',\n    'authlib',\n    'bokeh>=1.0',\n    'codecov',\n    'django>=2.0',\n    'flake8',\n    'inflection',\n    'ipython',\n    'jinja2',\n    'jsonschema==2.6.0',\n    'jwedb>=0.0.3',\n    'matplotlib',\n    'numpy',\n    'numpydoc',\n    'pandas',\n    'psycopg2',\n    'pysiaf',\n    'pytest',\n    'pytest-cov',\n    'scipy',\n    'sphinx',\n    'sqlalchemy',\n    'stsci_rtd_theme',\n    'twine'\n]\n\nsetup(\n    name='jwql',\n    version=VERSION,\n    description=DESCRIPTION,\n    url='https://github.com/spacetelescope/jwql.git',\n    author=AUTHORS,\n    author_email='jwql@stsci.edu',\n    license='BSD',\n    keywords=['astronomy', 'python'],\n    classifiers=['Programming Language :: Python'],\n    packages=find_packages(),\n    install_requires=REQUIRES,\n    dependency_links=DEPENDENCY_LINKS,\n    include_package_data=True,\n    include_dirs=[np.get_include()],\n)\n", "path": "setup.py"}]}