code: def compute_signature(self, uri, params, utf=PY3):
          
          s = uri
          if len(params) > 0:
              for k, v in sorted(params.items()):
                  s += k + v
  
          # compute signature and compare signatures
          mac = hmac.new(self.token, s.encode("utf-8"), sha1)
          computed = base64.b64encode(mac.digest())
          if utf:
              computed = computed.decode('utf-8')
  
          return computed.strip()
docs: Compute the signature for a given request
  
          :param uri: full URI that Twilio requested on your server
          :param params: post vars that Twilio sent with the request
          :param utf: whether return should be bytestring or unicode (python3)
  
          :returns: The computed signature