rbbt-util 5.32.0 → 5.32.6

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef9271207cbe69c725a4ab3a8553295d3b68e5f04ec1bfd25ad4654f162ed9cb
4
- data.tar.gz: '087009c9ac6b4fee6d9fa7bceb003e050a0cc1e73f96987ec792c07388760633'
3
+ metadata.gz: 2bc1c3443b09a4274a030b64479091e506ed1e165371d999eb154b750b2806b3
4
+ data.tar.gz: 83d0ae91ee88ed3283985b5d7101759bbb45db37fbb54271bc7f16fae8ab4f52
5
5
  SHA512:
6
- metadata.gz: b031c1143992b4c75eeeabcb231d656af2927a5bc46a0ea3527c4c90b7ffcc5eb44b0ec02ef9e31d4879fcf2b3192165ba5b22cd1978dc5250eec355f2556bdc
7
- data.tar.gz: eb43875132a5f4ddc7ff9ae5dcaed7677c6bff84a4d61454cad9a83361d2a3dd63432cd5b28c656cd9e7bb589b8517bbdd3b57c0fa370527724d3ae55810b0cb
6
+ metadata.gz: 0b83533d504d6d66b06083a7f19a689e9b3f82fefbc26278d9bd9af0efbdfb010f87cc609bf90396bb17257a643715e335ac8127f9ff1f11ccdd52f639b77ca8
7
+ data.tar.gz: a4b93ca7d481120edde1d65f529984e652c261f365c67bea6d1c463d360733006d29486d3851d0b071ba2005cb90cf71382eb5665c7d4e1828a25f322b570ce7
data/lib/rbbt/hpc/lsf.rb CHANGED
@@ -8,7 +8,7 @@ module HPC
8
8
  def self.batch_system_variables
9
9
  <<-EOF
10
10
  let TOTAL_PROCESORS="$(cat /proc/cpuinfo|grep ^processor |wc -l)"
11
- let MAX_MEMORY_DEFAULT="$(grep MemTotal /proc/meminfo|grep -o "[[:digit:]]*") / ( (1024 * $TOTAL_PROCESORS) / $SLURM_CPUS_PER_TASK )"
11
+ let MAX_MEMORY_DEFAULT="$(grep MemTotal /proc/meminfo|grep -o "[[:digit:]]*") / ( (1024 * $TOTAL_PROCESORS) / $LSB_MAX_NUM_PROCESSORS )"
12
12
  [ ! -z $LSB_MAX_MEM_RUSAGE ] && let MAX_MEMORY="$LSB_MAX_MEM_RUSAGE" || MAX_MEMORY="$MAX_MEMORY_DEFAULT"
13
13
  export MAX_MEMORY_DEFAULT
14
14
  export MAX_MEMORY
@@ -132,7 +132,7 @@ module Persist
132
132
 
133
133
  def read_lock
134
134
  read if closed?
135
- if read?
135
+ if read? || write?
136
136
  return yield
137
137
  end
138
138
 
data/lib/rbbt/resource.rb CHANGED
@@ -6,6 +6,7 @@ require 'set'
6
6
 
7
7
 
8
8
  module Resource
9
+ class ResourceNotFound < RbbtException; end
9
10
 
10
11
  class << self
11
12
  attr_accessor :lock_dir
@@ -154,16 +155,18 @@ module Resource
154
155
  rake_dir, content = rake_for(path)
155
156
  rake_dir = Path.setup(rake_dir.dup, self.pkgdir, self)
156
157
  else
157
- begin
158
- if path !~ /\.(gz|bgz)$/
158
+ if path !~ /\.(gz|bgz)$/
159
+ begin
160
+ produce(path.annotate(path + '.gz'), force)
161
+ rescue ResourceNotFound
159
162
  begin
160
- produce(path.annotate(path + '.gz'), force)
161
- rescue
162
163
  produce(path.annotate(path + '.bgz'), force)
164
+ rescue ResourceNotFound
165
+ raise ResourceNotFound, "Resource is missing and does not seem to be claimed: #{ self } -- #{ path } "
163
166
  end
164
167
  end
