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 git@github.com:Materials-Consortia/optimade-python-tools
.
Installation instructions, for both the index meta-database, and for the main API can be found in INSTALL.md.
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
openapi.json
. - 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 from the
openapi.json
specification. - lark, the library used to parse the filter language in OPTIMADE queries.