basedmypy
basedmypy copied to clipboard
Wacky `dict` `reveal_type` moment
a = reveal_type({ # Revealed type is "dict['C' | 'D', None]"
"A": None,
"B": None,
"C": None,
"D": None,
})
reveal_type(a) # Revealed type is "dict[str, None]"
It gets even weirder with different numbers of items, and when mixing types:
reveal_type({ # Revealed type is "dict[str, int]"
"A": 1,
})
reveal_type({ # Revealed type is "dict['A' | 'B', 1 | 2]"
"A": 1,
"B": 2,
})
reveal_type({ # Revealed type is "dict[str, 1 | 2]"
"A": 1,
"B": 1,
"C": 2,
})
reveal_type({ # Revealed type is "dict['E' | 'F', 3 | 4 | 'A']"
"A": 1,
"B": 2,
"C": 3,
"D": 4,
"E": "A",
"F": False,
})