rbbt-util 5.26.92 → 5.26.93

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: 2f6ffa8a8e6f7aae286ddb3a7c755ffe28e8af7415e1ed47340f80841a04e9b4
4
- data.tar.gz: 6da506ba7e686cb1d6a450107a30eaf242ebfe09019f0441f410eaa0d79c892c
3
+ metadata.gz: 45fa23a77186b3e5f47cf3ccf754a4b2906329639ca1d188e2b9f347850abd27
4
+ data.tar.gz: 49b4d7b48339260536aebbd8c9f35e59155bf253a7a63685683db54967ca5359
5
5
  SHA512:
6
- metadata.gz: 6da79d73a730e2fa80bb7c99d17955dd016ddc06a3a2f5a2ded36dcc9fb1b9d301941a0b10c9ac55b85298eca73a361845befb8a038e1f115b43bc0ed18a533f
7
- data.tar.gz: 4e0340ba7dccc41c1c3a3f6997e20caf31676fcd915329f07a8e6a5640cd51b96458cc9a3ba307503bcb55478b383d842420027a3eb3d3f58f3db16b4fce26b5
6
+ metadata.gz: 37d1a5ac5167e6f4612413c86b03bb96babf71164c9c7433d14d841d3fee489ecc4abc6a613ea49f2580876cd78bd32e8a40e7437953efcbcf0e5464d1f11589
7
+ data.tar.gz: db18ad88a2c5eae7b478eeebde69ea498ffd8f123b8e1113e4e7dc91a21ed7689147436ac690d5b5f4777bf7cd2efa1227250fa3a477ef76ebca88c8add80a8c
@@ -66,21 +66,27 @@ module TSV
66
66
  sfields = sfields.collect{|f| [prefix, f] * ":" }
67
67
  end
68
68
 
69
- lines << parser.first_line
70
- empty << stream if parser.first_line.nil?
69
+ first_line = parser.first_line
70
+ first_line = nil if first_line.empty?
71
+
72
+ lines << first_line
71
73
  key_fields << parser.key_field
72
74
  fields << sfields
73
75
  sizes << sfields.length if sfields
74
76
  input_options << parser.options
75
77
  preambles << parser.preamble if preamble and not parser.preamble.empty?
76
78
 
77
- if fix_flat and parser.type == :flat and parser.first_line
78
- parts = lines[-1].split("\t")
79
- lines[-1] = [parts[0], (parts[1..-1] || [])*"|"] * "\t"
80
- TSV.stream_flat2double(parser.stream, :noheader => true).stream
81
- else
82
- parser.stream
83
- end
79
+ stream = if fix_flat and parser.type == :flat and first_line
80
+ parts = lines[-1].nil? ? [] : lines[-1].split("\t")
81
+ lines[-1] = [parts[0], (parts[1..-1] || [])*"|"] * "\t"
82
+ TSV.stream_flat2double(parser.stream, :noheader => true).stream
83
+ else
84
+ parser.stream
85
+ end
86
+
87
+ empty << stream if parser.first_line.nil? || parser.first_line.empty?
88
+
89
+ stream
84
90
  end
85
91
 
86
92
  key_field = key_fields.compact.first
@@ -121,7 +127,7 @@ module TSV
121
127
  keys = []
122
128
  parts = []
123
129
  lines.each_with_index do |line,i|
124
- if line.nil?
130
+ if line.nil? || line.empty?
125
131
  keys[i] = nil
126
132
  parts[i] = nil
127
133
  else
@@ -367,14 +367,15 @@ module Workflow
367
367
  if Hash === d
368
368
  d[:workflow] ||= wf
369
369
  d[:task] ||= task_name
370
- if override_dependencies[d[:workflow].to_s] && value = override_dependencies[d[:workflow].to_s][d[:task]]
371
- setup_override_dependency(value, d[:workflow], d[:task])
372
- else
373
- task_info = d[:workflow].task_info(d[:task])
374
-
375
- inputs = assign_dep_inputs({}, options.merge(d[:inputs] || {}), real_dependencies, task_info)
376
- d = d[:workflow]._job(d[:task], d[:jobname], inputs)
377
- end
370
+ _override_dependencies = override_dependencies.merge(override_dependencies(d[:inputs] || {}))
371
+ d = if _override_dependencies[d[:workflow].to_s] && value = _override_dependencies[d[:workflow].to_s][d[:task]]
372
+ setup_override_dependency(value, d[:workflow], d[:task])
373
+ else
374
+ task_info = d[:workflow].task_info(d[:task])
375
+
376
+ inputs = assign_dep_inputs({}, options.merge(d[:inputs] || {}), real_dependencies, task_info)
377
+ d[:workflow]._job(d[:task], d[:jobname], inputs)
378
+ end
378
379
  end
