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 details)

Uploaded Source

File details

Details for the file session_info-1.0.0.tar.gz.

File metadata

  • Download URL: session_info-1.0.0.tar.gz
  • Upload date:
  • Size: 24.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.3

File hashes

Hashes for session_info-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3cda5e03cca703f32ae2eadbd6bd80b6c21442cfb60e412c21cb8ad6d5cbb6b7
MD5 5d6965233cacab00d22e6828f3eceafe
BLAKE2b-256 94e4ea615bb8185a298b21df1ac52a4a5db4e3351823a218f47ef3f883def88c

See more details on using hashes here.

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