Skip to content

OPTIMADE Python tools

Latest release Build status Activity
PyPI Version
PyPI - Python Version
OPTIMADE
Build Status
codecov
Heroku App Status
Commit Activity
Last Commit
Contributors

The aim of OPTIMADE is to develop a common API, compliant with the JSON API 1.0 specification. This is to enable interoperability among databases that contain calculated properties of existing and hypothetical materials.

This repository contains a library of tools for implementing and consuming OPTIMADE APIs using Python. Server implementations can make use of the supported MongoDB (v4) and Elasticsearch (v6) database backends, or plug in a custom backend implementation. The package also contains a server validator tool, which may be called from the shell (optimade-validator) or used as a GitHub Action from optimade-validator-action.

Status

Whilst v1.0 of the OPTIMADE specification has been released, this repository is under development. Outstanding features required for compliance with OPTIMADE v1.0 can be tracked with the OPTIMADE v1.0 label on GitHub, which can be further filtered by backend. The release history and changelog can be found in the changelog.

Documentation

This document, guides, and the full module API documentation can be found online at https://optimade.org/optimade-python-tools.

Installation

Detailed instructions for installing and running the index meta-database and the main API can be found in the installation documentation.

The latest stable version of this package can be obtained from PyPI pip install optimade. The latest development version of this package can be installed from the master branch of this repository git clone https://github.com/Materials-Consortia/optimade-python-tools.

Supported OPTIMADE versions

Each release of the optimade package from this repository only targets one version of the OPTIMADE specification, summarised in the table below.

OPTIMADE API version optimade version
v1.0.0 v0.12.9
v1.0.1 v0.13.1

Whilst both the specification and this package follow semantic versioning, a potentially backwards incompatible change was introduced in v1.0.1 of the specification.

Contributing

Contribution tips and guidelines can be found in the contributing guidelines.