[Bf-blender-cvs] [d173a52f56b] master: Cleanup: doc-strings and minor changes to anim_utils.py

Campbell Barton noreply at git.blender.org
Wed Dec 14 23:37:25 CET 2022


Commit: d173a52f56be3dd0f1dea6a9628bad52d2fcd0f7
Author: Campbell Barton
Date:   Thu Dec 15 09:26:40 2022 +1100
Branches: master
https://developer.blender.org/rBd173a52f56be3dd0f1dea6a9628bad52d2fcd0f7

Cleanup: doc-strings and minor changes to anim_utils.py

- Follow sphinx conventions for doc-strings.
- Use __slots__ for KeyframesCo as dynamically assigning new members
  isn't needed.
- Import from bpy.types instead of assigning.
- Split typing imports across multiple lines as they tend to become
  quite large.

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

M	release/scripts/modules/bpy_extras/anim_utils.py

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

diff --git a/release/scripts/modules/bpy_extras/anim_utils.py b/release/scripts/modules/bpy_extras/anim_utils.py
index 43973307ce6..3586401dd7a 100644
--- a/release/scripts/modules/bpy_extras/anim_utils.py
+++ b/release/scripts/modules/bpy_extras/anim_utils.py
@@ -9,13 +9,24 @@ __all__ = (
 )
 
 import bpy
-from typing import Mapping, List, Tuple, Sequence
+from bpy.types import Action
 
-# (fcurve.data_path, fcurve.array_index)
-FCurveKey = Tuple[str, int]
-# [frame0, value0, frame1, value1, ...]
+from typing import (
+    List,
+    Mapping,
+    Sequence,
+    Tuple,
+)
+
+FCurveKey = Tuple[
+    # `fcurve.data_path`.
+    str,
+    # `fcurve.array_index`.
+    int,
+]
+
+# List of `[frame0, value0, frame1, value1, ...]` pairs.
 ListKeyframes = List[float]
-Action = bpy.types.Action
 
 
 def bake_action(
@@ -144,11 +155,11 @@ def bake_action_iter(
 
     # Note: BBONE_PROPS is a list so we can preserve the ordering
     BBONE_PROPS = [
-        'bbone_curveinx', 'bbone_curveoutx',
-        'bbone_curveinz', 'bbone_curveoutz',
-        'bbone_rollin', 'bbone_rollout',
-        'bbone_scalein', 'bbone_scaleout',
-        'bbone_easein', 'bbone_easeout'
+        "bbone_curveinx", "bbone_curveoutx",
+        "bbone_curveinz", "bbone_curveoutz",
+        "bbone_rollin", "bbone_rollout",
+        "bbone_scalein", "bbone_scaleout",
+        "bbone_easein", "bbone_easeout"
     ]
     BBONE_PROPS_LENGTHS = {
         "bbone_curveinx": 1,
@@ -433,14 +444,18 @@ def bake_action_iter(
 
 
 class KeyframesCo:
-    """A buffer for keyframe Co unpacked values per FCurveKey. FCurveKeys are added using
-    add_paths(), Co values stored using extend_co_values(), then finally use
-    insert_keyframes_into_*_action() for efficiently inserting keys into the fcurves.
+    """
+    A buffer for keyframe Co unpacked values per ``FCurveKey``. ``FCurveKeys`` are added using
+    ``add_paths()``, Co values stored using extend_co_values(), then finally use
+    ``insert_keyframes_into_*_action()`` for efficiently inserting keys into the F-curves.
 
     Users are limited to one Action Group per instance.
     """
+    __slots__ = (
+        "keyframes_from_fcurve",
+    )
 
-    # keyframes[(rna_path, array_index)] = list(time0,value0, time1,value1,...)
+    # `keyframes[(rna_path, array_index)] = list(time0,value0, time1,value1,...)`.
     keyframes_from_fcurve: Mapping[FCurveKey, ListKeyframes]
 
     def __init__(self):
@@ -480,11 +495,12 @@ class KeyframesCo:
         action: Action,
         action_group_name: str,
     ) -> None:
-        """Assumes the action is new, that it has no fcurves. Otherwise, the only difference between versions is
+        """
+        Assumes the action is new, that it has no F-curves. Otherwise, the only difference between versions is
         performance and implementation simplicity.
 
-        Args:
-            action_group_name (str): Name of Action Group that fcurves are added to.
+        :arg action_group_name: Name of Action Group that F-curves are added to.
+        :type action_group_name: str
         """
         linear_enum_values = [
             bpy.types.Keyframe.bl_rna.properties["interpolation"].enum_items["LINEAR"].value
@@ -513,14 +529,15 @@ class KeyframesCo:
         action: Action,
         action_group_name: str,
     ) -> None:
-        """Assumes the action already exists, that it might already have fcurves. Otherwise, the
+        """
+        Assumes the action already exists, that it might already have F-curves. Otherwise, the
         only difference between versions is performance and implementation simplicity.
 
-        Args:
-            lookup_fcurves (Mapping[FCurveKey, bpy.types.FCurve]): This is only used for efficiency.
-            It's a substitute for action.fcurves.find() which is a potentially expensive linear
-            search.
-            action_group_name (str): Name of Action Group that fcurves are added to.
+        :arg lookup_fcurves: : This is only used for efficiency.
+           It's a substitute for ``action.fcurves.find()`` which is a potentially expensive linear search.
+        :type lookup_fcurves: ``Mapping[FCurveKey, bpy.types.FCurve]``
+        :arg action_group_name: Name of Action Group that F-curves are added to.
+        :type action_group_name: str
         """
         linear_enum_values = [
             bpy.types.Keyframe.bl_rna.properties["interpolation"].enum_items["LINEAR"].value



More information about the Bf-blender-cvs mailing list