Skip to content

[BUG] Locals not showing for some frames from release v13.9.0 onwards #3736

@sylvorg

Description

@sylvorg

Describe the bug

For some frames in the stack trace, I'm not getting any locals from release v13.9.0 onwards, and I have no idea how to reproduce this issue.

Here's part of the traceback:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ in <module>:1                                                                                    │
│ ╭─────────────────────────────────────────── locals ───────────────────────────────────────────╮ │
│ │    abc = <module '_collections_abc' (frozen)>                                                │ │
│ │     hh = <hydrox.helpers.hydrox.helpers object at 0x0000023F3ACE8830>                        │ │
│ │     ht = <hydrox.typing.hydrox.typing object at 0x0000023F3A8670E0>                          │ │
│ │ typing = <module 'typing' from                                                               │ │
│ │          'C:\\Users\\syvlorg\\AppData\\Local\\Python\\pythoncore-3.14-64\\Lib\\typing.py'>   │ │
│ ╰──────────────────────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\types.py:659 in __subclasscheck__            │
│                                                                                                  │
│   656 │                                                                                          │
│   657 │   def __subclasscheck__(self, C: typing.Any):                                            │
│   658 │   │   return (                                                                           │
│ ❱ 659 │   │   │   isinstance(C, Generics.ParamSpec)                                              │
│   660 │   │   │   and isinmrosubclass(C.__bound__, self.__bound__)                               │
│   661 │   │   │   and self.__name__ == C.__name__                                                │
│   662 │   │   │   and self.__covariant__ == C.__covariant__                                      │
│                                                                                                  │
│ ╭─── locals ───╮                                                                                 │
│ │ C = Ellipsis │                                                                                 │
│ ╰──────────────╯                                                                                 │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:2070 in __instancecheck__         │
│                                                                                                  │
│   2067 │   │   return Result if Result.__name__ == defaults["name"] else result                  │
│   2068 │                                                                                         │
│   2069 │   def __instancecheck__(cls, instance: typing.Any) -> bool:                             │
│ ❱ 2070 │   │   return isinmroinstance(instance, cls)                                             │
│   2071 │                                                                                         │
│   2072 │   @cache                                                                                │
│   2073 │   def __subclasscheck__(cls, C: typing.Any) -> bool:                                    │
│                                                                                                  │
│ ╭────── locals ───────╮                                                                          │
│ │ instance = Ellipsis │                                                                          │
│ ╰─────────────────────╯                                                                          │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1327 in isinmroinstance           │
│                                                                                                  │
│   1324                                                                                           │
│   1325 def isinmroinstance(left, right):                                                         │
│   1326 │   return (                                                                              │
│ ❱ 1327 │   │   tryingenericmrosubclass(get_type(left), right) or scoreinstance(left, right)      │
│   1328 │   ) is not None                                                                         │
│   1329                                                                                           │
│   1330                                                                                           │
│                                                                                                  │
│ ╭──── locals ─────╮                                                                              │
│ │ left = Ellipsis │                                                                              │
│ ╰─────────────────╯                                                                              │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1278 in tryingenericmrosubclass   │
│                                                                                                  │
│   1275 │   │   │   │   if tryinmro(l, r):                                                        │
│   1276 │   │   │   │   │   return l, r                                                           │
│   1277 │   │   │   for r in generic_flatten(generic):                                            │
│ ❱ 1278 │   │   │   │   if trysubclass(l, r):                                                     │
│   1279 │   │   │   │   │   return l, r                                                           │
│   1280 │   return tuple()                                                                        │
│   1281                                                                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1203 in trysubclass               │
│                                                                                                  │
│   1200                                                                                           │
│   1201 @cache                                                                                    │
│   1202 def trysubclass(left, right):                                                             │
│ ❱ 1203 │   return _trybase(left, right, _trysubclass)                                            │
│   1204                                                                                           │
│   1205                                                                                           │
│   1206 @defcache                                                                                 │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1187 in _trybase                  │
│                                                                                                  │
│   1184 │   │   │   or (left_is_mutableset and r_is_Set)                                          │
│   1185 │   │   ):                                                                                │
│   1186 │   │   │   return True                                                                   │
│ ❱ 1187 │   │   return check(left, r)                                                             │
│   1188 │   return False                                                                          │
│   1189                                                                                           │
│   1190                                                                                           │
│                                                                                                  │
│ ╭───────────────────────────────────── locals ─────────────────────────────────────╮             │
│ │              check = <functools._lru_cache_wrapper object at 0x0000023F3B5EF1C0> │             │
│ │ left_is_mutableset = False                                                       │             │
│ │        left_is_Set = False                                                       │             │
│ │        left_is_set = False                                                       │             │
│ │          left_name = 'EllipsisType'                                              │             │
│ │    r_is_mutableset = False                                                       │             │
│ │           r_is_Set = False                                                       │             │
│ │           r_is_set = False                                                       │             │
│ │             r_name = 'ParamSpec'                                                 │             │
│ ╰──────────────────────────────────────────────────────────────────────────────────╯             │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1194 in _trysubclass              │
│                                                                                                  │
│   1191 @defcache                                                                                 │
│   1192 def _trysubclass(left, right):                                                            │
│   1193 │   try:                                                                                  │
│ ❱ 1194 │   │   return builtins.issubclass(left, right)                                           │
│   1195 │   except TypeError as e:                                                                │
│   1196 │   │   if not_generic_class_error(e):                                                    │
│   1197 │   │   │   raise e                                                                       │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:2074 in __subclasscheck__         │
│                                                                                                  │
│   2071 │                                                                                         │
│   2072 │   @cache                                                                                │
│   2073 │   def __subclasscheck__(cls, C: typing.Any) -> bool:                                    │
│ ❱ 2074 │   │   return isinmrosubclass(C, cls)                                                    │
│   2075 │                                                                                         │
│   2076 │   # NOTE: Remember, hashing uses `__eq__` as well, so it can't be cached either.        │
│   2077 │   def __eq__(cls, other: typing.Any) -> bool:                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1301 in isinmrosubclass           │
│                                                                                                  │
│   1298 │   if not left_right_collection_check(left, right):                                      │
│   1299 │   │   return False                                                                      │
│   1300 │   return (                                                                              │
│ ❱ 1301 │   │   tryingenericmrosubclass(left, right) or scoresubclass(left, right)                │
│   1302 │   ) is not None                                                                         │
│   1303                                                                                           │
│   1304                                                                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1278 in tryingenericmrosubclass   │
│                                                                                                  │
│   1275 │   │   │   │   if tryinmro(l, r):                                                        │
│   1276 │   │   │   │   │   return l, r                                                           │
│   1277 │   │   │   for r in generic_flatten(generic):                                            │
│ ❱ 1278 │   │   │   │   if trysubclass(l, r):                                                     │
│   1279 │   │   │   │   │   return l, r                                                           │
│   1280 │   return tuple()                                                                        │
│   1281                                                                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1203 in trysubclass               │
│                                                                                                  │
│   1200                                                                                           │
│   1201 @cache                                                                                    │
│   1202 def trysubclass(left, right):                                                             │
│ ❱ 1203 │   return _trybase(left, right, _trysubclass)                                            │
│   1204                                                                                           │
│   1205                                                                                           │
│   1206 @defcache                                                                                 │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1187 in _trybase                  │
│                                                                                                  │
│   1184 │   │   │   or (left_is_mutableset and r_is_Set)                                          │
│   1185 │   │   ):                                                                                │
│   1186 │   │   │   return True                                                                   │
│ ❱ 1187 │   │   return check(left, r)                                                             │
│   1188 │   return False                                                                          │
│   1189                                                                                           │
│   1190                                                                                           │
│                                                                                                  │
│ ╭───────────────────────────────────── locals ─────────────────────────────────────╮             │
│ │              check = <functools._lru_cache_wrapper object at 0x0000023F3B5EF1C0> │             │
│ │ left_is_mutableset = False                                                       │             │
│ │        left_is_Set = False                                                       │             │
│ │        left_is_set = False                                                       │             │
│ │          left_name = 'EllipsisType'                                              │             │
│ │    r_is_mutableset = False                                                       │             │
│ │           r_is_Set = False                                                       │             │
│ │           r_is_set = False                                                       │             │
│ │             r_name = 'ParamSpec'                                                 │             │
│ ╰──────────────────────────────────────────────────────────────────────────────────╯             │
│                                                                                                  │
│                                                                                                  │
│ ...                                                                                              │
│                                                                                                  │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1194 in _trysubclass              │
│                                                                                                  │
│   1191 @defcache                                                                                 │
│   1192 def _trysubclass(left, right):                                                            │
│   1193 │   try:                                                                                  │
│ ❱ 1194 │   │   return builtins.issubclass(left, right)                                           │
│   1195 │   except TypeError as e:                                                                │
│   1196 │   │   if not_generic_class_error(e):                                                    │
│   1197 │   │   │   raise e                                                                       │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:2074 in __subclasscheck__         │
│                                                                                                  │
│   2071 │                                                                                         │
│   2072 │   @cache                                                                                │
│   2073 │   def __subclasscheck__(cls, C: typing.Any) -> bool:                                    │
│ ❱ 2074 │   │   return isinmrosubclass(C, cls)                                                    │
│   2075 │                                                                                         │
│   2076 │   # NOTE: Remember, hashing uses `__eq__` as well, so it can't be cached either.        │
│   2077 │   def __eq__(cls, other: typing.Any) -> bool:                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1301 in isinmrosubclass           │
│                                                                                                  │
│   1298 │   if not left_right_collection_check(left, right):                                      │
│   1299 │   │   return False                                                                      │
│   1300 │   return (                                                                              │
│ ❱ 1301 │   │   tryingenericmrosubclass(left, right) or scoresubclass(left, right)                │
│   1302 │   ) is not None                                                                         │
│   1303                                                                                           │
│   1304                                                                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1278 in tryingenericmrosubclass   │
│                                                                                                  │
│   1275 │   │   │   │   if tryinmro(l, r):                                                        │
│   1276 │   │   │   │   │   return l, r                                                           │
│   1277 │   │   │   for r in generic_flatten(generic):                                            │
│ ❱ 1278 │   │   │   │   if trysubclass(l, r):                                                     │
│   1279 │   │   │   │   │   return l, r                                                           │
│   1280 │   return tuple()                                                                        │
│   1281                                                                                           │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1203 in trysubclass               │
│                                                                                                  │
│   1200                                                                                           │
│   1201 @cache                                                                                    │
│   1202 def trysubclass(left, right):                                                             │
│ ❱ 1203 │   return _trybase(left, right, _trysubclass)                                            │
│   1204                                                                                           │
│   1205                                                                                           │
│   1206 @defcache                                                                                 │
│                                                                                                  │
│ C:\Users\syvlorg\oreo\packages\hydrox\hydrox\typing\generic.py:1157 in _trybase                  │
│                                                                                                  │
│   1154 def _trybase(left, right, check):                                                         │
│   1155 │   if isinstance(right, abc.Iterator):                                                   │
│   1156 │   │   warn(f'variable "right" of value "{right}" will be used up', TypeWarning)         │
│ ❱ 1157 │   if not left_right_collection_check(left, right):                                      │
│   1158 │   │   return False                                                                      │
│   1159 │   if left == right:                                                                     │
│   1160 │   │   return True                                                                       │
│                                                                                                  │
│ ╭────────────────────────────── locals ───────────────────────────────╮                          │
│ │ check = <functools._lru_cache_wrapper object at 0x0000023F3B5EF1C0> │                          │
│ ╰─────────────────────────────────────────────────────────────────────╯                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

