What is the best Python project structure for a non-trivial end-user desktop application?
Imagine you’re developing a desktop (not web) application in Python. What is the ideal folder hierarchy to use for your project, considering the following desirable features: ease of maintenance, IDE-friendliness, suitability for source control branching/merging, and easy generation of install packages?
Specifically:
- Where should the source code be placed?
- Where should the application startup scripts go?
- Where should the IDE project configuration files be stored?
- Where should the unit/acceptance tests be placed?
- Where should non-Python data, such as config files, be stored?
- Where should non-Python source files, such as C++ for pyd/so binary extension modules, be stored?