本文整理汇总了Python中vistrails.db.domain.IdScope.getNewId方法的典型用法代码示例。如果您正苦于以下问题:Python IdScope.getNewId方法的具体用法?Python IdScope.getNewId怎么用?Python IdScope.getNewId使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类vistrails.db.domain.IdScope
的用法示例。
在下文中一共展示了IdScope.getNewId方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_action
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_action(self, id_scope=None):
from vistrails.core.modules.basic_modules import identifier as basic_pkg
from vistrails.core.vistrail.action import Action
from vistrails.core.vistrail.module import Module
from vistrails.core.vistrail.module_function import ModuleFunction
from vistrails.core.vistrail.module_param import ModuleParam
from vistrails.core.vistrail.operation import AddOp
from vistrails.db.domain import IdScope
from datetime import datetime
if id_scope is None:
id_scope = IdScope()
param = ModuleParam(id=id_scope.getNewId(ModuleParam.vtType),
type='Integer',
val='1')
function = ModuleFunction(id=id_scope.getNewId(ModuleFunction.vtType),
name='value',
parameters=[param])
m = Module(id=id_scope.getNewId(Module.vtType),
name='Float',
package=basic_pkg,
functions=[function])
add_op = AddOp(id=id_scope.getNewId('operation'),
what='module',
objectId=m.id,
data=m)
action = Action(id=id_scope.getNewId(Action.vtType),
prevId=0,
date=datetime(2007,11,18),
operations=[add_op])
return action
示例2: create_ops
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_ops(self, id_scope=IdScope()):
from vistrails.core.modules.basic_modules import identifier as basic_pkg
from vistrails.core.vistrail.module import Module
from vistrails.core.vistrail.module_function import ModuleFunction
from vistrails.core.vistrail.module_param import ModuleParam
from vistrails.core.vistrail.annotation import Annotation
if id_scope is None:
id_scope = IdScope(remap={AddOp.vtType: 'operation',
ChangeOp.vtType: 'operation',
DeleteOp.vtType: 'operation'})
m = Module(id=id_scope.getNewId(Module.vtType),
name='Float',
package=basic_pkg)
add_op = AddOp(id=id_scope.getNewId(AddOp.vtType),
what=Module.vtType,
objectId=m.id,
data=m)
function = ModuleFunction(id=id_scope.getNewId(ModuleFunction.vtType),
name='value')
change_op = ChangeOp(id=id_scope.getNewId(ChangeOp.vtType),
what=ModuleFunction.vtType,
oldObjId=2,
newObjId=function.real_id,
parentObjId=m.id,
parentObjType=Module.vtType,
data=function)
param = ModuleParam(id=id_scope.getNewId(ModuleParam.vtType),
type='Float',
val='1.0')
delete_op = DeleteOp(id=id_scope.getNewId(DeleteOp.vtType),
what=ModuleParam.vtType,
objectId=param.real_id,
parentObjId=function.real_id,
parentObjType=ModuleFunction.vtType)
annotation = Annotation(id=id_scope.getNewId(Annotation.vtType),
key='foo',
value='bar')
add_annotation = AddOp(id=id_scope.getNewId(AddOp.vtType),
what=Annotation.vtType,
objectId=m.id,
data=annotation)
cparam = ModuleControlParam(id=id_scope.getNewId(ModuleControlParam.vtType),
name='foo',
value='bar')
add_cparam = AddOp(id=id_scope.getNewId(AddOp.vtType),
what=ModuleControlParam.vtType,
objectId=m.id,
data=cparam)
return [add_op, change_op, delete_op, add_annotation]
示例3: create_annotation
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_annotation(self, id_scope=None):
from vistrails.db.domain import IdScope
if id_scope is None:
id_scope = IdScope()
annotation = Annotation(id=id_scope.getNewId(Annotation.vtType), key="akey %s", value="some value %s")
return annotation
示例4: create_module
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_module(self, id_scope=None):
from vistrails.core.modules.basic_modules import identifier as basic_pkg
from vistrails.db.domain import IdScope
if id_scope is None:
id_scope = IdScope()
params = [ModuleParam(id=id_scope.getNewId(ModuleParam.vtType),
type='Int',
val='1')]
functions = [ModuleFunction(id=id_scope.getNewId(ModuleFunction.vtType),
name='value',
parameters=params)]
module = Module(id=id_scope.getNewId(Module.vtType),
name='Float',
package=basic_pkg,
functions=functions)
return module
示例5: create_annotation
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_annotation(self, id_scope=None):
from vistrails.db.domain import IdScope
if id_scope is None:
id_scope = IdScope()
annotation = ActionAnnotation(
id=id_scope.getNewId(ActionAnnotation.vtType), key="akey", action_id=1L, value="some value", user="test"
)
return annotation
示例6: create_control_parameter
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_control_parameter(self, id_scope=None):
from vistrails.db.domain import IdScope
if id_scope is None:
id_scope = IdScope()
control_parameter = ModuleControlParam(id=id_scope.getNewId(ModuleControlParam.vtType),
name='name %s',
value='some value %s')
return control_parameter
示例7: create_annotation
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def create_annotation(self, id_scope=None):
from vistrails.db.domain import IdScope
if id_scope is None:
id_scope = IdScope()
annotation = \
ActionAnnotation(id=id_scope.getNewId(ActionAnnotation.vtType),
key='akey', action_id=1L,
value='some value', user='test')
return annotation
示例8: createMashupController
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def createMashupController(self, vt_controller, version, view=DummyView()):
#print "Manager creating mashup controller ", vt_controller, version
newvt_controller = MashupsManager.copyVistrailController(vt_controller,
view)
mashuptrail = \
MashupsManager.getMashuptrailforVersionInVistrailController(vt_controller,
version)
if mashuptrail is None:
(p_mashuptrail, p_version) = \
MashupsManager.findClosestParentMashuptrail(vt_controller,
version)
id_scope = IdScope(1L)
if p_mashuptrail is not None:
version_name = vt_controller.get_pipeline_name(p_version)
(res, mshpv) = MashupsManager.showFoundMashupsDialog(p_mashuptrail,
version_name)
if res in ['Copy', 'Move']:
pipeline = newvt_controller.vistrail.getPipeline(version)
if res == 'Copy':
# we will copy the mashup from the parent trail and
# validate it to the current pipeline before adding
# to the current mashup trail
mashuptrail = Mashuptrail(self.getNewMashuptrailId(),
version, id_scope)
p_mashup = p_mashuptrail.getMashup(mshpv)
mashup = p_mashup.do_copy()
mashup.id_scope = id_scope
mashup.version = version
mashup.validateForPipeline(pipeline)
currVersion = mashuptrail.addVersion(
parent_id=mashuptrail.getLatestVersion(),
mashup=mashup,
user=vistrails.core.system.current_user(),
date=vistrails.core.system.current_time())
mashuptrail.currentVersion = currVersion
mashuptrail.updateIdScope()
p_tag = p_mashuptrail.getTagForActionId(mshpv)
if p_tag == '':
tag = "<latest>"
tag = "Copy from %s"%p_tag
MashupsManager.addMashuptrailtoVistrailController(vt_controller,
mashuptrail)
elif res == 'Move':
# we will move the parent trail and validate all mashups
# for the current pipeline to make sure they will be
# executable for the current version
mashuptrail = p_mashuptrail
currVersion = mashuptrail.getLatestVersion()
mashuptrail.currentVersion = currVersion
mashuptrail.validateMashupsForPipeline(version, pipeline)
tag = None
mashuptrail.vtVersion = version
mshpController = MashupController(vt_controller,
newvt_controller,
version, mashuptrail)
mshpController.setCurrentVersion(mashuptrail.currentVersion)
# this is to make sure the pipeline displayed in the mashup
# view is consistent with the list of aliases in the central
# panel
mshpController.updatePipelineAliasesFromCurrentMashup()
if tag is not None:
mshpController.updateCurrentTag(tag)
return mshpController
mashuptrail = Mashuptrail(self.getNewMashuptrailId(), version,
id_scope)
pipeline = newvt_controller.vistrail.getPipeline(version)
id = id_scope.getNewId('mashup')
mashup = Mashup(id=id, name="mashup%s"%id, vtid=vt_controller.locator,
version=version)
mashup.loadAliasesFromPipeline(pipeline, id_scope)
currVersion = mashuptrail.addVersion(parent_id=mashuptrail.getLatestVersion(),
mashup=mashup,
user=vistrails.core.system.current_user(),
date=vistrails.core.system.current_time())
mashuptrail.currentVersion = currVersion
MashupsManager.addMashuptrailtoVistrailController(vt_controller,
mashuptrail)
mshpController = MashupController(vt_controller,
newvt_controller,
version, mashuptrail)
mshpController.setCurrentVersion(mashuptrail.currentVersion)
if mshpController.currentVersion == 1L:
mshpController.updateCurrentTag("ROOT")
else:
#print "----> found mashuptrail ", mashuptrail.currentVersion
mshpController = MashupController(vt_controller,
newvt_controller,
version, mashuptrail)
mshpController.setCurrentVersion(mashuptrail.currentVersion)
mshpController.updatePipelineAliasesFromCurrentMashup()
return mshpController
示例9: updateFunctionPort
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def updateFunctionPort(self):
"""
Function to be used inside the updateUsptream method of the Map module. It
updates the module connected to the FunctionPort port, executing it in
parallel.
"""
nameInput = self.getInputFromPort('InputPort')
nameOutput = self.getInputFromPort('OutputPort')
rawInputList = self.getInputFromPort('InputList')
# Create inputList to always have iterable elements
# to simplify code
if len(nameInput) == 1:
element_is_iter = False
inputList = [[element] for element in rawInputList]
else:
element_is_iter = True
inputList = rawInputList
workflows = []
module = None
vtType = None
# iterating through the connectors
for connector in self.inputPorts.get('FunctionPort'):
module = connector.obj
# pipeline
original_pipeline = connector.obj.moduleInfo['pipeline']
# module
module_id = connector.obj.moduleInfo['moduleId']
vtType = original_pipeline.modules[module_id].vtType
# serialize the module for each value in the list
for i, element in enumerate(inputList):
if element_is_iter:
self.element = element
else:
self.element = element[0]
# checking type and setting input in the module
self.typeChecking(connector.obj, nameInput, inputList)
self.setInputValues(connector.obj, nameInput, element)
pipeline_db_module = original_pipeline.modules[module_id].do_copy()
# transforming a subworkflow in a group
# TODO: should we also transform inner subworkflows?
if pipeline_db_module.is_abstraction():
group = Group(id=pipeline_db_module.id,
cache=pipeline_db_module.cache,
location=pipeline_db_module.location,
functions=pipeline_db_module.functions,
annotations=pipeline_db_module.annotations)
source_port_specs = pipeline_db_module.sourcePorts()
dest_port_specs = pipeline_db_module.destinationPorts()
for source_port_spec in source_port_specs:
group.add_port_spec(source_port_spec)
for dest_port_spec in dest_port_specs:
group.add_port_spec(dest_port_spec)
group.pipeline = pipeline_db_module.pipeline
pipeline_db_module = group
# getting highest id between functions to guarantee unique ids
# TODO: can get current IdScope here?
if pipeline_db_module.functions:
high_id = max(function.db_id
for function in pipeline_db_module.functions)
else:
high_id = 0
# adding function and parameter to module in pipeline
# TODO: 'pos' should not be always 0 here
id_scope = IdScope(beginId=long(high_id+1))
for elementValue, inputPort in izip(element, nameInput):
p_spec = pipeline_db_module.get_port_spec(inputPort, 'input')
descrs = p_spec.descriptors()
if len(descrs) != 1:
raise ModuleError(
self,
"Tuple input ports are not supported")
if not issubclass(descrs[0].module, Constant):
raise ModuleError(
self,
"Module inputs should be Constant types")
type = p_spec.sigstring[1:-1]
mod_function = ModuleFunction(id=id_scope.getNewId(ModuleFunction.vtType),
pos=0,
name=inputPort)
mod_param = ModuleParam(id=0L,
pos=0,
type=type,
val=elementValue)
mod_function.add_parameter(mod_param)
#.........这里部分代码省略.........
示例10: Mashuptrail
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
#.........这里部分代码省略.........
def changeTag(self, action_id, name, user, date):
if self.hasTagWithName(name):
return False
if self.hasTagForActionId(action_id):
self.removeTagByActionId(action_id)
return self.addTag(action_id, name, user, date)
def addTag(self, action_id, name, user, date):
if not self.hasTagWithName(name):
self.addActionAnnotation(action_id=action_id, key="__tag__",
value=name, user=user, date=date)
return True
return False
def removeTagByActionId(self, action_id):
found = None
for a in self.actionAnnotations:
if a.key == "__tag__" and a.action_id == action_id:
found = a
break
if found:
self.actionAnnotations.remove(found)
def getTagMap(self):
"""getTagMap() -> dict of tag:action_id"""
tagMap = {}
for a in self.actionAnnotations:
if a.key == "__tag__":
tagMap[a.value] = a.action_id
return tagMap
def addActionAnnotation(self, action_id, key, value, user, date):
id = self.id_scope.getNewId("mashup_actionAnnotation")
annot = ActionAnnotation(id=id, action_id=action_id, key=key,
value=value, user=user, date=date)
self.actionAnnotations.append(annot)
##########################################################################
# Operators
def __str__(self):
""" __str__() -> str - Returns a string representation of itself """
return ("(Mashuptrail id='%s' vtVersion='%s' actions='%s')@%X" %
(self.id,
self.vtVersion,
self.actions,
id(self)))
######################################################################
## Serialization and Unserialization
##
# def toXml(self, node=None):
# """toXml(node: ElementTree.Element) -> ElementTree.Element
# writes itself to xml
# """
#
# if node is None:
# node = ElementTree.Element('mashuptrail')
#
# #set attributes
# node.set('id', self.convert_to_str(self.id, 'uuid'))
# node.set('vtVersion', self.convert_to_str(self.vtVersion,'long'))
# node.set('version', self.convert_to_str(self.version, 'str'))
示例11: create_opm
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
#.........这里部分代码省略.........
function_artifacts = {}
module_processes = {}
print ' upstream_lookup:'
lookup = upstream_lookup
for id, name_list in lookup.iteritems():
print ' ', id, ':', name_list.keys()
print ' downstream_lookup:'
lookup = downstream_lookup
for id, name_list in lookup.iteritems():
print ' ', id, ':', name_list.keys()
# print ' upstream_lookup:', upstream_lookup
# print ' downstream_lookup:', downstream_lookup
if top_version:
for workflow_exec in parent_exec.db_workflow_execs:
if workflow_exec.db_parent_version != version:
continue
conn_artifacts = {}
function_artifacts = {}
module_processes = {}
upstream_artifacts = {}
downstream_artifacts = {}
for item_exec in workflow_exec.db_item_execs:
do_create_process(workflow, item_exec, account,
module_processes)
for item_exec in workflow_exec.db_item_execs:
process_exec(item_exec, workflow, account,
upstream_lookup, downstream_lookup,
depth, conn_artifacts, function_artifacts,
module_processes,
upstream_artifacts, downstream_artifacts)
else:
for item_exec in parent_exec.db_item_execs:
do_create_process(workflow, item_exec, account,
module_processes)
for item_exec in parent_exec.db_item_execs:
process_exec(item_exec, workflow, account, upstream_lookup,
downstream_lookup, depth, conn_artifacts,
function_artifacts, module_processes,
upstream_artifacts, downstream_artifacts)
account_id = id_scope.getNewId(DBOpmAccount.vtType)
account = DBOpmAccount(id='acct' + str(account_id),
value=str(0))
accounts.append(account)
depth_accounts[0] = account
process_workflow(workflow, log, account, {}, {}, 0, True)
#print processes
#print dependencies
max_depth = max(depth_accounts)
def add_finer_depths(objs, exclude_groups=False, exclude_deps=False,
p_ids=set()):
new_p_ids = []
for obj in objs:
can_update=True
if exclude_groups:
if obj.db_value.db_value.vtType == DBGroupExec.vtType:
new_p_ids.append(obj.db_id)
can_update = False
elif obj.db_value.db_value.vtType == DBModuleExec.vtType and \
len(obj.db_value.db_value.db_loop_execs) > 0:
new_p_ids.append(obj.db_id)
can_update = False
if exclude_deps:
if ((obj.vtType == DBOpmWasGeneratedBy.vtType and
obj.db_cause.db_id in p_ids) or
(obj.vtType == DBOpmUsed.vtType and
obj.db_effect.db_id in p_ids)):
can_update = False
if can_update:
min_depth = int(obj.db_accounts[0].db_id[4:])
for i in xrange(min_depth+1, max_depth+1):
obj.db_add_account(DBOpmAccountId(id='acct' + str(i)))
return new_p_ids
# FIXME: also exclude group dependencies (used, wasGeneratedBy)...
p_ids = add_finer_depths(processes, True)
print p_ids
add_finer_depths(artifacts)
add_finer_depths(dependencies, False, True, set(p_ids))
overlaps = []
for i in xrange(max_depth+1):
for j in xrange(i+1, max_depth+1):
ids = [DBOpmAccountId(id='acct' + str(i)),
DBOpmAccountId(id='acct' + str(j))]
overlaps.append(DBOpmOverlaps(opm_account_ids=ids))
opm_graph = DBOpmGraph(accounts=DBOpmAccounts(accounts=accounts,
opm_overlapss=overlaps),
processes=DBOpmProcesses(processs=processes),
artifacts=\
DBOpmArtifacts(artifacts=artifacts),
dependencies=\
DBOpmDependencies(dependencys=dependencies),
)
return opm_graph
示例12: execute
# 需要导入模块: from vistrails.db.domain import IdScope [as 别名]
# 或者: from vistrails.db.domain.IdScope import getNewId [as 别名]
def execute(self, *args, **kwargs):
"""Execute the pipeline.
Positional arguments are either input values (created from
``module == value``, where `module` is a Module from the pipeline and
`value` is some value or Function instance) for the pipeline's
InputPorts, or Module instances (to select sink modules).
Keyword arguments are also used to set InputPort by looking up inputs
by name.
Example::
input_bound = pipeline.get_input('higher_bound')
input_url = pipeline.get_input('url')
sinkmodule = pipeline.get_module(32)
pipeline.execute(sinkmodule,
input_bound == vt.Function(Integer, 10),
input_url == 'http://www.vistrails.org/',
resolution=15) # kwarg: only one equal sign
"""
sinks = set()
inputs = {}
reg = get_module_registry()
InputPort_desc = reg.get_descriptor_by_name(
get_vistrails_basic_pkg_id(),
'InputPort')
# Read args
for arg in args:
if isinstance(arg, ModuleValuePair):
if arg.module.id in inputs:
raise ValueError(
"Multiple values set for InputPort %r" %
get_inputoutput_name(arg.module))
if not reg.is_descriptor_subclass(arg.module.module_descriptor,
InputPort_desc):
raise ValueError("Module %d is not an InputPort" %
arg.module.id)
inputs[arg.module.id] = arg.value
elif isinstance(arg, Module):
sinks.add(arg.module_id)
# Read kwargs
for key, value in kwargs.iteritems():
key = self.get_input(key) # Might raise KeyError
if key.module_id in inputs:
raise ValueError("Multiple values set for InputPort %r" %
get_inputoutput_name(key.module))
inputs[key.module_id] = value
reason = "API pipeline execution"
sinks = sinks or None
# Use controller only if no inputs were passed in
if (not inputs and self.vistrail is not None and
self.vistrail.current_version == self.version):
controller = self.vistrail.controller
results, changed = controller.execute_workflow_list([[
controller.locator, # locator
self.version, # version
self.pipeline, # pipeline
DummyView(), # view
None, # custom_aliases
None, # custom_params
reason, # reason
sinks, # sinks
None, # extra_info
]])
result, = results
else:
pipeline = self.pipeline
if inputs:
id_scope = IdScope(1)
pipeline = pipeline.do_copy(False, id_scope)
# A hach to get ids from id_scope that we know won't collide:
# make them negative
id_scope.getNewId = lambda t, g=id_scope.getNewId: -g(t)
create_module = \
VistrailController.create_module_from_descriptor_static
create_function = VistrailController.create_function_static
create_connection = VistrailController.create_connection_static
# Fills in the ExternalPipe ports
for module_id, values in inputs.iteritems():
module = pipeline.modules[module_id]
if not isinstance(values, (list, tuple)):
values = [values]
# Guess the type of the InputPort
_, sigstrings, _, _, _ = get_port_spec_info(pipeline, module)
sigstrings = parse_port_spec_string(sigstrings)
# Convert whatever we got to a list of strings, for the
# pipeline
values = [reg.convert_port_val(val, sigstring, None)
for val, sigstring in izip(values, sigstrings)]
#.........这里部分代码省略.........