I find myself coming back to this guide whenever I set up a new project: https://sourcery.ai/blog/python-best-practices/
Additionally I can't be the only person who utterly despises pipenv. It is confusing for most people who don't know python packaging internals, phenonomially slow for everyone else and besides discourages building proper distributables (or:wheels).