
So, I've implemented my proposed suggestions to support compressed files (more exactly, just gzipped files for now) in OpenSave. By default, open panels will show (and possibly return) .gz file names while save panels will not. This behavior can be overridden by supplying the boolean keyword 'compress' to the panel constructor. New functions/attributes in OpenSave are: compressSuffixes: a list of file-name suffixes where compression is assumed. Currently just ['.gz']. osOpen(filename, *args, **kw): should be used to open files where compression is relevant. Will return a file-like object. If the file is opened for input, compression will be handled automatically. If opened for output, will use compression if the file name has a suffix in compressSuffixes unless a boolean 'compress' keyword is supplied. Other args and kw are compatible with the underlying open() used [built-in for uncompressed; gzip.open() for compressed]. osUncompressedPath(inPath): will return a path to an uncompressed version of 'inPath'. Designed to be used to hand off uncompressed files to C++ layer interfaces. Returns 'inPath' if 'inPath' is already uncompressed. Otherwise it uncompresses into a temp file that gets deleted at APPQUIT. I've modified all uses of OpenSave that I could find to allow for compression where appropriate. Besides the main open panel, it works with the start-up command-line args and in the Chimera command line as far as I've tested. Let me know if anyone finds problems. --Eric