DEV Community

Cover image for How to save the entire user session using Python?
Ruthvik Raja M.V
Ruthvik Raja M.V

Posted on

How to save the entire user session using Python?

It is very important to know how to save the entire current session like local variables, objects etc when we are working with AI projects using Python because it is very difficult to run the entire python code every time to initialise the objects, Models, variables etc.

To overcome this problem we have pickle to take care of it but some times it fails to deserialise the pickled objects so,
dill library can be implemented to quickly store and retrieve the current session.

Here is a quick introduction to dill:-

dill extends python’s pickle module for serializing and de-serializing python objects to the majority of the built-in python types. Serialization is the process of converting an object to a byte stream, and the inverse of which is converting a byte stream back to a python object hierarchy.

dill provides the user the same interface as the pickle module, and also includes some additional features. In addition to pickling python objects, dill provides the ability to save the state of an interpreter session in a single command. Hence, it would be feasable to save an interpreter session, close the interpreter, ship the pickled file to another computer, open a new interpreter, unpickle the session and thus continue from the ‘saved’ state of the original interpreter session.

Therefore, the following code can be implemented to save the current session:-

##### User's python code #####
# pip install dill (or) conda install dill

import dill;
# Save the entire session by creating a new pickle file 
dill.dump_session('./your_bk_dill.pkl');

# Restore the entire session
dill.load_session('./your_bk_dill.pkl');
Enter fullscreen mode Exit fullscreen mode

From, above it is clear that implementing dill is very easy and also it provides function like dill.detect to investigate the failed attributes inside that object.

Top comments (3)

Collapse
 
sunilaleti profile image
Sunil Aleti

Glad I know it before. Ty

Collapse
 
yash_makan profile image
Yash Makan

didn't know about this earlier. Thanks!

Collapse
 
ruthvikraja_mv profile image
Ruthvik Raja M.V

😇😇😇