rbbt-util 5.25.41 → 5.25.42

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: 7bb9b027bd080c570153ef54afc0e8811d3248bd
4
- data.tar.gz: 730e709d5f66cb69ee6df6a4e1209492afe98fc1
3
+ metadata.gz: 8c7c2171a24807d0a7e1f7d33bc6b95c4905ed4d
4
+ data.tar.gz: 99a0ae12b516bdf954e3128f48c1fb585efc2567
5
5
  SHA512:
6
- metadata.gz: a144d97ec06bc8475a8927e1d4c9d8245cfde81b70d822f245892245f664071b4b79e184d2d7266773dff7b3783b4b500d2b775a1eb08876f0d87b2f76492754
7
- data.tar.gz: 35a656ad8ccc7786e124c41e2cf3303543b878d02e016233c09f678f46e8d855039a77d7241db9055db4ee7ff8d8d768097b08fd75235e5d7d3fc36d536e8ca8
6
+ metadata.gz: 9cc824ce02d93292895424f60db1c14da44519a9e373e6064e05317b1c34e6f05efa43703dd8f38326a24d62b9c0edbc4f778866fe88bd772d6c2cd9c2cdb464
7
+ data.tar.gz: 4fec89ee21e2471dcf091891cada8115ec1d97cb54b689ee0fedfd7f86488379a3d5172c32b7be4305d333bcda2b859fb053ef2df4a2adefe0c2cfd924d235e1
@@ -92,13 +92,19 @@ class Step
92
92
  next unless task_inputs.include? name.to_sym
93
93
  next if value.nil?
94
94
  path = File.join(dir, name.to_s)
95
- type = input_types[name]
95
+ type = input_types[name].to_s
96
96
  Log.debug "Saving job input #{name} (#{type}) into #{path}"
97
97
  case
98
98
  when Array === value
99
99
  Open.write(path, value * "\n")
100
100
  when IO === value
101
101
  Open.write(path, value)
102
+ when type == "file"
103
+ if String === value && File.exists?(value)
104
+ Open.ln(value, path)
105
+ else
106
+ Open.write(path + '.read', value.to_s)
107
+ end
102
108
  else
103
109
  Open.write(path, value.to_s)
104
110
  end
@@ -974,6 +980,7 @@ module Workflow
974
980
  if override_dependencies[workflow.to_s] && value = override_dependencies[workflow.to_s][dep_task]
975
981
  d_ = Step === value ? value : Workflow.load_step(value)
976
982
  d_.info[:name] = d_.name
983
+ d_.task = workflow.tasks[dep_task] if workflow.tasks.include?(dep_task)
977
984
  d_.task_name = dep_task
978
985
  d_.overriden = true
979
986
  d_
@@ -995,6 +1002,7 @@ module Workflow
995
1002
  when Symbol
996
1003
  if override_dependencies[self.to_s] && value = override_dependencies[self.to_s][dependency]
997
1004
  d_ = Step === value ? value : Workflow.load_step(value)
1005
+ d_.task = self.tasks[dependency] if self.tasks.include?(dependency)
998
1006
  d_.info[:name] = d_.name
999
1007
  d_.task_name = dependency
1000
1008
  d_.overriden = true
@@ -1024,6 +1032,12 @@ module Workflow
1024
1032
  if override_dependencies[d[:workflow].to_s] && value = override_dependencies[d[:workflow].to_s][d[:task]]
1025
1033
  d = (Step === value ? value : Workflow.load_step(value))
1026
1034
  d.info[:name] = d.name
1035
+ begin
1036
+ workflow = String === d[:workflow] ? Kernel.const_get(d[:workflow]) : d[:workflow]
1037
+ d.task = workflow.tasks[d[:task]] if workflow.tasks.include?(d[:task])
1038
+ rescue
1039
+ Log.exception $!
1040
+ end
1027
1041
  d.task_name = d[:task]
1028
1042
  d.overriden = true
1029
1043
  d
@@ -1042,11 +1056,17 @@ module Workflow
1042
1056
  _inputs = IndiferentHash.setup(_inputs.dup)
1043
1057
  dep = dependency.call jobname, _inputs, real_dependencies
1044
1058
  if Hash === dep
1045
- dep[:workflow] ||= wf || self
1059
+ dep[:workflow] ||= wf || self
1046
1060
  if override_dependencies[dep[:workflow].to_s] && value = override_dependencies[dep[:workflow].to_s][dep[:task]]
