rbbt-util 5.26.86 → 5.26.87

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: fc6102e3c95948e874ce0ef40256083bc5bbb61c27700dbab1e864a3ec14ebe3
4
- data.tar.gz: 5267bbf2d76c3a1ec0920fa5ecb03acf711ae541198d220055afae0965fa9630
3
+ metadata.gz: 658585f6a78ccc8f2a4579b1b512a9470030edbd1e724addb2b5f1ef3b71c218
4
+ data.tar.gz: cb64eb69d269a924b585745f6fa4be0aad88c4ed62a9510e9a85ddc3f243caf3
5
5
  SHA512:
6
- metadata.gz: 8b5fa3392feae0691db1b06276294be43f6f8e0c8dd2d553967cf4993277b2cee9284ccb10b4c1b27848c0fc6beb09c5e9b65f5b3235f97180eaad2d2279df05
7
- data.tar.gz: 7cc7b7c0207712ff2541d9ced370131c431359f28de3f9aaee4d1ce840f59506c6e05776021f04fe47d8fe461362f7fbfa867cc2982afe760dc451178342ab08
6
+ metadata.gz: 58458df66b0881d89894db3c526dd21b5490de6e0e55c403ef44c09827b36c3da90509d3158d8cc5438a1d3f235a6f0650eb470d0b79c3919e216879341d87aa
7
+ data.tar.gz: c5e2964e08101856061dd68103b2a970518d1542c163cb17d2c4f0bbe40b92a3cf225ec0859d2b97d2138d6cdf08ada9f69020555c11acafbe6bcd2bbcdb809b
@@ -10,7 +10,7 @@ module TSV
10
10
  other.with_unnamed do
11
11
  with_unnamed do
12
12
  through do |key, values|
13
- self[key] = [] if self[key].nil?
13
+ self[key] = [] unless self.include? key
14
14
  current = self[key]
15
15
  current = [current] unless Array === current
16
16
  if other.include? key
@@ -15,6 +15,7 @@ Use - to read from STDIN
15
15
 
16
16
  -f--fields* Fields to attach (all if not specified)
17
17
  -i--identifiers* Identifier file
18
+ -c--complete Complete TSV with keys new in other files
18
19
  -h--help Print this help
19
20
 
20
21
  EOF
@@ -30,6 +31,7 @@ end
30
31
  file1, *rest = ARGV
31
32
  fields = options[:fields]
32
33
  identifiers = options[:identifiers]
34
+ complete = options[:complete]
33
35
 
34
36
  if identifiers.nil?
35
37
  require 'rbbt/sources/organism'
@@ -44,7 +46,7 @@ tsv = tsv.to_double if tsv.type == :flat
44
46
  rest.each do |file2|
45
47
  file_fields = TSV.parse_header(file2).all_fields - tsv.all_fields
46
48
  these_fields = fields ? fields & file_fields : nil
47
- tsv = tsv.attach file2, :fields => these_fields, :identifiers => identifiers
49
+ tsv = tsv.attach file2, :fields => these_fields, :identifiers => identifiers, :complete => complete
48
50
  end
49
51
 
50
52
  puts tsv.to_s
@@ -14,6 +14,7 @@ Use - to read from STDIN
14
14
  -tch--tokyocabinet File is a tokyocabinet hash database
15
15
  -tcb--tokyocabinet_bd File is a tokyocabinet B database
16
16
  -f--fields* Fields to extract
