Python

Python runtime changelog

Version history for envless-env, the Envless runtime for Python.

Version history for envless-env, published on PyPI. When a newer version is out, the package prints a one-line notice the first time it loads in a terminal. Set ENVLESS_DISABLE_UPDATE_NOTICE to silence it.

The TypeScript runtime, @goenvless/env, has its own changelog. The two load the same way, and a change to one lands in the other.

0.0.1

The first release of the Python runtime, matching @goenvless/env as it stands in the Envless repository. A parity check replays 75 scenarios against both packages, from pagination, retries and the cache to the injected manifest, overrides and the explicit loader, and fails on any difference in the requests, the values, the types, the errors, the process environment, the warnings or the cache files.

  • envless_env.server.env and optional read every variable coerced to its type, and envless_env.client only the client ones, with snapshot() for templates.
  • load() and aload() fetch with an ev_sk_ machine key, decrypt with ENVLESS_KEY or ENVLESS_PASSPHRASE, cache the ciphertext for 15 minutes in the same files @goenvless/env uses, and fill os.environ without overwriting anything already set or writing a name that changes how a process executes code, PYTHONPATH and PYTHONHOME among them.
  • import envless_env.register loads at import. Inside envless run, everything is read from the environment the CLI injected, with no credentials and no request.
  • override() layers values for tests, and the views refuse to be pickled, iterated or printed with their values.
  • envless_env.edge loads with explicit arguments for serverless functions, and envless_env.crypto carries the encryption recipe.
  • python -m envless_env types writes a typed module from your variable names, types and visibility, from the manifest under envless run or with a machine key, and --check catches a stale one in CI.
  • Integrations for Django, Flask, FastAPI and Starlette, and pydantic-settings.