python introspection