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