Especially for newcomers, an implicit "use Pipfile if exists, else requirements.txt" is just unnecessary magic.
I also don't think it's ever a good idea to have multiple options for something like that.
Dear god we love to bikeshed.
Requiring a user to say what they want from a command line tool (that takes barely two seconds to type) is hardly an exhausting task.
Besides. Tab completion. And if it's really that important, make an `alias pipi="pip install -r requirements.txt"`.
Personally, I'm in the "whatever" camp. But you can be certain that such a change will break something.
Right now, the whole system encourages you to build bespoke environments that are really difficult to replicate. Making the default use requirements.txt encourages you to write down everything you're doing in a reproducible way.
Making `pip install` context-sensitive (dependent on the current working directory) would reduce reproducibility. Imagine the instructions to a beginner: (1) download, (2) cd, (3) pip install. Many times the beginner will skip step 2 or accidentally wind up in the wrong directory.
I do think you're misrepresenting the instructions to the beginner. The instructions to the beginner are (1) download (2) cd (3) run tox.
Beginners shouldn't even need to know what pip is, tox (or another build tool) should handle everything for you.
When I say "beginner" I mean someone who is learning their first programming language and may have never opened Terminal or `cmd.exe` before.
> run tox
I thought the argument above was that the command should be `pip install`. This is confusing.
> Beginners shouldn't even need to know what pip is
Ok, in that case, why do you care whether `pip install` has an implicit default mode?
This is a similar argument to what happened when Babel in JS land decided to not have anything happen by default and explicitly require you to decide your configuration. It's silly to force users to do something that could be solved by a sensible default, and this is a clear case where a sensible default is appropriate.