[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [39406] trunk/blender/release/scripts/ modules/bpy_extras/io_utils.py: py api - optional sep argument for bpy_extra.io_utils.unique_name() since for some formats '.' is an invalid char.

Campbell Barton ideasman42 at gmail.com
Mon Aug 15 06:58:19 CEST 2011


Revision: 39406
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39406
Author:   campbellbarton
Date:     2011-08-15 04:58:19 +0000 (Mon, 15 Aug 2011)
Log Message:
-----------
py api - optional sep argument for bpy_extra.io_utils.unique_name() since for some formats '.' is an invalid char.

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

Modified: trunk/blender/release/scripts/modules/bpy_extras/io_utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_extras/io_utils.py	2011-08-15 04:53:53 UTC (rev 39405)
+++ trunk/blender/release/scripts/modules/bpy_extras/io_utils.py	2011-08-15 04:58:19 UTC (rev 39406)
@@ -439,7 +439,7 @@
             shutil.copy(file_src, file_dst)
 
 
-def unique_name(key, name, name_dict, name_max=-1, clean_func=None):
+def unique_name(key, name, name_dict, name_max=-1, clean_func=None, sep="."):
     """
     Helper function for storing unique names which may have special characters
     stripped and restricted to a maximum length.
@@ -456,6 +456,9 @@
     :type name_dict: dict
     :arg clean_func: Function to call on *name* before creating a unique value.
     :type clean_func: function
+    :arg sep: Separator to use when between the name and a number when a
+       duplicate name is found.
+    :type sep: string
     """
     name_new = name_dict.get(key)
     if name_new is None:
@@ -466,14 +469,15 @@
 
         if name_max == -1:
             while name_new in name_dict_values:
-                name_new = "%s.%03d" % (name_new_orig, count)
+                name_new = "%s%s%03d" % (name_new_orig, sep, count)
                 count += 1
         else:
             name_new = name_new[:name_max]
             while name_new in name_dict_values:
                 count_str = "%03d" % count
-                name_new = "%.*s.%s" % (name_max - (len(count_str) + 1),
+                name_new = "%.*s%s%s" % (name_max - (len(count_str) + 1),
                                         name_new_orig,
+                                        sep,
                                         count_str,
                                         )
                 count += 1




More information about the Bf-blender-cvs mailing list