$full and $direct selectors work
This commit is contained in:
parent
833c25f8d9
commit
8fc7860150
3 changed files with 5 additions and 14 deletions
|
|
@ -243,15 +243,10 @@ class BaseApplication(object):
|
|||
else:
|
||||
res = getattr(backend, function)(*args, **kwargs)
|
||||
|
||||
if selected_fields:
|
||||
fields = selected_fields
|
||||
else:
|
||||
fields = None
|
||||
|
||||
if hasattr(res, '__iter__'):
|
||||
return self._do_complete_iter(backend, count, fields, res)
|
||||
return self._do_complete_iter(backend, count, selected_fields, res)
|
||||
else:
|
||||
return self._do_complete_obj(backend, fields, res)
|
||||
return self._do_complete_obj(backend, selected_fields, res)
|
||||
|
||||
def parse_args(self, args):
|
||||
self.options, args = self._parser.parse_args(args)
|
||||
|
|
|
|||
|
|
@ -432,13 +432,8 @@ class ReplApplication(Cmd, BaseApplication):
|
|||
kwargs['backends'] = self.enabled_backends if backends is None else backends
|
||||
fields = self.selected_fields
|
||||
if fields == '$direct':
|
||||
fields = None
|
||||
fields = []
|
||||
elif fields == '$full':
|
||||
# XXX IT ABSOLUTLY DOESN'T WORK, OBJ ISN'T EXISTANT.
|
||||
# PLEASE REVIEW THIS CODE.
|
||||
#fields = [k for k, v in iter_fields(obj)]
|
||||
# TODO Perhaps this is the core goal to determine what fields to use,
|
||||
# by creating a singleton AllFields.
|
||||
fields = None
|
||||
return self.weboob.do(self._do_complete, self.options.count, fields, function, *args, **kwargs)
|
||||
|
||||
|
|
|
|||
|
|
@ -195,7 +195,7 @@ class BaseBackend(object):
|
|||
|
||||
def fillobj(self, obj, fields=None):
|
||||
"""
|
||||
@param fields which fields to fill; if None, only "direct" fields are filled (list)
|
||||
@param fields which fields to fill; if None, all fields are filled (list)
|
||||
"""
|
||||
def not_loaded(v):
|
||||
return (v is NotLoaded or isinstance(v, CapBaseObject) and not v.__iscomplete__())
|
||||
|
|
@ -205,6 +205,7 @@ class BaseBackend(object):
|
|||
|
||||
missing_fields = []
|
||||
if fields is None:
|
||||
# Select all fields
|
||||
if isinstance(obj, CapBaseObject):
|
||||
fields = [item[0] for item in obj.iter_fields()]
|
||||
else:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue