rbbt-util 5.20.14 → 5.20.15

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: 7b5585c1845795e5a7c874e332091305114e4ee7
4
- data.tar.gz: 9b66bcf3e909d67e240419b4492ebfb5a418185a
3
+ metadata.gz: 8acdb68bc077ef40aa93cc0bd822e2a03e634d7f
4
+ data.tar.gz: 5aeb1004ef167478f65659794dbc2c93d294cd10
5
5
  SHA512:
6
- metadata.gz: a4b43d8d9cf4506820dfbb6171527a98dd2cdfde10da40291f63c0ebb6c30c7359b1464ec35199d1d370da8175263986c957ccd72d684bed0f53be0e378f6202
7
- data.tar.gz: 8439f337004a4b65353b63535343e42fa1f37075a2f71dfccf90c130615e4a9c46eefb93e7c60b2b23ab7e11d3a4b991a6680faff6593914719344e611258250
6
+ metadata.gz: c5bb2dc2c484251bc7d41b88d3869eeea5d179724bf4ff46403fdd7e3c84be1c28bb31c8bd5d4412f51027221e3fd41139acd1b444fbb1829adcd8baa49560e6
7
+ data.tar.gz: 1c82abfa22a27807250e030c22f03a586327d10cee8baea5bc70644275e71ad7f69cff72c4327df9ff4f6f0f05b8e788a5c1ff28b949bdae1ab9d5791f519672
data/lib/rbbt/resource.rb CHANGED
@@ -160,6 +160,8 @@ module Resource
160
160
  Misc.sensiblewrite(final_path, data * "\n")
161
161
  when TSV
162
162
  Misc.sensiblewrite(final_path, data.dumper_stream)
163
+ when TSV::Dumper
164
+ Misc.sensiblewrite(final_path, data.stream)
163
165
  when nil
164
166
  else
165
167
  raise "Unkown object produced: #{Misc.fingerprint data}"
@@ -34,8 +34,19 @@ class WorkflowRESTClient
34
34
  inputs.each do |k,v|
35
35
  stream = stream_input.to_s == k.to_s
36
36
  if Step === v
37
- v.run(true) and v.grace unless v.done? or v.streaming?
38
- new_inputs[k] = stream ? TSV.get_stream(v) : v.load
37
+ unless (v.done? or v.streaming? or RestClient::Step === v)
38
+ v.run(true) and v.grace
39
+ end
40
+
41
+ begin
42
+ if stream
43
+ new_inputs[k] = TSV.get_stream(v)
44
+ else
45
+ new_inputs[k] = v.load
46
+ end
47
+ rescue Exception
48
+ raise $!
49
+ end
39
50
  else
40
51
  new_inputs[k] = v
41
52
  end
@@ -352,6 +352,8 @@ module TSV
352
352
 
353
353
  def self.traverse_cpus(num, obj, options, &block)
354
354
  begin
355
+ error = false
356
+
355
357
  callback, cleanup, join, respawn, bar = Misc.process_options options, :callback, :cleanup, :join, :respawn, :bar
356
358
  respawn = true if ENV["RBBT_RESPAWN"] and ENV["RBBT_RESPAWN"] == "true"
357
359
 
@@ -369,6 +371,7 @@ module TSV
369
371
  q.join
370
372
 
371
373
  rescue Interrupt, Aborted
374
+ error = true
372
375
  q.abort
373
376
  Log.medium{"Aborted traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.backtrace*","}"}
374
377
  stream = obj_stream(obj)
@@ -377,6 +380,7 @@ module TSV
377
380
  stream.abort if stream.respond_to? :abort
378
381
  raise "Traversal aborted"
379
382
  rescue Exception
383
+ error = true
380
384
  q.abort
381
385
  Log.medium "Exception during traversal in CPUs for #{stream_name(obj) || Misc.fingerprint(obj)}: #{$!.message}"
382
386
  stream = obj_stream(obj)
@@ -386,7 +390,7 @@ module TSV
386
390
  raise $!
387
391
  ensure
388
392
  q.clean
389
- Log::ProgressBar.remove_bar(bar) if bar
393
+ Log::ProgressBar.remove_bar(bar, error) if bar
390
394
  end
391
395
  end
392
396
 
@@ -147,5 +147,21 @@ module Log
147
147
  print(io, up_lines(@depth) << done_msg << down_lines(@depth))
148
148
  Open.rm @file if @file and Open.exists? @file
149
149
  end
150
+
151
+ def error(io = STDERR)
152
+ done_msg = Log.color(:magenta, desc) << " " << Log.color(:red, "error")
153
+ if @start
154
+ ellapsed = (Time.now - @start).to_i
155
+ else
156
+ ellapsed = 0
157
+ end
158
+ ellapsed = [ellapsed/3600, ellapsed/60 % 60, ellapsed % 60].map{|t| "%02i" % t }.join(':')
159
+ done_msg << " " << Log.color(:blue, (@ticks).to_s) << " in " << Log.color(:green, ellapsed)
160
+ @last_count = 0
161
+ @last_time = @start
162
+ done_msg << " (" << thr_msg << ")"
163
+ print(io, up_lines(@depth) << done_msg << down_lines(@depth))
164
+ Open.rm @file if @file and Open.exists? @file
165
+ end
150
166
  end
151
167
  end
@@ -57,8 +57,12 @@ module Log
57
57
  end
58
58
  end
59
59
 
60
- def self.remove_bar(bar)
61
- bar.done if bar.respond_to? :done
60
+ def self.remove_bar(bar, error = false)
61
+ if error
62
+ bar.error if bar.respond_to? :error
63
+ else
64
+ bar.done if bar.respond_to? :done
65
+ end
62
66
  BAR_MUTEX.synchronize do
63
67
  REMOVE << bar
64
68
  end
@@ -22,7 +22,7 @@ class Step
22
22
  threads = jobs.collect do |j|
23
23
  Thread.new do
24
24
  begin
25
- j.join
25
+ j.join unless j.done?
26
26
  rescue Exception
27
27
  Log.error "Exception waiting for job: #{Log.color :blue, j.path}"
28
28
  raise $!
@@ -184,7 +184,14 @@ class Step
184
184
  case type
185
185
  when :produce, :no_dup
186
186
  list.each do |step|
187
- step.produce
187
+ Misc.insist do
188
+ begin
189
+ step.produce
190
+ rescue
191
+ step.abort
192
+ raise $!
193
+ end
194
+ end
188
195
  nil
189
196
  end
190
197
  when :bootstrap
@@ -193,7 +200,14 @@ class Step
193
200
  cpus = list.length / 2 if cpus > list.length / 2
194
201
 
195
202
  Misc.bootstrap(list, cpus, :bar => "Bootstrapping dependencies for #{path}", :respawn => :always) do |dep|
196
- dep.produce
203
+ Misc.insist do
204
+ begin
205
+ dep.produce
206
+ rescue
207
+ dep.abort
208
+ raise $!
209
+ end
210
+ end
197
211
  nil
198
212
  end
199
213
  else
@@ -46,7 +46,7 @@ end
46
46
 
47
47
  def report_msg(status, name, path)
48
48
 
49
- parts = path.sub(/#{Regexp.quote(name)}$/,'').split "/"
49
+ parts = path.sub(/\{.*/,'').sub(/#{Regexp.quote(name)}$/,'').split "/"
50
50
 
51
51
  task = Log.color(:yellow, parts.pop)
52
52
  workflow = Log.color(:magenta, parts.pop)
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.14
4
+ version: 5.20.15
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-18 00:00:00.000000000 Z
11
+ date: 2016-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake