[Bf-blender-cvs] [f5a471e] master: Python: avoid mutable default param values

Campbell Barton noreply at git.blender.org
Sun May 31 08:00:01 CEST 2015


Commit: f5a471ef865dcbd0807c7b4ff71825d288b66453
Author: Campbell Barton
Date:   Sun May 31 15:56:22 2015 +1000
Branches: master
https://developer.blender.org/rBf5a471ef865dcbd0807c7b4ff71825d288b66453

Python: avoid mutable default param values

D1328 by @yedpodtrzitko

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

M	release/scripts/modules/addon_utils.py
M	release/scripts/modules/bl_i18n_utils/utils.py
M	release/scripts/modules/nodeitems_utils.py

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

diff --git a/release/scripts/modules/addon_utils.py b/release/scripts/modules/addon_utils.py
index 8c86f31..11aeebb 100644
--- a/release/scripts/modules/addon_utils.py
+++ b/release/scripts/modules/addon_utils.py
@@ -416,19 +416,21 @@ def reset_all(reload_scripts=False):
                 disable(mod_name)
 
 
-def module_bl_info(mod, info_basis={"name": "",
-                                    "author": "",
-                                    "version": (),
-                                    "blender": (),
-                                    "location": "",
-                                    "description": "",
-                                    "wiki_url": "",
-                                    "support": 'COMMUNITY',
-                                    "category": "",
-                                    "warning": "",
-                                    "show_expanded": False,
-                                    }
-                   ):
+def module_bl_info(mod, info_basis=None):
+    if info_basis is None:
+        info_basis = {
+            "name": "",
+            "author": "",
+            "version": (),
+            "blender": (),
+            "location": "",
+            "description": "",
+            "wiki_url": "",
+            "support": 'COMMUNITY',
+            "category": "",
+            "warning": "",
+            "show_expanded": False,
+            }
 
     addon_info = getattr(mod, "bl_info", {})
 
diff --git a/release/scripts/modules/bl_i18n_utils/utils.py b/release/scripts/modules/bl_i18n_utils/utils.py
index 524fef9..d472621 100644
--- a/release/scripts/modules/bl_i18n_utils/utils.py
+++ b/release/scripts/modules/bl_i18n_utils/utils.py
@@ -162,7 +162,7 @@ def get_po_files_from_dir(root_dir, langs=set()):
         yield uid, po_file
 
 
-def enable_addons(addons={}, support={}, disable=False, check_only=False):
+def enable_addons(addons=None, support=None, disable=False, check_only=False):
     """
     Enable (or disable) addons based either on a set of names, or a set of 'support' types.
     Returns the list of all affected addons (as fake modules)!
@@ -170,6 +170,11 @@ def enable_addons(addons={}, support={}, disable=False, check_only=False):
     """
     import addon_utils
 
+    if addons is None:
+        addons = {}
+    if support is None:
+        support = {}
+
     userpref = bpy.context.user_preferences
     used_ext = {ext.module for ext in userpref.addons}
 
@@ -212,13 +217,13 @@ class I18nMessage:
     __slots__ = ("msgctxt_lines", "msgid_lines", "msgstr_lines", "comment_lines", "is_fuzzy", "is_commented",
                  "settings")
 
-    def __init__(self, msgctxt_lines=[], msgid_lines=[], msgstr_lines=[], comment_lines=[],
+    def __init__(self, msgctxt_lines=None, msgid_lines=None, msgstr_lines=None, comment_lines=None,
                  is_commented=False, is_fuzzy=False, settings=settings):
         self.settings = settings
-        self.msgctxt_lines = msgctxt_lines
-        self.msgid_lines = msgid_lines
-        self.msgstr_lines = msgstr_lines
-        self.comment_lines = comment_lines
+        self.msgctxt_lines = msgctxt_lines or []
+        self.msgid_lines = msgid_lines or []
+        self.msgstr_lines = msgstr_lines or []
+        self.comment_lines = comment_lines or []
         self.is_fuzzy = is_fuzzy
         self.is_commented = is_commented
 
diff --git a/release/scripts/modules/nodeitems_utils.py b/release/scripts/modules/nodeitems_utils.py
index ff21009..2f69ea8 100644
--- a/release/scripts/modules/nodeitems_utils.py
+++ b/release/scripts/modules/nodeitems_utils.py
@@ -43,7 +43,11 @@ class NodeCategory:
 
 
 class NodeItem:
-    def __init__(self, nodetype, label=None, settings={}, poll=None):
+    def __init__(self, nodetype, label=None, settings=None, poll=None):
+
+        if settings is None:
+            settings = {}
+
         self.nodetype = nodetype
         self._label = label
         self.settings = settings




More information about the Bf-blender-cvs mailing list