Metadata-Version: 2.4
Name: Sumatra
Version: 0.8.0
Summary: A tool for automated tracking of computation-based scientific projects
Author-email: Sumatra authors and contributors <andrew.davison@cnrs.fr>
License-Expression: BSD-2-Clause
Project-URL: homepage, https://neuralensemble.org/sumatra
Project-URL: documentation, https://sumatra.readthedocs.io
Project-URL: repository, https://github.com/open-research/sumatra
Project-URL: download, http://pypi.python.org/pypi/sumatra
Keywords: computational science,simulation,analysis,project management
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: setuptools
Requires-Dist: parameters
Requires-Dist: pyyaml
Provides-Extra: git
Requires-Dist: GitPython; extra == "git"
Provides-Extra: hg
Requires-Dist: mercurial; extra == "hg"
Requires-Dist: hgapi; extra == "hg"
Provides-Extra: web
Requires-Dist: docutils; extra == "web"
Requires-Dist: Django<6; extra == "web"
Provides-Extra: remote
Requires-Dist: httplib2; extra == "remote"
Provides-Extra: postgres
Requires-Dist: psycopg2-binary; extra == "postgres"
Provides-Extra: mysql
Requires-Dist: mysqlclient; extra == "mysql"
Provides-Extra: latex
Requires-Dist: jinja2; extra == "latex"
Provides-Extra: sphinx
Requires-Dist: docutils; extra == "sphinx"
Provides-Extra: mpi
Requires-Dist: mpi4py; extra == "mpi"
Provides-Extra: docs
Requires-Dist: docutils; extra == "docs"
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinxawesome-theme; extra == "docs"
Provides-Extra: default
Requires-Dist: sumatra[git,remote,web]; extra == "default"
Provides-Extra: test
Requires-Dist: sarge; extra == "test"
Requires-Dist: numpy; extra == "test"
Requires-Dist: scipy; extra == "test"
Requires-Dist: matplotlib; extra == "test"
Requires-Dist: pillow; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-cov; extra == "test"
Requires-Dist: flake8; extra == "test"
Requires-Dist: selenium; extra == "test"
Requires-Dist: coveralls; extra == "test"
Provides-Extra: dev
Requires-Dist: sumatra[docs,git,hg,latex,mpi,mysql,postgres,remote,test,web]; extra == "dev"
Requires-Dist: build; extra == "dev"
Requires-Dist: twine; extra == "dev"
Requires-Dist: docker; extra == "dev"
Dynamic: license-file

=============
About Sumatra
=============

Sumatra is a tool for managing and tracking projects based on numerical
simulation and/or analysis, with the aim of supporting reproducible research.
It can be thought of as an automated electronic lab notebook for computational
projects.

It consists of:

* a command-line interface, smt, for launching simulations/analyses with
  automatic recording of information about the experiment, annotating these
  records, linking to data files, etc.
* a web interface with a built-in web-server, smtweb, for browsing and
  annotating simulation/analysis results.
* a Python API, on which smt and smtweb are based, that can be used in your own
  scripts in place of using smt, or could be integrated into a GUI-based
  application.

Sumatra is currently beta code, and should be used with caution and frequent
backups of your records.

For documentation, see http://neuralensemble.org/sumatra/


Functionality:

* launch simulations and analyses, and record various pieces of information,
  including:

  - the executable (identity, version)
  - the script (identity, version)
  - the parameters
  - the duration (execution time)
  - console output
  - links to all data (whether in files, in a database, etc.) produced by
    the simulation/analysis
  - the reason for doing the simulation/analysis
  - the outcome of the simulation/analysis

* allow browsing/searching/visualising the results of previous experiments
* allow the re-running of previous simulations/analyses with automatic
  verification that the results are unchanged
* launch single or batch experiments, serial or parallel


============
Requirements
============

Sumatra requires Python version 3.9 or later The web interface requires
Django (>= 4.2).
Sumatra requires that you keep your own code in a version control
system (currently Subversion, Mercurial, Git and Bazaar are supported). If you
are already using Bazaar there is nothing else to install. If you
are using Subversion you will need to install the pysvn package. If you are using
Git, you will need to install git-python bindings, and for Mercurial install hg-api.


============
Installation
============

These instructions are for Unix and Mac OS. They may work on Windows as well, but
it hasn't been thoroughly tested.

The easiest way to install is with pip::

    $ pip install sumatra[default]

The "default" option installs the most commonly-used features:

- Git support
- the local web-based GUI
- support for remote record stores

Other options are available. For example, to install support for Mercurial and for using a
PostgreSQL database as the record store, run::

    $ pip install sumatra[default,hg,postgres]


===========
Code status
===========

.. image:: https://github.com/open-research/sumatra/actions/workflows/tests.yml/badge.svg
   :target: https://github.com/open-research/sumatra/actions/workflows/tests.yml
   :alt: Unit Test Status

.. image:: https://coveralls.io/repos/open-research/sumatra/badge.svg
   :target: https://coveralls.io/repos/open-research/r/sumatra
   :alt: Code coverage
