On Thu, 2003-12-11 at 15:00, Guido van Rossum wrote: > I also note that you change the meaning of readline() to return the > line with the trailing separator stripped, and raise EOFError when you > have reached the end. That's a big deviation from the standard file > semantics, and shouldn't be done lightly in a subclass (it means that > a TextFile instance is not substitutable for a regular file instance > in most cases). Yes, that is true, but I have had to use that semantic in other places (usually when using non-blocking sockets) and I personally prefer it. But as others have pointed out this functionality is not needed in Python 2.3 and so I will drop it. > Reviewing the rest of UserFile, I see several possibly useful > additions (locking, fstat() etc.) and one semantic change that > deserves to be a separate subclass or mix-in (the EINTR behavior). > And nothing that warrants the name "UserFile" (in fact, all the > other UserXXX classes are specifically *not* subclasses of the native > XXX class). Yes, a lot of extra stuff was added later. Perhaps some should be factored out into a new module. Perhaps "filelib"? It was just more consistent for me, since I also have UserInt, UserFloat, and UserLong modules as well. But those are, thankfully, no longer needed either. > > No, mode r+ lets you create a _single_ file descriptor that is in > > read-write mode. The MergedIO lets you take who file objects (with > > different file descriptors), one readable the other writable, and > > combine them at the method-call level into one read-write object. This > > is useful for pipes, or when you get file objects from libraries. > > It looks like you are simply making all write operations go to the > writable object and all the read operations go to the readable object. > That's not a very sophisticated notion of "merging", and I'm not sure > what the point is. Perhaps some examples of how you use this would > help. A quick example: import os import UserFile r, w = os.pipe() rf = os.fdopen(r) wf = os.fdopen(w) fo = UserFile.MergedIO(rf, wf) _or_ rwio = UserFile.MergedIO(sys.stdin, sys.stdout) Perhaps "merged" is not the right word. It is not intended to merge files, but combine a separate read file object and write file object into one object that can be passed to other library methods that want a single read/write object (such as my "expect" module...) > I note that in general your proposals are low on motivation, which is > going to do a lot of damage to your case if you don't fix this soon. > You may be underestimating the level of motivation needed to get > features added to the stdlib -- it's "batteries included" but also (to > some extent) "TOOWTDI". Hm, ok. more use cases? What I have submitted, and will submit, exist because I did need them for real work at some point, and have found them to be re-usable. -- -- ------------------------------------------------------------------------- Keith Dart <mailto:kdart at kdart.com> <http://www.kdart.com/> ---------------------------------------------------------------------------- Public key ID: B08B9D2C Public key: <http://www.kdart.com/~kdart/public.key> ============================================================================ -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 189 bytes Desc: This is a digitally signed message part Url : http://mail.python.org/pipermail/python-dev/attachments/20031211/912b733d/attachment-0001.bin
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4