-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Issue #988: new resolver for pip #2716
Conversation
assert self._req_cache is None | ||
self._req_cache = req_cache | ||
|
||
@property |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems to have nothing to do with this PR ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Its adding the req_cache, a set-but-not-change attribute.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, I was pointing the specifier
switching to a property :)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it was already, its just the diff anchoring oddly.
I've an issue with the |
4638f88
to
28708d2
Compare
class RequirementCache(object): | ||
"""A cache of requirements. | ||
|
||
:attr delete: May be set to False to disable deleting the cache. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The first time I read this I thought "deleting the cache" meant an in-memory object; reading the docstring for __init__
I realised that it actually refers to the on-disk cache artifacts
Maybe "deleting the cached artifacts" or "deleting the cached files" would be clearer here, but I think this is a minor issue.
a4ba3fe
to
a834dcf
Compare
""" | ||
# make the wheelhouse | ||
if self.wheel_download_dir: | ||
ensure_dir(self.wheel_download_dir) | ||
# Allow for a decent # of reqs | ||
# Each dep in the graph is a frame. | ||
sys.setrecursionlimit(5000) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this just be dynamically computed (since we should know the height of the tree)? Perhaps something for later as this gets optmized more...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually nm, we don't know the tree height (if new dependencies keep on getting pulled in); so cancel that question (although we do know a starting/potential height and/or guess).
2c1e6e3
to
66be196
Compare
Since the point of the Cache is to own the directories and all the metadata about requirements, they need to own this stuff.
Currently we delete succesfully installed requirements and not ones that failed. Then (most of the time) we delete the requirements cache that contained them, deleting everything. This means that useful debugging context is lost (when we don't delete the cache), and we've got complexity serving no point. Instead, either keep everything or delete it all.
Its useful to know whats happening, so push the existing logging down to debug, and store the skip reason (which will be constant for a given req) on the req itself.
78e5260
to
748b2e8
Compare
Still a very large commit with lots of unresolved duplication.
748b2e8
to
2620072
Compare
:param version: The version that was selected. | ||
:return: The InstallationCandidate. | ||
""" | ||
canonical_name = pkg_resources.safe_name(name).lower() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could use pip.utils.canonicalize_name
. And there are a bunch of other places also :)
Accidentally closed this, reopening. Sorry! |
Hello! As part of an effort to ease the contribution process and adopt a more standard workflow pip has switched to doing development on the If you do nothing, this Pull Request will be automatically closed by @BrownTruck since it cannot be merged. If this pull request is still valid, please rebase it against If you choose to rebase/merge and resubmit this Pull Request, here is an example message that you can copy and paste:
|
This Pull Request was closed because it cannot be automatically reparented to the Please feel free to re-open it or re-submit it if it is still valid and you have rebased it onto |
@rbtcollins Would you be fine if I reuse the work here? I'm pretty sure you would be... Just confirming. |
Please do
On 15 Jan 2017 6:34 PM, "Pradyun S. Gedam" <notifications@github.com> wrote:
@rbtcollins <https://github.com/rbtcollins> Would you be fine if I reuse
the work here? I'm pretty sure you would be... Just confirming.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#2716 (comment)>, or mute the
thread
<https://github.com/notifications/unsubscribe-auth/AAef3ixu8R8KcpeHc3Ujijnn-pc23dSDks5rScwXgaJpZM4EGhfa>
.
|
This is the branch I'm working up on issue #988. Right now its a bunch of preparatory plumbing to make access to many and varied versions of a single requirement possible and cheap - since we're very likely to hit the same thing again and again and again as we try different paths.