prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Store banners in .cache
  They have no place to be in .local/share
  Store banners in .cache
  They have no place to be in .local/share
  
  </issue>
  <code>
  [start of lutris/settings.py]
  1 """Internal settings."""
  2 import os
  3 import sys
  4 from gettext import gettext as _
  5 
  6 from gi.repository import GLib
  7 
  8 from lutris import __version__
  9 from lutris.util.settings import SettingsIO
  10 
  11 PROJECT = "Lutris"
  12 VERSION = __version__
  13 COPYRIGHT = _("(c) 2010-2021 Lutris Team")
  14 AUTHORS = [_("The Lutris team")]
  15 
  16 # Paths
  17 CONFIG_DIR = os.path.join(GLib.get_user_config_dir(), "lutris")
  18 CONFIG_FILE = os.path.join(CONFIG_DIR, "lutris.conf")
  19 DATA_DIR = os.path.join(GLib.get_user_data_dir(), "lutris")
  20 RUNNER_DIR = os.path.join(DATA_DIR, "runners")
  21 RUNTIME_DIR = os.path.join(DATA_DIR, "runtime")
  22 CACHE_DIR = os.path.join(GLib.get_user_cache_dir(), "lutris")
  23 GAME_CONFIG_DIR = os.path.join(CONFIG_DIR, "games")
  24 
  25 TMP_PATH = os.path.join(CACHE_DIR, "tmp")
  26 BANNER_PATH = os.path.join(DATA_DIR, "banners")
  27 COVERART_PATH = os.path.join(DATA_DIR, "coverart")
  28 ICON_PATH = os.path.join(GLib.get_user_data_dir(), "icons", "hicolor", "128x128", "apps")
  29 
  30 sio = SettingsIO(CONFIG_FILE)
  31 if "nosetests" in sys.argv[0] or "pytest" in sys.argv[0]:
  32     PGA_DB = "/tmp/pga.db"
  33 else:
  34     PGA_DB = sio.read_setting("pga_path") or os.path.join(DATA_DIR, "pga.db")
  35 
  36 SITE_URL = sio.read_setting("website") or "https://lutris.net"
  37 
  38 DRIVER_HOWTO_URL = "https://github.com/lutris/docs/blob/master/InstallingDrivers.md"
  39 INSTALLER_URL = SITE_URL + "/api/installers/%s"
  40 # XXX change this, should query on the installer, not the game.
  41 INSTALLER_REVISION_URL = SITE_URL + "/api/installers/games/%s/revisions/%s"
  42 GAME_URL = SITE_URL + "/games/%s/"
  43 RUNTIME_URL = SITE_URL + "/api/runtimes"
  44 
  45 STEAM_API_KEY = sio.read_setting("steam_api_key") or "34C9698CEB394AB4401D65927C6B3752"
  46 DISCORD_CLIENT_ID = sio.read_setting("discord_client_id") or "618290412402114570"
  47 
  48 
  49 read_setting = sio.read_setting
  50 write_setting = sio.write_setting
  51
  [end of lutris/settings.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/lutris/settings.py b/lutris/settings.py
  --- a/lutris/settings.py
  +++ b/lutris/settings.py
  @@ -23,7 +23,7 @@
   GAME_CONFIG_DIR = os.path.join(CONFIG_DIR, "games")
   
   TMP_PATH = os.path.join(CACHE_DIR, "tmp")
  -BANNER_PATH = os.path.join(DATA_DIR, "banners")
  +BANNER_PATH = os.path.join(CACHE_DIR, "banners")
   COVERART_PATH = os.path.join(DATA_DIR, "coverart")
   ICON_PATH = os.path.join(GLib.get_user_data_dir(), "icons", "hicolor", "128x128", "apps")
  
verification_info: {"golden_diff": "diff --git a/lutris/settings.py b/lutris/settings.py\n--- a/lutris/settings.py\n+++ b/lutris/settings.py\n@@ -23,7 +23,7 @@\n GAME_CONFIG_DIR = os.path.join(CONFIG_DIR, \"games\")\n \n TMP_PATH = os.path.join(CACHE_DIR, \"tmp\")\n-BANNER_PATH = os.path.join(DATA_DIR, \"banners\")\n+BANNER_PATH = os.path.join(CACHE_DIR, \"banners\")\n COVERART_PATH = os.path.join(DATA_DIR, \"coverart\")\n ICON_PATH = os.path.join(GLib.get_user_data_dir(), \"icons\", \"hicolor\", \"128x128\", \"apps\")\n", "issue": "Store banners in .cache\nThey have no place to be in .local/share\nStore banners in .cache\nThey have no place to be in .local/share\n", "before_files": [{"content": "\"\"\"Internal settings.\"\"\"\nimport os\nimport sys\nfrom gettext import gettext as _\n\nfrom gi.repository import GLib\n\nfrom lutris import __version__\nfrom lutris.util.settings import SettingsIO\n\nPROJECT = \"Lutris\"\nVERSION = __version__\nCOPYRIGHT = _(\"(c) 2010-2021 Lutris Team\")\nAUTHORS = [_(\"The Lutris team\")]\n\n# Paths\nCONFIG_DIR = os.path.join(GLib.get_user_config_dir(), \"lutris\")\nCONFIG_FILE = os.path.join(CONFIG_DIR, \"lutris.conf\")\nDATA_DIR = os.path.join(GLib.get_user_data_dir(), \"lutris\")\nRUNNER_DIR = os.path.join(DATA_DIR, \"runners\")\nRUNTIME_DIR = os.path.join(DATA_DIR, \"runtime\")\nCACHE_DIR = os.path.join(GLib.get_user_cache_dir(), \"lutris\")\nGAME_CONFIG_DIR = os.path.join(CONFIG_DIR, \"games\")\n\nTMP_PATH = os.path.join(CACHE_DIR, \"tmp\")\nBANNER_PATH = os.path.join(DATA_DIR, \"banners\")\nCOVERART_PATH = os.path.join(DATA_DIR, \"coverart\")\nICON_PATH = os.path.join(GLib.get_user_data_dir(), \"icons\", \"hicolor\", \"128x128\", \"apps\")\n\nsio = SettingsIO(CONFIG_FILE)\nif \"nosetests\" in sys.argv[0] or \"pytest\" in sys.argv[0]:\n    PGA_DB = \"/tmp/pga.db\"\nelse:\n    PGA_DB = sio.read_setting(\"pga_path\") or os.path.join(DATA_DIR, \"pga.db\")\n\nSITE_URL = sio.read_setting(\"website\") or \"https://lutris.net\"\n\nDRIVER_HOWTO_URL = \"https://github.com/lutris/docs/blob/master/InstallingDrivers.md\"\nINSTALLER_URL = SITE_URL + \"/api/installers/%s\"\n# XXX change this, should query on the installer, not the game.\nINSTALLER_REVISION_URL = SITE_URL + \"/api/installers/games/%s/revisions/%s\"\nGAME_URL = SITE_URL + \"/games/%s/\"\nRUNTIME_URL = SITE_URL + \"/api/runtimes\"\n\nSTEAM_API_KEY = sio.read_setting(\"steam_api_key\") or \"34C9698CEB394AB4401D65927C6B3752\"\nDISCORD_CLIENT_ID = sio.read_setting(\"discord_client_id\") or \"618290412402114570\"\n\n\nread_setting = sio.read_setting\nwrite_setting = sio.write_setting\n", "path": "lutris/settings.py"}]}