prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Make secret_key default one that will fail if not set to a custom value
  Currently, the `secret_key` default value is `ultrasecretkey` which is a valid value. Would it not be better to let the default value of this setting be one that will make searx fail to start? This will force the user to conciously change this setting to a secure value instead of accidentally forgetting to set this to something random and secure.
  
  </issue>
  <code>
  [start of searx/__init__.py]
  1 '''
  2 searx is free software: you can redistribute it and/or modify
  3 it under the terms of the GNU Affero General Public License as published by
  4 the Free Software Foundation, either version 3 of the License, or
  5 (at your option) any later version.
  6 
  7 searx is distributed in the hope that it will be useful,
  8 but WITHOUT ANY WARRANTY; without even the implied warranty of
  9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  10 GNU Affero General Public License for more details.
  11 
  12 You should have received a copy of the GNU Affero General Public License
  13 along with searx. If not, see < http://www.gnu.org/licenses/ >.
  14 
  15 (C) 2013- by Adam Tauber, <asciimoo@gmail.com>
  16 '''
  17 
  18 import logging
  19 from os import environ
  20 from os.path import realpath, dirname, join, abspath, isfile
  21 from io import open
  22 from yaml import safe_load
  23 
  24 
  25 searx_dir = abspath(dirname(__file__))
  26 engine_dir = dirname(realpath(__file__))
  27 static_path = abspath(join(dirname(__file__), 'static'))
  28 
  29 
  30 def check_settings_yml(file_name):
  31     if isfile(file_name):
  32         return file_name
  33     else:
  34         return None
  35 
  36 
  37 # find location of settings.yml
  38 if 'SEARX_SETTINGS_PATH' in environ:
  39     # if possible set path to settings using the
  40     # enviroment variable SEARX_SETTINGS_PATH
  41     settings_path = check_settings_yml(environ['SEARX_SETTINGS_PATH'])
  42 else:
  43     # if not, get it from searx code base or last solution from /etc/searx
  44     settings_path = check_settings_yml(join(searx_dir, 'settings.yml')) or check_settings_yml('/etc/searx/settings.yml')
  45 
  46 if not settings_path:
  47     raise Exception('settings.yml not found')
  48 
  49 # load settings
  50 with open(settings_path, 'r', encoding='utf-8') as settings_yaml:
  51     settings = safe_load(settings_yaml)
  52 
  53 if settings['ui']['static_path']:
  54     static_path = settings['ui']['static_path']
  55 
  56 '''
  57 enable debug if
  58 the environnement variable SEARX_DEBUG is 1 or true
  59 (whatever the value in settings.yml)
  60 or general.debug=True in settings.yml
  61 
  62 disable debug if
  63 the environnement variable SEARX_DEBUG is 0 or false
  64 (whatever the value in settings.yml)
  65 or general.debug=False in settings.yml
  66 '''
  67 searx_debug_env = environ.get('SEARX_DEBUG', '').lower()
  68 if searx_debug_env == 'true' or searx_debug_env == '1':
  69     searx_debug = True
  70 elif searx_debug_env == 'false' or searx_debug_env == '0':
  71     searx_debug = False
  72 else:
  73     searx_debug = settings.get('general', {}).get('debug')
  74 
  75 if searx_debug:
  76     logging.basicConfig(level=logging.DEBUG)
  77 else:
  78     logging.basicConfig(level=logging.WARNING)
  79 
  80 logger = logging.getLogger('searx')
  81 logger.debug('read configuration from %s', settings_path)
  82 logger.info('Initialisation done')
  83 
  84 if 'SEARX_SECRET' in environ:
  85     settings['server']['secret_key'] = environ['SEARX_SECRET']
  86 if 'SEARX_BIND_ADDRESS' in environ:
  87     settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']
  88
  [end of searx/__init__.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/searx/__init__.py b/searx/__init__.py
  --- a/searx/__init__.py
  +++ b/searx/__init__.py
  @@ -85,3 +85,7 @@
       settings['server']['secret_key'] = environ['SEARX_SECRET']
   if 'SEARX_BIND_ADDRESS' in environ:
       settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']
  +
  +if not searx_debug and settings['server']['secret_key'] == 'ultrasecretkey':
  +    logger.error('server.secret_key is not changed. Please use something else instead of ultrasecretkey.')
  +    exit(1)
  
verification_info: {"golden_diff": "diff --git a/searx/__init__.py b/searx/__init__.py\n--- a/searx/__init__.py\n+++ b/searx/__init__.py\n@@ -85,3 +85,7 @@\n     settings['server']['secret_key'] = environ['SEARX_SECRET']\n if 'SEARX_BIND_ADDRESS' in environ:\n     settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']\n+\n+if not searx_debug and settings['server']['secret_key'] == 'ultrasecretkey':\n+    logger.error('server.secret_key is not changed. Please use something else instead of ultrasecretkey.')\n+    exit(1)\n", "issue": "Make secret_key default one that will fail if not set to a custom value\nCurrently, the `secret_key` default value is `ultrasecretkey` which is a valid value. Would it not be better to let the default value of this setting be one that will make searx fail to start? This will force the user to conciously change this setting to a secure value instead of accidentally forgetting to set this to something random and secure.\n", "before_files": [{"content": "'''\nsearx is free software: you can redistribute it and/or modify\nit under the terms of the GNU Affero General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nsearx is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU Affero General Public License for more details.\n\nYou should have received a copy of the GNU Affero General Public License\nalong with searx. If not, see < http://www.gnu.org/licenses/ >.\n\n(C) 2013- by Adam Tauber, <asciimoo@gmail.com>\n'''\n\nimport logging\nfrom os import environ\nfrom os.path import realpath, dirname, join, abspath, isfile\nfrom io import open\nfrom yaml import safe_load\n\n\nsearx_dir = abspath(dirname(__file__))\nengine_dir = dirname(realpath(__file__))\nstatic_path = abspath(join(dirname(__file__), 'static'))\n\n\ndef check_settings_yml(file_name):\n    if isfile(file_name):\n        return file_name\n    else:\n        return None\n\n\n# find location of settings.yml\nif 'SEARX_SETTINGS_PATH' in environ:\n    # if possible set path to settings using the\n    # enviroment variable SEARX_SETTINGS_PATH\n    settings_path = check_settings_yml(environ['SEARX_SETTINGS_PATH'])\nelse:\n    # if not, get it from searx code base or last solution from /etc/searx\n    settings_path = check_settings_yml(join(searx_dir, 'settings.yml')) or check_settings_yml('/etc/searx/settings.yml')\n\nif not settings_path:\n    raise Exception('settings.yml not found')\n\n# load settings\nwith open(settings_path, 'r', encoding='utf-8') as settings_yaml:\n    settings = safe_load(settings_yaml)\n\nif settings['ui']['static_path']:\n    static_path = settings['ui']['static_path']\n\n'''\nenable debug if\nthe environnement variable SEARX_DEBUG is 1 or true\n(whatever the value in settings.yml)\nor general.debug=True in settings.yml\n\ndisable debug if\nthe environnement variable SEARX_DEBUG is 0 or false\n(whatever the value in settings.yml)\nor general.debug=False in settings.yml\n'''\nsearx_debug_env = environ.get('SEARX_DEBUG', '').lower()\nif searx_debug_env == 'true' or searx_debug_env == '1':\n    searx_debug = True\nelif searx_debug_env == 'false' or searx_debug_env == '0':\n    searx_debug = False\nelse:\n    searx_debug = settings.get('general', {}).get('debug')\n\nif searx_debug:\n    logging.basicConfig(level=logging.DEBUG)\nelse:\n    logging.basicConfig(level=logging.WARNING)\n\nlogger = logging.getLogger('searx')\nlogger.debug('read configuration from %s', settings_path)\nlogger.info('Initialisation done')\n\nif 'SEARX_SECRET' in environ:\n    settings['server']['secret_key'] = environ['SEARX_SECRET']\nif 'SEARX_BIND_ADDRESS' in environ:\n    settings['server']['bind_address'] = environ['SEARX_BIND_ADDRESS']\n", "path": "searx/__init__.py"}]}