Don't get me wrong Pip is a great package manager but there is one thing that had always bugged me, that was having all the dependencies within a single file. For example having all of your development dependencies (linters, formators etc) and your application dependencies (Scrapli, Nornir etc) all within one
This was until I discovered the fact that you can import dependencies from one
requirements.txt to another. Let me explain...
First, create a
requirements.txt containing your application dependencies.
$ cat requirements.txt pyats==21.7 pyats.aereport==21.7 pyats.aetest==21.7 pyats.async==21.7 pyats.connections==21.7 pyats.datastructures==21.7 pyats.easypy==21.7 pyats.kleenex==21.7 ...
Now we can create a
requirements-dev.txt containing our development dependencies, along with importing our previous dependencies, using
-r requirements.txt. Like so:
-r requirements.txt appdirs==1.4.4 astroid==2.6.6 attrs==21.2.0 bandit==1.7.0 black==21.7b0 click==8.0.1 eradicate==2.0.0 flake8==3.9.2 flake8-builtins==1.5.3 flake8-eradicate==1.1.0 ...
Now if you now perform a
pip install -r requirements-dev.txt you will install both sets of dependencies, whilst keeping the 2 sets of dependencies separated!