@@ -266,6 +266,14 @@ def get_default_config_filename() -> Optional[str]:
266
266
" mv ~/.humbugrc ~/.zuliprc\n " )
267
267
return config_file
268
268
269
+ def deprecated_request (request : Optional [Dict [str , Any ]]) -> Dict [str , Any ]:
270
+ if request is not None :
271
+ logger .warning (
272
+ "Passing parameters as a dictionary will be removed in future versions."
273
+ )
274
+ return request
275
+ return {}
276
+
269
277
def validate_boolean_field (field : Optional [Text ]) -> Union [bool , None ]:
270
278
if not isinstance (field , str ):
271
279
return None
@@ -1072,7 +1080,7 @@ def deregister(self, queue_id: str, timeout: Optional[float] = None) -> Dict[str
1072
1080
timeout = timeout ,
1073
1081
)
1074
1082
1075
- def get_profile (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1083
+ def get_profile (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1076
1084
'''
1077
1085
Example usage:
1078
1086
@@ -1082,7 +1090,7 @@ def get_profile(self, request: Optional[Dict[str, Any]] = None) -> Dict[str, Any
1082
1090
return self .call_endpoint (
1083
1091
url = 'users/me' ,
1084
1092
method = 'GET' ,
1085
- request = request ,
1093
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1086
1094
)
1087
1095
1088
1096
def get_user_presence (self , email : str ) -> Dict [str , Any ]:
@@ -1109,21 +1117,21 @@ def get_realm_presence(self) -> Dict[str, Any]:
1109
1117
method = 'GET' ,
1110
1118
)
1111
1119
1112
- def update_presence (self , request : Dict [str , Any ]) -> Dict [str , Any ]:
1120
+ def update_presence (self , request : Optional [ Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1113
1121
'''
1114
1122
Example usage:
1115
1123
1116
- >>> client.update_presence({
1124
+ >>> client.update_presence(
1117
1125
status='active',
1118
1126
ping_only=False,
1119
1127
new_user_input=False,
1120
- } )
1128
+ )
1121
1129
{'result': 'success', 'server_timestamp': 1333649180.7073195, 'presences': {'[email protected] ': { ... }}, 'msg': ''}
1122
1130
'''
1123
1131
return self .call_endpoint (
1124
1132
url = 'users/me/presence' ,
1125
1133
method = 'POST' ,
1126
- request = request ,
1134
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1127
1135
)
1128
1136
1129
1137
def get_streams (self , ** request : Any ) -> Dict [str , Any ]:
@@ -1228,22 +1236,22 @@ def update_user_by_id(self, user_id: int, **request: Any) -> Dict[str, Any]:
1228
1236
request = request
1229
1237
)
1230
1238
1231
- def get_users (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1239
+ def get_users (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1232
1240
'''
1233
1241
See examples/list-users for example usage.
1234
1242
'''
1235
1243
return self .call_endpoint (
1236
1244
url = 'users' ,
1237
1245
method = 'GET' ,
1238
- request = request ,
1246
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1239
1247
)
1240
1248
1241
- def get_members (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1249
+ def get_members (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1242
1250
# This exists for backwards-compatibility; we renamed this
1243
1251
# function get_users for consistency with the rest of the API.
1244
1252
# Later, we may want to add a warning for clients using this
1245
1253
# legacy name.
1246
- return self .get_users (request = request )
1254
+ return self .get_users (request = request , ** kwargs )
1247
1255
1248
1256
def get_alert_words (self ) -> Dict [str , Any ]:
1249
1257
'''
@@ -1278,20 +1286,20 @@ def remove_alert_words(self, alert_words: List[str]) -> Dict[str, Any]:
1278
1286
}
1279
1287
)
1280
1288
1281
- def get_subscriptions (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1289
+ def get_subscriptions (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1282
1290
'''
1283
1291
See examples/get-subscriptions for example usage.
1284
1292
'''
1285
1293
return self .call_endpoint (
1286
1294
url = 'users/me/subscriptions' ,
1287
1295
method = 'GET' ,
1288
- request = request ,
1296
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1289
1297
)
1290
1298
1291
- def list_subscriptions (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1299
+ def list_subscriptions (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1292
1300
logger .warning ("list_subscriptions() is deprecated."
1293
1301
" Please use get_subscriptions() instead." )
1294
- return self .get_subscriptions (request )
1302
+ return self .get_subscriptions (request , ** kwargs )
1295
1303
1296
1304
def add_subscriptions (self , streams : Iterable [Dict [str , Any ]], ** kwargs : Any ) -> Dict [str , Any ]:
1297
1305
'''
@@ -1334,14 +1342,14 @@ def get_subscription_status(self, user_id: int, stream_id: int) -> Dict[str, Any
1334
1342
method = 'GET' ,
1335
1343
)
1336
1344
1337
- def mute_topic (self , request : Dict [str , Any ]) -> Dict [str , Any ]:
1345
+ def mute_topic (self , request : Optional [ Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1338
1346
'''
1339
1347
See examples/mute-topic for example usage.
1340
1348
'''
1341
1349
return self .call_endpoint (
1342
1350
url = 'users/me/subscriptions/muted_topics' ,
1343
1351
method = 'PATCH' ,
1344
- request = request
1352
+ request = { ** deprecated_request ( request ), ** kwargs },
1345
1353
)
1346
1354
1347
1355
def update_subscription_settings (self , subscription_data : List [Dict [str , Any ]]) -> Dict [str , Any ]:
@@ -1491,72 +1499,72 @@ def get_subscribers(self, **request: Any) -> Dict[str, Any]:
1491
1499
request = request ,
1492
1500
)
1493
1501
1494
- def render_message (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1502
+ def render_message (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1495
1503
'''
1496
1504
Example usage:
1497
1505
1498
- >>> client.render_message(request=dict( content='foo **bar**') )
1506
+ >>> client.render_message(content='foo **bar**')
1499
1507
{u'msg': u'', u'rendered': u'<p>foo <strong>bar</strong></p>', u'result': u'success'}
1500
1508
'''
1501
1509
return self .call_endpoint (
1502
1510
url = 'messages/render' ,
1503
1511
method = 'POST' ,
1504
- request = request ,
1512
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1505
1513
)
1506
1514
1507
- def create_user (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1515
+ def create_user (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1508
1516
'''
1509
1517
See examples/create-user for example usage.
1510
1518
'''
1511
1519
return self .call_endpoint (
1512
1520
method = 'POST' ,
1513
1521
url = 'users' ,
1514
- request = request ,
1522
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1515
1523
)
1516
1524
1517
- def update_storage (self , request : Dict [str , Any ]) -> Dict [str , Any ]:
1525
+ def update_storage (self , request : Dict [str , Any ] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1518
1526
'''
1519
1527
Example usage:
1520
1528
1521
- >>> client.update_storage({' storage': {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"} })
1522
- >>> client.get_storage({' keys': ["entry 1", "entry 3"]} )
1529
+ >>> client.update_storage(storage = {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"})
1530
+ >>> client.get_storage(keys = ["entry 1", "entry 3"])
1523
1531
{'result': 'success', 'storage': {'entry 1': 'value 1', 'entry 3': 'value 3'}, 'msg': ''}
1524
1532
'''
1525
1533
return self .call_endpoint (
1526
1534
url = 'bot_storage' ,
1527
1535
method = 'PUT' ,
1528
- request = request ,
1536
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1529
1537
)
1530
1538
1531
- def get_storage (self , request : Optional [Dict [str , Any ]] = None ) -> Dict [str , Any ]:
1539
+ def get_storage (self , request : Optional [Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1532
1540
'''
1533
1541
Example usage:
1534
1542
1535
- >>> client.update_storage({' storage': {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"} })
1543
+ >>> client.update_storage(storage = {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"})
1536
1544
>>> client.get_storage()
1537
1545
{'result': 'success', 'storage': {"entry 1": "value 1", "entry 2": "value 2", "entry 3": "value 3"}, 'msg': ''}
1538
- >>> client.get_storage({' keys': ["entry 1", "entry 3"]} )
1546
+ >>> client.get_storage(keys = ["entry 1", "entry 3"])
1539
1547
{'result': 'success', 'storage': {'entry 1': 'value 1', 'entry 3': 'value 3'}, 'msg': ''}
1540
1548
'''
1541
1549
return self .call_endpoint (
1542
1550
url = 'bot_storage' ,
1543
1551
method = 'GET' ,
1544
- request = request ,
1552
+ request = { ** deprecated_request ( request ), ** kwargs } ,
1545
1553
)
1546
1554
1547
- def set_typing_status (self , request : Dict [str , Any ]) -> Dict [str , Any ]:
1555
+ def set_typing_status (self , request : Optional [ Dict [str , Any ]] = None , ** kwargs : Any ) -> Dict [str , Any ]:
1548
1556
'''
1549
1557
Example usage:
1550
- >>> client.set_typing_status({
1551
- 'op': 'start',
1552
- 'to': [9, 10],
1553
- } )
1558
+ >>> client.set_typing_status(
1559
+ op = 'start'
1560
+ to = [9, 10]
1561
+ )
1554
1562
{'result': 'success', 'msg': ''}
1555
1563
'''
1556
1564
return self .call_endpoint (
1557
1565
url = 'typing' ,
1558
1566
method = 'POST' ,
1559
- request = request
1567
+ request = { ** deprecated_request ( request ), ** kwargs }
1560
1568
)
1561
1569
1562
1570
def move_topic (
0 commit comments