Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

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).

CIpre-commit.ci statuscicoveragecodeql
Packagepypi-statuspypi-versionpypi-python-versionsall-downloadsmonthly-downloads
MetadoiOpenSSF ScorecarduvruffmypyLicense

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:

ProjectDescriptionLast commit
py3datapy3data 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.

About

The Pythonic client for the re3data API.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages