rbbt-util 5.20.12 → 5.20.13

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
  SHA1:
3
- metadata.gz: 6220d9b921fde8ffacbe0834b01bf818af824aee
4
- data.tar.gz: d8d1de6c214c2a8f052d01de4357d50531943eb5
3
+ metadata.gz: 841046995ec2cd9dda2e965c39eb088c77460d72
4
+ data.tar.gz: 5f07ff9767eaf96377ff5dc1ed222599e111486d
5
5
  SHA512:
6
- metadata.gz: de92607f966a0633f9f5bf5813d35e2a40c94f3f0294890ef26796d9f935ddc1647771b2d43b5ef5e2afa0a5d11f1bd729de45d2ad3ef00d0ca542a2e138d45e
7
- data.tar.gz: 4ce4248ea666aa58aec4fca22c28953ea0c483a7146fbdd299c4559c7f2864d4c6bb0bd7797841884711daf00cede29f44f1c53b0410ab1933deb6e2e0e7fbfc
6
+ metadata.gz: b1f2f171aedb529a94e7d972859f8dcc6b2c152a74e0bbc37e8d3816f1274f9df3e2bbc593d633be412cea27b47c7dcae47e29f2ae8c4d019812b4492a5eea59
7
+ data.tar.gz: 19e701161b6b0c8b7cf74e508b18365d94c53af2783441145afda1673dd38f45c16a17ef64527a5d99484246c9e80a64ec780edefbe95ed39028812abdd145ca
@@ -82,6 +82,7 @@ module Persist
82
82
  persist_options[:prefix] ||= "TSV"
83
83
 
84
84
  if data = persist_options[:data]
85
+ Log.debug "TSV persistence creating with data: #{ Misc.fingerprint(data) }"
85
86
  yield data
86
87
  return data
87
88
  end
@@ -471,7 +471,6 @@ module TSV
471
471
  raise "Unknown TSV type: #{@type.inspect}"
472
472
  end
473
473
 
474
-
475
474
  @straight = false if @sep != "\t" or not @cast.nil? or merge or (@type == :flat and fields)
476
475
  end
477
476
 
@@ -10,7 +10,7 @@ module TSV
10
10
 
11
11
  sorted_input_stream = Misc.sort_stream input_stream, header_hash, cmd_args
12
12
 
13
- parser = TSV::Parser.new sorted_input_stream, options.dup
13
+ parser = TSV::Parser.new(sorted_input_stream, options.dup)
14
14
  dumper = TSV::Dumper.new parser
15
15
  header = TSV.header_lines(parser.key_field, parser.fields, parser.options)
16
16
  dumper.close_in
@@ -232,4 +232,63 @@ module TSV
232
232
  end
233
233
  dumper
234
234
  end
