An IPython magic extension for printing date and time stamps, version numbers, and hardware information
An IPython magic extension for printing date and time stamps, version numbers, and hardware information.
[top]
More examples can be found in this Jupyter notebook.
from watermark import watermark
print(watermark())
Last updated: 2022-09-13T16:28:56.177487-05:00
Python implementation: CPython
Python version : 3.9.13
IPython version : 8.4.0
Compiler : Clang 13.0.1
OS : Darwin
Release : 21.6.0
Machine : arm64
Processor : arm
CPU cores : 10
Architecture: 64bit
print(watermark(packages="numpy,scipy"))
numpy: 1.23.2
scipy: 1.9.1
See help(watermark)
for more options.
[top]
The watermark line magic can be installed by executing
pip install watermark
Alternatively, you can install the latest development version directly from GitHub via
pip install -e git+https://github.com/rasbt/watermark#egg=watermark
Note:
To remove an old watermark
installation (installed via the deprecated %install_ext
magic extension), simply delete it from the .ipython/extensions/
directory, which is typically located in a user’s home directory.
[top]
After successful installation, the watermark
magic extension can be loaded via:
%load_ext watermark
To get an overview of all available commands, type:
%watermark?
%watermark [-a AUTHOR] [-gu GITHUB_USERNAME] [-e EMAIL] [-ws WEBSITE]
[-d] [-n] [-t] [-i] [-z] [-u] [-c CUSTOM_TIME] [-v]
[-p PACKAGES] [-co] [-h] [-m] [-g] [-r] [-b] [-w] [-iv]
IPython magic function to print date/time stamps
and various system information.
optional arguments:
-a AUTHOR, --author AUTHOR
prints author name
-gu GITHUB_USERNAME, --github_username GITHUB_USERNAME
prints author github username
-e EMAIL, --email EMAIL
prints author email
-ws WEBSITE, --website WEBSITE
prints author or project website
-d, --date prints current date as YYYY-mm-dd
-n, --datename prints date with abbrv. day and month names
-t, --time prints current time as HH-MM-SS
-i, --iso8601 prints the combined date and time including the time
zone in the ISO 8601 standard with UTC offset
-z, --timezone appends the local time zone
-u, --updated appends a string "Last updated: "
-c CUSTOM_TIME, --custom_time CUSTOM_TIME
prints a valid strftime() string
-v, --python prints Python and IPython version
-p PACKAGES, --packages PACKAGES
prints versions of specified Python modules and
packages
-co, --conda prints name of current conda environment
-h, --hostname prints the host name
-m, --machine prints system and machine info
-g, --githash prints current Git commit hash
-r, --gitrepo prints current Git remote address
-b, --gitbranch prints current Git branch
-w, --watermark prints the current version of watermark
-iv, --iversions prints the name/version of all imported modules
[top]
In line with NEP 29, this project supports:
[top]
-d
(current date) and -t
(current time) information without needing to use the -u
(updated) flag. (#99, via contribution by Daniel Kleine)-iv
more reliably. (#94, via contribution by Martin Perier)For example,
from sympy import solve
%load_ext watermark
%watermark -iv
Correctly prints sympy: 1.11.1
py3nvml
installation for GPU info optional. (#92, via contribution by Ben Greiner)--gpu
flag to print out GPU information (currently limited to NVIDIA devices) (#90, via contribution by 907Resident)--github_username
- for prints author github username, --email
- for prints author email, --website
- for prints author or project website. (#82, via contribution by joschkazj)--conda
option to print the name of the current conda environment. (#79, via contribution by Alexander Krasnikov)import numpy
import watermark.watermark as watermark
watermark(iversions=True, globals_=globals())
watermark()
function now also works outside IPython and Jupyter. Now, the magic %watermark
calls watermark()
. Calling %watermark
via IPython and Juypter still works as usual. However, in addition the watermark()
function can be used within regular Python for unit testing purposes etc. (#46, via contribution by Tymoteusz Wołodźko)VERSION
attributes, in addition to __version__
attributes.'sklearn'
vs. 'scikit-learn'
import compatibility.pkg_resources
as the default method for getting version numbers.--iversion
is used, print an empty string instead of raising an error.-iv
/--iversion
flag is used.-iv
/--iversion
flag now also shows package versions that were imported as from X import Y
import X.Y as Y
. For example,import scipy as sp
from sklearn import metrics
import numpy.linalg as linalg
%watermark --iversions
will return
scipy 1.1.0
sklearn 0.20.1
numpy 1.15.4
(Via contribution by James Myatt)
-b
/--gitbranch
parameter that prints the current Git branch.-iv
/ --iversions
parameter that prints the package names and version numbers of all packages that were previously imported in the current Python session. (Via contribution by Aziz Alto)-r
/ --gitrepo
parameter that returns the URL of Git remote name “origin”. (Via contribution by Lucy Park)-p scikit-learn
in addition of -p sklearn
(the former is deprecated and will not be supported in watermark > 1.7).-i
/ --iso8601
parameter that returns the current date-time string in ISO 8601 format with offset to UTC. For instance: 2016-08-16T18:03:42-04:00
. Current caveat: Python < 3.2 requires external libraries for for computing the timezone offset, thus, Python < 3.2 will currently only print 2016-08-16T18:03:42
pip
(Via contribution by Peter Bull)-d
, --date
to MM/DD/YYYY, the format DD/MM/YYYY can be used via the shortcut -e
, --eurodate
.--watermark
command added to print the current version of watermark.-n
flag is used.