17
+ -hh--header_hash* Change the character used to mark the header line (defaults to #)
17
18
  -k--key_field* Use this field as key
18
19
  -h--help Print this help
19
20
  -l--lines Separate in lines
@@ -45,7 +46,7 @@ fields = options[:fields]
45
46
  key_field = options[:key_field]
46
47
  fields = fields.split(/[,|]/, -1) unless fields.nil?
47
48
 
48
- parser = TSV::Parser.new tsv, :key_field => key_field, :fields => fields, :type => options[:type]
49
+ parser = TSV::Parser.new tsv, :key_field => key_field, :fields => fields, :type => options[:type], :header_hash => options[:header_hash]
49
50
  fields ||= parser.fields
50
51
 
51
52
  TSV.traverse(parser) do |k,v|
@@ -531,5 +531,41 @@ row5,D
531
531
  assert_equal tsv4.attach(tsv1)["row1"]["bar (ValueB)"], %w(b)
532
532
  assert_equal tsv3.attach(tsv1)["b"]["ValueD"], %w(d)
533
533
  end
534
+
535
+ def test_attach_single_nils
536
+ content1 =<<-EOF
537
+ #Id,ValueA
538
+ row1,
539
+ row2,AA
540
+ EOF
541
+ content2 =<<-EOF
542
+ #Id,ValueB
543
+ row1,B
544
+ row2,BB
545
+ EOF
546
+ content3 =<<-EOF
547
+ #Id,ValueC
548
+ row1,
549
+ row2,CC
550
+ EOF
551
+
552
+ tsv1 = tsv2 = tsv3 = tsv4 = index = nil
553
+ TmpFile.with_file(content1) do |filename|
554
+ tsv1 = TSV.open(File.open(filename), :double, :sep => ',', :type => :single)
555
+ tsv1.keys.each{|k| tsv1[k] = nil if tsv1[k] == ""}
556
+ end
557
+
558
+ TmpFile.with_file(content2) do |filename|
559
+ tsv2 = TSV.open(File.open(filename), :double, :sep => ',', :type => :single)
560
+ tsv2.keys.each{|k| tsv2[k] = nil if tsv2[k] == ""}
561
+ end
562
+
563
+ TmpFile.with_file(content3) do |filename|
564
+ tsv3 = TSV.open(File.open(filename), :double, :sep => ',', :type => :single)
565
+ tsv3.keys.each{|k| tsv3[k] = nil if tsv3[k] == ""}
566
+ end
567
+
568
+ assert_equal tsv1.attach(tsv2, :complete => true).attach(tsv3, :complete => true)["row1"], [nil, "B", nil]
569
+ end
534
570
  end
535
571
 
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.26.86
4
+ version: 5.26.87
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-11-13 00:00:00.000000000 Z
11
+ date: 2019-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -531,91 +531,91 @@ required_rubygems_version: !ruby/object:Gem::Requirement
531
531
  - !ruby/object:Gem::Version
532
532
  version: '0'
533
533
  requirements: []
534
- rubygems_version: 3.0.6
534
+ rubygems_version: 3.0.4
535
535
  signing_key:
536
536
  specification_version: 4
537
537
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
538
538
  test_files:
539
- - test/rbbt/test_entity.rb
540
- - test/rbbt/workflow/test_doc.rb
541
- - test/rbbt/workflow/test_step.rb
542
- - test/rbbt/workflow/step/test_dependencies.rb
543
- - test/rbbt/workflow/test_task.rb
544
- - test/rbbt/resource/test_path.rb
545
- - test/rbbt/util/test_colorize.rb
546
- - test/rbbt/util/misc/test_omics.rb
547
- - test/rbbt/util/misc/test_pipes.rb
548
- - test/rbbt/util/misc/test_lock.rb
549
- - test/rbbt/util/misc/test_multipart_payload.rb
550
- - test/rbbt/util/misc/test_bgzf.rb
551
- - test/rbbt/util/test_concurrency.rb
552
- - test/rbbt/util/test_cmd.rb
553
- - test/rbbt/util/R/test_plot.rb
554
- - test/rbbt/util/R/test_eval.rb
555
- - test/rbbt/util/R/test_model.rb
539
+ - test/test_helper.rb
540
+ - test/rbbt/test_annotations.rb
541
+ - test/rbbt/association/test_database.rb
542
+ - test/rbbt/association/test_item.rb
543
+ - test/rbbt/association/test_index.rb
544
+ - test/rbbt/association/test_open.rb
545
+ - test/rbbt/association/test_util.rb
546
+ - test/rbbt/test_association.rb
547
+ - test/rbbt/knowledge_base/test_syndicate.rb
548
+ - test/rbbt/knowledge_base/test_enrichment.rb
549
+ - test/rbbt/knowledge_base/test_query.rb
550
+ - test/rbbt/knowledge_base/test_entity.rb
551
+ - test/rbbt/knowledge_base/test_registry.rb
552
+ - test/rbbt/knowledge_base/test_traverse.rb
556
553
  - test/rbbt/util/test_config.rb
557
- - test/rbbt/util/test_log.rb
558
- - test/rbbt/util/test_simpleDSL.rb
559
- - test/rbbt/util/log/test_progress.rb
560
- - test/rbbt/util/test_tmpfile.rb
561
554
  - test/rbbt/util/test_R.rb
562
- - test/rbbt/util/test_excel2tsv.rb
555
+ - test/rbbt/util/test_tmpfile.rb
556
+ - test/rbbt/util/test_filecache.rb
563
557
  - test/rbbt/util/test_misc.rb
564
- - test/rbbt/util/test_open.rb
565
- - test/rbbt/util/test_simpleopt.rb
558
+ - test/rbbt/util/test_excel2tsv.rb
559
+ - test/rbbt/util/log/test_progress.rb
560
+ - test/rbbt/util/misc/test_multipart_payload.rb
561
+ - test/rbbt/util/misc/test_pipes.rb
562
+ - test/rbbt/util/misc/test_bgzf.rb
563
+ - test/rbbt/util/misc/test_lock.rb
564
+ - test/rbbt/util/misc/test_omics.rb
565
+ - test/rbbt/util/test_semaphore.rb
566
+ - test/rbbt/util/simpleopt/test_get.rb
566
567
  - test/rbbt/util/simpleopt/test_parse.rb
567
568
  - test/rbbt/util/simpleopt/test_setup.rb
568
- - test/rbbt/util/simpleopt/test_get.rb
569
- - test/rbbt/util/test_python.rb
570
- - test/rbbt/util/test_filecache.rb
569
+ - test/rbbt/util/test_open.rb
571
570
  - test/rbbt/util/concurrency/test_processes.rb
572
571
  - test/rbbt/util/concurrency/test_threads.rb
573
572
  - test/rbbt/util/concurrency/processes/test_socket.rb
574
- - test/rbbt/util/test_semaphore.rb
573
+ - test/rbbt/util/test_log.rb
574
+ - test/rbbt/util/test_colorize.rb
575
+ - test/rbbt/util/test_cmd.rb
576
+ - test/rbbt/util/test_concurrency.rb
577
+ - test/rbbt/util/R/test_eval.rb
578
+ - test/rbbt/util/R/test_plot.rb
579
+ - test/rbbt/util/R/test_model.rb
580
+ - test/rbbt/util/test_simpleopt.rb
575
581
  - test/rbbt/util/test_chain_methods.rb
576
- - test/rbbt/test_resource.rb
577
- - test/rbbt/test_packed_index.rb
578
- - test/rbbt/tsv/test_change_id.rb
579
- - test/rbbt/tsv/test_attach.rb
580
- - test/rbbt/tsv/test_filter.rb
582
+ - test/rbbt/util/test_simpleDSL.rb
583
+ - test/rbbt/util/test_python.rb
584
+ - test/rbbt/tsv/test_index.rb
581
585
  - test/rbbt/tsv/test_parser.rb
582
- - test/rbbt/tsv/test_accessor.rb
583
- - test/rbbt/tsv/test_matrix.rb
584
586
  - test/rbbt/tsv/test_field_index.rb
585
- - test/rbbt/tsv/test_util.rb
586
- - test/rbbt/tsv/test_index.rb
587
+ - test/rbbt/tsv/test_stream.rb
588
+ - test/rbbt/tsv/test_accessor.rb
589
+ - test/rbbt/tsv/test_change_id.rb
587
590
  - test/rbbt/tsv/test_parallel.rb
588
- - test/rbbt/tsv/test_manipulate.rb
589
- - test/rbbt/tsv/test_excel.rb
590
591
  - test/rbbt/tsv/parallel/test_through.rb
591
592
  - test/rbbt/tsv/parallel/test_traverse.rb
592
- - test/rbbt/tsv/test_stream.rb
593
- - test/rbbt/test_association.rb
594
- - test/rbbt/association/test_database.rb
595
- - test/rbbt/association/test_item.rb
596
- - test/rbbt/association/test_open.rb
597
- - test/rbbt/association/test_util.rb
598
- - test/rbbt/association/test_index.rb
599
- - test/rbbt/test_knowledge_base.rb
600
- - test/rbbt/persist/tsv/test_kyotocabinet.rb
593
+ - test/rbbt/tsv/test_manipulate.rb
594
+ - test/rbbt/tsv/test_filter.rb
595
+ - test/rbbt/tsv/test_matrix.rb
596
+ - test/rbbt/tsv/test_util.rb
597
+ - test/rbbt/tsv/test_attach.rb
598
+ - test/rbbt/tsv/test_excel.rb
599
+ - test/rbbt/test_monitor.rb
600
+ - test/rbbt/test_workflow.rb
601
+ - test/rbbt/annotations/test_util.rb
602
+ - test/rbbt/test_packed_index.rb
603
+ - test/rbbt/workflow/test_task.rb
604
+ - test/rbbt/workflow/test_doc.rb
605
+ - test/rbbt/workflow/test_step.rb
606
+ - test/rbbt/workflow/step/test_dependencies.rb
607
+ - test/rbbt/entity/test_identifiers.rb
608
+ - test/rbbt/test_entity.rb
609
+ - test/rbbt/test_resource.rb
610
+ - test/rbbt/test_persist.rb
611
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
601
612
  - test/rbbt/persist/tsv/test_cdb.rb
602
- - test/rbbt/persist/tsv/test_lmdb.rb
603
- - test/rbbt/persist/tsv/test_sharder.rb
604
613
  - test/rbbt/persist/tsv/test_leveldb.rb
605
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
614
+ - test/rbbt/persist/tsv/test_kyotocabinet.rb
615
+ - test/rbbt/persist/tsv/test_sharder.rb
616
+ - test/rbbt/persist/tsv/test_lmdb.rb
606
617
  - test/rbbt/persist/test_tsv.rb
607
618
  - test/rbbt/test_tsv.rb
608
- - test/rbbt/test_annotations.rb
609
619
  - test/rbbt/test_fix_width_table.rb
610
- - test/rbbt/test_workflow.rb
611
- - test/rbbt/entity/test_identifiers.rb
612
- - test/rbbt/annotations/test_util.rb
613
- - test/rbbt/test_monitor.rb
614
- - test/rbbt/test_persist.rb
615
- - test/rbbt/knowledge_base/test_entity.rb
616
- - test/rbbt/knowledge_base/test_registry.rb
617
- - test/rbbt/knowledge_base/test_syndicate.rb
618
- - test/rbbt/knowledge_base/test_query.rb
619
- - test/rbbt/knowledge_base/test_enrichment.rb
620
- - test/rbbt/knowledge_base/test_traverse.rb
621
- - test/test_helper.rb
620
+ - test/rbbt/test_knowledge_base.rb
621
+ - test/rbbt/resource/test_path.rb