rbbt-util 5.34.14 → 5.34.16
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/slurm.rb +3 -1
- data/lib/rbbt/persist/tsv.rb +16 -2
- data/lib/rbbt/persist.rb +2 -0
- data/lib/rbbt/tsv/manipulate.rb +1 -1
- data/lib/rbbt/tsv/parser.rb +1 -1
- data/lib/rbbt/tsv.rb +2 -2
- data/lib/rbbt/util/cmd.rb +2 -1
- data/lib/rbbt/util/misc/math.rb +3 -3
- data/share/rbbt_commands/tsv/info +6 -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: 5b76f18c79a3b52708203f69eb7cd9baff8cb07feb2a4b26850094cfda9b9edc
|
4
|
+
data.tar.gz: 8511317ae202283e8138746485e74d39b28881b78b85539c521e94309337782e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71dd9c6806e8129fa08b466ddd3e8ea7172a0938000f399b030ef89a5f40321b08f24f6b98ba823ac72317460f45dbc9a8fc88c65899582766a542fde55adb24
|
7
|
+
data.tar.gz: 0b6d4b0aea41c92161193ffb379ee86e44715298ebf6d26d585ffb6292ae89a77e82a9764f07630106510c45bc5b56193b716de9edd71ed52cb4046f711d2e24
|
data/lib/rbbt/hpc/slurm.rb
CHANGED
@@ -10,7 +10,9 @@ module HPC
|
|
10
10
|
<<-EOF
|
11
11
|
let TOTAL_PROCESORS="$(cat /proc/cpuinfo|grep ^processor |wc -l)"
|
12
12
|
let MAX_MEMORY_DEFAULT="$(grep MemTotal /proc/meminfo|grep -o "[[:digit:]]*") / ( (1024 * $TOTAL_PROCESORS) / $SLURM_CPUS_PER_TASK )"
|
13
|
-
|
13
|
+
MAX_MEMORY="$MAX_MEMORY_DEFAULT"
|
14
|
+
[ ! -z $SLURM_MEM_PER_CPU ] && let MAX_MEMORY="$SLURM_MEM_PER_CPU * $SLURM_CPUS_PER_TASK"
|
15
|
+
[ ! -z $SLURM_MEM_PER_NODE ] && MAX_MEMORY="$SLURM_MEM_PER_NODE"
|
14
16
|
export MAX_MEMORY_DEFAULT
|
15
17
|
export MAX_MEMORY
|
16
18
|
export BATCH_JOB_ID=$SLURM_JOB_ID
|
data/lib/rbbt/persist/tsv.rb
CHANGED
@@ -146,9 +146,22 @@ module Persist
|
|
146
146
|
data.serializer = :type
|
147
147
|
end
|
148
148
|
|
149
|
-
|
150
|
-
yield
|
149
|
+
if persist_options[:persist] == :preload
|
150
|
+
tmp_tsv = yield({})
|
151
|
+
tmp_tsv.annotate data
|
152
|
+
data.serializer = tmp_tsv.type
|
153
|
+
data.write_and_read do
|
154
|
+
tmp_tsv.each do |k,v|
|
155
|
+
data[k] = v
|
156
|
+
end
|
157
|
+
end
|
158
|
+
else
|
159
|
+
data.write_and_read do
|
160
|
+
yield data
|
161
|
+
end
|
162
|
+
end
|
151
163
|
|
164
|
+
data.write_and_read do
|
152
165
|
FileUtils.mv data.persistence_path, path if File.exist? data.persistence_path and not File.exist? path
|
153
166
|
tsv = CONNECTIONS[path] = CONNECTIONS.delete tmp_path
|
154
167
|
tsv.persistence_path = path
|
@@ -165,6 +178,7 @@ module Persist
|
|
165
178
|
end
|
166
179
|
end
|
167
180
|
end
|
181
|
+
|
168
182
|
end
|
169
183
|
|
170
184
|
require 'rbbt/persist/tsv/sharder'
|
data/lib/rbbt/persist.rb
CHANGED
data/lib/rbbt/tsv/manipulate.rb
CHANGED
@@ -360,7 +360,7 @@ module TSV
|
|
360
360
|
new = TSV.setup({}, :key_field => key_field, :fields => fields, :type => type, :filename => filename, :identifiers => identifiers)
|
361
361
|
self.with_unnamed do
|
362
362
|
keys.each do |k|
|
363
|
-
new[k] = self[k]
|
363
|
+
new[k] = self[k] if self.include?(k)
|
364
364
|
end
|
365
365
|
end
|
366
366
|
new
|
data/lib/rbbt/tsv/parser.rb
CHANGED
@@ -135,7 +135,7 @@ module TSV
|
|
135
135
|
[]
|
136
136
|
else
|
137
137
|
parts.values_at *field_positions
|
138
|
-
end.collect{|value| (value.
|
138
|
+
end.collect{|value| (value.nil? || value.empty?) ? [] : value.split(@sep2, -1) }
|
139
139
|
[keys, values]
|
140
140
|
end
|
141
141
|
|
data/lib/rbbt/tsv.rb
CHANGED
@@ -137,12 +137,12 @@ module TSV
|
|
137
137
|
case
|
138
138
|
when Path === stream
|
139
139
|
stream.open do |f|
|
140
|
-
f.no_fail =
|
140
|
+
f.no_fail = true if ConcurrentStream === f
|
141
141
|
Parser.new f, options
|
142
142
|
end
|
143
143
|
when (String === stream and stream.length < 300 and (Open.exists? stream or Open.remote? stream))
|
144
144
|
Open.open(stream) do |f|
|
145
|
-
f.no_fail =
|
145
|
+
f.no_fail = true if ConcurrentStream === f
|
146
146
|
Parser.new f, options
|
147
147
|
end
|
148
148
|
else
|
data/lib/rbbt/util/cmd.rb
CHANGED
@@ -163,6 +163,7 @@ module CMD
|
|
163
163
|
|
164
164
|
if in_content.respond_to?(:read)
|
165
165
|
in_thread = Thread.new(Thread.current) do |parent|
|
166
|
+
Thread.current.report_on_exception = false if no_fail
|
166
167
|
begin
|
167
168
|
begin
|
168
169
|
while c = in_content.readpartial(Misc::BLOCK_SIZE)
|
@@ -177,7 +178,7 @@ module CMD
|
|
177
178
|
in_content.join if in_content.respond_to? :join
|
178
179
|
end
|
179
180
|
rescue
|
180
|
-
Log.error "Error in CMD [#{pid}] #{cmd}: #{$!.message}"
|
181
|
+
Log.error "Error in CMD [#{pid}] #{cmd}: #{$!.message}" unless no_fail
|
181
182
|
raise $!
|
182
183
|
end
|
183
184
|
end
|
data/lib/rbbt/util/misc/math.rb
CHANGED
@@ -39,17 +39,17 @@ module Misc
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def self.sum(list)
|
42
|
-
list.compact.inject(0.0){|acc,e| acc += e}
|
42
|
+
list.compact.inject(0.0){|acc,e| acc += e }
|
43
43
|
end
|
44
44
|
|
45
45
|
def self.mean(list)
|
46
|
-
sum(list
|
46
|
+
sum(list.compact.collect{|v| v.to_f } ) / list.compact.length
|
47
47
|
end
|
48
48
|
|
49
49
|
def self.median(array)
|
50
50
|
sorted = array.sort
|
51
51
|
len = sorted.length
|
52
|
-
(sorted[(len - 1) / 2] + sorted[len / 2]) / 2
|
52
|
+
(sorted[(len - 1) / 2] + sorted[len / 2]).to_f / 2
|
53
53
|
end
|
54
54
|
|
55
55
|
def self.variance(list)
|
@@ -18,6 +18,7 @@ Display summary information. Works with Tokyocabinet HDB and BDB as well.
|
|
18
18
|
-hh--header_hash* Change the character used to mark the header line (defaults to #)
|
19
19
|
-k--key_field* Change the key field
|
20
20
|
-f--fields* Change the fields to load
|
21
|
+
-fp--fingerprint Fingerprint values
|
21
22
|
-s--sep* Change the fields separator (default TAB)
|
22
23
|
-h--help Help
|
23
24
|
EOF
|
@@ -70,7 +71,11 @@ else
|
|
70
71
|
|
71
72
|
puts "Rows: #{Log.color :blue, rows}"
|
72
73
|
parts = []
|
73
|
-
header.first_line.split(header.sep, -1).each_with_index
|
74
|
+
header.first_line.split(header.sep, -1).each_with_index do |p,i|
|
75
|
+
p.strip!
|
76
|
+
p = Misc.fingerprint p.split("|") if %w(double flat).include?(header.options[:type].to_s) && options[:fingerprint]
|
77
|
+
parts << (Log.color(:cyan, "(#{i}) ") << p.strip)
|
78
|
+
end
|
74
79
|
puts parts * "\t"
|
75
80
|
puts
|
76
81
|
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.34.
|
4
|
+
version: 5.34.16
|
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-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|