rbbt-util 3.0.3 → 3.1.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.
- data/bin/rbbt_Rutil.rb +4 -0
- data/bin/rbbt_exec.rb +33 -0
- data/lib/rbbt/util/R.rb +3 -2
- data/lib/rbbt/util/cmd.rb +13 -2
- data/lib/rbbt/util/fix_width_table.rb +2 -0
- data/lib/rbbt/util/misc.rb +8 -1
- data/lib/rbbt/util/open.rb +2 -2
- data/lib/rbbt/util/persistence.rb +27 -18
- data/lib/rbbt/util/resource.rb +3 -2
- data/lib/rbbt/util/task.rb +77 -5
- data/lib/rbbt/util/task/job.rb +20 -4
- data/lib/rbbt/util/tc_hash.rb +2 -1
- data/lib/rbbt/util/tsv.rb +59 -33
- data/lib/rbbt/util/tsv/accessor.rb +27 -2
- data/lib/rbbt/util/tsv/attach.rb +48 -121
- data/lib/rbbt/util/tsv/index.rb +4 -0
- data/lib/rbbt/util/tsv/manipulate.rb +25 -3
- data/lib/rbbt/util/tsv/misc.rb +31 -0
- data/lib/rbbt/util/tsv/parse.rb +27 -4
- data/lib/rbbt/util/tsv/resource.rb +6 -0
- data/lib/rbbt/util/workflow.rb +1 -1
- data/lib/rbbt/util/workflow/soap.rb +117 -0
- data/share/lib/R/util.R +52 -2
- data/test/rbbt/util/test_misc.rb +11 -11
- data/test/rbbt/util/test_persistence.rb +13 -0
- data/test/rbbt/util/test_tc_hash.rb +4 -2
- data/test/rbbt/util/test_tsv.rb +31 -4
- data/test/rbbt/util/test_workflow.rb +11 -3
- data/test/rbbt/util/tsv/test_attach.rb +35 -1
- data/test/rbbt/util/tsv/test_index.rb +1 -3
- metadata +12 -6
@@ -152,5 +152,18 @@ row2 2 4 6 8
|
|
152
152
|
assert_equal "Test", string
|
153
153
|
end
|
154
154
|
|
155
|
+
def test_non_blocking
|
156
|
+
$a = TSV.new test_datafile('test.tsv'), :persistence => true, :persistence_dir => Rbbt.tmp.test.persistence
|
157
|
+
$a.data.read
|
158
|
+
|
159
|
+
pid = Process.fork do
|
160
|
+
$b = TSV.new test_datafile('test.tsv'), :persistence => true, :persistence_dir => Rbbt.tmp.test.persistence
|
161
|
+
$b.data.close
|
162
|
+
end
|
163
|
+
|
164
|
+
Process.wait pid
|
165
|
+
end
|
166
|
+
|
167
|
+
|
155
168
|
end
|
156
169
|
|
@@ -73,13 +73,15 @@ class TestTCHash < Test::Unit::TestCase
|
|
73
73
|
t.close
|
74
74
|
|
75
75
|
pid = Process.fork do
|
76
|
-
t2 = TCHash.get f,
|
76
|
+
t2 = TCHash.get f, false, :double
|
77
77
|
assert_equal [["3"],["4","5"]], t2["2"]
|
78
|
+
t2.read
|
78
79
|
exit
|
79
80
|
end
|
80
81
|
|
81
|
-
t2 = TCHash.get f,
|
82
|
+
t2 = TCHash.get f, false, :double
|
82
83
|
assert_equal [["3"],["4","5"]], t2["2"]
|
84
|
+
t2.read
|
83
85
|
|
84
86
|
Process.wait pid
|
85
87
|
end
|
data/test/rbbt/util/test_tsv.rb
CHANGED
@@ -178,11 +178,38 @@ row2 A B
|
|
178
178
|
assert !tsv1.case_insensitive
|
179
179
|
assert tsv1.include? "A"
|
180
180
|
end
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
181
|
+
end
|
182
|
+
|
183
|
+
def test_create_array
|
184
|
+
tsv = TSV.new(%w(a b c))
|
185
|
+
assert_equal %w(a b c).sort, tsv.keys.sort
|
186
|
+
assert_equal [[]] * tsv.keys.length, tsv.values
|
187
|
+
end
|
188
|
+
|
189
|
+
def test_persistence_data
|
190
|
+
content1 =<<-EOF
|
191
|
+
#: :sep=/\\s+/#:case_insensitive=false
|
192
|
+
#Id ValueA ValueB
|
193
|
+
row1 a|aa|aaa b
|
194
|
+
row2 A B
|
195
|
+
EOF
|
196
|
+
|
197
|
+
tsv1 = tsv2 = identifiers = nil
|
198
|
+
TmpFile.with_file(content1) do |filename|
|
199
|
+
TmpFile.with_file do |tchashfile|
|
200
|
+
tchash = TCHash.get(tchashfile, true)
|
201
|
+
tsv1 = TSV.new(File.open(filename), :key => "ValueA", :persistence_data => tchash)
|
202
|
+
assert TCHash === tsv1.data
|
203
|
+
assert !tsv1.case_insensitive
|
204
|
+
assert tsv1.include? "A"
|
205
|
+
|
206
|
+
tsv1 = TSV.new(tchash, :key => "ValueA")
|
207
|
+
assert TCHash === tsv1.data
|
208
|
+
assert !tsv1.case_insensitive
|
209
|
+
assert tsv1.include? "A"
|
210
|
+
end
|
185
211
|
end
|
212
|
+
|
186
213
|
end
|
187
214
|
end
|
188
215
|
|
@@ -5,11 +5,11 @@ module MathWF
|
|
5
5
|
extend WorkFlow
|
6
6
|
self.tasks[:input] = Task.new(:input, :marshal, :value) do |value| value end
|
7
7
|
self.tasks[:add_1] = Task.new(:add_1, :marshal) do input + 1 end
|
8
|
-
self.tasks[:add_1].dependencies << :input
|
8
|
+
self.tasks[:add_1].dependencies << tasks[:input]
|
9
9
|
self.tasks[:times_2] = Task.new(:times_2, :marshal) do input * 2 end
|
10
|
-
self.tasks[:times_2].dependencies << :add_1
|
10
|
+
self.tasks[:times_2].dependencies << tasks[:add_1]
|
11
11
|
self.tasks[:times_4] = Task.new(:times_4, :marshal) do input * 4 end
|
12
|
-
self.tasks[:times_4].dependencies << :add_1
|
12
|
+
self.tasks[:times_4].dependencies << tasks[:add_1]
|
13
13
|
self.tasks.each do |name, task| task.workflow = self end
|
14
14
|
end
|
15
15
|
|
@@ -119,5 +119,13 @@ class TestWorkFlow < Test::Unit::TestCase
|
|
119
119
|
assert 2, ConWF.run(:times_2, "Test", "one").load
|
120
120
|
assert 4, ConWF.run(:times_2, "Test", "two").load
|
121
121
|
end
|
122
|
+
|
123
|
+
def test_option_summary
|
124
|
+
assert MathWF.tasks[:times_2].option_summary.first.first[:name] == :value
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_usage
|
128
|
+
assert MathWF.tasks[:times_2].usage =~ /^Task:/
|
129
|
+
end
|
122
130
|
end
|
123
131
|
|
@@ -350,7 +350,41 @@ row6,dd,dd,ee,,
|
|
350
350
|
|
351
351
|
assert_equal result, Open.read(f)
|
352
352
|
end
|
353
|
-
|
353
|
+
end
|
354
|
+
|
355
|
+
def test_paste
|
356
|
+
file1 =<<-EOF
|
357
|
+
row6,dd,dd,ee
|
358
|
+
row1,a,b,c
|
359
|
+
row1,aa,bb,cc
|
360
|
+
row2,A,B,C
|
361
|
+
row3,1,2,3
|
362
|
+
EOF
|
363
|
+
file2 =<<-EOF
|
364
|
+
row20,rr,rr
|
365
|
+
row1,d,e
|
366
|
+
row2,D,E
|
367
|
+
row4,x,y
|
368
|
+
EOF
|
369
|
+
result =<<-EOF
|
370
|
+
row1,aa|a,bb|b,cc|c,d,e
|
371
|
+
row2,A,B,C,D,E
|
372
|
+
row20,,,,rr,rr
|
373
|
+
row3,1,2,3,,
|
374
|
+
row4,,,,x,y
|
375
|
+
row6,dd,dd,ee,,
|
376
|
+
EOF
|
377
|
+
|
378
|
+
TmpFile.with_file do |f|
|
379
|
+
data1 = TSV.new StringIO.new(file1), :sep => ',', :merge => true
|
380
|
+
data2 = TSV.new StringIO.new(file2), :sep => ',', :merge => true
|
381
|
+
data3 = data1.paste(data2)
|
382
|
+
data3.each do |key, list|
|
383
|
+
list.each do |l| l.replace l.sort_by{|v| v.length}.reverse end
|
384
|
+
end
|
385
|
+
|
386
|
+
assert_equal result, data3.to_s(:sort, true).gsub(/\t/,',')
|
387
|
+
end
|
354
388
|
end
|
355
389
|
|
356
390
|
def test_merge_rows
|
@@ -50,7 +50,7 @@ row3 A a|B Id4
|
|
50
50
|
|
51
51
|
TmpFile.with_file(content) do |filename|
|
52
52
|
tsv = TSV.new(File.open(filename), :sep => /\s+/, :key => "OtherID", :persistence => true)
|
53
|
-
index = tsv.index(:case_insensitive => false, :order => true)
|
53
|
+
index = tsv.index(:case_insensitive => false, :order => true, :persistence => true)
|
54
54
|
assert_equal "Id1", index['a'].first
|
55
55
|
assert_equal "Id3", index['A'].first
|
56
56
|
assert_equal "OtherID", index.fields.first
|
@@ -123,9 +123,7 @@ row2 A B
|
|
123
123
|
values["Range"].last
|
124
124
|
end
|
125
125
|
|
126
|
-
ddd tsv.fields
|
127
126
|
tsv = tsv.slice ["Start", "End"]
|
128
|
-
ddd tsv.fields
|
129
127
|
|
130
128
|
tsv
|
131
129
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 3
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 3
|
8
|
+
- 1
|
8
9
|
- 0
|
9
|
-
|
10
|
-
version: 3.0.3
|
10
|
+
version: 3.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Miguel Vazquez
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-04-11 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -109,6 +109,8 @@ executables:
|
|
109
109
|
- tchash.rb
|
110
110
|
- workflow.rb
|
111
111
|
- rbbt_query.rb
|
112
|
+
- rbbt_exec.rb
|
113
|
+
- rbbt_Rutil.rb
|
112
114
|
extensions: []
|
113
115
|
|
114
116
|
extra_rdoc_files:
|
@@ -141,9 +143,11 @@ files:
|
|
141
143
|
- lib/rbbt/util/tsv/attach.rb
|
142
144
|
- lib/rbbt/util/tsv/index.rb
|
143
145
|
- lib/rbbt/util/tsv/manipulate.rb
|
146
|
+
- lib/rbbt/util/tsv/misc.rb
|
144
147
|
- lib/rbbt/util/tsv/parse.rb
|
145
148
|
- lib/rbbt/util/tsv/resource.rb
|
146
149
|
- lib/rbbt/util/workflow.rb
|
150
|
+
- lib/rbbt/util/workflow/soap.rb
|
147
151
|
- share/install/software/lib/install_helpers
|
148
152
|
- share/lib/R/util.R
|
149
153
|
- test/rbbt/util/test_R.rb
|
@@ -176,6 +180,8 @@ files:
|
|
176
180
|
- bin/tchash.rb
|
177
181
|
- bin/workflow.rb
|
178
182
|
- bin/rbbt_query.rb
|
183
|
+
- bin/rbbt_exec.rb
|
184
|
+
- bin/rbbt_Rutil.rb
|
179
185
|
has_rdoc: true
|
180
186
|
homepage: http://github.com/mikisvaz/rbbt-util
|
181
187
|
licenses: []
|
@@ -206,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
206
212
|
requirements: []
|
207
213
|
|
208
214
|
rubyforge_project:
|
209
|
-
rubygems_version: 1.
|
215
|
+
rubygems_version: 1.3.7
|
210
216
|
signing_key:
|
211
217
|
specification_version: 3
|
212
218
|
summary: Utilities for the Ruby Bioinformatics Toolkit (rbbt)
|