On Tue, Mar 21, 2017 at 3:13 AM, Thomas Güttler < [email protected]> wrote:
> AFAIK it is impossible to do this: > > pip install -e foo > > You need to use the repo URL up to now: > > pip install -e git+https://example.com/repos/foo#egg=foo > > AFAIK the fast/short implementation of "pip install -e foo" does > not work, since pip can't access metadata of package foo without > downloading > the whole package. Or am I wrong - is this possible? > These read metadata from an already-downloaded package with a setup.py?: ```bash pip install -e . pip install -e "${VIRTUAL_ENV}/src/foo" ``` You can download the JSON metadata from {PyPI, Warehouse} but IDK about {devpi, }? - https://github.com/pypa/warehouse/issues/1638 - https://pypi.org/pypi/pip/json - - https://github.com/pypa/warehouse/blob/master/warehouse/legacy/api/json.py - [ ] add (existing, Metadata 2.0/3.0) JSON api to devpi - [ ] Create a PEP for a pypa JSON HTTP endpoint spec - [ ] Static HTML support: Redirect to pkg-name-ver.tar.gz.json? - http://doc.devpi.net/latest/curl.html - http://doc.devpi.net/latest/userman/devpi_commands.html#getjson - "Pip needs a dependency resolver" https://github.com/pypa/pip/issues/988 - https://github.com/awwad/depresolve/blob/master/depresolve/scrape_pypi_metadata.py - pip clone --recursive - pip install --clone --recursive --no-recursive > > But how cares for useless downloaded bytes? I don't care. > How is this usecase distinct from those solved for by?: - requirements.txt - pipenv install --dev pkgname - https://github.com/kennethreitz/pipenv > > It should be possible to download the whole package "foo", > then look at the metadata which is provided by it. Take > the canonical repo url, and then get the source from > the repo. > > AFAIK there is no official way to define a "Canonical Repo URL" up to now. > > If I want to provide it for my custom packages. How could I do this? > With JSONLD [1], you could just add a "source" attribute (with your own namespaced URI: "myns:source") to the package metadata: sourceURL: "git+ssh://[email protected]/pypa/pip@master" sourceURL: "git+https://github.com/pypa/pip@master" Or, we could add "sourceURL" (pending bikeshedding on the property name) to the metadata 3.0 PEP. ````bash pip clone pip pip install --clone --rev-override=develop pip ``` And then, if you give a mouse a cookie, what about multiple sourceURLs: which is the canonical URL? git+git://git.apache.org/libcloud.git git+https://github.com/apache/libcloud git+ssh://[email protected]/apache/libcloud [1] https://github.com/pypa/interoperability-peps/issues/31 > > Regards, > Thomas Güttler > > -- > Thomas Guettler http://www.thomas-guettler.de/ > _______________________________________________ > Distutils-SIG maillist - [email protected] > https://mail.python.org/mailman/listinfo/distutils-sig >
_______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
