def reply_object(self, message: Message, obj: Union[TELEGRAM_OBJECT_TO_SEND, TELEGRAM_OBJECT_WITH_CAPTION_TO_SEND], reply_markup: Union[ReplyKeyboardMarkup, ReplyKeyboardRemove] = None, silent: bool = False): caption = None if isinstance(obj, list) or isinstance(obj, tuple): if len(obj) == 2 and obj[ 0].__class__ in ALLOWED_TELEGRAM_OBJECTS_WITH_CAPTION: caption = obj[1] obj = obj[0] else: raise AttributeError if isinstance(obj, str): message.reply_text(obj, reply_markup=reply_markup, parse_mode=self.parse_mode, disable_notification=silent) elif isinstance(obj, Audio): message.reply_audio(obj, caption=caption, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Contact): message.reply_contact(obj, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Document): message.reply_document(obj, caption=caption, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Location): message.reply_location(location=obj, reply_markup=reply_markup, disable_notification=silent) if isinstance(obj, PhotoSize): message.reply_photo(obj, caption=caption, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Sticker): message.reply_sticker(obj, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Venue): message.reply_venue(obj, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Video): message.reply_video(obj, caption=caption, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, VideoNote): message.reply_video_note(obj, reply_markup=reply_markup, disable_notification=silent) elif isinstance(obj, Voice): message.reply_voice(obj, caption=caption, reply_markup=reply_markup, disable_notification=silent)