Platform

Click to expand

python -m rich.diagnose:

╭───────────────────────── <class 'rich.console.Console'> ─────────────────────────╮
│ A high level console interface.                                                  │
│                                                                                  │
│ ╭──────────────────────────────────────────────────────────────────────────────╮ │
│ │ <console width=167 ColorSystem.TRUECOLOR>                                    │ │
│ ╰──────────────────────────────────────────────────────────────────────────────╯ │
│                                                                                  │
│     color_system = 'truecolor'                                                   │
│         encoding = 'utf-8'                                                       │
│             file = <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> │
│           height = 53                                                            │
│    is_alt_screen = False                                                         │
│ is_dumb_terminal = False                                                         │
│   is_interactive = True                                                          │
│       is_jupyter = False                                                         │
│      is_terminal = True                                                          │
│   legacy_windows = False                                                         │
│         no_color = False                                                         │
│          options = ConsoleOptions(                                               │
│                        size=ConsoleDimensions(width=167, height=53),             │
│                        legacy_windows=False,                                     │
│                        min_width=1,                                              │
│                        max_width=167,                                            │
│                        is_terminal=True,                                         │
│                        encoding='utf-8',                                         │
│                        max_height=53,                                            │
│                        justify=None,                                             │
│                        overflow=None,                                            │
│                        no_wrap=False,                                            │
│                        highlight=None,                                           │
│                        markup=None,                                              │
│                        height=None                                               │
│                    )                                                             │
│            quiet = False                                                         │
│           record = False                                                         │
│         safe_box = True                                                          │
│             size = ConsoleDimensions(width=167, height=53)                       │
│        soft_wrap = False                                                         │
│           stderr = False                                                         │
│            style = None                                                          │
│         tab_size = 8                                                             │
│            width = 167                                                           │
╰──────────────────────────────────────────────────────────────────────────────────╯
╭── <class 'rich._windows.WindowsConsoleFeatures'> ───╮
│ Windows features available.                         │
│                                                     │
│ ╭─────────────────────────────────────────────────╮ │
│ │ WindowsConsoleFeatures(vt=True, truecolor=True) │ │
│ ╰─────────────────────────────────────────────────╯ │
│                                                     │
│ truecolor = True                                    │
│        vt = True                                    │
╰─────────────────────────────────────────────────────╯
╭────── Environment Variables ───────╮
│ {                                  │
│     'CLICOLOR': None,              │
│     'COLORTERM': None,             │
│     'COLUMNS': None,               │
│     'JPY_PARENT_PID': None,        │
│     'JUPYTER_COLUMNS': None,       │
│     'JUPYTER_LINES': None,         │
│     'LINES': None,                 │
│     'NO_COLOR': None,              │
│     'TERM_PROGRAM': None,          │
│     'TERM': None,                  │
│     'TTY_COMPATIBLE': None,        │
│     'VSCODE_VERBOSE_LOGGING': None │
│ }                                  │
╰────────────────────────────────────╯
platform="Windows"

pip freeze | grep rich: rich==14.0.0

terminal: Windows Terminal

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions