A fancy version of Python’s builtin dir() function.
In recent versions of Python, hasattr() only catches AttributeError. This catches all errors.
Extended version of the Python builtin dir(), which does a few extra checks, and handles Traits objects, which can confuse dir().
This version is guaranteed to return only a list of true strings, whereas dir() returns anything that objects inject into themselves, even if they are later not really valid for attribute access (many extension libraries have such bugs).