Dependency Management#
I generally encounter two different package/dependency management scenarios:
Packages: Full packages that are intended for distribution on [PyPI], and possibly with [Conda].
Projects: Working projects (like this class project) that will generally be distributed using version control.
Packages#
If a package is going to be distributed on [PyPI], then you should try to [Poetry] as
configured through a pyproject.toml file. This can be a bit of a pain as [Poetry] is
very picky when it comes to dependency specifications, but it is probably best to work
through these and get everything working.
There are a couple of caveats though:
Poetry does not support shell script files as one could specify with the
scripts=argument tosetup(). The limitation is that one must use python entry points. Thus:[tools.poetry.scripts] mmf_setup = 'mmf_setup:run'
This would install a command
mmf_setupthat callsmmf_setup.run().
entry-points If you intend to install shell-scripts as entry points,