miga-base 0.7.18.0 → 0.7.18.4

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: 78b020bda6120b5a284100b9544d7a488d385630f21b5d6d5e2bb9b365c832fb
4
- data.tar.gz: d8332711fdf86308726700654ee8db91bb097f022a26e1240e62d107efa833a1
3
+ metadata.gz: 1a0c77da5b4e0cfaee8d470f669d0589f00949c686868780c9c8ee2eb68cd9cd
4
+ data.tar.gz: 9f78d665d2559eacc0a19dd16d8b3cd712a512909db8c1a7af1dcb0edd7302d4
5
5
  SHA512:
6
- metadata.gz: 8b766a40acf37193204e6369e07f2ecba1a67aa6141133654ab69f89b2ba9a63a959bd3f5b7fd21c56542eea7e3174cc342b05dc76b73ed27c6a2b273c546ca9
7
- data.tar.gz: 6f8d791b9bf443a1eb43198625ebce48501ebaa3680be0c4cef55931b176fd2365407865e6e43cd549217ada6c67e5c86b156bd0816b80f91c388af812af810c
6
+ metadata.gz: 0f2ad1f0efb0712fac07ffb62198695be09a27a0f2e3346c97532331973cae21cbede3002c8e0c935945cccdcbbf6027e6297f2621fe8add53f4b47b3fbb2e18
7
+ data.tar.gz: 31e5c848db45f20b5a5358b602ee08ad285ba44bb40f20265792a8331067ba51c1cba4e78b6f260264a6bd480d95447e10031005e3b8d18a336ad93f467695c7
@@ -59,7 +59,7 @@ class MiGA::Cli::Action::Run < MiGA::Cli::Action
59
59
  "MIGA=#{miga.shellescape}", "CORES=#{cli[:thr]}"]
60
60
  obj = cli.load_project_or_dataset
61
61
  klass = obj.class
62
- virtual_task = [:p, :d].include?(cli[:result])
62
+ virtual_task = %i[p d maintenance].include?(cli[:result])
63
63
  cmd << "DATASET=#{obj.name.shellescape}" if obj.is_a? MiGA::Dataset
64
64
  if klass.RESULT_DIRS[cli[:result]].nil? and not virtual_task
65
65
  raise "Unsupported #{klass.to_s.sub(/.*::/, '')} result: #{cli[:result]}."
@@ -74,10 +74,13 @@ class MiGA::MiGA
74
74
  @_advance_time[:n] = n
75
75
 
76
76
  # Report
77
- adv_vals = [100.0 * n / total, num_suffix(n, bin), num_suffix(total, bin)]
78
77
  adv =
79
- total.nil? ? (n == 0 ? '' : num_suffix(n, bin)) :
80
- ('%.1f%% (%s/%s)' % adv_vals)
78
+ if total.nil?
79
+ (n == 0 ? '' : num_suffix(n, bin))
80
+ else
81
+ vals = [100.0 * n / total, num_suffix(n, bin), num_suffix(total, bin)]
82
+ ('%.1f%% (%s/%s)' % vals)
83
+ end
81
84
  left =
82
85
  if @_advance_time[:avg].nil?
83
86
  ''
@@ -158,7 +158,7 @@ module MiGA::Common::WithDaemon
158
158
  # Returns the status of the daemon with +opts+
159
159
  def status(opts = [], wait = true)
160
160
  if active?
161
- say "Running with pid #{File.read(pid_file)}"
161
+ say "Running with pid #{File.size?(pid_file) ? File.read(pid_file) : '?'}"
162
162
  else
163
163
  say 'Not running'
164
164
  end
@@ -182,6 +182,7 @@ class MiGA::Daemon < MiGA::MiGA
182
182
  unless show_log?
183
183
  n = project.dataset_names.count
184
184
  k = jobs_to_run.size + jobs_running.size
185
+ k -= 1 unless get_job(:maintenance).nil?
185
186
  advance('Datasets:', n - k, n, false)
186
187
  miga_say if k == 0
187
188
  end
@@ -274,10 +275,10 @@ class MiGA::Daemon < MiGA::MiGA
274
275
  # Avoid single datasets hogging resources
275
276
  @jobs_to_run.rotate! rand(jobs_to_run.size)
276
277
 
277
- # Prioritize project-wide jobs
278
- project_jobs = @jobs_to_run.select { |i| i[:ds].nil? }
279
- @jobs_to_run.delete_if { |i| i[:ds].nil? }
280
- @jobs_to_run.prepend(*project_jobs)
278
+ # Prioritize: Project-wide > MiGA Online queries > Other datasets
279
+ @jobs_to_run.sort_by! do |job|
280
+ job[:ds].nil? ? 1 : job[:ds_name] =~ /^qG_/ ? 2 : 3
281
+ end
281
282
 
282
283
  # Launch as many +jobs_to_run+ as possible
283
284
  while (hostk = next_host)
@@ -7,7 +7,11 @@ require 'miga/metadata'
7
7
  require 'miga/dataset/result'
8
8
  require 'miga/dataset/status'
9
9
  require 'miga/dataset/hooks'
10
- require 'miga/sqlite'
10
+
11
+ # This library is only required by +#closest_relatives+, so it is now
12
+ # being loaded on call instead to allow most of miga-base to work without
13
+ # issue in systems with problematic SQLite3 installations.
14
+ # require 'miga/sqlite'
11
15
 
12
16
  ##
13
17
  # Dataset representation in MiGA
