uv/crates/uv-resolver/src
Tim de Jager eaf517efd8
Some checks are pending
CI / Determine changes (push) Waiting to run
CI / lint (push) Waiting to run
CI / cargo clippy | ubuntu (push) Blocked by required conditions
CI / cargo clippy | windows (push) Blocked by required conditions
CI / cargo dev generate-all (push) Blocked by required conditions
CI / cargo shear (push) Waiting to run
CI / cargo test | ubuntu (push) Blocked by required conditions
CI / cargo test | macos (push) Blocked by required conditions
CI / cargo test | windows (push) Blocked by required conditions
CI / check windows trampoline | aarch64 (push) Blocked by required conditions
CI / integration test | pyodide on ubuntu (push) Blocked by required conditions
CI / check windows trampoline | i686 (push) Blocked by required conditions
CI / check windows trampoline | x86_64 (push) Blocked by required conditions
CI / test windows trampoline | i686 (push) Blocked by required conditions
CI / test windows trampoline | x86_64 (push) Blocked by required conditions
CI / typos (push) Waiting to run
CI / check system | pyston (push) Blocked by required conditions
CI / mkdocs (push) Waiting to run
CI / build binary | linux libc (push) Blocked by required conditions
CI / build binary | linux aarch64 (push) Blocked by required conditions
CI / build binary | linux musl (push) Blocked by required conditions
CI / build binary | macos aarch64 (push) Blocked by required conditions
CI / build binary | macos x86_64 (push) Blocked by required conditions
CI / build binary | windows x86_64 (push) Blocked by required conditions
CI / build binary | windows aarch64 (push) Blocked by required conditions
CI / cargo build (msrv) (push) Blocked by required conditions
CI / build binary | freebsd (push) Blocked by required conditions
CI / ecosystem test | pydantic/pydantic-core (push) Blocked by required conditions
CI / ecosystem test | prefecthq/prefect (push) Blocked by required conditions
CI / ecosystem test | pallets/flask (push) Blocked by required conditions
CI / smoke test | linux (push) Blocked by required conditions
CI / smoke test | linux aarch64 (push) Blocked by required conditions
CI / check system | alpine (push) Blocked by required conditions
CI / smoke test | macos (push) Blocked by required conditions
CI / smoke test | windows x86_64 (push) Blocked by required conditions
CI / smoke test | windows aarch64 (push) Blocked by required conditions
CI / integration test | conda on ubuntu (push) Blocked by required conditions
CI / integration test | deadsnakes python3.9 on ubuntu (push) Blocked by required conditions
CI / integration test | free-threaded on windows (push) Blocked by required conditions
CI / integration test | aarch64 windows implicit (push) Blocked by required conditions
CI / integration test | aarch64 windows explicit (push) Blocked by required conditions
CI / integration test | pypy on ubuntu (push) Blocked by required conditions
CI / integration test | pypy on windows (push) Blocked by required conditions
CI / integration test | graalpy on ubuntu (push) Blocked by required conditions
CI / integration test | graalpy on windows (push) Blocked by required conditions
CI / integration test | github actions (push) Blocked by required conditions
CI / integration test | free-threaded python on github actions (push) Blocked by required conditions
CI / integration test | determine publish changes (push) Blocked by required conditions
CI / integration test | registries (push) Blocked by required conditions
CI / integration test | uv publish (push) Blocked by required conditions
CI / integration test | uv_build (push) Blocked by required conditions
CI / check cache | ubuntu (push) Blocked by required conditions
CI / check cache | macos aarch64 (push) Blocked by required conditions
CI / check system | python on debian (push) Blocked by required conditions
CI / check system | python on fedora (push) Blocked by required conditions
CI / check system | python on ubuntu (push) Blocked by required conditions
CI / check system | python on rocky linux 8 (push) Blocked by required conditions
CI / check system | python on rocky linux 9 (push) Blocked by required conditions
CI / check system | graalpy on ubuntu (push) Blocked by required conditions
CI / check system | pypy on ubuntu (push) Blocked by required conditions
CI / check system | python on macos aarch64 (push) Blocked by required conditions
CI / check system | homebrew python on macos aarch64 (push) Blocked by required conditions
CI / check system | python on macos x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86-64 (push) Blocked by required conditions
CI / check system | python3.10 on windows x86 (push) Blocked by required conditions
CI / check system | python3.13 on windows x86-64 (push) Blocked by required conditions
CI / check system | x86-64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | aarch64 python3.13 on windows aarch64 (push) Blocked by required conditions
CI / check system | windows registry (push) Blocked by required conditions
CI / check system | python3.12 via chocolatey (push) Blocked by required conditions
CI / check system | python3.9 via pyenv (push) Blocked by required conditions
CI / check system | python3.13 (push) Blocked by required conditions
CI / check system | conda3.11 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.8 on macos aarch64 (push) Blocked by required conditions
CI / check system | conda3.11 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on linux x86-64 (push) Blocked by required conditions
CI / check system | conda3.11 on windows x86-64 (push) Blocked by required conditions
CI / check system | conda3.8 on windows x86-64 (push) Blocked by required conditions
CI / check system | amazonlinux (push) Blocked by required conditions
CI / check system | embedded python3.10 on windows x86-64 (push) Blocked by required conditions
CI / benchmarks | walltime aarch64 linux (push) Blocked by required conditions
CI / benchmarks | instrumented (push) Blocked by required conditions
Add method to get packages involved in a NoSolutionError (#14457)
<!--
Thank you for contributing to uv! To help us out with reviewing, please
consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

<!-- What's the purpose of the change? What does it do, and why? -->

In pixi we overlay the PyPI packages over the conda packages and we
sometimes need to figure out what PyPI packages are involved in the
no-solution error. We could parse the error message, but this is pretty
error-prone, so it would be good to get access to more information. A
lot of information in this module is private and should probably stay
this way, but package names are easy enough to expose. This would help
us a lot!

I collect into a HashSet to remove duplication, and did not want to
expose a rustc_hash datastructure directly, thats's why I've chosen to
expose as an iterator :)

