rbbt-util 5.33.20 → 5.34.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/hpc/orchestrate.rb +1 -0
- data/lib/rbbt/util/misc/inspect.rb +2 -1
- data/lib/rbbt/util/misc/pipes.rb +9 -1
- data/lib/rbbt/util/open.rb +2 -1
- data/lib/rbbt/workflow.rb +19 -2
- data/share/rbbt_commands/hpc/list +1 -1
- data/share/rbbt_commands/lsf/list +1 -1
- data/share/rbbt_commands/slurm/list +1 -1
- data/share/rbbt_commands/workflow/prov +1 -1
- data/share/rbbt_commands/workflow/task +1 -1
- data/test/rbbt/util/misc/test_pipes.rb +37 -0
- data/test/rbbt/util/test_open.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dce81f37830228a43c702909b856ebf661002d17b49614d67b6c04e16d339d4b
|
4
|
+
data.tar.gz: d7cb5ef82e50da2287c4bf9cf3912d66e36c27bb72a1c1c702d86cf7d1e8df78
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd9ad6b40180ef8cdc5a8e8335f291e557543f14cdd0cbc6760e7dd6f1327a5a73b5be92b1c037ccd46bca8596c86e7bf6eb7221989e9edac52ad34e81ad4e45
|
7
|
+
data.tar.gz: 72798bb53863c93aa768edc6c523d34e682dc374ebf4fe0307590faddb9022237a49f0556de364e7139345b35504b6d19b9c134abf8d0ae751a38c1d2c0331f7
|
data/lib/rbbt/hpc/orchestrate.rb
CHANGED
@@ -56,7 +56,8 @@ module Misc
|
|
56
56
|
":" << obj.to_s
|
57
57
|
when String
|
58
58
|
if obj.length > 100
|
59
|
-
|
59
|
+
digest = Misc.digest(obj)
|
60
|
+
"'" << obj.slice(0,30) << "<...#{obj.length} - #{digest[0..4]}...>" << obj.slice(-10,30)<< "'"
|
60
61
|
else
|
61
62
|
"'" << obj << "'"
|
62
63
|
end
|
data/lib/rbbt/util/misc/pipes.rb
CHANGED
@@ -92,7 +92,6 @@ module Misc
|
|
92
92
|
ConcurrentStream.setup sout, :pids => [pid]
|
93
93
|
else
|
94
94
|
|
95
|
-
|
96
95
|
ConcurrentStream.setup sin, :pair => sout
|
97
96
|
ConcurrentStream.setup sout, :pair => sin
|
98
97
|
|
@@ -782,4 +781,13 @@ module Misc
|
|
782
781
|
ConcurrentStream.setup out, :threads => monitor_thread
|
783
782
|
end
|
784
783
|
|
784
|
+
def self.open_gz_pipe
|
785
|
+
sout = Misc.open_pipe do |sin|
|
786
|
+
yield sin
|
787
|
+
sin.close
|
788
|
+
end
|
789
|
+
|
790
|
+
Open.gzip(sout)
|
791
|
+
end
|
792
|
+
|
785
793
|
end
|
data/lib/rbbt/util/open.rb
CHANGED
@@ -678,7 +678,7 @@ module Open
|
|
678
678
|
if Open.exists? notification_file
|
679
679
|
key = Open.read(notification_file).strip
|
680
680
|
key = nil if key.empty?
|
681
|
-
if key.include?("@")
|
681
|
+
if key && key.include?("@")
|
682
682
|
to = from = key
|
683
683
|
subject = "Wrote " << file
|
684
684
|
message = "Content attached"
|
@@ -748,6 +748,7 @@ module Open
|
|
748
748
|
raise $!
|
749
749
|
end
|
750
750
|
content.close
|
751
|
+
content.join if content.respond_to? :join
|
751
752
|
end
|
752
753
|
end
|
753
754
|
|
data/lib/rbbt/workflow.rb
CHANGED
@@ -414,7 +414,7 @@ module Workflow
|
|
414
414
|
end if task.required_inputs
|
415
415
|
|
416
416
|
if missing_inputs.length == 1
|
417
|
-
raise ParameterException, "Input #{missing_inputs.first} is required but was not provided or is nil"
|
417
|
+
raise ParameterException, "Input '#{missing_inputs.first}' is required but was not provided or is nil"
|
418
418
|
end
|
419
419
|
|
420
420
|
if missing_inputs.length > 1
|
@@ -542,8 +542,17 @@ module Workflow
|
|
542
542
|
step_path = step_path.call if Proc === step_path
|
543
543
|
persist = input_values.nil? ? false : true
|
544
544
|
persist = false
|
545
|
+
|
546
|
+
if ! (Path === step_path ? step_path.find : File.exists?(step_path)) && step_path.split("/").length == 3 && File.exists?(new_path = Rbbt.var.jobs[step_path].find)
|
547
|
+
step_path = new_path
|
548
|
+
end
|
549
|
+
|
545
550
|
key = Path === step_path ? step_path.find : step_path
|
546
551
|
|
552
|
+
if ! File.exists?(step_path) && step_path.split("/").length == 3 && File.exists?(new_path = Rbbt.var.jobs[step_path].find)
|
553
|
+
step_path = new_path
|
554
|
+
end
|
555
|
+
|
547
556
|
step = Step.new step_path, task, input_values, dependencies
|
548
557
|
|
549
558
|
set_step_dependencies(step) unless dependencies
|
@@ -703,7 +712,15 @@ module Workflow
|
|
703
712
|
|
704
713
|
def self.load_step(path)
|
705
714
|
path = Path.setup(path.dup) unless Path === path
|
706
|
-
|
715
|
+
|
716
|
+
if ! (Path === path ? path.exists? : File.exists?(path)) && path.split("/").length == 3
|
717
|
+
new_path = Rbbt.var.jobs[path]
|
718
|
+
if new_path.exists? || new_path.set_extension('info').exists?
|
719
|
+
path = new_path
|
720
|
+
end
|
721
|
+
end
|
722
|
+
|
723
|
+
path = path.find if Path === path
|
707
724
|
|
708
725
|
begin
|
709
726
|
_load_step(path)
|
@@ -284,4 +284,41 @@ line4
|
|
284
284
|
end
|
285
285
|
end
|
286
286
|
end
|
287
|
+
|
288
|
+
def test_gz_pipe
|
289
|
+
text =<<-EOF
|
290
|
+
line1
|
291
|
+
line2
|
292
|
+
line3
|
293
|
+
line4
|
294
|
+
EOF
|
295
|
+
|
296
|
+
TmpFile.with_file nil, :extension => 'txt.gz' do |file|
|
297
|
+
sout = Misc.open_gz_pipe do |sin|
|
298
|
+
text.split("\n").each do |line|
|
299
|
+
sin.puts line
|
300
|
+
end
|
301
|
+
end
|
302
|
+
|
303
|
+
Open.mkdir File.basename(file)
|
304
|
+
thr1 = Misc.consume_stream(sout, true, file)
|
305
|
+
thr1.join
|
306
|
+
assert Open.gzip?(file)
|
307
|
+
assert_equal text, Open.read(file)
|
308
|
+
end
|
309
|
+
end
|
310
|
+
|
311
|
+
def test_open_pipe_error
|
312
|
+
sout = Misc.open_pipe do |sin|
|
313
|
+
10.times do |i|
|
314
|
+
sin.puts "line #{i}"
|
315
|
+
end
|
316
|
+
raise
|
317
|
+
end
|
318
|
+
|
319
|
+
TmpFile.with_file do |tmp|
|
320
|
+
#Misc.consume_stream(sout, false, tmp)
|
321
|
+
Open.write(tmp, sout)
|
322
|
+
end
|
323
|
+
end
|
287
324
|
end
|
data/test/rbbt/util/test_open.rb
CHANGED
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.
|
4
|
+
version: 5.34.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-06-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|