Update
This commit is contained in:
80
2023/scripts/animation_tools/dwpicker/path.py
Normal file
80
2023/scripts/animation_tools/dwpicker/path.py
Normal file
@@ -0,0 +1,80 @@
|
||||
|
||||
|
||||
import os
|
||||
from maya import cmds
|
||||
from .optionvar import (
|
||||
AUTO_COLLAPSE_IMG_PATH_FROM_ENV, CUSTOM_PROD_PICKER_DIRECTORY,
|
||||
LAST_IMPORT_DIRECTORY, LAST_IMAGE_DIRECTORY_USED, LAST_OPEN_DIRECTORY,
|
||||
OVERRIDE_PROD_PICKER_DIRECTORY_ENV, USE_PROD_PICKER_DIR_AS_DEFAULT)
|
||||
|
||||
|
||||
def unix_path(path, isroot=False):
|
||||
path = path.replace('\\', '/')
|
||||
condition = (
|
||||
os.name == 'nt' and
|
||||
isroot and
|
||||
path.startswith('/') and
|
||||
not path.startswith('//'))
|
||||
|
||||
if condition:
|
||||
path = '/' + path
|
||||
|
||||
path = path.rstrip(r'\/')
|
||||
return path
|
||||
|
||||
|
||||
def format_path(path):
|
||||
if path is None:
|
||||
return
|
||||
path = unix_path(path)
|
||||
if not cmds.optionVar(query=AUTO_COLLAPSE_IMG_PATH_FROM_ENV):
|
||||
return path
|
||||
root = get_picker_project_directory()
|
||||
if not root or not path.lower().startswith(root.lower()):
|
||||
return path
|
||||
return '$DWPICKER_PROJECT_DIRECTORY/{}'.format(
|
||||
path[len(root):].lstrip('/'))
|
||||
|
||||
|
||||
def get_picker_project_directory():
|
||||
if cmds.optionVar(query=OVERRIDE_PROD_PICKER_DIRECTORY_ENV):
|
||||
path = cmds.optionVar(query=CUSTOM_PROD_PICKER_DIRECTORY)
|
||||
return unix_path(path) if path else None
|
||||
path = os.getenv('DWPICKER_PROJECT_DIRECTORY')
|
||||
return unix_path(path) if path else None
|
||||
|
||||
|
||||
def expand_path(path):
|
||||
backup = None
|
||||
if cmds.optionVar(query=OVERRIDE_PROD_PICKER_DIRECTORY_ENV):
|
||||
root = unix_path(cmds.optionVar(query=CUSTOM_PROD_PICKER_DIRECTORY))
|
||||
backup = os.getenv('DWPICKER_PROJECT_DIRECTORY')
|
||||
os.environ['DWPICKER_PROJECT_DIRECTORY'] = root
|
||||
result = os.path.expandvars(path)
|
||||
if backup:
|
||||
os.environ['DWPICKER_PROJECT_DIRECTORY'] = backup
|
||||
return result
|
||||
|
||||
|
||||
def get_open_directory():
|
||||
if cmds.optionVar(query=USE_PROD_PICKER_DIR_AS_DEFAULT):
|
||||
directory = get_picker_project_directory()
|
||||
if directory:
|
||||
return directory
|
||||
return cmds.optionVar(query=LAST_OPEN_DIRECTORY)
|
||||
|
||||
|
||||
def get_import_directory():
|
||||
if cmds.optionVar(query=USE_PROD_PICKER_DIR_AS_DEFAULT):
|
||||
directory = get_picker_project_directory()
|
||||
if directory:
|
||||
return directory
|
||||
return cmds.optionVar(query=LAST_IMPORT_DIRECTORY)
|
||||
|
||||
|
||||
def get_image_directory():
|
||||
if cmds.optionVar(query=USE_PROD_PICKER_DIR_AS_DEFAULT):
|
||||
directory = get_picker_project_directory()
|
||||
if directory:
|
||||
return directory
|
||||
return cmds.optionVar(query=LAST_IMAGE_DIRECTORY_USED)
|
||||
Reference in New Issue
Block a user