[kforge-dev] python package name: domainmodel or dm

Rufus Pollock rufus.pollock at okfn.org
Tue Jul 11 11:59:30 UTC 2006

We're just about to start work on moving kforge.core out to a separate 
project. We've agreed to call the overall project Domain Model 
(domainmodel for knowledgeforge project name) but there has been some 
debate about what to call the base python package.

My preference has been go with the short 'dm'. This is similar to many 
other projects such as:
   * turbogears which uses 'tg' as its base package name
   * Python Imaging Library which uses 'PIL' as its base name
   * Fourthought xml/xslt/rdf library which uses 'Ft'
   * Gnome Toolkit which uses gtk

John however has indicated a liking for the full 'domainmodel'. This 
approach is used for example by projects such as:
   * Cherrypy: cherrpy
   * MoinMoin comes as package MoinMoin
   * Matplotlib comes as package matplotlib (though it also uses pylab)

It is noticeable that most projects that use the full name for the 
python package have names that aren't too long or depend on from x 
import y (e.g. sqlobject).

This also relates to how one tends to do imports. Either:

import blah.foo

xx = blah.foo.FooBar()


from blah.foo import FooBar

xx = FooBar()

The length of packages names makes more difference in the first approach 
than in the second. I have a mild preference for the first approach as 
it is guaranteed to avoid any local name clashes and also makes it 
easier to see immediately see the source module/package for a given object.



More information about the kforge-dev mailing list