FrameLocalsProxy should be a mapping. I.e. it should subclass collections.abc.Mapping and match {} in a match statement.
from collections.abc import Mapping import sys def f(): return sys._getframe().f_locals proxy = f() assert(instance(proxy, Mapping)) match proxy: case {}: kind = "mapping" case _: kind = "other" assert(kind == "mapping")
CPython main branch
Linux
GH-120097: Make FrameLocalsProxy a mapping (#120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (pythonGH-120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (python#120101)
[3.13] GH-120097: Make FrameLocalsProxy a mapping (GH-120101) (GH-120749
Activity
GH-120097: Make FrameLocalsProxy a mapping (#120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (pythonGH-120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (python#120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (python#120101)
pythonGH-120097: Make FrameLocalsProxy a mapping (python#120101)
[3.13] GH-120097: Make FrameLocalsProxy a mapping (GH-120101) (GH-120749