docs: def _get_file_name(self, contentDisposition,
                         url, ext=".unknown"):
          """ gets the file name from the header or url if possible """
          if self.PY2:
              if contentDisposition is not None:
                  return re.findall(r'filename[^;=\n]*=(([\'"]).*?\2|[^;\n]*)',
                                    contentDisposition.strip().replace('"', ''))[0][0]
              elif os.path.basename(url).find('.') > -1:
                  return os.path.basename(url)
          elif self.PY3:
              if contentDisposition is not None:
                  p = re.compile(r'filename[^;=\n]*=(([\'"]).*?\2|[^;\n]*)')
                  return p.findall(contentDisposition.strip().replace('"', ''))[0][0]
              elif os.path.basename(url).find('.') > -1:
                  return os.path.basename(url)
          return "%s.%s" % (uuid.uuid4().get_hex(), ext)