rbbt-util 5.12.1 → 5.12.2

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: b59e7f300db3c25c5e9cd000c369f0ccae3b96e3
4
- data.tar.gz: 8a4fd1ba66536df107ae3d23426c79b60801a080
3
+ metadata.gz: 957c675de87a163f988c6175828d6de03d346987
4
+ data.tar.gz: 937b879524577ae29d2b41a436ceb0a69e5ba285
5
5
  SHA512:
6
- metadata.gz: 6f4720ab8616fd717fd8d945bed47cfb579b7bf524cd83630b5eb7bdb2fcd4f2058a83b156448001be3dbc488058ce147efd2e14e7bcc866b5c207776b07d39e
7
- data.tar.gz: f47fffb35b77b270b0a02e1fda74e67d1cc6fd4b67e7cc12ba0881b679fd5a2478cb2e01ea08bcd4e2766df5becbd21f1054fd60998aa6127ce3ea374c1fec61
6
+ metadata.gz: 6d5959cd1b7e3a412f16f3a28379d8f1cda0e6677b6eefda51072b6b85095567cea8dee27fd9aaa661ff152e5c748a5c90d7f2c6c716c8b177cc57c2b9235c1e
7
+ data.tar.gz: 6ae212b12a951921efe4405568cf57d1bcb84f9a4393f7eec532e8131ae2e1526b8697540019a7bf98909cb0344c0bc82c7092f868bcea98d7840961a28b5087
@@ -621,7 +621,7 @@ Example:
621
621
  else
622
622
  self.through do |key,values|
623
623
  field_values = values.delete_at field_pos
624
- zipped = values.zip_fields
624
+ zipped = Misc.zip_fields(values)
625
625
  field_values.zip(zipped).each do |field_value,rest|
626
626
  k = [key,field_value]*":"
627
627
  new[k] = rest
@@ -631,11 +631,12 @@ Example:
631
631
  end
632
632
  end
633
633
 
634
-
635
- new.key_field = [self.key_field, self.fields[field_pos]] * ":"
636
- new_fields = self.fields.dup
637
- new_fields.delete_at field_pos
638
- new.fields = new_fields
634
+ if self.key_field and self.fields
635
+ new.key_field = [self.key_field, self.fields[field_pos]] * ":"
636
+ new_fields = self.fields.dup
637
+ new_fields.delete_at field_pos
638
+ new.fields = new_fields
639
+ end
639
640
 
640
641
  new
641
642
  end
@@ -306,9 +306,9 @@ module TSV
306
306
  end
307
307
  end
308
308
 
309
- def self.traverse_stream(obj, threads, cpus, options, &block)
309
+ def self.traverse_stream(obj, threads = nil, cpus = nil, options = {}, &block)
310
310
  into = options[:into]
311
- thread = Thread.new(Thread.current, obj) do |parent,obj|
311
+ thread = Thread.new(Thread.current) do |parent|
312
312
  begin
313
313
  traverse_run(obj, threads, cpus, options, &block)
314
314
  into.close if into.respond_to? :close
@@ -277,6 +277,15 @@ module TSV
277
277
  end
278
278
  end
279
279
 
280
+ def cast_values_flat(values)
281
+ case
282
+ when Symbol === cast
283
+ values.collect{|v| v.send(cast)}
284
+ when Proc === cast
285
+ values.collect{|v| cast.call v }
286
+ end
287
+ end
288
+
280
289
  def cast_values_double(values)
281
290
  case
282
291
  when Symbol === cast
@@ -408,7 +417,7 @@ module TSV
408
417
  when :flat
409
418
  @take_all = true if field_positions.nil?
410
419
  self.instance_eval do alias get_values get_values_flat end
411
- self.instance_eval do alias cast_values cast_values_double end
420
+ self.instance_eval do alias cast_values cast_values_flat end
412
421
  if merge
413
422
  if key_position and key_position != 0 and field_positions.nil?
414
423
  self.instance_eval do alias add_to_data add_to_data_flat_merge_keys end
@@ -35,12 +35,16 @@ module Misc
35
35
  end
36
36
 
37
37
  def self.append_zipped(current, new)
38
- current.each do |v|
39
- n = new.shift
40
- if Array === n
41
- v.concat new
42
- else
43
- v << n
38
+ if current.empty?
39
+ current.replace new.collect{|e| [e]}
40
+ else
41
+ current.each do |v|
42
+ n = new.shift
43
+ if Array === n
44
+ v.concat new
45
+ else
46
+ v << n
47
+ end
44
48
  end
45
49
  end
46
50
  current
@@ -57,7 +57,7 @@ module Misc
57
57
  end
58
58
  Kernel.exit! 0
59
59
  }
60
- sin.close #if close
60
+ sin.close
61
61
  ConcurrentStream.setup sout, :pids => [pid]
62
62
  else
63
63
  thread = Thread.new(Thread.current) do |parent|
@@ -181,7 +181,6 @@ module Misc
181
181
  io.join if io.respond_to? :join
182
182
  rescue
183
183
  Log.error "Exception consuming stream: #{io.inspect}"
184
- ddd caller
185
184
  Log.exception $!
186
185
  io.abort if io.respond_to? :abort
187
186
  end
@@ -25,6 +25,10 @@ module SOPT
25
25
  value = args.delete_at(i) if value.nil?
26
26
  values[input] = value
27
27
  else
28
+ if value.nil? and %w(F false FALSE no).include?(args[i])
29
+ Log.warn "Boolean values must are best specified as #{current}[=true|false], not #{ current } [true|false]. Token '#{args[i]}' following '#{current}' automatically assigned as value"
30
+ value = args.delete_at(i)
31
+ end
28
32
  values[input] = %w(F false FALSE no).include?(value)? false : true
