Just as a data point: I do a ton of “standalone project” stuff in the context of scientific analyses, and the PEP 621 structure works pretty well for me. I don’t personally need an --only-deps
flag, because I still need to install my own project code. My workflow is:
- Create a repo for a project, with
pyproject.toml
andrequirements.txt
- Write project-specific code as a package and upload to Github for sharing
- For analysis I’ll clone the repo[1], use
pip install -e
to install my code, and perform data analysis in jupyter notebooks, importing the code in the notebook as needed
Maybe this structure is already a level of complexity beyond what’s under discussion. And maybe I do it this way as a result of how packages work now, and I’d do it differently if standalone scripts were supported more explicitly. I’m not sure.
I will say that this structure is way more organized than a lot of my colleagues . I guess I partially agree with @abravalheri in that there’s no need to make it easier to dump a bunch of spaghetti in a folder and call it a pyproject, but I do think that the use case of “organized code w/ project-like configuration, but not intended for a wheel” is pretty common in research. The reproducibility of the structure is a big feature there.
typically on a VM in the cloud ↩︎