Skip to content
This repository has been archived by the owner on May 31, 2024. It is now read-only.

marda-alliance/metadata_extractors_registry

Repository files navigation

Note: As of May 2024, this repository has been archived and the development of the registry of metadata extractors continues under in the datatractor/yard repository.

MaRDA Metadata Extractors: Registry

Documentation Github status

A place to develop and discuss the MaRDA Extractors WG registry. The idea is to collect various file formats used in materials science and chemistry, describe them with metadata, and provide links to software projects that can parse them.

By providing this data in a web API, it hoped that users can discover new extractors more easily and metadata standards can be developed for the output of extractors to enable schemas to proliferate throughout the field.

The state of the main branch is deployed to https://marda-registry.fly.dev/, with API docs (and built-in client) accessible at https://marda-registry.fly.dev/redoc.

Contributing

You are welcome to contribute file type and extractor entries to this registry, by opening a pull request. Please see the contributing guidelines for detailed steps. After submitting a pull request, this data will be validated and added to the deployed database once it is merged.

Development

Clone repository with submodules and install deps in a fresh Python virtualenv:

git clone [email protected]:marda-alliance/marda_extractors_registry --recurse-submodules
pip install -r requirements.txt

Use invoke and the tasks in tasks.py to generate pydantic models for all schemas defined in the schema repo:

invoke regenerate-models

From the repository root directory, launch the server with uvicorn:

uvicorn marda_registry.app:app

then navigate to http://localhost:5000 to test.

Deployment

The registry app can be easily deployed via the given Dockerfile. After cloning the repository (with submodules, following the instructions above), the image can be built for a given schema version by running

docker build . -t marda-registry

and then launched with

docker run -p 8080 --env PORT=8080 marda-registry

or equivalent command.

Registry Maintainers