guido.van.rossum wrote: > Modified: python/branches/py3k/Lib/numbers.py > ============================================================================== > --- python/branches/py3k/Lib/numbers.py (original) > +++ python/branches/py3k/Lib/numbers.py Thu Dec 6 18:45:33 2007 > @@ -43,6 +43,7 @@ > > Inexact.register(complex) > Inexact.register(float) > +# Inexact.register(decimal.Decimal)
With the new abstract base classes in Py3k, I can see it being worthwhile to have a standard mechanism to allow callbacks to be registered for execution when particular modules are first imported. For example, to handle the commented out case above: @imp.imported('decimal') def register(decimal): Inexact.register(decimal.Decimal) I think a PEP would be needed to decide whether to handle this in a fashion similar to that of PJE's Importing toolkit [1] (i.e., using lazy imports where the actual loading of the module code is deferred until the first access to an attribute of the module), or else to add a new mechanism directly to the interpreter code, where the registered callbacks would be called as soon as the specified module was loaded. Does anyone else think this is an issue worth pursuing? We've already had a couple of instances come up in relation to the registration of array.array and decimal.Decimal with the appropriate abstract base classes. I expect there are other areas of the standard library (e.g. ctypes, mmap) where being able to register container types when the collections module is imported would be beneficial. Cheers, Nick. [1] http://peak.telecommunity.com/DevCenter/Importing -- Nick Coghlan | [EMAIL PROTECTED] | Brisbane, Australia --------------------------------------------------------------- http://www.boredomandlaziness.org _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com