@@ -11,8 +11,8 @@ err_invalid_packages(skip, env) = ArgumentError(
11
11
" \" $env \" . "
12
12
)
13
13
14
- const INFO_BE_PATIENT1 = " Be patient. This could take a minute or so... "
15
- const INFO_BE_PATIENT10 = " Be patient. This could take ten minutes or so..."
14
+ const INFO_BE_PATIENT1 = " Be patient. This could take a minute or so ... "
15
+ const INFO_BE_PATIENT10 = " Be patient. This could take ten minutes or so ..."
16
16
17
17
18
18
# # HELPERS
@@ -195,18 +195,23 @@ function update(
195
195
issubset (skip, allpkgs) || throw (err_invalid_packages (skip, registry))
196
196
@suppress setup (registry)
197
197
end
198
- pkgs = setdiff (allpkgs, skip)
199
- N = length (pkgs)
200
- pos = 1
198
+ pkgs = setdiff (allpkgs, skip) |> sort
199
+ pkg_set = OrderedSet (pkgs)
200
+
201
201
@info " Processing up to $nworkers packages at a time. "
202
202
@info INFO_BE_PATIENT10
203
- while N ≥ 1
204
- print (" \r Packages remaining: $N " )
205
- n = min (nworkers, N )
206
- batch = pkgs[pos : pos + n - 1 ]
203
+ while ! isempty (pkg_set)
204
+ print (" \r Packages remaining: $( length (pkgs)) " )
205
+ n = min (nworkers, length (pkg_set) )
206
+ batch = [ pop! (pkg_set) for _ in 1 : n ]
207
207
@suppress begin
208
- futures =
209
- [MLJModelRegistryTools. metadata (pkg; registry, check_traits) for pkg in batch]
208
+ futures = [
209
+ MLJModelRegistryTools. metadata (
210
+ pkg;
211
+ registry,
212
+ check_traits,
213
+ ) for pkg in batch
214
+ ]
210
215
try
211
216
for (i, f) in enumerate (futures)
212
217
GenericRegistry. put (batch[i], fetch (f), registry_path ())
@@ -218,7 +223,6 @@ function update(
218
223
end
219
224
debug || GenericRegistry. close .(futures)
220
225
end
221
- N -= n
222
226
end
223
227
isempty (registry) || @suppress cleanup (registry)
224
228
gc ()
0 commit comments