I think main.py should be limited to containing a main entry point for an executable. e.g. nothing that's intended to be imported from elsewhere.

If you're thinking about generic.py, and "generic" isn't actually a meaningful grouping, then consider putting the contents in `__init__.py` instead. On the other hand, if you were creating [generic programming entities](http://en.wikipedia.org/wiki/Generic_programming) then a generics module might make a lot of sense!

init.py probably should probably always be included as the contents of `__init__.py`, unless there is technical reason for why this wouldn't work.

my 2c