@@ -190,6 +194,7 @@ class MiGA::Dataset < MiGA::MiGA
190
194
  r = result(ref_project ? :taxonomy : :distances)
191
195
  return nil if r.nil?
192
196
 
197
+ require 'miga/sqlite'
193
198
  MiGA::SQLite.new(r.file_path(:aai_db)).run(
194
199
  'SELECT seq2, aai FROM aai WHERE seq2 != ? ' \
195
200
  'GROUP BY seq2 ORDER BY aai DESC LIMIT ?', [name, how_many]
@@ -1,8 +1,12 @@
1
- require 'miga/sqlite'
2
1
  require 'miga/result'
3
2
  require 'miga/dataset/base'
4
3
  require 'miga/common/with_result'
5
4
 
5
+ # This library is only required by +#cleanup_distances!+, so it is now
6
+ # being loaded on call instead to allow most of miga-base to work without
7
+ # issue in systems with problematic SQLite3 installations.
8
+ # require 'miga/sqlite'
9
+
6
10
  ##
7
11
  # Helper module including specific functions to add dataset results
8
12
  module MiGA::Dataset::Result
@@ -144,9 +148,10 @@ module MiGA::Dataset::Result
144
148
  # the project as reference datasets.
145
149
  def cleanup_distances!
146
150
  r = get_result(:distances)
147
- ref = project.datasets.select(&:ref?).select(&:active?).map(&:name)
148
151
  return if r.nil?
149
152
 
153
+ require 'miga/sqlite'
154
+ ref = project.datasets.select(&:ref?).select(&:active?).map(&:name)
150
155
  %i[haai_db aai_db ani_db].each do |db_type|
151
156
  db = r.file_path(db_type)
152
157
  next if db.nil? || !File.size?(db)
@@ -8,7 +8,7 @@ module MiGA
8
8
  # - Float representing the major.minor version.
9
9
  # - Integer representing gem releases of the current version.
10
10
  # - Integer representing minor changes that require new version number.
11
- VERSION = [0.7, 18, 0]
11
+ VERSION = [0.7, 18, 4]
12
12
 
13
13
  ##
14
14
  # Nickname for the current major.minor version.
@@ -16,7 +16,7 @@ module MiGA
16
16
 
17
17
  ##
18
18
  # Date of the current gem release.
19
- VERSION_DATE = Date.new(2020, 12, 27)
19
+ VERSION_DATE = Date.new(2021, 1, 1)
20
20
 
21
21
  ##
22
22
  # Reference of MiGA.
@@ -11,17 +11,17 @@ function exists { [[ -e "$1" ]] ; }
11
11
  function fx_exists { [[ $(type -t "$1") == "function" ]] ; }
12
12
 
13
13
  if [[ "$SCRIPT" != "d" && "$SCRIPT" != "p" ]] ; then
14
- echo '############'
15
- echo -n "Date: " ; miga date
16
- echo "Hostname: $(hostname)"
17
- echo "MiGA: $MIGA"
18
- echo "Task: $SCRIPT"
19
- echo "Project: $PROJECT"
14
+ echo ""
15
+ echo "######[ $SCRIPT ]######"
16
+ echo "# Date: $(miga date)"
17
+ echo "# Host: $(hostname)"
18
+ echo "# MiGA: $MIGA"
19
+ echo "# Project: $PROJECT"
20
20
  if [[ -n $DATASET ]] ; then
21
- echo "Dataset: $DATASET"
21
+ echo "# Dataset: $DATASET"
22
22
  miga edit -P "$PROJECT" -D "$DATASET" -m "_step=$SCRIPT"
23
23
  fi
24
- echo '------------'
24
+ echo '#------------'
25
25
  fi
26
26
 
27
27
  true
@@ -5,21 +5,17 @@ require 'miga'
5
5
 
6
6
  ARGV[1] or abort "Usage: #{$0} path/to/project threads"
7
7
 
8
- $stderr.puts 'Cleaning databases...'
9
8
  p = MiGA::Project.load(ARGV[0])
10
- ds_names = p.dataset_names
9
+ dsn = p.dataset_names
11
10
  thr = ARGV[1].to_i
12
11
 
13
- pc = [0] + (1..100).map { |i| ds_names.size * i / 100 }
14
- $stderr.puts (('.' * 9 + '|') * 10) + ' 100%'
12
+ m = MiGA::MiGA.new
13
+ m.say 'Cleaning Databases'
15
14
 
16
15
  (0..thr - 1).each do |t|
17
16
  fork do
18
- ds_names.each_with_index do |i, idx|
19
- while t == 0 and idx + 1 > pc.first
20
- $stderr.print '#'
21
- pc.shift
22
- end
17
+ dsn.each_with_index do |i, idx|
18
+ m.advance('Dataset:', dsn.size, idx + 1) if t == 0
23
19
  next unless (idx % thr) == t
24
20
 
25
21
  d = p.dataset(i)
@@ -30,4 +26,6 @@ $stderr.puts (('.' * 9 + '|') * 10) + ' 100%'
30
26
  end
31
27
  end
32
28
  Process.waitall
33
- $stderr.puts ' Done'
29
+ m.advance('Dataset:', dsn.size, dsn.size)
30
+ m.say
31
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: miga-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.18.0
4
+ version: 0.7.18.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Luis M. Rodriguez-R
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-27 00:00:00.000000000 Z
11
+ date: 2021-01-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: daemons