def create(cls, request, version, hashedID, packagename, filename):
   upload = Upload(device=Device.create(hashedID), version=version, received_time=now(),
                   packagename=packagename, upload_filename=filename)
   
   content = util.unzip_stream(request).read().decode('utf-8', errors='ignore')
   upload.bytes = len(content)
   
   if os.path.exists(upload.filename):
     raise BackendValidationError("upload file already exists")
   else:
     util.stream_to_file(StringIO.StringIO(content), upload.filename)
   
   try:
     upload.full_clean()
     upload.compress(save=False)
   except:
     do_remove_linked_file(upload.filename, upload.basedir())
     raise
   
   return upload
    def create(cls, request, version, hashedID, packagename, filename):
        upload = Upload(device=Device.create(hashedID),
                        version=version,
                        received_time=now(),
                        packagename=packagename,
                        upload_filename=filename)

        content = util.unzip_stream(request).read().decode('utf-8',
                                                           errors='ignore')
        upload.bytes = len(content)

        if os.path.exists(upload.filename):
            raise BackendValidationError("upload file already exists")
        else:
            util.stream_to_file(StringIO.StringIO(content), upload.filename)

        try:
            upload.full_clean()
            upload.compress(save=False)
        except:
            do_remove_linked_file(upload.filename, upload.basedir())
            raise

        return upload
def write_canonical_xml(root, filename, mode=0440):  
  xml_string = StringIO.StringIO()
  etree.ElementTree(root).write_c14n(xml_string)
  util.stream_to_file(xml_string, filename, compressed=True)
def write_canonical_xml(root, filename, mode=0440):
    xml_string = StringIO.StringIO()
    etree.ElementTree(root).write_c14n(xml_string)
    util.stream_to_file(xml_string, filename, compressed=True)