Hacker News new | ask | show | jobs
by evilsnoopi3 1391 days ago
You can also use TypedDict if you would normally use a raw dictionary but want the type checking.
2 comments

Yes, but you still need a module like typedload to do the runtime checking.

TypedDict performs no checking by itself at runtime.

    class A(TypedDict):
        a: int


    A(d=32)
    # Returns {'d': 32}
    typedload.load({'d': 32}, A)
    # TypedloadValueError: Value does not contain fields: {'a'} which are necessary for type A
unlike fixed records, dictionaries access is impossible to optimise via JIT like PyPy