You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The pure python implementation of curses.has_key makes use of the has_key sub-module, which has seen no update in 20 years. Now that the frozendict built-in type has been implemented, the _capability_names dict there can be converted into a frozendict.
This dict is supposed to map curses keys to terminfo capability names, and seeing as though its name begins with an underscore, it should be considered an implementation detail anyway. No code modifies this dict, the contents of which are only used by the has_key function here:
defhas_key(ch):
ifisinstance(ch, str):
ch=ord(ch)
# Figure out the correct capability name for the keycode.capability_name=_capability_names.get(ch)
ifcapability_nameisNone:
returnFalse
This is a very prime example of a use case of frozendict. I will open a PR to close this.
Has this already been discussed elsewhere?
This is a minor feature, which does not need previous discussion elsewhere
Activity
[-]Use `frozenmap` in Lib/curses/has_key.py[/-][+]Use `frozendict` in Lib/curses/has_key.py[/+]gh-146153: Use `frozendict` in pure python fallback for `curses.has_k…
Merge remote-tracking branch 'upstream/main' into fix-pythongh-138577
pythongh-146153: Use `frozendict` in pure python fallback for `curses…