Metadata-Version: 2.4
Name: pyodide-lock
Version: 0.1.3
Summary: Tooling to manage the `pyodide-lock.json` file
Project-URL: Homepage, https://github.com/pyodide/pyodide-lock
Project-URL: Bug Tracker, https://github.com/pyodide/pyodide-lock/issues
Author: Pyodide developers
License-File: LICENSE
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.12
Requires-Dist: pydantic>=2
Provides-Extra: cli
Requires-Dist: click; extra == 'cli'
Requires-Dist: pyodide-cli>=0.4.0; extra == 'cli'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: click; extra == 'dev'
Requires-Dist: packaging; extra == 'dev'
Requires-Dist: pkginfo; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: pytest-cov; extra == 'dev'
Requires-Dist: setuptools; extra == 'dev'
Requires-Dist: uv>=0.9.27; extra == 'dev'
Requires-Dist: wheel; extra == 'dev'
Provides-Extra: uv
Requires-Dist: packaging; extra == 'uv'
Requires-Dist: pkginfo; extra == 'uv'
Requires-Dist: uv>=0.9.27; extra == 'uv'
Requires-Dist: wheel; extra == 'uv'
Provides-Extra: wheel
Requires-Dist: packaging; extra == 'wheel'
Requires-Dist: pkginfo; extra == 'wheel'
Description-Content-Type: text/markdown

# pyodide-lock

[![PyPI Latest Release](https://img.shields.io/pypi/v/pyodide-lock.svg)](https://pypi.org/project/pyodide-lock/)
![GHA](https://github.com/pyodide/pyodide-lock/actions/workflows/main.yml/badge.svg)
[![codecov](https://codecov.io/gh/pyodide/pyodide-lock/branch/main/graph/badge.svg?token=T0UEJW2F2P)](https://codecov.io/gh/pyodide/pyodide-lock)

Tooling to manage the `pyodide-lock.json` file.

Note: the API of this package is still being iterated on and may change completely
before the 0.1 release.

The `pyodide-lock` file is used to lock the versions of the packages that are
used in a given Pyodide application. Packages included in `pyodide-lock.json`
will be auto-loaded at import time, when using `pyodide.runPythonAsync` or
running in JupyterLite or PyScript, and do not need to be explicitly installed
with micropip.

## Installation

```bash
pip install pyodide-lock
```

## Python API

To parsing and write the `pyodide-lock.json` (formerly `repodata.json`) file:
```py
from pyodide_lock import PyodideLockSpec

lock_spec = PyodideLockSpec.from_json("pyodide-lock.json")
# Make some changes
lock_spec.to_json("pyodide-lock.json")
```

## License

BSD-3-Clause License
