Right now: requirements are "best effort" separated in a single requirements.txt file by arranging them under comment-headings for the various sub-packages
We could use pip's support for extras-require, e.g. pip install recirq[qaoa] so the extra requirements could be specified in a structured way. Specifically: I propose an extra-requirements.txt file in each submodule (i.e. experiment) containing that sub-packages extra requirements. These files could be parsed in setup.py to generate the extras_require argument to setuptools.setup.
Currently our notebooks pip install +github.com/quantumlib/recirq so that they work in a colab environment. We'll need to do the change stepwise to make sure the notebooks don't break
- add extra_requires but don't remove those requirements from install_requires
- update notebooks to pip install recirq with requisite extras, i.e.
pip install +github/recirq[qaoa]
- Remove the extra requirements from install_requires so
pip install recirq only gets you the minimal, base requirements.
cc @dstrain115
Right now: requirements are "best effort" separated in a single requirements.txt file by arranging them under comment-headings for the various sub-packages
We could use pip's support for extras-require, e.g.
pip install recirq[qaoa]so the extra requirements could be specified in a structured way. Specifically: I propose anextra-requirements.txtfile in each submodule (i.e. experiment) containing that sub-packages extra requirements. These files could be parsed insetup.pyto generate theextras_requireargument to setuptools.setup.Currently our notebooks
pip install +github.com/quantumlib/recirqso that they work in a colab environment. We'll need to do the change stepwise to make sure the notebooks don't breakpip install +github/recirq[qaoa]pip install recirqonly gets you the minimal, base requirements.cc @dstrain115