prompt: You will be provided with a partial code base and an issue statement explaining a problem to resolve.
  <issue>
  status: change nothing to reproduce message
  If I use DVC only to version data/models and don't care about pipelines, this message:
  
  `Pipelines are up to date. Nothing to reproduce.` 
  
  looks really strange.
  
  Let's change it to something more generic:
  
  `Data and pipelines are up to date.` 
  
  or something similar
  
  
  </issue>
  <code>
  [start of dvc/command/status.py]
  1 from __future__ import unicode_literals
  2 
  3 import logging
  4 
  5 from dvc.command.data_sync import CmdDataBase
  6 from dvc.utils.compat import str
  7 
  8 
  9 logger = logging.getLogger(__name__)
  10 
  11 
  12 class CmdDataStatus(CmdDataBase):
  13     STATUS_LEN = 20
  14     STATUS_INDENT = "\t"
  15     UP_TO_DATE_MSG = "Pipelines are up to date. Nothing to reproduce."
  16 
  17     def _normalize(self, s):
  18         s += ":"
  19         assert len(s) < self.STATUS_LEN
  20         return s + (self.STATUS_LEN - len(s)) * " "
  21 
  22     def _show(self, status, indent=0):
  23         ind = indent * self.STATUS_INDENT
  24 
  25         if isinstance(status, str):
  26             logger.info("{}{}".format(ind, status))
  27             return
  28 
  29         if isinstance(status, list):
  30             for entry in status:
  31                 self._show(entry, indent)
  32             return
  33 
  34         assert isinstance(status, dict)
  35 
  36         for key, value in status.items():
  37             if isinstance(value, str):
  38                 logger.info("{}{}{}".format(ind, self._normalize(value), key))
  39             elif value:
  40                 logger.info("{}{}:".format(ind, key))
  41                 self._show(value, indent + 1)
  42 
  43     def run(self):
  44         indent = 1 if self.args.cloud else 0
  45         try:
  46             st = self.repo.status(
  47                 targets=self.args.targets,
  48                 jobs=self.args.jobs,
  49                 cloud=self.args.cloud,
  50                 remote=self.args.remote,
  51                 all_branches=self.args.all_branches,
  52                 all_tags=self.args.all_tags,
  53                 with_deps=self.args.with_deps,
  54             )
  55             if st:
  56                 if self.args.quiet:
  57                     return 1
  58                 else:
  59                     self._show(st, indent)
  60             else:
  61                 logger.info(self.UP_TO_DATE_MSG)
  62 
  63         except Exception:
  64             logger.exception("failed to obtain data status")
  65             return 1
  66         return 0
  67
  [end of dvc/command/status.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/status.py b/dvc/command/status.py
  --- a/dvc/command/status.py
  +++ b/dvc/command/status.py
  @@ -12,7 +12,7 @@
   class CmdDataStatus(CmdDataBase):
       STATUS_LEN = 20
       STATUS_INDENT = "\t"
  -    UP_TO_DATE_MSG = "Pipelines are up to date. Nothing to reproduce."
  +    UP_TO_DATE_MSG = "Data and pipelines are up to date."
   
       def _normalize(self, s):
           s += ":"
  
verification_info: {"golden_diff": "diff --git a/dvc/command/status.py b/dvc/command/status.py\n--- a/dvc/command/status.py\n+++ b/dvc/command/status.py\n@@ -12,7 +12,7 @@\n class CmdDataStatus(CmdDataBase):\n     STATUS_LEN = 20\n     STATUS_INDENT = \"\\t\"\n-    UP_TO_DATE_MSG = \"Pipelines are up to date. Nothing to reproduce.\"\n+    UP_TO_DATE_MSG = \"Data and pipelines are up to date.\"\n \n     def _normalize(self, s):\n         s += \":\"\n", "issue": "status: change nothing to reproduce message\nIf I use DVC only to version data/models and don't care about pipelines, this message:\r\n\r\n`Pipelines are up to date. Nothing to reproduce.` \r\n\r\nlooks really strange.\r\n\r\nLet's change it to something more generic:\r\n\r\n`Data and pipelines are up to date.` \r\n\r\nor something similar\r\n\n", "before_files": [{"content": "from __future__ import unicode_literals\n\nimport logging\n\nfrom dvc.command.data_sync import CmdDataBase\nfrom dvc.utils.compat import str\n\n\nlogger = logging.getLogger(__name__)\n\n\nclass CmdDataStatus(CmdDataBase):\n    STATUS_LEN = 20\n    STATUS_INDENT = \"\\t\"\n    UP_TO_DATE_MSG = \"Pipelines are up to date. Nothing to reproduce.\"\n\n    def _normalize(self, s):\n        s += \":\"\n        assert len(s) < self.STATUS_LEN\n        return s + (self.STATUS_LEN - len(s)) * \" \"\n\n    def _show(self, status, indent=0):\n        ind = indent * self.STATUS_INDENT\n\n        if isinstance(status, str):\n            logger.info(\"{}{}\".format(ind, status))\n            return\n\n        if isinstance(status, list):\n            for entry in status:\n                self._show(entry, indent)\n            return\n\n        assert isinstance(status, dict)\n\n        for key, value in status.items():\n            if isinstance(value, str):\n                logger.info(\"{}{}{}\".format(ind, self._normalize(value), key))\n            elif value:\n                logger.info(\"{}{}:\".format(ind, key))\n                self._show(value, indent + 1)\n\n    def run(self):\n        indent = 1 if self.args.cloud else 0\n        try:\n            st = self.repo.status(\n                targets=self.args.targets,\n                jobs=self.args.jobs,\n                cloud=self.args.cloud,\n                remote=self.args.remote,\n                all_branches=self.args.all_branches,\n                all_tags=self.args.all_tags,\n                with_deps=self.args.with_deps,\n            )\n            if st:\n                if self.args.quiet:\n                    return 1\n                else:\n                    self._show(st, indent)\n            else:\n                logger.info(self.UP_TO_DATE_MSG)\n\n        except Exception:\n            logger.exception(\"failed to obtain data status\")\n            return 1\n        return 0\n", "path": "dvc/command/status.py"}]}