本文整理汇总了Python中pyasm.biz.Snapshot类的典型用法代码示例。如果您正苦于以下问题:Python Snapshot类的具体用法?Python Snapshot怎么用?Python Snapshot使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Snapshot类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: copy_sobject
def copy_sobject(my, sobject, dst_search_type, context=None, checkin_mode='inplace'):
new_sobject = SearchType.create(dst_search_type)
search_type = SearchType.get(dst_search_type)
columns = SearchType.get_columns(dst_search_type)
data = sobject.get_data()
for name, value in data.items():
if name in ['id','pipeline_code']:
continue
if name not in columns:
continue
if not value:
continue
if name == "code":
value = Common.get_next_sobject_code(sobject, 'code')
if not value:
continue
new_sobject.set_value(name, value)
if SearchType.column_exists(dst_search_type, "project_code"):
project_code = Project.get_project_code()
new_sobject.set_value("project_code", project_code)
new_sobject.commit()
# get all of the current snapshots and file paths associated
if not context:
snapshots = Snapshot.get_all_current_by_sobject(sobject)
else:
snapshots = [Snapshot.get_current_by_sobject(sobject, context)]
if not snapshots:
return
msgs = []
for snapshot in snapshots:
#file_paths = snapshot.get_all_lib_paths()
file_paths_dict = snapshot.get_all_paths_dict()
file_types = file_paths_dict.keys()
if not file_types:
continue
# make sure the paths match the file_types
file_paths = [file_paths_dict.get(x)[0] for x in file_types]
mode = checkin_mode
# checkin the files (inplace)
try:
context = snapshot.get_value('context')
checkin = FileCheckin(new_sobject, context=context, file_paths=file_paths, file_types=file_types, mode=mode)
checkin.execute()
#print "done: ", context, new_sobject.get_related_sobjects("sthpw/snapshot")
except CheckinException, e:
msgs.append('Post-process Check-in Error for %s: %s ' %(context, e.__str__()))
示例2: get_display
def get_display(self):
sobject = self.get_current_sobject()
snapshots = []
if isinstance(sobject, Layer):
# for layer renders, we try to get all render sobjects
renders = Render.get_all_by_sobject(sobject)
if renders:
snapshots = Snapshot.get_by_sobjects(renders, is_current=True)
else: # for object that has direct snapshots like plates
snapshot = Snapshot.get_current_by_sobject(sobject)
if snapshot:
snapshots.append(snapshot)
if not snapshots:
return "<i>- no files -</i>"
div = DivWdg()
for snapshot in snapshots:
file_types = snapshot.get_all_file_types()
table = Table(css='embed')
for file_type in file_types:
table.add_row()
table.add_cell( self.get_open_wdg(snapshot, file_type) )
dir = snapshot.get_client_lib_dir(file_type=file_type)
table.add_cell( "%s: <i>%s</i>" % (file_type, dir) )
div.add(table)
return div
示例3: get_path_from_sobject
def get_path_from_sobject(my, sobject):
icon_path = None
path = None
search_type = sobject.get_search_type()
search_code = sobject.get_value("code", no_exception=True)
if not search_code:
search_code = sobject.get_id()
# FIXME: make this faster
snapshot = Snapshot.get_snapshot(search_type, search_code, context='icon')
if not snapshot:
snapshot = Snapshot.get_snapshot(search_type, search_code, context='publish')
if not snapshot:
snapshot = Snapshot.get_snapshot(search_type, search_code, process='publish')
if not snapshot:
snapshot = Snapshot.get_snapshot(search_type, search_code)
if snapshot:
file_type = "web"
icon_path = snapshot.get_web_path_by_type(file_type)
file_type = "main"
path = snapshot.get_web_path_by_type(file_type)
if icon_path:
path = icon_path
elif path:
path = my.find_icon_link(path)
return path
示例4: _test_symlink
def _test_symlink(self):
if os.name == 'nt':
return
# create a new test.txt file
file_path = "./symlink.txt"
file = open(file_path, 'w')
file.write("symlink test")
file.close()
file_path2 = "./symlink_append.txt"
file = open(file_path2, 'w')
file.write("append test")
file.close()
checkin = FileCheckin(self.person, file_path, context="sym_test", checkin_type='auto')
checkin.execute()
snap = checkin.get_snapshot()
versionless_snap = Snapshot.get_versionless(self.person.get_search_type(), self.person.get_id(), "sym_test", mode='latest', create=False)
self.assertEquals(True, isinstance(versionless_snap, Snapshot))
main_lib_path = snap.get_lib_path_by_type('main')
self.assertEquals(main_lib_path.endswith('/sym_test/.versions/symlink_sym_test_v001.txt'), True)
if versionless_snap:
lib_path =versionless_snap.get_lib_path_by_type('main')
self.assertEquals(True, os.path.exists(lib_path))
rel_path = os.readlink(lib_path)
lib_dir = os.path.dirname(lib_path)
# this is essentially handle_link() in FileUndo class
wd = os.getcwd()
os.chdir(lib_dir)
real_path = os.path.join(lib_dir, os.path.abspath(rel_path))
# lib_path points to real_path
expected_rel_path = Common.relative_path(lib_path, real_path)
self.assertEquals(True, os.path.exists(real_path))
self.assertEquals(expected_rel_path, rel_path)
os.chdir(wd)
# if not inplace or preallocate mode, keep_file_name should be False
checkin = FileAppendCheckin(snap.get_code(), [file_path2], file_types=['add'], keep_file_name=False, checkin_type='auto')
checkin.execute()
snap = checkin.get_snapshot()
main_lib_path = snap.get_lib_path_by_type('add')
self.assertEquals(snap.get_value('is_current'), True)
self.assertEquals(snap.get_value('is_latest'), True)
self.assertEquals(main_lib_path.endswith('/sym_test/.versions/symlink_append_sym_test_v001.txt'), True)
versionless_snap = Snapshot.get_versionless(self.person.get_search_type(), self.person.get_id(), "sym_test", mode='latest', create=False)
if versionless_snap:
lib_path = versionless_snap.get_lib_path_by_type('add')
self.assertEquals(lib_path.endswith('/sym_test/symlink_append_sym_test.txt'), True)
self.assertEquals(os.path.exists(lib_path), True)
示例5: get_snapshot
def get_snapshot(my, node_name, snapshot_type="asset"):
''' use this only if the info is not already in the
session_contents table'''
snapshot_code = my.get_snapshot_code(node_name, snapshot_type)
if snapshot_code == "":
return None
return Snapshot.get_by_code(snapshot_code)
示例6: execute
def execute(my):
search = Search(Submission)
search.set_show_retired(True)
submissions = search.get_sobjects()
for submission in submissions:
snapshot = Snapshot.get_latest_by_sobject(submission, "publish")
paths = snapshot.get_all_lib_paths()
bins = submission.get_bins()
if not bins:
print "Bin for submissin [%s] does not exist" % submission.get_id()
continue
bin = bins[0]
code = bin.get_code()
type = bin.get_value("type")
label = bin.get_value("label")
for path in paths:
if not os.path.exists(path):
print "WARNING: path '%s' does not exist" % path
continue
dirname = os.path.dirname(path)
basename = os.path.basename(path)
new_dirname = "%s/%s/%s/%s" % (dirname,type,label,code)
if not os.path.exists(new_dirname):
os.makedirs(new_dirname)
new_path = "%s/%s" % (new_dirname, basename)
print new_path
FileUndo.move(path, new_path)
示例7: add_ref_by_snapshot_code
def add_ref_by_snapshot_code(my, snapshot_code, instance_name=None, parent=None, type='ref', node_name='', tag='main'):
snapshot = Snapshot.get_by_code(snapshot_code)
if not snapshot:
Environment.add_warning("Reference not found", "Found reference to snapshot [%s] which no longer exists in the Tactic database" % snapshot_code)
return
return my.add_ref_by_snapshot(snapshot, instance_name, parent, type, node_name, tag=tag)
示例8: get_loader_xml
def get_loader_xml(my, ticket, project_code, snapshot_code, context="", options=""):
'''uses the loader to generate an execute xml that can be
used to load the assets'''
try:
my.init(ticket)
Project.set_project(project_code)
snapshot = Snapshot.get_by_code(snapshot_code)
# get the loader implementation
loader_context = ProdLoaderContext()
loader_context.set_context(context)
# pass on any message options for the loader
if options != "":
loader_context.set_options(options)
loader = loader_context.get_loader(snapshot)
loader.execute()
execute_xml = loader.get_execute_xml()
xml = execute_xml.get_xml()
finally:
DbContainer.close_all()
return xml
示例9: _handle_ref_node
def _handle_ref_node(self, node, widget, upstream=False, recursive=True):
# get the reference snapshot (should maybe use the loader or
# at least share the code
instance = Xml.get_attribute(node,"instance")
search_type = Xml.get_attribute(node,"search_type")
search_id = Xml.get_attribute(node,"search_id")
context = Xml.get_attribute(node,"context")
version = Xml.get_attribute(node,"version")
# this is often the Maya file node name or XSI long clip name
node_name = Xml.get_attribute(node, "node")
my_name = Xml.get_node_name(node)
# get the snapshot
ref_snapshot = Snapshot.get_by_version(search_type, search_id,\
context, version)
#ref_snapshot = Snapshot.get_latest(search_type,search_id, context)
if ref_snapshot == None:
widget.add("|---> <font color='red'>Error: No reference found for [%s, %s, %s]</font>" % \
(search_type, search_id, context) )
return
toggle_id = self.generate_unique_id('toggle')
widget.add(FloatDivWdg(), toggle_id)
version = ref_snapshot.get_value("version")
try:
sobject = ref_snapshot.get_sobject()
except SObjectNotFoundException, e:
widget.add('[%s|%s] may have been deleted or is not viewable.' % (ref_snapshot.get_value('search_type'),\
ref_snapshot.get_value('search_id')))
return
示例10: execute
def execute(my):
from pyasm.flash.widget import FlashLayerCheckboxWdg
web = WebContainer.get_web()
cam_search_key = web.get_form_value(FlashRenderTableElementWdg.RENDER_CAM)
# FIXME: why is this called "context"
context_name = web.get_form_value(FlashRenderTableElementWdg.CONTEXT_NAME)
# submit all the selected sobjects
context = "publish"
for search_key in my.search_keys:
sobject = Search.get_by_search_key(search_key)
snapshot = Snapshot.get_latest_by_sobject(sobject, context)
if not snapshot:
raise TacticException("No checkins of context '%s' for '%s' exists" % (context, sobject.get_code()))
render = FlashGenerateExecuteXml(sobject.get_code())
render.set_snapshot_code(snapshot.get_code())
# render.execute()
# store this in the appropriate queue
dispatch = TacticDispatcher()
dispatch.set_description("Flash Render: %s" % sobject.get_code())
dispatch.execute_slave(render)
my.description = "Submitted: %s" % ", ".join(my.search_keys)
示例11: get_xml_value
def get_xml_value(self):
if self.sobject.has_value(self.name):
return self.sobject.get_xml_value( self.name )
else:
from pyasm.biz import Snapshot
return Snapshot.get_latest_by_sobject(\
self.sobject).get_xml_value( self.name )
示例12: execute
def execute(my):
database = "sthpw"
sql = DbContainer.get(database)
value_array = sql.do_query("select code, cc from (select code, count(code) as cc from file group by code order by cc desc) as X where cc > 1;")
#value_array = sql.do_query("select code, cc from (select code, count(code) as cc from file group by code order by cc desc) as X;")
print "found [%s] pairs" % len(value_array)
for count, value_list in enumerate(value_array):
if count >= BATCH:
break
# get the file object
file_code = value_list[0]
search = Search("sthpw/file")
search.add_filter("code", file_code)
files = search.get_sobjects()
#if len(files) == 1:
# continue
for file in files:
project_code = file.get_value("project_code")
if not project_code:
print "WARNING: file [%s] has no project_code" % file_code
continue
project = Project.get_by_code(project_code)
initials = project.get_initials()
id = file.get_id()
new_file_code = "%s%s" % (id, initials)
if file_code == new_file_code:
continue
print "-"*20
print "switching: ", file_code, "to", new_file_code
snapshot_code = file.get_value("snapshot_code")
snapshot = Snapshot.get_by_code(snapshot_code)
assert snapshot
snapshot_xml = snapshot.get_xml_value("snapshot")
print snapshot_xml.to_string()
node = snapshot_xml.get_node("snapshot/file[@file_code='%s']" % file_code)
Xml.set_attribute(node, "file_code", new_file_code)
print snapshot_xml.to_string()
assert node
# set the file_code
file.set_value("code", new_file_code)
file.commit()
# set the snapshot
snapshot.set_value("snapshot", snapshot_xml.to_string() )
snapshot.commit()
示例13: get_xml_value
def get_xml_value(my):
if my.sobject.has_value(my.name):
return my.sobject.get_xml_value( my.name )
else:
from pyasm.biz import Snapshot
return Snapshot.get_latest_by_sobject(\
my.sobject).get_xml_value( my.name )
示例14: get_message
def get_message(my):
search_type_obj = my.sobject.get_search_type_obj()
title = search_type_obj.get_title()
notification_message = my.notification.get_value("message")
message = "%s %s" % (title, my.sobject.get_name())
if notification_message:
message = "%s (%s)" %(message, notification_message)
update_desc = my.sobject.get_update_description()
parent_search_type = my.sobject.get_value('search_type')
grand_parent = None
if 'prod/submission' in parent_search_type:
parent = Search.get_by_id(parent_search_type, my.sobject.get_value('search_id') )
snapshot = Snapshot.get_latest_by_sobject(parent, 'publish')
if snapshot:
file_name = snapshot.get_file_name_by_type('main')
update_desc = '%s \n %s \n' %(update_desc, file_name)
grand_parent = parent.get_parent()
if grand_parent:
update_desc = '%s %s'%(update_desc, grand_parent.get_code())
command_desc = my.command.get_description()
message = '%s\n\nReport from transaction:\n%s\n\n%s' \
% (message, update_desc, command_desc)
return message
示例15: get_path_from_sobject
def get_path_from_sobject(my, sobject):
icon_path = None
path = None
base_search_type = sobject.get_base_search_type()
if base_search_type == "sthpw/snapshot":
#sobject = sobject.get_parent()
snapshot = sobject
else:
search_type = sobject.get_search_type()
search_code = sobject.get_value("code", no_exception=True)
if not search_code:
search_code = sobject.get_id()
# FIXME: make this faster
snapshot = Snapshot.get_snapshot(search_type, search_code, process=['icon','publish',''])
if snapshot:
file_type = "web"
icon_path = snapshot.get_web_path_by_type(file_type)
file_type = "main"
path = snapshot.get_web_path_by_type(file_type)
if icon_path:
path = icon_path
elif path:
path = my.find_icon_link(path)
return path