# What changed in pyodide

> 11 changes in pyodide 314 from its official release notes, upgrade guides and advisories: 1 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-21. HTML: https://unstale.sh/npm/pyodide/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## pyodide 314

### Breaking changes

- Python entry points invoked with stack switching enabled now run with a copy of the context, so their ContextVar.set() calls are not visible to the caller. (314.0.5) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.5)

### New APIs and options

- Adds a dedent option to control whether source is dedented before execution; it defaults to True, preserving existing behavior. The option is also available on runPythonAsync and the underlying evaluation APIs. (314.0.7) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.7)

### Fixes and other changes

- No longer reports a loop that is not actually running from inside a function called with stack switching enabled. (314.0.6) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.6)
- When given a requirement specifier such as `numpy>=1.0`, it now points to `micropip.install()`, which accepts requirement specifiers. (314.0.6) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.6)
- Fixed a regression in the interaction between signal handling and stack switching. (314.0.6) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.6)
- Callbacks are now correctly handled when stack switching. (314.0.6) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.6)
- Callbacks are now correctly handled when stack switching. (314.0.6) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.6)
- Top-level code no longer loses its context when suspended stacks resume in a different order than they suspended in. (314.0.5) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.5)
- Values set inside a call that suspends no longer leak into later unrelated stack switches or keep referenced objects alive forever. (314.0.5) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.5)
- Hooks now apply inside a call that stack switches, so async generators created there are handed to the event loop that must shut them down. (314.0.5) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.5)
- Values are now consistently shared with calls that stack switch. (314.0.5) — [release notes](https://github.com/pyodide/pyodide/releases/tag/314.0.5)
