Skip to main content

A library to assist with running parameter sets across multiple systems.

Project description

Distributed Automated Parameter Testing (DAPT)

Travis-CI Documentation Status

A library to assist with running parameter sets across multiple systems. The goal of this library is to provide a tool set and pipeline that make organizing, running and analyzing a large amount of parameter easier. Some of the highlights include:

  • Provide an easy way to run paramater sets.
  • Protocol for allowing teams to run parameter sets concurrently.
  • Use Google Sheets as a database to host and manage paramater sets.
  • Access to the Box API which allows files to be uploaded to box.

Overview

When working on a project with or without access to high performance computing (HPC), there is often a need to perform large parameter sweeps. Before developing DAPT, there were several problems the ECM team in Dr. Paul Macklin's research lab identified. First, it was difficult to manage a large number of parameter sets with a large number of parameters. Second, it would be nice to use Google Sheets to run the parameters for easier collaboration and management. Third, only one person in the group would be running all the parameters, making their computer useless for the duration of the runs. Finally, we needed to upload the data to Box for permanent storage and to allow the rest of the team to view the data.

DAPT was written to solve these problems. A "database" (CSV or Google Sheet) is used to store a list of parameter sets. This database is managed by the Param class and provides methods to interact with and manage parameter sets. the Box class allows data to be uploaded to Box.com. Sensitive API credentials can be stored in a config file (via the Config class) which can also be accessed by users to get other variables.

Future versions of the project will work to improve documentation, add examples, cleanup current functionality and add more features. While most of the dapt module is documented, the intended way of using each method is not clearly explained. There are examples given for the main features, however, again there is not a satisfactory amount of documentation. Some of the exciting new features to come will be notification and logging integration. For example, we would like to add Slack notification so teams can be notified if there is an error with a test.

Install

The easiest way to install DAPT is using pip. To do so type:

pip install dapt

Alternatively, you can dowload the project. It is recommended to download a release of the project from GitHub for improved stability. If you would like to download the most up to date version, then download the repo or clone it on your machine git clone https://github.com/BenSDuggan/DAPT. Once downloaded navigate to the root of the project (DAPT) and run pip install -r requirements.txt to install all of the dependences. If you use this method of installation, you will need to write all of your Python scripts using DAPT in the root directory of the project. For these reasons, it's recommended to only use this method if would like to contribute to the project.

You can then test to make sure everything installed by starting a python session and then running:

import dapt
dapt.__version__

You should see 0.9.0.

Dependencies

Python: >=3.6

All dependences are located in requirements.txt.

Documentation

You can view the most recent documentation on RTD here. Documentation is performed using Sphinx. The docs folder holds all of the resources to document the code. If you're not familiar with Sphinx you can read this Medium tutorial for an introduction. Google docstrings are used for inline commenting inside each file.

To build docs on your local machine simply type make html inside the docs folder.

Example usage

Examples of some basic uses of DAPT are located in the examples folder. Before running any of the tests, ensure that you have installed DAPT. If you just downloaded the repo and did not install using pip then move the tests into the root of the directory (i.e. DAPT/). This step is necessary to ensure that dapt can properly be imported.

Contribute

If you would like to contribute please fork the repo and make a pull request explaining what you added/fixed and why you added it. If you are adding a new feature please write a unit test and example for it.

Project structure

.
├── dapt                 			# The folder where the DAPT library is housed
├── docs             				# Documentation for project
├── examples          				# Python scripts showing examples of how to use the program
└── tests           				# Unit tests for DAPT

Unit tests

Unit tests are ran using Pytest. You can install Pytest by running pip install -U pytest. The tests are located in the tests folder inside the root directory. The tests can be run pytest in the terminal. Travis CI is used for continuous integration. For more information on the tests go to the tests folder.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dapt-0.9.1.1.tar.gz (3.8 kB view details)

Uploaded Source

Built Distribution

dapt-0.9.1.1-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file dapt-0.9.1.1.tar.gz.

File metadata

  • Download URL: dapt-0.9.1.1.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.8

File hashes

Hashes for dapt-0.9.1.1.tar.gz
Algorithm Hash digest
SHA256 b3108ced7c92a7af9b67bd773a9bce1fe7adc20456d729b32d39b5dc7bc15577
MD5 d1e9d979e2f61e1f0efc85a7f436338a
BLAKE2b-256 fd76bd5cb9268c985ec4e69d37c56a709f7b8d6d6c0ccbf97f52fa69eb402219

See more details on using hashes here.

File details

Details for the file dapt-0.9.1.1-py3-none-any.whl.

File metadata

  • Download URL: dapt-0.9.1.1-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/42.0.1 requests-toolbelt/0.9.1 tqdm/4.33.0 CPython/3.6.8

File hashes

Hashes for dapt-0.9.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d9e9f61663e4160cfadee09a5c6dc08775185f72de97efcb38bb75122ee6bae6
MD5 7cf7681e5096b3202a6718199c89babf
BLAKE2b-256 e537c04315f6ba56fff080ac41ab92f64d3e2eb4b542840718c646a6bc9cc93a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page