code: def md5(self):
          
          hash_ = hashlib.md5()
          with self.open("rb") as inf:
              block = inf.read(4096)
              while block:
                  hash_.update(block)
                  block = inf.read(4096)
  
          return hash_.hexdigest()
docs: Returns the md5-sum of this file. This is of course potentially
          expensive!