StringIO de Python no hace bien con las declaraciones `with`

Necesito tallartempfile yStringIO parecía perfecto Solo que todo esto falla en una omisión:

In [1]: from StringIO import StringIO
In [2]: with StringIO("foo") as f: f.read()

--> AttributeError: StringIO instance has no attribute '__exit__'

¿Cuál es la forma habitual de proporcionar información enlatada en lugar de leer archivos con contenido no determinista?

Respuestas a la pregunta(2)

Su respuesta a la pregunta