code: def get_hash(self, image=None):
          '''return an md5 hash of the file based on a criteria level. This
             is intended to give the file a reasonable version. This only is
             useful for actual image files.
      
             Parameters
             ==========
             image: the image path to get hash for (first priority). Second
                    priority is image path saved with image object, if exists.
  
          '''
          hasher = hashlib.md5()
          image = image or self.image
   
          if os.path.exists(image):
              with open(image, "rb") as f:
                  for chunk in iter(lambda: f.read(4096), b""):
                      hasher.update(chunk)
                  return hasher.hexdigest()
  
          bot.warning('%s does not exist.' %imagef get_hash(self, image=None):
          '''return an md5 hash of the file based on a criteria level. This
             is intended to give the file a reasonable version. This only is
             useful for actual image files.
      
             Parameters
             ==========
             image: the image path to get hash for (first priority). Second
                    priority is image path saved with image object, if exists.
  
          '''
          hasher = hashlib.md5()
          image = image or self.image
   
          if os.path.exists(image):
              with open(image, "rb") as f:
                  for chunk in iter(lambda: f.read(4096), b""):
                      hasher.update(chunk)
                  return hasher.hexdigest()
  
          bot.warning('%s does not exist.' %image)
docs: return an md5 hash of the file based on a criteria level. This
             is intended to give the file a reasonable version. This only is
             useful for actual image files.
      
             Parameters
             ==========
             image: the image path to get hash for (first priority). Second
                    priority is image path saved with image object, if exists.