rbbt-util 5.25.41 → 5.25.42
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 +4 -4
- data/lib/rbbt/workflow/accessor.rb +23 -3
- data/lib/rbbt/workflow/examples.rb +5 -1
- data/lib/rbbt/workflow/step.rb +1 -1
- data/lib/rbbt/workflow/step/run.rb +2 -2
- data/test/rbbt/test_workflow.rb +28 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8c7c2171a24807d0a7e1f7d33bc6b95c4905ed4d
|
|
4
|
+
data.tar.gz: 99a0ae12b516bdf954e3128f48c1fb585efc2567
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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)
|
data/lib/rbbt/workflow/step.rb
CHANGED
|
@@ -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")
|
data/test/rbbt/test_workflow.rb
CHANGED
|
@@ -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.
|
|
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-
|
|
11
|
+
date: 2019-04-09 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rake
|