Thank you very much. It is really a very elegant piece of code :-) Eiffel (language) has both type checking and design by contract. Python lacks both. Your module tackles type checking, I tried to execute arbitrary code before and after function execution to realize runtime assertions.
I wonder if this should be separated in a Python "checker"-module. Both are part of the interface "contract". Ciao -- http://mail.python.org/mailman/listinfo/python-list