#!/usr/bin/env python3 import argparse import zulip usage = """edit-stream --stream-id [--description --new-name --private --announcement-only --history-public-to-subscribers] Example: edit-stream --stream-id=42 --description="A city in Italy." \ --new-name="Verona" --private Example: edit-stream --stream-id=3 --history-public-to-subscribers """ def quote(string: str) -> str: return f'"{string}"' parser = zulip.add_default_arguments(argparse.ArgumentParser(usage=usage)) parser.add_argument("--stream-id", type=int, required=True) parser.add_argument("--description") parser.add_argument("--new-name") parser.add_argument("--private", action="store_true") parser.add_argument("--announcement-only", action="store_true") parser.add_argument("--history-public-to-subscribers", action="store_true") options = parser.parse_args() client = zulip.init_from_options(options) print( client.update_stream( { "stream_id": options.stream_id, "description": quote(options.description), "new_name": quote(options.new_name), "is_private": options.private, "is_announcement_only": options.announcement_only, "history_public_to_subscribers": options.history_public_to_subscribers, } ) )