[docs]classModalPaginatorException(discord.DiscordException):"""Base exception class for this extension."""pass
[docs]classNotAModal(ModalPaginatorException):"""Raised when input modal is not an instance/subclass of :class:`discord.ui.Modal`."""def__init__(self,input_value:type,/,*,index:Optional[int]=None,param_name:Optional[str]=None,)->None:self.input_value:type=input_valueself.index:Optional[int]=indexbase_message=f"an instance/subclass of discord.ui.Modal, not {input_value!r}"message="Expected "+(f"{param_name} to be {base_message}"ifparam_nameelsebase_message)ifindexisnotNone:message+=f" at index {index}"super().__init__(f"{message}.")
[docs]classNoModals(ModalPaginatorException):"""Raised when no modals are added to the paginator."""def__init__(self)->None:super().__init__("No modals have been added to the paginator.")
[docs]classInvalidButtonKey(ModalPaginatorException):"""Raised when a button key does not exist."""def__init__(self,key:str,valid_keys:Tuple[str,...])->None:self.key:str=keykeys=", ".join(valid_keys)super().__init__(f"Invalid key in button dictionary: {key!r}. Valid keys are: {keys}")