def fileFromPath(self, file_path = ''): """Get File by path, also sets App, Asset and Project. @param file_path: String @return Bool """ assert isinstance(file_path, basestring), 'file_path is not an instance of basestring.' file_path = unixPath(file_path) if self.projectFromPath(file_path): if self.assetFromPath(file_path): if self.appFromPath(file_path): matching_files = filter(lambda x: file_path == x.path, self.app.files) if matching_files: self.file = matching_files.pop() #print self.file.name return True else: raise exceptions.MissingFile('No File recognized in {path}'.format(path = file_path)) return False
def projectFromPath(self, project_path = ''): """Get Project by path. @param project_path: String @return Bool """ assert isinstance(project_path, basestring), 'project_path is not an instance of basestring' project_path = unixPath(project_path) matching_projects = filter(lambda x: project_path.startswith(x.path), self.projects.children) if matching_projects: self.project = matching_projects.pop() #print self.project.name return True else: raise exceptions.MissingProject('No Project recognized in {path}'.format(path = project_path)) return False
def assetFromPath(self, asset_path = ''): """Get Asset by path, also sets Project. @param asset_path: String @return Bool """ assert isinstance(asset_path, basestring), 'asset_path is not an instance of basestring' asset_path = unixPath(asset_path) if self.projectFromPath(asset_path): matching_assets = filter(lambda x: asset_path.startswith(x.path), self.project.assets.children) if matching_assets: self.asset = matching_assets.pop() #print self.asset.name return True else: raise exceptions.MissingAsset('No Asset recognized in {path}'.format(path = asset_path)) return False
def appFromPath(self, app_path = ''): """Get App by path, also sets Asset and Project. @param app_path: String @return Bool """ assert isinstance(app_path, basestring), 'app_path is not an instance of basestring' app_path = unixPath(app_path) if self.projectFromPath(app_path): if self.assetFromPath(app_path): matching_apps = filter(lambda x: app_path.startswith(x.save.path), self.asset.applications) if matching_apps: self.app = matching_apps.pop() #print self.app.name return True else: raise exceptions.MissingApp('No App recognized in {path}'.format(path = app_path)) return False