本文整理匯總了Python中rapuma.core.tools.Tools.resolvePath方法的典型用法代碼示例。如果您正苦於以下問題:Python Tools.resolvePath方法的具體用法?Python Tools.resolvePath怎麽用?Python Tools.resolvePath使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類rapuma.core.tools.Tools
的用法示例。
在下文中一共展示了Tools.resolvePath方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: ProjData
# 需要導入模塊: from rapuma.core.tools import Tools [as 別名]
# 或者: from rapuma.core.tools.Tools import resolvePath [as 別名]
#.........這裏部分代碼省略.........
for root, dirs, files in os.walk(source) :
for fileName in files :
if os.path.basename(root) in excludeFolders :
excludeFiles.append(os.path.join(root, fileName))
else :
# Get rid of edited backup files
if fileName[-1] == '~' :
excludeFiles.append(os.path.join(root, fileName))
continue
ext = os.path.splitext(fileName)[1][1:]
if ext in excludeTypes :
# A special indicator for file we want to keep
if fileName.find('-ext.') > 0 :
continue
return excludeFiles
# FIXME: Should archiveProject() use self.pid instead of explicitly passing in a pid?
def archiveProject (self, pid, path = None) :
'''Archive a project. Send the compressed archive file to the user-specified
archive folder. If none is specified, put the archive in cwd. If a valid
path is specified, send it to that location. Like backup, this too will
overwrite any existing file of the same name. The difference is that this
will also disable the project so it cannot be accesses by Rapuma. When a
project is archived, all work should cease on the project.'''
# Make a private project object just for archiving
aProject = Project(pid, self.gid)
# Set some paths and file names
archName = aProject.projectIDCode + '.rapuma'
userArchives = self.userConfig['Resources']['archive']
archTarget = ''
if path :
path = self.tools.resolvePath(path)
if os.path.isdir(path) :
archTarget = os.path.join(path, archName)
else :
self.tools.terminal('\nError: The path given is not valid: [' + path + ']\n')
self.tools.dieNow()
elif os.path.isdir(userArchives) :
archTarget = os.path.join(userArchives, archName)
elif os.path.isdir(os.path.dirname(aProject.local.projHome)) :
# Default to the dir just above the project
archTarget = os.path.dirname(aProject.local.projHome)
else :
self.tools.terminal('\nError: Cannot resolve a path to create the archive file!\n')
self.tools.dieNow()
# Get a list of files we don't want
excludeFiles = self.makeExcludeFileList(source)
self.zipUpProject(archTarget, excludeFiles)
# Rename the source dir to indicate it was archived
bakArchProjDir = aProject.local.projHome + '(archived)'
if os.path.isdir(bakArchProjDir) :
self.tools.terminal('\nError: Cannot complete archival process!\n')
self.tools.terminal('\nAnother archived version of this project exsits with the folder name of: ' + self.tools.fName(bakArchProjDir) + '\n')
self.tools.terminal('\nPlease remove or rename it and then repete the process.\n')
self.tools.dieNow()
else :
os.rename(aProject.local.projHome, bakArchProjDir)
# Finish here
self.tools.terminal('Archive for [' + pid + '] created and saved to: ' + archTarget + '\n')
示例2: UserConfig
# 需要導入模塊: from rapuma.core.tools import Tools [as 別名]
# 或者: from rapuma.core.tools.Tools import resolvePath [as 別名]
class UserConfig(object):
def __init__(self):
"""Intitate the whole class and create the object."""
self.rapumaHome = os.environ.get("RAPUMA_BASE")
self.defaultUserHome = os.environ.get("RAPUMA_USER")
self.userConfFileName = "rapuma.conf"
self.tools = Tools()
# Point to the right user config
# Look for a web installation first, if not go to default
# Note that a slash is put before var as it is off of root
# That kind of stops this from being cross-platform
rapumaWebConfig = os.path.join("/var", "lib", "rapuma", "config", self.userConfFileName)
defaultConfig = os.path.join(self.defaultUserHome, self.userConfFileName)
if os.path.exists(rapumaWebConfig):
self.userConfFile = rapumaWebConfig
else:
self.userConfFile = defaultConfig
# Check to see if the file is there, then read it in and break it into
# sections. If it fails, scream really loud!
rapumaXMLDefaults = os.path.join(self.rapumaHome, "config", "rapuma.xml")
if os.path.exists(rapumaXMLDefaults):
self.tools.sysXmlConfig = self.tools.xml_to_section(rapumaXMLDefaults)
else:
raise IOError, "Can't open " + rapumaXMLDefaults
# import pdb; pdb.set_trace()
# Now make the users local rapuma.conf file if it isn't there
if not os.path.exists(self.userConfFile):
self.initUserHome()
# Load the Rapuma conf file into an object
self.userConfig = ConfigObj(self.userConfFile, encoding="utf-8")
# Initialize the user's home folders, like resources, etc
self.makeHomeFolders()
# Log messages for this module
self.errorCodes = {"0000": ["MSG", "Placeholder message"]}
###############################################################################
############################ User Config Functions ############################
###############################################################################
def initUserHome(self):
"""Initialize a user config file on a new install or system re-init."""
# Create home folders
if not os.path.isdir(self.defaultUserHome):
os.mkdir(self.defaultUserHome)
# Make the default global rapuma.conf for custom environment settings
if not os.path.isfile(self.userConfFile):
self.userConfig = ConfigObj(self.tools.sysXmlConfig.dict(), encoding="utf-8")
self.userConfig.filename = self.userConfFile
self.userConfig["System"]["initDate"] = self.tools.tStamp()
self.userConfig.write()
def setSystemSettings(self, section, key, value):
"""Function to make system settings."""
oldValue = self.userConfig[section][key]
if oldValue != value:
self.userConfig[section][key] = value
# Write out the results
self.userConfig.write()
self.tools.terminal("\nRapuma user name setting changed from [" + oldValue + "] to [" + value + "].\n\n")
else:
self.tools.terminal("\nSame value given, nothing to changed.\n\n")
def makeHomeFolders(self):
"""Setup the default Rapuma resource folders."""
# import pdb; pdb.set_trace()
# We do not write out unless this flag is set
confWriteFlag = False
# Setup Resources section if needed
if not self.userConfig.has_key("Resources"):
self.tools.buildConfSection(self.userConfig, "Resources")
# Get the user config project folder location (or set a default)
if not self.userConfig["Resources"].has_key("projects") or not self.userConfig["Resources"]["projects"]:
projects = os.path.join(os.environ.get("HOME"), "Publishing")
if not os.path.exists(projects):
os.makedirs(projects)
self.userConfig["Resources"]["projects"] = projects
confWriteFlag = True
elif not os.path.exists(self.tools.resolvePath(self.userConfig["Resources"]["projects"])):
sys.exit(
"\nERROR: Invalid projects folder path: "
+ self.userConfig["Resources"]["projects"]
+ "\n\nProcess halted.\n"
)
else:
projects = self.tools.resolvePath(self.userConfig["Resources"]["projects"])
#.........這裏部分代碼省略.........