rbbt-util 5.25.33 → 5.25.34
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt.rb +2 -0
- data/lib/rbbt/tsv/accessor.rb +14 -1
- data/lib/rbbt/util/misc/inspect.rb +24 -1
- data/lib/rbbt/util/misc/omics.rb +1 -1
- data/lib/rbbt/util/version.rb +45 -0
- data/lib/rbbt/workflow.rb +2 -0
- data/lib/rbbt/workflow/accessor.rb +2 -2
- data/lib/rbbt/workflow/step/run.rb +3 -2
- data/test/rbbt/util/test_misc.rb +12 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a19151d029e95e791eb078a3674524810940988
|
4
|
+
data.tar.gz: 828a0fadafa776b7e8b78dc44463fc506414205c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 869494e15e50643fbf9f5256af85d7632ce8874ccb648b620db68ced62f27ae845d5d0ec0a8cbe447affae8ab7c1679317df8919d6f1f2e4b6458ba61d1bdb04
|
7
|
+
data.tar.gz: 282f5414814f58c91ba166ba8bf78e74051720a87983b29d482cb19b69c03c6dc56d80b98e5f43b85aaf7abd10115e9dc12c653b8e7f0f1d6b72bee43ee21345
|
data/lib/rbbt.rb
CHANGED
data/lib/rbbt/tsv/accessor.rb
CHANGED
@@ -672,7 +672,7 @@ module TSV
|
|
672
672
|
peek
|
673
673
|
end
|
674
674
|
|
675
|
-
def
|
675
|
+
def head_str(times=10)
|
676
676
|
stream = dumper_stream
|
677
677
|
str = ""
|
678
678
|
times.times do |i|
|
@@ -682,6 +682,19 @@ module TSV
|
|
682
682
|
str
|
683
683
|
end
|
684
684
|
|
685
|
+
def head_tsv(times = 10)
|
686
|
+
new = self.annotate({})
|
687
|
+
i = 0
|
688
|
+
self.each do |k,v|
|
689
|
+
return new if i == times
|
690
|
+
new[k] = v
|
691
|
+
i += 1
|
692
|
+
end
|
693
|
+
new
|
694
|
+
end
|
695
|
+
|
696
|
+
alias head head_tsv
|
697
|
+
|
685
698
|
def summary
|
686
699
|
|
687
700
|
key = nil
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Misc
|
2
2
|
ARRAY_MAX_LENGTH = 1000
|
3
3
|
STRING_MAX_LENGTH = ARRAY_MAX_LENGTH * 100
|
4
|
+
TSV_MAX_FIELDS=100
|
5
|
+
TSV_MAX_ROWS=100
|
4
6
|
|
5
7
|
def self.break_lines(text, char_size=80)
|
6
8
|
text = text.gsub("\n", " ")
|
@@ -120,7 +122,28 @@ module Misc
|
|
120
122
|
filename = "STDIN(rand-#{rand(10000000)})" if filename == '-'
|
121
123
|
remove_long_items("TSV Stream: " + filename + " -- " << Misc.fingerprint(obj.options))
|
122
124
|
when TSV === obj
|
123
|
-
|
125
|
+
tsv = obj
|
126
|
+
fields = tsv.fields
|
127
|
+
|
128
|
+
if obj.size > TSV_MAX_ROWS
|
129
|
+
tsv = obj.head(TSV_MAX_ROWS)
|
130
|
+
tsv["Truncated rows at #{TSV_MAX_ROWS} (#{obj.size})"] = nil
|
131
|
+
end
|
132
|
+
|
133
|
+
if fields && fields.length > TSV_MAX_FIELDS
|
134
|
+
tsv = obj.slice(fields[0..TSV_MAX_ROWS-1])
|
135
|
+
tsv.add_field "Truncated at #{TSV_MAX_ROWS} (#{fields.length})" do
|
136
|
+
nil
|
137
|
+
end
|
138
|
+
elsif fields.nil?
|
139
|
+
new = tsv.annotate({})
|
140
|
+
tsv.each do |k,v|
|
141
|
+
new[k] = Misc.remove_long_items(v)
|
142
|
+
end
|
143
|
+
tsv = new
|
144
|
+
end
|
145
|
+
|
146
|
+
tsv
|
124
147
|
when (Array === obj and obj.length > ARRAY_MAX_LENGTH)
|
125
148
|
remove_long_items(obj[0..ARRAY_MAX_LENGTH-2] << "TRUNCATED at #{ ARRAY_MAX_LENGTH }/#{obj.length}")
|
126
149
|
when (Hash === obj and obj.length > ARRAY_MAX_LENGTH)
|
data/lib/rbbt/util/misc/omics.rb
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
module Rbbt
|
2
|
+
VERSIONS = IndiferentHash.setup({})
|
3
|
+
|
4
|
+
def self.add_version(file)
|
5
|
+
dir = Path.caller_lib_dir(file)
|
6
|
+
libname = File.basename(dir).sub('rbbt-','')
|
7
|
+
return if VERSIONS.include? libname
|
8
|
+
|
9
|
+
version = if dir.VERSION.exists?
|
10
|
+
dir.VERSION.read
|
11
|
+
elsif dir[".git"].exists?
|
12
|
+
head = dir[".git"]["HEAD"].read.split(" ").last.strip
|
13
|
+
dir[".git"][head].read.strip
|
14
|
+
elsif libname.include?("-")
|
15
|
+
name,_sep, v = libname.partition("-")
|
16
|
+
if v =~ /^\d+\.\d+\.\d+$/
|
17
|
+
libname = name
|
18
|
+
v
|
19
|
+
else
|
20
|
+
nil
|
21
|
+
end
|
22
|
+
else
|
23
|
+
nil
|
24
|
+
end
|
25
|
+
return if version.nil?
|
26
|
+
|
27
|
+
VERSIONS[libname] = version
|
28
|
+
end
|
29
|
+
|
30
|
+
def self.versions
|
31
|
+
versions = Rbbt::VERSIONS
|
32
|
+
Gem.loaded_specs.keys.each do |gem|
|
33
|
+
next unless gem.include? 'rbbt'
|
34
|
+
iii gem
|
35
|
+
name = gem.sub('rbbt-','')
|
36
|
+
next if versions.include? name
|
37
|
+
version = Gem.loaded_specs[gem].version.version
|
38
|
+
versions[name] = version
|
39
|
+
end
|
40
|
+
versions
|
41
|
+
end
|
42
|
+
|
43
|
+
Rbbt.add_version(__FILE__)
|
44
|
+
end
|
45
|
+
|
data/lib/rbbt/workflow.rb
CHANGED
@@ -184,8 +184,8 @@ class Step
|
|
184
184
|
end
|
185
185
|
end
|
186
186
|
|
187
|
-
def init_info
|
188
|
-
return nil if @exec or info_file.nil? or Open.exists?(info_file)
|
187
|
+
def init_info(force = false)
|
188
|
+
return nil if @exec or info_file.nil? or (Open.exists?(info_file) and ! force)
|
189
189
|
Open.lock(info_file, :lock => info_lock) do
|
190
190
|
i = {:status => :waiting, :pid => Process.pid, :path => path}
|
191
191
|
i[:dependencies] = dependencies.collect{|dep| [dep.task_name, dep.name, dep.path]} if dependencies
|
@@ -220,7 +220,7 @@ class Step
|
|
220
220
|
Open.write(pid_file, Process.pid.to_s) unless Open.exists? pid_file
|
221
221
|
|
222
222
|
@exec = false
|
223
|
-
init_info
|
223
|
+
init_info(true)
|
224
224
|
|
225
225
|
log :setup, "#{Log.color :green, "Setup"} step #{Log.color :yellow, task.name.to_s || ""}"
|
226
226
|
|
@@ -234,7 +234,8 @@ class Step
|
|
234
234
|
:task_name => @task.name,
|
235
235
|
:result_type => @task.result_type,
|
236
236
|
:result_description => @task.result_description,
|
237
|
-
:dependencies => dependencies.collect{|dep| [dep.task_name, dep.name, dep.path]}
|
237
|
+
:dependencies => dependencies.collect{|dep| [dep.task_name, dep.name, dep.path]},
|
238
|
+
:versions => Rbbt.versions
|
238
239
|
})
|
239
240
|
|
240
241
|
|
data/test/rbbt/util/test_misc.rb
CHANGED
@@ -609,4 +609,16 @@ EOF
|
|
609
609
|
assert_equal 60*60*24, Misc.timespan('1d')
|
610
610
|
assert_equal 60*60*24, Misc.timespan('1d')
|
611
611
|
end
|
612
|
+
|
613
|
+
def test_remove_long_items
|
614
|
+
tsv = TSV.setup({}, "key~value1,value2#:type=:list")
|
615
|
+
tsv["a"] = [2,3]
|
616
|
+
tsv["b"] = [6,7]
|
617
|
+
iii Misc.remove_long_items(tsv)
|
618
|
+
1000.times do |n|
|
619
|
+
tsv[n] = [n*2, n*3]
|
620
|
+
end
|
621
|
+
iii Misc.remove_long_items(tsv)
|
622
|
+
end
|
612
623
|
end
|
624
|
+
|
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.34
|
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-03-
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -315,6 +315,7 @@ files:
|
|
315
315
|
- lib/rbbt/util/task/job.rb
|
316
316
|
- lib/rbbt/util/tc_cache.rb
|
317
317
|
- lib/rbbt/util/tmpfile.rb
|
318
|
+
- lib/rbbt/util/version.rb
|
318
319
|
- lib/rbbt/workflow.rb
|
319
320
|
- lib/rbbt/workflow/accessor.rb
|
320
321
|
- lib/rbbt/workflow/annotate.rb
|