In this Montessori Classroom Project (mcm) I am working on, I hope to incorporate as much of the advice I've gotten here as I can remember. So I want to do version control, TDD, etc., and do it as well as I can. Especially since this thing looks to grow considerably over time. I have not ever thought about formal project directory structures before, so I may need a bit of guidance here.
My current skeleton structure is: /Projects /mcm /.git /db __init__.py /ui __init__.py main.py My intent is to use main.py to start the program. I know I am going to be using a database and a user interface, thus their folders. I don't yet have a feeling for how many additional directories I might have for the bulk of the program logic code. Right now I am trying to figure out how to arrange my unit test file(s). My initial thoughts are to have a single test directory with separate subdirectories corresponding to each folder which has source code. Is this a good way to do things? While searching through the Tutor archives I found one of Steve's answers on project structure, which I copied part of below. Unfortunately it did not address testing organization: ----------------------------------------------------------------------- Re: [Tutor] Project directory structure Steven D'Aprano Thu, 30 Jan 2014 03:26:22 -0800 If you're creating something a little more formal, say you plan to make it public, there is a convention for laying out project directories: myproject +-- CHANGES.txt +-- LICENCE.txt +-- MANIFEST.in +-- README.txt +-- setup.py +-- src +-- myproject.py although the src directory is not compulsory. If you're creating a package, rather than a single module, then you do need to use a special directory structure: mypackage +-- __init__.py +-- __main__.py +-- cheese.py +-- eggs.py +-- spam.py ----------------------------------------------------------------------- It looks like I ought to combine the myproject and mypackage recommendations into a coherent whole. It looks like my current subfolders of /db and /ui as well as main.py should go under the subfolder /src. The suggested files CHANGES.txt, LICENSE.txt, and README.txt look like good things to include. I don't know yet what MANIFEST.in is about. Makes me think of a shipping manifest, but that is probably not its function. And I don't know what set-up needs setup.py would typically serve. I will have to search for answers to these. Does this cover everything I need to be concerned about as far as project organization so that I do not run into future problems? TIV! boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor