Skip to main content

A simple JIT job management framework in Python.

Project description

Custodian is a simple, robust and flexible just-in-time job management framework written in Python. Using custodian, you can create wrappers that perform error checking, job management and error recovery. It has a simple plugin framework that allows you to develop specific job management workflows for different applications.

Custodian is now in an very early alpha. Use with care.

Getting custodian

Stable version

The version at the Python Package Index (PyPI) is always the latest stable release that will be hopefully, be relatively bug-free. The easiest way to install custodian on any system is to use easy_install or pip, as follows:

easy_install custodian

or:

pip install custodian

Some plugins (e.g., vasp management) require additional setup (please see custodian’s documentation).

Developmental version

The bleeding edge developmental version is at the custodian’s Github repo. The developmental version is likely to be more buggy, but may contain new features. The Github version include test files as well for complete unit testing. After cloning the source, you can type:

python setup.py install

or to install the package in developmental mode:

python setup.py develop

Requirements

Custodian requires Python 2.7+. There are no other required dependencies.

Optional dependencies

Optional libraries that are required if you need certain features:

  1. pymatgen 2.5+: To use the plugin for VASP.

  2. nose - For complete unittesting.

Basic usage

The main class in the workflow is known as Custodian, which manages a series of jobs with a list of error handlers. To use custodian, you need to implement concrete implementation of the abstract base classes custodian.custodian.Job and custodian.custodian.ErrorHandler. Specific examples of this for electronic structure calculations based on the Vienna Ab Initio Simulation Package (VASP) are implemented in the custodian.vasp package.

A simple example of a script using Custodian to run a two-relaxation VASP job is as follows:

from custodian.custodian import Custodian
from custodian.vasp.handlers import VaspErrorHandler, UnconvergedErrorHandler
from custodian.vasp.jobs import VaspJob

handlers = [VaspErrorHandler(), UnconvergedErrorHandler(),
            PoscarErrorHandler()]
jobs = VaspJob.aflow_style_run(["mpirun", "/share/apps/bin/pvasp.5.2.11"])
c = Custodian(handlers, jobs, max_errors=10)
c.run()

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

custodian-0.2.0a.tar.gz (11.6 kB view details)

Uploaded Source

Built Distribution

custodian-0.2.0a-py2.7.egg (36.1 kB view details)

Uploaded Source

File details

Details for the file custodian-0.2.0a.tar.gz.

File metadata

  • Download URL: custodian-0.2.0a.tar.gz
  • Upload date:
  • Size: 11.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for custodian-0.2.0a.tar.gz
Algorithm Hash digest
SHA256 ecff7359b04d4d8205d585154d577fd2f20689d418897541c0aba6d3a6dd931d
MD5 bfd3c89a80b9ace79edd086ceda97aca
BLAKE2b-256 a022dc826ed2b809f0a9dbbe88639f27872f5d964627805824c8c63c187241ba

See more details on using hashes here.

File details

Details for the file custodian-0.2.0a-py2.7.egg.

File metadata

File hashes

Hashes for custodian-0.2.0a-py2.7.egg
Algorithm Hash digest
SHA256 7b875695a9ee121d48b7dd01de9a549c48f699d719b96c609ba534ee09581c78
MD5 34bde135754e7f26c45eaf7ccd62c9fc
BLAKE2b-256 7f1cae0ed91e1e88d3547581318359e71f32df6d6fed2b8b9dd7bedbbc9ce93a

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