379
380
  ComputeDependency.setup(d, compute) if compute
380
381
  new_ << d
@@ -385,7 +386,8 @@ module Workflow
385
386
  dep = dependency.call jobname, _inputs, real_dependencies
386
387
  if Hash === dep
387
388
  dep[:workflow] ||= wf || self
388
- if override_dependencies[dep[:workflow].to_s] && value = override_dependencies[dep[:workflow].to_s][dep[:task]]
389
+ _override_dependencies = override_dependencies.merge(override_dependencies(dep[:inputs] || {}))
390
+ if _override_dependencies[dep[:workflow].to_s] && value = _override_dependencies[dep[:workflow].to_s][dep[:task]]
389
391
  setup_override_dependency(value, dep[:workflow], dep[:task])
390
392
  else
391
393
  task_info = (dep[:task] && dep[:workflow]) ? dep[:workflow].task_info(dep[:task]) : nil
@@ -567,5 +567,73 @@ row2,CC
567
567
 
568
568
  assert_equal tsv1.attach(tsv2, :complete => true).attach(tsv3, :complete => true)["row1"], [nil, "B", nil]
569
569
  end
570
+
571
+ def test_attach_index_both_non_key
572
+ content1 =<<-EOF
573
+ #: :sep=/\\s+/
574
+ #Id ValueA ValueB
575
+ row1 a|aa|aaa b
576
+ row2 A B
577
+ EOF
578
+
579
+ content2 =<<-EOF
580
+ #: :sep=/\\s+/
581
+ #ValueE OtherID
582
+ e Id1|Id2
583
+ E Id3
584
+ EOF
585
+
586
+ content_index =<<-EOF
587
+ #: :sep=/\\s+/
588
+ #ValueA OtherID
589
+ a Id1
590
+ A Id3
591
+ EOF
592
+
593
+ Rbbt.claim Rbbt.tmp.test.test1.data, :string, content1
594
+ Rbbt.claim Rbbt.tmp.test.test2.data, :string, content2
595
+ Rbbt.claim Rbbt.tmp.test.test2.identifiers, :string, content_index
596
+
597
+ tsv1 = tsv2 = nil
598
+
599
+ tsv1 = Rbbt.tmp.test.test1.data.tsv :double, :sep => /\s+/
600
+ tsv2 = Rbbt.tmp.test.test2.data.tsv :double, :sep => /\s+/
601
+
602
+ tsv2.identifiers = Rbbt.tmp.test.test2.identifiers.produce.find #.to_s
603
+
604
+ tsv1.attach tsv2, :fields => ["ValueE"] #, :persist_input => true
605
+ Log.tsv tsv1
606
+ ppp tsv1
607
+
608
+ end
609
+
610
+ def test_attach_both_non_key
611
+ content1 =<<-EOF
612
+ #: :sep=/\\s+/
613
+ #Id ValueA ValueB
614
+ row1 a|aa|aaa b
615
+ row2 A B
616
+ EOF
617
+
618
+ content2 =<<-EOF
619
+ #: :sep=/\\s+/
620
+ #ValueE ValueB
621
+ e b
622
+ E B
623
+ EOF
624
+ Rbbt.claim Rbbt.tmp.test.test1.data, :string, content1
625
+ Rbbt.claim Rbbt.tmp.test.test2.data, :string, content2
626
+
627
+ tsv1 = tsv2 = nil
628
+
629
+ tsv1 = Rbbt.tmp.test.test1.data.tsv :double, :sep => /\s+/
630
+ tsv2 = Rbbt.tmp.test.test2.data.tsv :double, :sep => /\s+/
631
+
632
+ Log.severity = 0
633
+ tsv1.attach tsv2, :fields => ["ValueE"] #, :persist_input => true
634
+ Log.tsv tsv1
635
+ ppp tsv1
636
+
637
+ end
570
638
  end
571
639
 
@@ -36,6 +36,22 @@ row2 A B Id3
36
36
 
37
37
  end
38
38
 
39
+ def test_index_fields_key
40
+ content =<<-EOF
41
+ #Id ValueA ValueB OtherID
42
+ row1 a|aa|aaa b Id1|Id2
43
+ row2 A B Id3
44
+ EOF
45
+
46
+ TmpFile.with_file(content) do |filename|
47
+ tsv = TSV.open(File.open(filename), :sep => /\s+/, :key_field => "OtherID", :persistence => false)
48
+ Log.tsv tsv
49
+ index = tsv.index(:case_insensitive => true, :persistence => false, :fields => ["Id"], :target => "ValueA")
50
+ Log.tsv index
51
+ end
52
+
53
+ end
54
+
39
55
  def test_best_index
40
56
  content =<<-EOF
