Skip to main content

Core of Metador, the metadata-first research data management framework.

Project description

metador-core

Project status Test Coverage Docs

Core library of the Metador platform. It provides:

  • an interface for managing structured and validated metadata (MetadorContainer)
  • an API to manage immutable (but still "patchable") HDF5 files (IH5Record)
  • an extensible entry-points based plugin system defining plugin groups and plugins
  • core plugin group interfaces (schemas, packers, widgets, ...)
  • general semantically aligned schemas that should be used and extended
  • visualization widgets for common data types based on Bokeh and Panel
  • generic dashboard presenting (meta)data for which suitable widgets are installed

Getting Started

This library is not a batteries-included solution, it is intended for people interested in using and extending the Metador ecosystem and who are willing to write their own plugins to adapt Metador to their use-case and provide services based on it.

Please check out the tutorials that explain general concepts, interfaces and specific plugin development topics are provided here.

For a first taste, you can install this package just as any other package into your current Python environment using:

$ pip install git+ssh://git@github.com:Materials-Data-Science-and-Informatics/metador-core.git

or if you are adding it as a dependency into your poetry project:

$ poetry add git+ssh://git@github.com:Materials-Data-Science-and-Informatics/metador-core.git

As usual, it is highly recommended that you use a virtual environment to ensure isolation of dependencies between unrelated projects.

If you want to write or extend plugins, such as metadata schemas or widgets, the provided tutorials will get you started.

If you want to contribute to the actual core, see further below.

Compatibility and Known Issues

This package supports Python >=3.8.

There was a mysterious bug when using inside Jupyter 6.4.6, but there are no known problems when upgrading to Jupyter 6.4.10.

If you encounter any problems, ensure that your bug is reproducible in a simple and minimal standalone Python script that is runnable in a venv with this package installed and can demonstrate your issue.

Development

This project uses Poetry for dependency management, so you will need to have poetry installed in order to contribute.

Then you can run the following lines to setup the project and install the package:

$ git clone git@github.com:Materials-Data-Science-and-Informatics/metador-core.git
$ cd metador-core
$ poetry install

Run pre-commit install (see https://pre-commit.com) after cloning. This enables pre-commit to enforce the required linting hooks.

Run pytest (see https://docs.pytest.org) before merging your changes to make sure you did not break anything. To check coverage, use pytest --cov.

To generate local documentation (as the one linked above), run pdoc -o docs metador_core (see https://pdoc.dev).

Acknowledgements

HMC Logo    FZJ Logo

This project was developed at the Institute for Materials Data Science and Informatics (IAS-9) of the Jülich Research Center and funded by the Helmholtz Metadata Collaboration (HMC), an incubator-platform of the Helmholtz Association within the framework of the Information and Data Science strategic initiative.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metador_core-0.0.2.tar.gz (120.8 kB view hashes)

Uploaded Source

Built Distribution

metador_core-0.0.2-py3-none-any.whl (143.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page