prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Mejorar la guía de CONTRIBUTING
  Tenemos una pequeña guía que explica el procedimiento. Sin embargo, estaría bueno mejorarla un poco para que sea más fácil de seguir para persona que no sepan mucho de github y demás herramientas: https://github.com/raulcd/python-docs-es/blob/3.7/CONTRIBUTING.rst
  
  </issue>
  <code>
  [start of conf.py]
  1 # Sphinx configuration file.
  2 #
  3 #  - import original configurations from cpython/Doc/conf.py
  4 #  - append the path considering the cpython submodule is at ./cpython
  5 #  - create the symbolic links under ./cpython/locale/es/LC_MESSAGES
  6 #  - make the build to work under Read the Docs
  7 #
  8 # The git submodule was created using this Stack Overflow answer
  9 # to fetch only the commit that I needed and avoid clonning the whole history
  10 # https://stackoverflow.com/a/27445058
  11 #
  12 # This can be built locally using `sphinx-build` by running
  13 #
  14 #   $ sphinx-build -b html -n -d _build/doctrees -D language=es . _build/html
  15 
  16 import sys, os, time
  17 sys.path.append(os.path.abspath('cpython/Doc/tools/extensions'))
  18 sys.path.append(os.path.abspath('cpython/Doc/includes'))
  19 
  20 # Import all the Sphinx settings from cpython
  21 sys.path.append(os.path.abspath('cpython/Doc'))
  22 from conf import *
  23 
  24 version = '3.7'
  25 release = '3.7.7'
  26 
  27 project = 'Python en Español'
  28 copyright = '2001-%s, Python Software Foundation' % time.strftime('%Y')
  29 
  30 html_theme_path = ['cpython/Doc/tools']
  31 templates_path = ['cpython/Doc/tools/templates']
  32 html_static_path = ['cpython/Doc/tools/static']
  33 
  34 os.system('mkdir -p cpython/locales/es/')
  35 os.system('ln -nfs `pwd` cpython/locales/es/LC_MESSAGES')
  36 
  37 gettext_compact = False
  38 locale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir
  39 
  40 def setup(app):
  41     # Change the sourcedir programmatically because Read the Docs always call it with `.`
  42     app.srcdir = 'cpython/Doc'
  43
  [end of 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/conf.py b/conf.py
  --- a/conf.py
  +++ b/conf.py
  @@ -33,10 +33,34 @@
   
   os.system('mkdir -p cpython/locales/es/')
   os.system('ln -nfs `pwd` cpython/locales/es/LC_MESSAGES')
  +os.system('ln -nfs `pwd`/CONTRIBUTING.rst cpython/Doc/CONTRIBUTING.rst')
   
   gettext_compact = False
   locale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir
   
   def setup(app):
  +
  +    def add_contributing_banner(app, doctree):
  +        """
  +        Insert a banner at the top of the index.
  +
  +        This way, we can easily communicate people to help with the translation,
  +        pointing them to different resources.
  +        """
  +        from docutils import nodes, core
  +
  +        message = '¡Ayúdanos a traducir la documentación oficial de Python al Español! ' \
  +        f'Puedes encontrar más información en `Como contribuir </es/{version}/CONTRIBUTING.html>`_  ' \
  +        'y así ayudarnos a acercar Python a más personas de habla hispana.'
  +
  +        paragraph = core.publish_doctree(message)[0]
  +        banner = nodes.warning(ids=['contributing-banner'])
  +        banner.append(paragraph)
  +
  +        for document in doctree.traverse(nodes.document):
  +            document.insert(0, banner)
  +
       # Change the sourcedir programmatically because Read the Docs always call it with `.`
       app.srcdir = 'cpython/Doc'
  +
  +    app.connect('doctree-read', add_contributing_banner)
  
verification_info: {"golden_diff": "diff --git a/conf.py b/conf.py\n--- a/conf.py\n+++ b/conf.py\n@@ -33,10 +33,34 @@\n \n os.system('mkdir -p cpython/locales/es/')\n os.system('ln -nfs `pwd` cpython/locales/es/LC_MESSAGES')\n+os.system('ln -nfs `pwd`/CONTRIBUTING.rst cpython/Doc/CONTRIBUTING.rst')\n \n gettext_compact = False\n locale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir\n \n def setup(app):\n+\n+    def add_contributing_banner(app, doctree):\n+        \"\"\"\n+        Insert a banner at the top of the index.\n+\n+        This way, we can easily communicate people to help with the translation,\n+        pointing them to different resources.\n+        \"\"\"\n+        from docutils import nodes, core\n+\n+        message = '\u00a1Ay\u00fadanos a traducir la documentaci\u00f3n oficial de Python al Espa\u00f1ol! ' \\\n+        f'Puedes encontrar m\u00e1s informaci\u00f3n en `Como contribuir </es/{version}/CONTRIBUTING.html>`_  ' \\\n+        'y as\u00ed ayudarnos a acercar Python a m\u00e1s personas de habla hispana.'\n+\n+        paragraph = core.publish_doctree(message)[0]\n+        banner = nodes.warning(ids=['contributing-banner'])\n+        banner.append(paragraph)\n+\n+        for document in doctree.traverse(nodes.document):\n+            document.insert(0, banner)\n+\n     # Change the sourcedir programmatically because Read the Docs always call it with `.`\n     app.srcdir = 'cpython/Doc'\n+\n+    app.connect('doctree-read', add_contributing_banner)\n", "issue": "Mejorar la gu\u00eda de CONTRIBUTING\nTenemos una peque\u00f1a gu\u00eda que explica el procedimiento. Sin embargo, estar\u00eda bueno mejorarla un poco para que sea m\u00e1s f\u00e1cil de seguir para persona que no sepan mucho de github y dem\u00e1s herramientas: https://github.com/raulcd/python-docs-es/blob/3.7/CONTRIBUTING.rst\n", "before_files": [{"content": "# Sphinx configuration file.\n#\n#  - import original configurations from cpython/Doc/conf.py\n#  - append the path considering the cpython submodule is at ./cpython\n#  - create the symbolic links under ./cpython/locale/es/LC_MESSAGES\n#  - make the build to work under Read the Docs\n#\n# The git submodule was created using this Stack Overflow answer\n# to fetch only the commit that I needed and avoid clonning the whole history\n# https://stackoverflow.com/a/27445058\n#\n# This can be built locally using `sphinx-build` by running\n#\n#   $ sphinx-build -b html -n -d _build/doctrees -D language=es . _build/html\n\nimport sys, os, time\nsys.path.append(os.path.abspath('cpython/Doc/tools/extensions'))\nsys.path.append(os.path.abspath('cpython/Doc/includes'))\n\n# Import all the Sphinx settings from cpython\nsys.path.append(os.path.abspath('cpython/Doc'))\nfrom conf import *\n\nversion = '3.7'\nrelease = '3.7.7'\n\nproject = 'Python en Espa\u00f1ol'\ncopyright = '2001-%s, Python Software Foundation' % time.strftime('%Y')\n\nhtml_theme_path = ['cpython/Doc/tools']\ntemplates_path = ['cpython/Doc/tools/templates']\nhtml_static_path = ['cpython/Doc/tools/static']\n\nos.system('mkdir -p cpython/locales/es/')\nos.system('ln -nfs `pwd` cpython/locales/es/LC_MESSAGES')\n\ngettext_compact = False\nlocale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir\n\ndef setup(app):\n    # Change the sourcedir programmatically because Read the Docs always call it with `.`\n    app.srcdir = 'cpython/Doc'\n", "path": "conf.py"}]}