[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28562] trunk/blender/release/scripts/ modules/rna_info.py: small adjustments for getting the default string of a property

Campbell Barton ideasman42 at gmail.com
Tue May 4 08:08:00 CEST 2010


Revision: 28562
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28562
Author:   campbellbarton
Date:     2010-05-04 08:08:00 +0200 (Tue, 04 May 2010)

Log Message:
-----------
small adjustments for getting the default string of a property

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/rna_info.py

Modified: trunk/blender/release/scripts/modules/rna_info.py
===================================================================
--- trunk/blender/release/scripts/modules/rna_info.py	2010-05-04 05:30:17 UTC (rev 28561)
+++ trunk/blender/release/scripts/modules/rna_info.py	2010-05-04 06:08:00 UTC (rev 28562)
@@ -200,41 +200,41 @@
 
         if self.type == "enum":
             self.enum_items[:] = rna_prop.items.keys()
-
+            
+            
         if self.array_length:
             self.default = tuple(getattr(rna_prop, "default_array", ()))
+        else:
+            self.default = getattr(rna_prop, "default", None)
+        self.default_str = "" # fallback
+
+
+        if self.type == "pointer":
+            # pointer has no default, just set as None
+            self.default = None
+            self.default_str = "None"
+        elif self.type == "string":
+            self.default_str = "\"%s\"" % self.default
+        elif self.type == "enum":
+            self.default_str = "'%s'" % self.default
+        elif self.array_length:
             self.default_str = ''
             # special case for floats
             if len(self.default) > 0:
-                if type(self.default[0]) is float:
+                if self.type == "float":
                     self.default_str = "(%s)" % ", ".join([float_as_string(f) for f in self.default])
             if not self.default_str:
                 self.default_str = str(self.default)
         else:
-            self.default = getattr(rna_prop, "default", "")
-            if type(self.default) is float:
+            if self.type == "float":
                 self.default_str = float_as_string(self.default)
             else:
                 self.default_str = str(self.default)
 
         self.srna = GetInfoStructRNA(rna_prop.srna) # valid for pointer/collections
 
-    def get_default_string(self):
-        # pointer has no default, just set as None
-        if self.type == "pointer":
-            return "None"
-        elif self.type == "string":
-            return '"' + self.default_str + '"'
-        elif self.type == "enum":
-            if self.default_str:
-                return "'" + self.default_str + "'"
-            else:
-                return ""
-
-        return self.default_str
-
     def get_arg_default(self, force=True):
-        default = self.get_default_string()
+        default = self.default_str
         if default and (force or self.is_required == False):
             return "%s=%s" % (self.identifier, default)
         return self.identifier
@@ -253,9 +253,9 @@
 
             if not (as_arg or as_ret):
                 # write default property, ignore function args for this
-                default_str = self.get_default_string()
-                if default_str:
-                    type_str += ", default %s" % default_str
+                if self.type != "pointer":
+                    if self.default_str:
+                        type_str += ", default %s" % self.default_str
 
         else:
             if self.type == "collection":
@@ -580,6 +580,16 @@
             for prop in func.return_values:
                 prop.build()
 
+    if 1:
+        for rna_info in InfoStructRNA.global_lookup.values():
+            for prop in rna_info.properties:
+                # ERROR CHECK
+                default = prop.default
+                if type(default) in (float, int):
+                    if default < prop.min or default > prop.max:
+                        print("\t %s.%s, %s not in [%s - %s]" % (rna_info.identifier, prop.identifier, default, prop.min, prop.max))
+
+
     # now for operators
     op_mods = dir(bpy.ops)
 





More information about the Bf-blender-cvs mailing list