Getting Started

Installation

Installation through pypi is preferred, e.g. with

$ pip install scikit-guess

Installation from source is also an option. The latest version can be obtained from GitHub via

$ git clone github.com:madphysicist/scikit-guess

You can then install in a couple of different ways. The standard is

$ python setup.py install

To install for development purposes, or just to have the latest bleeding-edge version always running

$ python setup.py develop

Dependencies

This project strives to be a true scikit, and limit its runtime dependencies to just numpy and scipy. pandas support will be added at some point, but may not result in a dependency, certainly not a mandatory one. Numpy must be version 1.7 or later, since that is when the where keyword was introduced to ufuncs.

At this stage, the code is written in pure python, with all the extensions being implemented through the dependencies. That may change at some point in the future.

Python 3.6+ is supported.

Testing is done with pytest and has an optional dependency on matplotlib for debugging images. Another optional dependency is pytest-pep8.

Building the documentation requires sphinx (version >= 1.8 preferred, see below). The Sphinx RTD Theme is an optional dependency. The theme will fail over to the built-in Alabaster Theme instead if RTD is missing.

Tests

To validate your install, you can run the tests. To test an installed version:

>>> import skg
>>> skg.test()

To test a source distribution, you can use either

$ python setup.py test

or

$ pytest

The latter is preferred.

All the usual pytest command line options are allowed. To enable plotting of some of the fixtures and output results, a --plots flag is provided:

>>> skg.test('--plots')

or

$ python setup.py test --pytest-args=--plots

or

$ pytest --plots

Documentation

To build the documentation from a source install, run either

$ python setup.py doc

or

$ make -C doc clean html

The former should work on all systems. The latter will probably not work on Windows. Instead, you will have to switch to the doc directory and run without the -C doc option.

Currently, both versions run with nitpicky mode by default. The setup.py version requires sphinx >= 1.8 for this to work. If you would like to use an older version, comment out the nitpicky option in setup.cfg.

The documentation output goes to build/doc in the root directory with both versions.

The HTML documentation uses a small amount of CSS3, and will likely not render 100% accurately on IE8 or older. The discrepancies should be quite minimal however.

It is also possible to build the documentation as LaTeX using

$ make -C doc clean latex

Direct output to PDF through the pdf or pdflatex targets is not supported. However, the LaTeX build can be used to genrate PDFs:

$ make -C build/doc/latex pdf-all

This requires some additional dependencies, like a LaTeX system and latexmk.