telegram.ext.PicklePersistence

class telegram.ext.PicklePersistence(filename, store_user_data=True, store_chat_data=True, singe_file=True, on_flush=False)

Bases: telegram.ext.basepersistence.BasePersistence

Using python’s builtin pickle for making you bot persistent.

filename

str – The filename for storing the pickle files. When single_file is false this will be used as a prefix.

store_user_data

bool – Optional. Whether user_data should be saved by this persistence class.

store_chat_data

bool – Optional. Whether user_data should be saved by this persistence class.

single_file

bool – Optional. When False will store 3 sperate files of filename_user_data, filename_chat_data and filename_conversations. Default is True.

on_flush

bool – Optional. When True will only save to file when flush() is called and keep data in memory until that happens. When False will store data on any transaction. Default is False.

Parameters:
  • filename (str) – The filename for storing the pickle files. When single_file is false this will be used as a prefix.
  • store_user_data (bool, optional) – Whether user_data should be saved by this persistence class. Default is True.
  • store_chat_data (bool, optional) – Whether user_data should be saved by this persistence class. Default is True.
  • single_file (bool, optional) – When False will store 3 sperate files of filename_user_data, filename_chat_data and filename_conversations. Default is True.
  • on_flush (bool, optional) – When True will only save to file when flush() is called and keep data in memory until that happens. When False will store data on any transaction. Default is False.
flush()

If on_flush is set to True. Will save all data in memory to pickle file(s). If it’s False will just pass.

get_chat_data()

Returns the chat_data from the pickle file if it exsists or an empty defaultdict.

Returns:The restored chat data.
Return type:defaultdict
get_conversations(name)

Returns the conversations from the pickle file if it exsists or an empty defaultdict.

Parameters:name (str) – The handlers name.
Returns:The restored conversations for the handler.
Return type:dict
get_user_data()

Returns the user_data from the pickle file if it exsists or an empty defaultdict.

Returns:The restored user data.
Return type:defaultdict
update_chat_data(chat_id, data)

Will update the chat_data (if changed) and depending on on_flush save the pickle file.

Parameters:
  • chat_id (int) – The chat the data might have been changed for.
  • data (dict) – The :attr:`telegram.ext.dispatcher.chat_data`[chat_id].
update_conversation(name, key, new_state)

Will update the conversations for the given handler and depending on on_flush save the pickle file.

Parameters:
  • name (str) – The handlers name.
  • key (tuple) – The key the state is changed for.
  • new_state (tuple | any) – The new state for the given key.
update_user_data(user_id, data)

Will update the user_data (if changed) and depending on on_flush save the pickle file.

Parameters:
  • user_id (int) – The user the data might have been changed for.
  • data (dict) – The :attr:`telegram.ext.dispatcher.user_data`[user_id].