Питон 30+ лет жил без built-in неизменяемого dict — в 3.15 это наконец исправили.
PEP 814 приняли в феврале,
frozendict уже в бета-сборках. Не путайте с types.MappingProxyType — это просто read-only обёртка над dict, hash() от неё как не было, так и нет. frozendict — отдельный тип, хешируемый, если хешируемы все значения: можно класть конфиг прямо в ключ словаря или в set, без tuple(sorted(d.items())).Специфичного кода в патче — всего ~560 строк (7%), остальное общий движок с dict. Из коробки работают json, pickle, pprint, marshal, xml.etree.
Финал 3.15 — в октябре.
🔗 peps.python.org, vstinner.github.io
