# sinfo

`sinfo` prints version information for loaded modules in the current session,
Python, and the OS. It is designed as a minimum measure to increase
reproducibility and provides similar information as `sessionInfo` in R. The
name is shortened to encourage regular usage through reduced typing =)

## Installation

`sinfo` can be installed via either `pip` or `conda` (**Not yet uploaded**). It
does not rely on either package manager to check the version numbers. Its only
dependency is `stdlib_list`, to distinguish between standard library and third
party modules.

## Usage

`sinfo` is versatile and particularly useful when conducting exploratory data
analysis in Jupyter Notebooks. Listing the version numbers of all loaded
modules in the last cell of a Notebook is a simple way to ensure a minimum
level of reproducibility that requires little additional effort. This practice
is useful when revisiting code and when sharing code with colleagues. `sinfo`
is meant to complement more robust practices such as frozen virtual
environments, containers and binder Notebooks. The default behavior is to only
print modules from outside the standard library.

```python
import math
import numpy
import pandas
import natsort
# Exploratory data analysis goes here...
```

```python
# The last code cell of a Notebook.
import sinfo
sinfo.sinfo()
```


Output:

```
natsort         5.3.3
numpy           1.15.2
pandas          0.23.4
-----
Python 3.6.8 |Anaconda custom (64-bit)| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0]
Linux-4.20.1-arch1-1-ARCH-x86_64-with-arch
-----
Session information updated at 2019-02-03 02:31
```

`math` is omitted since it is in the standard library, but can be included by
specifying `print_std_lib=True`. See the docstring for full parameter info.

---

## Background

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

- https://github.com/fbrundu/py_session
- https://github.com/jrjohansson/version_information
- https://stackoverflow.com/a/4858123/2166823
- https://stackoverflow.com/a/40690954/2166823
