Skip to main content

Module cleanup

Module cleanup 

Source
Expand description

The cleanup feed: the normalizers the Hub carries, as the page’s cleanup candidates.

A second source, parsed rather than constructed. The runtime’s own feed carries the speech models; this one is the Hub’s models listing, filtered by the Hub’s own query (text-normalization + gguf, downloads-sorted) and then by ours: a repo that only reuploads another listing member collapses into it, a repo that declares languages must declare English, a repo nobody has fetched is not a candidate, and a repo with no quantisation this runtime loads is not one either. Every surviving repo’s blobs answer with each file’s size AND its sha256, so unlike the speech feed a cleanup download can be digest-checked.

The kind is what separates the two feeds’ entries, and it is exhaustive: a consumer that ignores it does not compile.

Re-exports§

use serde_json::Value; 🔒
use crate::Error; 🔒
use crate::catalogue::CatalogueEntry; 🔒
use crate::catalogue::Download; 🔒
use crate::catalogue::EntryKind; 🔒
use crate::catalogue::License; 🔒
use crate::catalogue::MAX_RESPONSE_BYTES; 🔒
use crate::catalogue::PREFERRED_DOWNLOADS; 🔒
use crate::catalogue::feed_client; 🔒
use crate::catalogue::get_bounded_text; 🔒
use crate::normalize::CAUSAL_ARCHS; 🔒

Structs§

CleanupSource
Where the cleanup feed is enumerated: the Hub’s models listing, with the filters that are the HUB’s as query parameters, and the per-repo blobs endpoint that answers with the files.
Repo 🔒
One repo as the listing describes it, before our own filters.

Constants§

DOWNLOADS_FLOOR 🔒
The downloads floor: a repo nobody has fetched says nothing about whether it works, and the listing’s tail is full of them.
TEXT_TASKS 🔒
The task tags a text model carries. A repo that DECLARES one of these is a text model; a repo that declares some other task is not one, whatever its other tags say - the union of tags catches a VAE post-processor whose card says post-processing and nothing else. A card that declares no task is kept, because silence is not a claim.

Functions§

base_name 🔒
An id’s last segment: a repo’s own name, or a file’s own name.
candidates 🔒
The repos worth offering as candidates, in the listing’s own order - the Hub sorts by downloads, which is the only ranking it offers.
corroborates 🔒
Whether base names the repo’s own model: the base’s last segment appears in the repo id. superwhisper/s1-mini corroborates Mungert/s1-mini-GGUF where that repo names it; Qwen/Qwen3-0.6B does not.
declared_languages 🔒
The languages a repo declares: the card’s own list when the blobs carried one, else the two-letter codes among its tags. Empty means the card says nothing, which is not a claim about English either way.
downloads_from 🔒
One repo’s blobs, as the entry’s downloads: every file whose name carries a quant this runtime loads, with its own size, digest and URL.
entry_for 🔒
One candidate as a catalogue entry, in the same shape the speech feed’s entries carry so the page draws both with one row.
fetch_cleanup
Fetch the cleanup feed. Blocking, like everything else here.
quant_of 🔒
The quant a file name spells, when it spells one this runtime loads.
runs_here 🔒
Whether a blobs answer declares an architecture this runtime’s generator runs. The declaration must be there: a candidate with no declared arch is one nobody can promise, and the failure is a process abort rather than a refusal.