Patch #1647484: Renamed GzipFile's filename attribute to name. The
filename attribute is still accessible as a property that emits a
DeprecationWarning.
diff --git a/Lib/gzip.py b/Lib/gzip.py
index c37d5a1..ea3656f 100644
--- a/Lib/gzip.py
+++ b/Lib/gzip.py
@@ -106,7 +106,7 @@
             self._new_member = True
             self.extrabuf = ""
             self.extrasize = 0
-            self.filename = filename
+            self.name = filename
             # Starts small, scales exponentially
             self.min_readsize = 100
 
@@ -127,14 +127,20 @@
         if self.mode == WRITE:
             self._write_gzip_header()
 
+    @property
+    def filename(self):
+        import warnings
+        warnings.warn("use the name attribute", DeprecationWarning)
+        if self.mode == WRITE and self.name[-3:] != ".gz":
+            return self.name + ".gz"
+        return self.name
+
     def __repr__(self):
         s = repr(self.fileobj)
         return '<gzip ' + s[1:-1] + ' ' + hex(id(self)) + '>'
 
     def _init_write(self, filename):
-        if filename[-3:] != '.gz':
-            filename = filename + '.gz'
-        self.filename = filename
+        self.name = filename
         self.crc = zlib.crc32("")
         self.size = 0
         self.writebuf = []
@@ -143,16 +149,15 @@
     def _write_gzip_header(self):
         self.fileobj.write('\037\213')             # magic header
         self.fileobj.write('\010')                 # compression method
-        fname = self.filename[:-3]
         flags = 0
-        if fname:
+        if self.name:
             flags = FNAME
         self.fileobj.write(chr(flags))
         write32u(self.fileobj, long(time.time()))
         self.fileobj.write('\002')
         self.fileobj.write('\377')
-        if fname:
-            self.fileobj.write(fname + '\000')
+        if self.name:
+            self.fileobj.write(self.name + '\000')
 
     def _init_read(self):
         self.crc = zlib.crc32("")
diff --git a/Lib/test/test_gzip.py b/Lib/test/test_gzip.py
index fbdbc30..124a469 100644
--- a/Lib/test/test_gzip.py
+++ b/Lib/test/test_gzip.py
@@ -153,6 +153,13 @@
         self.assertEqual(f.myfileobj.mode, 'rb')
         f.close()
 
+    def test_1647484(self):
+        for mode in ('wb', 'rb'):
+            f = gzip.GzipFile(self.filename, mode)
+            self.assert_(hasattr(f, "name"))
+            self.assertEqual(f.name, self.filename)
+            f.close()
+
 def test_main(verbose=None):
     test_support.run_unittest(TestGzip)