def _get_preset(preset_json: dict) -> VersionedPreset: try: preset = VersionedPreset(preset_json) preset.get_preset() # test if valid return preset except Exception as e: raise InvalidAction(f"invalid preset: {e}")
def _add_new_preset(self, preset: VersionedPreset): with self._options as options: options.selected_preset_name = preset.name if self._window_manager.preset_manager.add_new_preset(preset): self._create_button_for_preset(preset) self.on_preset_changed(preset.get_preset())
async def reply_for_preset(message: discord.Message, versioned_preset: VersionedPreset): try: preset = versioned_preset.get_preset() except ValueError as e: logging.info("Invalid preset '{}' from {}: {}".format( versioned_preset.name, message.author.display_name, e)) return embed = discord.Embed(title=preset.name, description=preset.description) for category, items in preset_describer.describe(preset): embed.add_field(name=category, value="\n".join(items), inline=True) await message.reply(embed=embed)