Tools for implementing and consuming OPTIMADE APIs.
Project description
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.
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.
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. In particular, documentation of the OPTIMADE API response data models (implemented here with pydantic) can be found online under OPTIMADE Data Models.
Installation
Detailed installation instructions for different use cases (e.g., using the library or running a server) 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.1.0 | v0.16.0 |
Contributing and Getting Help
All development of this package (bug reports, suggestions, feedback and pull requests) occurs in the optimade-python-tools GitHub repository. Contribution guidelines and tips for getting help can be found in the contributing notes.
How to cite
If you use this package to access or serve OPTIMADE data, we kindly request that you consider citing the following:
- Andersen et al., OPTIMADE, an API for exchanging materials data, Sci. Data 8, 217 (2021) 10.1038/s41597-021-00974-z
- Evans et al., optimade-python-tools: a Python library for serving and consuming materials data via OPTIMADE APIs. Journal of Open Source Software, 6(65), 3458 (2021) 10.21105/joss.03458
Links
- 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
andindex_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 expressed by the
openapi.json
specification. - lark, the library used to parse the filter language in OPTIMADE queries.
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
File details
Details for the file optimade-0.16.6.tar.gz
.
File metadata
- Download URL: optimade-0.16.6.tar.gz
- Upload date:
- Size: 125.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8b624dcc07b589e02d4caf7b4e645fa71065d3c78741a769b194e3b5902aac1 |
|
MD5 | db8f3ea046cd4869d38037847c769319 |
|
BLAKE2b-256 | 7bfe5691b291d230328f493672d614c2fcf337933d672e00fddaaf2a547b9735 |