本文整理汇总了Python中soma_workflow.client.Helper.serialize方法的典型用法代码示例。如果您正苦于以下问题:Python Helper.serialize方法的具体用法?Python Helper.serialize怎么用?Python Helper.serialize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类soma_workflow.client.Helper
的用法示例。
在下文中一共展示了Helper.serialize方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create_workflow
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
def create_workflow(inp, out, names = None, verbose=False):
if not osp.isfile(inp):
raise Exception('File not found %s'%inp)
commands = [e.rstrip('\n').split(' ') for e in open(inp).readlines()]
if verbose:
print commands
names = ['job_%s'%i for i in xrange(len(commands))] if names is None else names
jobs = [Job(command=cmd, name=name) for cmd, name in zip(commands, names)]
workflow = Workflow(jobs=jobs, dependencies=[])
Helper.serialize(out, workflow)
示例2: export_to_gui
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
def export_to_gui(self, soma_workflow_dirpath, **Xy):
"""
Example
-------
see the directory of "examples/run_somaworkflow_gui.py" in epac
"""
try:
from soma_workflow.client import Job, Workflow
from soma_workflow.client import Helper, FileTransfer
except ImportError:
errmsg = (
"No soma-workflow is found. " "Please verify your soma-worklow" "on your computer (e.g. PYTHONPATH) \n"
)
sys.stderr.write(errmsg)
sys.stdout.write(errmsg)
raise NoSomaWFError
if not os.path.exists(soma_workflow_dirpath):
os.makedirs(soma_workflow_dirpath)
tmp_work_dir_path = soma_workflow_dirpath
cur_work_dir = os.getcwd()
os.chdir(tmp_work_dir_path)
ft_working_directory = FileTransfer(is_input=True, client_path=tmp_work_dir_path, name="working directory")
## Save the database and tree to working directory
## ===============================================
# np.savez(os.path.join(tmp_work_dir_path,
# SomaWorkflowEngine.dataset_relative_path), **Xy)
db_size = estimate_dataset_size(**Xy)
db_size = int(db_size / (1024 * 1024)) # convert it into mega byte
save_dataset(SomaWorkflowEngine.dataset_relative_path, **Xy)
store = StoreFs(dirpath=os.path.join(tmp_work_dir_path, SomaWorkflowEngine.tree_root_relative_path))
self.tree_root.save_tree(store=store)
## Subtree job allocation on disk
## ==============================
node_input = NodesInput(self.tree_root.get_key())
split_node_input = SplitNodesInput(self.tree_root, num_processes=self.num_processes)
nodesinput_list = split_node_input.split(node_input)
keysfile_list = self._save_job_list(tmp_work_dir_path, nodesinput_list)
## Build soma-workflow
## ===================
jobs = self._create_jobs(keysfile_list, is_run_local=False, ft_working_directory=ft_working_directory)
soma_workflow = Workflow(jobs=jobs)
if soma_workflow_dirpath and soma_workflow_dirpath != "":
out_soma_workflow_file = os.path.join(
soma_workflow_dirpath, SomaWorkflowEngine.open_me_by_soma_workflow_gui
)
Helper.serialize(out_soma_workflow_file, soma_workflow)
os.chdir(cur_work_dir)
示例3: test_serialization
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
def test_serialization(self):
simple_wf_examples = workflow_local.WorkflowExamplesLocal()
tr_wf_examples = workflow_transfer.WorkflowExamplesTransfer()
srp_wf_examples = workflow_shared.WorkflowExamplesShared()
self.temporaries += [simple_wf_examples.output_dir,
tr_wf_examples.output_dir,
srp_wf_examples.output_dir]
workflows = []
workflows.append(("multiple", simple_wf_examples.example_multiple()))
workflows.append(("special_command",
simple_wf_examples.example_special_command()))
workflows.append(("mutiple_transfer",
tr_wf_examples.example_multiple()))
workflows.append(("special_command_transfer",
tr_wf_examples.example_special_command()))
workflows.append(("special_transfer",
tr_wf_examples.example_special_transfer()))
workflows.append(("mutiple_srp", srp_wf_examples.example_multiple()))
workflows.append(("special_command_srp",
srp_wf_examples.example_special_command()))
for workflow_name, workflow in workflows:
print("Testing", workflow_name)
file_path = tempfile.mkstemp(prefix="json_",
suffix=workflow_name + ".wf")
os.close(file_path[0])
file_path = file_path[1]
Helper.serialize(file_path, workflow)
new_workflow = Helper.unserialize(file_path)
self.assertTrue(new_workflow.attributs_equal(workflow),
"Serialization failed for workflow %s" %
workflow_name)
try:
os.remove(file_path)
except IOError:
pass
示例4: test_serialization
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
def test_serialization(self):
directory = "/tmp/"
simple_wf_examples = workflow_local.WorkflowExamplesLocal()
tr_wf_examples = workflow_transfer.WorkflowExamplesTransfer()
srp_wf_examples = workflow_shared.WorkflowExamplesShared()
workflows = []
workflows.append(("multiple", simple_wf_examples.example_multiple()))
workflows.append(("special_command",
simple_wf_examples.example_special_command()))
workflows.append(("mutiple_transfer",
tr_wf_examples.example_multiple()))
workflows.append(("special_command_transfer",
tr_wf_examples.example_special_command()))
workflows.append(("special_transfer",
tr_wf_examples.example_special_transfer()))
workflows.append(("mutiple_srp", srp_wf_examples.example_multiple()))
workflows.append(("special_command_srp",
srp_wf_examples.example_special_command()))
for workflow_name, workflow in workflows:
print "Testing", workflow_name
file_path = os.path.join(directory,
"json_" + workflow_name + ".wf")
Helper.serialize(file_path, workflow)
new_workflow = Helper.unserialize(file_path)
self.assertTrue(new_workflow.attributs_equal(workflow),
"Serialization failed for workflow %s" %
workflow_name)
try:
os.remove(file_path)
except IOError:
pass
示例5: save_wf
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
def save_wf(wf, output_file, mode="soma-workflow"):
"""Save the workflow in a file.
Support simple JSON commands list (cmd-list) or soma-workflow.
Parameters:
----------
wf : tuple (cmd-dict, dependancies),
Workflow to save.
output_file : str,
filename for the workflow.
mode : str in ["soma-workflow", "cmd_list"],
optional (default="soma-workflow")
format to save the workflow.
"""
cmd = wf[0]
dep_orig = wf[1]
if mode == "soma-workflow":
from soma_workflow.client import Job, Workflow, Helper
for k, v in cmd.iteritems():
cmd[k] = Job(command=v, name=k)
dep = [((cmd[a], cmd[b])) for a, b in dep_orig]
jobs = np.asarray(cmd.values())[np.argsort(cmd.keys())]
workflow = Workflow(jobs=jobs.tolist(),
dependencies=dep)
Helper.serialize(output_file, workflow)
return workflow
elif mode == "cmd-list":
import json
for k, v in cmd.iteritems():
cmd[k] = " ".join(v)
with open(output_file, 'w') as fd:
json.dump(dict(cmd=cmd, dep=dep_orig), fd, indent=True)
return cmd
else:
raise TypeError("Invalid workflow mode \'{}\'".format(mode))
示例6: open
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
with open(name_file, 'w') as python_file:
python_file.write(body)
###############################################################################
# create workflow
jobs = []
for i in range(len(Listfile)):
JobVar = Job(command=['python', Listfile[i]], name = ListJobName[i],
native_specification = '-l walltime=4:00:00, -l nodes=1:ppn=2')
jobs.append(JobVar)
# define dependancies (tuples of two jobs)
# the second job will be executed after the first
# here, plot the grand average after having written evoked for each subject
n = len(ListSubject)
dependencies = [(jobs[c*n + s + c],jobs[(c + 1)*n + c])
for s,subject in enumerate(ListSubject)
for c,condcouple in enumerate(ListCondition)]
# save the workflow into a file
WfVar = Workflow(jobs=jobs, dependencies=dependencies)
somaWF_name = os.path.join(wdir, 'somawf/workflows/DEMO_WF')
Helper.serialize(somaWF_name, WfVar)
示例7: len
# 需要导入模块: from soma_workflow.client import Helper [as 别名]
# 或者: from soma_workflow.client.Helper import serialize [as 别名]
2. copy all the spm batch files in the directory containing the
following python script; then run
python create_workflow_spm12batches.py
This must generate a file called 'spm12_batches.somawf'
3. Launch soma_workflow_gui on he command line in the same directory;
open the spm12_batches.somawf file and press 'submit'
Note: use your own PC if there are many cores.
"""
import os, sys, glob
from soma_workflow.client import Job, Workflow, Helper
if len(sys.argv)==1:
spm12_batches = glob.glob("*.mat")
else:
spm12_batches = sys.argv[1:]
jobs = []
for b in spm12_batches:
jobs.append(Job(command=["spm12", "run", os.path.abspath(b)], name=b))
workflow=Workflow(jobs)
Helper.serialize('spm12_batches.somawf', workflow)
print '''Now, you can open 'spm12_batches.somawf' in soma_workflow_gui and submit it'''