prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  Confusing error message to end user
  In https://github.com/rtfd/readthedocs.org/issues/4071#issuecomment-405939492 I realized that we are saying that we have a problem parsing the YAML file but the problem is in fact in one of the options set from the web admin dashboard.
  
  Example:
  
  ![captura de pantalla_2018-07-18_10-57-36](https://user-images.githubusercontent.com/244656/42886232-647bedbc-8a79-11e8-8aca-fe2430139fe0.png)
  
  There is no `requirements_file` entry in the YAML file (https://github.com/geopandas/geopandas/blob/master/readthedocs.yml) but it exists under the `Admin -> Advanced Settings` field form.
  
  We need to improve this error to something more user-friendly that expresses the real error. It's not an error on parsing the YAML file. The file was parsed properly, but the problem is with one of the values from one of the fields.
  
  </issue>
  <code>
  [start of readthedocs/doc_builder/exceptions.py]
  1 # -*- coding: utf-8 -*-
  2 """Exceptions raised when building documentation."""
  3 
  4 from __future__ import division, print_function, unicode_literals
  5 
  6 from django.utils.translation import ugettext_noop
  7 
  8 
  9 class BuildEnvironmentException(Exception):
  10     message = None
  11     status_code = None
  12 
  13     def __init__(self, message=None, **kwargs):
  14         self.status_code = kwargs.pop('status_code', None) or self.status_code or 1
  15         message = message or self.get_default_message()
  16         super(BuildEnvironmentException, self).__init__(message, **kwargs)
  17 
  18     def get_default_message(self):
  19         return self.message
  20 
  21 
  22 class BuildEnvironmentError(BuildEnvironmentException):
  23     GENERIC_WITH_BUILD_ID = ugettext_noop(
  24         'There was a problem with Read the Docs while building your documentation. '
  25         'Please try again later. '
  26         'However, if this problem persists, '
  27         'please report this to us with your build id ({build_id}).',
  28     )
  29 
  30 
  31 class BuildEnvironmentCreationFailed(BuildEnvironmentError):
  32     message = ugettext_noop('Build environment creation failed')
  33 
  34 
  35 class VersionLockedError(BuildEnvironmentError):
  36     message = ugettext_noop('Version locked, retrying in 5 minutes.')
  37     status_code = 423
  38 
  39 
  40 class ProjectBuildsSkippedError(BuildEnvironmentError):
  41     message = ugettext_noop('Builds for this project are temporarily disabled')
  42 
  43 
  44 class YAMLParseError(BuildEnvironmentError):
  45     GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(
  46         'Problem parsing YAML configuration. {exception}',
  47     )
  48 
  49 
  50 class BuildTimeoutError(BuildEnvironmentError):
  51     message = ugettext_noop('Build exited due to time out')
  52 
  53 
  54 class BuildEnvironmentWarning(BuildEnvironmentException):
  55     pass
  56 
  57 
  58 class MkDocsYAMLParseError(BuildEnvironmentError):
  59     GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(
  60         'Problem parsing MkDocs YAML configuration. {exception}',
  61     )
  62
  [end of readthedocs/doc_builder/exceptions.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/readthedocs/doc_builder/exceptions.py b/readthedocs/doc_builder/exceptions.py
  --- a/readthedocs/doc_builder/exceptions.py
  +++ b/readthedocs/doc_builder/exceptions.py
  @@ -43,7 +43,7 @@
   
   class YAMLParseError(BuildEnvironmentError):
       GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(
  -        'Problem parsing YAML configuration. {exception}',
  +        'Problem in your project\'s configuration. {exception}',
       )
  
verification_info: {"golden_diff": "diff --git a/readthedocs/doc_builder/exceptions.py b/readthedocs/doc_builder/exceptions.py\n--- a/readthedocs/doc_builder/exceptions.py\n+++ b/readthedocs/doc_builder/exceptions.py\n@@ -43,7 +43,7 @@\n \n class YAMLParseError(BuildEnvironmentError):\n     GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(\n-        'Problem parsing YAML configuration. {exception}',\n+        'Problem in your project\\'s configuration. {exception}',\n     )\n", "issue": "Confusing error message to end user\nIn https://github.com/rtfd/readthedocs.org/issues/4071#issuecomment-405939492 I realized that we are saying that we have a problem parsing the YAML file but the problem is in fact in one of the options set from the web admin dashboard.\r\n\r\nExample:\r\n\r\n![captura de pantalla_2018-07-18_10-57-36](https://user-images.githubusercontent.com/244656/42886232-647bedbc-8a79-11e8-8aca-fe2430139fe0.png)\r\n\r\nThere is no `requirements_file` entry in the YAML file (https://github.com/geopandas/geopandas/blob/master/readthedocs.yml) but it exists under the `Admin -> Advanced Settings` field form.\r\n\r\nWe need to improve this error to something more user-friendly that expresses the real error. It's not an error on parsing the YAML file. The file was parsed properly, but the problem is with one of the values from one of the fields.\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\"\"\"Exceptions raised when building documentation.\"\"\"\n\nfrom __future__ import division, print_function, unicode_literals\n\nfrom django.utils.translation import ugettext_noop\n\n\nclass BuildEnvironmentException(Exception):\n    message = None\n    status_code = None\n\n    def __init__(self, message=None, **kwargs):\n        self.status_code = kwargs.pop('status_code', None) or self.status_code or 1\n        message = message or self.get_default_message()\n        super(BuildEnvironmentException, self).__init__(message, **kwargs)\n\n    def get_default_message(self):\n        return self.message\n\n\nclass BuildEnvironmentError(BuildEnvironmentException):\n    GENERIC_WITH_BUILD_ID = ugettext_noop(\n        'There was a problem with Read the Docs while building your documentation. '\n        'Please try again later. '\n        'However, if this problem persists, '\n        'please report this to us with your build id ({build_id}).',\n    )\n\n\nclass BuildEnvironmentCreationFailed(BuildEnvironmentError):\n    message = ugettext_noop('Build environment creation failed')\n\n\nclass VersionLockedError(BuildEnvironmentError):\n    message = ugettext_noop('Version locked, retrying in 5 minutes.')\n    status_code = 423\n\n\nclass ProjectBuildsSkippedError(BuildEnvironmentError):\n    message = ugettext_noop('Builds for this project are temporarily disabled')\n\n\nclass YAMLParseError(BuildEnvironmentError):\n    GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(\n        'Problem parsing YAML configuration. {exception}',\n    )\n\n\nclass BuildTimeoutError(BuildEnvironmentError):\n    message = ugettext_noop('Build exited due to time out')\n\n\nclass BuildEnvironmentWarning(BuildEnvironmentException):\n    pass\n\n\nclass MkDocsYAMLParseError(BuildEnvironmentError):\n    GENERIC_WITH_PARSE_EXCEPTION = ugettext_noop(\n        'Problem parsing MkDocs YAML configuration. {exception}',\n    )\n", "path": "readthedocs/doc_builder/exceptions.py"}]}