from typing import TypedDict
from collections import defaultdict, OrderedDict, UserDict
class Movie(TypedDict):
name: str
year: int
movie_literal: Movie = {"name": "asdf", "year": 2}
movie_dict_kw: Movie = dict(name="asdf", year=2)
movie_dict_literal: Movie = dict({"name":"asdf", "year":2}) # expression has type "Dict[str, object]"
movie_defaultdict_kw: Movie = defaultdict(name="asdf", year=2) # expression has type "defaultdict[<nothing>, object]"
movie_defaultdict_literal: Movie = defaultdict(str, {"name": "asdf", "year": 2}) # expression has type "defaultdict[str, object]"
movie_defaultdict_dict_kw: Movie = defaultdict(str, dict(name="asdf", year=2)) # expression has type "defaultdict[str, object]"
movie_userdict_literal: Movie = UserDict({"name": "asdf", "year": 2}) # expression has type "UserDict[str, object]"
movie_ordereddict_literal: Movie = OrderedDict({"name": "asdf", "year": 2}) # expression has type "OrderedDict[str, object]"