165
- rescue
166
- raise "Resource is missing and does not seem to be claimed: #{ self } -- #{ path } "
168
+ else
169
+ raise ResourceNotFound, "Resource is missing and does not seem to be claimed: #{ self } -- #{ path } "
167
170
  end
168
171
  end
169
172
 
@@ -174,7 +177,7 @@ module Resource
174
177
  end
175
178
 
176
179
  if type and not File.exist?(final_path) or force
177
- Log.medium "Producing: #{ final_path }"
180
+ Log.medium "Producing: (#{self.to_s}) #{ final_path }"
178
181
  lock_filename = Persist.persistence_path(final_path, {:dir => Resource.lock_dir})
179
182
 
180
183
  Misc.lock lock_filename do
data/lib/rbbt/tsv/csv.rb CHANGED
@@ -8,6 +8,7 @@ module TSV
8
8
  noheaders = ! headers
9
9
 
10
10
  type = options.delete :type
11
+ cast = options.delete :cast
11
12
  merge = options.delete :merge
12
13
  key_field = options.delete :key_field
13
14
  fields = options.delete :fields
@@ -46,6 +47,10 @@ module TSV
46
47
  else
47
48
  key, *values = row
48
49
  end
50
+
51
+ if cast
52
+ values = values.collect{|v| v.send cast }
53
+ end
49
54
 
50
55
  case type
51
56
  when :double, :flat
@@ -40,7 +40,7 @@ module TSV
40
40
  # Process fields line
41
41
 
42
42
  preamble << line if line
