[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [2967] trunk/py/scripts/addons/ io_scene_x3d/export_x3d.py: x3d writing compressed files was broken.

Campbell Barton ideasman42 at gmail.com
Sun Feb 5 13:45:35 CET 2012


Revision: 2967
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=2967
Author:   campbellbarton
Date:     2012-02-05 12:45:27 +0000 (Sun, 05 Feb 2012)
Log Message:
-----------
x3d writing compressed files was broken.

Modified Paths:
--------------
    trunk/py/scripts/addons/io_scene_x3d/export_x3d.py

Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py	2012-02-05 09:40:34 UTC (rev 2966)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py	2012-02-05 12:45:27 UTC (rev 2967)
@@ -1534,6 +1534,23 @@
 ##########################################################
 
 
+def gzip_open_utf8(filepath, mode):
+    """Workaround for py3k only allowing binary gzip writing"""
+
+    import gzip
+
+    # need to investigate encoding
+    file = gzip.open(filepath, mode)
+    write_real = file.write
+
+    def write_wrap(data):
+        return write_real(data.encode("utf-8"))
+
+    file.write = write_wrap
+
+    return file
+
+
 def save(operator, context, filepath="",
          use_selection=True,
          use_apply_modifiers=False,
@@ -1553,9 +1570,7 @@
         bpy.ops.object.mode_set(mode='OBJECT')
 
     if use_compress:
-        import gzip
-        # need to investigate encoding
-        file = gzip.open(filepath, 'w')
+        file = gzip_open_utf8(filepath, 'w')
     else:
         file = open(filepath, 'w', encoding='utf-8')
 



More information about the Bf-extensions-cvs mailing list