- Use `get_installed_distributions` from pip
- This cascades to `pkg_resources.working_set` which relies on
`sys.path` to uncover packages
- Consequently I implemented `temp_path()` as a contextmanager in the
style of `temp_environ()`
- This requires us to know the environment's `sys.path`, so
`load_path(python)` will do a `json.dumps` of `sys.path` to stdout
which then gets loaded and returned
- Allows us to avoid trying to hack around `pip freeze` output to parse
out names from comments etc
- Provides other potential uses
Signed-off-by: Dan Ryan <dan@danryan.co>
Signed-off-by: Dan Ryan <dan@danryan.co>
Add snaptime sdist
Signed-off-by: Dan Ryan <dan@danryan.co>
Update core.py encoding and add gitattributes
Signed-off-by: Dan Ryan <dan@danryan.co>
Fix deploy test
Signed-off-by: Dan Ryan <dan@danryan.co>
Add pytest things
Signed-off-by: Dan Ryan <dan@danryan.co>
Add py sdist
Signed-off-by: Dan Ryan <dan@danryan.co>
Signed-off-by: Dan Ryan <dan@danryan.co>
Add pytz and certifi updates
Signed-off-by: Dan Ryan <dan@danryan.co>
Fix nondeterministic resolution bug
- Update dependencies
- Fix some issues with test logic
- Update piptools patch
Signed-off-by: Dan Ryan <dan@danryan.co>
Update more packages
Signed-off-by: Dan Ryan <dan@danryan.co>
Update tests and utils
Signed-off-by: Dan Ryan <dan@danryan.co>
Still need to tackle last few failures
- this will seriously help with resolution issues
Add alembic new version
Signed-off-by: Dan Ryan <dan@danryan.co>
- Iterate over VCS dependencies from pipfile instead of
iterating over those found in `pip freeze` output
- Only pass editable dependencies to pip-tools for resolution
- Normalize names and ensure that we update lockfile entries accordingly
Signed-off-by: Dan Ryan <dan@danryan.co>
Adds support for the --pypi-mirror command line parameter and the
PIPENV_PYPI_MIRROR environment variable for most pipenv operations.
This permits pipenv to function without pypi.org, which is necessary for
users:
1. behind restrictive networks
2. facing strict artifact sourcing policies
3. experiencing poor performance connecting to pypi.org
4. who've configured a local cache for performance reasons
When specified, the value of this parameter replaces all instances of
pypi.org and pypi.python.org within pipenv operations without modifying
or requring the modification of Pipfiles.
- Resolves#2075
- Fixes#2088, #2234, #1901
- Fully leverage piptools' compile functionality by using constraints
in the same `RequirementSet` during resolution
- Use `PIP_PYTHON_PATH` for compatibility check to filter out
`requires_python` markers
- Fix vcs resolution
- Update JSON API endpoints
- Enhance resolution for editable dependencies
- Minor fix for adding packages to pipfiles
Signed-off-by: Dan Ryan <dan@danryan.co>