<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _new_multipart_upload(self, bucket_name, object_name, metadata=None, sse=None):
 """ Initialize new multipart upload request. :param bucket_name: Bucket name of the new multipart request. :param object_name: Object name of the new multipart request. :param metadata: Additional new metadata for the new object. :return: Returns an upload id. """

        is_valid_bucket_name(bucket_name)
        is_non_empty_string(object_name)

        headers = {}
        if metadata:
            headers.update(metadata)
        if sse:
            headers.update(sse.marshal())

        response = self._url_open('POST', bucket_name=bucket_name,
                                  object_name=object_name,
                                  query={'uploads': ''},
                                  headers=headers)

        return parse_new_multipart_upload(response.data)