235
+
236
+
237
+ def self.reorder_stream(stream, positions, sep = "\t")
238
+ Misc.open_pipe do |sin|
239
+ line = stream.gets
240
+ line.strip! unless line.nil?
241
+
242
+ while line =~ /^#\:/
243
+ sin.puts line
244
+ line = stream.gets
245
+ line.strip! unless line.nil?
246
+ end
247
+
248
+ while line =~ /^#/
249
+ if Hash === positions
250
+ new = (0..line.split(sep).length-1).to_a
251
+ positions.each do |k,v|
252
+ new[k] = v
253
+ new[v] = k
254
+ end
255
+ positions = new
256
+ end
257
+ sin.puts "#" + line.sub(/^#/,'').strip.split(sep).values_at(*positions).compact * sep
258
+ line = stream.gets
259
+ line.strip! unless line.nil?
260
+ end
261
+
262
+ while line
263
+ if Hash === positions
264
+ new = (0..line.split(sep).length-1).to_a
265
+ positions.each do |k,v|
266
+ new[k] = v
267
+ new[v] = k
268
+ end
269
+ positions = new
270
+ end
271
+ values = line.split(sep)
272
+ new_values = values.values_at(*positions)
273
+ sin.puts new_values * sep
274
+ line = stream.gets
275
+ line.strip! unless line.nil?
276
+ end
277
+ end
278
+ end
279
+
280
+
281
+ def self.reorder_stream_tsv(stream, key_field, fields)
282
+ parser = TSV::Parser.new TSV.get_stream(stream), :key_field => key_field, :fields => fields
283
+ dumper_options = parser.options
284
+ dumper = TSV::Dumper.new dumper_options
285
+ dumper.init
286
+ TSV.traverse parser, :into => dumper do |key,values|
287
+ key = key.first if Array === key
288
+ values = [values] unless Array === values
289
+ [key, values]
290
+ end
291
+ dumper
292
+ end
293
+
235
294
  end
data/lib/rbbt/tsv/util.rb CHANGED
@@ -6,48 +6,6 @@ module TSV
6
6
  field_matches.sort_by{|field, count| count.to_i}.last
7
7
  end
8
8
 
9
- def self.reorder_stream(stream, positions, sep = "\t")
10
- Misc.open_pipe do |sin|
11
- line = stream.gets
12
- line.strip! unless line.nil?
13
-
14
- while line =~ /^#\:/
15
- sin.puts line
16
- line = stream.gets
17
- line.strip! unless line.nil?
18
- end
19
-
20
- while line =~ /^#/
21
- if Hash === positions
22
- new = (0..line.split(sep).length-1).to_a
23
- positions.each do |k,v|
24
- new[k] = v
25
- new[v] = k
26
- end
27
- positions = new
28
- end
29
- sin.puts "#" + line.sub(/^#/,'').strip.split(sep).values_at(*positions).compact * sep
30
- line = stream.gets
31
- line.strip! unless line.nil?
32
- end
33
-
34
- while line
35
- if Hash === positions
36
- new = (0..line.split(sep).length-1).to_a
37
- positions.each do |k,v|
38
- new[k] = v
39
- new[v] = k
40
- end
41
- positions = new
42
- end
43
- values = line.split(sep)
44
- new_values = values.values_at(*positions)
45
- sin.puts new_values * sep
46
- line = stream.gets
47
- line.strip! unless line.nil?
48
- end
49
- end
50
- end
51
9
 
52
10
  def self.field_match_counts(file, values, options = {})
53
11
  options = Misc.add_defaults options, :persist_prefix => "Field_Matches"
@@ -201,7 +201,7 @@ module Misc
201
201
  when cds =~ />/
202
202
  cds.split(">").last
203
203
  when cds =~ /del/
204
- deletion = cds.split("del").last
204
+ deletion = cds.split("del").last.chomp
205
205
  case
206
206
  when deletion =~ /^\d+$/
207
207
  "-" * deletion.to_i
@@ -398,11 +398,6 @@ module Misc
398
398
  def self.sort_stream(stream, header_hash = "#", cmd_args = "-u")
399
399
  Misc.open_pipe do |sin|
400
400
  begin
401
- #if defined? Step and Step === stream
402
- # step = stream
403
- # stream = stream.get_stream || stream.path.open
404
- #end
405
-
406
401
  stream = TSV.get_stream stream
407
402
 
408
403
  line = stream.gets
@@ -153,8 +153,7 @@ class Step
153
153
  Log.error "Interrupted while in dep. #{Log.color :red, dependency.task_name.to_s}"
154
154
  raise $!
155
155
  rescue Exception
156
- Log.error "Exception in dep. #{ Log.color :red, dependency.task_name.to_s }"
157
- Log.exception $!
156
+ Log.error "Exception in dep. #{ Log.color :red, dependency.task_name.to_s } -- #{$!.message}"
158
157
  raise $!
159
158
  end
160
159
  end
@@ -217,4 +217,20 @@ row2 a|aa|aaa
217
217
  assert_equal text2, s2.stream.read
218
218
  end
219
219
 
220
+ def test_reorder_stream
221
+ text=<<-EOF
222
+ #: :sep=" "
223
+ #Row LabelA LabelB LabelC
224
+ row1 A B C
225
+ row1 a b c
226
+ row2 AA BB CC
227
+ row2 aa bb cc
228
+ row4 BBB CC
229
+ EOF
230
+
231
+ s = StringIO.new text
232
+ dumper = TSV.reorder_stream_tsv(s, "LabelC", %w(Row LabelA))
233
+ tsv = TSV.open TSV.collapse_stream(dumper.stream).stream.read
234
+ assert_equal %w(row2 row4), tsv["CC"]["Row"]
235
+ end
220
236
  end
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.20.12
4
+ version: 5.20.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-16 00:00:00.000000000 Z
11
+ date: 2016-06-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake