telegram.ext.PicklePersistence¶
-
class
telegram.ext.
PicklePersistence
(*args, **kwargs)¶ Bases:
telegram.ext.basepersistence.BasePersistence
Using python’s builtin pickle for making you bot persistent.
Warning
PicklePersistence
will try to replacetelegram.Bot
instances byREPLACED_BOT
and insert the bot set withtelegram.ext.BasePersistence.set_bot()
upon loading of the data. This is to ensure that changes to the bot apply to the saved objects, too. If you change the bots token, this may lead to e.g.Chat not found
errors. For the limitations on replacing bots seetelegram.ext.BasePersistence.replace_bot()
andtelegram.ext.BasePersistence.insert_bot()
.- Parameters
filename (
str
) – The filename for storing the pickle files. Whensingle_file
isFalse
this will be used as a prefix.store_user_data (
bool
, optional) – Whether user_data should be saved by this persistence class. Default isTrue
.store_chat_data (
bool
, optional) – Whether user_data should be saved by this persistence class. Default isTrue
.store_bot_data (
bool
, optional) – Whether bot_data should be saved by this persistence class. Default isTrue
.single_file (
bool
, optional) – WhenFalse
will store 3 separate files of filename_user_data, filename_chat_data and filename_conversations. Default isTrue
.on_flush (
bool
, optional) – WhenTrue
will only save to file whenflush()
is called and keep data in memory until that happens. WhenFalse
will store data on any transaction and on call toflush()
. Default isFalse
.
-
filename
¶ The filename for storing the pickle files. When
single_file
isFalse
this will be used as a prefix.- Type
str
-
store_user_data
¶ Optional. Whether user_data should be saved by this persistence class.
- Type
bool
-
store_chat_data
¶ Optional. Whether user_data should be saved by this persistence class.
- Type
bool
-
store_bot_data
¶ Optional. Whether bot_data should be saved by this persistence class.
- Type
bool
-
single_file
¶ Optional. When
False
will store 3 separate files of filename_user_data, filename_chat_data and filename_conversations. Default isTrue
.- Type
bool
-
on_flush
¶ When
True
will only save to file whenflush()
is called and keep data in memory until that happens. WhenFalse
will store data on any transaction and on call toflush()
. Default isFalse
.- Type
bool
, optional
-
flush
()¶ Will save all data in memory to pickle file(s).
-
get_bot_data
()¶ Returns the bot_data from the pickle file if it exists or an empty
dict
.- Returns
The restored bot data.
- Return type
dict
-
get_chat_data
()¶ Returns the chat_data from the pickle file if it exists 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 dict.
- 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 exists or an empty
defaultdict
.- Returns
The restored user data.
- Return type
defaultdict
-
update_bot_data
(data)¶ Will update the bot_data and depending on
on_flush
save the pickle file.- Parameters
data (
dict
) – Thetelegram.ext.dispatcher.bot_data
.
-
update_chat_data
(chat_id, data)¶ Will update the chat_data and depending on
on_flush
save the pickle file.- Parameters
chat_id (
int
) – The chat the data might have been changed for.data (
dict
) – Thetelegram.ext.dispatcher.chat_data
[chat_id].