add --count option to console applications

This commit is contained in:
Christophe Benz 2010-07-15 01:30:33 +02:00
commit 0733e35cd5

View file

@ -64,6 +64,7 @@ class ConsoleApplication(BaseApplication):
results_options = OptionGroup(self._parser, 'Results Options') results_options = OptionGroup(self._parser, 'Results Options')
results_options.add_option('-c', '--condition', help='filter result items to display given a boolean condition') results_options.add_option('-c', '--condition', help='filter result items to display given a boolean condition')
results_options.add_option('-n', '--count', type='int', help='get a maximum number of results (all backends merged)')
results_options.add_option('-f', '--formatter', choices=formatters, help='select output formatter (%s)' % u','.join(formatters)) results_options.add_option('-f', '--formatter', choices=formatters, help='select output formatter (%s)' % u','.join(formatters))
results_options.add_option('-s', '--select', help='select result item keys to display (comma separated)') results_options.add_option('-s', '--select', help='select result item keys to display (comma separated)')
self._parser.add_option_group(results_options) self._parser.add_option_group(results_options)
@ -273,7 +274,9 @@ class ConsoleApplication(BaseApplication):
""" """
Call Weboob.do(), after having filled the yielded object, if selected fields are given by user. Call Weboob.do(), after having filled the yielded object, if selected fields are given by user.
""" """
for backend, result in self.weboob.do(function, *args, **kwargs): for i, (backend, result) in enumerate(self.weboob.do(function, *args, **kwargs)):
if self.options.count and i == self.options.count:
break
fields = set(self.selected_fields) - set('*') fields = set(self.selected_fields) - set('*')
if fields: if fields:
try: try:
@ -287,6 +290,8 @@ class ConsoleApplication(BaseApplication):
Call Weboob.do_caps(), after having filled the yielded object, if selected fields are given by user. Call Weboob.do_caps(), after having filled the yielded object, if selected fields are given by user.
""" """
for backend, result in self.weboob.do_caps(caps, function, *args, **kwargs): for backend, result in self.weboob.do_caps(caps, function, *args, **kwargs):
if self.options.count and i == self.options.count:
break
fields = set(self.selected_fields) - set('*') fields = set(self.selected_fields) - set('*')
if fields: if fields:
try: try:
@ -300,6 +305,8 @@ class ConsoleApplication(BaseApplication):
Call Weboob.do_backends(), after having filled the yielded object, if selected fields are given by user. Call Weboob.do_backends(), after having filled the yielded object, if selected fields are given by user.
""" """
for backend, result in self.weboob.do_backends(backends, function, *args, **kwargs): for backend, result in self.weboob.do_backends(backends, function, *args, **kwargs):
if self.options.count and i == self.options.count:
break
fields = set(self.selected_fields) - set('*') fields = set(self.selected_fields) - set('*')
if fields: if fields:
try: try: