本文整理汇总了Python中shotgun_api3.Shotgun.update方法的典型用法代码示例。如果您正苦于以下问题:Python Shotgun.update方法的具体用法?Python Shotgun.update怎么用?Python Shotgun.update使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类shotgun_api3.Shotgun
的用法示例。
在下文中一共展示了Shotgun.update方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: AppServerSvc
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
class AppServerSvc(win32serviceutil.ServiceFramework):
_svc_name_ = "timelog"
_svc_display_name_ = "shotgun time log"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
SetConsoleCtrlHandler(lambda x: True, True)
self.hWaitStop = win32event.CreateEvent(None, 0, 0, None)
self.count = 0
self.estinmins = 0
self.isAlive = True
self.envv = ""
self.prlist = []
def SvcStop(self):
self.ReportServiceStatus(win32service.SERVICE_STOP_PENDING)
win32event.SetEvent(self.hWaitStop)
self.run = False
def SvcDoRun(self):
servicemanager.LogMsg(
servicemanager.EVENTLOG_INFORMATION_TYPE, servicemanager.PYS_SERVICE_STARTED, (self._svc_name_, "")
)
self.sg = Shotgun(
"https://xxxxxxxxxxxxxxxx.shotgunstudio.com", "timelogservice", "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
)
self.main()
def updateProject(self, projectid):
servicemanager.LogWarningMsg(unicode(projectid))
filters = [["project.Project.id", "is", projectid]]
fields = ["time_logs_sum", "est_in_mins"]
for eventTimeLog in self.sg.find("Task", filters, fields):
self.count = self.count + eventTimeLog["time_logs_sum"]
if eventTimeLog["est_in_mins"] is not None:
self.estinmins = self.estinmins + eventTimeLog["est_in_mins"]
data = {"sg_artisttimelog": self.count / 600}
asset = self.sg.update("Project", projectid, data)
data = {"sg_total_bid": self.estinmins / 600}
asset = self.sg.update("Project", projectid, data)
def main(self):
while self.isAlive:
filters = [["sg_status", "is", "active"]]
fields = ["id"]
for f in self.sg.find("Project", filters, fields):
self.prlist.append(f["id"])
for prid in self.prlist:
self.updateProject(prid)
self.count = 0
self.estinmins = 0
if win32event.WaitForSingleObject(self.hWaitStop, 3000) == win32event.WAIT_OBJECT_0:
break
示例2: MultiShotError
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
for a_version in versions: #pre-process all shots looking for duplicates
print "</br>"
if a_version['entity']['name'] in found_shots:
raise MultiShotError(
'There is more than one version of shot %s in your request' % a_version['entity']['name'] )
else:
found_shots.add( a_version['entity']['name'] )
for a_version in versions: # re-process all shots to set the current version field correctly
entity_type = a_version['entity']['type'] # should always be 'Shot'!
if entity_type == 'Shot': # we always expect a shot but OK to test
shot_id = a_version['entity']['id']
linked_version = { 'type' : 'Version' , 'id' : a_version['id'] }
data = { CURRENT_VERSION_FIELD : linked_version }
changed_asset = sg.update("Shot", shot_id, data)
print 'Shot %i Has Been Updated Successfully' % shot_id
print '</br>'
else:
success = False
print('version %s is linked to something other than a shot?' % a_version_id)
print '</br>'
if success: #everything has gone well and the user gets a message
print SUCCESS_MESSAGE_HTML
except ConfigError, (errmsg):
print CONFIG_ERROR_HTML
except MultiShotError, (errmsg):
开发者ID:ProjectGuerilla,项目名称:Shotgun-Code-Snippets,代码行数:32,代码来源:set_current_version_posthandler_cgi.py
示例3: studioShotgun
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
class studioShotgun(object):
def __init__(self, path, name, key, project):
self.SERVER_PATH = path
self.SCRIPT_NAME = name
self.SCRIPT_KEY = key
self.project_id = project
self.sg = Shotgun(self.SERVER_PATH, self.SCRIPT_NAME, self.SCRIPT_KEY)
#----------------------------------------------------------------------
## set Project id by ID
def setProjectId(self, newId):
self.project_id = newId
#----------------------------------------------------------------------
## set Project id by ID
def setProjectName(self, name):
newId = 0
projects = self.sg.find('Project', [], ['name'])
for project in projects:
if project['name'] == name:
newId = project['id']
self.project_id = newId
#----------------------------------------------------------------------
## find asset by name
def findAssetByName(self, name):
fields = ['id', 'code', 'sg_asset_type', 'tasks']
filters = [['project', 'is', {'type': 'Project', 'id': self.project_id}], ['code', 'is', name]]
result = self.sg.find('Asset', filters, fields)
return result
#----------------------------------------------------------------------
## find shot by name
def findShotByName(self, episode, shot):
fields = ['id', 'code', 'sg_asset_type', 'tasks', 'sg_sequence']
filters = [['project', 'is', {'type': 'Project', 'id': self.project_id}], ['code', 'is', shot]]
result = self.sg.find('Shot', filters, fields)
for x in result:
name = x['sg_sequence']['name'].split('_')[0]
if name == episode:
return x
return []
#----------------------------------------------------------------------
## upload thumbnail to asset
def uploadThumbnail(self, asset, thumbnail):
upload = 0
asset = self.findAssetByName(asset)
if asset:
upload = self.sg.upload_thumbnail("Asset", asset[0]['id'], thumbnail)
return upload
#----------------------------------------------------------------------
## create new asset
def createAsset(self, asset, assetType, template, assetFile='', description=''):
## find asset
asset = self.findAssetByName(asset)
if not asset:
## create asset + task template
filters = [['code', 'is', template]]
template = self.sg.find_one('TaskTemplate', filters)
data = {'project': {'type': 'Project', 'id': self.project_id},
'code': asset,
'description': description,
'sg_asset_type': assetType,
'sg_url_perforce': assetFile,
'task_template': template}
asset = self.sg.create('Asset', data)
return asset
#----------------------------------------------------------------------
## update file path in asset
def updateAssetFilePath(self, asset, filename):
asset = self.findAssetByName(asset)
data = {'sg_url_perforce': filename}
asset = self.sg.update("Asset", asset[0]['id'], data)
return asset
#----------------------------------------------------------------------
## create new version
def createVersion(self, shotId, taskId, userId, filename, comment=''):
curTime = datetime.now().strftime('%Y.%m.%d_%H.%M')
fname = str(filename.split('/')[-1].split('.')[0]) + '_' + curTime
data = {'project': {'type': 'Project', 'id': self.project_id},
'code': fname,
'description': comment,
#.........这里部分代码省略.........
示例4: gethostname
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
#print "fkey: %s fvalue: %s" % ( key, value )
ret[key.strip()] = value.strip()
return ret
hostname = gethostname().split('.', 1)[0]
asset = sg.find_one("Asset",[['code','is',hostname]],['id'])
if not asset:
print "couldn't find asset"
else:
# if we find a valid asset, sync the facts for it
fact_data = get_fact_data()
for fact_name,fact_value in fact_data.items():
if not fact_name in facts_to_sync: continue
fact_data = {
'code': fact_name,
'sg_asset': {'type':'Asset', 'id':asset['id']},
'description': fact_value,
'project': {'type':'Project', 'id':178},
}
existing_fact = sg.find_one('CustomEntity01', [['code','is',fact_name],['sg_asset','is',{'type':'Asset','id': asset['id']}]],['id'])
if existing_fact:
print "asset %s has existing fact %s, updating to %s" % ( hostname, fact_name, fact_value )
sg.update('CustomEntity01', existing_fact['id'], fact_data)
else:
print "asset %s creating fact %s : %s" % ( hostname, fact_name, fact_value )
sg.create('CustomEntity01', fact_data, return_fields=['id'])
示例5: StoryboardFileManagement
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
#.........这里部分代码省略.........
self.tasks.append(eachTaskDict['name'])
self.taskList.append(eachTaskDict)
if self.taskName not in self.tasks:
## Create new task for the shot
self.myNewTask = self.sgsrv.create(
'Task',
{
'project':
{
'type': 'Project',
'id': 66
},
'step': {
'type': 'Step',
'id': 72,
'name': 'StoryBoard'
},
'content': 'StoryBoard',
'sg_status_list': 'apr',
'template_task': {
'type': 'Task',
'id': 31333
}
}
)
self.taskId = int(self.myNewTask['id'])
## Returns {'project': {'type': 'Project', 'id': 66, 'name': 'bubblebathbay'}, 'step': {'type': 'Step', 'id': 72, 'name': 'StoryBoard'}, 'type': 'Task', 'id': 32335}
## Add this dict to the list of dict for updating the shot task list with.
self.taskList.append({'type': 'Task', 'id': self.myNewTask['id'], 'name': 'StoryBoard'})
## Now update the shots task list.
self.sgsrv.update(
'Shot',
self.getShotTasks['id'],
{
'project': {
'type':'Project',
'id':66
},
'tasks': self.taskList
}
)
print 'Successfully updated shot %s with task %s' % (self.shotName, self.taskId)
## Now create a version for this
print 'Adding version %s to %s now' % (self.boardName, self.shotName)
data = { 'project': {'type':'Project','id': 66},
'code': self.boardName,
'description': 'I am not a fluffy bunny!',
'sg_path_to_movie': self.pathToMovie,
'sg_status_list': 'rev',
'entity': {'type':'Shot', 'id':self.getShotTasks['id']},
'sg_task': {'type':'Task', 'id':self.taskId},
'sg_status_list': 'vwd',
'user': {'type':'HumanUser', 'id':53} }
result = self.sgsrv.create('Version', data)
## Now upload to shotgun
print 'Uploading version %s to %s now' % (self.boardName, self.shotName)
result2 = self.sgsrv.upload("Version", result['id'], self.pathToMovie, "sg_uploaded_movie")
self._turnOffCheckBox('%s.mov' % self.shotName)
else:
## Get the story board task id
for eachTask in self.taskList:
示例6: __init__
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
class genericUtils:
def __init__(self):
self.sg = Shotgun('https://' + URL,name,API)
def getFields (self, entity):
'''get the fields for a type/entity as a list so we can pass it as an arg easily
this is used all the time to make sure we get all the fields that we may ever need for a type/entity
'''
allFields = []
fields = self.sg.schema_field_read(entity)
for field in fields:
allFields.append(field)
return allFields
def project (self, project):
'''Gets the Shotgun project name and ID
'''
retFields = self.getFields('Project')
project = project.replace('_', ' ')
return self.sg.find_one("Project", [["name", "is", project]], retFields )
def sequence (self, project, sequence):
'''Returns the shotgun sequence name and ID
Parameters : (project, sequence)
'''
retFields = self.getFields('Sequence')
return self.sg.find_one("Sequence", [["code", "is", sequence],['project','is',project]], retFields)
def shot (self, project, shot):
'''Returns the shotgun shot name and ID
Parameters : (project, shot)
'''
retFields = self.getFields('Shot')
return self.sg.find_one('Shot',[['code','is',shot],['project','is',project]],retFields)
def createProject (self, project):
'''Creates a project in Shotgun given a project name
Parameters : (project)
'''
filters = [['code','is','a']]
template = self.sg.find_one('Project',[['name','is','a']],['layout_project','id'])
data = {'name':project,
'layout_project': template
}
return self.sg.create('Project',data)
def createSequence (self, project, sequence):
'''Creates a sequence in shotgun given
Parameters : (project, sequence)
'''
data = {'project': {"type":"Project","id": project['id']},
'code': sequence}
return self.sg.create('Sequence', data)
def createShot (self, project, shot, seq='', taskTemplateName=''):
'''Creates a sequence in shotgun given
Parameters : (project, shot, seq='', taskTemplateName='Basic shot template'
'''
filters = [['code','is',taskTemplateName ]]
template = self.sg.find_one('TaskTemplate',filters)
data = { 'project': {"type":"Project","id": project['id']},
'code': shot,
'task_template' : template,
'description': '',
'self.sg_sequence': seq,
'self.sg_status_list': 'wtg' }
result = self.sg.create('Shot', data)
return result
def notesFind (self, shotID):
'''Find all notes on a shot
Parameters : (shotID)
Output : Note data :
['tasks', 'attachments', 'updated_at', 'replies', 'id', 'subject', 'playlist', '
addressings_to', 'created_by', 'content', 'sg_status_list', 'reply_content',
'updated_by', 'addressings_cc', 'read_by_current_user', 'user', 'note_links',
'created_at', 'sg_note_from', 'project', 'sg_note_type', 'tag_list']
'''
note = self.sg.find('Note',[['note_links','is', shotID]],['subject','content', 'created_at'],[{'field_name':'created_at','direction':'desc'}])
return note
def notesFindLatest (self, shotID):
'''Find the latest note on a shot
Parameters : (shotID)
Call with notesFindLatest(shot)['content'] for the note content only
Output : Note data:
['tasks', 'attachments', 'updated_at', 'replies', 'id', 'subject', 'playlist', '
addressings_to', 'created_by', 'content', 'sg_status_list', 'reply_content',
'updated_by', 'addressings_cc', 'read_by_current_user', 'user', 'note_links',
'created_at', 'sg_note_from', 'project', 'sg_note_type', 'tag_list']
'''
note = self.notesFind(shotID)[0]
return note
def notesCreate(self, project, shotID, subject, content):
'''Create a note for a shot given
Parameters : (project, shotID, subject, content)
Output : noteID
#.........这里部分代码省略.........
示例7: Shotgun
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
blob = yaml.load(sys.stdin)
method = sys.argv[1]
config = blob['config']
payload = blob['data']
sg = Shotgun(config['shotgun_url'], config['script_name'], config['script_api_key'], 'api3_preview')
if method == 'find':
result = sg.find(payload['entity'], payload['filters'], payload['fields'], payload['order'], payload['filter_operator'], payload['limit'], payload['retired_only'])
elif method == 'find_one':
result = sg.find_one(payload['entity'], payload['filters'], payload['fields'], payload['order'], payload['filter_operator'])
elif method == 'create':
result = sg.create(payload['entity'], payload['data'])
elif method == 'update':
result = sg.update(payload['entity'], payload['id'], payload['data'])
elif method == 'delete':
result = sg.delete(payload['entity'], payload['id'])
elif method == 'upload':
result = sg.upload(payload['entity'], payload['id'], payload['path'], payload['field_name'], payload['display_name'])
elif method == 'upload_thumbnail':
result = sg.upload_thumbnail(payload['entity'], payload['id'], payload['path'])
elif method == 'schema_field_read':
result = sg.schema_field_read(payload['entity'])
elif method == 'schema_field_create':
result = sg.schema_field_create(payload['entity'], payload['type'], payload['name'], payload['attrs'])
elif method == '_url_for_attachment_id':
entity_id = payload['id']
# Do a lot of legwork (based on Shotgun.download_attachment())
sid = sg._get_session_token()
示例8: Shotgun
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
__author__ = 'andrew.willis'
from shotgun_api3 import Shotgun
sg = Shotgun("http://andrewwillish.shotgunstudio.com", "scriptTest", "8b7db88321b7c296541580d1659872d2e63527c040b37b4a2ca0eb47f9da04cb")
proj = sg.find_one("Project",[['name','is','KIKO']])
idLis = [1166, 1167, 1168]
for id in idLis: sg.update('Shot', id, {"sg_status_list":"wtg"})
示例9: Shotgun
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
#from dBase import *
from shotgun_api3 import Shotgun
import os
site = 'https://chimneypot.shotgunstudio.com'
scriptName = 'dBase'
scriptKey = '729a76955455909c79f6d90262bb9fbe9186b92b'
pName = 'kievPipelineTest'
sg = Shotgun(site, scriptName, scriptKey)
lst = sg.find('HumanUser', [['updated_at', 'not_in_last', 1, 'MONTH'],['sg_status_list', 'is', 'act']], ['name', 'updated_at', 'sg_status_list'])
for i in lst:
print "%s: %s, %s, %s"%(i['name'],i['updated_at'], i['sg_status_list'], i['id'])
killEric = sg.update('HumanUser', 62, {'sg_status_list':'dis'})
def test():
print 'huy'
return sg
示例10: transform_asset
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
FROM item i
JOIN product p ON i.product_id = p.product_id
WHERE product_n not like 'Unknown %'
ORDER BY item_sc DESC
''')
row = cur.fetchone()
while row:
if not row['item_sc']:
row = cur.fetchone()
continue
asset_data = transform_asset( row )
existing_asset = sg.find_one('Asset', [['code','is',asset_data['code']]])
if existing_asset:
print "asset %s exists" % ( asset_data['code'] )
sg.update('Asset', existing_asset['id'], asset_data)
else:
print "asset %s creating" % ( asset_data['code'] )
try:
sg.create('Asset', asset_data, return_fields=['id'])
pass
except Exception:
pprint.pprint(row)
pprint.pprint(asset_data)
row = cur.fetchone()
conn.close()
示例11: int
# 需要导入模块: from shotgun_api3 import Shotgun [as 别名]
# 或者: from shotgun_api3.Shotgun import update [as 别名]
if line['est_in_mins']: # Bid
print 'bid'
print line['est_in_mins']
bidTask = line['est_in_mins']
newBidTask = int(bidTask * 0.8)
print newBidTask
# SG Update
data = { 'est_in_mins': newBidTask }
result = sg.update('Task', line['id'], data)
if line['start_date']: # Start
print 'start'
print line['start_date']
# SG Update
data = { 'start_date': '' }
result = sg.update('Task', line['id'], data)
if line['due_date']: # End
print 'end'
print line['due_date']
# SG Update
data = { 'due_date': '' }
result = sg.update('Task', line['id'], data)
return
if __name__ == '__main__':