41
57
  #Id ValueA ValueB OtherID
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.92
4
+ version: 5.26.93
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-29 00:00:00.000000000 Z
11
+ date: 2019-12-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -535,93 +535,93 @@ required_rubygems_version: !ruby/object:Gem::Requirement
535
535
  - !ruby/object:Gem::Version
536
536
  version: '0'
537
537
  requirements: []
538
- rubygems_version: 3.0.4
538
+ rubygems_version: 3.0.6
539
539
  signing_key:
540
540
  specification_version: 4
541
541
  summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
542
542
  test_files:
543
- - test/test_helper.rb
544
- - test/rbbt/test_annotations.rb
545
- - test/rbbt/association/test_database.rb
546
- - test/rbbt/association/test_item.rb
547
- - test/rbbt/association/test_index.rb
548
- - test/rbbt/association/test_open.rb
549
- - test/rbbt/association/test_util.rb
550
- - test/rbbt/test_association.rb
551
- - test/rbbt/knowledge_base/test_syndicate.rb
552
- - test/rbbt/knowledge_base/test_enrichment.rb
553
- - test/rbbt/knowledge_base/test_query.rb
554
- - test/rbbt/knowledge_base/test_entity.rb
555
- - test/rbbt/knowledge_base/test_registry.rb
556
- - test/rbbt/knowledge_base/test_traverse.rb
543
+ - test/rbbt/test_entity.rb
544
+ - test/rbbt/workflow/test_doc.rb
545
+ - test/rbbt/workflow/test_step.rb
546
+ - test/rbbt/workflow/remote/test_client.rb
547
+ - test/rbbt/workflow/step/test_dependencies.rb
548
+ - test/rbbt/workflow/test_task.rb
549
+ - test/rbbt/resource/test_path.rb
550
+ - test/rbbt/util/test_colorize.rb
551
+ - test/rbbt/util/misc/test_omics.rb
552
+ - test/rbbt/util/misc/test_pipes.rb
553
+ - test/rbbt/util/misc/test_lock.rb
554
+ - test/rbbt/util/misc/test_multipart_payload.rb
555
+ - test/rbbt/util/misc/test_bgzf.rb
556
+ - test/rbbt/util/test_concurrency.rb
557
+ - test/rbbt/util/test_cmd.rb
558
+ - test/rbbt/util/R/test_plot.rb
559
+ - test/rbbt/util/R/test_eval.rb
560
+ - test/rbbt/util/R/test_model.rb
557
561
  - test/rbbt/util/test_config.rb
558
- - test/rbbt/util/test_R.rb
562
+ - test/rbbt/util/test_log.rb
563
+ - test/rbbt/util/test_simpleDSL.rb
564
+ - test/rbbt/util/log/test_progress.rb
559
565
  - test/rbbt/util/test_tmpfile.rb
560
- - test/rbbt/util/test_filecache.rb
561
- - test/rbbt/util/test_misc.rb
566
+ - test/rbbt/util/test_R.rb
562
567
  - test/rbbt/util/test_excel2tsv.rb
563
- - test/rbbt/util/log/test_progress.rb
564
- - test/rbbt/util/misc/test_multipart_payload.rb
565
- - test/rbbt/util/misc/test_pipes.rb
566
- - test/rbbt/util/misc/test_bgzf.rb
567
- - test/rbbt/util/misc/test_lock.rb
568
- - test/rbbt/util/misc/test_omics.rb
569
- - test/rbbt/util/test_semaphore.rb
570
- - test/rbbt/util/simpleopt/test_get.rb
568
+ - test/rbbt/util/test_misc.rb
569
+ - test/rbbt/util/test_open.rb
570
+ - test/rbbt/util/test_simpleopt.rb
571
571
  - test/rbbt/util/simpleopt/test_parse.rb
572
572
  - test/rbbt/util/simpleopt/test_setup.rb
573
- - test/rbbt/util/test_open.rb
573
+ - test/rbbt/util/simpleopt/test_get.rb
574
+ - test/rbbt/util/test_python.rb
575
+ - test/rbbt/util/test_filecache.rb
574
576
  - test/rbbt/util/concurrency/test_processes.rb
575
577
  - test/rbbt/util/concurrency/test_threads.rb
576
578
  - test/rbbt/util/concurrency/processes/test_socket.rb
577
- - test/rbbt/util/test_log.rb
578
- - test/rbbt/util/test_colorize.rb
579
- - test/rbbt/util/test_cmd.rb
580
- - test/rbbt/util/test_concurrency.rb
581
- - test/rbbt/util/R/test_eval.rb
582
- - test/rbbt/util/R/test_plot.rb
583
- - test/rbbt/util/R/test_model.rb
584
- - test/rbbt/util/test_simpleopt.rb
579
+ - test/rbbt/util/test_semaphore.rb
585
580
  - test/rbbt/util/test_chain_methods.rb
