[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