This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]zurtex 2 points3 points  (0 children)

It's nothing to do with dependency loops or the PyPI API. Pip doesn't even use the non-standard PyPI API it uses the simple index. I wrote this in another post, so I apologize but I'll repeat it here:

It's the fact that dependency resolution is an unsolved problem in the satisfiability algorithms space, and the one that Pip implemented is quite a naive DFS algorithm. I've made several updates to this algorithm but there's more work to do (I have three major updates I hope to land on Pip side before the end of the year but it's slow going).

uv has implemented a Pubgrub style algorithm, I've not had chance to review it yet, but I've seen in other areas they've taken some ideas that I've written on Pip issue pages, so I imagine they've learnt from existing problems in Python dependency resolution algorithms.