rbbt-util 5.38.1 → 5.39.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/resource.rb +6 -2
- data/lib/rbbt/tsv/util.rb +4 -0
- data/lib/rbbt/util/cmd.rb +8 -4
- data/lib/rbbt/util/concurrency/processes.rb +1 -1
- data/lib/rbbt/util/migrate.rb +1 -2
- data/lib/rbbt/util/misc/inspect.rb +1 -0
- data/lib/rbbt/util/open.rb +6 -0
- data/lib/rbbt/util/ssh.rb +1 -1
- data/lib/rbbt/workflow/remote_workflow/driver/ssh.rb +1 -1
- data/lib/rbbt/workflow/step/dependencies.rb +3 -4
- data/lib/rbbt/workflow/step.rb +2 -2
- data/lib/rbbt/workflow/usage.rb +1 -1
- data/lib/rbbt/workflow/util/trace.rb +2 -1
- data/lib/rbbt/workflow.rb +3 -2
- data/share/rbbt_commands/resource/claims +57 -0
- data/share/rbbt_commands/workflow/task +2 -2
- data/test/rbbt/test_tsv.rb +16 -1
- data/test/rbbt/tsv/parallel/test_traverse.rb +2 -2
- data/test/rbbt/tsv/test_util.rb +14 -0
- data/test/rbbt/util/test_migrate.rb +2 -2
- metadata +96 -95
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12c5401cf3ecb8495ba5c21d0f3d3f35c741c1c335ffa0d3a7d3ee498f6daae8
|
4
|
+
data.tar.gz: 344f30b6651a272f5e9665d3ec6383b4a1d62ba7c64c7889af5cfc573b2285ac
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6e8305e1f3e74eeff9e5892592bc66bfc9aac3baa505503942b266c3de996408a9210fcfaa2f6073800fc763bf3cdf5b8f39a50a920696402657d2928a9add8f
|
7
|
+
data.tar.gz: 511c72833b4a8ef747e574376d44a3b4799f96f6a922301d3f405df1cd7aac79a2d2de388075aaab4fc3ef6962ee66ded3de8684227912399f41f7ad00006148
|
data/lib/rbbt/resource.rb
CHANGED
@@ -354,7 +354,7 @@ url='#{url}'
|
|
354
354
|
path = File.expand_path(path)
|
355
355
|
path += "/" if File.directory?(path)
|
356
356
|
resource ||= Rbbt
|
357
|
-
locations = (Path::STANDARD_SEARCH + resource.search_order + resource.search_paths.keys)
|
357
|
+
locations = (Path::STANDARD_SEARCH + resource.search_order + resource.search_paths.keys).uniq
|
358
358
|
locations -= [:current, "current"]
|
359
359
|
locations << :current
|
360
360
|
search_paths = IndiferentHash.setup(resource.search_paths)
|
@@ -374,7 +374,11 @@ url='#{url}'
|
|
374
374
|
if ! m.named_captures.include?("PKGDIR") || m["PKGDIR"] == resource.pkgdir
|
375
375
|
unlocated = ([m["TOPLEVEL"],m["SUBPATH"],m["REST"]] * "/")
|
376
376
|
unlocated.gsub!(/\/+/,'/')
|
377
|
-
|
377
|
+
if self.subdir && ! self.subdir.empty?
|
378
|
+
subdir = self.subdir
|
379
|
+
subdir += "/" unless subdir.end_with?("/")
|
380
|
+
unlocated[subdir] = ""
|
381
|
+
end
|
378
382
|
choices << self.annotate(unlocated)
|
379
383
|
end
|
380
384
|
end
|
data/lib/rbbt/tsv/util.rb
CHANGED
data/lib/rbbt/util/cmd.rb
CHANGED
@@ -22,13 +22,17 @@ module CMD
|
|
22
22
|
return tool.to_s unless TOOLS[tool]
|
23
23
|
|
24
24
|
@@init_cmd_tool ||= IndiferentHash.setup({})
|
25
|
+
|
26
|
+
claim, test, block, cmd = TOOLS[tool]
|
27
|
+
cmd = tool.to_s if cmd.nil?
|
28
|
+
|
25
29
|
if !@@init_cmd_tool[tool]
|
26
|
-
|
30
|
+
|
27
31
|
begin
|
28
32
|
if test
|
29
33
|
CMD.cmd(test + " ")
|
30
34
|
else
|
31
|
-
CMD.cmd("#{
|
35
|
+
CMD.cmd("#{cmd} --help")
|
32
36
|
end
|
33
37
|
rescue
|
34
38
|
if claim
|
@@ -41,7 +45,7 @@ module CMD
|
|
41
45
|
version = nil
|
42
46
|
["--version", "-version", "--help", ""].each do |f|
|
43
47
|
begin
|
44
|
-
version_txt += CMD.cmd("#{
|
48
|
+
version_txt += CMD.cmd("#{cmd} #{f} 2>&1", :nofail => true).read
|
45
49
|
version = Misc.scan_version_text(version_txt, tool)
|
46
50
|
break if version
|
47
51
|
rescue
|
@@ -54,7 +58,7 @@ module CMD
|
|
54
58
|
return cmd if cmd
|
55
59
|
end
|
56
60
|
|
57
|
-
|
61
|
+
cmd
|
58
62
|
end
|
59
63
|
|
60
64
|
def self.versions
|
data/lib/rbbt/util/migrate.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
module Rbbt
|
2
2
|
|
3
|
-
prepare_for_execution(job)
|
4
3
|
def self.migrate_source_paths(path, resource = Rbbt, source = nil)
|
5
4
|
if source
|
6
5
|
lpath, *paths = Misc.ssh_run(source, <<-EOF).split("\n")
|
@@ -60,7 +59,7 @@ puts resource[path].find(search_path)
|
|
60
59
|
test_str = options[:test] ? '-nv' : ''
|
61
60
|
|
62
61
|
real_paths.each do |source_path|
|
63
|
-
Log.
|
62
|
+
Log.low "Migrating #{source_path} #{options[:files].length} files to #{target} - #{Misc.fingerprint(options[:files])}}" if options[:files]
|
64
63
|
if File.directory?(source_path) || source_path.end_with?("/")
|
65
64
|
source_path += "/" unless source_path.end_with? '/'
|
66
65
|
target += "/" unless target.end_with? '/'
|
data/lib/rbbt/util/open.rb
CHANGED
@@ -530,16 +530,22 @@ module Open
|
|
530
530
|
|
531
531
|
def self.gzip?(file)
|
532
532
|
file = file.find if Path === file
|
533
|
+
file = file.filename if File === file
|
534
|
+
return false unless String === file
|
533
535
|
!! (file =~ /\.gz$/)
|
534
536
|
end
|
535
537
|
|
536
538
|
def self.bgzip?(file)
|
537
539
|
file = file.find if Path === file
|
540
|
+
file = file.filename if File === file
|
541
|
+
return false unless String === file
|
538
542
|
!! (file =~ /\.bgz$/)
|
539
543
|
end
|
540
544
|
|
541
545
|
def self.zip?(file)
|
542
546
|
file = file.find if Path === file
|
547
|
+
file = file.filename if File === file
|
548
|
+
return false unless String === file
|
543
549
|
!! (file =~ /\.zip$/)
|
544
550
|
end
|
545
551
|
|
data/lib/rbbt/util/ssh.rb
CHANGED
@@ -253,7 +253,7 @@ job.clean
|
|
253
253
|
Step.wait_for_jobs missing_deps
|
254
254
|
|
255
255
|
migrate_dependencies = all_deps.keys.collect{|d| [d] + d.rec_dependencies + d.input_dependencies }.flatten.select{|d| d.done? }.collect{|d| d.path }
|
256
|
-
Log.
|
256
|
+
Log.low "Migrating #{migrate_dependencies.length} dependencies from #{Misc.fingerprint job_list} to #{ server }"
|
257
257
|
Step.migrate(migrate_dependencies, search_path, :target => server) if migrate_dependencies.any?
|
258
258
|
end
|
259
259
|
|
@@ -145,9 +145,9 @@ class Step
|
|
145
145
|
end
|
146
146
|
|
147
147
|
def input_dependencies
|
148
|
-
@input_dependencies ||= recursive_inputs.flatten.
|
148
|
+
@input_dependencies ||= recursive_inputs(true).flatten.
|
149
149
|
select{|i| Step === i || (defined?(RemoteStep) && RemoteStep === i) } +
|
150
|
-
recursive_inputs.flatten.
|
150
|
+
recursive_inputs(true).flatten.
|
151
151
|
select{|dep| Path === dep && Step === dep.resource }.
|
152
152
|
#select{|dep| ! dep.resource.started? }. # Ignore input_deps already started
|
153
153
|
collect{|dep| dep.resource }
|
@@ -581,7 +581,6 @@ class Step
|
|
581
581
|
#but dependencies are absent, meanining that the file could have been dropped
|
582
582
|
#in
|
583
583
|
def rec_dependencies(connected = false, seen = [])
|
584
|
-
|
585
584
|
# A step result with no info_file means that it was manually
|
586
585
|
# placed. In that case, do not consider its dependencies
|
587
586
|
return [] if ! (defined? WorkflowRemoteClient && WorkflowRemoteClient::RemoteStep === self) && ! Open.exists?(self.info_file) && Open.exists?(self.path.to_s)
|
@@ -599,7 +598,7 @@ class Step
|
|
599
598
|
#next if self.done? && Open.exists?(info_file) && info[:dependencies] && info[:dependencies].select{|task,name,path| path == step.path }.empty?
|
600
599
|
next if archived_deps.include? step.path
|
601
600
|
next if seen.include? step
|
602
|
-
next if
|
601
|
+
next if step.done? && connected && ! step.updatable?
|
603
602
|
|
604
603
|
r = step.rec_dependencies(connected, new_dependencies)
|
605
604
|
new_dependencies.concat r
|
data/lib/rbbt/workflow/step.rb
CHANGED
@@ -90,7 +90,7 @@ class Step
|
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
|
-
def recursive_inputs
|
93
|
+
def recursive_inputs(connected = false)
|
94
94
|
if NamedArray === inputs
|
95
95
|
i = {}
|
96
96
|
inputs.zip(inputs.fields).each do |v,f|
|
@@ -99,7 +99,7 @@ class Step
|
|
99
99
|
else
|
100
100
|
i = {}
|
101
101
|
end
|
102
|
-
rec_dependencies.each do |dep|
|
102
|
+
rec_dependencies(connected).each do |dep|
|
103
103
|
next unless NamedArray === dep.inputs
|
104
104
|
|
105
105
|
dep.inputs.zip(dep.inputs.fields).each do |v,f|
|
data/lib/rbbt/workflow/usage.rb
CHANGED
@@ -20,7 +20,7 @@ module Task
|
|
20
20
|
task_inputs = dep_inputs deps, workflow
|
21
21
|
task_inputs.each do |task,new_inputs|
|
22
22
|
new_inputs.zip(task.input_types.values_at(*new_inputs)).select do |i,t|
|
23
|
-
t.to_sym == :select
|
23
|
+
t.to_sym == :select && task.input_options.include?(i) && task.input_options[i][:select_options]
|
24
24
|
end.each do |i,t|
|
25
25
|
selects << [i, task.input_options[i][:select_options]]
|
26
26
|
end
|
@@ -81,7 +81,8 @@ module Workflow
|
|
81
81
|
|
82
82
|
def self.plot_trace_job_times(data, plot, width=800, height=800)
|
83
83
|
data.R <<-EOF, [:svg]
|
84
|
-
rbbt.require('
|
84
|
+
rbbt.require('dplyr')
|
85
|
+
rbbt.require('tidyr')
|
85
86
|
rbbt.require('ggplot2')
|
86
87
|
|
87
88
|
names(data) <- make.names(names(data))
|
data/lib/rbbt/workflow.rb
CHANGED
@@ -23,7 +23,7 @@ module Workflow
|
|
23
23
|
|
24
24
|
#{{{ WORKFLOW MANAGEMENT
|
25
25
|
class << self
|
26
|
-
attr_accessor :workflows, :autoinstall, :workflow_dir
|
26
|
+
attr_accessor :workflows, :autoinstall, :workflow_dir, :main
|
27
27
|
end
|
28
28
|
|
29
29
|
self.workflows = []
|
@@ -202,13 +202,14 @@ module Workflow
|
|
202
202
|
|
203
203
|
first = nil
|
204
204
|
wf_name.split("+").each do |wf_name|
|
205
|
+
self.main = nil
|
205
206
|
require_local_workflow(wf_name) or
|
206
207
|
(Workflow.autoinstall and `rbbt workflow install #{Misc.snake_case(wf_name)} || rbbt workflow install #{wf_name}` and require_local_workflow(wf_name)) or raise("Workflow not found or could not be loaded: #{ wf_name }")
|
207
208
|
|
208
209
|
workflow = begin
|
209
210
|
Misc.string2const Misc.camel_case(wf_name)
|
210
211
|
rescue
|
211
|
-
Workflow.workflows.last
|
212
|
+
self.main || Workflow.workflows.last
|
212
213
|
end
|
213
214
|
workflow.load_documentation
|
214
215
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rbbt-util'
|
4
|
+
require 'rbbt/resource'
|
5
|
+
require 'rbbt/workflow'
|
6
|
+
|
7
|
+
options = SOPT.get <<EOF
|
8
|
+
-W--workflows* Workflows to use; 'all' for all in Rbbt.etc.workflows:
|
9
|
+
-r--requires* Files to require; 'all' for all in Rbbt.etc.requires:
|
10
|
+
-f--force Force the production if the file is already present
|
11
|
+
-h--help Help
|
12
|
+
EOF
|
13
|
+
|
14
|
+
if options[:help]
|
15
|
+
puts SOPT.doc
|
16
|
+
exit
|
17
|
+
end
|
18
|
+
|
19
|
+
case options[:workflows]
|
20
|
+
when nil, false, "false", "none"
|
21
|
+
when "all"
|
22
|
+
Rbbt.etc.workflows.list.each do |workflow|
|
23
|
+
Workflow.require_workflow file
|
24
|
+
end if Rbbt.etc.workflows.exists?
|
25
|
+
else
|
26
|
+
options[:workflows].split(/[ ,;|]/).each do |workflow|
|
27
|
+
Workflow.require_workflow workflow
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
case options[:requires]
|
32
|
+
when nil, false, "false", "none"
|
33
|
+
when "all"
|
34
|
+
Rbbt.etc.requires.list.each do |file|
|
35
|
+
require file
|
36
|
+
end if Rbbt.etc.requires.exists?
|
37
|
+
else
|
38
|
+
options[:requires].split(/[ ,;|]/).each do |file|
|
39
|
+
require file
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
resource, path = ARGV
|
44
|
+
|
45
|
+
begin
|
46
|
+
resource = Kernel.const_get(resource)
|
47
|
+
rescue
|
48
|
+
begin
|
49
|
+
resource = Workflow.require_workflow resource
|
50
|
+
rescue
|
51
|
+
raise "Resource not found: #{ resource }"
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
puts resource.claims * "\n"
|
56
|
+
|
57
|
+
|
@@ -220,8 +220,8 @@ The `recursive_clean` cleans all the job dependency steps recursively.
|
|
220
220
|
-rwt--remote_workflow_tasks* Load a yaml file describing remote workflow tasks
|
221
221
|
-od--override_deps* Override deps using 'Workflow#task=<path>' array_separated
|
222
222
|
-PERF--procpath_performance* Measure performance using procpath
|
223
|
-
|
224
|
-
|
223
|
+
--relay* Relay job to SSH server
|
224
|
+
--slurm_relay* Relay job to SSH SLURM server
|
225
225
|
-rdep--relay_dependencies* Relay dependencies instead of main job
|
226
226
|
-pdr--produce_dependencies_for_relay Prepare dependencies previous to relay jobs
|
227
227
|
EOF
|
data/test/rbbt/test_tsv.rb
CHANGED
@@ -302,7 +302,7 @@ b 2
|
|
302
302
|
EOF
|
303
303
|
|
304
304
|
TmpFile.with_file(content) do |filename|
|
305
|
-
tsv = TSV.open(filename, :key_field => "Value", :select => Proc.new{|l|
|
305
|
+
tsv = TSV.open(filename, :key_field => "Value", :select => Proc.new{|l| l !~ /1/})
|
306
306
|
assert(! tsv.include?("3"))
|
307
307
|
end
|
308
308
|
end
|
@@ -650,5 +650,20 @@ row3 AA BB|BBB Id3|Id2
|
|
650
650
|
|
651
651
|
end
|
652
652
|
end
|
653
|
+
|
654
|
+
def test_benchmark
|
655
|
+
num = 10_000
|
656
|
+
txt = num.times.inject(nil) do |acc,i|
|
657
|
+
(acc.nil? ? "" : acc << "\n") << (0..10).collect{|v| v == 0 ? i : [v,v] * "|" } * "\t"
|
658
|
+
end
|
659
|
+
|
660
|
+
txt = StringIO.new(([txt] * (10))*"\n")
|
661
|
+
#Misc.profile do
|
662
|
+
Misc.benchmark(1) do
|
663
|
+
data = TSV.open(txt, type: :double, bar: true, merge: true)
|
664
|
+
assert_equal num, data.size
|
665
|
+
end
|
666
|
+
end
|
667
|
+
|
653
668
|
end
|
654
669
|
|
@@ -50,11 +50,11 @@ class TestTSVParallelThrough < Test::Unit::TestCase
|
|
50
50
|
def test_traverse_stream
|
51
51
|
require 'rbbt/sources/organism'
|
52
52
|
|
53
|
-
head =
|
53
|
+
head = 3000
|
54
54
|
|
55
55
|
tsv = datafile_test('identifiers').open
|
56
56
|
res = {}
|
57
|
-
TSV.traverse tsv, :head => head, :into => res do |k,v|
|
57
|
+
TSV.traverse tsv, :head => head, :into => res, :bar => true do |k,v|
|
58
58
|
[k,v]
|
59
59
|
end
|
60
60
|
|
data/test/rbbt/tsv/test_util.rb
CHANGED
@@ -35,4 +35,18 @@ row2 A B Id3
|
|
35
35
|
assert_equal %w(aa bb Id2), tsv.unzip_replicates["row1(1)"]
|
36
36
|
end
|
37
37
|
end
|
38
|
+
|
39
|
+
def test_merge
|
40
|
+
content =<<-EOF
|
41
|
+
#Id ValueA ValueB OtherID
|
42
|
+
row1 a|aa|aaa b|bb|bbb Id1|Id2|Id3
|
43
|
+
row2 A B Id3
|
44
|
+
EOF
|
45
|
+
|
46
|
+
TmpFile.with_file(content) do |filename|
|
47
|
+
tsv = TSV.open(filename, :sep => /\s+/)
|
48
|
+
tsv = tsv.merge({"row3" => [["A3"], ["B3"], ["Id4"]]})
|
49
|
+
assert TSV === tsv
|
50
|
+
end
|
51
|
+
end
|
38
52
|
end
|
@@ -3,9 +3,9 @@ require 'rbbt-util'
|
|
3
3
|
require 'rbbt/util/migrate'
|
4
4
|
|
5
5
|
class TestMigrate < Test::Unit::TestCase
|
6
|
-
def
|
6
|
+
def test_source_locate
|
7
7
|
assert_equal 'var/jobs/', Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user)).last
|
8
|
-
|
8
|
+
assert_include Rbbt.migrate_source_paths(Rbbt.root['var/jobs'].find(:user))[1], (File.join(ENV["HOME"], '.rbbt/var/jobs'))
|
9
9
|
end
|
10
10
|
|
11
11
|
def test_migrate
|
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.39.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-
|
11
|
+
date: 2023-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -390,6 +390,7 @@ files:
|
|
390
390
|
- share/rbbt_commands/migrate
|
391
391
|
- share/rbbt_commands/migrate_job
|
392
392
|
- share/rbbt_commands/purge_job
|
393
|
+
- share/rbbt_commands/resource/claims
|
393
394
|
- share/rbbt_commands/resource/exists
|
394
395
|
- share/rbbt_commands/resource/find
|
395
396
|
- share/rbbt_commands/resource/get
|
@@ -594,110 +595,110 @@ signing_key:
|
|
594
595
|
specification_version: 4
|
595
596
|
summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
|
596
597
|
test_files:
|
597
|
-
- test/rbbt/
|
598
|
-
- test/rbbt/workflow/test_remote_workflow.rb
|
599
|
-
- test/rbbt/workflow/util/test_archive.rb
|
600
|
-
- test/rbbt/workflow/util/test_orchestrator.rb
|
601
|
-
- test/rbbt/workflow/util/test_data.rb
|
602
|
-
- test/rbbt/workflow/test_doc.rb
|
603
|
-
- test/rbbt/workflow/test_schedule.rb
|
604
|
-
- test/rbbt/workflow/test_step.rb
|
605
|
-
- test/rbbt/workflow/step/test_dependencies.rb
|
606
|
-
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
607
|
-
- test/rbbt/workflow/test_task.rb
|
608
|
-
- test/rbbt/resource/test_path.rb
|
609
|
-
- test/rbbt/util/test_colorize.rb
|
610
|
-
- test/rbbt/util/test_procpath.rb
|
611
|
-
- test/rbbt/util/python/test_util.rb
|
612
|
-
- test/rbbt/util/misc/test_development.rb
|
613
|
-
- test/rbbt/util/misc/test_indiferent_hash.rb
|
614
|
-
- test/rbbt/util/misc/test_omics.rb
|
615
|
-
- test/rbbt/util/misc/test_pipes.rb
|
616
|
-
- test/rbbt/util/misc/test_serialize.rb
|
617
|
-
- test/rbbt/util/misc/test_format.rb
|
618
|
-
- test/rbbt/util/misc/test_communication.rb
|
619
|
-
- test/rbbt/util/misc/test_lock.rb
|
620
|
-
- test/rbbt/util/misc/test_multipart_payload.rb
|
621
|
-
- test/rbbt/util/misc/test_bgzf.rb
|
622
|
-
- test/rbbt/util/test_concurrency.rb
|
623
|
-
- test/rbbt/util/test_cmd.rb
|
624
|
-
- test/rbbt/util/R/test_plot.rb
|
625
|
-
- test/rbbt/util/R/test_eval.rb
|
626
|
-
- test/rbbt/util/R/test_model.rb
|
627
|
-
- test/rbbt/util/test_config.rb
|
628
|
-
- test/rbbt/util/test_log.rb
|
629
|
-
- test/rbbt/util/test_simpleDSL.rb
|
630
|
-
- test/rbbt/util/log/test_progress.rb
|
631
|
-
- test/rbbt/util/test_tmpfile.rb
|
632
|
-
- test/rbbt/util/test_R.rb
|
633
|
-
- test/rbbt/util/test_excel2tsv.rb
|
634
|
-
- test/rbbt/util/test_misc.rb
|
635
|
-
- test/rbbt/util/test_open.rb
|
636
|
-
- test/rbbt/util/test_ssh.rb
|
637
|
-
- test/rbbt/util/test_simpleopt.rb
|
638
|
-
- test/rbbt/util/simpleopt/test_parse.rb
|
639
|
-
- test/rbbt/util/simpleopt/test_setup.rb
|
640
|
-
- test/rbbt/util/simpleopt/test_get.rb
|
641
|
-
- test/rbbt/util/test_python.rb
|
642
|
-
- test/rbbt/util/test_filecache.rb
|
643
|
-
- test/rbbt/util/concurrency/test_processes.rb
|
644
|
-
- test/rbbt/util/concurrency/test_threads.rb
|
645
|
-
- test/rbbt/util/concurrency/processes/test_socket.rb
|
646
|
-
- test/rbbt/util/test_semaphore.rb
|
647
|
-
- test/rbbt/util/test_chain_methods.rb
|
648
|
-
- test/rbbt/util/test_migrate.rb
|
649
|
-
- test/rbbt/test_resource.rb
|
650
|
-
- test/rbbt/test_packed_index.rb
|
651
|
-
- test/rbbt/tsv/test_change_id.rb
|
652
|
-
- test/rbbt/tsv/test_attach.rb
|
653
|
-
- test/rbbt/tsv/test_filter.rb
|
654
|
-
- test/rbbt/tsv/test_marshal.rb
|
655
|
-
- test/rbbt/tsv/test_parser.rb
|
656
|
-
- test/rbbt/tsv/test_csv.rb
|
657
|
-
- test/rbbt/tsv/test_accessor.rb
|
658
|
-
- test/rbbt/tsv/test_matrix.rb
|
659
|
-
- test/rbbt/tsv/test_field_index.rb
|
660
|
-
- test/rbbt/tsv/test_util.rb
|
661
|
-
- test/rbbt/tsv/test_index.rb
|
662
|
-
- test/rbbt/tsv/test_parallel.rb
|
663
|
-
- test/rbbt/tsv/test_manipulate.rb
|
664
|
-
- test/rbbt/tsv/test_excel.rb
|
665
|
-
- test/rbbt/tsv/parallel/test_through.rb
|
666
|
-
- test/rbbt/tsv/parallel/test_traverse.rb
|
667
|
-
- test/rbbt/tsv/test_stream.rb
|
668
|
-
- test/rbbt/test_association.rb
|
669
|
-
- test/rbbt/hpc/test_batch.rb
|
670
|
-
- test/rbbt/hpc/orchestrate/test_chains.rb
|
671
|
-
- test/rbbt/hpc/orchestrate/test_rules.rb
|
672
|
-
- test/rbbt/hpc/orchestrate/test_batches.rb
|
673
|
-
- test/rbbt/hpc/test_slurm.rb
|
674
|
-
- test/rbbt/hpc/test_orchestrate.rb
|
598
|
+
- test/rbbt/annotations/test_util.rb
|
675
599
|
- test/rbbt/association/test_database.rb
|
600
|
+
- test/rbbt/association/test_index.rb
|
676
601
|
- test/rbbt/association/test_item.rb
|
677
602
|
- test/rbbt/association/test_open.rb
|
678
603
|
- test/rbbt/association/test_util.rb
|
679
|
-
- test/rbbt/
|
680
|
-
- test/rbbt/
|
681
|
-
- test/rbbt/
|
604
|
+
- test/rbbt/entity/test_identifiers.rb
|
605
|
+
- test/rbbt/hpc/orchestrate/test_batches.rb
|
606
|
+
- test/rbbt/hpc/orchestrate/test_chains.rb
|
607
|
+
- test/rbbt/hpc/orchestrate/test_rules.rb
|
608
|
+
- test/rbbt/hpc/test_batch.rb
|
609
|
+
- test/rbbt/hpc/test_orchestrate.rb
|
610
|
+
- test/rbbt/hpc/test_slurm.rb
|
611
|
+
- test/rbbt/knowledge_base/test_enrichment.rb
|
612
|
+
- test/rbbt/knowledge_base/test_entity.rb
|
613
|
+
- test/rbbt/knowledge_base/test_query.rb
|
614
|
+
- test/rbbt/knowledge_base/test_registry.rb
|
615
|
+
- test/rbbt/knowledge_base/test_syndicate.rb
|
616
|
+
- test/rbbt/knowledge_base/test_traverse.rb
|
617
|
+
- test/rbbt/persist/test_tsv.rb
|
682
618
|
- test/rbbt/persist/tsv/test_cdb.rb
|
619
|
+
- test/rbbt/persist/tsv/test_kyotocabinet.rb
|
620
|
+
- test/rbbt/persist/tsv/test_leveldb.rb
|
683
621
|
- test/rbbt/persist/tsv/test_lmdb.rb
|
684
622
|
- test/rbbt/persist/tsv/test_sharder.rb
|
685
|
-
- test/rbbt/persist/tsv/test_leveldb.rb
|
686
623
|
- test/rbbt/persist/tsv/test_tokyocabinet.rb
|
687
|
-
- test/rbbt/
|
688
|
-
- test/rbbt/test_tsv.rb
|
624
|
+
- test/rbbt/resource/test_path.rb
|
689
625
|
- test/rbbt/test_annotations.rb
|
626
|
+
- test/rbbt/test_association.rb
|
627
|
+
- test/rbbt/test_entity.rb
|
690
628
|
- test/rbbt/test_fix_width_table.rb
|
691
|
-
- test/rbbt/test_workflow.rb
|
692
|
-
- test/rbbt/entity/test_identifiers.rb
|
693
|
-
- test/rbbt/annotations/test_util.rb
|
694
629
|
- test/rbbt/test_hpc.rb
|
630
|
+
- test/rbbt/test_knowledge_base.rb
|
695
631
|
- test/rbbt/test_monitor.rb
|
632
|
+
- test/rbbt/test_packed_index.rb
|
696
633
|
- test/rbbt/test_persist.rb
|
697
|
-
- test/rbbt/
|
698
|
-
- test/rbbt/
|
699
|
-
- test/rbbt/
|
700
|
-
- test/rbbt/
|
701
|
-
- test/rbbt/
|
702
|
-
- test/rbbt/
|
634
|
+
- test/rbbt/test_resource.rb
|
635
|
+
- test/rbbt/test_tsv.rb
|
636
|
+
- test/rbbt/test_workflow.rb
|
637
|
+
- test/rbbt/tsv/parallel/test_through.rb
|
638
|
+
- test/rbbt/tsv/parallel/test_traverse.rb
|
639
|
+
- test/rbbt/tsv/test_accessor.rb
|
640
|
+
- test/rbbt/tsv/test_attach.rb
|
641
|
+
- test/rbbt/tsv/test_change_id.rb
|
642
|
+
- test/rbbt/tsv/test_csv.rb
|
643
|
+
- test/rbbt/tsv/test_excel.rb
|
644
|
+
- test/rbbt/tsv/test_field_index.rb
|
645
|
+
- test/rbbt/tsv/test_filter.rb
|
646
|
+
- test/rbbt/tsv/test_index.rb
|
647
|
+
- test/rbbt/tsv/test_manipulate.rb
|
648
|
+
- test/rbbt/tsv/test_marshal.rb
|
649
|
+
- test/rbbt/tsv/test_matrix.rb
|
650
|
+
- test/rbbt/tsv/test_parallel.rb
|
651
|
+
- test/rbbt/tsv/test_parser.rb
|
652
|
+
- test/rbbt/tsv/test_stream.rb
|
653
|
+
- test/rbbt/tsv/test_util.rb
|
654
|
+
- test/rbbt/util/R/test_eval.rb
|
655
|
+
- test/rbbt/util/R/test_model.rb
|
656
|
+
- test/rbbt/util/R/test_plot.rb
|
657
|
+
- test/rbbt/util/concurrency/processes/test_socket.rb
|
658
|
+
- test/rbbt/util/concurrency/test_processes.rb
|
659
|
+
- test/rbbt/util/concurrency/test_threads.rb
|
660
|
+
- test/rbbt/util/log/test_progress.rb
|
661
|
+
- test/rbbt/util/misc/test_bgzf.rb
|
662
|
+
- test/rbbt/util/misc/test_communication.rb
|
663
|
+
- test/rbbt/util/misc/test_development.rb
|
664
|
+
- test/rbbt/util/misc/test_format.rb
|
665
|
+
- test/rbbt/util/misc/test_indiferent_hash.rb
|
666
|
+
- test/rbbt/util/misc/test_lock.rb
|
667
|
+
- test/rbbt/util/misc/test_multipart_payload.rb
|
668
|
+
- test/rbbt/util/misc/test_omics.rb
|
669
|
+
- test/rbbt/util/misc/test_pipes.rb
|
670
|
+
- test/rbbt/util/misc/test_serialize.rb
|
671
|
+
- test/rbbt/util/python/test_util.rb
|
672
|
+
- test/rbbt/util/simpleopt/test_get.rb
|
673
|
+
- test/rbbt/util/simpleopt/test_parse.rb
|
674
|
+
- test/rbbt/util/simpleopt/test_setup.rb
|
675
|
+
- test/rbbt/util/test_R.rb
|
676
|
+
- test/rbbt/util/test_chain_methods.rb
|
677
|
+
- test/rbbt/util/test_cmd.rb
|
678
|
+
- test/rbbt/util/test_colorize.rb
|
679
|
+
- test/rbbt/util/test_concurrency.rb
|
680
|
+
- test/rbbt/util/test_config.rb
|
681
|
+
- test/rbbt/util/test_excel2tsv.rb
|
682
|
+
- test/rbbt/util/test_filecache.rb
|
683
|
+
- test/rbbt/util/test_log.rb
|
684
|
+
- test/rbbt/util/test_migrate.rb
|
685
|
+
- test/rbbt/util/test_misc.rb
|
686
|
+
- test/rbbt/util/test_open.rb
|
687
|
+
- test/rbbt/util/test_procpath.rb
|
688
|
+
- test/rbbt/util/test_python.rb
|
689
|
+
- test/rbbt/util/test_semaphore.rb
|
690
|
+
- test/rbbt/util/test_simpleDSL.rb
|
691
|
+
- test/rbbt/util/test_simpleopt.rb
|
692
|
+
- test/rbbt/util/test_ssh.rb
|
693
|
+
- test/rbbt/util/test_tmpfile.rb
|
694
|
+
- test/rbbt/workflow/step/test_dependencies.rb
|
695
|
+
- test/rbbt/workflow/step/test_save_load_inputs.rb
|
696
|
+
- test/rbbt/workflow/test_doc.rb
|
697
|
+
- test/rbbt/workflow/test_remote_workflow.rb
|
698
|
+
- test/rbbt/workflow/test_schedule.rb
|
699
|
+
- test/rbbt/workflow/test_step.rb
|
700
|
+
- test/rbbt/workflow/test_task.rb
|
701
|
+
- test/rbbt/workflow/util/test_archive.rb
|
702
|
+
- test/rbbt/workflow/util/test_data.rb
|
703
|
+
- test/rbbt/workflow/util/test_orchestrator.rb
|
703
704
|
- test/test_helper.rb
|