I invite discussion
about which items you would like to see or not see in the Locals window while debugging a script; this would include expansions of items in the Watch windows. I am also
some changes myself.
- Might there be some options in the Locals window as to categories of items to show?
- When expanding an instance, attributes which themselves have a
__call__ method are not shown. I propose that items in the instance dictionary should
always be shown. Items in the class dictionary might be filtered, but I would like to exclude only actual function objects (which are then methods of the instance) and types or classes.
This relates to Issue number 2019.
- An alternative proposal would be to have a separate item for the class, which would then expand to show class attributes (including base classes, nested classes and methods); in this case, no class attributes would be shown directly under the instance.
Also, the item should be distinguishable as the class of the instance, rather than an attribute of the instance that happens to have the same name
- At the top level, I see names of attributes which are mentioned somewhere in the current stack frame. These always are shown as 'undefined', unless they also happen to be local variables.
This is a bug, IMHO.
- I propose some way to see global variables. Perhaps an item at the top or bottom of the Locals window called <globals> which could be expanded. This expansion would include imported modules, which could themselves be expanded.
-  A class object does not show nested classes. This is just another case of a child that has a
__call__ method. If the class has no class attributes other than nested classes, then trying to expand the containing class results in the + sign disappearing, which made me originally call this a bug.
- A dictionary member whose key is a user-defined type instance (as opposed to an int or str, for instance) does not expand.  I have filed this as Issue 2074.