=IDProperties Python update=
[blender.git] / source / blender / python / api2_2x / doc / IDProp.py
index d4cf59a642460fbbaffc142e551e71fbcfde0c3b..aa5cca9ebb3dd34a6d9c006fdc47708e658740e4 100644 (file)
@@ -1,21 +1,3 @@
-class IDProperty:
-       """
-       The IDProperty Type
-       ===================
-       @ivar name: The name of the property
-       @type name: string
-       @ivar type: The property type (is read-only)
-       @type type: int
-       @ivar data: The property's data.  This data can be of several forms, depending on the 
-       ID property type:
-       
-               1. For arrays, data implements the [] and allows editing of the array.
-               2. For groups, data allows iteration through the group, and access using the [] 
-               operator (but note that you can access a group that way through the parent IDProperty too).
-               See L{IDGroup<IDGroup>}.
-               3. For strings/ints/floats, data just holds the value and can be freely modified.
-       """
-       
 class IDGroup:
        """
        The IDGroup Type
@@ -24,15 +6,15 @@ class IDGroup:
        operator to get child ID properties.
        
        You can also add new properties using the [] operator.
-       For example:
+       For example::
        
-       group['a float!'] = 0.0
-       group['an int!'] = 0
-       group['a string!'] = "hi!"
-       group['an array!'] = [0, 0, 1.0, 0]
-       
-       group['a subgroup!] = {"float": 0.0, "an int": 1.0, "an array": [1, 2], \
-         "another subgroup": {"a": 0.0, "str": "bleh"}}
+               group['a float!'] = 0.0
+               group['an int!'] = 0
+               group['a string!'] = "hi!"
+               group['an array!'] = [0, 0, 1.0, 0]
+               
+               group['a subgroup!] = {"float": 0.0, "an int": 1.0, "an array": [1, 2],
+                 "another subgroup": {"a": 0.0, "str": "bleh"}}
         
        Note that for arrays, the array type defaults to int unless a float is found
        while scanning the template list; if any floats are found, then the whole
@@ -41,24 +23,80 @@ class IDGroup:
        You can also delete properties with the del operator.  For example:
        
        del group['property']
+       
+       @ivar name: The name of the property
+       @type name: string
        """
        
-       def newProperty(type, name, array_type="Float", val=""):
+       def pop(self, item):
+               """
+               Pop an item from the group property.
+               @type item: string
+               @param item: The item name.
+               @rtype: can be dict, list, int, float or string.
+               @return: The removed property.  
+               """
+               
+       def update(self, updatedict):
+               """
+               Updates items in the dict, similar to normal python
+               dictionary method .update().
+               @type updatedict: dict
+               @param updatedict: A dict of simple types to derive updated/new IDProperties from.
+               @rtype: None
+               @return: None
+               """
+       
+       def keys(self):
+               """
+               Returns a list of the keys in this property group.
+               @rtype: list of strings.
+               @return: a list of the keys in this property group.     
+               """
+       
+       def values(self):
+               """
+               Returns a list of the values in this property group.
+               
+               Note that unless a value is itself a property group or an array, you 
+               cannot change it by changing the values in this list, you must change them
+               in the parent property group.
+               
+               For example,
+               
+               group['some_property'] = new_value
+               
+               . . .is correct, while,
+               
+               values = group.values()
+               values[0] = new_value
+               
+               . . .is wrong.
+               
+               @rtype: list of strings.
+               @return: a list of the values in this property group.
+               """
+       
+       def iteritems(self):
                """
-               This function creates a new child ID property in the group.
-               @type type: an int or a string
-               @param type: The ID property type.  Can be:
-                       "String" or Blender.IDPropTypes['String']
-                       "Int" or Blender.IDPropTypes['Int']
-                       "Float" or Blender.IDPropTypes['Float']
-                       "Array" or Blender.IDPropTypes['Array']
-                       "Group" or Blender.IDPropTypes['Group']
+               Implements the python dictionary iteritmes method.
+               
+               For example::
+
+                       for k, v in group.iteritems():
+                               print "Property name: " + k
+                               print "Property value: " + str(v)
+                       
+               @rtype: an iterator that spits out items of the form [key, value]
+               @return: an iterator.   
                """
        
-       def deleteProperty(prop):
+       def convert_to_pyobject(self):
                """
-               deletes a property, takes either a name or a reference
-               as an argument.
+               Converts the entire property group to a purely python form.
+               
+               @rtype: dict
+               @return: A python dictionary representing the property group
                """
                
 class IDArray: