[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38528] trunk/blender/release/scripts: added bpy.path.basename because "//" prefix breaks os.path.basename.

Campbell Barton ideasman42 at gmail.com
Wed Jul 20 10:10:02 CEST 2011


Revision: 38528
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38528
Author:   campbellbarton
Date:     2011-07-20 08:10:01 +0000 (Wed, 20 Jul 2011)
Log Message:
-----------
added bpy.path.basename because "//" prefix breaks os.path.basename.

Modified Paths:
--------------
    trunk/blender/release/scripts/modules/bpy/path.py
    trunk/blender/release/scripts/modules/bpy_extras/image_utils.py
    trunk/blender/release/scripts/startup/bl_operators/image.py

Modified: trunk/blender/release/scripts/modules/bpy/path.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy/path.py	2011-07-20 06:41:51 UTC (rev 38527)
+++ trunk/blender/release/scripts/modules/bpy/path.py	2011-07-20 08:10:01 UTC (rev 38528)
@@ -117,7 +117,7 @@
     """
     Returns the path stripped of directort and extension, ensured to be utf8 compatible.
     """
-    return _os.path.splitext(_os.path.basename(name))[0].encode("utf8", "replace").decode("utf8")
+    return _os.path.splitext(basename(name))[0].encode("utf8", "replace").decode("utf8")
 
 
 def resolve_ncase(path):
@@ -231,3 +231,12 @@
                         modules.append(("%s.%s" % (filename, mod_name), mod_path))
 
     return modules
+
+
+def basename(path):
+    """
+    Equivalent to os.path.basename, but skips a "//" suffix.
+
+    Use for Windows compatibility.
+    """
+    return _os.path.basename(path[2:] if path.startswith("//") else path)

Modified: trunk/blender/release/scripts/modules/bpy_extras/image_utils.py
===================================================================
--- trunk/blender/release/scripts/modules/bpy_extras/image_utils.py	2011-07-20 06:41:51 UTC (rev 38527)
+++ trunk/blender/release/scripts/modules/bpy_extras/image_utils.py	2011-07-20 08:10:01 UTC (rev 38528)
@@ -86,7 +86,9 @@
     variants = [imagepath]
 
     if dirname:
-        variants += [os.path.join(dirname, imagepath), os.path.join(dirname, os.path.basename(imagepath))]
+        variants += [os.path.join(dirname, imagepath),
+                     os.path.join(dirname, bpy.path.basename(imagepath)),
+                     ]
 
     for filepath_test in variants:
         if ncase_cmp:
@@ -99,7 +101,7 @@
                 return _image_load(nfilepath)
 
     if place_holder:
-        image = bpy.data.images.new(os.path.basename(imagepath), 128, 128)
+        image = bpy.data.images.new(bpy.path.basename(imagepath), 128, 128)
         # allow the path to be resolved later
         image.filepath = imagepath
         return image

Modified: trunk/blender/release/scripts/startup/bl_operators/image.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_operators/image.py	2011-07-20 06:41:51 UTC (rev 38527)
+++ trunk/blender/release/scripts/startup/bl_operators/image.py	2011-07-20 08:10:01 UTC (rev 38528)
@@ -163,7 +163,7 @@
             filepath_final = filepath + ("%.3d.%s" % (i, EXT))
             i += 1
 
-        image_new.name = os.path.basename(filepath_final)
+        image_new.name = bpy.path.basename(filepath_final)
         ProjectEdit._proj_hack[0] = image_new.name
 
         image_new.filepath_raw = filepath_final  # TODO, filepath raw is crummy




More information about the Bf-blender-cvs mailing list