prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  typo in docs
  super minor typo:
  
  $dvc repro --help
   -c CWD, --cwd CWD     Directory within your repo to **reroduce** from.
  
  dvc --version
  0.30.1
  
  
  
  </issue>
  <code>
  [start of dvc/command/repro.py]
  1 from __future__ import unicode_literals
  2 
  3 import os
  4 
  5 import dvc.logger as logger
  6 from dvc.command.base import CmdBase
  7 from dvc.command.status import CmdDataStatus
  8 from dvc.exceptions import DvcException
  9 
  10 
  11 class CmdRepro(CmdBase):
  12     def run(self):
  13         recursive = not self.args.single_item
  14         saved_dir = os.path.realpath(os.curdir)
  15         if self.args.cwd:
  16             os.chdir(self.args.cwd)
  17 
  18         # Dirty hack so the for loop below can at least enter once
  19         if self.args.all_pipelines:
  20             self.args.targets = [None]
  21         elif not self.args.targets:
  22             self.args.targets = self.default_targets
  23 
  24         ret = 0
  25         for target in self.args.targets:
  26             try:
  27                 stages = self.repo.reproduce(
  28                     target,
  29                     recursive=recursive,
  30                     force=self.args.force,
  31                     dry=self.args.dry,
  32                     interactive=self.args.interactive,
  33                     pipeline=self.args.pipeline,
  34                     all_pipelines=self.args.all_pipelines,
  35                     ignore_build_cache=self.args.ignore_build_cache,
  36                     no_commit=self.args.no_commit,
  37                 )
  38 
  39                 if len(stages) == 0:
  40                     logger.info(CmdDataStatus.UP_TO_DATE_MSG)
  41 
  42                 if self.args.metrics:
  43                     self.repo.metrics.show()
  44             except DvcException:
  45                 logger.error()
  46                 ret = 1
  47                 break
  48 
  49         os.chdir(saved_dir)
  50         return ret
  51 
  52 
  53 def add_parser(subparsers, parent_parser):
  54     REPRO_HELP = "Reproduce DVC file. Default file name - 'Dvcfile'."
  55     repro_parser = subparsers.add_parser(
  56         "repro",
  57         parents=[parent_parser],
  58         description=REPRO_HELP,
  59         help=REPRO_HELP,
  60     )
  61     repro_parser.add_argument(
  62         "targets", nargs="*", help="DVC file to reproduce."
  63     )
  64     repro_parser.add_argument(
  65         "-f",
  66         "--force",
  67         action="store_true",
  68         default=False,
  69         help="Reproduce even if dependencies were not changed.",
  70     )
  71     repro_parser.add_argument(
  72         "-s",
  73         "--single-item",
  74         action="store_true",
  75         default=False,
  76         help="Reproduce only single data item without recursive dependencies "
  77         "check.",
  78     )
  79     repro_parser.add_argument(
  80         "-c",
  81         "--cwd",
  82         default=os.path.curdir,
  83         help="Directory within your repo to reroduce from.",
  84     )
  85     repro_parser.add_argument(
  86         "-m",
  87         "--metrics",
  88         action="store_true",
  89         default=False,
  90         help="Show metrics after reproduction.",
  91     )
  92     repro_parser.add_argument(
  93         "--dry",
  94         action="store_true",
  95         default=False,
  96         help="Only print the commands that would be executed without "
  97         "actually executing.",
  98     )
  99     repro_parser.add_argument(
  100         "-i",
  101         "--interactive",
  102         action="store_true",
  103         default=False,
  104         help="Ask for confirmation before reproducing each stage.",
  105     )
  106     repro_parser.add_argument(
  107         "-p",
  108         "--pipeline",
  109         action="store_true",
  110         default=False,
  111         help="Reproduce the whole pipeline that the specified stage file "
  112         "belongs to.",
  113     )
  114     repro_parser.add_argument(
  115         "-P",
  116         "--all-pipelines",
  117         action="store_true",
  118         default=False,
  119         help="Reproduce all pipelines in the repo.",
  120     )
  121     repro_parser.add_argument(
  122         "--ignore-build-cache",
  123         action="store_true",
  124         default=False,
  125         help="Reproduce all descendants of a changed stage even if their "
  126         "direct dependencies didn't change.",
  127     )
  128     repro_parser.add_argument(
  129         "--no-commit",
  130         action="store_true",
  131         default=False,
  132         help="Don't put files/directories into cache.",
  133     )
  134     repro_parser.set_defaults(func=CmdRepro)
  135
  [end of dvc/command/repro.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/dvc/command/repro.py b/dvc/command/repro.py
  --- a/dvc/command/repro.py
  +++ b/dvc/command/repro.py
  @@ -80,7 +80,7 @@
           "-c",
           "--cwd",
           default=os.path.curdir,
  -        help="Directory within your repo to reroduce from.",
  +        help="Directory within your repo to reproduce from.",
       )
       repro_parser.add_argument(
           "-m",
  
verification_info: {"golden_diff": "diff --git a/dvc/command/repro.py b/dvc/command/repro.py\n--- a/dvc/command/repro.py\n+++ b/dvc/command/repro.py\n@@ -80,7 +80,7 @@\n         \"-c\",\n         \"--cwd\",\n         default=os.path.curdir,\n-        help=\"Directory within your repo to reroduce from.\",\n+        help=\"Directory within your repo to reproduce from.\",\n     )\n     repro_parser.add_argument(\n         \"-m\",\n", "issue": "typo in docs\nsuper minor typo:\r\n\r\n$dvc repro --help\r\n -c CWD, --cwd CWD     Directory within your repo to **reroduce** from.\r\n\r\ndvc --version\r\n0.30.1\r\n\r\n\n", "before_files": [{"content": "from __future__ import unicode_literals\n\nimport os\n\nimport dvc.logger as logger\nfrom dvc.command.base import CmdBase\nfrom dvc.command.status import CmdDataStatus\nfrom dvc.exceptions import DvcException\n\n\nclass CmdRepro(CmdBase):\n    def run(self):\n        recursive = not self.args.single_item\n        saved_dir = os.path.realpath(os.curdir)\n        if self.args.cwd:\n            os.chdir(self.args.cwd)\n\n        # Dirty hack so the for loop below can at least enter once\n        if self.args.all_pipelines:\n            self.args.targets = [None]\n        elif not self.args.targets:\n            self.args.targets = self.default_targets\n\n        ret = 0\n        for target in self.args.targets:\n            try:\n                stages = self.repo.reproduce(\n                    target,\n                    recursive=recursive,\n                    force=self.args.force,\n                    dry=self.args.dry,\n                    interactive=self.args.interactive,\n                    pipeline=self.args.pipeline,\n                    all_pipelines=self.args.all_pipelines,\n                    ignore_build_cache=self.args.ignore_build_cache,\n                    no_commit=self.args.no_commit,\n                )\n\n                if len(stages) == 0:\n                    logger.info(CmdDataStatus.UP_TO_DATE_MSG)\n\n                if self.args.metrics:\n                    self.repo.metrics.show()\n            except DvcException:\n                logger.error()\n                ret = 1\n                break\n\n        os.chdir(saved_dir)\n        return ret\n\n\ndef add_parser(subparsers, parent_parser):\n    REPRO_HELP = \"Reproduce DVC file. Default file name - 'Dvcfile'.\"\n    repro_parser = subparsers.add_parser(\n        \"repro\",\n        parents=[parent_parser],\n        description=REPRO_HELP,\n        help=REPRO_HELP,\n    )\n    repro_parser.add_argument(\n        \"targets\", nargs=\"*\", help=\"DVC file to reproduce.\"\n    )\n    repro_parser.add_argument(\n        \"-f\",\n        \"--force\",\n        action=\"store_true\",\n        default=False,\n        help=\"Reproduce even if dependencies were not changed.\",\n    )\n    repro_parser.add_argument(\n        \"-s\",\n        \"--single-item\",\n        action=\"store_true\",\n        default=False,\n        help=\"Reproduce only single data item without recursive dependencies \"\n        \"check.\",\n    )\n    repro_parser.add_argument(\n        \"-c\",\n        \"--cwd\",\n        default=os.path.curdir,\n        help=\"Directory within your repo to reroduce from.\",\n    )\n    repro_parser.add_argument(\n        \"-m\",\n        \"--metrics\",\n        action=\"store_true\",\n        default=False,\n        help=\"Show metrics after reproduction.\",\n    )\n    repro_parser.add_argument(\n        \"--dry\",\n        action=\"store_true\",\n        default=False,\n        help=\"Only print the commands that would be executed without \"\n        \"actually executing.\",\n    )\n    repro_parser.add_argument(\n        \"-i\",\n        \"--interactive\",\n        action=\"store_true\",\n        default=False,\n        help=\"Ask for confirmation before reproducing each stage.\",\n    )\n    repro_parser.add_argument(\n        \"-p\",\n        \"--pipeline\",\n        action=\"store_true\",\n        default=False,\n        help=\"Reproduce the whole pipeline that the specified stage file \"\n        \"belongs to.\",\n    )\n    repro_parser.add_argument(\n        \"-P\",\n        \"--all-pipelines\",\n        action=\"store_true\",\n        default=False,\n        help=\"Reproduce all pipelines in the repo.\",\n    )\n    repro_parser.add_argument(\n        \"--ignore-build-cache\",\n        action=\"store_true\",\n        default=False,\n        help=\"Reproduce all descendants of a changed stage even if their \"\n        \"direct dependencies didn't change.\",\n    )\n    repro_parser.add_argument(\n        \"--no-commit\",\n        action=\"store_true\",\n        default=False,\n        help=\"Don't put files/directories into cache.\",\n    )\n    repro_parser.set_defaults(func=CmdRepro)\n", "path": "dvc/command/repro.py"}]}