Skip to main content

python-re3data: The Pythonic client for the re3data API.

⚠️ Please note that this project is currently under active development. As such, it is considered a work in progress, and breaking changes may be introduced at any time. We encourage users to frequently check back for updates and to exercise caution when using this project in production environments. Contributions and feedback are welcome to help move the project towards a more stable release (v1.0.0).

CI pre-commit.ci status ci coverage codeql
Docs docs
Package pypi-status pypi-version pypi-python-versions all-downloads monthly-downloads
Meta doi OpenSSF Scorecard hatch ruff mypy License

python-re3data is a Python library that simplifies interacting with the re3data (Registry of Research Data Repositories) REST API, allowing you to easily retrieve and process metadata about research data repositories in a convenient and Pythonic way.

>>> import re3data
>>> response = re3data.repositories.list()
>>> response
[RepositorySummary(id='r3d100010468', doi='https://doi.org/10.17616/R3QP53', name='Zenodo', link=Link(href='https://www.re3data.org/api/beta/repository/r3d100010468', rel='self'))]
... (remaining repositories truncated)
>>> response = re3data.repositories.get("r3d100010468")
>>> response
Repository(re3data_org_identifier='r3d100010468', repository_name=RepositoryName(value='Zenodo', language=<Languages.ENG: 'eng'>), additional_name=[], repository_url='https://zenodo.org/', repository_identifier=['FAIRsharing_doi:10.25504/FAIRsharing.wy4egf', 'RRID:SCR_004129', 'RRID:nlx_158614'])
... (remaining fields truncated)

Features

  • Pythonic API interactions: Interact with the re3data API in a Pythonic way, without having to worry about low-level HTTP requests or XML parsing.
  • Repository metadata retrieval: Easily fetch and process metadata about research data repositories using re3data.repositories.list().
  • Repository details retrieval: Get detailed information about a specific repository using re3data.repositories.get(repository_id).
  • XML response parsers: API XML responses are parsed into Python dataclasses, providing convenient access to the elements of the re3data.org Schema 2.2 XML Schema. This makes it easy to work with the rich metadata provided by the API.
  • Flexible response options: The response type can be switched between:
    • dataclass (default): Returns a Python dataclass object, allowing convenient access to the element of the re3data schema
    • response: Returns a Python object representing the API response
    • original XML (str): Returns the raw XML response from the API
    • JSON (str): Returns a JSON representation of the API response
    • dictionary: Returns a dictionary representation of the API response
    • csv (str): Returns a CSV representation of the API response
    • dataframe: Returns a pandas.DataFrame representation of the API response

Requirements

Python >= 3.10

python-re3data is built with:

  • HTTP Requests: httpx, a modern and efficient HTTP client library, handles all API interactions.
  • XML Parsing: xsdata, a powerful tool for generating Python dataclasses from XML schemas, simplifies processing of API responses.
  • Optional CLI: typer, a popular library for building command-line interfaces, powers the user-friendly interface.
  • Optional DataFrame/CSV: pandas, a powerful and flexible data analysis library, enables generation of DataFrames and CSV files from parsed XML responses.

Installation

You can install python-re3data via pip from PyPI:

python -m pip install python-re3data

or pull the Docker image from GHCR:

docker pull ghcr.io/afuetterer/python-re3data:latest

For a more detailed guide, see Installation.

Documentation

The documentation is made with Material for MkDocs and is hosted by GitHub Pages.

Similar Projects

There are a couple of similar projects available on GitHub, e.g. via the topic re3data. Among them are these implementations in Python:

Project Description Last commit
py3data py3data is a lightweight and thin Python interface to the beta version of the API. last-commit

License

python-re3data is distributed under the terms of the MIT License.

Metadata

Release files for python-re3data 0.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for python-re3data 0.10.0
File Size Uploaded
python_re3data-0.10.0.tar.gz 36.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for python-re3data 0.10.0
File Interpreter ABI Platform
python_re3data-0.10.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.6 kB

Release files / python_re3data-0.10.0.tar.gz

Download URL python_re3data-0.10.0.tar.gz
Size 36.8 kB
Tags Source
SHA-256 checksum
How to use checksums
93fc093c7dc48307122447fbf3cda78871f9b1d967db8237b66d16c15f703c32
BLAKE2b-256 checksum
How to use checksums
f571ddd3ee4336a420a1b728f5fd3fd86e1acdd58e9fc3f98c7864a05b42d531
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 11, 2024.

Transparency log

Release files / python_re3data-0.10.0-py3-none-any.whl

Download URL python_re3data-0.10.0-py3-none-any.whl
Size 41.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
196d2e1e4d91dd17cf84a80161228b1a981f107e39f4510318a5968bf93aaf89
BLAKE2b-256 checksum
How to use checksums
f6ff4db21996e3a24a54820413510e7e515cfcad7f38fb05b9605fc68fb013b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.1.1 CPython/3.12.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 11, 2024.

Transparency log

Release history Release notifications | RSS feed

This release

0.10.0 This release

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page