Python package focused on discovering and downloading data via FAIR Signposting.
Version 0.2.0a1 exposes two public APIs:
list_item_links(target)– discoveritemlinks without downloadingdownload_data(target, output_dir=...)– discover and download data resources
Both functions use FAIR Signposting discovery mechanisms.
The package discovers item links from the three main Signposting delivery mechanisms:
- HTTP
Linkheaders - HTML
<link>elements - Link Sets discoverable with the
linksetrelation
Link sets are automatically retrieved and parsed when present.
You can inspect available data resources without downloading them.
from signfetch import list_item_links
links = list_item_links(
"https://doi.org/10.5281/zenodo.12542566"
)
for link in links:
print(link.url, link.source)download_data() performs discovery and downloads all discovered resources.
from pathlib import Path
from signfetch import download_data
result = download_data(
"https://doi.org/10.5281/zenodo.12542566",
output_dir=Path("downloads")
)
print(result.unique_item_count)
for item in result.items:
print(item.url, item.saved_path)Main components:
Signposting discovery
SignpostingHarvester– orchestrates discoveryLinkHeaderParser– parses HTTPLinkheadersHtmlLinkParser– parses HTML<link>elementsLinksetParser– parses linkset documents
Downloading
DataDownloader– downloads resources discovered viaitemlinks- downloads are executed concurrently
Public API
list_item_links()– discovery onlydownload_data()– discovery + download
pip install signfetch