rbbt-util 5.36.0 → 5.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/rbbt/util/concurrency/processes/socket.rb +1 -0
- data/lib/rbbt/util/concurrency/processes/worker.rb +1 -5
- data/lib/rbbt/util/concurrency/processes.rb +29 -24
- data/lib/rbbt/util/misc/inspect.rb +2 -2
- data/lib/rbbt/workflow/dependencies.rb +26 -4
- data/lib/rbbt/workflow/remote_workflow/driver/ssh.rb +8 -6
- data/lib/rbbt/workflow/remote_workflow/remote_step/ssh.rb +13 -0
- data/lib/rbbt/workflow/step/dependencies.rb +15 -9
- data/lib/rbbt/workflow/step/run.rb +3 -1
- data/lib/rbbt/workflow.rb +3 -1
- data/share/rbbt_commands/workflow/task +7 -3
- metadata +87 -143
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 281f115df5158fada081c65b87e292e69e4f378b8353d6e2542b3c45db0c03f1
|
4
|
+
data.tar.gz: e9801707391c731a2a4b4ead8156cff82fdf30c4e769a8bed34d1d77185b447a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3da2876b28c245b27f32b6dbd00188bdeea498fb118ccab048fb5d72925548e5e89926dea6b6316573e9d95a570c07983109e0e09de92360ec89ab2aec088439
|
7
|
+
data.tar.gz: 0166d47c3198bfc4c636a1f47ac9be1d2a64b8d97a2836166b02d1ac17d46c2b835ad210953da586f15a98f8593e18f6010ebc07220e95da149dcabec44b33a9
|
@@ -65,11 +65,7 @@ class RbbtProcessQueue
|
|
65
65
|
Log.high "Worker #{Process.pid} leaving"
|
66
66
|
rescue Exception
|
67
67
|
Log.high "Worker #{Process.pid} had exception: #{$!.message}"
|
68
|
-
|
69
|
-
begin
|
70
|
-
@callback_queue.push($!) if @callback_queue
|
71
|
-
rescue
|
72
|
-
end
|
68
|
+
@callback_queue.push($!) if @callback_queue
|
73
69
|
Kernel.exit! -1
|
74
70
|
ensure
|
75
71
|
@callback_queue.close_write if @callback_queue
|
@@ -180,13 +180,15 @@ class RbbtProcessQueue
|
|
180
180
|
rescue Exception
|
181
181
|
Log.low "Process monitor exception [#{Process.pid}]: #{$!.message}"
|
182
182
|
processes.each{|p| p.abort_and_join}
|
183
|
-
Log.low "Processes aborted #{Process.pid}"
|
183
|
+
Log.low "Processes aborted for monitor #{Process.pid}"
|
184
184
|
processes.clear
|
185
185
|
|
186
|
+
@manager_thread.report_on_exception = false
|
186
187
|
@manager_thread.raise $! if @manager_thread.alive?
|
187
188
|
raise Aborted, "Aborted monitor thread with exception"
|
188
189
|
end
|
189
190
|
end
|
191
|
+
@monitor_thread.report_on_exception = false
|
190
192
|
|
191
193
|
RbbtSemaphore.post_semaphore(@sem)
|
192
194
|
|
@@ -215,33 +217,36 @@ class RbbtProcessQueue
|
|
215
217
|
init_master
|
216
218
|
|
217
219
|
RbbtSemaphore.synchronize(@sem) do
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
220
|
+
@callback_thread = Thread.new do
|
221
|
+
begin
|
222
|
+
loop do
|
223
|
+
p = @callback_queue.pop unless @callback_queue.cleaned
|
222
224
|
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
225
|
+
if Exception === p or (Array === p and Exception === p.first)
|
226
|
+
e = Array === p ? p.first : p
|
227
|
+
Log.low "Callback recieved exception from worker: #{e.message}" unless Aborted === e or ClosedStream === e
|
228
|
+
raise e
|
229
|
+
end
|
228
230
|
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
231
|
+
if @callback.arity == 0
|
232
|
+
@callback.call
|
233
|
+
else
|
234
|
+
@callback.call p
|
235
|
+
end
|
233
236
|
end
|
237
|
+
rescue ClosedStream
|
238
|
+
Log.low "Callback thread closing"
|
239
|
+
rescue Aborted
|
240
|
+
Log.low "Callback thread aborted"
|
241
|
+
raise $!
|
242
|
+
rescue Exception
|
243
|
+
Log.low "Exception captured in callback: #{$!.message}"
|
244
|
+
raise $!
|
234
245
|
end
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
raise $!
|
240
|
-
rescue Exception
|
241
|
-
Log.low "Exception captured in callback: #{$!.message}"
|
242
|
-
raise $!
|
243
|
-
end
|
244
|
-
end if @callback_queue
|
246
|
+
end if @callback_queue
|
247
|
+
|
248
|
+
@callback_thread.report_on_exception = false
|
249
|
+
|
245
250
|
end
|
246
251
|
|
247
252
|
end
|
@@ -343,9 +343,9 @@ module Misc
|
|
343
343
|
end
|
344
344
|
when Array
|
345
345
|
if obj.length > HASH2MD5_MAX_ARRAY_LENGTH
|
346
|
-
"[" << sample_large_obj(obj, HASH2MD5_MAX_ARRAY_LENGTH).collect{|v| obj2str(v)} * "," << "]"
|
346
|
+
"[" << sample_large_obj(obj, HASH2MD5_MAX_ARRAY_LENGTH).collect{|v| obj2str(v.nil? ? "" : v) } * "," << "]"
|
347
347
|
else
|
348
|
-
"[" << obj.collect{|v| obj2str(v) } * "," << "]"
|
348
|
+
"[" << obj.collect{|v| obj2str(v.nil? ? "" : v) } * "," << "]"
|
349
349
|
end
|
350
350
|
when TSV::Parser
|
351
351
|
remove_long_items(obj)
|
@@ -72,6 +72,7 @@ module Workflow
|
|
72
72
|
def setup_override_dependency(dep, workflow, task_name)
|
73
73
|
return [] if dep == :skip || dep == 'skip'
|
74
74
|
|
75
|
+
unlocated = unlocated_override?(dep)
|
75
76
|
dep = Workflow.load_step(dep) if not Step === dep
|
76
77
|
|
77
78
|
dep.original_workflow ||= dep.workflow if dep.workflow
|
@@ -91,7 +92,7 @@ module Workflow
|
|
91
92
|
end
|
92
93
|
|
93
94
|
dep.task_name = task_name
|
94
|
-
dep.overriden = dep.original_task_name.to_sym if dep.original_task_name
|
95
|
+
dep.overriden = dep.original_task_name.to_sym if dep.original_task_name && dep.original_task_name.to_s != task_name.to_s || ! unlocated
|
95
96
|
|
96
97
|
dep.extend step_module
|
97
98
|
|
@@ -169,6 +170,16 @@ module Workflow
|
|
169
170
|
else
|
170
171
|
|
171
172
|
compute = options[:compute] if options
|
173
|
+
if options && options[:canfail]
|
174
|
+
compute = case compute
|
175
|
+
when nil
|
176
|
+
:canfail
|
177
|
+
when Array
|
178
|
+
compute + [:canfail]
|
179
|
+
else
|
180
|
+
[compute, :canfail]
|
181
|
+
end
|
182
|
+
end
|
172
183
|
|
173
184
|
all_d = (real_dependencies + real_dependencies.flatten.collect{|d| d.rec_dependencies} ).flatten.compact.uniq
|
174
185
|
|
@@ -207,6 +218,16 @@ module Workflow
|
|
207
218
|
|
208
219
|
options = {} if options.nil?
|
209
220
|
compute = options[:compute]
|
221
|
+
if options[:canfail]
|
222
|
+
compute = case compute
|
223
|
+
when nil
|
224
|
+
:canfail
|
225
|
+
when Array
|
226
|
+
compute + [:canfail]
|
227
|
+
else
|
228
|
+
[compute, :canfail]
|
229
|
+
end
|
230
|
+
end
|
210
231
|
|
211
232
|
options = IndiferentHash.setup(options.dup)
|
212
233
|
dep = dependency.call jobname, _inputs.merge(options), real_dependencies
|
@@ -228,7 +249,8 @@ module Workflow
|
|
228
249
|
task_info = d[:workflow].task_info(d[:task])
|
229
250
|
|
230
251
|
_inputs = assign_dep_inputs({}, options.merge(d[:inputs] || {}), real_dependencies, task_info)
|
231
|
-
|
252
|
+
_jobname = d.include?(:jobname) ? d[:jobname] : jobname
|
253
|
+
job = d[:workflow]._job(d[:task], _jobname, _inputs)
|
232
254
|
overriden = true if TrueClass === job.overriden && (d.nil? || ! d[:not_overriden])
|
233
255
|
job
|
234
256
|
end
|
@@ -250,8 +272,8 @@ module Workflow
|
|
250
272
|
else
|
251
273
|
task_info = (dep[:task] && dep[:workflow]) ? dep[:workflow].task_info(dep[:task]) : nil
|
252
274
|
_inputs = assign_dep_inputs({}, dep[:inputs], real_dependencies, task_info)
|
253
|
-
|
254
|
-
job =
|
275
|
+
_jobname = dep.include?(:jobname) ? dep[:jobname] : jobname
|
276
|
+
job = dep[:workflow]._job(dep[:task], _jobname, _inputs)
|
255
277
|
overriden = true if TrueClass === job.overriden && (d.nil? || ! d[:not_overriden])
|
256
278
|
job
|
257
279
|
end
|
@@ -24,8 +24,8 @@ class RemoteWorkflow
|
|
24
24
|
workflow, task, job, *rest = path.split("/")
|
25
25
|
|
26
26
|
workflow_name = begin
|
27
|
-
|
28
|
-
|
27
|
+
wf = Kernel.const_get(workflow) if String === workflow && ! workflow.empty?
|
28
|
+
wf.respond_to?(:complete_name) ? (wf.complete_name || workflow) : workflow
|
29
29
|
rescue
|
30
30
|
workflow
|
31
31
|
end
|
@@ -188,9 +188,10 @@ job.clean
|
|
188
188
|
# Open.write(file, new)
|
189
189
|
# end
|
190
190
|
|
191
|
-
|
191
|
+
files = Dir.glob(File.join(dir, "*.as_step"))
|
192
|
+
paths = files.collect{|f| Open.read(f).strip }
|
192
193
|
new = Step.migrate(paths, :user, :target => server)
|
193
|
-
|
194
|
+
files.zip(new).each{|file,new| Open.write(file, new) }
|
194
195
|
|
195
196
|
CMD.cmd_log("ssh '#{server}' mkdir -p .rbbt/tmp/tmp-ssh_job_inputs/; scp -r '#{dir}' #{server}:.rbbt/tmp/tmp-ssh_job_inputs/#{input_id}")
|
196
197
|
end
|
@@ -229,10 +230,11 @@ job.clean
|
|
229
230
|
job.input_dependencies.each do |dep|
|
230
231
|
Log.medium "Producing #{dep.workflow}:#{dep.short_path} dependency for #{job.workflow}:#{job.short_path}"
|
231
232
|
dep.produce
|
232
|
-
end
|
233
|
+
end
|
233
234
|
|
234
235
|
migrate_dependencies = job.rec_dependencies.select{|d| d.done? }.collect{|d| d.path }
|
235
|
-
|
236
|
+
migrate_dependencies += job.input_dependencies.select{|d| d.done? }.collect{|d| d.path }
|
237
|
+
Log.medium "Migrating #{migrate_dependencies.length} dependencies from #{job.path} to #{ server }"
|
236
238
|
Step.migrate(migrate_dependencies, search_path, :target => server) if migrate_dependencies.any?
|
237
239
|
end
|
238
240
|
|
@@ -52,6 +52,7 @@ class RemoteStep
|
|
52
52
|
end
|
53
53
|
|
54
54
|
def _run
|
55
|
+
RemoteWorkflow::SSH.upload_dependencies(self, @server)
|
55
56
|
RemoteWorkflow::SSH.run_job(File.join(base_url, task.to_s), @input_id, @base_name)
|
56
57
|
end
|
57
58
|
|
@@ -97,6 +98,18 @@ class RemoteStep
|
|
97
98
|
_restart
|
98
99
|
end
|
99
100
|
|
101
|
+
def abort
|
102
|
+
Log.warn "not implemented RemoteWorkflow::SSH.abort(@url, @input_id, @base_name)"
|
103
|
+
end
|
104
|
+
|
105
|
+
def input_dependencies
|
106
|
+
@input_dependencies ||= inputs.values.flatten.
|
107
|
+
select{|i| Step === i || (defined?(RemoteStep) && RemoteStep === i) } +
|
108
|
+
inputs.values.flatten.
|
109
|
+
select{|dep| Path === dep && Step === dep.resource }.
|
110
|
+
select{|dep| ! dep.resource.started? }. # Ignore input_deps already started
|
111
|
+
collect{|dep| dep.resource }
|
112
|
+
end
|
100
113
|
end
|
101
114
|
end
|
102
115
|
|
@@ -145,11 +145,12 @@ class Step
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def input_dependencies
|
148
|
-
@input_dependencies ||=
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
148
|
+
@input_dependencies ||= recursive_inputs.flatten.
|
149
|
+
select{|i| Step === i || (defined?(RemoteStep) && RemoteStep === i) } +
|
150
|
+
recursive_inputs.flatten.
|
151
|
+
select{|dep| Path === dep && Step === dep.resource }.
|
152
|
+
select{|dep| ! dep.resource.started? }. # Ignore input_deps already started
|
153
|
+
collect{|dep| dep.resource }
|
153
154
|
end
|
154
155
|
|
155
156
|
def execute_dependency(dependency, log = true)
|
@@ -260,6 +261,9 @@ class Step
|
|
260
261
|
dep.produce
|
261
262
|
rescue RbbtException
|
262
263
|
Log.warn "Allowing failing of #{dep.path}: #{dep.messages.last if dep.messages}"
|
264
|
+
rescue Exception
|
265
|
+
Log.warn "Not Allowing failing of #{dep.path} because #{$!.class} not RbbtException"
|
266
|
+
raise $!
|
263
267
|
end
|
264
268
|
nil
|
265
269
|
end
|
@@ -447,13 +451,15 @@ class Step
|
|
447
451
|
compute_simple_dependencies = {}
|
448
452
|
compute_last_deps = {}
|
449
453
|
seen_paths = Set.new
|
450
|
-
rec_dependencies.uniq.each do |step|
|
454
|
+
rec_dependencies.uniq.reverse.each do |step|
|
451
455
|
next if seen_paths.include? step.path
|
452
456
|
seen_paths << step.path
|
453
457
|
next unless required_dep_paths.include? step.path
|
454
458
|
required_seen_paths = seen_paths & required_dep_paths
|
455
459
|
|
456
|
-
|
460
|
+
inputs = step.inputs
|
461
|
+
inputs = inputs.values if Hash === inputs
|
462
|
+
internal = inputs.select{|i| i.respond_to?(:path) && required_seen_paths.include?(i.path) }.any?
|
457
463
|
|
458
464
|
if ComputeDependency === step
|
459
465
|
next if produced.include? step.path
|
@@ -466,9 +472,9 @@ class Step
|
|
466
472
|
end
|
467
473
|
else
|
468
474
|
if internal
|
469
|
-
simple_dependencies.prepend(step)
|
470
|
-
else
|
471
475
|
simple_dependencies << step
|
476
|
+
else
|
477
|
+
simple_dependencies.prepend(step)
|
472
478
|
end
|
473
479
|
end
|
474
480
|
end
|
@@ -98,8 +98,10 @@ class Step
|
|
98
98
|
old = Signal.trap("INT"){ Thread.current.raise Aborted }
|
99
99
|
if @task.respond_to?(:exec_in)
|
100
100
|
@task.exec_in((bindings || self), *@inputs)
|
101
|
-
|
101
|
+
elsif @task
|
102
102
|
(bindings || self).instance_exec *@inputs, &@task
|
103
|
+
else
|
104
|
+
raise DependencyError, "Dependency #{self.path} cannot be produced"
|
103
105
|
end
|
104
106
|
ensure
|
105
107
|
Signal.trap("INT", old)
|
data/lib/rbbt/workflow.rb
CHANGED
@@ -490,8 +490,10 @@ module Workflow
|
|
490
490
|
end
|
491
491
|
end
|
492
492
|
|
493
|
+
overriden = true if dependencies.select{|d| d.overriden && d.clean_name != d.name }.any?
|
494
|
+
|
493
495
|
input_values = task.take_input_values(inputs)
|
494
|
-
if real_inputs.empty? && Workflow::TAG != :inputs && ! overriden
|
496
|
+
if real_inputs.empty? && Workflow::TAG != :inputs && ! overriden #&& ! dependencies.select{|d| d.overriden && d.clean_name != d.name }.any?
|
495
497
|
step_path = step_path taskname, jobname, [], [], extension
|
496
498
|
else
|
497
499
|
step_path = step_path taskname, jobname, input_values, dependencies, extension
|
@@ -428,15 +428,19 @@ begin
|
|
428
428
|
|
429
429
|
def match_dependencies(queries, dependencies)
|
430
430
|
queries = queries.collect{|q| q.include?("#") ? q.split("#") : q }
|
431
|
-
|
432
|
-
|
431
|
+
|
432
|
+
matched = []
|
433
|
+
queries.each do |q|
|
434
|
+
matched += dependencies.select do |dep|
|
433
435
|
if Array === q
|
434
436
|
q.first == dep.workflow.to_s && q.last == dep.task_name.to_s
|
435
437
|
else
|
436
438
|
q.to_s == dep.task_name.to_s
|
437
439
|
end
|
438
|
-
end
|
440
|
+
end
|
439
441
|
end
|
442
|
+
|
443
|
+
matched
|
440
444
|
end
|
441
445
|
|
442
446
|
if server = options.delete(:relay)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.37.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-03-
|
11
|
+
date: 2023-03-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: progress-monitor
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: lockfile
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -52,34 +38,6 @@ dependencies:
|
|
52
38
|
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: '0'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: spreadsheet
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - ">="
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: '0'
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - ">="
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rubyXL
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - ">="
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: '0'
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - ">="
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: '0'
|
83
41
|
- !ruby/object:Gem::Dependency
|
84
42
|
name: highline
|
85
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,20 +80,6 @@ dependencies:
|
|
122
80
|
- - ">="
|
123
81
|
- !ruby/object:Gem::Version
|
124
82
|
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: rest-client
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - ">="
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - ">="
|
137
|
-
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
139
83
|
- !ruby/object:Gem::Dependency
|
140
84
|
name: to_regexp
|
141
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -613,113 +557,113 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
613
557
|
- !ruby/object:Gem::Version
|
614
558
|
version: '0'
|
615
559
|
requirements: []
|
616
|
-
rubygems_version: 3.1.
|
560
|
+
rubygems_version: 3.1.4
|
617
561
|
signing_key:
|
618
562
|
specification_version: 4
|
619
563
|
summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
|
620
564
|
test_files:
|
621
|
-
- test/test_helper.rb
|
622
|
-
- test/rbbt/entity/test_identifiers.rb
|
623
|
-
- test/rbbt/test_resource.rb
|
624
|
-
- test/rbbt/test_association.rb
|
625
|
-
- test/rbbt/hpc/test_orchestrate.rb
|
626
|
-
- test/rbbt/hpc/test_slurm.rb
|
627
|
-
- test/rbbt/hpc/orchestrate/test_batches.rb
|
628
|
-
- test/rbbt/hpc/orchestrate/test_rules.rb
|
629
|
-
- test/rbbt/hpc/orchestrate/test_chains.rb
|
630
|
-
- test/rbbt/hpc/test_batch.rb
|
631
|
-
- test/rbbt/persist/test_tsv.rb
|
632
|
-
- test/rbbt/persist/tsv/test_kyotocabinet.rb
|
633
|
-
- test/rbbt/persist/tsv/test_lmdb.rb
|
634
|
-
- test/rbbt/persist/tsv/test_tokyocabinet.rb
|
635
|
-
- test/rbbt/persist/tsv/test_cdb.rb
|
636
|
-
- test/rbbt/persist/tsv/test_leveldb.rb
|
637
|
-
- test/rbbt/persist/tsv/test_sharder.rb
|
638
|
-
- test/rbbt/test_packed_index.rb
|
639
565
|
- test/rbbt/test_entity.rb
|
640
|
-
- test/rbbt/test_fix_width_table.rb
|
641
566
|
- test/rbbt/workflow/test_remote_workflow.rb
|
642
|
-
- test/rbbt/workflow/test_doc.rb
|
643
|
-
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
644
|
-
- test/rbbt/workflow/step/test_dependencies.rb
|
645
|
-
- test/rbbt/workflow/test_schedule.rb
|
646
567
|
- test/rbbt/workflow/util/test_archive.rb
|
647
568
|
- test/rbbt/workflow/util/test_orchestrator.rb
|
648
569
|
- test/rbbt/workflow/util/test_data.rb
|
649
|
-
- test/rbbt/workflow/
|
570
|
+
- test/rbbt/workflow/test_doc.rb
|
571
|
+
- test/rbbt/workflow/test_schedule.rb
|
650
572
|
- test/rbbt/workflow/test_step.rb
|
651
|
-
- test/rbbt/
|
652
|
-
- test/rbbt/
|
653
|
-
- test/rbbt/
|
654
|
-
- test/rbbt/
|
655
|
-
- test/rbbt/util/test_simpleDSL.rb
|
656
|
-
- test/rbbt/util/concurrency/processes/test_socket.rb
|
657
|
-
- test/rbbt/util/concurrency/test_processes.rb
|
658
|
-
- test/rbbt/util/concurrency/test_threads.rb
|
659
|
-
- test/rbbt/util/test_filecache.rb
|
660
|
-
- test/rbbt/util/simpleopt/test_get.rb
|
661
|
-
- test/rbbt/util/simpleopt/test_parse.rb
|
662
|
-
- test/rbbt/util/simpleopt/test_setup.rb
|
663
|
-
- test/rbbt/util/test_misc.rb
|
664
|
-
- test/rbbt/util/test_excel2tsv.rb
|
665
|
-
- test/rbbt/util/test_semaphore.rb
|
666
|
-
- test/rbbt/util/test_procpath.rb
|
667
|
-
- test/rbbt/util/R/test_model.rb
|
668
|
-
- test/rbbt/util/R/test_eval.rb
|
669
|
-
- test/rbbt/util/R/test_plot.rb
|
670
|
-
- test/rbbt/util/test_open.rb
|
671
|
-
- test/rbbt/util/test_tmpfile.rb
|
672
|
-
- test/rbbt/util/test_cmd.rb
|
673
|
-
- test/rbbt/util/test_concurrency.rb
|
573
|
+
- test/rbbt/workflow/step/test_dependencies.rb
|
574
|
+
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
575
|
+
- test/rbbt/workflow/test_task.rb
|
576
|
+
- test/rbbt/resource/test_path.rb
|
674
577
|
- test/rbbt/util/test_colorize.rb
|
675
|
-
- test/rbbt/util/
|
578
|
+
- test/rbbt/util/test_procpath.rb
|
676
579
|
- test/rbbt/util/python/test_util.rb
|
677
|
-
- test/rbbt/util/test_log.rb
|
678
|
-
- test/rbbt/util/test_simpleopt.rb
|
679
|
-
- test/rbbt/util/test_python.rb
|
680
|
-
- test/rbbt/util/test_chain_methods.rb
|
681
|
-
- test/rbbt/util/misc/test_omics.rb
|
682
|
-
- test/rbbt/util/misc/test_lock.rb
|
683
|
-
- test/rbbt/util/misc/test_multipart_payload.rb
|
684
|
-
- test/rbbt/util/misc/test_bgzf.rb
|
685
580
|
- test/rbbt/util/misc/test_development.rb
|
581
|
+
- test/rbbt/util/misc/test_omics.rb
|
582
|
+
- test/rbbt/util/misc/test_pipes.rb
|
686
583
|
- test/rbbt/util/misc/test_serialize.rb
|
687
584
|
- test/rbbt/util/misc/test_format.rb
|
688
585
|
- test/rbbt/util/misc/test_communication.rb
|
689
|
-
- test/rbbt/util/misc/
|
586
|
+
- test/rbbt/util/misc/test_lock.rb
|
587
|
+
- test/rbbt/util/misc/test_multipart_payload.rb
|
588
|
+
- test/rbbt/util/misc/test_bgzf.rb
|
589
|
+
- test/rbbt/util/test_concurrency.rb
|
590
|
+
- test/rbbt/util/test_cmd.rb
|
591
|
+
- test/rbbt/util/R/test_plot.rb
|
592
|
+
- test/rbbt/util/R/test_eval.rb
|
593
|
+
- test/rbbt/util/R/test_model.rb
|
594
|
+
- test/rbbt/util/test_config.rb
|
595
|
+
- test/rbbt/util/test_log.rb
|
596
|
+
- test/rbbt/util/test_simpleDSL.rb
|
690
597
|
- test/rbbt/util/log/test_progress.rb
|
598
|
+
- test/rbbt/util/test_tmpfile.rb
|
691
599
|
- test/rbbt/util/test_R.rb
|
692
|
-
- test/rbbt/
|
693
|
-
- test/rbbt/
|
694
|
-
- test/rbbt/
|
695
|
-
- test/rbbt/
|
696
|
-
- test/rbbt/
|
697
|
-
- test/rbbt/
|
698
|
-
- test/rbbt/
|
699
|
-
- test/rbbt/
|
700
|
-
- test/rbbt/
|
701
|
-
- test/rbbt/
|
702
|
-
- test/rbbt/
|
703
|
-
- test/rbbt/
|
704
|
-
- test/rbbt/
|
705
|
-
- test/rbbt/
|
706
|
-
- test/rbbt/
|
707
|
-
- test/rbbt/
|
708
|
-
- test/rbbt/
|
600
|
+
- test/rbbt/util/test_excel2tsv.rb
|
601
|
+
- test/rbbt/util/test_misc.rb
|
602
|
+
- test/rbbt/util/test_open.rb
|
603
|
+
- test/rbbt/util/test_simpleopt.rb
|
604
|
+
- test/rbbt/util/simpleopt/test_parse.rb
|
605
|
+
- test/rbbt/util/simpleopt/test_setup.rb
|
606
|
+
- test/rbbt/util/simpleopt/test_get.rb
|
607
|
+
- test/rbbt/util/test_python.rb
|
608
|
+
- test/rbbt/util/test_filecache.rb
|
609
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
610
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
611
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
612
|
+
- test/rbbt/util/test_semaphore.rb
|
613
|
+
- test/rbbt/util/test_chain_methods.rb
|
614
|
+
- test/rbbt/util/test_migrate.rb
|
615
|
+
- test/rbbt/test_resource.rb
|
616
|
+
- test/rbbt/test_packed_index.rb
|
617
|
+
- test/rbbt/tsv/test_change_id.rb
|
618
|
+
- test/rbbt/tsv/test_attach.rb
|
619
|
+
- test/rbbt/tsv/test_filter.rb
|
620
|
+
- test/rbbt/tsv/test_marshal.rb
|
709
621
|
- test/rbbt/tsv/test_parser.rb
|
710
622
|
- test/rbbt/tsv/test_csv.rb
|
711
|
-
- test/rbbt/tsv/
|
623
|
+
- test/rbbt/tsv/test_accessor.rb
|
624
|
+
- test/rbbt/tsv/test_matrix.rb
|
712
625
|
- test/rbbt/tsv/test_field_index.rb
|
713
626
|
- test/rbbt/tsv/test_util.rb
|
714
|
-
- test/rbbt/tsv/
|
715
|
-
- test/rbbt/tsv/test_filter.rb
|
716
|
-
- test/rbbt/tsv/test_stream.rb
|
627
|
+
- test/rbbt/tsv/test_index.rb
|
717
628
|
- test/rbbt/tsv/test_parallel.rb
|
718
|
-
- test/rbbt/tsv/
|
719
|
-
- test/rbbt/tsv/test_matrix.rb
|
720
|
-
- test/rbbt/tsv/test_attach.rb
|
629
|
+
- test/rbbt/tsv/test_manipulate.rb
|
721
630
|
- test/rbbt/tsv/test_excel.rb
|
722
|
-
- test/rbbt/tsv/test_change_id.rb
|
723
|
-
- test/rbbt/tsv/test_index.rb
|
724
|
-
- test/rbbt/tsv/parallel/test_traverse.rb
|
725
631
|
- test/rbbt/tsv/parallel/test_through.rb
|
632
|
+
- test/rbbt/tsv/parallel/test_traverse.rb
|
633
|
+
- test/rbbt/tsv/test_stream.rb
|
634
|
+
- test/rbbt/test_association.rb
|
635
|
+
- test/rbbt/hpc/test_batch.rb
|
636
|
+
- test/rbbt/hpc/orchestrate/test_chains.rb
|
637
|
+
- test/rbbt/hpc/orchestrate/test_rules.rb
|
638
|
+
- test/rbbt/hpc/orchestrate/test_batches.rb
|
639
|
+
- test/rbbt/hpc/test_slurm.rb
|
640
|
+
- test/rbbt/hpc/test_orchestrate.rb
|
641
|
+
- test/rbbt/association/test_database.rb
|
642
|
+
- test/rbbt/association/test_item.rb
|
643
|
+
- test/rbbt/association/test_open.rb
|
644
|
+
- test/rbbt/association/test_util.rb
|
645
|
+
- test/rbbt/association/test_index.rb
|
646
|
+
- test/rbbt/test_knowledge_base.rb
|
647
|
+
- test/rbbt/persist/tsv/test_kyotocabinet.rb
|
648
|
+
- test/rbbt/persist/tsv/test_cdb.rb
|
649
|
+
- test/rbbt/persist/tsv/test_lmdb.rb
|
650
|
+
- test/rbbt/persist/tsv/test_sharder.rb
|
651
|
+
- test/rbbt/persist/tsv/test_leveldb.rb
|
652
|
+
- test/rbbt/persist/tsv/test_tokyocabinet.rb
|
653
|
+
- test/rbbt/persist/test_tsv.rb
|
654
|
+
- test/rbbt/test_tsv.rb
|
655
|
+
- test/rbbt/test_annotations.rb
|
656
|
+
- test/rbbt/test_fix_width_table.rb
|
657
|
+
- test/rbbt/test_workflow.rb
|
658
|
+
- test/rbbt/entity/test_identifiers.rb
|
659
|
+
- test/rbbt/annotations/test_util.rb
|
660
|
+
- test/rbbt/test_hpc.rb
|
661
|
+
- test/rbbt/test_monitor.rb
|
662
|
+
- test/rbbt/test_persist.rb
|
663
|
+
- test/rbbt/knowledge_base/test_entity.rb
|
664
|
+
- test/rbbt/knowledge_base/test_registry.rb
|
665
|
+
- test/rbbt/knowledge_base/test_syndicate.rb
|
666
|
+
- test/rbbt/knowledge_base/test_query.rb
|
667
|
+
- test/rbbt/knowledge_base/test_enrichment.rb
|
668
|
+
- test/rbbt/knowledge_base/test_traverse.rb
|
669
|
+
- test/test_helper.rb
|