py api: sphinx doc corrections, pep8 cleanup and style edits, also added __all__...
[blender-staging.git] / release / scripts / modules / keyingsets_utils.py
index 00ad45cf9bbbabfd1b766b04d186d4a4e4a64f01..03400edc90432c9f0b63b4148f16408b76611802 100644 (file)
 #
 # ##### END GPL LICENSE BLOCK #####
 
-# <pep8 compliant>
+# <pep8-80 compliant>
 
 # This file defines a set of methods that are useful for various
 # Relative Keying Set (RKS) related operations, such as: callbacks
 # for polling, iterator callbacks, and also generate callbacks.
 # All of these can be used in conjunction with the others.
 
-__all__ = [
+__all__ = (
     "path_add_property",
     "RKS_POLL_selected_objects",
     "RKS_POLL_selected_bones",
@@ -33,7 +33,7 @@ __all__ = [
     "RKS_GEN_location",
     "RKS_GEN_rotation",
     "RKS_GEN_scaling",
-]
+    )
 
 import bpy
 
@@ -43,7 +43,7 @@ import bpy
 
 # Append the specified property name on the the existing path
 def path_add_property(path, prop):
-    if len(path):
+    if path:
         return path + "." + prop
     else:
         return prop
@@ -52,16 +52,21 @@ def path_add_property(path, prop):
 # Poll Callbacks
 
 
-# selected objects
+# selected objects (active object must be in object mode)
 def RKS_POLL_selected_objects(ksi, context):
-    return context.active_object or len(context.selected_objects)
+    ob = context.active_object
+    if ob:
+        return ob.mode == 'OBJECT'
+    else:
+        return bool(context.selected_objects)
 
 
 # selected bones
 def RKS_POLL_selected_bones(ksi, context):
     # we must be in Pose Mode, and there must be some bones selected
-    if (context.active_object) and (context.active_object.mode == 'POSE'):
-        if context.active_pose_bone or len(context.selected_pose_bones):
+    ob = context.active_object
+    if ob and ob.mode == 'POSE':
+        if context.active_pose_bone or context.selected_pose_bones:
             return True
 
     # nothing selected
@@ -70,7 +75,8 @@ def RKS_POLL_selected_bones(ksi, context):
 
 # selected bones or objects
 def RKS_POLL_selected_items(ksi, context):
-    return RKS_POLL_selected_bones(ksi, context) or RKS_POLL_selected_objects(ksi, context)
+    return (RKS_POLL_selected_bones(ksi, context) or
+            RKS_POLL_selected_objects(ksi, context))
 
 ###########################
 # Iterator Callbacks
@@ -78,13 +84,20 @@ def RKS_POLL_selected_items(ksi, context):
 
 # all selected objects or pose bones, depending on which we've got
 def RKS_ITER_selected_item(ksi, context, ks):
-    if (context.active_object) and (context.active_object.mode == 'POSE'):
+    ob = context.active_object
+    if ob and ob.mode == 'POSE':
         for bone in context.selected_pose_bones:
             ksi.generate(context, ks, bone)
     else:
         for ob in context.selected_objects:
             ksi.generate(context, ks, ob)
 
+
+# all select objects only
+def RKS_ITER_selected_objects(ksi, context, ks):
+    for ob in context.selected_objects:
+        ksi.generate(context, ks, ob)
+
 ###########################
 # Generate Callbacks