simpeg/simpeg: Versions

from pr #769 commits from @prisae review from @lheagy Replace func versions by class Versions Turns out that there is a way to have html in a notebook and non-html in all the rest without even checking if you are in a notebook or not (thanks @banesullivan; https://github.com/simpeg/discretize/issues/142). All that is needed is a Versions -class which has the right functions linked to __repr__ and _repr_html_ : class Versions: def __init__(self, add_pckg=None, ncol=4): self.add_pckg = add_pckg self.ncol = ncol def __repr__(self): return versions_text(self.add_pckg) def _repr_html_(self): return versions_html(self.add_pckg, self.ncol) By removing the old functions, respectively integrating the relevant parts into the new class, the whole version printing utility gets a lot simpler (however, it is not backwards compatible). Before, you had to do from SimPEG import versions versions() in Python, IPython etc, and in Jupyter from SimPEG import versions versions('HTML') Updating your code Now, you simply do from SimPEG import Versions Versions() EVERYWHERE (note the uppercase V ), and it will automatically print a html table in a notebook, and plain text everywhere else.