[Python-Dev] Adding insint() function (original) (raw)

Tim Peters tim_one@email.msn.com
Fri, 18 Aug 2000 13:52:20 -0400


[Andrew Kuchling]

Four modules define insint() functions to insert an integer into a

Five or macro

dictionary in order to initialize constants in their module dictionaries:

kronos Modules>grep -l insint *.c pcremodule.c shamodule.c socketmodule.c zlibmodule.c kronos Modules>

It's actually a macro in shamodule. Missing is _winreg.c (in the PC directory). The perils of duplication manifest in subtle differences among these guys (like _winreg's inserts a long while the others insert an int -- and _winreg is certainly more correct here because a Python int is a C long; and they differ in treatment of errors, and it's not at all clear that's intentional).

... This duplication bugs me. Shall I submit a patch to add an API convenience function to do this, and change the modules to use it? Suggested prototype and name: PyDictInsertInteger( dict *, string, long)

+1, provided the treatment of errors is clearly documented.