[Python-Dev] other "magic strings" issues

Guido van Rossum guido at python.org
Mon Nov 10 11:34:28 EST 2003


> >>     textfile(path[, mode='r'[, encoding='ascii']]) -> file object
> >> 
> >> or similar.
> >
> > I'm not so sure about that in this case.  There are quite a few places
> > where one writes a wrapper for open() that takes a mode and passes it
> > on to the real open().
> 
> I may just be being thick today but I can't think of many.  Most of
> the time passing in an already on file object would be better
> interface, surely?  Well, there's things like the codec writers, but
> textfile would hopefully subsume them.

Here's a pattern that I use frequently in unit tests:

  def makefile(self, data, mode="wb"):
      fn = tempfile.mktemp()
      self.tempfilenames.append(fn)
      f = open(fn, mode)
      f.write(data)
      f.close()
      return fn

> > Having to distinguish between multiple open() functions would
> > complexify this.
> >
> > OTOH my experimental standard I/O replacement (nondist/sandbox/sio)
> > does a similar thing, by providing different constructors for
> > different functionality (buffering, text translation, low-level I/O
> > basis).
> 
> Does text translation cover unicode issues here?

Yes, the framework should support Unicode encoding/decoding too (but
the implementation doesn't do much of this -- have a look).

--Guido van Rossum (home page: http://www.python.org/~guido/)



More information about the Python-Dev mailing list