Skip to main content

Computational research data management tool

Project description

Cordage: Computational Research Data Management

Parameterize experiments using dataclasses and use cordage to easily parse configuration files and command line options.


Build status PyPI - Version PyPI - Python Version PyPI - License

Cordage Icon

Repository | Documentation | Package


Cordage is in a very early stage. Currently, it lacks a lot of documentation and wider range of features. If you think it could be useful for you, try it out and leave suggestions, complains, and improvemnt ideas as github issues.

Check out the roadmap for an outline of the next steps that are planned for the development of this package.


Motivation

In many cases, we want to execute and parameterize a main function. Since experiments can quickly become more complex and may use an increasing number of parameters, it often makes sense to store these parameters in a dataclass.

Cordage makes it easy to load configuration files or configure the experiment via the commandline.

Quick Start

For more detailed information, check out the documentation.

Installation

In an environment of your choice (python>=3.8), run:

pip install cordage

Example

from dataclasses import dataclass
import cordage


@dataclass
class Config:
    lr: float = 5e-5
    name: str = "MNIST"


def train(config: Config):
    """Help text which will be shown."""
    print(config)


if __name__ == "__main__":
    cordage.run(train)

To use cordage, you need a main function (e.g. func) which takes a dataclass configuration object as an argument. Use cordage.run(func) to execute this function with arguments passed via the command line. Cordage parses the configuration and creates an output directory (if the function accepts output_dir, it will be passed as such).

See the examples in the examples directory for more details.

Features

The main purpose of cordage is to manage configurations to make configuring reproducible experiments easy. Cordage automatically generates a commandline interface which can be used to parse configuration files and/or set specific configuration fields via CLI options (run the experiment with the --help option to get an overview over the available configuration fields).

By using the __series__ key, it is possible ot invoke multiple repetitions of an experiment using the same base configuration but varying some of the configuration fields. The resulting trial runs are (by default) saved in a common series-level directory.

Additionally, cordage can provide an output directory (via the output_dir) where cordage will store the used configuration as well as some experimental metadata.

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

cordage-0.0.13.tar.gz (45.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cordage-0.0.13-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file cordage-0.0.13.tar.gz.

File metadata

  • Download URL: cordage-0.0.13.tar.gz
  • Upload date:
  • Size: 45.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cordage-0.0.13.tar.gz
Algorithm Hash digest
SHA256 18de64fb90f00088e9bd65ca315bd347ba814dc12cbe6c8cd87555d6fbc70ba6
MD5 f5ce0d9e8e9ad0ffaa5af2e59e266898
BLAKE2b-256 d5dfea4205f419835277c1adf35383e35197b6719e58acd56cd2ec7e5347eb9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for cordage-0.0.13.tar.gz:

Publisher: publish.yml on plonerma/cordage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cordage-0.0.13-py3-none-any.whl.

File metadata

  • Download URL: cordage-0.0.13-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for cordage-0.0.13-py3-none-any.whl
Algorithm Hash digest
SHA256 fe412c90f5583de4825655fd57c50a70d5b5d92a9d4ab580e95eb58b15bfd884
MD5 4e994e1ea6013ae5f65709b166e8b686
BLAKE2b-256 d9b52766d6e8a470a5d25e64f3841fd5eb27bc87e11a116c7454e7d6e50ef107

See more details on using hashes here.

Provenance

The following attestation bundles were made for cordage-0.0.13-py3-none-any.whl:

Publisher: publish.yml on plonerma/cordage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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