[Python-Dev] what license for a module derived from Objects/dictobjec.c

Anthon van der Neut anthon at mnt.org
Fri Oct 12 16:33:27 CEST 2007

I would like to get some advice on which license to include/refer to in 
my setup.py (and probably the source files).

This is for an extension module that is clearly (for the knowledgeable) 
derived from Python's Objects/dictobject.c and Include/dictobject.h.

I first of all don't want to infringe any original license on that code. 
  I second would like to make sure the license for code is not a problem 
to make it into Linux distributions like Ubuntu/Debian  (assuming of 
course the code is acceptable and fills enough of a gap that these 
distros want to pick it up in the first place).
And thirdly, I although I would like my name to be associated on further 
derivations of this module, that is not a strict requirement.

Should I refer to MIT, LGPL or BSD. Any particular copy of a license I 
should put up on my website and refer to with a URL?
Any examples or references with a brief explanation would be much 

I know I could look at what other modules use, but at this point I 
rather spent time on finishing implementing the "insert" method (and 
some tests) and getting my first release out (and hopefullysome 
feedback), than comparing other modules for the license they chose and 
try to deduct what I should use/specify for a license.

Thanks in advance

For the curious: the module is called ordereddict. It is an 
implemenation in C of a dictionary with ordered keys based on Key 
Insertion Order. Value updating of existing Key/Value pairs does not 
reorder the keys, although I probably implement that as an 
(instantiation) option after the initial version.

orderdict() does all that dict() does, except for instantiation it will 
only take another ordereddict() (not a dict) or an ordered list of 
pairs. Some extras (reverse(), index()) are already implemented and work 
like Larosa/Foord's odict.OrderedDict() (theirs is also the example I 
took for the representation of the ordereddict).

ordereddict() is 5-10% slower than dict() (especially key deletion is 
'expensive') and it is 5-9 times faster than odict.OrderedDict()

I have done all of the development under Linux but will be proably be 
able to test things under Windows and may, at some point even dig up my 
old G4 to see how things go on OS X. I am fairly confident that the C 
code is still portable, or close to it.

More information about the Python-Dev mailing list