prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Set NAUTOBOT_INSTALLATION_METRICS_ENABLED=false in the dockerfile dev stage
  <!--
      NOTE: This template is for use by maintainers only. Please do not submit
      an issue using this template unless you have been specifically asked to
      do so.
  -->
  ### Proposed Changes
  
  This should propagate to all of the app dev instances since they base off of nautobot dev images. Make sure to unset this in the final stage
  
  <!-- Provide justification for the proposed change(s). -->
  ### Justification
  
  We don't want to send metrics for dev environments
  
  </issue>
  <code>
  [start of development/nautobot_config.py]
  1 """Nautobot development configuration file."""
  2 import os
  3 
  4 from nautobot.core.settings import *  # noqa: F403
  5 from nautobot.core.settings_funcs import is_truthy
  6 
  7 #
  8 # Debugging defaults to True rather than False for the development environment
  9 #
  10 DEBUG = is_truthy(os.getenv("NAUTOBOT_DEBUG", "True"))
  11 
  12 # Django Debug Toolbar - enabled only when debugging
  13 if DEBUG:
  14     if "debug_toolbar" not in INSTALLED_APPS:  # noqa: F405
  15         INSTALLED_APPS.append("debug_toolbar")  # noqa: F405
  16     if "debug_toolbar.middleware.DebugToolbarMiddleware" not in MIDDLEWARE:  # noqa: F405
  17         MIDDLEWARE.insert(0, "debug_toolbar.middleware.DebugToolbarMiddleware")  # noqa: F405
  18     # By default the toolbar only displays when the request is coming from one of INTERNAL_IPS.
  19     # For the Docker dev environment, we don't know in advance what that IP may be, so override to skip that check
  20     DEBUG_TOOLBAR_CONFIG = {"SHOW_TOOLBAR_CALLBACK": lambda _request: DEBUG}
  21 
  22 #
  23 # Logging for the development environment, taking into account the redefinition of DEBUG above
  24 #
  25 
  26 LOG_LEVEL = "DEBUG" if DEBUG else "INFO"
  27 LOGGING["loggers"]["nautobot"]["handlers"] = ["verbose_console" if DEBUG else "normal_console"]  # noqa: F405
  28 LOGGING["loggers"]["nautobot"]["level"] = LOG_LEVEL  # noqa: F405
  29 
  30 #
  31 # Plugins
  32 #
  33 
  34 PLUGINS = [
  35     "example_plugin",
  36 ]
  37 
  38 
  39 #
  40 # Development Environment for SSO
  41 # Configure `invoke.yml` based on example for SSO development environment
  42 #
  43 
  44 # OIDC Dev ENV
  45 if is_truthy(os.getenv("ENABLE_OIDC", "False")):
  46     import requests
  47 
  48     AUTHENTICATION_BACKENDS = (
  49         "social_core.backends.keycloak.KeycloakOAuth2",
  50         "nautobot.core.authentication.ObjectPermissionBackend",
  51     )
  52     SOCIAL_AUTH_KEYCLOAK_KEY = "nautobot"
  53     SOCIAL_AUTH_KEYCLOAK_SECRET = "7b1c3527-8702-4742-af69-2b74ee5742e8"
  54     SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY = requests.get("http://keycloak:8087/realms/nautobot/", timeout=15).json()[
  55         "public_key"
  56     ]
  57     SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL = "http://localhost:8087/realms/nautobot/protocol/openid-connect/auth"
  58     SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL = "http://keycloak:8087/realms/nautobot/protocol/openid-connect/token"
  59     SOCIAL_AUTH_KEYCLOAK_VERIFY_SSL = False
  60 
  61 METRICS_ENABLED = True
  62 
  63 CELERY_WORKER_PROMETHEUS_PORTS = [8080]
  64
  [end of development/nautobot_config.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/development/nautobot_config.py b/development/nautobot_config.py
  --- a/development/nautobot_config.py
  +++ b/development/nautobot_config.py
  @@ -19,6 +19,9 @@
       # For the Docker dev environment, we don't know in advance what that IP may be, so override to skip that check
       DEBUG_TOOLBAR_CONFIG = {"SHOW_TOOLBAR_CALLBACK": lambda _request: DEBUG}
   
  +# Do *not* send anonymized install metrics when post_upgrade or send_installation_metrics management commands are run
  +INSTALLATION_METRICS_ENABLED = is_truthy(os.getenv("NAUTOBOT_INSTALLATION_METRICS_ENABLED", "False"))
  +
   #
   # Logging for the development environment, taking into account the redefinition of DEBUG above
   #
  
verification_info: {"golden_diff": "diff --git a/development/nautobot_config.py b/development/nautobot_config.py\n--- a/development/nautobot_config.py\n+++ b/development/nautobot_config.py\n@@ -19,6 +19,9 @@\n     # For the Docker dev environment, we don't know in advance what that IP may be, so override to skip that check\n     DEBUG_TOOLBAR_CONFIG = {\"SHOW_TOOLBAR_CALLBACK\": lambda _request: DEBUG}\n \n+# Do *not* send anonymized install metrics when post_upgrade or send_installation_metrics management commands are run\n+INSTALLATION_METRICS_ENABLED = is_truthy(os.getenv(\"NAUTOBOT_INSTALLATION_METRICS_ENABLED\", \"False\"))\n+\n #\n # Logging for the development environment, taking into account the redefinition of DEBUG above\n #\n", "issue": "Set NAUTOBOT_INSTALLATION_METRICS_ENABLED=false in the dockerfile dev stage\n<!--\r\n    NOTE: This template is for use by maintainers only. Please do not submit\r\n    an issue using this template unless you have been specifically asked to\r\n    do so.\r\n-->\r\n### Proposed Changes\r\n\r\nThis should propagate to all of the app dev instances since they base off of nautobot dev images. Make sure to unset this in the final stage\r\n\r\n<!-- Provide justification for the proposed change(s). -->\r\n### Justification\r\n\r\nWe don't want to send metrics for dev environments\n", "before_files": [{"content": "\"\"\"Nautobot development configuration file.\"\"\"\nimport os\n\nfrom nautobot.core.settings import *  # noqa: F403\nfrom nautobot.core.settings_funcs import is_truthy\n\n#\n# Debugging defaults to True rather than False for the development environment\n#\nDEBUG = is_truthy(os.getenv(\"NAUTOBOT_DEBUG\", \"True\"))\n\n# Django Debug Toolbar - enabled only when debugging\nif DEBUG:\n    if \"debug_toolbar\" not in INSTALLED_APPS:  # noqa: F405\n        INSTALLED_APPS.append(\"debug_toolbar\")  # noqa: F405\n    if \"debug_toolbar.middleware.DebugToolbarMiddleware\" not in MIDDLEWARE:  # noqa: F405\n        MIDDLEWARE.insert(0, \"debug_toolbar.middleware.DebugToolbarMiddleware\")  # noqa: F405\n    # By default the toolbar only displays when the request is coming from one of INTERNAL_IPS.\n    # For the Docker dev environment, we don't know in advance what that IP may be, so override to skip that check\n    DEBUG_TOOLBAR_CONFIG = {\"SHOW_TOOLBAR_CALLBACK\": lambda _request: DEBUG}\n\n#\n# Logging for the development environment, taking into account the redefinition of DEBUG above\n#\n\nLOG_LEVEL = \"DEBUG\" if DEBUG else \"INFO\"\nLOGGING[\"loggers\"][\"nautobot\"][\"handlers\"] = [\"verbose_console\" if DEBUG else \"normal_console\"]  # noqa: F405\nLOGGING[\"loggers\"][\"nautobot\"][\"level\"] = LOG_LEVEL  # noqa: F405\n\n#\n# Plugins\n#\n\nPLUGINS = [\n    \"example_plugin\",\n]\n\n\n#\n# Development Environment for SSO\n# Configure `invoke.yml` based on example for SSO development environment\n#\n\n# OIDC Dev ENV\nif is_truthy(os.getenv(\"ENABLE_OIDC\", \"False\")):\n    import requests\n\n    AUTHENTICATION_BACKENDS = (\n        \"social_core.backends.keycloak.KeycloakOAuth2\",\n        \"nautobot.core.authentication.ObjectPermissionBackend\",\n    )\n    SOCIAL_AUTH_KEYCLOAK_KEY = \"nautobot\"\n    SOCIAL_AUTH_KEYCLOAK_SECRET = \"7b1c3527-8702-4742-af69-2b74ee5742e8\"\n    SOCIAL_AUTH_KEYCLOAK_PUBLIC_KEY = requests.get(\"http://keycloak:8087/realms/nautobot/\", timeout=15).json()[\n        \"public_key\"\n    ]\n    SOCIAL_AUTH_KEYCLOAK_AUTHORIZATION_URL = \"http://localhost:8087/realms/nautobot/protocol/openid-connect/auth\"\n    SOCIAL_AUTH_KEYCLOAK_ACCESS_TOKEN_URL = \"http://keycloak:8087/realms/nautobot/protocol/openid-connect/token\"\n    SOCIAL_AUTH_KEYCLOAK_VERIFY_SSL = False\n\nMETRICS_ENABLED = True\n\nCELERY_WORKER_PROMETHEUS_PORTS = [8080]\n", "path": "development/nautobot_config.py"}]}