async def revoke(self, user_id, *permissions):
prefix = f"<STR_LIT>"<EOL>perm_names = [str(p) for p in permissions]        <EOL>checkings = [<EOL>KV.delete.txn(prefix + p, b'<STR_LIT>', prev_kv=True) for p in perm_names<EOL>]<EOL>success, response = await self._client.txn(compare=[], success=checkings)<EOL>if not success:<EOL><INDENT>errmsg = f"<STR_LIT>"<EOL>raise Unprocessable(errmsg)<EOL><DEDENT>if logger.isEnabledFor(logging.DEBUG):<EOL><INDENT>revoked, ignored = set(), set()<EOL>for i, item  in enumerate(response):<EOL><INDENT>if item:<EOL><INDENT>revoked.add(perm_names[i])<EOL><DEDENT>else:<EOL><INDENT>ignored.add(perm_names[i])<EOL><DEDENT><DEDENT>logger.debug(f"<STR_LIT>"<EOL>f"<STR_LIT>")<EOL><DEDENT>
取消用户(user_id)的权限(permission)