Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
[processing] log cases when subset is smaller than requested number of
features
(cherry-picked from b72f5d1)
- Loading branch information
|
@@ -125,9 +125,12 @@ def processAlgorithm(self, parameters, context, feedback): |
|
|
classes[attrs[index]].append(feature) |
|
|
feedback.setProgress(int(i * total)) |
|
|
|
|
|
for subset in classes.values(): |
|
|
for k, subset in classes.items(): |
|
|
selValue = value if method != 1 else int(round(value * len(subset), 0)) |
|
|
selran.extend(random.sample(subset, min(selValue, len(subset)))) |
|
|
if selValue > len(subset): |
|
|
selValue = len(subset) |
|
|
feedback.reportError(self.tr('Subset "{}" is smaller than requested number of features.'.format(k))) |
|
|
selran.extend(random.sample(subset, selValue)) |
|
|
|
|
|
total = 100.0 / featureCount if featureCount else 1 |
|
|
for (i, feat) in enumerate(selran): |
|
|
|
@@ -133,12 +133,15 @@ def processAlgorithm(self, parameters, context, feedback): |
|
|
feedback.setProgress(int(i * total)) |
|
|
|
|
|
selran = [] |
|
|
for subset in classes.values(): |
|
|
for k, subset in classes.items(): |
|
|
if feedback.isCanceled(): |
|
|
break |
|
|
|
|
|
selValue = value if method != 1 else int(round(value * len(subset), 0)) |
|
|
selran.extend(random.sample(subset, min(selValue, len(subset)))) |
|
|
if selValue > len(subset): |
|
|
selValue = len(subset) |
|
|
feedback.reportError(self.tr('Subset "{}" is smaller than requested number of features.'.format(k))) |
|
|
selran.extend(random.sample(subset, selValue)) |
|
|
|
|
|
layer.selectByIds(selran) |
|
|
else: |
|
|