Development Status
- 4 - Beta
Programming Language
- Python :: 3
- Python :: 3.10
- Python :: 3.11
- Python :: 3.12
- Python :: 3.13
- Python :: 3.14
Typing
- Typed
nab-resolver
Generic PubGrub dependency resolver, parameterised over a
ResolverProvider protocol. No Python-specific knowledge: this
package is a SAT-style solver core. The Python provider lives in
nab-provider and the
user-facing CLI in nab.
It has no runtime dependencies: the standard library is all it needs.
When to use it
Use nab-resolver when you are building some kind of package
resolver, Python or otherwise. There is a worked example in the docs:
https://nab.readthedocs.io/en/stable/how-to/embed-the-resolver.html
The public API
The supported API is the module paths below. They will not move without a major version bump. Everything else in the package is internal and may be renamed or relocated in any release.
nab_resolver.errors ResolutionError
nab_resolver.ranges Range
nab_resolver.resolver BaseProvider, DEFAULT_MAX_ITERATIONS, Resolver,
ResolverObserver, ResolverProvider, Solution
nab_resolver.root ROOT
nab_resolver.types Incompatibility, IncompatibilityCause,
RangeProtocol, RootRequirement, Term
The package root binds no names, so importing nab_resolver pulls in
no submodules and a caller loads only what it imports.