Commit 5cfb05ee authored by Tim Peters's avatar Tim Peters

Added a new fileno() method. ZODB's repozo.py wants this so it can

apply os.fsync() to the GzipFile backup files it creates.
parent fe393f47
......@@ -5,7 +5,7 @@ but random access is not allowed."""
# based on Andrew Kuchling's minigzip.py distributed with the zlib module
import struct, sys, time
import os, struct, sys, time
import zlib
import __builtin__
......@@ -334,6 +334,14 @@ class GzipFile:
def flush(self):
self.fileobj.flush()
def fileno(self):
"""Invoke the underlying file object's fileno() method.
This will raise AttributeError if the underlying file object
doesn't support fileno().
"""
return self.fileobj.fileno()
def isatty(self):
return False
......
......@@ -16,8 +16,16 @@ data2 = """/* zlibmodule.c -- gzip-compatible data compression */
/* See http://www.winimage.com/zLibDll for Windows */
"""
f = gzip.GzipFile(filename, 'wb') ; f.write(data1 * 50) ; f.close()
f = gzip.GzipFile(filename, 'wb') ; f.write(data1 * 50)
# Try flush and fileno.
f.flush()
f.fileno()
if hasattr(os, 'fsync'):
os.fsync(f.fileno())
f.close()
# Try reading.
f = gzip.GzipFile(filename, 'r') ; d = f.read() ; f.close()
verify(d == data1*50)
......
......@@ -46,6 +46,10 @@ Extension modules
Library
-------
- gzip.GzipFile has a new fileno() method, to retrieve the handle of the
underlying file object (provided it has a fileno() method). This is
needed if you want to use os.fsync() on a GzipFile.
- imaplib has two new methods: deleteacl and myrights.
- nntplib has two new methods: description and descriptions. They
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment