The type, str.maketrans, and bytes.maketrans builtins should support frozendict. The issues with exec and eval were reported in a separate issue.
>>> type("MyClass", (), {"x": 10})
<class '__main__.MyClass'>
>>> type("MyClass", (), frozendict({"x": 10}))
Traceback (most recent call last):
File "<pyshell#30>", line 1, in <module>
MyClass = type("MyClass", (), frozendict({"x": 10}))
TypeError: type.__new__() argument 3 must be dict, not frozendict
>>> str.maketrans(dict({'a': 'A'}))
{97: 'A'}
>>> str.maketrans(frozendict({'a': 'A'}))
Traceback (most recent call last):
File "<pyshell#23>", line 1, in <module>
str.maketrans(frozendict({'a': 'A'}))
TypeError: if you give only one argument to maketrans it must be a dict
Linked PRs