I developed the software package pypospack, and I have refactoring that work into mexm (Materials Ex Machina). Thiese are currently my notes for developing packages in python. This is really for my computational materials science packages, but they can probably be adapted as best uses. I'm going to exclude a tutorial to python just because.
I use git for version control.
References:
[1] Scott Chacon and Ben Straub , Pro Git, Apress
If there is a tool that can help with testing use it. Don't waste time building a custom test runner if you can use pytest or nose
I use pytest for testing
References:
[1] holger krekel, Pytest Documentation. https://docs.pytest.org/en/latest/contents.html
As a technology who is getting older, this section may not be so pertinent. Younger developers have a tendency to prefer IDE's. As I get older, I find that using an editor that has basic syntax highlighting, such as vi, is just easier for me to use.
Technologies come and go. With them, the support disappears for these complicated IDE tools. I have used IDE specifically for C++ for the Unix, C++/C# for Windows, and Java. I also have to edit text files when operating on a Unix system, writing LaTeX files, etc.
As I become an old head, I find that I prefer more general tools than specific ones. Right now, there is somewhat of a holy war over VS code/Atom for software development in python. It's idiotic. VSC is really a performative IDE bound to the small number of languages it supports. VSC is really written for developers of web applications, so it does a small number of applications well.
Atom is more of a general tool, where people have extended it to support syntax highlighting and limited code completition. Personally, I think in an untyped language like python, the value of code completion is somewhat limits. I work with so many different programming languages; so I prefer to use an editor tool that is same across for all my text editing neeeds, rather than having to context switch between different applications. So for me, I find that I switch between Atom and vi.