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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b2e50428f936aab209874c5f26e7504aa14da9a30bc7e2b13575432527a5b6a4
4
- data.tar.gz: e522b76bb910b477e303e2cfc323c8708fa4d3bbecc0a7c46de473fe81f1ef6a
3
+ metadata.gz: 5b76f18c79a3b52708203f69eb7cd9baff8cb07feb2a4b26850094cfda9b9edc
4
+ data.tar.gz: 8511317ae202283e8138746485e74d39b28881b78b85539c521e94309337782e
5
5
  SHA512:
6
- metadata.gz: e73a4ceda5eca11497ea4f0fe91fda7275375aaf8aeb6f9f70a45a46d4c71022527d7cd32c0cb30700a6bc2724bd1e2d2e0bd808a553ee3c8d6e729baa1dc2c0
7
- data.tar.gz: a050c5defff3e3d36fe5682c117802d54cfeb930e3e61ff96da29e326719bf97af6fe85b5c30812dd91c5c6a447201164c15a3e1714aa1226690a0c49782ba9a
6
+ metadata.gz: 71dd9c6806e8129fa08b466ddd3e8ea7172a0938000f399b030ef89a5f40321b08f24f6b98ba823ac72317460f45dbc9a8fc88c65899582766a542fde55adb24
7
+ data.tar.gz: 0b6d4b0aea41c92161193ffb379ee86e44715298ebf6d26d585ffb6292ae89a77e82a9764f07630106510c45bc5b56193b716de9edd71ed52cb4046f711d2e24
@@ -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
- [ ! -z $SLURM_MEM_PER_CPU ] && let MAX_MEMORY="$SLURM_MEM_PER_CPU * $SLURM_CPUS_PER_TASK" || MAX_MEMORY="$MAX_MEMORY_DEFAULT"
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
@@ -146,9 +146,22 @@ module Persist
146
146
  data.serializer = :type
147
147
  end
148
148
 
149
- data.write_and_read do
150
- yield data
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
@@ -84,6 +84,8 @@ module Persist
84
84
  perfile = prefix.to_s + ":" + file.to_s.gsub(/\//, '>')
85
85
  end
86
86
 
87
+ perfile.sub!(/\.b?gz$/,'')
88
+
87
89
  if options.include? :filters
88
90
  options[:filters].each do |match,value|
89
91
  perfile = perfile + "&F[#{match}=#{Misc.digest(value.inspect)}]"
@@ -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
@@ -135,7 +135,7 @@ module TSV
135
135
  []
136
136
  else
137
137
  parts.values_at *field_positions
138
- end.collect{|value| (value.empty? || value.nil?) ? [nil] : value.split(@sep2, -1) }
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 = false if ConcurrentStream === f
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 = false if ConcurrentStream === f
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
@@ -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).to_f / list.compact.length
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.0
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{|p,i| parts << (Log.color(:cyan, "(#{i}) ") << p.strip) }
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.14
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-09-28 00:00:00.000000000 Z
11
+ date: 2022-10-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake