- Add custom rmtree function to handle windows rms
- Only warn on failure to remove a tree
- This should mitigate a large portion of our windows test failures
- After sufficiently substantial time investment I am currently of the
opinion that there is no real elegant way to handle this (I have tried
programmatically finding all processes with open file handles,
terminating them with a 500ms retry and a 15s timeout)
- Close and handle tempfiles in resolvers
- Only create tempfiles for non-editable deps
- set umask and `PIP_SRC` for test context
- Warn instead of throwing exceptions
- Backport TemporaryDirectory for python2/3 compatibility and reliance
on custom rmtree error handling
- Vendor backport of `weakref.finalize` for
`TemporaryDirectory.cleanup()`
- Add PyTest fixtures to wrap and cleanup `PIP_SRC` directory at the module level to avoid permissions errors on appveyor
- Add resource warnings for PY2 compat
Lock instead of installing complex resolver test
- Add a special condition for allowing access errors
- Fixes issues when turning vcs lines into requirements
- At some point there was a regression around this which treats them as
normal paths
- This now follows pip practices as well
- Big todo: clean up duplicate functionality / break out logic for
requirements parsing
- Adds regression test for this case
This updates
test_editable_vcs_install_in_pipfile_with_dependency_resolution_doesnt_traceback
to check (a) that dependency resolution was triggered, and (b) that
there was no traceback (rather than just the specific traceback we are
currently seeing).
- Fixes#1225
- Add checks for Wheel files and archive files specifically
- Adopts egg-fragment parsing for local file paths to allow naming of
filesystem paths as well
- Adds these checks both to the get_requirement() function and the
is_installable_file() function
Windows generally use upper cased drive names, but allow (without
normalizing) lower cased names in cmd.exe, which results in
inconsistencies when hashing the full path (to get the name of the
project's virtualenv). Python does not provide a good solution[*], so we
need to roll our own.
[*]: Python does have os.path.normcase(), but it always converts the
whole paths to lowercase. This would break virtually *all* existing
virtualenvs for Windows users.
UNC host names (which Python also treats as drives), on the other hand,
can actually be either cased. I am not sure if they are case-sensitive,
or should be coerced to what case, so this patch keeps with the existing
behaviour, and does not try to coerce them.