From 9ea5856eec705ae58feecde76e23fab090b619dd Mon Sep 17 00:00:00 2001
From: Guillaume HEUSCH <guillaume.heusch@idiap.ch>
Date: Wed, 4 Dec 2019 16:17:07 +0100
Subject: [PATCH] [databases] proper handling when either groups or purposes
 are not given for NRSU

---
 bob/pad/face/database/brsu.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/bob/pad/face/database/brsu.py b/bob/pad/face/database/brsu.py
index 2b917502..ca4bd138 100644
--- a/bob/pad/face/database/brsu.py
+++ b/bob/pad/face/database/brsu.py
@@ -140,7 +140,8 @@ class BRSUPadDatabase(PadDatabase):
         samples : :py:class:`BRSUPadFile`
             A list of BRSUPadFile objects.
         """
-        if groups is not None:
+        lowlevel_purposes = None
+        if groups is not None and purposes is not None:
           
           # for training
           lowlevel_purposes = []
@@ -155,6 +156,13 @@ class BRSUPadDatabase(PadDatabase):
           if 'test' in groups and 'attack' in purposes:
             lowlevel_purposes.append('attack')
 
+        if groups is None and purposes is not None:
+          lowlevel_purposes = []
+          if 'real' in purposes:
+            lowlevel_purposes.append('real')
+          if 'attack' in purposes:
+            lowlevel_purposes.append('attack')
+
         samples = self.db.objects(groups=groups, purposes=lowlevel_purposes, **kwargs)
         samples = [BRSUPadFile(s) for s in samples]
         return samples
-- 
GitLab