def convert(self, key): in_fn = "data/{}.blob".format(key) in_mime_type = open("data/{}.mime".format(key)).read() file_extension = mimetypes.guess_extension(in_mime_type).strip(".") data = b64encode(open(in_fn, "rb").read()) proxy = ServerProxy(self.SERVER_URL, allow_none=True) if in_mime_type.startswith("application/vnd.oasis.opendocument"): data = proxy.convertFile(data, file_extension, "pdf") else: pivot_format = self.pivot_format_map[file_extension] data = proxy.convertFile(data, file_extension, pivot_format) data = proxy.convertFile(data, pivot_format, "pdf") converted = b64decode(data) new_key = hashlib.md5(converted).hexdigest() with open("data/{}.blob".format(new_key), "wb") as fd: fd.write(converted) return new_key