rbbt-util 5.38.1 → 5.39.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/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
|