29
33
  end
30
34
  end
@@ -63,6 +63,6 @@ module Workflow
63
63
  inputs[input.to_sym] = file.read.strip
64
64
  end
65
65
  end
66
- Sequence.job(task_name, example, inputs)
66
+ self.job(task_name, example, inputs)
67
67
  end
68
68
  end
@@ -15,7 +15,7 @@ Display summary information. Works with Tokyocabinet HDB and BDB as well.
15
15
  -tch--tokyocabinet File is a TC HDB
16
16
  -tcb--tokyocabinet_bd File is a TC BDB
17
17
  -t--type* Type of tsv (single, list, double, flat)
18
- -h--header_hash* Change the character used to mark the header line (defaults to #)
18
+ -hh--header_hash* Change the character used to mark the header line (defaults to #)
19
19
  -k--key_field* Change the key field
20
20
  -f--fields* Change the fields to load
21
21
  -h--help Help
@@ -3,7 +3,24 @@
3
3
  require 'rbbt-util'
4
4
  require 'rbbt/util/simpleopt'
5
5
 
6
- options = SOPT.get("-tch--tokyocabinet:-tcb--tokyocabinet_bd:-f--field Field to append to key:-m--merge Consider multiple values even after unzip")
6
+ $0 = "rbbt #{$previous_commands*""} #{ File.basename(__FILE__) }" if $previous_commands
7
+
8
+ options = SOPT.setup <<EOF
9
+ Zip fields in a TSV file
10
+
11
+ $ rbbt tsv info [options] file.tsv
12
+
13
+ Display summary information. Works with Tokyocabinet HDB and BDB as well.
14
+
15
+ -tch--tokyocabinet File is a TC HDB
16
+ -tcb--tokyocabinet_bd File is a TC BDB
17
+ -hh--header_hash* Change the character used to mark the header line (defaults to #)
18
+ -m--merge* Merge lines
19
+ -f--field* Field to unzip
20
+ -h--help Help
21
+ EOF
22
+
23
+ SOPT.usage if options[:help]
7
24
 
8
25
  file = ARGV.shift
9
26
 
@@ -22,7 +39,7 @@ else
22
39
  file = file.dup
23
40
  Path.setup(File.expand_path(file))
24
41
  end
25
- tsv = TSV.open(file, :type => :double)
42
+ tsv = TSV.open(file, {:type => :double}.merge(options))
26
43
  end
27
44
 
28
45
  puts tsv.unzip(field, merge).to_s
@@ -29,7 +29,7 @@ def run_task(workflow, task, name)
29
29
  end
30
30
  Process.wait @pid
31
31
  end
32
- path = Open.read(res) if File.exists? res
32
+ path = Open.read(res).strip if File.exists? res
33
33
  end
34
34
  path = "NO RESULT" if path.nil? or path.empty?
35
35
 
@@ -51,6 +51,8 @@ task = nil if task == '--'
51
51
  name = ARGV.shift if task
52
52
  name = nil if name == '--'
53
53
 
54
+ orig_name = name
55
+
54
56
  $saved_args = ARGV.dup
55
57
 
56
58
  workflow = Workflow.require_workflow workflow
@@ -70,8 +72,12 @@ task_result.each do |code,res|
70
72
  task, name = code
71
73
  path, success = res
72
74
  if success
73
- puts "#{Log.color :green, "SUCCESS"} #{Log.color :magenta, workflow.to_s}##{Log.color :yellow, task} -- #{Log.color :cyan, name}"
74
- puts path
75
+ if orig_name
76
+ puts Open.read(path)
77
+ else
78
+ puts "#{Log.color :green, "SUCCESS"} #{Log.color :magenta, workflow.to_s}##{Log.color :yellow, task} -- #{Log.color :cyan, name}"
79
+ puts path
80
+ end
75
81
  else
76
82
  puts "#{Log.color :red, "ERROR"} #{Log.color :magenta, workflow.to_s}##{Log.color :yellow, task} -- #{Log.color :cyan, name}"
77
83
  puts path
@@ -100,7 +100,7 @@ def fix_options(workflow, task, job_options)
100
100
  end
101
101
  end
102
102
  when :array
103
- if input_options[name] and input_options[name][:stream] and String === value
103
+ if input_options[name] and input_options[name][:stream] and String === value and Misc.is_filename? value
104
104
  get_value_stream(value)
105
105
  else
106
106
  if Array === value
@@ -132,9 +132,11 @@ def fix_options(workflow, task, job_options)
132
132
  when TSV
133
133
  value
134
134
  when '-'
135
- TSV.open(STDIN, :unnamed => true, :sep => $field_separator, :sep2 => $array_separator || "|")
135
+ TSV.open(STDIN, :unnamed => true, :sep => $field_separator, :sep2 => ($array_separator || "|"))
136
+ when (Misc.is_filename?(value) and String)
137
+ TSV.open(value, :unnamed => true, :sep => $field_separator, :sep2 => ($array_separator || "|"))
136
138
  else
137
- TSV.open(value, :unnamed => true, :sep => $field_separator, :sep2 => $array_separator || "|")
139
+ TSV.open(StringIO.new(value), :unnamed => true, :sep => $field_separator, :sep2 => ($array_separator || "|"))
138
140
  end
139
141
  end
140
142
  else
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.12.1
4
+ version: 5.12.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-21 00:00:00.000000000 Z
11
+ date: 2014-04-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake