本文整理匯總了Python中CommonUtils.treeIDTableName方法的典型用法代碼示例。如果您正苦於以下問題:Python CommonUtils.treeIDTableName方法的具體用法?Python CommonUtils.treeIDTableName怎麽用?Python CommonUtils.treeIDTableName使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類CommonUtils
的用法示例。
在下文中一共展示了CommonUtils.treeIDTableName方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: copyTrees
# 需要導入模塊: import CommonUtils [as 別名]
# 或者: from CommonUtils import treeIDTableName [as 別名]
def copyTrees( self, treenames ):
"""copy tree from an external source.
Merge inventory if existing in the destination
"""
allleafs=[]
for treename in treenames:
t=TagTree.tagTree(self.__sourcesession,treename)
allleafs.append(t.getAllLeaves())
#create a unique tag list
merged={}
for s in allleafs:
for x in s:
merged[x.tagid]=1
sourceinv=tagInventory.tagInventory(self.__sourcesession)
sourcetags=sourceinv.getAllEntries()
entries=[]
for i in merged.keys():
for n in sourcetags:
if n.tagid==i:
entry={}
entry['tagid']=i
entry['tagname']=n.tagname
entry['pfn']=n.pfn
entry['recordname']=n.recordname
entry['objectname']=n.objectname
entry['labelname']=n.labelname
entries.append(entry)
inv=tagInventory.tagInventory(self.__destsession)
tagiddict=inv.bulkInsertEntries(entries)
dest_transaction=self.__destsession.transaction()
source_transaction=self.__sourcesession.transaction()
#copy table contents
try:
for treename in treenames:
desttree=TagTree.tagTree(self.__destsession,treename)
desttree.createTagTreeTable()
dest_transaction.start(False)
source_transaction.start(True)
#copy tree tables
data=coral.AttributeList()
dest_editor=self.__destsession.nominalSchema().tableHandle(CommonUtils.treeTableName(treename)).dataEditor()
source_query=self.__sourcesession.nominalSchema().tableHandle(CommonUtils.treeTableName(treename)).newQuery()
conditionData=coral.AttributeList()
source_query.setCondition('',conditionData)
source_query.setRowCacheSize(self.__rowcachesize)
dest_editor.rowBuffer(data)
source_query.defineOutput(data)
bulkOperation=dest_editor.bulkInsert(data,self.__rowcachesize)
cursor=source_query.execute()
while cursor.next():
bulkOperation.processNextIteration()
bulkOperation.flush()
del bulkOperation
del source_query
#copy id tables
iddata=coral.AttributeList()
dest_editor=self.__destsession.nominalSchema().tableHandle(CommonUtils.treeIDTableName(treename)).dataEditor()
source_query=self.__sourcesession.nominalSchema().tableHandle(CommonUtils.treeIDTableName(treename)).newQuery()
conditionData=coral.AttributeList()
source_query.setCondition('',conditionData)
source_query.setRowCacheSize(self.__rowcachesize)
dest_editor.rowBuffer(iddata)
source_query.defineOutput(iddata)
bulkOperation=dest_editor.bulkInsert(iddata,self.__rowcachesize)
cursor=source_query.execute()
while cursor.next():
bulkOperation.processNextIteration()
bulkOperation.flush()
del bulkOperation
del source_query
#copy comment tables if exist
if self.__sourcesession.nominalSchema().existsTable(CommonUtils.commentTableName()):
data=coral.AttributeList()
dest_editor=self.__destsession.nominalSchema().tableHandle(CommonUtils.commentTableName()).dataEditor()
source_query=self.__sourcesession.nominalSchema().tableHandle(CommonUtils.commentTableName()).newQuery()
conditionData=coral.AttributeList()
source_query.setCondition('tablename = :tablename',conditionData)
conditionData.extend('tablename','string')
conditionData['tablename'].setData(CommonUtils.treeTableName(treename))
source_query.setRowCacheSize(self.__rowcachesize)
dest_editor.rowBuffer(data)
source_query.defineOutput(data)
bulkOperation=dest_editor.bulkInsert(data,self.__rowcachesize)
cursor=source_query.execute()
while cursor.next():
bulkOperation.processNextIteration()
bulkOperation.flush()
del bulkOperation
del source_query
source_transaction.commit()
dest_transaction.commit()
#fix leaf node links
desttree.replaceLeafLinks(tagiddict)
except Exception, e:
source_transaction.rollback()
dest_transaction.rollback()
raise Exception, str(e)
示例2:
# 需要導入模塊: import CommonUtils [as 別名]
# 或者: from CommonUtils import treeIDTableName [as 別名]
raise 'Error: '+CommonUtils.inventoryIDTableName()+' does not exist'
try:
i = tablelist.index(CommonUtils.commentTableName())
alltablelist.append(CommonUtils.commentTableName())
except ValueError:
pass
for tablename in tablelist:
posbeg=tablename.find('TAGTREE_TABLE_')
if posbeg != -1:
treename=tablename[posbeg+len('TAGTREE_TABLE_'):]
trees.append(treename)
for tree in trees:
try:
tablelist.index(CommonUtils.treeIDTableName(tree))
except ValueError:
print 'non-existing id table for tree ',tree
continue
alltablelist.append(CommonUtils.treeTableName(tree))
alltablelist.append(CommonUtils.treeIDTableName(tree))
#schema preparation
inv=tagInventory.tagInventory(self.__destsession)
inv.createInventoryTable()
for treename in trees:
t=TagTree.tagTree(self.__destsession,treename)
t.createTagTreeTable()
#copy table contents
try:
for mytable in alltablelist:
dest_transaction.start(False)