telegram.ext.PicklePersistence¶
-
class
telegram.ext.
PicklePersistence
(*args, **kwargs)¶ Bases:
telegram.ext.basepersistence.BasePersistence
[telegram.ext.utils.types.UD
,telegram.ext.utils.types.CD
,telegram.ext.utils.types.BD
]Using python’s builtin pickle for making your 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 chat_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
.store_callback_data (
bool
, optional) –Whether callback_data should be saved by this persistence class. Default is
False
.New in version 13.6.
single_file (
bool
, optional) – WhenFalse
will store 5 separate files of filename_user_data, filename_bot_data, filename_chat_data, filename_callback_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
.context_types (
telegram.ext.ContextTypes
, optional) –Pass an instance of
telegram.ext.ContextTypes
to customize the types used in thecontext
interface. If not passed, the defaults documented intelegram.ext.ContextTypes
will be used.New in version 13.6.
-
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 chat_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
-
store_callback_data
¶ Optional. Whether callback_data be saved by this persistence class.
New in version 13.6.
- Type
bool
-
single_file
¶ Optional. When
False
will store 5 separate files of filename_user_data, filename_bot_data, filename_chat_data, filename_callback_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
-
context_types
¶ Container for the types used in the
context
interface.New in version 13.6.
-
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 object of type
telegram.ext.utils.types.BD
.- Returns
The restored bot data.
- Return type
-
get_callback_data
()¶ Returns the callback data from the pickle file if it exists or
None
.New in version 13.6.
- Returns
The restored meta data or
None
, if no data was stored.- Return type
Optional[
telegram.ext.utils.types.CDCData
]
-
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[
int
,telegram.ext.utils.types.CD
]
-
get_conversations
(name)¶ Returns the conversations from the pickle file if it exists 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[
int
,telegram.ext.utils.types.UD
]
-
refresh_bot_data
(bot_data)¶ Does nothing.
New in version 13.6.
-
refresh_chat_data
(chat_id, chat_data)¶ Does nothing.
New in version 13.6.
-
refresh_user_data
(user_id, user_data)¶ Does nothing.
New in version 13.6.
-
update_bot_data
(data)¶ Will update the bot_data and depending on
on_flush
save the pickle file.- Parameters
data (
telegram.ext.utils.types.BD
) – Thetelegram.ext.Dispatcher.bot_data
.
-
update_callback_data
(data)¶ Will update the callback_data (if changed) and depending on
on_flush
save the pickle file.New in version 13.6.
- Parameters
data (
telegram.ext.utils.types.CDCData
) – The relevant data to restoretelegram.ext.CallbackDataCache
.
-
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 (
telegram.ext.utils.types.CD
) – Thetelegram.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 handler’s 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 and depending on
on_flush
save the pickle file.- Parameters
user_id (
int
) – The user the data might have been changed for.data (
telegram.ext.utils.types.UD
) – Thetelegram.ext.Dispatcher.user_data
[user_id]
.