Sqlalchemy crea dinámicamente tabla y clase asignada

Dado un conjunto de nombres de columna y sus tipos, el objetivo es
para instanciar una tabla y la clase asignada correspondiente.

Está relacionado con la pregunta publicada aquí:Creación dinámica de clases en SQLAlchemy.

Hasta ahora tengo lo siguiente:

table = Table(tbl, 
              metadata, 
             *(Column(col, ctype, primary_key=pk, index=idx) for  col,  ctype, pk, idx in zip(attrs, types, primary_keys, indexes))
              )

Esto crea el objeto de la tabla. Ahora necesito crear la clase correspondiente.

mydict={'__tablename__':tbl}
cls = type(cls_name, (Base,), mydict)

Esto me da el siguiente error:

ArgumentError: Mapper Mapper | persons_with_coord | t_persons_w_coord no pudo ensamblar ninguna columna de clave principal para la tabla asignada

Mi pregunta es cómo especifico las claves primarias como parte de la creación de la clase. Y después de crear la clase, debo llamar al asignador de la siguiente manera:

mapper(cls, table)

Respuestas a la pregunta(1)

Su respuesta a la pregunta