Move condition code in BaseApplication

The count parameter is now consistent with condition parameter
close #1289
This commit is contained in:
Florent 2013-12-15 16:47:42 +01:00
commit a3e6e98b4e
2 changed files with 10 additions and 11 deletions

View file

@ -34,13 +34,13 @@ from weboob.tools.config.iconfig import ConfigError
from weboob.tools.log import createColoredFormatter, getLogger
from weboob.tools.misc import to_unicode
__all__ = ['BaseApplication']
class MoreResultsAvailable(Exception):
pass
class ApplicationStorage(object):
def __init__(self, name, storage):
self.name = name
@ -88,7 +88,7 @@ class BaseApplication(object):
# Default storage tree
STORAGE = {}
# Synopsis
SYNOPSIS = 'Usage: %prog [-h] [-dqv] [-b backends] ...\n'
SYNOPSIS = 'Usage: %prog [-h] [-dqv] [-b backends] ...\n'
SYNOPSIS += ' %prog [--help] [--version]'
# Description
DESCRIPTION = None
@ -249,11 +249,15 @@ class BaseApplication(object):
return obj
def _do_complete_iter(self, backend, count, fields, res):
modif = 0
for i, sub in enumerate(res):
if count and i == count:
raise MoreResultsAvailable()
sub = self._do_complete_obj(backend, fields, sub)
yield sub
if self.condition and not self.condition.is_valid(sub):
modif += 1
else:
if count and i - modif == count:
raise MoreResultsAvailable()
sub = self._do_complete_obj(backend, fields, sub)
yield sub
def _do_complete(self, backend, count, selected_fields, function, *args, **kwargs):
assert count is None or count > 0

View file

@ -480,11 +480,6 @@ class ReplApplication(Cmd, ConsoleApplication):
if self.options.condition:
self.condition = ResultsCondition(self.options.condition)
# Enable infinite search by default is condition is set
# (count applies on the non-filtered result, and can be confusing for users)
if self._is_default_count:
self.options.count = None
self._is_default_count = False
else:
self.condition = None