Skip to main content

session_info outputs version information for modules loaded in the current session, Python, and the OS.

Project description

session_info

session_info outputs version information for modules loaded in the current session, Python, the OS, and the CPU. It is designed as a minimum measure to increase reproducibility and provides similar information as sessionInfo and devtools::session_info in R.

Motivation

session_info is particularly useful when conducting exploratory data analysis in Jupyter notebooks. Listing the version numbers of all loaded modules after importing them is a simple way to ensure a minimum level of reproducibility while requiring little additional effort. This practice is useful both when revisiting notebooks and when sharing them with colleagues. session_info is meant to complement more robust practices such as frozen virtual environments, containers, and binder.

Installation

session_info can be installed via pip install session_info. It does not depend on a package manager to find version numbers since it fetches them from the module's version string. Its only dependency is stdlib_list, which is used to distinguish between standard library and third party modules.

Usage

session_info can be used from a script like so:

import math

import natsort
import pandas
import session_info


session_info.show()

Output:

Session information:
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch1-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59

The default behavior is to only output modules not in the standard library, which is why the math module is omitted above (it can be included by specifying std_lib=True). To include not only the explicitly imported modules, but also any dependencies they import internally, specify dependencies=True.

When session_info is invoked from a Jupyter Notebook, the output is concealed in <details> tags and will only show when clicked. Since this saves visual real estate, any modules imported indirectly as dependencies will be included by default and it looks like this:

Click to view session information
-----
natsort             7.1.1
pandas              1.2.2
session_info        1.0.0
-----
Click to view modules imported as dependencies
backcall            0.2.0
cython_runtime      NA
dateutil            2.8.1
decorator           5.0.7
ipykernel           5.5.3
ipython_genutils    0.2.0
jedi                0.18.0
numpy               1.20.2
parso               0.8.2
pexpect             4.8.0
pickleshare         0.7.5
prompt_toolkit      3.0.18
ptyprocess          0.7.0
pygments            2.8.1
pytz                2021.1
six                 1.15.0
storemagic          NA
tornado             6.1
traitlets           5.0.5
wcwidth             0.2.5
zmq                 22.0.3
-----
IPython             7.23.0
jupyter_client      6.1.12
jupyter_core        4.7.1
-----
Python 3.9.2 | packaged by conda-forge | (default, Feb 21 2021, 05:02:46) [GCC 9.3.0]
Linux-5.11.13-arch1-1-x86_64-with-glibc2.33
-----
Session information updated at 2021-05-06 09:59

If you prefer to show the session information without the HTML tags, you can use session_info.show(html=False) in the notebook to get the same output as in the first example above.

session_info can also write the module dependencies to a requirements.txt file, which is compatible with pip install -r /path/to/requirements.txt.

View the docstring for complete parameter information.

Background

session_info started as minor modifications of py_session, and as it grew it became convenient to create a new package. session_info was built with the help of information provided in stackoverflow answers and existing similar packages, including

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

session_info-1.0.0.tar.gz (24.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page