prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Update quickstart guide to reflect user research
  Updates quickstart guide to reflect most common tasks as discovered in our "buy a feature" user research.
  
  Preview: https://pip--9137.org.readthedocs.build/en/9137/quickstart/
  
  </issue>
  <code>
  [start of docs/html/conf.py]
  1 """Sphinx configuration file for pip's documentation."""
  2 
  3 import glob
  4 import os
  5 import pathlib
  6 import re
  7 import sys
  8 from typing import List, Tuple
  9 
  10 # Add the docs/ directory to sys.path, because pip_sphinxext.py is there.
  11 docs_dir = os.path.dirname(os.path.dirname(__file__))
  12 sys.path.insert(0, docs_dir)
  13 
  14 # -- General configuration ------------------------------------------------------------
  15 
  16 extensions = [
  17     # first-party extensions
  18     "sphinx.ext.autodoc",
  19     "sphinx.ext.todo",
  20     "sphinx.ext.extlinks",
  21     "sphinx.ext.intersphinx",
  22     # our extensions
  23     "pip_sphinxext",
  24     # third-party extensions
  25     "myst_parser",
  26     "sphinx_copybutton",
  27     "sphinx_inline_tabs",
  28     "sphinxcontrib.towncrier",
  29 ]
  30 
  31 # General information about the project.
  32 project = "pip"
  33 copyright = "2008-2020, PyPA"
  34 
  35 # Find the version and release information.
  36 # We have a single source of truth for our version number: pip's __init__.py file.
  37 # This next bit of code reads from it.
  38 file_with_version = os.path.join(docs_dir, "..", "src", "pip", "__init__.py")
  39 with open(file_with_version) as f:
  40     for line in f:
  41         m = re.match(r'__version__ = "(.*)"', line)
  42         if m:
  43             __version__ = m.group(1)
  44             # The short X.Y version.
  45             version = ".".join(__version__.split(".")[:2])
  46             # The full version, including alpha/beta/rc tags.
  47             release = __version__
  48             break
  49     else:  # AKA no-break
  50         version = release = "dev"
  51 
  52 print("pip version:", version)
  53 print("pip release:", release)
  54 
  55 # -- Options for smartquotes ----------------------------------------------------------
  56 
  57 # Disable the conversion of dashes so that long options like "--find-links" won't
  58 # render as "-find-links" if included in the text.The default of "qDe" converts normal
  59 # quote characters ('"' and "'"), en and em dashes ("--" and "---"), and ellipses "..."
  60 smartquotes_action = "qe"
  61 
  62 # -- Options for intersphinx ----------------------------------------------------------
  63 
  64 intersphinx_mapping = {
  65     "python": ("https://docs.python.org/3", None),
  66     "pypug": ("https://packaging.python.org", None),
  67 }
  68 
  69 # -- Options for extlinks -------------------------------------------------------------
  70 
  71 extlinks = {
  72     "issue": ("https://github.com/pypa/pip/issues/%s", "#"),
  73     "pull": ("https://github.com/pypa/pip/pull/%s", "PR #"),
  74     "pypi": ("https://pypi.org/project/%s/", ""),
  75 }
  76 
  77 # -- Options for towncrier_draft extension --------------------------------------------
  78 
  79 towncrier_draft_autoversion_mode = "draft"  # or: 'sphinx-release', 'sphinx-version'
  80 towncrier_draft_include_empty = True
  81 towncrier_draft_working_directory = pathlib.Path(docs_dir).parent
  82 # Not yet supported: towncrier_draft_config_path = 'pyproject.toml'  # relative to cwd
  83 
  84 # -- Options for HTML -----------------------------------------------------------------
  85 
  86 html_theme = "furo"
  87 html_title = f"{project} documentation v{release}"
  88 
  89 # Disable the generation of the various indexes
  90 html_use_modindex = False
  91 html_use_index = False
  92 
  93 # -- Options for Manual Pages ---------------------------------------------------------
  94 
  95 
  96 # List of manual pages generated
  97 def determine_man_pages() -> List[Tuple[str, str, str, str, int]]:
  98     """Determine which man pages need to be generated."""
  99 
  100     def to_document_name(path: str, base_dir: str) -> str:
  101         """Convert a provided path to a Sphinx "document name"."""
  102         relative_path = os.path.relpath(path, base_dir)
  103         root, _ = os.path.splitext(relative_path)
  104         return root.replace(os.sep, "/")
  105 
  106     # Crawl the entire man/commands/ directory and list every file with appropriate
  107     # name and details.
  108     man_dir = os.path.join(docs_dir, "man")
  109     raw_subcommands = glob.glob(os.path.join(man_dir, "commands/*.rst"))
  110     if not raw_subcommands:
  111         raise FileNotFoundError(
  112             "The individual subcommand manpages could not be found!"
  113         )
  114 
  115     retval = [
  116         ("index", "pip", "package manager for Python packages", "pip developers", 1),
  117     ]
  118     for fname in raw_subcommands:
  119         fname_base = to_document_name(fname, man_dir)
  120         outname = "pip-" + fname_base.split("/")[1]
  121         description = "description of {} command".format(outname.replace("-", " "))
  122 
  123         retval.append((fname_base, outname, description, "pip developers", 1))
  124 
  125     return retval
  126 
  127 
  128 man_pages = determine_man_pages()
  129
  [end of docs/html/conf.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/docs/html/conf.py b/docs/html/conf.py
  --- a/docs/html/conf.py
  +++ b/docs/html/conf.py
  @@ -30,7 +30,7 @@
   
   # General information about the project.
   project = "pip"
  -copyright = "2008-2020, PyPA"
  +copyright = "The pip developers"
   
   # Find the version and release information.
   # We have a single source of truth for our version number: pip's __init__.py file.
  
verification_info: {"golden_diff": "diff --git a/docs/html/conf.py b/docs/html/conf.py\n--- a/docs/html/conf.py\n+++ b/docs/html/conf.py\n@@ -30,7 +30,7 @@\n \n # General information about the project.\n project = \"pip\"\n-copyright = \"2008-2020, PyPA\"\n+copyright = \"The pip developers\"\n \n # Find the version and release information.\n # We have a single source of truth for our version number: pip's __init__.py file.\n", "issue": "Update quickstart guide to reflect user research\nUpdates quickstart guide to reflect most common tasks as discovered in our \"buy a feature\" user research.\r\n\r\nPreview: https://pip--9137.org.readthedocs.build/en/9137/quickstart/\n", "before_files": [{"content": "\"\"\"Sphinx configuration file for pip's documentation.\"\"\"\n\nimport glob\nimport os\nimport pathlib\nimport re\nimport sys\nfrom typing import List, Tuple\n\n# Add the docs/ directory to sys.path, because pip_sphinxext.py is there.\ndocs_dir = os.path.dirname(os.path.dirname(__file__))\nsys.path.insert(0, docs_dir)\n\n# -- General configuration ------------------------------------------------------------\n\nextensions = [\n    # first-party extensions\n    \"sphinx.ext.autodoc\",\n    \"sphinx.ext.todo\",\n    \"sphinx.ext.extlinks\",\n    \"sphinx.ext.intersphinx\",\n    # our extensions\n    \"pip_sphinxext\",\n    # third-party extensions\n    \"myst_parser\",\n    \"sphinx_copybutton\",\n    \"sphinx_inline_tabs\",\n    \"sphinxcontrib.towncrier\",\n]\n\n# General information about the project.\nproject = \"pip\"\ncopyright = \"2008-2020, PyPA\"\n\n# Find the version and release information.\n# We have a single source of truth for our version number: pip's __init__.py file.\n# This next bit of code reads from it.\nfile_with_version = os.path.join(docs_dir, \"..\", \"src\", \"pip\", \"__init__.py\")\nwith open(file_with_version) as f:\n    for line in f:\n        m = re.match(r'__version__ = \"(.*)\"', line)\n        if m:\n            __version__ = m.group(1)\n            # The short X.Y version.\n            version = \".\".join(__version__.split(\".\")[:2])\n            # The full version, including alpha/beta/rc tags.\n            release = __version__\n            break\n    else:  # AKA no-break\n        version = release = \"dev\"\n\nprint(\"pip version:\", version)\nprint(\"pip release:\", release)\n\n# -- Options for smartquotes ----------------------------------------------------------\n\n# Disable the conversion of dashes so that long options like \"--find-links\" won't\n# render as \"-find-links\" if included in the text.The default of \"qDe\" converts normal\n# quote characters ('\"' and \"'\"), en and em dashes (\"--\" and \"---\"), and ellipses \"...\"\nsmartquotes_action = \"qe\"\n\n# -- Options for intersphinx ----------------------------------------------------------\n\nintersphinx_mapping = {\n    \"python\": (\"https://docs.python.org/3\", None),\n    \"pypug\": (\"https://packaging.python.org\", None),\n}\n\n# -- Options for extlinks -------------------------------------------------------------\n\nextlinks = {\n    \"issue\": (\"https://github.com/pypa/pip/issues/%s\", \"#\"),\n    \"pull\": (\"https://github.com/pypa/pip/pull/%s\", \"PR #\"),\n    \"pypi\": (\"https://pypi.org/project/%s/\", \"\"),\n}\n\n# -- Options for towncrier_draft extension --------------------------------------------\n\ntowncrier_draft_autoversion_mode = \"draft\"  # or: 'sphinx-release', 'sphinx-version'\ntowncrier_draft_include_empty = True\ntowncrier_draft_working_directory = pathlib.Path(docs_dir).parent\n# Not yet supported: towncrier_draft_config_path = 'pyproject.toml'  # relative to cwd\n\n# -- Options for HTML -----------------------------------------------------------------\n\nhtml_theme = \"furo\"\nhtml_title = f\"{project} documentation v{release}\"\n\n# Disable the generation of the various indexes\nhtml_use_modindex = False\nhtml_use_index = False\n\n# -- Options for Manual Pages ---------------------------------------------------------\n\n\n# List of manual pages generated\ndef determine_man_pages() -> List[Tuple[str, str, str, str, int]]:\n    \"\"\"Determine which man pages need to be generated.\"\"\"\n\n    def to_document_name(path: str, base_dir: str) -> str:\n        \"\"\"Convert a provided path to a Sphinx \"document name\".\"\"\"\n        relative_path = os.path.relpath(path, base_dir)\n        root, _ = os.path.splitext(relative_path)\n        return root.replace(os.sep, \"/\")\n\n    # Crawl the entire man/commands/ directory and list every file with appropriate\n    # name and details.\n    man_dir = os.path.join(docs_dir, \"man\")\n    raw_subcommands = glob.glob(os.path.join(man_dir, \"commands/*.rst\"))\n    if not raw_subcommands:\n        raise FileNotFoundError(\n            \"The individual subcommand manpages could not be found!\"\n        )\n\n    retval = [\n        (\"index\", \"pip\", \"package manager for Python packages\", \"pip developers\", 1),\n    ]\n    for fname in raw_subcommands:\n        fname_base = to_document_name(fname, man_dir)\n        outname = \"pip-\" + fname_base.split(\"/\")[1]\n        description = \"description of {} command\".format(outname.replace(\"-\", \" \"))\n\n        retval.append((fname_base, outname, description, \"pip developers\", 1))\n\n    return retval\n\n\nman_pages = determine_man_pages()\n", "path": "docs/html/conf.py"}]}