43
- while line and (TrueClass === @header_hash or (String === @header_hash and Misc.fixutf8(line) =~ /^#{@header_hash}/ ))
43
+ while line && (TrueClass === @header_hash || (String === @header_hash && Misc.fixutf8(line) =~ /^#{@header_hash}/ ))
44
44
  @fields = line.split(@sep, -1)
45
45
  @key_field = @fields.shift
46
46
  @key_field = @key_field[(0 + header_hash.length)..-1] if String === @header_hash
@@ -49,7 +49,7 @@ module TSV
49
49
  line = (@header_hash != "" ? stream.gets : nil)
50
50
  line = Misc.fixutf8 line.chomp if line
51
51
  preamble << line if line
52
- @header_hash = false if TrueClass === @header_hash
52
+ @header_hash = false if TrueClass === @header_hash || @header_hash == ""
53
53
  end
54
54
 
55
55
  @preamble = preamble[0..-3] * "\n"
@@ -56,6 +56,7 @@ module TSV
56
56
  preambles = []
57
57
 
58
58
  streams = streams.collect do |stream|
59
+
59
60
  parser = TSV::Parser.new stream, options.dup
60
61
  sfields = parser.fields
61
62
 
@@ -43,7 +43,7 @@ module Misc
43
43
  File.mkfifo path
44
44
  yield path
45
45
  ensure
46
- FileUtils.rm path if erase
46
+ FileUtils.rm path if erase && File.exists?(path)
47
47
  end
48
48
  end
49
49
 
data/lib/rbbt/workflow.rb CHANGED
@@ -187,17 +187,21 @@ module Workflow
187
187
  clean_name = wf_name.sub(/::.*/,'')
188
188
  Log.info{"Looking for '#{wf_name}' in '#{clean_name}'"}
189
189
  require_workflow clean_name
190
- return Misc.string2const Misc.camel_case(wf_name)
190
+ workflow = Misc.string2const Misc.camel_case(wf_name)
191
+ workflow.load_documentation
192
+ return workflow
191
193
  end
192
194
 
193
195
  Log.high{"Loading workflow #{wf_name}"}
194
196
  require_local_workflow(wf_name) or
195
197
  (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 }")
196
- begin
197
- Misc.string2const Misc.camel_case(wf_name)
198
- rescue
199
- Workflow.workflows.last || true
200
- end
198
+ workflow = begin
199
+ Misc.string2const Misc.camel_case(wf_name)
200
+ rescue
201
+ Workflow.workflows.last || true
202
+ end
203
+ workflow.load_documentation
204
+ workflow
201
205
  end
202
206
 
203
207
  attr_accessor :description
@@ -596,6 +600,17 @@ module Workflow
596
600
  true
597
601
  end
598
602
  end
603
+
604
+ if ! Open.exists?(step.info_file)
605
+ begin
606
+ workflow = step.path.split("/")[-3]
607
+ task_name = step.path.split("/")[-2]
608
+ workflow = Kernel.const_get workflow
609
+ step.task = workflow.tasks[task_name.to_sym]
610
+ rescue
611
+ Log.exception $!
612
+ end
613
+ end
599
614
  step
600
615
  end
601
616
 
@@ -74,6 +74,7 @@ module Workflow
74
74
  def dep_task(name, workflow, oname, *rest, &block)
75
75
  dep(workflow, oname, *rest, &block)
76
76
  extension workflow.tasks[oname].extension if workflow.tasks.include?(oname) unless @extension
77
+ returns workflow.tasks[oname].result_description if workflow.tasks.include?(oname) unless @result_description
77
78
  task name do
78
79
  raise RbbtException, "dependency not found in dep_task" if dependencies.empty?
79
80
  dep = dependencies.last
@@ -45,10 +45,25 @@ module Workflow
45
45
  end
46
46
 
47
47
  def load_documentation
48
- @documentation = Workflow.parse_workflow_doc documentation_markdown
48
+ return if @documentation
49
+ @documentation ||= Workflow.parse_workflow_doc documentation_markdown
49
50
  @documentation[:tasks].each do |task, description|
50
- raise "Documentation for #{ task }, but not a #{ self.to_s } task" unless tasks.include? task.to_sym
51
- tasks[task.to_sym].description = description
51
+ if task.include? "#"
52
+ workflow, task = task.split("#")
53
+ workflow = begin
54
+ Kernel.const_get workflow
55
+ rescue
56
+ next
57
+ end
58
+ else
59
+ workflow = self
60
+ end
61
+
62
+ if workflow.tasks.include? task.to_sym
63
+ workflow.tasks[task.to_sym].description = description
64
+ else
65
+ Log.low "Documentation for #{ task }, but not a #{ workflow.to_s } task"
66
+ end
52
67
  end
53
68
  end
54
69
 
@@ -97,6 +97,7 @@ class Step
97
97
  Open.ln_s(value.path, path)
98
98
  when type.to_s == "file"
99
99
  if String === value && File.exists?(value)
100
+ value = File.expand_path(value)
100
101
  Open.ln_s(value, path)
101
102
  else
102
103
  value = value.collect{|v| v = "#{v}" if Path === v; v }if Array === value
@@ -122,7 +122,7 @@ module Workflow
122
122
  last = _prov_tasks(workflow.dep_tree(task_name))
123
123
 
124
124
  if child
125
- description << "->" << task_name.to_s
125
+ description << "-> " << task_name.to_s
126
126
  elsif first
127
127
  description << "" << task_name.to_s
128
128
  else
@@ -198,7 +198,7 @@ module Workflow
198
198
  puts Misc.format_definition_list_item(name.to_s, description, Log.terminal_width, 20, :yellow)
199
199
 
200
200
  prov_string = prov_string(dep_tree(name))
201
- puts Log.color :blue, " ->" + prov_string if prov_string && ! prov_string.empty?
201
+ puts Misc.format_paragraph Log.color(:blue, "-> " + prov_string) if prov_string && ! prov_string.empty?
202
202
  end
203
203
 
204
204
  else
@@ -1,6 +1,6 @@
1
1
  class Step
2
2
 
3
- MAIN_RSYNC_ARGS="-avztAXHP"
3
+ MAIN_RSYNC_ARGS="-avztAXHP --copy-links"
4
4
 
5
5
  def self.link_job(path, target_dir, task = nil, workflow = nil)
6
6
  Path.setup(target_dir)
@@ -10,6 +10,9 @@ module Workflow
10
10
  started = job.info[:started]
11
11
  ddone = job.info[:done]
12
12
 
13
+ started = Time.parse started if String === started
14
+ ddone = Time.parse ddone if String === ddone
15
+
13
16
  code = [job.workflow, job.task_name].compact.collect{|s| s.to_s} * " · "
14
17
  code = job.name + " - " + code
15
18
 
@@ -70,8 +73,8 @@ module Workflow
70
73
 
71
74
  start = data.column("Start.second").values.flatten.collect{|v| v.to_f}.min
72
75
  eend = data.column("End.second").values.flatten.collect{|v| v.to_f}.max
73
- total = eend - start
74
- Log.info "Total time elapsed: #{total} seconds"
76
+ total = eend - start unless eend.nil? || start.nil?
77
+ Log.info "Total time elapsed: #{total} seconds" if total
75
78
 
76
79
  data
77
80
  end
@@ -140,7 +143,13 @@ rbbt.png_plot('#{plot}', 'plot(timeline)', width=#{width}, height=#{height}, poi
140
143
  info = tasks_info[task] ||= IndiferentHash.setup({})
141
144
  dep_info = IndiferentHash.setup(dep.info)
142
145
 
143
- time = dep_info[:done] - dep_info[:started]
146
+ ddone = dep_info[:done]
147
+ started = dep_info[:started]
148
+
149
+ started = Time.parse started if String === started
150
+ ddone = Time.parse ddone if String === ddone
151
+
152
+ time = ddone - started
144
153
  info[:time] ||= []
145
154
  info[:time] << time
146
155
 
@@ -178,19 +187,25 @@ rbbt.png_plot('#{plot}', 'plot(timeline)', width=#{width}, height=#{height}, poi
178
187
  jobs = []
179
188
  seed_jobs.each do |step|
180
189
  jobs += step.rec_dependencies + [step]
181
-
182
190
  step.info[:archived_info].each do |path,ainfo|
183
191
  archived_step = Step.new path
184
- class << archived_step
185
- self
186
- end.define_method :info do
192
+
193
+ archived_step.define_singleton_method :info do
187
194
  ainfo
188
195
  end
196
+
197
+ #class << archived_step
198
+ # self
199
+ #end.define_method :info do
200
+ # ainfo
201
+ #end
202
+
189
203
  jobs << archived_step
190
204
  end if step.info[:archived_info]
205
+
191
206
  end
192
207
 
193
- jobs = jobs.uniq.sort_by{|job| t = job.info[:done]; t || Open.mtime(job.path) || 0 }
208
+ jobs = jobs.uniq.sort_by{|job| t = job.info[:started] || Open.mtime(job.path) || Time.now; Time === t ? t : Time.parse(t) }
194
209
 
195
210
  data = trace_job_times(jobs, options[:fix_gap])
196
211
 
@@ -200,10 +215,10 @@ rbbt.png_plot('#{plot}', 'plot(timeline)', width=#{width}, height=#{height}, poi
200
215
 
201
216
  raise "No jobs to process" if data.size == 0
202
217
 
203
- plot, size, width, height = options.values_at :plot, :width, :height
218
+ plot, size, width, height = options.values_at :plot, :size, :width, :height
204
219
 
205
220
  size = 800 if size.nil?
206
- width = size * 2 if width.nil?
221
+ width = size.to_i * 2 if width.nil?
207
222
  height = size if height.nil?
208
223
 
209
224
  plot_trace_job_times(data, plot, width, height) if plot
@@ -94,12 +94,12 @@ real_paths.each do |source|
94
94
  end
95
95
 
96
96
  if options[:target]
97
- target_path = [options[:target], target] * ":"
97
+ target_path = [options[:target], "'" + target + "'"] * ":"
98
98
  else
99
- target_path = target
99
+ target_path = "'" + target + "'"
100
100
  end
101
101
 
102
- cmd = "rsync -avztAXHP --copy-unsafe-links #{test_str} #{excludes_str} #{source} #{target_path} #{other * " "}"
102
+ cmd = "rsync -avztAXHP --copy-unsafe-links #{test_str} #{excludes_str} '#{source}' #{target_path} #{other * " "}"
103
103
 
104
104
  cmd << " && rm -Rf #{source}" if options[:delete]
105
105
 
@@ -8,9 +8,11 @@ $0 = "rbbt #{$previous_commands*" "} #{ File.basename(__FILE__) }" if $previous_
8
8
 
9
9
  options = SOPT.setup <<EOF
10
10
 
11
- Make a job forget all its dependencies and archive their meta-data
11
+ Make a job forget its dependencies and archive their meta-data
12
12
 
13
- $ #{$0} [options] <job_path>
13
+ $ #{$0} [options] <job_path> [<task_name>|<workflow>#<task_name>] ...
14
+
15
+ Specific dependencies can be specified as . Otherwise, all are forgoten.
14
16
 
15
17
  -h--help Print this help
16
18
  -p--purge Purge dependencies
@@ -26,7 +28,7 @@ if options[:help]
26
28
  exit 0
27
29
  end
28
30
 
29
- path = ARGV[0]
31
+ path, *remove = ARGV
30
32
 
31
33
  raise ParameterException, "No path given" if path.nil?
32
34
  step = Workflow.load_step path
@@ -34,10 +36,20 @@ step = Workflow.load_step path
34
36
  step.archive_deps
35
37
  step.copy_files_dir
36
38
  dependencies = step.dependencies
37
- step.set_info :dependencies, []
38
39
 
39
- if options[:purge]
40
+ if remove && remove.any?
41
+ remove_paths = dependencies.select do |dep|
42
+ remove.include?(dep.task_name) || remove.include?([dep.workflow.to_s, dep.task_name] * "#")
43
+ end.collect{|dep| dep.path }
44
+ else
45
+ remove_paths = dependencies.collect{|dep| dep.path }
46
+ end
47
+
48
+ step.set_info :dependencies, step.info[:dependencies].reject{|info| remove_paths.include? info.last}
49
+
50
+ if options[:purge] || options[:recursive_purge]
40
51
  dependencies.each do |dependency|
52
+ next unless remove_paths.include? dependency.path
41
53
  Step.purge(dependency.path, options[:recursive_purge])
42
54
  end
43
55
  end
@@ -51,7 +51,7 @@ class TestPersistTSVTC < Test::Unit::TestCase
51
51
  end
52
52
  end
53
53
 
54
- def test_annotation_persist_with_repeitions
54
+ def test_annotation_persist_with_repetitions
55
55
  TmpFile.with_file do |tmp|
56
56
  entity1 = "Entity 1"
57
57
  entity2 = "Entity 2"
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.32.0
4
+ version: 5.32.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-04-15 00:00:00.000000000 Z
11
+ date: 2021-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -542,7 +542,7 @@ homepage: http://github.com/mikisvaz/rbbt-util
542
542
  licenses:
543
543
  - MIT
544
544
  metadata: {}
545
- post_install_message:
545
+ post_install_message:
546
546
  rdoc_options: []
547
547
  require_paths:
548
548
  - lib
@@ -557,101 +557,102 @@ required_rubygems_version: !ruby/object:Gem::Requirement
557
557
  - !ruby/object:Gem::Version
558
558
  version: '0'
559
559
  requirements: []
560
- rubygems_version: 3.1.4
561
- signing_key:
560
+ rubyforge_project:
561
+ rubygems_version: 2.7.6
562
+ signing_key:
562
563
  specification_version: 4
563
564
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
564
565
  test_files:
566
+ - test/test_helper.rb
567
+ - test/rbbt/entity/test_identifiers.rb
568
+ - test/rbbt/test_resource.rb
569
+ - test/rbbt/test_association.rb
570
+ - test/rbbt/hpc/test_slurm.rb
571
+ - test/rbbt/hpc/test_batch.rb
572
+ - test/rbbt/persist/test_tsv.rb
573
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
574
+ - test/rbbt/persist/tsv/test_lmdb.rb
575
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
576
+ - test/rbbt/persist/tsv/test_cdb.rb
577
+ - test/rbbt/persist/tsv/test_leveldb.rb
578
+ - test/rbbt/persist/tsv/test_sharder.rb
579
+ - test/rbbt/test_packed_index.rb
565
580
  - test/rbbt/test_entity.rb
581
+ - test/rbbt/test_fix_width_table.rb
566
582
  - test/rbbt/workflow/test_remote_workflow.rb
567
- - test/rbbt/workflow/util/test_orchestrator.rb
568
583
  - test/rbbt/workflow/test_doc.rb
569
- - test/rbbt/workflow/test_schedule.rb
570
- - test/rbbt/workflow/test_step.rb
571
584
  - test/rbbt/workflow/step/test_dependencies.rb
585
+ - test/rbbt/workflow/test_schedule.rb
586
+ - test/rbbt/workflow/util/test_orchestrator.rb
572
587
  - test/rbbt/workflow/test_task.rb
573
- - test/rbbt/resource/test_path.rb
574
- - test/rbbt/util/test_colorize.rb
588
+ - test/rbbt/workflow/test_step.rb
589
+ - test/rbbt/test_tsv.rb
590
+ - test/rbbt/test_annotations.rb
591
+ - test/rbbt/test_knowledge_base.rb
592
+ - test/rbbt/util/test_simpleDSL.rb
593
+ - test/rbbt/util/concurrency/processes/test_socket.rb
594
+ - test/rbbt/util/concurrency/test_processes.rb
595
+ - test/rbbt/util/concurrency/test_threads.rb
596
+ - test/rbbt/util/test_filecache.rb
597
+ - test/rbbt/util/simpleopt/test_get.rb
598
+ - test/rbbt/util/simpleopt/test_parse.rb
599
+ - test/rbbt/util/simpleopt/test_setup.rb
600
+ - test/rbbt/util/test_misc.rb
601
+ - test/rbbt/util/test_excel2tsv.rb
602
+ - test/rbbt/util/test_semaphore.rb
575
603
  - test/rbbt/util/test_procpath.rb
576
- - test/rbbt/util/misc/test_development.rb
577
- - test/rbbt/util/misc/test_omics.rb
578
- - test/rbbt/util/misc/test_pipes.rb
579
- - test/rbbt/util/misc/test_format.rb
580
- - test/rbbt/util/misc/test_lock.rb
581
- - test/rbbt/util/misc/test_multipart_payload.rb
582
- - test/rbbt/util/misc/test_bgzf.rb
583
- - test/rbbt/util/test_concurrency.rb
584
- - test/rbbt/util/test_cmd.rb
585
- - test/rbbt/util/R/test_plot.rb
586
- - test/rbbt/util/R/test_eval.rb
587
604
  - test/rbbt/util/R/test_model.rb
605
+ - test/rbbt/util/R/test_eval.rb
606
+ - test/rbbt/util/R/test_plot.rb
607
+ - test/rbbt/util/test_open.rb
608
+ - test/rbbt/util/test_tmpfile.rb
609
+ - test/rbbt/util/test_cmd.rb
610
+ - test/rbbt/util/test_concurrency.rb
611
+ - test/rbbt/util/test_colorize.rb
588
612
  - test/rbbt/util/test_config.rb
589
613
  - test/rbbt/util/test_log.rb
590
- - test/rbbt/util/test_simpleDSL.rb
591
- - test/rbbt/util/log/test_progress.rb
592
- - test/rbbt/util/test_tmpfile.rb
593
- - test/rbbt/util/test_R.rb
594
- - test/rbbt/util/test_excel2tsv.rb
595
- - test/rbbt/util/test_misc.rb
596
- - test/rbbt/util/test_open.rb
597
614
  - test/rbbt/util/test_simpleopt.rb
598
- - test/rbbt/util/simpleopt/test_parse.rb
599
- - test/rbbt/util/simpleopt/test_setup.rb
600
- - test/rbbt/util/simpleopt/test_get.rb
601
615
  - test/rbbt/util/test_python.rb
602
- - test/rbbt/util/test_filecache.rb
603
- - test/rbbt/util/concurrency/test_processes.rb
604
- - test/rbbt/util/concurrency/test_threads.rb
605
- - test/rbbt/util/concurrency/processes/test_socket.rb
606
- - test/rbbt/util/test_semaphore.rb
607
616
  - test/rbbt/util/test_chain_methods.rb
608
- - test/rbbt/test_resource.rb
609
- - test/rbbt/test_packed_index.rb
610
- - test/rbbt/tsv/test_change_id.rb
611
- - test/rbbt/tsv/test_attach.rb
612
- - test/rbbt/tsv/test_filter.rb
617
+ - test/rbbt/util/misc/test_omics.rb
618
+ - test/rbbt/util/misc/test_lock.rb
619
+ - test/rbbt/util/misc/test_multipart_payload.rb
620
+ - test/rbbt/util/misc/test_bgzf.rb
621
+ - test/rbbt/util/misc/test_development.rb
622
+ - test/rbbt/util/misc/test_format.rb
623
+ - test/rbbt/util/misc/test_pipes.rb
624
+ - test/rbbt/util/log/test_progress.rb
625
+ - test/rbbt/util/test_R.rb
626
+ - test/rbbt/test_workflow.rb
627
+ - test/rbbt/knowledge_base/test_entity.rb
628
+ - test/rbbt/knowledge_base/test_enrichment.rb
629
+ - test/rbbt/knowledge_base/test_traverse.rb
630
+ - test/rbbt/knowledge_base/test_syndicate.rb
631
+ - test/rbbt/knowledge_base/test_registry.rb
632
+ - test/rbbt/knowledge_base/test_query.rb
633
+ - test/rbbt/association/test_item.rb
634
+ - test/rbbt/association/test_util.rb
635
+ - test/rbbt/association/test_open.rb
636
+ - test/rbbt/association/test_database.rb
637
+ - test/rbbt/association/test_index.rb
638
+ - test/rbbt/annotations/test_util.rb
639
+ - test/rbbt/test_monitor.rb
640
+ - test/rbbt/resource/test_path.rb
641
+ - test/rbbt/test_hpc.rb
642
+ - test/rbbt/test_persist.rb
613
643
  - test/rbbt/tsv/test_parser.rb
614
644
  - test/rbbt/tsv/test_csv.rb
615
- - test/rbbt/tsv/test_accessor.rb
616
- - test/rbbt/tsv/test_matrix.rb
645
+ - test/rbbt/tsv/test_manipulate.rb
617
646
  - test/rbbt/tsv/test_field_index.rb
618
647
  - test/rbbt/tsv/test_util.rb
619
- - test/rbbt/tsv/test_index.rb
648
+ - test/rbbt/tsv/test_accessor.rb
649
+ - test/rbbt/tsv/test_filter.rb
650
+ - test/rbbt/tsv/test_stream.rb
620
651
  - test/rbbt/tsv/test_parallel.rb
621
- - test/rbbt/tsv/test_manipulate.rb
652
+ - test/rbbt/tsv/test_matrix.rb
653
+ - test/rbbt/tsv/test_attach.rb
622
654
  - test/rbbt/tsv/test_excel.rb
623
- - test/rbbt/tsv/parallel/test_through.rb
655
+ - test/rbbt/tsv/test_change_id.rb
656
+ - test/rbbt/tsv/test_index.rb
624
657
  - test/rbbt/tsv/parallel/test_traverse.rb
625
- - test/rbbt/tsv/test_stream.rb
626
- - test/rbbt/test_association.rb
627
- - test/rbbt/hpc/test_batch.rb
628
- - test/rbbt/hpc/test_slurm.rb
629
- - test/rbbt/association/test_database.rb
630
- - test/rbbt/association/test_item.rb
631
- - test/rbbt/association/test_open.rb
632
- - test/rbbt/association/test_util.rb
633
- - test/rbbt/association/test_index.rb
634
- - test/rbbt/test_knowledge_base.rb
635
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
636
- - test/rbbt/persist/tsv/test_cdb.rb
637
- - test/rbbt/persist/tsv/test_lmdb.rb
638
- - test/rbbt/persist/tsv/test_sharder.rb
639
- - test/rbbt/persist/tsv/test_leveldb.rb
640
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
641
- - test/rbbt/persist/test_tsv.rb
642
- - test/rbbt/test_tsv.rb
643
- - test/rbbt/test_annotations.rb
644
- - test/rbbt/test_fix_width_table.rb
645
- - test/rbbt/test_workflow.rb
646
- - test/rbbt/entity/test_identifiers.rb
647
- - test/rbbt/annotations/test_util.rb
648
- - test/rbbt/test_hpc.rb
649
- - test/rbbt/test_monitor.rb
650
- - test/rbbt/test_persist.rb
651
- - test/rbbt/knowledge_base/test_entity.rb
652
- - test/rbbt/knowledge_base/test_registry.rb
653
- - test/rbbt/knowledge_base/test_syndicate.rb
654
- - test/rbbt/knowledge_base/test_query.rb
655
- - test/rbbt/knowledge_base/test_enrichment.rb
656
- - test/rbbt/knowledge_base/test_traverse.rb
657
- - test/test_helper.rb
658
+ - test/rbbt/tsv/parallel/test_through.rb