More "relpath" try/except protection...

This commit is contained in:
2013-08-18 15:17:33 +00:00
parent c5e14f62a6
commit a567dd20c0
3 changed files with 22 additions and 7 deletions

View File

@@ -410,9 +410,15 @@ def dump_py_messages_from_files(msgs, reports, files, settings):
def make_rel(path):
for rp in root_paths:
if path.startswith(rp):
return os.path.relpath(path, rp)
try: # can't always find the relative path (between drive letters on windows)
return os.path.relpath(path, rp)
except ValueError:
return path
# Use binary's dir as fallback...
return os.path.relpath(path, os.path.dirname(bpy.app.binary_path))
try: # can't always find the relative path (between drive letters on windows)
return os.path.relpath(path, os.path.dirname(bpy.app.binary_path))
except ValueError:
return path
# Helper function
def extract_strings_ex(node, is_split=False):
@@ -768,7 +774,10 @@ def dump_src_messages(msgs, reports, settings):
if os.path.splitext(fname)[1] not in settings.PYGETTEXT_ALLOWED_EXTS:
continue
path = os.path.join(root, fname)
rel_path = os.path.relpath(path, settings.SOURCE_DIR)
try: # can't always find the relative path (between drive letters on windows)
rel_path = os.path.relpath(path, settings.SOURCE_DIR)
except ValueError:
rel_path = path
if rel_path in forbidden:
continue
elif rel_path not in forced:

View File

@@ -467,9 +467,12 @@ def _do_set(ref, path):
path = os.path.normpath(path)
# If given path is absolute, make it relative to current ref one (else we consider it is already the case!)
if os.path.isabs(path):
return os.path.relpath(path, ref)
else:
return path
# can't always find the relative path (between drive letters on windows)
try:
return os.path.relpath(path, ref)
except ValueError:
pass
return path
def _gen_get_set_path(ref, name):
def _get(self):

View File

@@ -409,7 +409,10 @@ def path_reference(filepath,
if mode == 'ABSOLUTE':
return filepath_abs
elif mode == 'RELATIVE':
return os.path.relpath(filepath_abs, base_dst)
try: # can't always find the relative path (between drive letters on windows)
return os.path.relpath(filepath_abs, base_dst)
except ValueError:
return filepath_abs
elif mode == 'STRIP':
return os.path.basename(filepath_abs)