<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 async def check_key(self, key, chat=None, user=None):
 """ Get information about key in bucket :param key: :param chat: :param user: :return: """

        if not self.storage.has_bucket():
            raise RuntimeError('This storage does not provide Leaky Bucket')

        if user is None and chat is None:
            user = types.User.get_current()
            chat = types.Chat.get_current()

        bucket = await self.storage.get_bucket(chat=chat, user=user)
        data = bucket.get(key, {})
        return Throttled(key=key, chat=chat, user=user, **data)