Let me know if any changes need to be done, and thanks!

---------

Co-authored-by: Zanie Blue <contact@zanie.dev>
2025-07-04 18:08:23 +00:00
..
lock Return Cow from UrlString::with_ methods (#14319) 2025-06-27 13:54:52 -04:00
pubgrub make ErrorTree for NoSolutionError externally accessible (#14444) 2025-07-03 11:43:59 -05:00
resolution Turn off clippy::struct_excessive_bools rule (#14102) 2025-06-17 12:18:54 +02:00
resolver make ErrorTree for NoSolutionError externally accessible (#14444) 2025-07-03 11:43:59 -05:00
candidate_selector.rs Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
dependency_mode.rs Store resolution options in lockfile (#5264) 2024-07-22 08:28:22 -04:00
dependency_provider.rs All (virtual) packages must have a priority (#10853) 2025-01-23 16:09:47 +00:00
error.rs Add method to get packages involved in a NoSolutionError (#14457) 2025-07-04 18:08:23 +00:00
exclude_newer.rs Fix optional cfg gates (#14448) 2025-07-03 15:29:03 -05:00
exclusions.rs Always reinstall local source trees passed to uv pip install (#12176) 2025-03-17 21:12:21 +00:00
flat_index.rs Bump MSRV to 1.85 and Edition 2024 (#13516) 2025-05-18 19:38:43 -04:00
fork_indexes.rs Use parsed URLs for conflicting URL error message (#14380) 2025-07-01 08:18:01 -04:00
fork_strategy.rs Introduce a --fork-strategy preference mode (#9868) 2024-12-13 16:05:07 -05:00
fork_urls.rs Use parsed URLs for conflicting URL error message (#14380) 2025-07-01 08:18:01 -04:00
graph_ops.rs Support conflict markers in uv export (#11643) 2025-02-20 12:19:46 -08:00
lib.rs make ErrorTree for NoSolutionError externally accessible (#14444) 2025-07-03 11:43:59 -05:00
manifest.rs Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
marker.rs Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
options.rs Disallow mixing requirements across PyTorch indexes (#13179) 2025-04-28 20:06:18 +00:00
pins.rs Improve file pinning comments (#10387) 2025-01-08 11:42:25 +00:00
preferences.rs Treat already-installed base environment packages as preferences in uv run --with (#13284) 2025-05-04 23:24:57 +00:00
prerelease.rs Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00
python_requirement.rs Add [tool.uv.dependency-groups].mygroup.requires-python (#13735) 2025-06-13 22:04:13 +00:00
redirect.rs Add DisplaySafeUrl newtype to prevent leaking of credentials by default (#13560) 2025-05-27 00:05:30 +02:00
resolution_mode.rs Respect fork markers in --resolution-mode=lowest-direct (#8839) 2024-11-05 21:09:38 +00:00
universal_marker.rs Apply first set of Rustfmt edition 2024 changes (#13478) 2025-05-16 20:19:02 -04:00
version_map.rs Turn off clippy::struct_excessive_bools rule (#14102) 2025-06-17 12:18:54 +02:00
yanks.rs Move lowered requirement source type out of uv-pypi-types (#12356) 2025-03-20 21:16:12 -04:00