def create_alert_settings(self, kind, settings, alert_defaults): default = TelegramAlarm._defaults[kind] default.update(alert_defaults) settings = Alarm.pop_type(settings, kind, dict, {}) alert = TelegramAlarm.Alert( bot_token=Alarm.pop_type(settings, 'bot_token', unicode, default['bot_token']), chat_id=Alarm.pop_type(settings, 'chat_id', unicode, default['chat_id']), sticker=Alarm.pop_type(settings, 'sticker', utils.parse_bool, default['sticker']), sticker_url=Alarm.pop_type(settings, 'sticker_url', unicode, default['sticker_url']), sticker_notify=Alarm.pop_type(settings, 'sticker_notify', utils.parse_bool, default['sticker_notify']), message=Alarm.pop_type(settings, 'message', unicode, default['message']), message_notify=Alarm.pop_type(settings, 'message_notify', utils.parse_bool, default['message_notify']), venue=Alarm.pop_type(settings, 'venue', utils.parse_bool, default['venue']), venue_notify=Alarm.pop_type(settings, 'venue_notify', utils.parse_bool, default['venue_notify']), map=Alarm.pop_type(settings, 'map', utils.parse_bool, default['map']), map_notify=Alarm.pop_type(settings, 'map_notify', utils.parse_bool, default['map_notify']), max_attempts=Alarm.pop_type(settings, 'max_attempts', int, default['max_attempts']), web_preview=Alarm.pop_type(settings, 'web_preview', utils.parse_bool, default['web_preview'])) # Reject leftover parameters for key in settings: raise ValueError("'{}' is not a recognized parameter for the Alert" " level in a Telegram Alarm".format(key)) return alert
def create_alert_settings(self, kind, settings, alert_defaults): default = TelegramAlarm._defaults[kind] default.update(alert_defaults) settings = Alarm.pop_type(settings, kind, dict, {}) alert = TelegramAlarm.Alert( bot_token=Alarm.pop_type( settings, 'bot_token', unicode, default['bot_token']), chat_id=Alarm.pop_type( settings, 'chat_id', unicode, default['chat_id']), sticker=Alarm.pop_type( settings, 'sticker', utils.parse_bool, default['sticker']), sticker_url=Alarm.pop_type( settings, 'sticker_url', unicode, default['sticker_url']), sticker_notify=Alarm.pop_type( settings, 'sticker_notify', utils.parse_bool, default['sticker_notify']), message=Alarm.pop_type( settings, 'message', unicode, default['message']), message_notify=Alarm.pop_type( settings, 'message_notify', utils.parse_bool, default['message_notify']), venue=Alarm.pop_type( settings, 'venue', utils.parse_bool, default['venue']), venue_notify=Alarm.pop_type( settings, 'venue_notify', utils.parse_bool, default['venue_notify']), map=Alarm.pop_type( settings, 'map', utils.parse_bool, default['map']), map_notify=Alarm.pop_type( settings, 'map_notify', utils.parse_bool, default['map_notify']), max_attempts=Alarm.pop_type( settings, 'max_attempts', int, default['max_attempts']), web_preview=Alarm.pop_type( settings, 'web_preview', utils.parse_bool, default['web_preview']) ) # Reject leftover parameters for key in settings: raise ValueError( "'{}' is not a recognized parameter for the Alert" " level in a Telegram Alarm".format(key)) return alert