cómo escribir colecciones de pistas.OrderedDict a través del módulo de escritura de Python 3.5

Quiero usar un OrderedDict donde la clave es un Enum y donde el elemento es una clase determinada.

¿Cómo uso el módulo de escritura para sugerir esto? ¿Cuál es el análogo a este insinuado namedtuple ::

Move = typing.NamedTuple('Move', [('actor', Actor), ('location', Location)]) 

Como se señaló en un comentario de AChampion, puedes usar MutableMapping :

 class Actor(Enum): # ...Actor enum menbers... class Location: # ...Location class body... class MapActor2Location(OrderedDict, MutableMapping[Actor, Location]): pass 

Anexo para personas como yo que no han usado el módulo de typing antes: tenga en cuenta que las definiciones de tipo usan la syntax de indexación ( [T] ) sin paréntesis. Al principio intenté algo como esto:

 class MyMap(OrderedDict, MutableMapping([KT, VT])): pass 

(¡Note los paréntesis extraños alrededor de [KT, VT] !)

Esto da lo que considero un error bastante confuso:

 TypeError: Can't instantiate abstract class MutableMapping with abstract methods __delitem__, __getitem__, __iter__, __len__, __setitem__