rbbt-util 5.36.0 → 5.37.1
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/tsv/manipulate.rb +0 -2
- 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/util/misc/system.rb +0 -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 +91 -133
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ff7fd35bf9c27bd85ceaddfa0993975120af965521ea1f709dbc0d8538bdb3e0
|
|
4
|
+
data.tar.gz: 9e5afd5c4141885b496f279a267287fe394728eb889bbacfd61d38dcb22033d4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 33f970e1a1203838755c4202f918750ac6addcca4c2ab2fc365037096e4547e176f53ace330ac322bd16140071a04824b8c4aeb3d28353ec4522cc06d4bf16fc
|
|
7
|
+
data.tar.gz: '09793d590a287c89037679e53123a6031b63ba54923b8fb46cf1c4440a85f1702617dc8d53b652b9895e2b7e4a48b927e083982325d102d9bdd8616ca507b26b'
|
data/lib/rbbt/tsv/manipulate.rb
CHANGED
|
@@ -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.1
|
|
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
|
|
@@ -123,7 +81,7 @@ dependencies:
|
|
|
123
81
|
- !ruby/object:Gem::Version
|
|
124
82
|
version: '0'
|
|
125
83
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
84
|
+
name: to_regexp
|
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
|
128
86
|
requirements:
|
|
129
87
|
- - ">="
|
|
@@ -137,7 +95,7 @@ dependencies:
|
|
|
137
95
|
- !ruby/object:Gem::Version
|
|
138
96
|
version: '0'
|
|
139
97
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
98
|
+
name: nakayoshi_fork
|
|
141
99
|
requirement: !ruby/object:Gem::Requirement
|
|
142
100
|
requirements:
|
|
143
101
|
- - ">="
|
|
@@ -151,7 +109,7 @@ dependencies:
|
|
|
151
109
|
- !ruby/object:Gem::Version
|
|
152
110
|
version: '0'
|
|
153
111
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name:
|
|
112
|
+
name: method_source
|
|
155
113
|
requirement: !ruby/object:Gem::Requirement
|
|
156
114
|
requirements:
|
|
157
115
|
- - ">="
|
|
@@ -165,7 +123,7 @@ dependencies:
|
|
|
165
123
|
- !ruby/object:Gem::Version
|
|
166
124
|
version: '0'
|
|
167
125
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
126
|
+
name: net
|
|
169
127
|
requirement: !ruby/object:Gem::Requirement
|
|
170
128
|
requirements:
|
|
171
129
|
- - ">="
|
|
@@ -613,113 +571,113 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
613
571
|
- !ruby/object:Gem::Version
|
|
614
572
|
version: '0'
|
|
615
573
|
requirements: []
|
|
616
|
-
rubygems_version: 3.1.
|
|
574
|
+
rubygems_version: 3.1.4
|
|
617
575
|
signing_key:
|
|
618
576
|
specification_version: 4
|
|
619
577
|
summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
|
|
620
578
|
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
579
|
- test/rbbt/test_entity.rb
|
|
640
|
-
- test/rbbt/test_fix_width_table.rb
|
|
641
580
|
- 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
581
|
- test/rbbt/workflow/util/test_archive.rb
|
|
647
582
|
- test/rbbt/workflow/util/test_orchestrator.rb
|
|
648
583
|
- test/rbbt/workflow/util/test_data.rb
|
|
649
|
-
- test/rbbt/workflow/
|
|
584
|
+
- test/rbbt/workflow/test_doc.rb
|
|
585
|
+
- test/rbbt/workflow/test_schedule.rb
|
|
650
586
|
- 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
|
|
587
|
+
- test/rbbt/workflow/step/test_dependencies.rb
|
|
588
|
+
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
|
589
|
+
- test/rbbt/workflow/test_task.rb
|
|
590
|
+
- test/rbbt/resource/test_path.rb
|
|
674
591
|
- test/rbbt/util/test_colorize.rb
|
|
675
|
-
- test/rbbt/util/
|
|
592
|
+
- test/rbbt/util/test_procpath.rb
|
|
676
593
|
- 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
594
|
- test/rbbt/util/misc/test_development.rb
|
|
595
|
+
- test/rbbt/util/misc/test_omics.rb
|
|
596
|
+
- test/rbbt/util/misc/test_pipes.rb
|
|
686
597
|
- test/rbbt/util/misc/test_serialize.rb
|
|
687
598
|
- test/rbbt/util/misc/test_format.rb
|
|
688
599
|
- test/rbbt/util/misc/test_communication.rb
|
|
689
|
-
- test/rbbt/util/misc/
|
|
600
|
+
- test/rbbt/util/misc/test_lock.rb
|
|
601
|
+
- test/rbbt/util/misc/test_multipart_payload.rb
|
|
602
|
+
- test/rbbt/util/misc/test_bgzf.rb
|
|
603
|
+
- test/rbbt/util/test_concurrency.rb
|
|
604
|
+
- test/rbbt/util/test_cmd.rb
|
|
605
|
+
- test/rbbt/util/R/test_plot.rb
|
|
606
|
+
- test/rbbt/util/R/test_eval.rb
|
|
607
|
+
- test/rbbt/util/R/test_model.rb
|
|
608
|
+
- test/rbbt/util/test_config.rb
|
|
609
|
+
- test/rbbt/util/test_log.rb
|
|
610
|
+
- test/rbbt/util/test_simpleDSL.rb
|
|
690
611
|
- test/rbbt/util/log/test_progress.rb
|
|
612
|
+
- test/rbbt/util/test_tmpfile.rb
|
|
691
613
|
- 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/
|
|
614
|
+
- test/rbbt/util/test_excel2tsv.rb
|
|
615
|
+
- test/rbbt/util/test_misc.rb
|
|
616
|
+
- test/rbbt/util/test_open.rb
|
|
617
|
+
- test/rbbt/util/test_simpleopt.rb
|
|
618
|
+
- test/rbbt/util/simpleopt/test_parse.rb
|
|
619
|
+
- test/rbbt/util/simpleopt/test_setup.rb
|
|
620
|
+
- test/rbbt/util/simpleopt/test_get.rb
|
|
621
|
+
- test/rbbt/util/test_python.rb
|
|
622
|
+
- test/rbbt/util/test_filecache.rb
|
|
623
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
|
624
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
|
625
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
|
626
|
+
- test/rbbt/util/test_semaphore.rb
|
|
627
|
+
- test/rbbt/util/test_chain_methods.rb
|
|
628
|
+
- test/rbbt/util/test_migrate.rb
|
|
629
|
+
- test/rbbt/test_resource.rb
|
|
630
|
+
- test/rbbt/test_packed_index.rb
|
|
631
|
+
- test/rbbt/tsv/test_change_id.rb
|
|
632
|
+
- test/rbbt/tsv/test_attach.rb
|
|
633
|
+
- test/rbbt/tsv/test_filter.rb
|
|
634
|
+
- test/rbbt/tsv/test_marshal.rb
|
|
709
635
|
- test/rbbt/tsv/test_parser.rb
|
|
710
636
|
- test/rbbt/tsv/test_csv.rb
|
|
711
|
-
- test/rbbt/tsv/
|
|
637
|
+
- test/rbbt/tsv/test_accessor.rb
|
|
638
|
+
- test/rbbt/tsv/test_matrix.rb
|
|
712
639
|
- test/rbbt/tsv/test_field_index.rb
|
|
713
640
|
- test/rbbt/tsv/test_util.rb
|
|
714
|
-
- test/rbbt/tsv/
|
|
715
|
-
- test/rbbt/tsv/test_filter.rb
|
|
716
|
-
- test/rbbt/tsv/test_stream.rb
|
|
641
|
+
- test/rbbt/tsv/test_index.rb
|
|
717
642
|
- test/rbbt/tsv/test_parallel.rb
|
|
718
|
-
- test/rbbt/tsv/
|
|
719
|
-
- test/rbbt/tsv/test_matrix.rb
|
|
720
|
-
- test/rbbt/tsv/test_attach.rb
|
|
643
|
+
- test/rbbt/tsv/test_manipulate.rb
|
|
721
644
|
- 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
645
|
- test/rbbt/tsv/parallel/test_through.rb
|
|
646
|
+
- test/rbbt/tsv/parallel/test_traverse.rb
|
|
647
|
+
- test/rbbt/tsv/test_stream.rb
|
|
648
|
+
- test/rbbt/test_association.rb
|
|
649
|
+
- test/rbbt/hpc/test_batch.rb
|
|
650
|
+
- test/rbbt/hpc/orchestrate/test_chains.rb
|
|
651
|
+
- test/rbbt/hpc/orchestrate/test_rules.rb
|
|
652
|
+
- test/rbbt/hpc/orchestrate/test_batches.rb
|
|
653
|
+
- test/rbbt/hpc/test_slurm.rb
|
|
654
|
+
- test/rbbt/hpc/test_orchestrate.rb
|
|
655
|
+
- test/rbbt/association/test_database.rb
|
|
656
|
+
- test/rbbt/association/test_item.rb
|
|
657
|
+
- test/rbbt/association/test_open.rb
|
|
658
|
+
- test/rbbt/association/test_util.rb
|
|
659
|
+
- test/rbbt/association/test_index.rb
|
|
660
|
+
- test/rbbt/test_knowledge_base.rb
|
|
661
|
+
- test/rbbt/persist/tsv/test_kyotocabinet.rb
|
|
662
|
+
- test/rbbt/persist/tsv/test_cdb.rb
|
|
663
|
+
- test/rbbt/persist/tsv/test_lmdb.rb
|
|
664
|
+
- test/rbbt/persist/tsv/test_sharder.rb
|
|
665
|
+
- test/rbbt/persist/tsv/test_leveldb.rb
|
|
666
|
+
- test/rbbt/persist/tsv/test_tokyocabinet.rb
|
|
667
|
+
- test/rbbt/persist/test_tsv.rb
|
|
668
|
+
- test/rbbt/test_tsv.rb
|
|
669
|
+
- test/rbbt/test_annotations.rb
|
|
670
|
+
- test/rbbt/test_fix_width_table.rb
|
|
671
|
+
- test/rbbt/test_workflow.rb
|
|
672
|
+
- test/rbbt/entity/test_identifiers.rb
|
|
673
|
+
- test/rbbt/annotations/test_util.rb
|
|
674
|
+
- test/rbbt/test_hpc.rb
|
|
675
|
+
- test/rbbt/test_monitor.rb
|
|
676
|
+
- test/rbbt/test_persist.rb
|
|
677
|
+
- test/rbbt/knowledge_base/test_entity.rb
|
|
678
|
+
- test/rbbt/knowledge_base/test_registry.rb
|
|
679
|
+
- test/rbbt/knowledge_base/test_syndicate.rb
|
|
680
|
+
- test/rbbt/knowledge_base/test_query.rb
|
|
681
|
+
- test/rbbt/knowledge_base/test_enrichment.rb
|
|
682
|
+
- test/rbbt/knowledge_base/test_traverse.rb
|
|
683
|
+
- test/test_helper.rb
|