hugpy-storage
STATUS: OPTIONAL, not part of the live fleet path (2026-10-15). Nothing live runs this package's downloader, sync or inventory role.
- What replaced it. Central's Hub downloader, central drives, copies and transfers live in
hugpy-core(hugpy_core/basic/downloads.py,drives.pyandscan.py). Parts of that code were lifted from this package. Each worker'shugpy-wrapperdiscovers, hashes, serves and pulls its own model files (fitevict/serve/transfer.py,worker_pull.pyanddrives.py).- What still imports it.
hugpy-media's runners (embed,keywords,summarizers,imagegen,vision_analysis,tts) callhugpy_storage.download_models.ensure_modelfor in-process local inference. After the operator-approved change of 2026-10-15 (hugpy-media 0.3.4 and later), that import is lazy andhugpy-storageis the optional extrahugpy-media[local].hugpy-engineloses its last lazy uses in the same change (0.3.9 and later; see hugpy_engine).- Core's legacy Flask app (
hugpy_core/web/,registry/,relay/) imports it. That app is not live, and core's venv does not install this package.hugpy-workerdepends on it, and is retired.- Where it is installed. Until the change lands, 0.2.10 is installed in
/opt/hugpy-media/venvand/opt/hugpy-video/venvas a dependency ofhugpy-media0.3.3. No unit runshugpy-storageorhugpy-downloader.See docs/packages.md.
Distribution hugpy-storage 0.2.10, import hugpy_storage. Dependencies:
abstract_essentials, huggingface_hub>=0.20, requests>=2.28,
pydantic>=2, flask>=2. Extras: engine (hugpy-engine), test.
What it contains
This package holds bytes at rest and in transit, as designed for the pre-basic "orbit" runtime:
| module | role |
|---|---|
downloader/ (daemon, queue, engine, presence) |
the model download queue and daemon |
transfer/downloads.py |
ensure_model(key), download_one, ensure_models. On a worker (WORKER_CENTRAL_URL set) ensure_model resolves the model locally or from central and never reaches Hugging Face. |
transfer/provision.py, transfer/sync.py |
resumable central and Hugging Face transfer and model sync |
hub/ (api, token, metadata, options/) |
external provider transport, credentials, metadata, search and install options |
models/ (physical, status_cache, presence) |
physical inventory and its caches |
models/ (paths, marker, gguf, formats, config, preview, archive, admission) |
on-disk model layout, markers, inspection and lifecycle metadata |
catalog/ (source, providers, events, bus) |
registry Protocol, injected hooks and catalog events |
web/ (api, transfer) |
legacy Flask blueprints; hugpy.api: storage points to web.api:storage_bp |
imports/ (constants, functions, classes, init_imports) |
Core-style shared vocabulary, pure helpers and common types |
config/roots.py, platform/, schemas/, jobs/store.py |
environment-dependent roots, platform helpers, wire schemas and persistent jobs |
commands/cli.py, console/, deploy/ |
command-line entry point, console helpers and service resources |
Console scripts:
hugpy-storage(daemon,sync,status)hugpy-downloader, an alias for the download daemon
No unit runs either on the live hosts.
docs/REGISTRY-DB-INDEX.md records the 2026-09-10 decision to keep
hugpy.json markers as the per-model source of truth and to rebuild any
aggregate index from them. The wrapper's marker store follows the same rule.
Package layout
The source follows Core's nested-package and shared-import convention:
hugpy_storage/
imports/ constants.py, functions.py, classes.py, init_imports.py
catalog/ source.py, providers.py, events.py, bus.py
commands/ cli.py
config/ roots.py
console/ UI-facing adapters
downloader/ daemon.py, engine.py, queue.py, presence.py
hub/ api.py, token.py, metadata.py, options/
jobs/ store.py
models/ paths.py, marker.py, physical.py, admission.py, ...
platform/ filesystem/process/environment helpers
schemas/ models.py, install.py, download_schemas.py
transfer/ downloads.py, provision.py, sync.py
web/ api.py, transfer.py
deploy/ packaged service resources
Internal imports and package entry points use these canonical paths. Existing
flat paths and _lifted modules remain compatibility aliases to the same
module objects, including private symbols and mutable state. For example,
hugpy_storage.providers and hugpy_storage.catalog.providers share one set
of injected hooks; importing the old name does not create another registry,
metadata store, cache or bus. New integrations should use the nested paths.
The executable compatibility paths python -m hugpy_storage.cli and
python -m hugpy_storage.model_sync also delegate to the nested implementations.
imports.constants holds pure shared vocabulary; imports.functions holds
environment parsing and timestamp helpers; imports.classes re-exports the
lightweight catalog/provider contracts. imports.init_imports is the optional
one-stop import surface. These modules do not initialize storage roots or
clients. Environment-dependent roots retain their existing initialization in
config.roots; importing it may create directories and seed cache environment
variables, just as the old _lifted.constants did.
Metadata
Release files for hugpy-storage 0.2.17
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| hugpy_storage-0.2.17.tar.gz | 297.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| hugpy_storage-0.2.17-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 602.2 kB
Release files / hugpy_storage-0.2.17.tar.gz
| Download URL | hugpy_storage-0.2.17.tar.gz |
|---|---|
| Size | 297.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c7230aa992e48540dc8473f786b4e2cfebadb6589a43d4a1306723fa2a435736
|
|
BLAKE2b-256 checksum How to use checksums |
faba6e14210075d92ae7e5ccc66d5d2c7c39a50fd25605646f8bc33e78e4ac51
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / hugpy_storage-0.2.17-py3-none-any.whl
| Download URL | hugpy_storage-0.2.17-py3-none-any.whl |
|---|---|
| Size | 304.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9f97f2392209b8bb0240f27b6b18087f66a13acb60f79c299b8ecae86c4cdf9f
|
|
BLAKE2b-256 checksum How to use checksums |
fcbcadeb800c5ab9dec1c714de3829ad8420b06df803011018b14eff16a16973
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for hugpy-storage 0.2.17
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.