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 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