diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-12-06 01:03:07 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-12-06 01:03:07 +0300 |
commit | 5ebe54f470c364ff4ea86d15198225295092963e (patch) | |
tree | a0a1c69fe0bbd824276dc653499cba9265526dc9 /release/scripts/modules/graphviz_export.py | |
parent | 8821f7d7eab7bc8e928805523dd26c275e095241 (diff) |
pep8 edits and fix some warnings
Diffstat (limited to 'release/scripts/modules/graphviz_export.py')
-rw-r--r-- | release/scripts/modules/graphviz_export.py | 76 |
1 files changed, 40 insertions, 36 deletions
diff --git a/release/scripts/modules/graphviz_export.py b/release/scripts/modules/graphviz_export.py index 5227237c51b..8f9f2c01ad5 100644 --- a/release/scripts/modules/graphviz_export.py +++ b/release/scripts/modules/graphviz_export.py @@ -16,6 +16,8 @@ # # ##### END GPL LICENSE BLOCK ##### +# <pep8 compliant> + import bpy header = ''' @@ -28,6 +30,7 @@ footer = ''' } ''' + def compat_str(text, line_length=0): if line_length: @@ -35,28 +38,29 @@ def compat_str(text, line_length=0): while len(text) > line_length: text_ls.append(text[:line_length]) text = text[line_length:] - + if text: text_ls.append(text) text = '\n '.join(text_ls) - - + + #text = text.replace('.', '.\n') #text = text.replace(']', ']\n') text = text.replace("\n", "\\n") text = text.replace('"', '\\"') return "* " + text + def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, XTRA_INFO=False): CONSTRAINTS = DRIVERS = True - - file = open(path, "w") - fw = file.write + + fileobject = open(path, "w") + fw = fileobject.write fw(header) fw('label = "%s::%s" ;' % (bpy.data.filename.split("/")[-1].split("\\")[-1], obj.name)) - + arm = obj.data - + bones = [bone.name for bone in arm.bones] bones.sort() print("") @@ -65,37 +69,37 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, print(">>", bone, ["*>", "->"][b.connected], getattr(getattr(b, "parent", ""), "name", "")) label = [bone] bone = arm.bones[bone] - + for key, value in obj.pose.bones[bone.name].items(): if key.startswith("_"): continue - + if type(value) == float: value = "%.3f" % value elif type(value) == str: value = compat_str(value) - + label.append("%s = %s" % (key, value)) - + opts = ["shape=box", "regular=1", "style=filled", "fixedsize=false", 'label="%s"' % compat_str('\n'.join(label))] - + if bone.name.startswith('ORG'): opts.append("fillcolor=yellow") else: opts.append("fillcolor=white") - - + + fw('"%s" [%s];\n' % (bone.name, ','.join(opts))) - + fw('\n\n# Hierarchy:\n') - + # Root node. if FAKE_PARENT: fw('"Object::%s" [];\n' % obj.name) - + for bone in bones: bone = arm.bones[bone] - + parent = bone.parent if parent: parent_name = parent.name @@ -105,14 +109,14 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, connected = False else: continue - + opts = ["dir=forward", "weight=2", "arrowhead=normal"] if not connected: opts.append("style=dotted") - + fw('"%s" -> "%s" [%s] ;\n' % (bone.name, parent_name, ','.join(opts))) - del bone - + del bone + # constraints if CONSTRAINTS: fw('\n\n# Constraints:\n') @@ -128,10 +132,11 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, label = "%s\n%s" % (constraint.type, constraint.name) opts.append('label="%s"' % compat_str(label)) fw('"%s" -> "%s" [%s] ;\n' % (subtarget, pbone.name, ','.join(opts))) - + # Drivers if DRIVERS: fw('\n\n# Drivers:\n') + def rna_path_as_pbone(rna_path): if not rna_path.startswith("pose.bones["): return None @@ -140,33 +145,33 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, #return obj.path_resolve(rna_path_bone) bone_name = rna_path.split("[")[1].split("]")[0] return obj.pose.bones[bone_name[1:-1]] - + animation_data = obj.animation_data if animation_data: - + fcurve_drivers = [fcurve_driver for fcurve_driver in animation_data.drivers] fcurve_drivers.sort(key=lambda fcurve_driver: fcurve_driver.rna_path) - + for fcurve_driver in fcurve_drivers: rna_path = fcurve_driver.rna_path pbone = rna_path_as_pbone(rna_path) - + if pbone: for target in fcurve_driver.driver.targets: pbone_target = rna_path_as_pbone(target.rna_path) rna_path_target = target.rna_path if pbone_target: - opts = ['dir=forward', "weight=1", "arrowhead=normal", "arrowtail=none", "constraint=false", 'color="blue"', "labelfontsize=4"] # , + opts = ['dir=forward', "weight=1", "arrowhead=normal", "arrowtail=none", "constraint=false", 'color="blue"', "labelfontsize=4"] # , display_source = rna_path.replace("pose.bones", "") display_target = rna_path_target.replace("pose.bones", "") if XTRA_INFO: label = "%s\\n%s" % (display_source, display_target) opts.append('label="%s"' % compat_str(label)) fw('"%s" -> "%s" [%s] ;\n' % (pbone_target.name, pbone.name, ','.join(opts))) - + fw(footer) - file.close() - + fileobject.close() + ''' print(".", end='') import sys @@ -176,8 +181,7 @@ def graph_armature(obj, path, FAKE_PARENT=True, CONSTRAINTS=True, DRIVERS=True, return True if __name__ == "__main__": - import bpy import os - path ="/tmp/test.dot" - graph_armature(bpy.context.object, path, CONSTRAINTS=True, DRIVERS=True) - os.system("dot -Tpng %s > %s; eog %s &" % (path, path + '.png', path + '.png')) + tmppath = "/tmp/test.dot" + graph_armature(bpy.context.object, tmppath, CONSTRAINTS=True, DRIVERS=True) + os.system("dot -Tpng %s > %s; eog %s &" % (tmppath, tmppath + '.png', tmppath + '.png')) |