Discussion:
what is the status of pipfile?
Brett Cannon
2018-06-20 01:15:46 UTC
Permalink
Question: what are the plans, both short-term and long-term, for Pipfile?

Why I'm asking: I looked at the pipfile library
<https://pypi.org/project/pipfile/> and I noticed it had not been updated
in quite a while compared to its repo. And then I noticed that was has been
released doesn't match what's in the git repo (i.e. PyPI has 0.0.2
<https://pypi.org/project/pipfile/#history> while GitHub has 0.0.1
<https://github.com/pypa/pipfile/blob/master/pipfile/__about__.py>). And
then I noticed that pipenv doesn't even use it
<https://github.com/pypa/pipenv/tree/master/pipenv/vendor>. And then I
noticed that there are options which are not documented by either Pipfile
<https://github.com/pypa/pipfile#pipfile>or pipenv
<https://github.com/pypa/pipenv/blob/master/docs/basics.rst#-editable-dependencies-eg--e-->(e.g.
does a 'path' argument for a dependency act like --target for pip?). So I
obviously get it's a work-in-progress. :)
Dan Ryan
2018-06-20 03:46:07 UTC
Permalink
Pipenv has a vendored version of Pipfile <https://github.com/pypa/pipenv/tree/master/pipenv/patched/pipfile> right now, which has a couple of patches <https://github.com/pypa/pipenv/blob/master/tasks/vendoring/patches/patched/pipfile.patch> in it – I’m not a committer on the main repo and I can’t speak for Donald or anything like that, but my understanding was that we are kind of piloting it for the moment. Kenneth mentioned in an interview somewhere that someone had plans to rewrite it, but I’m not sure who or when.



The path argument was added to the pipfile spec (I think it was added experimentally _in_ pipenv and never pushed to the repo until pipfile spec #6 which is the current one) in September of 2017, and it was added specifically to support local _installable_ packages on the filesystem already, i.e. if you have a directory or a wheel or an artifact that you want to install and for instance you ship it with your repo, you can specify it by relative path instead of a full URI. It was something that was demanded by a huge number of people and it makes a lot of sense IMO.



We don’t currently have an option like --target although I believe I talked to Nick and Kenneth both about adding that feature at PyCon and I know there was pretty widespread support to do so – if you want to get a quick prototype working, feel free to shoot me a message.



If you are looking for a layer that does some translations between Pipfiles, Lockfiles, and requirements files, me and @uranusjr are maintaining a separate library which is being slowly integrated into pipenv which acts as an interface between requirements.txt, pip’s internal requirements API, Pipfile, and Pipfile.lock – see https://github.com/sarugaku/requirementslib





Dan Ryan

gh: @techalchemy <https://github.com/techalchemy> // e: ***@danryan.co



From: pypa-***@googlegroups.com [mailto:pypa-***@googlegroups.com] On Behalf Of Brett Cannon
Sent: Tuesday, June 19, 2018 9:16 PM
To: pypa-dev
Subject: what is the status of pipfile?



Question: what are the plans, both short-term and long-term, for Pipfile?



Why I'm asking: I looked at the pipfile library <https://pypi.org/project/pipfile/> and I noticed it had not been updated in quite a while compared to its repo. And then I noticed that was has been released doesn't match what's in the git repo (i.e. PyPI has 0.0.2 <https://pypi.org/project/pipfile/#history> while GitHub has 0.0.1 <https://github.com/pypa/pipfile/blob/master/pipfile/__about__.py> ). And then I noticed that pipenv doesn't even use it <https://github.com/pypa/pipenv/tree/master/pipenv/vendor> . And then I noticed that there are options which are not documented by either Pipfile <https://github.com/pypa/pipfile#pipfile> or pipenv <https://github.com/pypa/pipenv/blob/master/docs/basics.rst#-editable-dependencies-eg--e--> (e.g. does a 'path' argument for a dependency act like --target for pip?). So I obviously get it's a work-in-progress. :)
Brett Cannon
2018-06-20 18:10:33 UTC
Permalink
Thanks for the info, Dan! I'll just consider Pipfiles a pipenv thing for
now then.

And thanks for the pointer to requirementslib. I'll have a look to see if
it can meet my needs.
Post by Dan Ryan
Pipenv has a vendored version of Pipfile
<https://github.com/pypa/pipenv/tree/master/pipenv/patched/pipfile> right
now, which has a couple of patches
<https://github.com/pypa/pipenv/blob/master/tasks/vendoring/patches/patched/pipfile.patch>
in it – I’m not a committer on the main repo and I can’t speak for Donald
or anything like that, but my understanding was that we are kind of
piloting it for the moment. Kenneth mentioned in an interview somewhere
that someone had plans to rewrite it, but I’m not sure who or when.
The path argument was added to the pipfile spec (I think it was added
experimentally _*in*_ pipenv and never pushed to the repo until pipfile
spec #6 which is the current one) in September of 2017, and it was added
specifically to support local _*installable*_ packages on the filesystem
already, i.e. if you have a directory or a wheel or an artifact that you
want to install and for instance you ship it with your repo, you can
specify it by relative path instead of a full URI. It was something that
was demanded by a huge number of people and it makes a lot of sense IMO.
We don’t currently have an option like --target although I believe I
talked to Nick and Kenneth both about adding that feature at PyCon and I
know there was pretty widespread support to do so – if you want to get a
quick prototype working, feel free to shoot me a message.
If you are looking for a layer that does some translations between
maintaining a separate library which is being slowly integrated into pipenv
which acts as an interface between requirements.txt, pip’s internal
requirements API, Pipfile, and Pipfile.lock – see
https://github.com/sarugaku/requirementslib
Dan Ryan
Behalf Of *Brett Cannon
*Sent:* Tuesday, June 19, 2018 9:16 PM
*To:* pypa-dev
*Subject:* what is the status of pipfile?
Question: what are the plans, both short-term and long-term, for Pipfile?
Why I'm asking: I looked at the pipfile library
<https://pypi.org/project/pipfile/> and I noticed it had not been updated
in quite a while compared to its repo. And then I noticed that was has been
released doesn't match what's in the git repo (i.e. PyPI has 0.0.2
<https://pypi.org/project/pipfile/#history> while GitHub has 0.0.1
<https://github.com/pypa/pipfile/blob/master/pipfile/__about__.py>). And
then I noticed that pipenv doesn't even use it
<https://github.com/pypa/pipenv/tree/master/pipenv/vendor>. And then I
noticed that there are options which are not documented by either Pipfile
<https://github.com/pypa/pipfile#pipfile>or pipenv
<https://github.com/pypa/pipenv/blob/master/docs/basics.rst#-editable-dependencies-eg--e-->(e.g.
does a 'path' argument for a dependency act like --target for pip?). So I
obviously get it's a work-in-progress. :)
Loading...