rbbt-util 5.32.7 → 5.32.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/bin/rbbt +1 -0
  3. data/lib/rbbt/hpc/batch.rb +23 -7
  4. data/lib/rbbt/hpc/slurm.rb +29 -10
  5. data/lib/rbbt/persist/tsv/adapter.rb +1 -5
  6. data/lib/rbbt/resource.rb +22 -9
  7. data/lib/rbbt/tsv/csv.rb +2 -2
  8. data/lib/rbbt/tsv/manipulate.rb +2 -0
  9. data/lib/rbbt/util/R.rb +2 -2
  10. data/lib/rbbt/util/cmd.rb +39 -18
  11. data/lib/rbbt/util/log/progress/report.rb +20 -17
  12. data/lib/rbbt/util/python.rb +24 -3
  13. data/lib/rbbt/util/simpleDSL.rb +4 -4
  14. data/lib/rbbt/workflow.rb +20 -2
  15. data/lib/rbbt/workflow/step.rb +37 -6
  16. data/lib/rbbt/workflow/step/accessor.rb +2 -2
  17. data/lib/rbbt/workflow/util/data.rb +31 -0
  18. data/lib/rbbt/workflow/util/trace.rb +2 -1
  19. data/python/rbbt.py +3 -0
  20. data/share/install/software/lib/install_helpers +1 -1
  21. data/share/rbbt_commands/hpc/list +11 -7
  22. data/share/rbbt_commands/hpc/orchestrate +6 -1
  23. data/share/rbbt_commands/hpc/task +6 -1
  24. data/share/rbbt_commands/lsf/clean +212 -0
  25. data/share/rbbt_commands/lsf/list +315 -0
  26. data/share/rbbt_commands/lsf/orchestrate +61 -0
  27. data/share/rbbt_commands/lsf/tail +55 -0
  28. data/share/rbbt_commands/lsf/task +60 -0
  29. data/share/rbbt_commands/slurm/clean +212 -0
  30. data/share/rbbt_commands/slurm/list +315 -0
  31. data/share/rbbt_commands/slurm/orchestrate +61 -0
  32. data/share/rbbt_commands/slurm/tail +55 -0
  33. data/share/rbbt_commands/slurm/task +60 -0
  34. data/share/rbbt_commands/workflow/forget_deps +5 -4
  35. data/test/rbbt/util/test_python.rb +3 -2
  36. data/test/rbbt/util/test_simpleDSL.rb +3 -3
  37. data/test/rbbt/workflow/util/test_data.rb +35 -0
  38. metadata +97 -84
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbbt/util/simpleopt'
4
+ require 'rbbt/workflow'
5
+ require 'rbbt/workflow/usage'
6
+ require 'rbbt/hpc'
7
+ require 'rbbt/hpc/orchestrate'
8
+ require 'time'
9
+
10
+ $slurm_options = SOPT.get <<EOF
11
+ -dr--dry_run Print only the template
12
+ -cj--clean_job Clean job
13
+ --drbbt* Use development version of rbbt
14
+ -sing--singularity Use Singularity
15
+ -si--singularity_img* Singularity image to use
16
+ -ug--user_group* Use alternative user group for group project directory
17
+ -c--contain* Contain in directory (using Singularity)
18
+ -s--sync* Contain in directory and sync jobs
19
+ -e--exclusive Make exclusive use of the node
20
+ -hm--highmem Make use of highmem cores
21
+ -wc--wipe_container* Wipe the jobs from the contain directory
22
+ -pd--purge_deps Purge job dependencies
23
+ -CS--contain_and_sync Contain and sync to default locations
24
+ -ci--copy_image When using a container directory, copy image there
25
+ -t--tail Tail the logs
26
+ -BPP--batch_procpath* Save Procpath performance for batch job; specify only options
27
+ -q--queue* Queue
28
+ -t--task_cpus* Tasks
29
+ -tm--time* Time
30
+ -m--mem* SLURM minimum memory
31
+ -mcpu--mem_per_cpu* SLURM minimum memory per CPU
32
+ -lin--licenses* SLURM licenses
33
+ -cons--constraint* SLURM constraint
34
+ -W--workflows* Additional workflows
35
+ -OR--orchestration_rules* Orchestration rules
36
+ -rmb--remove_batch_basedir Remove the SLURM working directory (command, STDIN, exit status, ...)
37
+ EOF
38
+
39
+ batch_system = $slurm_options.delete :batch_system
40
+ batch_system ||= 'auto'
41
+
42
+ HPC::BATCH_MODULE = HPC.batch_system batch_system
43
+
44
+ raise ParameterException.new("Could not detect batch_system: #{Misc.fingerprint batch_system}") if HPC::BATCH_MODULE.nil?
45
+
46
+ class Step
47
+ def run(*args)
48
+ if done?
49
+ self.load
50
+ else
51
+ begin
52
+ Log.debug "Issuing SLURM job for #{self.path}"
53
+ HPC::BATCH_MODULE.orchestrate_job(self, SOPT::GOT_OPTIONS.merge($slurm_options))
54
+ rescue HPC::SBATCH
55
+ end
56
+ end
57
+ end
58
+ end
59
+
60
+ ARGV.concat ["-W", $slurm_options[:workflows], '--detach'] if $slurm_options[:workflows]
61
+ load Rbbt.share.rbbt_commands.workflow.task.find
@@ -0,0 +1,55 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbbt-util'
4
+ require 'rbbt/util/simpleopt'
5
+ require 'rbbt/hpc'
6
+
7
+ #$0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
8
+
9
+ options = SOPT.setup <<EOF
10
+
11
+ Queue a job in Marenostrum
12
+
13
+ $ rbbt slurm tail <directory> [options]
14
+
15
+ -h--help Print this help
16
+ -d--done Done jobs only
17
+ -e--error Error jobs only
18
+ -a--aborted SLURM aboted jobs
19
+ -r--running Running jobs only
20
+ -q--queued Queued jobs only
21
+ -j--job* Job ids
22
+ -s--search* Regular expression
23
+ -t--tail* Show the last lines of the STDERR
24
+ -p--progress Report progress of job and the dependencies
25
+ -SBP--sbatch_parameters show sbatch parameters
26
+ -PERF--procpath_performance show Procpath performance summary
27
+ -sacct--sacct_peformance show sacct performance summary
28
+ -bs--batch_system* Batch system to use: auto, lsf, slurm (default is auto-detect)
29
+ EOF
30
+
31
+ if options[:help]
32
+ if defined? rbbt_usage
33
+ rbbt_usage
34
+ else
35
+ puts SOPT.doc
36
+ end
37
+ exit 0
38
+ end
39
+
40
+ batch_system = options.delete :batch_system
41
+ batch_system ||= 'auto'
42
+
43
+ HPC::BATCH_MODULE = HPC.batch_system batch_system
44
+
45
+ raise ParameterException.new("Could not detect batch_system: #{Misc.fingerprint batch_system}") if HPC::BATCH_MODULE.nil?
46
+
47
+ directory = ARGV.shift
48
+
49
+ raise ParameterException if directory.nil?
50
+
51
+ directory = File.dirname(directory) unless File.directory?(directory)
52
+
53
+ require 'rbbt/hpc/slurm'
54
+
55
+ HPC::BATCH_MODULE.follow_job directory, true
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rbbt/util/simpleopt'
4
+ require 'rbbt/workflow'
5
+ require 'rbbt/workflow/usage'
6
+ require 'rbbt/hpc'
7
+ require 'time'
8
+
9
+ $slurm_options = SOPT.get <<EOF
10
+ -dr--dry_run Print only the template
11
+ -cj--clean_job Clean job
12
+ --drbbt* Use development version of rbbt
13
+ -sing--singularity Use Singularity
14
+ -si--singularity_img* Singularity image to use
15
+ -ug--user_group* Use alternative user group for group project directory
16
+ -c--contain* Contain in directory (using Singularity)
17
+ -s--sync* Contain in directory and sync jobs
18
+ -e--exclusive Make exclusive use of the node
19
+ -hm--highmem Make use of highmem cores
20
+ -wc--wipe_container* Wipe the jobs from the contain directory
21
+ -pd--purge_deps Purge job dependencies
22
+ -CS--contain_and_sync Contain and sync to default locations
23
+ -ci--copy_image When using a container directory, copy image there
24
+ -t--tail Tail the logs
25
+ -BPP--batch_procpath* Save Procpath performance for batch job; specify only options
26
+ -q--queue* Queue
27
+ -t--task_cpus* Tasks
28
+ -tm--time* Time
29
+ -m--mem* SLURM minimum memory
30
+ -mcpu--mem_per_cpu* SLURM minimum memory per CPU
31
+ -lin--licenses* SLURM licenses
32
+ -cons--constraint* SLURM constraint
33
+ -W--workflows* Additional workflows
34
+ -rmb--remove_batch_dir Remove the batch working directory (command, STDIN, exit status, ...)
35
+ -bs--batch_system* Batch system to use: auto, lsf, slurm (default is auto-detect)
36
+ EOF
37
+
38
+ batch_system = $slurm_options.delete :batch_system
39
+ batch_system ||= 'auto'
40
+
41
+ HPC::BATCH_MODULE = HPC.batch_system batch_system
42
+
43
+ raise ParameterException.new("Could not detect batch_system: #{Misc.fingerprint batch_system}") if HPC::BATCH_MODULE.nil?
44
+
45
+ class Step
46
+ def run(*args)
47
+ if done?
48
+ self.load
49
+ else
50
+ begin
51
+ Log.debug "Issuing SLURM job for #{self.path}"
52
+ HPC::BATCH_MODULE.run_job(self, SOPT::GOT_OPTIONS.merge($slurm_options))
53
+ rescue HPC::SBATCH
54
+ end
55
+ end
56
+ end
57
+ end
58
+
59
+ ARGV.concat ["-W", $slurm_options[:workflows]] if $slurm_options[:workflows]
60
+ load Rbbt.share.rbbt_commands.workflow.task.find
@@ -38,11 +38,11 @@ step.copy_files_dir
38
38
  dependencies = step.dependencies
