rbbt-util 5.20.12 → 5.20.13

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