prompt: We are currently solving the following issue within our repository. Here is the issue text:
  --- BEGIN ISSUE ---
  Translate `library/signal.po`
  This needs to reach 100% translated.
  
  Current stats for `library/signal.po`:
  
  - Fuzzy: 0
  - Percent translated: 0%
  - Entries: 0 / 119
  - Untranslated: 119
  
  Please, comment here if you want this file to be assigned to you and an member will assign it to you as soon as possible, so you can start working on it.
  
  Remember to follow the steps in our [Contributing Guide](https://python-docs-es.readthedocs.io/page/CONTRIBUTING.html).
  
  --- END ISSUE ---
  
  Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
  --- BEGIN FILES ---
  Path: `conf.py`
  Content:
  ```
  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 -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.insert(0, os.path.abspath('cpython/Doc'))
  22 from conf import *
  23 
  24 # Call patchlevel with the proper path to get the version from
  25 # instead of hardcoding it
  26 import patchlevel
  27 version, release = patchlevel.get_header_version_info(os.path.abspath('cpython/Doc'))
  28 
  29 project = 'Python en Español'
  30 copyright = '2001-%s, Python Software Foundation' % time.strftime('%Y')
  31 
  32 html_theme_path = ['cpython/Doc/tools']
  33 templates_path = ['cpython/Doc/tools/templates']
  34 html_static_path = ['cpython/Doc/tools/static']
  35 
  36 os.system('mkdir -p cpython/locales/es/')
  37 os.system('ln -nfs `pwd` cpython/locales/es/LC_MESSAGES')
  38 
  39 html_short_title = f'Documentación {release}'
  40 html_title = f'Documentación de Python en Español -- {release}'
  41 
  42 
  43 # Extend settings from upstream
  44 _exclude_patterns = [
  45     # This file is not included and it not marked as :orphan:
  46     '*/distutils/_setuptools_disclaimer.rst',
  47 ]
  48 if 'exclude_patterns' in globals():
  49     exclude_patterns += _exclude_patterns
  50 else:
  51     exclude_patterns  = _exclude_patterns
  52 
  53 _extensions = [
  54     'sphinx_tabs.tabs',
  55     'sphinxemoji.sphinxemoji',
  56 ]
  57 if 'extensions' in globals():
  58     extensions += _extensions
  59 else:
  60     extensions = _extensions
  61 
  62 
  63 if not os.environ.get('SPHINX_GETTEXT') == 'True':
  64     # Override all the files from ``.overrides`` directory
  65     from pathlib import Path
  66     overrides_paths = Path('.overrides')
  67 
  68     for path in overrides_paths.glob('**/*.*'):
  69         if path.name == 'README.rst' and path.parent == '.overrides':
  70             continue
  71         destroot = str(path.parent).replace('.overrides', '').lstrip('/')
  72         outputdir = Path('cpython/Doc') / destroot / path.name
  73         os.system(f'ln -nfs `pwd`/{path.parent}/{path.name} {outputdir}')
  74 
  75 gettext_compact = False
  76 locale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir
  77 
  78 
  79 # NOTE: Read the Docs does not support "multi document output".
  80 # So, we put all the documentation as a single file for now.
  81 _stdauthor = r'Guido van Rossum\\and the Python development team'
  82 latex_documents = [
  83     ('contents', 'python-docs-es.tex', u'Documentación de Python en Español',
  84      _stdauthor, 'manual'),
  85 ]
  86 
  87 def setup(app):
  88 
  89     def add_contributing_banner(app, doctree):
  90         """
  91         Insert a banner at the top of the index.
  92 
  93         This way, we can easily communicate people to help with the translation,
  94         pointing them to different resources.
  95         """
  96 
  97         if app.builder.format != 'html':
  98             # Do not include the banner when building with other formats
  99             # (this is useful when using -b gettext)
  100             return
  101 
  102         from docutils import nodes, core
  103 
  104         message = '¡Ayúdanos a traducir la documentación oficial de Python al Español! ' \
  105         f'Puedes encontrar más información en `Como contribuir </es/{version}/CONTRIBUTING.html>`_.  ' \
  106         'Ayuda a acercar Python a más personas de habla hispana.'
  107 
  108         paragraph = core.publish_doctree(message)[0]
  109         banner = nodes.warning(ids=['contributing-banner'])
  110         banner.append(paragraph)
  111 
  112         for document in doctree.traverse(nodes.document):
  113             document.insert(0, banner)
  114 
  115     # Change the sourcedir programmatically because Read the Docs always call it with `.`
  116     app.srcdir = 'cpython/Doc'
  117 
  118     app.connect('doctree-read', add_contributing_banner)
  119 
  120     # Import the sphinx-autorun manually to avoid this warning
  121     # TODO: Remove this code and use just ``extensions.append('sphinx_autorun')`` when
  122     # that issue gets fixed
  123     # See https://github.com/WhyNotHugo/sphinx-autorun/issues/17
  124 
  125     # WARNING: the sphinx_autorun extension does not declare if it is safe for
  126     # parallel reading, assuming it isn't - please ask the extension author to
  127     # check and make it explicit
  128     # WARNING: doing serial read
  129     from sphinx_autorun import RunBlock, AutoRun
  130     app.add_directive('runblock', RunBlock)
  131     app.connect('builder-inited', AutoRun.builder_init)
  132     app.add_config_value('autorun_languages', AutoRun.config, 'env')
  133     return {
  134         'version': '0.1',
  135         'parallel_read_safe': True,
  136         'parallel_write_safe': True,
  137     }
  138
  ```
  --- END FILES ---
  
  Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.
  
  Here is an example:
  
  ```diff
  diff --git a/examples/server_async.py b/examples/server_async.py
  --- a/examples/server_async.py
  +++ b/examples/server_async.py
  @@ -313,4 +313,4 @@
   
   
   if __name__ == "__main__":
  -    asyncio.run(run_async_server("."), debug=True)
  +    asyncio.run(run_async_server(), debug=True)
  diff --git a/examples/server_sync.py b/examples/server_sync.py
  --- a/examples/server_sync.py
  +++ b/examples/server_sync.py
  @@ -313,5 +313,5 @@
   
   
   if __name__ == "__main__":
  -    server = run_sync_server(".")
  +    server = run_sync_server()
       server.shutdown()
  
  ```
  
golden_diff: diff --git a/conf.py b/conf.py
  --- a/conf.py
  +++ b/conf.py
  @@ -42,8 +42,9 @@
   
   # Extend settings from upstream
   _exclude_patterns = [
  -    # This file is not included and it not marked as :orphan:
  -    '*/distutils/_setuptools_disclaimer.rst',
  +    # This file is not included and it's not marked as :orphan:
  +    'distutils/_setuptools_disclaimer.rst',
  +    'cpython/Doc/distutils/_setuptools_disclaimer.rst',
   ]
   if 'exclude_patterns' in globals():
       exclude_patterns += _exclude_patterns
  
verification_info: {"golden_diff": "diff --git a/conf.py b/conf.py\n--- a/conf.py\n+++ b/conf.py\n@@ -42,8 +42,9 @@\n \n # Extend settings from upstream\n _exclude_patterns = [\n-    # This file is not included and it not marked as :orphan:\n-    '*/distutils/_setuptools_disclaimer.rst',\n+    # This file is not included and it's not marked as :orphan:\n+    'distutils/_setuptools_disclaimer.rst',\n+    'cpython/Doc/distutils/_setuptools_disclaimer.rst',\n ]\n if 'exclude_patterns' in globals():\n     exclude_patterns += _exclude_patterns\n", "issue": "Translate `library/signal.po`\nThis needs to reach 100% translated.\n\nCurrent stats for `library/signal.po`:\n\n- Fuzzy: 0\n- Percent translated: 0%\n- Entries: 0 / 119\n- Untranslated: 119\n\nPlease, comment here if you want this file to be assigned to you and an member will assign it to you as soon as possible, so you can start working on it.\n\nRemember to follow the steps in our [Contributing Guide](https://python-docs-es.readthedocs.io/page/CONTRIBUTING.html).\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 -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.insert(0, os.path.abspath('cpython/Doc'))\nfrom conf import *\n\n# Call patchlevel with the proper path to get the version from\n# instead of hardcoding it\nimport patchlevel\nversion, release = patchlevel.get_header_version_info(os.path.abspath('cpython/Doc'))\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\nhtml_short_title = f'Documentaci\u00f3n {release}'\nhtml_title = f'Documentaci\u00f3n de Python en Espa\u00f1ol -- {release}'\n\n\n# Extend settings from upstream\n_exclude_patterns = [\n    # This file is not included and it not marked as :orphan:\n    '*/distutils/_setuptools_disclaimer.rst',\n]\nif 'exclude_patterns' in globals():\n    exclude_patterns += _exclude_patterns\nelse:\n    exclude_patterns  = _exclude_patterns\n\n_extensions = [\n    'sphinx_tabs.tabs',\n    'sphinxemoji.sphinxemoji',\n]\nif 'extensions' in globals():\n    extensions += _extensions\nelse:\n    extensions = _extensions\n\n\nif not os.environ.get('SPHINX_GETTEXT') == 'True':\n    # Override all the files from ``.overrides`` directory\n    from pathlib import Path\n    overrides_paths = Path('.overrides')\n\n    for path in overrides_paths.glob('**/*.*'):\n        if path.name == 'README.rst' and path.parent == '.overrides':\n            continue\n        destroot = str(path.parent).replace('.overrides', '').lstrip('/')\n        outputdir = Path('cpython/Doc') / destroot / path.name\n        os.system(f'ln -nfs `pwd`/{path.parent}/{path.name} {outputdir}')\n\ngettext_compact = False\nlocale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir\n\n\n# NOTE: Read the Docs does not support \"multi document output\".\n# So, we put all the documentation as a single file for now.\n_stdauthor = r'Guido van Rossum\\\\and the Python development team'\nlatex_documents = [\n    ('contents', 'python-docs-es.tex', u'Documentaci\u00f3n de Python en Espa\u00f1ol',\n     _stdauthor, 'manual'),\n]\n\ndef 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\n        if app.builder.format != 'html':\n            # Do not include the banner when building with other formats\n            # (this is useful when using -b gettext)\n            return\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        'Ayuda 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\n    # Import the sphinx-autorun manually to avoid this warning\n    # TODO: Remove this code and use just ``extensions.append('sphinx_autorun')`` when\n    # that issue gets fixed\n    # See https://github.com/WhyNotHugo/sphinx-autorun/issues/17\n\n    # WARNING: the sphinx_autorun extension does not declare if it is safe for\n    # parallel reading, assuming it isn't - please ask the extension author to\n    # check and make it explicit\n    # WARNING: doing serial read\n    from sphinx_autorun import RunBlock, AutoRun\n    app.add_directive('runblock', RunBlock)\n    app.connect('builder-inited', AutoRun.builder_init)\n    app.add_config_value('autorun_languages', AutoRun.config, 'env')\n    return {\n        'version': '0.1',\n        'parallel_read_safe': True,\n        'parallel_write_safe': True,\n    }\n", "path": "conf.py"}], "after_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 -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.insert(0, os.path.abspath('cpython/Doc'))\nfrom conf import *\n\n# Call patchlevel with the proper path to get the version from\n# instead of hardcoding it\nimport patchlevel\nversion, release = patchlevel.get_header_version_info(os.path.abspath('cpython/Doc'))\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\nhtml_short_title = f'Documentaci\u00f3n {release}'\nhtml_title = f'Documentaci\u00f3n de Python en Espa\u00f1ol -- {release}'\n\n\n# Extend settings from upstream\n_exclude_patterns = [\n    # This file is not included and it's not marked as :orphan:\n    'distutils/_setuptools_disclaimer.rst',\n    'cpython/Doc/distutils/_setuptools_disclaimer.rst',\n]\nif 'exclude_patterns' in globals():\n    exclude_patterns += _exclude_patterns\nelse:\n    exclude_patterns  = _exclude_patterns\n\n_extensions = [\n    'sphinx_tabs.tabs',\n    'sphinxemoji.sphinxemoji',\n]\nif 'extensions' in globals():\n    extensions += _extensions\nelse:\n    extensions = _extensions\n\n\nif not os.environ.get('SPHINX_GETTEXT') == 'True':\n    # Override all the files from ``.overrides`` directory\n    from pathlib import Path\n    overrides_paths = Path('.overrides')\n\n    for path in overrides_paths.glob('**/*.*'):\n        if path.name == 'README.rst' and path.parent == '.overrides':\n            continue\n        destroot = str(path.parent).replace('.overrides', '').lstrip('/')\n        outputdir = Path('cpython/Doc') / destroot / path.name\n        os.system(f'ln -nfs `pwd`/{path.parent}/{path.name} {outputdir}')\n\ngettext_compact = False\nlocale_dirs = ['../locales', 'cpython/locales']  # relative to the sourcedir\n\n\n# NOTE: Read the Docs does not support \"multi document output\".\n# So, we put all the documentation as a single file for now.\n_stdauthor = r'Guido van Rossum\\\\and the Python development team'\nlatex_documents = [\n    ('contents', 'python-docs-es.tex', u'Documentaci\u00f3n de Python en Espa\u00f1ol',\n     _stdauthor, 'manual'),\n]\n\ndef 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\n        if app.builder.format != 'html':\n            # Do not include the banner when building with other formats\n            # (this is useful when using -b gettext)\n            return\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        'Ayuda 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\n    # Import the sphinx-autorun manually to avoid this warning\n    # TODO: Remove this code and use just ``extensions.append('sphinx_autorun')`` when\n    # that issue gets fixed\n    # See https://github.com/WhyNotHugo/sphinx-autorun/issues/17\n\n    # WARNING: the sphinx_autorun extension does not declare if it is safe for\n    # parallel reading, assuming it isn't - please ask the extension author to\n    # check and make it explicit\n    # WARNING: doing serial read\n    from sphinx_autorun import RunBlock, AutoRun\n    app.add_directive('runblock', RunBlock)\n    app.connect('builder-inited', AutoRun.builder_init)\n    app.add_config_value('autorun_languages', AutoRun.config, 'env')\n    return {\n        'version': '0.1',\n        'parallel_read_safe': True,\n        'parallel_write_safe': True,\n    }\n", "path": "conf.py"}]}