Skip to main content

Versioned, source-term-aware command-line access tool for ophthalmology datasets.

Project description

EyeDataHub

EyeDataHub is a versioned, community-extensible, license- and access-aware command-line tool backed by a manually curated ophthalmology dataset snapshot. It helps users find, inspect, cite, preflight, and acquire supported resources from their official sources.

EyeDataHub does not host or redistribute the indexed third-party datasets. It does not accept source terms for users or determine legal permission, ethical acceptability, data quality, clinical validity, or scientific suitability.

License: MIT Python Catalog Tests

One-minute overview

The current catalog contains 251 manually source-checked records across 18 primary categories. At the final catalog update on 25 July 2026:

  • 171 routes were anonymous direct;
  • 34 required immediate self-service authentication;
  • 11 required user click-through;
  • 27 required controlled or manual access;
  • 8 required author contact.

Acquisition support is separate from access: one official deposit completed an end-to-end transfer test, 13 routes passed partial API or file-listing checks, and all other loader states are labelled by their actual test scope.

Install

python -m pip install "git+https://github.com/pooyakhosravi/EyeDataHub.git@v0.2.2"

For development:

git clone https://github.com/pooyakhosravi/EyeDataHub.git
cd EyeDataHub
python -m pip install -e .

Optional platform clients are available through .[kaggle], .[huggingface], .[synapse], or .[full].

Safe command-line workflow

# Read-only discovery
eyehub search --modality oct --access anonymous_direct
eyehub search --task segmentation --source-terms standard-no-nc --json

# Read-only record and citation inspection
eyehub show fives --json
eyehub cite fives --type dataset --format bibtex

# Read-only acquisition preflight
eyehub download fives --data-dir ./data --dry-run --json

# Explicit transfer from the represented official source
eyehub download fives --data-dir ./data --json

Search, show, cite, Python queries, JSON, JSON-LD, and the optional MCP server are read-only. Only an explicit non-dry-run download command may start transfer. Manual, controlled, author-contact, unavailable, and unsupported routes return structured status and instructions instead of imitating success.

What “license-aware” means

Before acquisition, EyeDataHub displays:

  • the raw source-stated terms and evidence URL;
  • whether the terms appear to apply to data, metadata, code, a publication, challenge participation, mixed components, or an unknown scope;
  • registration, authentication, token, click-through, manual approval, agreement, author-contact, and institutional restrictions;
  • route-verification date and loader test scope;
  • warnings for unknown, research-only, noncommercial, no-derivatives, or mixed terms.

The tool blocks manual authorization routes, never accepts agreements, and writes a provenance manifest after successful transfer. This behavior is not legal advice. The descriptive standard-no-nc filter means only that the normalized source label contains no explicit noncommercial clause; it does not establish permission for a proposed use.

Python

from pathlib import Path

from eyedatahub.acquisition import acquire_dataset, preflight_dataset
from eyedatahub.datasets.registry import REGISTRY

dataset = REGISTRY.get_dataset("ophthalwechat")
data_dir = Path("./data")

plan = preflight_dataset(dataset, data_dir)       # read-only
result = acquire_dataset(dataset, data_dir)       # explicit transfer request
print(result.status, result.manifest_path)

REGISTRY is the retained internal Python class name. Public-facing release artifacts use catalog and snapshot because EyeDataHub is not a data repository.

Credentials and security

Copy .env.example to a private .env file or use each platform's supported credential mechanism. EyeDataHub records only an authentication category or credential presence, never credential values. .env and acquired data directories must not be committed.

Supported backends include official Figshare, Zenodo, Mendeley Data, Dryad, Kaggle, Hugging Face, PhysioNet, Dataverse, Synapse, GitHub, Google Drive, and direct-file routes. Support varies by record and is exposed through acquisition_support and loader_test_scope.

Release record

The release DOI is doi:10.5281/zenodo.21614657. The Zenodo record contains a README that directs users to this repository; software and catalog files are distributed from GitHub.

See CONTRIBUTING.md for reviewed additions and CLAUDE.md for the canonical agent guide.

Citation and licences

Use CITATION.cff for the software citation and cite each acquired dataset from its official source. EyeDataHub code is MIT licensed; the catalog metadata are CC BY 4.0. Third-party data remain under their source-specific terms and access controls.

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

eyedatahub-0.2.2.tar.gz (194.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

eyedatahub-0.2.2-py3-none-any.whl (209.7 kB view details)

Uploaded Python 3

File details

Details for the file eyedatahub-0.2.2.tar.gz.

File metadata

  • Download URL: eyedatahub-0.2.2.tar.gz
  • Upload date:
  • Size: 194.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for eyedatahub-0.2.2.tar.gz
Algorithm Hash digest
SHA256 33c7fd6ff37de10eefc9080d0a66433ec51f13f32740c920bd67161f9eb485ba
MD5 1b0ba18c0b5c10cd112e3ec9b165ea58
BLAKE2b-256 e3d0e1d1db2c54de0e3fd9d1a80f7e0f16f15b9f4323ce9d65cf0f86e7d1b00e

See more details on using hashes here.

File details

Details for the file eyedatahub-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: eyedatahub-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 209.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for eyedatahub-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fda9e989561213cc9a413f6e19aabfe12c0eb811c882682c5e11323ce3c0d7da
MD5 8011b8c4292fc920bfd7892e231c01c0
BLAKE2b-256 730237494256109e50b635f46b7cb0ffa7b000a9e68d19d81c2a7c32d5b51aea

See more details on using hashes here.

Supported by

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