- from pr 156 - commits from prisae - review from rowanc1, lheagy
Make matplotlib a soft dependency; reasoning: - it is "only" used for the plotting of meshes, which is sort of a relatively small (yet important) part of the whole discretize scope. - it would help to install discretize on minimal conda-environments for running models on a server, without having to install matplotlib.
This is achieved by - using a decorator on functions where matplotlib is required - removing matplotlib from the setup.py
- Update `discretize` to work with PyVista (previously `vtki`) - Enable the PyVista 3D visualization examples to be run when making the docs on CI services - Switch the documentation hosting service to GitHub Pages from Read The Docs - New `InterfaceOMF` mixin for converting `discretize` meshes to Open Mining Format (OMF) objects - `pep8` refactoring of `mixins` - Drop Windows testing on Python 3.5
Improvements Organization of base classes - move base classes to a `base` directory (closes 128)
Docs - use napoleon + numpy-style docs to compile the docs (closes 126) - convert existing docstrings to numpy-styled docs - separate the API documentation from user documentation (closes 127)
Testing - travis cleanup (previously it was confusing which version of python was being used. We used the python 3.6 image on travis but then downloaded the latest conda - which is python 3.7): now each test suite is clearly labeled - use pytest for testing instead of nose
Follow ups - content to be developed in the "User Guide" (see 149) - create a contributor guide (separate pr) that includes info on how we document classes, methods, functions and class attributes (e.g. https://numpydoc.readthedocs.io/en/latest/format.html#docstring-standard) (see 150) - pr on SimPEG to ensure it is up-to-date with the changes in the base-class don't cause upstream problems (see simpeg/simpeg776)
Thanks: - leouieda : for your beautiful repo-setup and docs to follow :)