Skip to main content

Stream Python packages at runtime — the PyPI CDN client

Project description

🌀 Whispy Client

Import Python packages at runtime with a zero-dependency client. Keep your scripts clean, your environments disposable, and your setup friction low.

stdlib only Whispy repo MIT

The client lives in the Whispy repository, with the implementation in client/whispy_client and the server entrypoint in server/app.py. It downloads a bundle from a Whispy server, extracts it to a temporary directory, and imports the requested module at runtime.

When to Use It

  • Throwaway scripts that need requests, numpy, or beautifulsoup4 without a setup step.
  • Short-lived jobs where you want packages to vanish when the process exits.
  • Pinned runtime experiments where one exact version matters.
  • Self-hosted setups that point at your own server from the main repo.

Quick Examples

from whispy_client import remote, configure

configure(verbose=True)

requests = remote("requests")
numpy = remote("numpy==1.26.4")
bs4 = remote("beautifulsoup4", module="bs4", deps=True)
# Common import name mismatches
bs4 = remote("beautifulsoup4", module="bs4")
PIL = remote("pillow", module="PIL")
yaml = remote("pyyaml", module="yaml")
dateutil = remote("python-dateutil", module="dateutil")
cv2 = remote("opencv-python", module="cv2")

Install

pip install whispy-client

For local development from this repo:

cd client
pip install -e .

API

remote(package, *, module=None, version=None, deps=False, host=None)

package can be a bare PyPI distribution name or an exact pin such as requests==2.31.0. If the import name differs from the distribution name, pass module=....

deps=True asks the server to include install-time dependencies as well. That behavior is best-effort and does not perform full dependency conflict resolution.

Param Description
package PyPI distribution name, optionally with ==version
module Import name if different from the package name
version Explicit version override, if you do not want to embed it in package
deps Fetch install-time dependencies as well
host Per-call Whispy server override

configure(*, host=None, deps=None, verbose=None)

Sets process-wide defaults. The default host comes from WHISPY_HOST, falling back to https://cdn.whispycdn.dev.

Param Description
host Default Whispy server URL
deps Default dependency-fetching behavior
verbose Print progress messages while fetching and importing

Code References

License

MIT. Packages are sourced from PyPI and remain under their original licenses.

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

whispy_client-1.1.3.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

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

whispy_client-1.1.3-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file whispy_client-1.1.3.tar.gz.

File metadata

  • Download URL: whispy_client-1.1.3.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whispy_client-1.1.3.tar.gz
Algorithm Hash digest
SHA256 f60c779a9119b6a47dd5708fc3c9af3aacaf59139c6c3c1216902863b72cf698
MD5 ce228e96fb3fa73227ca06a61d8d6cf9
BLAKE2b-256 944e8e9dc5c8618fb7fcb2e8beca9b0b202860c897b08ed1e6732591fc4e7331

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispy_client-1.1.3.tar.gz:

Publisher: ci.yml on Dark-Avenger-Reborn/Whispy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file whispy_client-1.1.3-py3-none-any.whl.

File metadata

  • Download URL: whispy_client-1.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for whispy_client-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c40b39a7213f46bf38654489dccd215f74500072555caf703fa6ee0ee0999494
MD5 760895d00e9a0c6d2cc8ffc257adf093
BLAKE2b-256 95f5c24a58bbce6d4cba6e4f90903eb46e4b07e178a222bec9d4befa0adf16c8

See more details on using hashes here.

Provenance

The following attestation bundles were made for whispy_client-1.1.3-py3-none-any.whl:

Publisher: ci.yml on Dark-Avenger-Reborn/Whispy

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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