Metadata-Version: 2.4
Name: nab
Version: 0.0.1a0
Summary: PubGrub-based dependency resolver for Python packages
Project-URL: Homepage, https://github.com/notatallshaw/nab
Project-URL: Documentation, https://nab.readthedocs.io/
Project-URL: Issues, https://github.com/notatallshaw/nab/issues
Project-URL: Source, https://github.com/notatallshaw/nab
Project-URL: Changelog, https://github.com/notatallshaw/nab/blob/main/CHANGELOG.md
Author-email: Damian Shaw <damian.peter.shaw@gmail.com>
License-Expression: MIT
License-File: LICENSE
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: nab-index==0.0.1a0
Requires-Dist: nab-python==0.0.1a0
Requires-Dist: nab-resolver==0.0.1a0
Requires-Dist: tyro>=1.0
Provides-Extra: httpx
Requires-Dist: nab-index[httpx]==0.0.1a0; extra == 'httpx'
Provides-Extra: niquests
Requires-Dist: nab-index[niquests]==0.0.1a0; extra == 'niquests'
Description-Content-Type: text/markdown

# nab

Experimental PubGrub-based dependency resolver for Python packages.

`nab` reads a `pyproject.toml`, resolves the dependency tree, and
writes a pinned set of versions or a PEP 751 lockfile. It does not
install. Hand the lockfile to whatever installer you trust.

## Install

```bash
uv tool install nab
```

`pipx install nab` is equivalent. See
[installation](docs/guides/installation.md) for HTTP backend choices,
throw-away invocations (`uvx nab`, `pipx run nab`), and a development
checkout.

## Quick start

```toml
# pyproject.toml
[project]
name = "example"
version = "0.1.0"
dependencies = [
    "starlette<=0.36.0",
    "fastapi<=0.115.2",
]
```

```bash
nab lock pyproject.toml
```

Writes `pylock.toml` next to the project. For a sorted
`name==version` list instead, use
`nab lock --format requirements-without-hashes --output -`.

## Documentation

* [Getting started](docs/guides/getting-started.md)
* [Configuration](docs/guides/configuration.md)
* [CLI](docs/guides/cli.md)
* [Lockfile](docs/guides/lockfile.md)
* [Build policy](docs/guides/build-policy.md)
* [Local sources](docs/guides/local-sources.md)
* [VCS dependencies](docs/guides/vcs.md)
* [Multi-index routing](docs/guides/multi-index.md) (experimental)
* [Workspaces](docs/guides/workspaces.md) (experimental)
* [Universal resolution](docs/guides/universal.md) (experimental)