586
- - test/rbbt/util/test_simpleDSL.rb
587
- - test/rbbt/util/test_python.rb
588
- - test/rbbt/tsv/test_index.rb
589
- - test/rbbt/tsv/test_parser.rb
590
- - test/rbbt/tsv/test_field_index.rb
591
- - test/rbbt/tsv/test_stream.rb
592
- - test/rbbt/tsv/test_accessor.rb
581
+ - test/rbbt/test_resource.rb
582
+ - test/rbbt/test_packed_index.rb
593
583
  - test/rbbt/tsv/test_change_id.rb
594
- - test/rbbt/tsv/test_parallel.rb
595
- - test/rbbt/tsv/parallel/test_through.rb
596
- - test/rbbt/tsv/parallel/test_traverse.rb
597
- - test/rbbt/tsv/test_manipulate.rb
584
+ - test/rbbt/tsv/test_attach.rb
598
585
  - test/rbbt/tsv/test_filter.rb
586
+ - test/rbbt/tsv/test_parser.rb
587
+ - test/rbbt/tsv/test_accessor.rb
599
588
  - test/rbbt/tsv/test_matrix.rb
589
+ - test/rbbt/tsv/test_field_index.rb
600
590
  - test/rbbt/tsv/test_util.rb
601
- - test/rbbt/tsv/test_attach.rb
591
+ - test/rbbt/tsv/test_index.rb
592
+ - test/rbbt/tsv/test_parallel.rb
593
+ - test/rbbt/tsv/test_manipulate.rb
602
594
  - test/rbbt/tsv/test_excel.rb
603
- - test/rbbt/test_monitor.rb
604
- - test/rbbt/test_workflow.rb
605
- - test/rbbt/test_hpc.rb
606
- - test/rbbt/annotations/test_util.rb
607
- - test/rbbt/test_packed_index.rb
608
- - test/rbbt/workflow/test_task.rb
609
- - test/rbbt/workflow/test_doc.rb
610
- - test/rbbt/workflow/remote/test_client.rb
611
- - test/rbbt/workflow/test_step.rb
612
- - test/rbbt/workflow/step/test_dependencies.rb
613
- - test/rbbt/entity/test_identifiers.rb
614
- - test/rbbt/test_entity.rb
615
- - test/rbbt/test_resource.rb
616
- - test/rbbt/test_persist.rb
617
- - test/rbbt/persist/tsv/test_tokyocabinet.rb
618
- - test/rbbt/persist/tsv/test_cdb.rb
619
- - test/rbbt/persist/tsv/test_leveldb.rb
595
+ - test/rbbt/tsv/parallel/test_through.rb
596
+ - test/rbbt/tsv/parallel/test_traverse.rb
597
+ - test/rbbt/tsv/test_stream.rb
598
+ - test/rbbt/test_association.rb
599
+ - test/rbbt/association/test_database.rb
600
+ - test/rbbt/association/test_item.rb
601
+ - test/rbbt/association/test_open.rb
602
+ - test/rbbt/association/test_util.rb
603
+ - test/rbbt/association/test_index.rb
604
+ - test/rbbt/test_knowledge_base.rb
620
605
  - test/rbbt/persist/tsv/test_kyotocabinet.rb
621
- - test/rbbt/persist/tsv/test_sharder.rb
606
+ - test/rbbt/persist/tsv/test_cdb.rb
622
607
  - test/rbbt/persist/tsv/test_lmdb.rb
608
+ - test/rbbt/persist/tsv/test_sharder.rb
609
+ - test/rbbt/persist/tsv/test_leveldb.rb
610
+ - test/rbbt/persist/tsv/test_tokyocabinet.rb
623
611
  - test/rbbt/persist/test_tsv.rb
624
612
  - test/rbbt/test_tsv.rb
613
+ - test/rbbt/test_annotations.rb
625
614
  - test/rbbt/test_fix_width_table.rb
626
- - test/rbbt/test_knowledge_base.rb
627
- - test/rbbt/resource/test_path.rb
615
+ - test/rbbt/test_workflow.rb
616
+ - test/rbbt/entity/test_identifiers.rb
617
+ - test/rbbt/annotations/test_util.rb
618
+ - test/rbbt/test_hpc.rb
619
+ - test/rbbt/test_monitor.rb
620
+ - test/rbbt/test_persist.rb
621
+ - test/rbbt/knowledge_base/test_entity.rb
622
+ - test/rbbt/knowledge_base/test_registry.rb
623
+ - test/rbbt/knowledge_base/test_syndicate.rb
624
+ - test/rbbt/knowledge_base/test_query.rb
625
+ - test/rbbt/knowledge_base/test_enrichment.rb
626
+ - test/rbbt/knowledge_base/test_traverse.rb
627
+ - test/test_helper.rb