1047
1061
  dep = (Step === value ? value : Workflow.load_step(value))
1048
1062
  dep.info[:name] = dep.name
1049
- dep.task_name = d[:task]
1063
+ begin
1064
+ workflow = String === dep[:workflow] ? Kernel.const_get(dep[:workflow]): dep[:workflow]
1065
+ dep.task = workflow.tasks[dep[:task]] if workflow.tasks.include?(dep[:task])
1066
+ rescue
1067
+ Log.exception $!
1068
+ end
1069
+ dep.task_name = dep[:task]
1050
1070
  dep.overriden = true
1051
1071
  dep
1052
1072
  else
@@ -49,7 +49,11 @@ module Workflow
49
49
  case input_types[input]
50
50
  when :file
51
51
  Log.debug "Pointing #{ input } to #{file}"
52
- inputs[input.to_sym] = file
52
+ if file =~ /\.read$/
53
+ inputs[input.to_sym] = Open.read(file)
54
+ else
55
+ inputs[input.to_sym] = Open.realpath(file)
56
+ end
53
57
  when :text
54
58
  Log.debug "Reading #{ input } from #{file}"
55
59
  inputs[input.to_sym] = Open.read(file)
@@ -167,7 +167,7 @@ class Step
167
167
  @result_type ||= if @task.nil?
168
168
  info[:result_type]
169
169
  else
170
- @task.result_type || info[:result_type]
170
+ @task.result_type || info[:result_type] || :string
171
171
  end
172
172
  end
173
173
 
@@ -219,8 +219,6 @@ class Step
219
219
 
220
220
  Open.write(pid_file, Process.pid.to_s) unless Open.exists? pid_file
221
221
 
222
- config_keys_pre = Rbbt::Config::GOT_KEYS.dup
223
-
224
222
  @exec = false
225
223
  init_info(true)
226
224
 
@@ -310,7 +308,9 @@ class Step
310
308
  set_info :started, (start_time = Time.now)
311
309
  log :started, "Starting step #{Log.color :yellow, task.name.to_s || ""}"
312
310
 
311
+ config_keys_pre = Rbbt::Config::GOT_KEYS.dup
313
312
  begin
313
+
314
314
  result = _exec
315
315
  rescue Aborted, Interrupt
316
316
  log(:aborted, "Aborted")
@@ -151,6 +151,11 @@ for this dependency
151
151
  "Sum odds: " << step(:sum_odds).load.to_s
152
152
  end
153
153
 
154
+ input :file, :file, "Save file"
155
+ task :reverse_file => :text do |file|
156
+ Open.read(file).reverse
157
+ end
158
+
154
159
 
155
160
  end
156
161
 
@@ -288,8 +293,8 @@ class TestWorkflow < Test::Unit::TestCase
288
293
  end
289
294
 
290
295
  def test_override_dep
291
- TmpFile.with_file("OTHER") do |file|
292
- assert TestWF.job(:repeat2, nil, :number => 3, "TestWF#str" => file).run.include? "OTHER"
296
+ TmpFile.with_file("OTHER", false) do |file|
297
+ assert TestWF.job(:repeat2, nil, :number => 3, "TestWF#str" => file).clean.run.include? "OTHER"
293
298
  end
294
299
  end
295
300
 
@@ -389,4 +394,25 @@ class TestWorkflow < Test::Unit::TestCase
389
394
  assert_equal "Sum odds: 24", job.run
390
395
  end
391
396
 
397
+ def test_save_inputs
398
+ TmpFile.with_file("Hi") do |file|
399
+ job = TestWF.job(:reverse_file, nil, :file => file)
400
+ TmpFile.with_file do |dir|
401
+ Path.setup(dir)
402
+ Step.save_job_inputs(job, dir)
403
+ assert_equal Dir.glob(dir + "/*"), [dir.file.find]
404
+ end
405
+ end
406
+
407
+ job = TestWF.job(:reverse_file, nil, :file => "code")
408
+ TmpFile.with_file do |dir|
409
+ Path.setup(dir)
410
+ Step.save_job_inputs(job, dir)
411
+ assert_equal Dir.glob(dir + "/*"), [dir.file.find + '.read']
412
+ inputs = Workflow.load_inputs(dir, [:file], :file => :file)
413
+ assert_equal inputs, {:file => 'code'}
414
+ end
415
+
416
+ end
417
+
392
418
  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.25.41
4
+ version: 5.25.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-04-08 00:00:00.000000000 Z
11
+ date: 2019-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake