From d5a199738f3a1f23cc5fee8815b505d04622692f Mon Sep 17 00:00:00 2001 From: Agnish Bauri Date: Tue, 12 May 2026 17:48:32 +0530 Subject: [PATCH 1/2] zulip: Link bot_storage helpers to REST API docs. Adds `# See https://zulip.com/api/...` references above the update_storage and get_storage helpers. Done in preparation for adding remove_storage, so all three storage helpers carry the same reference. --- zulip/zulip/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zulip/zulip/__init__.py b/zulip/zulip/__init__.py index 82190a51d..c070daafb 100644 --- a/zulip/zulip/__init__.py +++ b/zulip/zulip/__init__.py @@ -1633,6 +1633,7 @@ def create_user(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any request=request, ) + # See https://zulip.com/api/update-bot-storage def update_storage(self, request: Dict[str, Any]) -> Dict[str, Any]: """ Example usage: @@ -1647,6 +1648,7 @@ def update_storage(self, request: Dict[str, Any]) -> Dict[str, Any]: request=request, ) + # See https://zulip.com/api/get-bot-storage def get_storage(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: """ Example usage: From 1fe51588bce7deae2d28d0cb6bb3b7674053c500 Mon Sep 17 00:00:00 2001 From: Agnish Bauri Date: Tue, 12 May 2026 17:49:12 +0530 Subject: [PATCH 2/2] zulip: Add remove_storage helper to Client. Mirrors update_storage and get_storage, sending DELETE to /bot_storage. With no argument, removes all data stored for the bot; passing {"keys": [...]} removes only the specified entries. The corresponding endpoint is bot-only as of Zulip 12.0 (API feature level 494), so this helper only succeeds for bot users. Fixes #637. --- zulip/zulip/__init__.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/zulip/zulip/__init__.py b/zulip/zulip/__init__.py index c070daafb..6d725a10b 100644 --- a/zulip/zulip/__init__.py +++ b/zulip/zulip/__init__.py @@ -1665,6 +1665,23 @@ def get_storage(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any request=request, ) + # See https://zulip.com/api/remove-bot-storage + def remove_storage(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any]: + """ + Example usage: + + >>> client.update_storage({'storage': {"entry 1": "value 1", "entry 2": "value 2"}}) + >>> client.remove_storage({'keys': ["entry 1"]}) + {'result': 'success', 'msg': ''} + >>> client.remove_storage() + {'result': 'success', 'msg': ''} + """ + return self.call_endpoint( + url="bot_storage", + method="DELETE", + request=request, + ) + def set_typing_status(self, request: Dict[str, Any]) -> Dict[str, Any]: """ Example usage: