All notable changes to this project are documented here.
Versions are derived from Git tags via setuptools_scm — see VERSIONING.md.
- PyPI project links now point at the product rather than only at the repository.
Homepageishttps://wavespeed.ai(it was the GitHub repo), andDocumentationandChangelogentries were added. No code changes — packaging metadata only.
The serverless worker implementation has been removed from the SDK.
WaveSpeed no longer offers serverless as an external product, so shipping a serverless worker in the public SDK was misleading: it advertised a capability customers cannot buy. Everything below is gone as of 2.0.0 and will not be restored.
wavespeed.serverless— the entire package, includingserverless.start(), the job scaler, the handler-type dispatcher, the worker HTTP layer, the FastAPI local dev server, local test mode, worker/job state tracking, heartbeat and progress reporting, the S3 (boto3) upload helpers, andwavespeed.serverless.utils.validate.wavespeed.config.serverless— the serverless config namespace and its import-time environment auto-detection (RUNPOD_*andWAVERLESS_*variables are no longer read by this package).images/— thetest_workerDocker image and its build/push scripts, which existed only to build and exercise the worker.
Anyone building workers against this package should pin wavespeed<2 and plan to migrate.
- Python 3.8 and 3.9 support is now real rather than aspirational.
api/__init__.pycarried a module-level PEP 604 annotation (Client | None) with no__future__import, so the package could not be imported on 3.8 or 3.9 despiterequires-python = ">=3.8". CI now runs the suite on 3.8 through 3.12 so the claim stays honest. typing_extensionsis now a declared dependency. It was imported at module scope but only reached the environment transitively throughboto3/aiohttp— removing those would have produced anImportErroron a clean install.
- Dependencies trimmed to what the API client actually needs.
aiohttp,aiohttp[speedups],aiohttp-retry, andboto3are no longer installed;typing_extensionsis now declared explicitly (it was already imported bywavespeed._config_module). - README and CLAUDE.md rewritten to describe an API-client-only SDK.
The API client surface is untouched: wavespeed.run, wavespeed.run_no_throw,
wavespeed.get_result, wavespeed.upload, wavespeed.Client, wavespeed.config.api, and the
channel-attribution request headers all behave exactly as they did in 1.0.x.
See the Git history and GitHub releases.