39
39
 
40
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 }
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
44
  else
45
- remove_paths = dependencies.collect{|dep| dep.path }
45
+ remove_paths = dependencies.collect{|dep| dep.path }
46
46
  end
47
47
 
48
48
  step.set_info :dependencies, step.info[:dependencies].reject{|info| remove_paths.include? info.last}
@@ -50,6 +50,7 @@ step.set_info :dependencies, step.info[:dependencies].reject{|info| remove_paths
50
50
  if options[:purge] || options[:recursive_purge]
51
51
  dependencies.each do |dependency|
52
52
  next unless remove_paths.include? dependency.path
53
+ next unless Open.exists?(dependency.info_file)
53
54
  Step.purge(dependency.path, options[:recursive_purge])
54
55
  end
55
56
  end
@@ -2,6 +2,7 @@ require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helpe
2
2
  require 'rbbt/util/python'
3
3
 
4
4
  class TestPython < Test::Unit::TestCase
5
+
5
6
  def test_python
6
7
  TmpFile.with_file do |tmpdir|
7
8
  code =<<-EOF
@@ -67,7 +68,7 @@ def python_print():
67
68
 
68
69
  def test_keras
69
70
  defined = RbbtPython.run do
70
- pyimport "keras.models", as: :km
71
+ pyimport "tensorflow.keras.models", as: :km
71
72
  defined?(km.Sequential)
72
73
  end
73
74
  assert defined
@@ -75,7 +76,7 @@ def python_print():
75
76
 
76
77
  def test_keras_import
77
78
  defined = RbbtPython.run do
78
- pyfrom "keras.models", import: :Sequential
79
+ pyfrom "tensorflow.keras.models", import: :Sequential
79
80
  defined?(self::Sequential)
80
81
  end
81
82
  assert defined
@@ -35,12 +35,12 @@ class TestDSL < Test::Unit::TestCase
35
35
 
36
36
  def test_config
37
37
  config = <<-EOC
38
- action1("Hello")
39
- action2("Good bye")
38
+ action1 "Hello"
39
+ action2 "Good bye"
40
40
  EOC
41
41
 
42
42
  begin
43
- assert(@parser.config(:action) == config)
43
+ assert_equal config.split("\n").collect{|l| l.strip}, @parser.config(:action).split("\n").collect{|l| l.strip}
44
44
  rescue SimpleDSL::NoRuby2Ruby
45
45
  end
46
46
  end
@@ -0,0 +1,35 @@
1
+ require File.join(File.expand_path(File.dirname(__FILE__)), '../../..', 'test_helper.rb')
2
+ require 'rbbt/workflow/util/data'
3
+
4
+ module TestDataWF
5
+ extend Workflow
6
+ extend Workflow::Data
7
+
8
+ input :name, :string
9
+ input :salutation, :string
10
+ task :salute => :string do |name,salutation|
11
+ "Hi #{name}: #{salutation}"
12
+ end
13
+
14
+ data_task :salute_data, TestDataWF, :salute do |directory,options|
15
+ options.merge({:salutation => directory.salutation.read})
16
+ end
17
+ end
18
+
19
+ class TestWorkflowData < Test::Unit::TestCase
20
+ def test_workflow_data
21
+ TmpFile.with_file do |tmpdir|
22
+ tmpdir = Path.setup(tmpdir.dup)
23
+
24
+ Open.write(tmpdir.TestDir.options.name, "Miguel")
25
+ Open.write(tmpdir.TestDir.salutation, "My salutations")
26
+
27
+ TestDataWF.data tmpdir
28
+
29
+ job = TestDataWF.job(:salute_data, "TestDir")
30
+ job.recursive_clean.run
31
+ ppp job.run
32
+ end
33
+ end
34
+ end
35
+
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.7
4
+ version: 5.32.13
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-30 00:00:00.000000000 Z
11
+ date: 2021-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -165,7 +165,7 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  description: Utilities for handling tsv files, caches, etc
168
- email: miguel.vazquez@cnio.es
168
+ email: miguel.vazquez.g@bsc.es
169
169
  executables:
170
170
  - rbbt_query.rb
171
171
  - rbbt_exec.rb
@@ -344,9 +344,11 @@ files:
344
344
  - lib/rbbt/workflow/task.rb
345
345
  - lib/rbbt/workflow/usage.rb
346
346
  - lib/rbbt/workflow/util/archive.rb
347
+ - lib/rbbt/workflow/util/data.rb
347
348
  - lib/rbbt/workflow/util/orchestrator.rb
348
349
  - lib/rbbt/workflow/util/provenance.rb
349
350
  - lib/rbbt/workflow/util/trace.rb
351
+ - python/rbbt.py
350
352
  - share/Rlib/plot.R
351
353
  - share/Rlib/svg.R
352
354
  - share/Rlib/util.R
@@ -378,6 +380,11 @@ files:
378
380
  - share/rbbt_commands/hpc/tail
379
381
  - share/rbbt_commands/hpc/task
380
382
  - share/rbbt_commands/log
383
+ - share/rbbt_commands/lsf/clean
384
+ - share/rbbt_commands/lsf/list
385
+ - share/rbbt_commands/lsf/orchestrate
386
+ - share/rbbt_commands/lsf/tail
387
+ - share/rbbt_commands/lsf/task
381
388
  - share/rbbt_commands/migrate
382
389
  - share/rbbt_commands/migrate_job
383
390
  - share/rbbt_commands/purge_job
@@ -387,6 +394,11 @@ files:
387
394
  - share/rbbt_commands/resource/produce
388
395
  - share/rbbt_commands/resource/read
389
396
  - share/rbbt_commands/rsync
397
+ - share/rbbt_commands/slurm/clean
398
+ - share/rbbt_commands/slurm/list
399
+ - share/rbbt_commands/slurm/orchestrate
400
+ - share/rbbt_commands/slurm/tail
401
+ - share/rbbt_commands/slurm/task
390
402
  - share/rbbt_commands/stat/abs
391
403
  - share/rbbt_commands/stat/boxplot
392
404
  - share/rbbt_commands/stat/compare_lists
@@ -539,13 +551,14 @@ files:
539
551
  - test/rbbt/workflow/test_step.rb
540
552
  - test/rbbt/workflow/test_task.rb
541
553
  - test/rbbt/workflow/util/test_archive.rb
554
+ - test/rbbt/workflow/util/test_data.rb
542
555
  - test/rbbt/workflow/util/test_orchestrator.rb
543
556
  - test/test_helper.rb
544
557
  homepage: http://github.com/mikisvaz/rbbt-util
545
558
  licenses:
546
559
  - MIT
547
560
  metadata: {}
548
- post_install_message:
561
+ post_install_message:
549
562
  rdoc_options: []
550
563
  require_paths:
551
564
  - lib
@@ -560,104 +573,104 @@ required_rubygems_version: !ruby/object:Gem::Requirement
560
573
  - !ruby/object:Gem::Version
561
574
  version: '0'
562
575
  requirements: []
563
- rubyforge_project:
564
- rubygems_version: 2.7.6
565
- signing_key:
576
+ rubygems_version: 3.1.4
577
+ signing_key:
566
578
  specification_version: 4
567
579
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
568
580
  test_files:
569
- - test/test_helper.rb
570
- - test/rbbt/entity/test_identifiers.rb
571
- - test/rbbt/test_resource.rb
572
- - test/rbbt/test_association.rb
573
- - test/rbbt/hpc/test_slurm.rb
574
- - test/rbbt/hpc/test_batch.rb
575
- - test/rbbt/persist/test_tsv.rb
576
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
577
- - test/rbbt/persist/tsv/test_lmdb.rb
578
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
579
- - test/rbbt/persist/tsv/test_cdb.rb
580
- - test/rbbt/persist/tsv/test_leveldb.rb
581
- - test/rbbt/persist/tsv/test_sharder.rb
582
- - test/rbbt/test_packed_index.rb
583
581
  - test/rbbt/test_entity.rb
584
- - test/rbbt/test_fix_width_table.rb
585
582
  - test/rbbt/workflow/test_remote_workflow.rb
586
- - test/rbbt/workflow/test_doc.rb
587
- - test/rbbt/workflow/step/test_dependencies.rb
588
- - test/rbbt/workflow/test_schedule.rb
589
583
  - test/rbbt/workflow/util/test_archive.rb
590
584
  - test/rbbt/workflow/util/test_orchestrator.rb
591
- - test/rbbt/workflow/test_task.rb
585
+ - test/rbbt/workflow/util/test_data.rb
586
+ - test/rbbt/workflow/test_doc.rb
587
+ - test/rbbt/workflow/test_schedule.rb
592
588
  - test/rbbt/workflow/test_step.rb
593
- - test/rbbt/test_tsv.rb
594
- - test/rbbt/test_annotations.rb
595
- - test/rbbt/test_knowledge_base.rb
596
- - test/rbbt/util/test_migrate.rb
597
- - test/rbbt/util/test_simpleDSL.rb
598
- - test/rbbt/util/concurrency/processes/test_socket.rb
599
- - test/rbbt/util/concurrency/test_processes.rb
600
- - test/rbbt/util/concurrency/test_threads.rb
601
- - test/rbbt/util/test_filecache.rb
602
- - test/rbbt/util/simpleopt/test_get.rb
603
- - test/rbbt/util/simpleopt/test_parse.rb
604
- - test/rbbt/util/simpleopt/test_setup.rb
605
- - test/rbbt/util/test_misc.rb
606
- - test/rbbt/util/test_excel2tsv.rb
607
- - test/rbbt/util/test_semaphore.rb
608
- - test/rbbt/util/test_procpath.rb
609
- - test/rbbt/util/R/test_model.rb
610
- - test/rbbt/util/R/test_eval.rb
611
- - test/rbbt/util/R/test_plot.rb
612
- - test/rbbt/util/test_open.rb
613
- - test/rbbt/util/test_tmpfile.rb
614
- - test/rbbt/util/test_cmd.rb
615
- - test/rbbt/util/test_concurrency.rb
589
+ - test/rbbt/workflow/step/test_dependencies.rb
590
+ - test/rbbt/workflow/test_task.rb
591
+ - test/rbbt/resource/test_path.rb
616
592
  - test/rbbt/util/test_colorize.rb
617
- - test/rbbt/util/test_config.rb
618
- - test/rbbt/util/test_log.rb
619
- - test/rbbt/util/test_simpleopt.rb
620
- - test/rbbt/util/test_python.rb
621
- - test/rbbt/util/test_chain_methods.rb
593
+ - test/rbbt/util/test_procpath.rb
594
+ - test/rbbt/util/misc/test_development.rb
622
595
  - test/rbbt/util/misc/test_omics.rb
596
+ - test/rbbt/util/misc/test_pipes.rb
597
+ - test/rbbt/util/misc/test_format.rb
623
598
  - test/rbbt/util/misc/test_lock.rb
624
599
  - test/rbbt/util/misc/test_multipart_payload.rb
625
600
  - test/rbbt/util/misc/test_bgzf.rb
626
- - test/rbbt/util/misc/test_development.rb
627
- - test/rbbt/util/misc/test_format.rb
628
- - test/rbbt/util/misc/test_pipes.rb
601
+ - test/rbbt/util/test_concurrency.rb
602
+ - test/rbbt/util/test_cmd.rb
603
+ - test/rbbt/util/R/test_plot.rb
604
+ - test/rbbt/util/R/test_eval.rb
605
+ - test/rbbt/util/R/test_model.rb
606
+ - test/rbbt/util/test_config.rb
607
+ - test/rbbt/util/test_log.rb
608
+ - test/rbbt/util/test_simpleDSL.rb
629
609
  - test/rbbt/util/log/test_progress.rb
610
+ - test/rbbt/util/test_tmpfile.rb
630
611
  - test/rbbt/util/test_R.rb
631
- - test/rbbt/test_workflow.rb
632
- - test/rbbt/knowledge_base/test_entity.rb
633
- - test/rbbt/knowledge_base/test_enrichment.rb
634
- - test/rbbt/knowledge_base/test_traverse.rb
635
- - test/rbbt/knowledge_base/test_syndicate.rb
636
- - test/rbbt/knowledge_base/test_registry.rb
637
- - test/rbbt/knowledge_base/test_query.rb
638
- - test/rbbt/association/test_item.rb
639
- - test/rbbt/association/test_util.rb
640
- - test/rbbt/association/test_open.rb
641
- - test/rbbt/association/test_database.rb
642
- - test/rbbt/association/test_index.rb
643
- - test/rbbt/annotations/test_util.rb
644
- - test/rbbt/test_monitor.rb
645
- - test/rbbt/resource/test_path.rb
646
- - test/rbbt/test_hpc.rb
647
- - test/rbbt/test_persist.rb
612
+ - test/rbbt/util/test_excel2tsv.rb
613
+ - test/rbbt/util/test_misc.rb
614
+ - test/rbbt/util/test_open.rb
615
+ - test/rbbt/util/test_simpleopt.rb
616
+ - test/rbbt/util/simpleopt/test_parse.rb
617
+ - test/rbbt/util/simpleopt/test_setup.rb
618
+ - test/rbbt/util/simpleopt/test_get.rb
619
+ - test/rbbt/util/test_python.rb
620
+ - test/rbbt/util/test_filecache.rb
621
+ - test/rbbt/util/concurrency/test_processes.rb
622
+ - test/rbbt/util/concurrency/test_threads.rb
623
+ - test/rbbt/util/concurrency/processes/test_socket.rb
624
+ - test/rbbt/util/test_semaphore.rb
625
+ - test/rbbt/util/test_chain_methods.rb
626
+ - test/rbbt/util/test_migrate.rb
627
+ - test/rbbt/test_resource.rb
628
+ - test/rbbt/test_packed_index.rb
629
+ - test/rbbt/tsv/test_change_id.rb
630
+ - test/rbbt/tsv/test_attach.rb
631
+ - test/rbbt/tsv/test_filter.rb
648
632
  - test/rbbt/tsv/test_parser.rb
649
633
  - test/rbbt/tsv/test_csv.rb
650
- - test/rbbt/tsv/test_manipulate.rb
634
+ - test/rbbt/tsv/test_accessor.rb
635
+ - test/rbbt/tsv/test_matrix.rb
651
636
  - test/rbbt/tsv/test_field_index.rb
652
637
  - test/rbbt/tsv/test_util.rb
653
- - test/rbbt/tsv/test_accessor.rb
654
- - test/rbbt/tsv/test_filter.rb
655
- - test/rbbt/tsv/test_stream.rb
638
+ - test/rbbt/tsv/test_index.rb
656
639
  - test/rbbt/tsv/test_parallel.rb
657
- - test/rbbt/tsv/test_matrix.rb
658
- - test/rbbt/tsv/test_attach.rb
640
+ - test/rbbt/tsv/test_manipulate.rb
659
641
  - test/rbbt/tsv/test_excel.rb
660
- - test/rbbt/tsv/test_change_id.rb
661
- - test/rbbt/tsv/test_index.rb
662
- - test/rbbt/tsv/parallel/test_traverse.rb
663
642
  - test/rbbt/tsv/parallel/test_through.rb
643
+ - test/rbbt/tsv/parallel/test_traverse.rb
644
+ - test/rbbt/tsv/test_stream.rb
645
+ - test/rbbt/test_association.rb
646
+ - test/rbbt/hpc/test_batch.rb
647
+ - test/rbbt/hpc/test_slurm.rb
648
+ - test/rbbt/association/test_database.rb
649
+ - test/rbbt/association/test_item.rb
650
+ - test/rbbt/association/test_open.rb
651
+ - test/rbbt/association/test_util.rb
652
+ - test/rbbt/association/test_index.rb
653
+ - test/rbbt/test_knowledge_base.rb
654
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
655
+ - test/rbbt/persist/tsv/test_cdb.rb
656
+ - test/rbbt/persist/tsv/test_lmdb.rb
657
+ - test/rbbt/persist/tsv/test_sharder.rb
658
+ - test/rbbt/persist/tsv/test_leveldb.rb
659
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
660
+ - test/rbbt/persist/test_tsv.rb
661
+ - test/rbbt/test_tsv.rb
662
+ - test/rbbt/test_annotations.rb
663
+ - test/rbbt/test_fix_width_table.rb
664
+ - test/rbbt/test_workflow.rb
665
+ - test/rbbt/entity/test_identifiers.rb
666
+ - test/rbbt/annotations/test_util.rb
667
+ - test/rbbt/test_hpc.rb
668
+ - test/rbbt/test_monitor.rb
669
+ - test/rbbt/test_persist.rb
670
+ - test/rbbt/knowledge_base/test_entity.rb
671
+ - test/rbbt/knowledge_base/test_registry.rb
672
+ - test/rbbt/knowledge_base/test_syndicate.rb
673
+ - test/rbbt/knowledge_base/test_query.rb
674
+ - test/rbbt/knowledge_base/test_enrichment.rb
675
+ - test/rbbt/knowledge_base/test_traverse.rb
676
+ - test/test_helper.rb