$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:
|
else:
|
||||||
res = getattr(backend, function)(*args, **kwargs)
|
res = getattr(backend, function)(*args, **kwargs)
|
||||||
|
|
||||||
if selected_fields:
|
|
||||||
fields = selected_fields
|
|
||||||
else:
|
|
||||||
fields = None
|
|
||||||
|
|
||||||
if hasattr(res, '__iter__'):
|
if hasattr(res, '__iter__'):
|
||||||
return self._do_complete_iter(backend, count, fields, res)
|
return self._do_complete_iter(backend, count, selected_fields, res)
|
||||||
else:
|
else:
|
||||||
return self._do_complete_obj(backend, fields, res)
|
return self._do_complete_obj(backend, selected_fields, res)
|
||||||
|
|
||||||
def parse_args(self, args):
|
def parse_args(self, args):
|
||||||
self.options, args = self._parser.parse_args(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
|
kwargs['backends'] = self.enabled_backends if backends is None else backends
|
||||||
fields = self.selected_fields
|
fields = self.selected_fields
|
||||||
if fields == '$direct':
|
if fields == '$direct':
|
||||||
fields = None
|
fields = []
|
||||||
elif fields == '$full':
|
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
|
fields = None
|
||||||
return self.weboob.do(self._do_complete, self.options.count, fields, function, *args, **kwargs)
|
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):
|
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):
|
def not_loaded(v):
|
||||||
return (v is NotLoaded or isinstance(v, CapBaseObject) and not v.__iscomplete__())
|
return (v is NotLoaded or isinstance(v, CapBaseObject) and not v.__iscomplete__())
|
||||||
|
|
@ -205,6 +205,7 @@ class BaseBackend(object):
|
||||||
|
|
||||||
missing_fields = []
|
missing_fields = []
|
||||||
if fields is None:
|
if fields is None:
|
||||||
|
# Select all fields
|
||||||
if isinstance(obj, CapBaseObject):
|
if isinstance(obj, CapBaseObject):
|
||||||
fields = [item[0] for item in obj.iter_fields()]
|
fields = [item[0] for item in obj.iter_fields()]
|
||||||
else:
|
else:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue