rbbt-util 5.26.86 → 5.26.87

Sign up to get free protection for your applications and to get access to all the features.
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