code: async def finish(self, *,
                       chat: typing.Union[str, int, None] = None,
                       user: typing.Union[str, int, None] = None):
          
          await self.reset_state(chat=chat, user=user, with_data=True)
docs: Finish conversation for user in chat.
  
          Chat or user is always required. If one of them is not provided,
          you have to set missing value based on the provided one.
  
          :param chat:
          :param user:
          :return: