[Bf-blender-cvs] [e17843782cd] blender2.8: Cleanup: use namedtuple for KeymapParams

Campbell Barton noreply at git.blender.org
Mon Nov 12 23:29:02 CET 2018


Commit: e17843782cde144995f363f1d023ccacd7c49278
Author: Campbell Barton
Date:   Tue Nov 13 08:58:53 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBe17843782cde144995f363f1d023ccacd7c49278

Cleanup: use namedtuple for KeymapParams

Prefer immutable types where possible.

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

M	release/scripts/presets/keyconfig/keymap_data/blender_default.py

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

diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
index b0d230a47ba..b4d0779e676 100644
--- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -20,20 +20,33 @@
 # ------------------------------------------------------------------------------
 # Configurable Parameters
 
-class KeymapParams:
-    __slots__ = (
-        "apple",
-        "legacy",
-        "select_mouse",
-        "action_mouse",
+from collections import namedtuple
+
+# TODO: remove when we drop Python 3.6
+import sys
+if sys.version_info >= (3, 7):
+    KeymapParams = namedtuple(
+        "KeymapParams",
+        ("apple", "legacy", "select_mouse", "action_mouse"),
+        defaults=(
+            sys.platform == "darwin",
+            False,
+            'SELECTMOUSE',
+            'ACTIONMOUSE',
+        ),
     )
-
-    def __init__(self, legacy=False):
-        import platform
-        self.apple = platform.system() == 'Darwin'
-        self.legacy = legacy
-        self.select_mouse = 'SELECTMOUSE'
-        self.action_mouse = 'ACTIONMOUSE'
+else:
+    KeymapParams = namedtuple(
+        "KeymapParams",
+        ("apple", "legacy", "select_mouse", "action_mouse"),
+    )
+    KeymapParams.__new__.__defaults__ = (
+        sys.platform == "darwin",
+        False,
+        'SELECTMOUSE',
+        'ACTIONMOUSE',
+    )
+del namedtuple, sys
 
 
 # ------------------------------------------------------------------------------
@@ -4921,5 +4934,5 @@ def generate_keymaps(params=None):
 
 if __name__ == "__main__":
     from bpy_extras.keyconfig_utils import keyconfig_import_from_data
-    keyconfig_import_from_data("Blender", generate_keymaps(KeymapParams()))
+    keyconfig_import_from_data("Blender", generate_keymaps())
     keyconfig_import_from_data("Blender 27X", generate_keymaps(KeymapParams(legacy=True)))



More information about the Bf-blender-cvs mailing list