<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_signature(self, base_url, payload=None):
 """ Creates unique signature for request. Make sure ALL 'GET' and 'POST' data is already included before creating the signature or receiver won't be able to re-create it. :param base_url: The url you'll using for your request. :param payload: The POST data that you'll be sending. """

        url = urlparse(base_url)

        url_to_sign = "{path}?{query}".format(path=url.path, query=url.query)

        converted_payload = self._convert(payload)

        decoded_key = base64.urlsafe_b64decode(self.private_key.encode('utf-8'))
        signature = hmac.new(decoded_key, str.encode(url_to_sign + converted_payload), hashlib.sha256)
        return bytes.decode(base64.urlsafe_b64encode(signature.digest()))