Alternativa a contextlib.nested con número variable de administradores de contexto

Tenemos un código que invoca un número variable de administradores de contexto en función de los parámetros de tiempo de ejecución:

from contextlib import nested, contextmanager

@contextmanager
def my_context(arg):
    print("entering", arg)
    try:
        yield arg
    finally:
        print("exiting", arg)

def my_fn(items): 
    with nested(*(my_context(arg) for arg in items)) as managers:
        print("processing under", managers)

my_fn(range(3))

Sin embargo,contextlib.nested está en desuso desde Python 2.7:

DeprecationWarning: With-statements now directly support multiple context managers

Las respuestas aMúltiples variables en Python 'con' declaración indican quecontextlib.nested tiene algunas "peculiaridades propensas a errores confusos", pero la alternativa sugerida de usar el administrador múltiplewith La declaración no funcionará para un número variable de administradores de contexto (y también rompe la compatibilidad con versiones anteriores).

¿Hay alguna alternativa acontextlib.nested que no están en desuso y (preferiblemente) no tienen los mismos errores?

O debo seguir usandocontextlib.nested e ignorar la advertencia? Si es así, ¿debería planear paracontextlib.nested para ser eliminado en algún momento en el futuro?

Respuestas a la pregunta(4)

Su respuesta a la pregunta