rbbt-util 5.4.1 → 5.5.0
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 +8 -8
- data/bin/rbbt_monitor.rb +8 -4
- data/lib/rbbt.rb +4 -11
- data/lib/rbbt/annotations.rb +4 -1
- data/lib/rbbt/association.rb +218 -157
- data/lib/rbbt/association/index.rb +92 -0
- data/lib/rbbt/association/item.rb +44 -0
- data/lib/rbbt/entity.rb +4 -0
- data/lib/rbbt/fix_width_table.rb +14 -9
- data/lib/rbbt/knowledge_base.rb +269 -0
- data/lib/rbbt/persist.rb +1 -1
- data/lib/rbbt/persist/tsv.rb +22 -2
- data/lib/rbbt/resource.rb +0 -1
- data/lib/rbbt/resource/path.rb +1 -1
- data/lib/rbbt/resource/util.rb +0 -1
- data/lib/rbbt/tsv.rb +15 -14
- data/lib/rbbt/tsv/accessor.rb +21 -16
- data/lib/rbbt/tsv/attach.rb +5 -5
- data/lib/rbbt/tsv/attach/util.rb +4 -2
- data/lib/rbbt/tsv/change_id.rb +67 -0
- data/lib/rbbt/tsv/index.rb +5 -3
- data/lib/rbbt/tsv/manipulate.rb +83 -37
- data/lib/rbbt/tsv/parser.rb +2 -1
- data/lib/rbbt/tsv/util.rb +2 -0
- data/lib/rbbt/util/cmd.rb +1 -2
- data/lib/rbbt/util/log.rb +42 -38
- data/lib/rbbt/util/misc.rb +134 -46
- data/lib/rbbt/util/open.rb +3 -17
- data/lib/rbbt/util/semaphore.rb +8 -2
- data/lib/rbbt/workflow.rb +31 -46
- data/lib/rbbt/workflow/accessor.rb +1 -1
- data/lib/rbbt/workflow/step.rb +5 -3
- data/share/rbbt_commands/workflow/server +1 -0
- data/share/rbbt_commands/workflow/task +12 -2
- data/test/rbbt/association/test_index.rb +36 -0
- data/test/rbbt/test_annotations.rb +5 -4
- data/test/rbbt/test_association.rb +40 -13
- data/test/rbbt/test_knowledge_base.rb +103 -0
- data/test/rbbt/test_workflow.rb +4 -2
- data/test/rbbt/tsv/test_change_id.rb +43 -0
- data/test/rbbt/tsv/test_index.rb +2 -1
- data/test/rbbt/tsv/test_manipulate.rb +51 -0
- data/test/rbbt/util/test_misc.rb +21 -1
- data/test/test_helper.rb +8 -4
- metadata +12 -86
data/test/rbbt/test_workflow.rb
CHANGED
@@ -104,11 +104,13 @@ class TestWorkflow < Test::Unit::TestCase
|
|
104
104
|
|
105
105
|
assert_equal [job1.name, job2.name].sort, TestWF.jobs(:repeat2, "subdir/").sort
|
106
106
|
assert_equal [job1.name].sort, TestWF.jobs(:repeat2, "subdir/Default")
|
107
|
-
|
107
|
+
assert TestWF.jobs(:repeat2).include?(job1.name)
|
108
|
+
assert TestWF.jobs(:repeat2).include?(job2.name)
|
109
|
+
assert TestWF.jobs(:repeat2).include?(job3.name)
|
108
110
|
end
|
109
111
|
|
110
112
|
def test_double_dep
|
111
|
-
assert_equal ["TEST", "TEST\nTEST", "TEST\nTEST\nTEST\nTEST"], TestWF.job(:double_dep, "foo", :times => 2, :number => 2).run
|
113
|
+
assert_equal ["TEST", "TEST\nTEST", "TEST\nTEST\nTEST\nTEST"], TestWF.job(:double_dep, "foo", :times => 2, :number => 2).clean.run
|
112
114
|
end
|
113
115
|
|
114
116
|
def test_object_workflow
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
|
2
|
+
require 'rbbt/tsv'
|
3
|
+
require 'rbbt/tsv/change_id'
|
4
|
+
|
5
|
+
class TestTSVChangeID < Test::Unit::TestCase
|
6
|
+
|
7
|
+
FILE1=<<-EOF
|
8
|
+
#: :sep=' '
|
9
|
+
#A B C
|
10
|
+
a b c
|
11
|
+
aa bb cc
|
12
|
+
EOF
|
13
|
+
|
14
|
+
FILE2=<<-EOF
|
15
|
+
#: :sep=' '
|
16
|
+
#X Y Z
|
17
|
+
x y z
|
18
|
+
xx yy zz
|
19
|
+
EOF
|
20
|
+
|
21
|
+
IDENTIFIERS=<<-EOF
|
22
|
+
#: :sep=' '
|
23
|
+
#A X
|
24
|
+
a x
|
25
|
+
aa xx
|
26
|
+
EOF
|
27
|
+
|
28
|
+
def tsv(text, options = {})
|
29
|
+
options = Misc.add_defaults options, :type => :list
|
30
|
+
TSV.open StringIO.new(text), options
|
31
|
+
end
|
32
|
+
|
33
|
+
def setup
|
34
|
+
@f1 = tsv(FILE1)
|
35
|
+
@f2 = tsv(FILE2)
|
36
|
+
@id = tsv(IDENTIFIERS)
|
37
|
+
end
|
38
|
+
|
39
|
+
def test_change_id
|
40
|
+
@f1.identifiers = @id
|
41
|
+
puts @f1.change_key "X"
|
42
|
+
end
|
43
|
+
end
|
data/test/rbbt/tsv/test_index.rb
CHANGED
@@ -6,14 +6,15 @@ class TestTSVManipulate < Test::Unit::TestCase
|
|
6
6
|
|
7
7
|
def load_segment_data(data)
|
8
8
|
tsv = TSV.open(data, :list, :sep=>":", :cast => proc{|e| e =~ /(\s*)(_*)/; ($1.length..($1.length + $2.length - 1))})
|
9
|
+
|
9
10
|
tsv.add_field "Start" do |key, values|
|
10
11
|
values["Range"].first
|
11
12
|
end
|
13
|
+
|
12
14
|
tsv.add_field "End" do |key, values|
|
13
15
|
values["Range"].last
|
14
16
|
end
|
15
17
|
|
16
|
-
puts tsv.type
|
17
18
|
tsv = tsv.slice ["Start", "End"]
|
18
19
|
|
19
20
|
tsv
|
@@ -132,6 +132,37 @@ row3 a C Id4
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
+
def test_select_invert
|
136
|
+
content =<<-EOF
|
137
|
+
#Id ValueA ValueB OtherID
|
138
|
+
row1 a|aa|aaa b Id1|Id2
|
139
|
+
row2 A B Id3
|
140
|
+
row3 a C Id4
|
141
|
+
EOF
|
142
|
+
|
143
|
+
TmpFile.with_file(content) do |filename|
|
144
|
+
tsv = TSV.open(filename, :sep => /\s+/)
|
145
|
+
assert tsv.type == :double
|
146
|
+
|
147
|
+
new = tsv.select %w(b Id4), true
|
148
|
+
assert_equal %w(row2).sort, new.keys
|
149
|
+
|
150
|
+
new = tsv.select /b|Id4/, true
|
151
|
+
assert_equal %w(row2).sort, new.keys
|
152
|
+
|
153
|
+
new = tsv.select %w(b Id4)
|
154
|
+
assert_equal %w(row1 row3).sort, new.keys.sort
|
155
|
+
|
156
|
+
new = tsv.select do |k,v|
|
157
|
+
v["ValueA"].include? "A"
|
158
|
+
end
|
159
|
+
assert_equal %w(row2).sort, new.keys.sort
|
160
|
+
|
161
|
+
tsv = TSV.open(filename, :sep => /\s+/, :type => :flat)
|
162
|
+
assert tsv.type != :double
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
135
166
|
def test_process
|
136
167
|
content =<<-EOF
|
137
168
|
#Id ValueA ValueB OtherID
|
@@ -242,5 +273,25 @@ row3 a C Id4
|
|
242
273
|
|
243
274
|
end
|
244
275
|
|
276
|
+
def test_through_flat
|
277
|
+
content =<<-EOF
|
278
|
+
#: :type=:flat
|
279
|
+
#Row vA
|
280
|
+
row1 a b Id1
|
281
|
+
row2 A B Id3
|
282
|
+
row3 a C Id4
|
283
|
+
EOF
|
284
|
+
|
285
|
+
TmpFile.with_file(content) do |filename|
|
286
|
+
tsv = TSV.open(filename, :sep => /\s+/)
|
287
|
+
tsv.through :key, ["vA"] do |k,v|
|
288
|
+
assert_equal 3, v.length
|
289
|
+
end
|
290
|
+
|
291
|
+
|
292
|
+
end
|
293
|
+
|
294
|
+
end
|
295
|
+
|
245
296
|
|
246
297
|
end
|
data/test/rbbt/util/test_misc.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
|
2
2
|
require 'rbbt/util/misc'
|
3
3
|
require 'test/unit'
|
4
|
+
require 'rbbt/tsv'
|
5
|
+
require 'rbbt/entity'
|
4
6
|
|
5
7
|
class TestMisc < Test::Unit::TestCase
|
6
8
|
|
@@ -42,6 +44,20 @@ class TestMisc < Test::Unit::TestCase
|
|
42
44
|
def test_intersect_sorted_arrays
|
43
45
|
assert_equal [2,4], Misc.intersect_sorted_arrays([1,2,3,4], [2,4])
|
44
46
|
end
|
47
|
+
|
48
|
+
def test_sorted_array_matches
|
49
|
+
assert_equal [1,3], Misc.sorted_array_hits(%w(a b c d e), %w(b d))
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_binary_include?
|
53
|
+
a = %w(a b c d e).sort
|
54
|
+
assert Misc.binary_include?(a, "a")
|
55
|
+
assert(!Misc.binary_include?(a, "z"))
|
56
|
+
assert(Misc.binary_include?(a, "b"))
|
57
|
+
assert(Misc.binary_include?(a, "c"))
|
58
|
+
assert(Misc.binary_include?(a, "d"))
|
59
|
+
end
|
60
|
+
|
45
61
|
def test_process_to_hash
|
46
62
|
list = [1,2,3,4]
|
47
63
|
assert_equal 4, Misc.process_to_hash(list){|l| l.collect{|e| e * 2}}[2]
|
@@ -127,8 +143,8 @@ class TestMisc < Test::Unit::TestCase
|
|
127
143
|
a = {:a => 1, "b" => 2}
|
128
144
|
a.extend IndiferentHash
|
129
145
|
|
130
|
-
assert_equal 1, a["a"]
|
131
146
|
assert_equal 1, a[:a]
|
147
|
+
assert_equal 1, a["a"]
|
132
148
|
assert_equal 2, a["b"]
|
133
149
|
assert_equal 2, a[:b]
|
134
150
|
end
|
@@ -219,4 +235,8 @@ class TestMisc < Test::Unit::TestCase
|
|
219
235
|
def test_correct_vcf_mutations
|
220
236
|
assert_equal [737407, ["-----", "-----G", "-----GTTAAT"]], Misc.correct_vcf_mutation(737406, "GTTAAT", "G,GG,GGTTAAT")
|
221
237
|
end
|
238
|
+
|
239
|
+
def test_fingerprint
|
240
|
+
puts Misc.fingerprint({:a => 1})
|
241
|
+
end
|
222
242
|
end
|
data/test/test_helper.rb
CHANGED
@@ -11,13 +11,17 @@ class Test::Unit::TestCase
|
|
11
11
|
include FileUtils
|
12
12
|
|
13
13
|
def setup
|
14
|
-
|
14
|
+
if defined? Persist
|
15
|
+
Persist.cachedir = Rbbt.tmp.test.persistence.find :user
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
17
19
|
def teardown
|
18
|
-
|
19
|
-
|
20
|
-
|
20
|
+
if defined? Persist
|
21
|
+
FileUtils.rm_rf Path.setup("", 'rbbt').tmp.test.find :user
|
22
|
+
Persist::TC_CONNECTIONS.values.each do |c| c.close end
|
23
|
+
Persist::TC_CONNECTIONS.clear
|
24
|
+
end
|
21
25
|
end
|
22
26
|
|
23
27
|
def datafile_test(file)
|
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.
|
4
|
+
version: 5.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -24,34 +24,6 @@ dependencies:
|
|
24
24
|
- - ! '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: spreadsheet
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ! '>='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ! '>='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: ruby-prof
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ! '>='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ! '>='
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
27
|
- !ruby/object:Gem::Dependency
|
56
28
|
name: progress-monitor
|
57
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,48 +52,6 @@ dependencies:
|
|
80
52
|
- - ! '>='
|
81
53
|
- !ruby/object:Gem::Version
|
82
54
|
version: '0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: narray
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ! '>='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ! '>='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: simplews
|
99
|
-
requirement: !ruby/object:Gem::Requirement
|
100
|
-
requirements:
|
101
|
-
- - ! '>='
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '0'
|
104
|
-
type: :runtime
|
105
|
-
prerelease: false
|
106
|
-
version_requirements: !ruby/object:Gem::Requirement
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: highline
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - ! '>='
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
55
|
- !ruby/object:Gem::Dependency
|
126
56
|
name: ZenTest
|
127
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,20 +66,6 @@ dependencies:
|
|
136
66
|
- - '='
|
137
67
|
- !ruby/object:Gem::Version
|
138
68
|
version: '4.3'
|
139
|
-
- !ruby/object:Gem::Dependency
|
140
|
-
name: RubyInline
|
141
|
-
requirement: !ruby/object:Gem::Requirement
|
142
|
-
requirements:
|
143
|
-
- - ! '>='
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: '0'
|
146
|
-
type: :runtime
|
147
|
-
prerelease: false
|
148
|
-
version_requirements: !ruby/object:Gem::Requirement
|
149
|
-
requirements:
|
150
|
-
- - ! '>='
|
151
|
-
- !ruby/object:Gem::Version
|
152
|
-
version: '0'
|
153
69
|
description: Utilities for handling tsv files, caches, etc
|
154
70
|
email: miguel.vazquez@cnio.es
|
155
71
|
executables:
|
@@ -174,8 +90,11 @@ files:
|
|
174
90
|
- lib/rbbt/annotations/annotated_array.rb
|
175
91
|
- lib/rbbt/annotations/util.rb
|
176
92
|
- lib/rbbt/association.rb
|
93
|
+
- lib/rbbt/association/index.rb
|
94
|
+
- lib/rbbt/association/item.rb
|
177
95
|
- lib/rbbt/entity.rb
|
178
96
|
- lib/rbbt/fix_width_table.rb
|
97
|
+
- lib/rbbt/knowledge_base.rb
|
179
98
|
- lib/rbbt/persist.rb
|
180
99
|
- lib/rbbt/persist/tsv.rb
|
181
100
|
- lib/rbbt/resource.rb
|
@@ -187,6 +106,7 @@ files:
|
|
187
106
|
- lib/rbbt/tsv/accessor.rb
|
188
107
|
- lib/rbbt/tsv/attach.rb
|
189
108
|
- lib/rbbt/tsv/attach/util.rb
|
109
|
+
- lib/rbbt/tsv/change_id.rb
|
190
110
|
- lib/rbbt/tsv/excel.rb
|
191
111
|
- lib/rbbt/tsv/filter.rb
|
192
112
|
- lib/rbbt/tsv/index.rb
|
@@ -240,7 +160,9 @@ files:
|
|
240
160
|
- test/rbbt/tsv/test_filter.rb
|
241
161
|
- test/rbbt/tsv/test_attach.rb
|
242
162
|
- test/rbbt/tsv/test_manipulate.rb
|
163
|
+
- test/rbbt/tsv/test_change_id.rb
|
243
164
|
- test/rbbt/test_fix_width_table.rb
|
165
|
+
- test/rbbt/association/test_index.rb
|
244
166
|
- test/rbbt/test_association.rb
|
245
167
|
- test/rbbt/test_workflow.rb
|
246
168
|
- test/rbbt/workflow/test_step.rb
|
@@ -251,6 +173,7 @@ files:
|
|
251
173
|
- test/rbbt/test_resource.rb
|
252
174
|
- test/rbbt/test_annotations.rb
|
253
175
|
- test/rbbt/test_entity.rb
|
176
|
+
- test/rbbt/test_knowledge_base.rb
|
254
177
|
- test/rbbt/test_persist.rb
|
255
178
|
- test/rbbt/util/test_filecache.rb
|
256
179
|
- test/rbbt/util/test_tmpfile.rb
|
@@ -304,7 +227,9 @@ test_files:
|
|
304
227
|
- test/rbbt/tsv/test_filter.rb
|
305
228
|
- test/rbbt/tsv/test_attach.rb
|
306
229
|
- test/rbbt/tsv/test_manipulate.rb
|
230
|
+
- test/rbbt/tsv/test_change_id.rb
|
307
231
|
- test/rbbt/test_fix_width_table.rb
|
232
|
+
- test/rbbt/association/test_index.rb
|
308
233
|
- test/rbbt/test_association.rb
|
309
234
|
- test/rbbt/test_workflow.rb
|
310
235
|
- test/rbbt/workflow/test_step.rb
|
@@ -315,6 +240,7 @@ test_files:
|
|
315
240
|
- test/rbbt/test_resource.rb
|
316
241
|
- test/rbbt/test_annotations.rb
|
317
242
|
- test/rbbt/test_entity.rb
|
243
|
+
- test/rbbt/test_knowledge_base.rb
|
318
244
|
- test/rbbt/test_persist.rb
|
319
245
|
- test/rbbt/util/test_filecache.rb
|
320
246
|
- test/rbbt/util/test_tmpfile.rb
|