rbbt-util 5.34.14 → 5.34.16
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/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
|