From 3ced2bee383698dff8a4e731c47f90bdd29b076a Mon Sep 17 00:00:00 2001 From: Romain Bignon Date: Sun, 15 Aug 2010 10:11:00 +0200 Subject: [PATCH] fillobj(): when '*' is in fields, or if fields is None, select all of not loaded fields --- weboob/tools/backend.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/weboob/tools/backend.py b/weboob/tools/backend.py index e0b96044..d4ea0322 100644 --- a/weboob/tools/backend.py +++ b/weboob/tools/backend.py @@ -22,6 +22,7 @@ from threading import RLock from logging import debug from weboob.capabilities.base import IBaseCap, NotLoaded, CapBaseObject +from weboob.tools.misc import iter_fields __all__ = ['BaseBackend', 'ObjectNotAvailable'] @@ -197,9 +198,14 @@ class BaseBackend(object): return (v is NotLoaded or isinstance(value, CapBaseObject) and not value.__iscomplete__()) missing_fields = [] + if fields is None or '*' in fields: + if isinstance(obj, CapBaseObject): + fields = obj.iter_fields() + else: + fields = iter_fields(obj) + for field in fields: - if not hasattr(obj, field): - continue + assert hasattr(obj, field), u'%r does not have field %s' % (obj, field) value = getattr(obj, field) missing = False