[Bf-extensions-cvs] [f4f552f] fbx_io_development: FBX: custom props

Campbell Barton noreply at git.blender.org
Wed Jul 30 11:30:39 CEST 2014


Commit: f4f552fcd20ff0b531dc1f2f3855aafcf8978645
Author: Campbell Barton
Date:   Wed Jul 30 19:26:41 2014 +1000
Branches: fbx_io_development
https://developer.blender.org/rBAf4f552fcd20ff0b531dc1f2f3855aafcf8978645

FBX: custom props

- No need to use nested LC's, replace with for loop
- replace lists with sets for __contains__ tests

===================================================================

M	io_scene_fbx/import_fbx.py

===================================================================

diff --git a/io_scene_fbx/import_fbx.py b/io_scene_fbx/import_fbx.py
index a5c3298..8d3b9eb 100644
--- a/io_scene_fbx/import_fbx.py
+++ b/io_scene_fbx/import_fbx.py
@@ -290,22 +290,23 @@ def blen_read_custom_properties(fbx_obj, blen_obj, settings):
                     assert(fbx_prop.props[1] == b'KString')
                     assert(fbx_prop.props_type[4] == data_types.STRING)
                     items = fbx_prop.props[4].decode('utf-8')
-                    keyvaluelist = [(key.strip(), value.strip()) for key, value in [tuple(item.split('=', 1)) for item in items.split('\r\n') if len(item) > 0]]
-                    for prop_name, prop_value in keyvaluelist:
-                        blen_obj[prop_name] = prop_value
+                    for item in items.split('\r\n'):
+                        if item:
+                            prop_name, prop_value = item.split('=', 1)
+                            blen_obj[prop_name.strip()] = prop_value.strip()
                 else:
                     prop_name = fbx_prop.props[0].decode('utf-8')
                     prop_type = fbx_prop.props[1]
-                    if prop_type in [b'Vector', b'Vector3D', b'Color', b'ColorRGB']:
+                    if prop_type in {b'Vector', b'Vector3D', b'Color', b'ColorRGB'}:
                         assert(fbx_prop.props_type[4:7] == bytes((data_types.FLOAT64,)) * 3)
                         blen_obj[prop_name] = fbx_prop.props[4:7]
-                    elif prop_type in [b'Vector4', b'ColorRGBA']:
+                    elif prop_type in {b'Vector4', b'ColorRGBA'}:
                         assert(fbx_prop.props_type[4:8] == bytes((data_types.FLOAT64,)) * 4)
                         blen_obj[prop_name] = fbx_prop.props[4:8]
                     elif prop_type == b'Vector2D':
                         assert(fbx_prop.props_type[4:6] == bytes((data_types.FLOAT64,)) * 2)
                         blen_obj[prop_name] = fbx_prop.props[4:6]
-                    elif prop_type in [b'Integer', b'int']:
+                    elif prop_type in {b'Integer', b'int'}:
                         assert(fbx_prop.props_type[4] == data_types.INT32)
                         blen_obj[prop_name] = fbx_prop.props[4]
                     elif prop_type == b'KString':
@@ -314,13 +315,13 @@ def blen_read_custom_properties(fbx_obj, blen_obj, settings):
                     elif prop_type == b'Number':
                         assert(fbx_prop.props_type[4] == data_types.FLOAT64)
                         blen_obj[prop_name] = fbx_prop.props[4]
-                    elif prop_type in [b'Float', b'float']:
+                    elif prop_type in {b'Float', b'float'}:
                         assert(fbx_prop.props_type[4] == data_types.FLOAT32)
                         blen_obj[prop_name] = fbx_prop.props[4]
-                    elif prop_type in [b'Bool', b'bool']:
+                    elif prop_type in {b'Bool', b'bool'}:
                         assert(fbx_prop.props_type[4] == data_types.INT32)
                         blen_obj[prop_name] = fbx_prop.props[4] != 0
-                    elif prop_type in [b'Enum', b'enum']:
+                    elif prop_type in {b'Enum', b'enum'}:
                         assert(fbx_prop.props_type[4:6] == bytes((data_types.INT32, data_types.STRING)))
                         val = fbx_prop.props[4]
                         if settings.use_custom_props_enum_as_string:



More information about the Bf-extensions-cvs mailing list