A template I use for most projects and is setup to jive with my environment at the company I work with.
This is not the one-shot solution to project structure or packaging. This is just what works well for one egg on the Internet. Feel free to use it as you see fit.
-
Q: Should I follow everything to the absolute letter in this template?
- A: Heck no, I don't even do that! This is just the closest one-size-fits-most template I've put together. Use what you want how you want.
-
Q: Why do you hard pin your development and test requirements?
- A: For control over the environment used to develop on the package. It
is also beneficial in many of the areas I work where artifactory proxies are
between
pip
and the pypi public index. Versions remaining hard pinned ensure the package is always cleared for use through the artifactory.
- A: For control over the environment used to develop on the package. It
is also beneficial in many of the areas I work where artifactory proxies are
between
-
Q: Why not put the requirements into the
pyproject.toml
?- A: Mostly because
pip-compile
does all the work for me and doesn't target thepyproject.toml
. Partly because many of my projects need to be scanned by utilities that still thinkrequirements.txt
is the only pattern to use.
- A: Mostly because
-
Q: Why does this template change so often?
- A: I'm constantly finding new tweaks that make the template fit just a little better. I'm also open to ideas and suggestions so please drop an issue if you have one.