prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Document the LIFO order in which hooks are executed in `settings.py`
  ### Description
  
  We mention that hook implementations registered in `settings.py` run in LIFO order and that auto discovered hooks run before hooks in `settings.py`. 
  
  - [ ] We need to also document what the order is in which auto-discovered hooks run. Add this to: https://kedro.readthedocs.io/en/stable/hooks/introduction.html To verify the run order, create a project and install several plugins with hooks to test.
  - [ ] Add a comment in the `settings.py` template file to explain the run order of hooks
  
  </issue>
  <code>
  [start of kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py]
  1 """Project settings. There is no need to edit this file unless you want to change values
  2 from the Kedro defaults. For further information, including these default values, see
  3 https://kedro.readthedocs.io/en/stable/kedro_project_setup/settings.html."""
  4 
  5 # Instantiated project hooks.
  6 # For example, after creating a hooks.py and defining a ProjectHooks class there, do
  7 # from {{cookiecutter.python_package}}.hooks import ProjectHooks
  8 # HOOKS = (ProjectHooks(),)
  9 
  10 # Installed plugins for which to disable hook auto-registration.
  11 # DISABLE_HOOKS_FOR_PLUGINS = ("kedro-viz",)
  12 
  13 # Class that manages storing KedroSession data.
  14 # from kedro.framework.session.store import BaseSessionStore
  15 # SESSION_STORE_CLASS = BaseSessionStore
  16 # Keyword arguments to pass to the `SESSION_STORE_CLASS` constructor.
  17 # SESSION_STORE_ARGS = {
  18 #     "path": "./sessions"
  19 # }
  20 
  21 # Directory that holds configuration.
  22 # CONF_SOURCE = "conf"
  23 
  24 # Class that manages how configuration is loaded.
  25 from kedro.config import OmegaConfigLoader  # noqa: import-outside-toplevel
  26 
  27 CONFIG_LOADER_CLASS = OmegaConfigLoader
  28 # Keyword arguments to pass to the `CONFIG_LOADER_CLASS` constructor.
  29 # CONFIG_LOADER_ARGS = {
  30 #       "config_patterns": {
  31 #           "spark" : ["spark*/"],
  32 #           "parameters": ["parameters*", "parameters*/**", "**/parameters*"],
  33 #       }
  34 # }
  35 
  36 # Class that manages Kedro's library components.
  37 # from kedro.framework.context import KedroContext
  38 # CONTEXT_CLASS = KedroContext
  39 
  40 # Class that manages the Data Catalog.
  41 # from kedro.io import DataCatalog
  42 # DATA_CATALOG_CLASS = DataCatalog
  43
  [end of kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/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/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py b/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py
  --- a/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py	
  +++ b/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py	
  @@ -5,6 +5,7 @@
   # Instantiated project hooks.
   # For example, after creating a hooks.py and defining a ProjectHooks class there, do
   # from {{cookiecutter.python_package}}.hooks import ProjectHooks
  +# Hooks are executed in a Last-In-First-Out (LIFO) order.
   # HOOKS = (ProjectHooks(),)
   
   # Installed plugins for which to disable hook auto-registration.
  
verification_info: {"golden_diff": "diff --git a/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py b/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py\n--- a/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py\t\n+++ b/kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py\t\n@@ -5,6 +5,7 @@\n # Instantiated project hooks.\n # For example, after creating a hooks.py and defining a ProjectHooks class there, do\n # from {{cookiecutter.python_package}}.hooks import ProjectHooks\n+# Hooks are executed in a Last-In-First-Out (LIFO) order.\n # HOOKS = (ProjectHooks(),)\n \n # Installed plugins for which to disable hook auto-registration.\n", "issue": "Document the LIFO order in which hooks are executed in `settings.py`\n### Description\r\n\r\nWe mention that hook implementations registered in `settings.py` run in LIFO order and that auto discovered hooks run before hooks in `settings.py`. \r\n\r\n- [ ] We need to also document what the order is in which auto-discovered hooks run. Add this to: https://kedro.readthedocs.io/en/stable/hooks/introduction.html To verify the run order, create a project and install several plugins with hooks to test.\r\n- [ ] Add a comment in the `settings.py` template file to explain the run order of hooks\n", "before_files": [{"content": "\"\"\"Project settings. There is no need to edit this file unless you want to change values\nfrom the Kedro defaults. For further information, including these default values, see\nhttps://kedro.readthedocs.io/en/stable/kedro_project_setup/settings.html.\"\"\"\n\n# Instantiated project hooks.\n# For example, after creating a hooks.py and defining a ProjectHooks class there, do\n# from {{cookiecutter.python_package}}.hooks import ProjectHooks\n# HOOKS = (ProjectHooks(),)\n\n# Installed plugins for which to disable hook auto-registration.\n# DISABLE_HOOKS_FOR_PLUGINS = (\"kedro-viz\",)\n\n# Class that manages storing KedroSession data.\n# from kedro.framework.session.store import BaseSessionStore\n# SESSION_STORE_CLASS = BaseSessionStore\n# Keyword arguments to pass to the `SESSION_STORE_CLASS` constructor.\n# SESSION_STORE_ARGS = {\n#     \"path\": \"./sessions\"\n# }\n\n# Directory that holds configuration.\n# CONF_SOURCE = \"conf\"\n\n# Class that manages how configuration is loaded.\nfrom kedro.config import OmegaConfigLoader  # noqa: import-outside-toplevel\n\nCONFIG_LOADER_CLASS = OmegaConfigLoader\n# Keyword arguments to pass to the `CONFIG_LOADER_CLASS` constructor.\n# CONFIG_LOADER_ARGS = {\n#       \"config_patterns\": {\n#           \"spark\" : [\"spark*/\"],\n#           \"parameters\": [\"parameters*\", \"parameters*/**\", \"**/parameters*\"],\n#       }\n# }\n\n# Class that manages Kedro's library components.\n# from kedro.framework.context import KedroContext\n# CONTEXT_CLASS = KedroContext\n\n# Class that manages the Data Catalog.\n# from kedro.io import DataCatalog\n# DATA_CATALOG_CLASS = DataCatalog\n", "path": "kedro/templates/project/{{ cookiecutter.repo_name }}/src/{{ cookiecutter.python_package }}/settings.py"}]}