def assettask(self, projectid, assetid): # get tasks from assets and project _assettasks = [] _fields = [ 'id', 'code', # 'cached_display_name', 'content', "step", # 'project', # 'sibling_tasks' ] _filters = [ ['project', 'is', { 'type': 'Project', 'id': projectid }], # ['asset', 'is', {'type': 'Asset', 'id': assetid }], ['entity', 'is', { 'type': 'Asset', 'id': assetid }] ] try: _assettask = self.sg.find("Task", _filters, _fields) _assettasks = dictfromlistofdicts(_assettask, "content", "id") except RuntimeError: logger.warn("Couldn't find any AssetTypes") else: logger.info("Found {} Asset Tasks".format(len(_assettask))) finally: return _assettasks
def seqFromProject(self, project_id=None): # get sequence from project _sequences = {} _fields = ['id', 'code'] _filters = [['project', 'is', {'type': 'Project', 'id': project_id}]] try: _seq = self.sg.find("Sequence", _filters, _fields) _sequences = dictfromlistofdicts(_seq, "code", "id") except RuntimeError, err: logger.warn("Cant find any sequences")
def assetFromProject(self, project_id=None): # get assets from _assets = {} _fields = ['id', 'code'] _filters = [['project', 'is', {'type': 'Project', 'id': project_id}]] try: _asset = self.sg.find("Asset", _filters, _fields) _assets = dictfromlistofdicts(_asset, "code", "id") except RuntimeError: logger.warn("Cant find any sequences") finally: return _assets
def myGroups(self): # Return a simple dictionary of projects and project ids _mygroups = {} try: __fields = ['id', 'name', 'groups'] __filters = [['login', 'is', self.dabnumber]] _result = self.sg.find("HumanUser", filters=__filters, fields=__fields) _groups = _result[0].get('groups') _mygroups = dictfromlistofdicts(_groups, "name", "id") except RuntimeError, err: _mygroups = {}
def episodeFromProject(self, project_id=None): # get episodes from project _episodes = None _fields = ['id', 'code', 'episode'] _filters = [ ['project', 'is', { 'type': 'Project', 'id': project_id }], ] try: _ep = self.sg.find("Episode", _filters, _fields) _episodes = dictfromlistofdicts(_ep, "code", "id") except RuntimeError, err: logger.warn( "Cant find any episodes in project {pr}".format(pr=project_id))
def taskFromShot(self, project_id=None, shot_id=None): # get tasks from shot _tasks = {} _fields = ['id', 'cached_display_name'] _filters = [['project', 'is', { 'type': 'Project', 'id': project_id }], ['entity', 'is', { 'type': 'Shot', 'id': shot_id }]] try: _task = self.sg.find("Task", _filters, _fields) _tasks = dictfromlistofdicts(_task, "cached_display_name", "id") except RuntimeError: logger.warn("Cant find any tasks") finally: return _tasks
def shotFromSeq(self, project_id=None, sequence_id=None): # get shots from sequence and project _shots = {} _fields = ['id', 'code'] _filters = [['project', 'is', { 'type': 'Project', 'id': project_id }], ['sg_sequence', 'is', { 'type': 'Sequence', 'id': sequence_id }]] try: _shottask = self.sg.find("Shot", _filters, _fields) _shots = dictfromlistofdicts(_shottask, "code", "id") except RuntimeError: logger.warn("Cant find any shots") finally: return _shots
def assetFromAssetType(self, project_id=None, asset_type=None): # get asset _assets = {} _fields = ['id', 'code', 'sg_asset_type'] _filters = [ ['project', 'is', { 'type': 'Project', 'id': project_id }], ['sg_asset_type', 'is', asset_type], ] # print project_id,asset_type try: _asset = self.sg.find("Asset", _filters, _fields) _assets = dictfromlistofdicts(_asset, "code", "id") except RuntimeError: logger.warn("Cant find any {at} assets".format(at=asset_type)) finally: return _assets
def getprojectsoftware(self, project_id=None): _software = None _fields = [ 'id', 'code', 'engine', 'cached_display_name', 'projects', 'version_names' ] _filters = [['projects', 'is', {'type': 'Project', 'id': project_id}]] p = Person() try: software = p.sg.find("Software", _filters, _fields) except Exception, err: logger.warn("{}".format(err)) else: logger.debug(software) _software = dictfromlistofdicts(software, 'code', 'version_names') finally: logger.debug(_software) pass def getallsoftware(self): # return all the software that is active pass def getdefaultsoftware(self): # this comes from the json file pass class Project(ShotgunBase): def __init__(self, pid=None):