OPTIMADE Python tools¶
|Latest release||Build status||Activity|
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. It also contains a server validator tool, which may be called from the shell or used as a GitHub Action from optimade-validator-action.
Disclaimer: While the package supports
elasticsearch-dsl v6 & v7 and
django v2 & v3, all tests are performed with the latest supported version. If you experience any issues with the older versions, you are most welcome to contribute to the repository (see below under Contributing).
Both the OPTIMADE specification and this repository are under development.
The latest stable version can be obtained from PyPI
pip install optimade or by cloning the master branch of this repository
git clone email@example.com:Materials-Consortia/optimade-python-tools.
Installation instructions, for both the index meta-database, and for the main API can be found in the documentation.
Contribution guidelines and tips can be found in CONTRIBUTING.md.
- OPTIMADE Specification, the human-readable specification that this library is based on.
- optimade-validator-action, a GitHub action that can be used to validate implementations from a URL (using the validator from this repo).
- OpenAPI, the machine-readable format used to specify the OPTIMADE API in
- Interactive documentation generated from
openapi.json(see also interactive JSON editor).
- pydantic, the library used for generating the OpenAPI schema from Python models.
- FastAPI, the framework used for generating the reference implementation expressed by the
- lark, the library used to parse the filter language in OPTIMADE queries.