[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [4383] trunk/py/scripts/addons/ io_scene_ms3d: fix: invalid header warning; changed: verbose modes from bool to enum; changed: position of update scene;

Alexander Nussbaumer alpha-beta-release at gmx.net
Sun Mar 17 19:29:44 CET 2013


Revision: 4383
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=4383
Author:   beta-tester
Date:     2013-03-17 18:29:43 +0000 (Sun, 17 Mar 2013)
Log Message:
-----------
fix: invalid header warning; changed: verbose modes from bool to enum; changed: position of update scene;

Modified Paths:
--------------
    trunk/py/scripts/addons/io_scene_ms3d/__init__.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_export.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_import.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_spec.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_strings.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_ui.py
    trunk/py/scripts/addons/io_scene_ms3d/ms3d_utils.py

Modified: trunk/py/scripts/addons/io_scene_ms3d/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_scene_ms3d/__init__.py	2013-03-17 18:23:59 UTC (rev 4382)
+++ trunk/py/scripts/addons/io_scene_ms3d/__init__.py	2013-03-17 18:29:43 UTC (rev 4383)
@@ -23,7 +23,7 @@
     'description': "Import / Export MilkShape3D MS3D files"\
             " (conform with MilkShape3D v1.8.4)",
     'author': "Alexander Nussbaumer",
-    'version': (0, 96, 0),
+    'version': (0, 97, 0),
     'blender': (2, 66, 0),
     'location': "File > Import & File > Export",
     'warning': "",

Modified: trunk/py/scripts/addons/io_scene_ms3d/ms3d_export.py
===================================================================
--- trunk/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2013-03-17 18:23:59 UTC (rev 4382)
+++ trunk/py/scripts/addons/io_scene_ms3d/ms3d_export.py	2013-03-17 18:29:43 UTC (rev 4383)
@@ -94,7 +94,7 @@
     """
     def __init__(self,
             report,
-            verbose=False,
+            verbose='NONE',
             use_blender_names=True,
             use_blender_materials=False,
             apply_transform=True,
@@ -142,14 +142,17 @@
             try:
                 # write ms3d file to disk
                 with io.FileIO(filepath, "wb") as raw_io:
-                    ms3d_model.write(raw_io)
+                    debug_out = ms3d_model.write(raw_io)
                     raw_io.flush()
                     raw_io.close()
+
+                    if self.options_verbose in Ms3dUi.VERBOSE_MAXIMAL:
+                        print(debug_out)
             finally:
                 pass
 
             # if option is set, this time will enlargs the io time
-            if self.options_verbose:
+            if self.options_verbose in Ms3dUi.VERBOSE_MAXIMAL:
                 ms3d_model.print_internal()
 
             post_setup_environment(self, blender_context)
@@ -165,16 +168,18 @@
             blender_context.user_preferences.edit.use_global_undo = self.undo
 
             is_valid, statistics = ms3d_model.is_valid()
-            print()
-            print("##########################################################")
-            print("Export from Blender to MS3D")
-            print(statistics)
-            print("##########################################################")
+            if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+                print()
+                print("##########################################################")
+                print("Export from Blender to MS3D")
+                print(statistics)
+                print("##########################################################")
 
         except Exception:
             type, value, traceback = exc_info()
-            print("write - exception in try block\n  type: '{0}'\n"
-                    "  value: '{1}'".format(type, value, traceback))
+            if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+                print("write - exception in try block\n  type: '{0}'\n"
+                        "  value: '{1}'".format(type, value, traceback))
 
             if t2 is None:
                 t2 = time()
@@ -185,8 +190,9 @@
             pass
 
         t3 = time()
-        print(ms3d_str['SUMMARY_EXPORT'].format(
-                (t3 - t1), (t2 - t1), (t3 - t2)))
+        if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+            print(ms3d_str['SUMMARY_EXPORT'].format(
+                    (t3 - t1), (t2 - t1), (t3 - t2)))
 
         return {"FINISHED"}
 

Modified: trunk/py/scripts/addons/io_scene_ms3d/ms3d_import.py
===================================================================
--- trunk/py/scripts/addons/io_scene_ms3d/ms3d_import.py	2013-03-17 18:23:59 UTC (rev 4382)
+++ trunk/py/scripts/addons/io_scene_ms3d/ms3d_import.py	2013-03-17 18:29:43 UTC (rev 4383)
@@ -87,7 +87,7 @@
     """
     def __init__(self,
             report,
-            verbose=False,
+            verbose='NONE',
             use_extended_normal_handling=False,
             use_animation=True,
             use_quaternion_rotation=False,
@@ -131,13 +131,16 @@
                 # open ms3d file
                 with io.FileIO(filepath, 'rb') as raw_io:
                     # read and inject ms3d data from disk to internal structure
-                    ms3d_model.read(raw_io)
+                    debug_out = ms3d_model.read(raw_io)
                     raw_io.close()
+
+                    if self.options_verbose in Ms3dUi.VERBOSE_MAXIMAL:
+                        print(debug_out)
             finally:
                 pass
 
             # if option is set, this time will enlargs the io time
-            if self.options_verbose:
+            if self.options_verbose in Ms3dUi.VERBOSE_MAXIMAL:
                 ms3d_model.print_internal()
 
             t2 = time()
@@ -148,23 +151,20 @@
                 # inject ms3d data to blender
                 self.to_blender(blender_context, ms3d_model)
 
-                blender_scene = blender_context.scene
-
-                # finalize/restore environment
-                blender_scene.update()
-
                 post_setup_environment(self, blender_context)
 
-            print()
-            print("##########################################################")
-            print("Import from MS3D to Blender")
-            print(statistics)
-            print("##########################################################")
+            if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+                print()
+                print("##########################################################")
+                print("Import from MS3D to Blender")
+                print(statistics)
+                print("##########################################################")
 
         except Exception:
             type, value, traceback = exc_info()
-            print("read - exception in try block\n  type: '{0}'\n"
-                    "  value: '{1}'".format(type, value, traceback))
+            if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+                print("read - exception in try block\n  type: '{0}'\n"
+                        "  value: '{1}'".format(type, value, traceback))
 
             if t2 is None:
                 t2 = time()
@@ -175,52 +175,14 @@
             pass
 
         t3 = time()
-        print(ms3d_str['SUMMARY_IMPORT'].format(
-                (t3 - t1), (t2 - t1), (t3 - t2)))
 
+        if self.options_verbose in Ms3dUi.VERBOSE_NORMAL:
+            print(ms3d_str['SUMMARY_IMPORT'].format(
+                    (t3 - t1), (t2 - t1), (t3 - t2)))
+
         return {"FINISHED"}
 
 
-    def internal_read(self, blender_context, raw_io):
-        try:
-            # setup environment
-            pre_setup_environment(self, blender_context)
-
-            try:
-                ms3d_model.read(raw_io)
-            finally:
-                pass
-
-            # if option is set, this time will enlargs the io time
-            if self.options_verbose:
-                ms3d_model.print_internal()
-
-            is_valid, statistics = ms3d_model.is_valid()
-
-            if is_valid:
-                # inject ms3d data to blender
-                blender_empty_object, blender_mesh_object = self.to_blender(blender_context, ms3d_model)
-
-                blender_scene = blender_context.scene
-
-                # finalize/restore environment
-                blender_scene.update()
-
-                post_setup_environment(self, blender_context)
-
-        except Exception:
-            type, value, traceback = exc_info()
-            print("read - exception in try block\n  type: '{0}'\n"
-                    "  value: '{1}'".format(type, value, traceback))
-
-            raise
-
-        else:
-            pass
-
-        return blender_empty_object, blender_mesh_object
-
-
     ###########################################################################
     def to_blender(self, blender_context, ms3d_model):
         blender_mesh_object = self.create_geometry(blender_context, ms3d_model)
@@ -629,7 +591,7 @@
         # end BMesh stuff
         ####################################################
 
-        blender_mesh.validate(self.options_verbose)
+        blender_mesh.validate(self.options_verbose in Ms3dUi.VERBOSE_MAXIMAL)
 
         return blender_mesh_object
 

Modified: trunk/py/scripts/addons/io_scene_ms3d/ms3d_spec.py
===================================================================
--- trunk/py/scripts/addons/io_scene_ms3d/ms3d_spec.py	2013-03-17 18:23:59 UTC (rev 4382)
+++ trunk/py/scripts/addons/io_scene_ms3d/ms3d_spec.py	2013-03-17 18:29:43 UTC (rev 4383)
@@ -290,6 +290,8 @@
         if not buffer:
             raise EOFError()
         eol = buffer.find(Ms3dSpec.STRING_TERMINATION)
+        if eol < 0:
+            eol = len(buffer)
         register_error(Ms3dSpec.STRING_MS3D_REPLACE, Ms3dIo.ms3d_replace)
         s = buffer[:eol].decode(encoding=Ms3dSpec.STRING_ENCODING, errors=Ms3dSpec.STRING_ERROR)
         return s
@@ -1733,13 +1735,15 @@
         add content to blender scene
         """
 
+        debug_out = []
+
         self.header.read(raw_io)
         if (self.header != Ms3dHeader()):
-            print("\nwarning, invalid file header")
+            debug_out.append("\nwarning, invalid file header\n")
 
         _number_vertices = Ms3dIo.read_word(raw_io)
         if (_number_vertices > Ms3dSpec.MAX_VERTICES):
-            print("\nwarning, invalid count: number_vertices: {}".format(
+            debug_out.append("\nwarning, invalid count: number_vertices: {}\n".format(
                     _number_vertices))
         self._vertices = []
         for i in range(_number_vertices):
@@ -1747,7 +1751,7 @@
 
         _number_triangles = Ms3dIo.read_word(raw_io)
         if (_number_triangles > Ms3dSpec.MAX_TRIANGLES):
-            print("\nwarning, invalid count: number_triangles: {}".format(
+            debug_out.append("\nwarning, invalid count: number_triangles: {}\n".format(
                     _number_triangles))
         self._triangles = []
         for i in range(_number_triangles):
@@ -1755,7 +1759,7 @@
 
         _number_groups = Ms3dIo.read_word(raw_io)
         if (_number_groups > Ms3dSpec.MAX_GROUPS):
-            print("\nwarning, invalid count: number_groups: {}".format(
+            debug_out.append("\nwarning, invalid count: number_groups: {}\n".format(
                     _number_groups))

@@ Diff output truncated at 10240 characters. @@


More information about the Bf-extensions-cvs mailing list