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 +4 -4
- data/lib/rbbt/tsv/stream.rb +16 -10
- data/lib/rbbt/workflow/accessor.rb +11 -9
- data/test/rbbt/tsv/test_attach.rb +68 -0
- data/test/rbbt/tsv/test_index.rb +16 -0
- metadata +69 -69
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 45fa23a77186b3e5f47cf3ccf754a4b2906329639ca1d188e2b9f347850abd27
|
4
|
+
data.tar.gz: 49b4d7b48339260536aebbd8c9f35e59155bf253a7a63685683db54967ca5359
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37d1a5ac5167e6f4612413c86b03bb96babf71164c9c7433d14d841d3fee489ecc4abc6a613ea49f2580876cd78bd32e8a40e7437953efcbcf0e5464d1f11589
|
7
|
+
data.tar.gz: db18ad88a2c5eae7b478eeebde69ea498ffd8f123b8e1113e4e7dc91a21ed7689147436ac690d5b5f4777bf7cd2efa1227250fa3a477ef76ebca88c8add80a8c
|
data/lib/rbbt/tsv/stream.rb
CHANGED
@@ -66,21 +66,27 @@ module TSV
|
|
66
66
|
sfields = sfields.collect{|f| [prefix, f] * ":" }
|
67
67
|
end
|
68
68
|
|
69
|
-
|
70
|
-
|
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
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
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
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
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
|
-
|
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
|
|
data/test/rbbt/tsv/test_index.rb
CHANGED
@@ -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.
|
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
|
+
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.
|
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/
|
544
|
-
- test/rbbt/
|
545
|
-
- test/rbbt/
|
546
|
-
- test/rbbt/
|
547
|
-
- test/rbbt/
|
548
|
-
- test/rbbt/
|
549
|
-
- test/rbbt/
|
550
|
-
- test/rbbt/
|
551
|
-
- test/rbbt/
|
552
|
-
- test/rbbt/
|
553
|
-
- test/rbbt/
|
554
|
-
- test/rbbt/
|
555
|
-
- test/rbbt/
|
556
|
-
- test/rbbt/
|
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/
|
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/
|
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/
|
564
|
-
- test/rbbt/util/
|
565
|
-
- test/rbbt/util/
|
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/
|
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/
|
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/
|
587
|
-
- test/rbbt/
|
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/
|
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/
|
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/
|
604
|
-
- test/rbbt/
|
605
|
-
- test/rbbt/
|
606
|
-
- test/rbbt/
|
607
|
-
- test/rbbt/
|
608
|
-
- test/rbbt/
|
609
|
-
- test/rbbt/
|
610
|
-
- test/rbbt/
|
611
|
-
- test/rbbt/
|
612
|
-
- test/rbbt/
|
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/
|
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/
|
627
|
-
- test/rbbt/
|
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
|