code: def md5(self, path):
          
          uname = self.execute("uname").strip()
  
          command = {
              "Darwin": "md5 {}".format(path),
              "Linux": "md5sum --tag {}".format(path),
          }.get(uname)
  
          if not command:
              raise DvcException(
                  "'{uname}' is not supported as a remote".format(uname=uname)
              )
  
          md5 = self.execute(command).split()[-1]
          assert len(md5) == 32
          return md5
docs: Use different md5 commands depending on the OS:
  
           - Darwin's `md5` returns BSD-style checksums by default
           - Linux's `md5sum` needs the `--tag` flag for a similar output
  
           Example:
                MD5 (foo.txt) = f3d220a856b52aabbf294351e8a24300