rbbt-util 5.26.92 → 5.26.93

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: 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