當前位置: 首頁>>代碼示例>>Python>>正文


Python CommonUtils.treeIDTableName方法代碼示例

本文整理匯總了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)
開發者ID:HeinerTholen,項目名稱:cmssw,代碼行數:100,代碼來源:DBCopy.py

示例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)
開發者ID:HeinerTholen,項目名稱:cmssw,代碼行數:33,代碼來源:DBCopy.py


注:本文中的CommonUtils.treeIDTableName方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。