Handling files overcomplicates both implementation and mental space for API saving.
Files can be opened in text mode, what to do in this case? What exception should be raised? How to handle OS errors? On Mon, Dec 24, 2018 at 1:11 PM Drew Warwick <dwarwic...@gmail.com> wrote: > The struct unpack API is inconvenient to use with files. I must do: > > struct.unpack(fmt, file.read(struct.calcsize(fmt)) > > every time I want to read a struct from the file. I ended up having to > create a utility function for this due to how frequently I was using > struct.unpack with files: > > def unpackStruct(fmt, frm): > if isinstance(frm, io.IOBase): > return struct.unpack(fmt, frm.read(struct.calcsize(fmt))) > else: > return struct.unpack(fmt, frm) > > This seems like something that should be built into the default > implementation -- struct.unpack already has all the information it needs > with just the struct format and open binary file. Current behavior is an > error since struct.unpack only supports bytes-like objects, so this should > be backwards compatible except in the case where a developer is relying on > that to error in a try block instead of verifying the buffer type > beforehand. > >> _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > -- Thanks, Andrew Svetlov
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/