{"action":"created","issue":{"url":"https://api.github.com/repos/pypa/pip/issues/1184","repository_url":"https://api.github.com/repos/pypa/pip","labels_url":"https://api.github.com/repos/pypa/pip/issues/1184/labels{/name}","comments_url":"https://api.github.com/repos/pypa/pip/issues/1184/comments","events_url":"https://api.github.com/repos/pypa/pip/issues/1184/events","html_url":"https://github.com/pypa/pip/pull/1184","id":18878123,"number":1184,"title":"Add `deps` command to list dependencies for a package without installing","user":{"login":"ricobl","id":134148,"avatar_url":"https://avatars.githubusercontent.com/u/134148?v=3","gravatar_id":"","url":"https://api.github.com/users/ricobl","html_url":"https://github.com/ricobl","followers_url":"https://api.github.com/users/ricobl/followers","following_url":"https://api.github.com/users/ricobl/following{/other_user}","gists_url":"https://api.github.com/users/ricobl/gists{/gist_id}","starred_url":"https://api.github.com/users/ricobl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricobl/subscriptions","organizations_url":"https://api.github.com/users/ricobl/orgs","repos_url":"https://api.github.com/users/ricobl/repos","events_url":"https://api.github.com/users/ricobl/events{/privacy}","received_events_url":"https://api.github.com/users/ricobl/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/pypa/pip/labels/asked%20to%20reparent","name":"asked to reparent","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":16,"created_at":"2013-09-02T20:01:33Z","updated_at":"2016-05-19T14:37:31Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/pypa/pip/pulls/1184","html_url":"https://github.com/pypa/pip/pull/1184","diff_url":"https://github.com/pypa/pip/pull/1184.diff","patch_url":"https://github.com/pypa/pip/pull/1184.patch"},"body":"I've created a `deps` command to resolve package dependencies and their versions.\r\n\r\nIt's useful for creating a requirements.txt file for later use with the --no-deps parameter, without having to install all the packages.\r\n\r\nThe usage and the solution are very similar to the `install` command using the --no-install parameter, collecting InstallRequirements objects and printing the package and version information.\r\n\r\nIt is working with a simple requirement, repository requirements and with requirements files.\r\n\r\nTests are included and the `deps-command` branch is based on the `development` branch.\r\n\r\nHere is an usage sample and output to check flask dependencies:\r\n\r\n```\r\n$ pip deps flask\r\n# downloading / unpacking / running messages ...\r\nflask==0.10.1\r\nWerkzeug==0.9.4\r\nJinja2==2.7.1\r\nitsdangerous==0.23\r\nmarkupsafe==0.18\r\n```"},"comment":{"url":"https://api.github.com/repos/pypa/pip/issues/comments/220344061","html_url":"https://github.com/pypa/pip/pull/1184#issuecomment-220344061","issue_url":"https://api.github.com/repos/pypa/pip/issues/1184","id":220344061,"user":{"login":"pfmoore","id":1110419,"avatar_url":"https://avatars.githubusercontent.com/u/1110419?v=3","gravatar_id":"","url":"https://api.github.com/users/pfmoore","html_url":"https://github.com/pfmoore","followers_url":"https://api.github.com/users/pfmoore/followers","following_url":"https://api.github.com/users/pfmoore/following{/other_user}","gists_url":"https://api.github.com/users/pfmoore/gists{/gist_id}","starred_url":"https://api.github.com/users/pfmoore/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pfmoore/subscriptions","organizations_url":"https://api.github.com/users/pfmoore/orgs","repos_url":"https://api.github.com/users/pfmoore/repos","events_url":"https://api.github.com/users/pfmoore/events{/privacy}","received_events_url":"https://api.github.com/users/pfmoore/received_events","type":"User","site_admin":false},"created_at":"2016-05-19T14:37:31Z","updated_at":"2016-05-19T14:37:31Z","body":"In my view, the biggest issue here is that we want to avoid a proliferation of pip subcommands that do specialised tasks. There has been talk of a \"plugin system\" for subcommands, but it hasn't really gone anywhere because pip doesn't have an internal API to support writing plugins. There's also the option of publishing a command like this as a standalone ```pip-deps``` command (either a simple shell script, or a Python package) - but again, of course, you have the issue that you can't expect to depend on pip's internals if you go down that route.\r\n\r\nSo, in summary, the bar for new pip subcommands is rather high, and the justification needs to take that into account. For example, what are you using at the moment to work around the lack of this subcommand? How much effort would be saved from not having to use that workaround? How many other users would benefit from this change (there are a few +1 posts here, but what would be more compelling is if obtaining this information was a crucial part of a specific, commonly used workflow).\r\n\r\nOn a personal note, I wouldn't block this being added, but I don't have a use for it myself (there are other additions that are higher on my personal list of priorities - one of which would be to work out a viable plugin system that would mean subcommands like this wouldn't need to be part of pip's core) so I can't promise I'll have any time to push it forward. Sorry that's probably not what you were hoping to hear - but maybe one of the other core devs feels differently."}}