Tiempo de ronda en Python

¿Cuál sería una forma elegante, eficiente y pitónica de realizar una operación de redondeo h / m / s en tipos relacionados con el tiempo en Python con control sobre la resolución de redondeo?

Supongo que requeriría una operación de módulo de tiempo. Ejemplos ilustrativos:

20: 11: 13% (10 segundos) => (3 segundos) 20: 11: 13% (10 minutos) => (1 minuto y 13 segundos)

Tipos relacionados con el tiempo relevante que puedo pensar:

datetime.datetime \ datetime.timestruct_time

Respuestas a la pregunta(8)

Su respuesta a la pregunta