Mercurial > libervia-backend
changeset 2775:2dfd5b1d39df
jp (base): fixed default values for --max-items and --max when using pubsub
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 12 Jan 2019 16:50:58 +0100 (2019-01-12) |
parents | 95321f233387 |
children | 838f53730ce4 |
files | sat_frontends/jp/base.py |
diffstat | 1 files changed, 31 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/sat_frontends/jp/base.py Sat Jan 12 16:50:13 2019 +0100 +++ b/sat_frontends/jp/base.py Sat Jan 12 16:50:58 2019 +0100 @@ -374,19 +374,21 @@ # and Orbder-by pubsub_group.add_argument("-i", "--item", type=unicode_decoder, action='append', dest='items', default=[], help=_(u"items to retrieve (DEFAULT: all)")) if not flags.no_max: - pubsub_group.add_argument( - "-M", "--max-items", dest="max", type=int, default=10, + max_group = pubsub_group.add_mutually_exclusive_group() + # XXX: defaut value for --max-items or --max is set in parse_pubsub_args + max_group.add_argument( + "-M", "--max-items", dest="max", type=int, help=_(u"maximum number of items to get ({no_limit} to get all items)" .format(no_limit=C.NO_LIMIT))) + # FIXME: it could be possible to no duplicate max (between pubsub + # max-items and RSM max)should not be duplicated, RSM could be + # used when available and pubsub max otherwise + max_group.add_argument( + "-m", "--max", dest="rsm_max", type=int, + help=_(u"maximum number of items to get per page (DEFAULT: 10)")) # RSM - # FIXME: it could be possible to no duplicate max (between pubsub max-items - # and RSM max)should not be duplicated, RSM could be used when - # available and pubsub max otherwise - pubsub_group.add_argument( - "-m", "--max", dest="rsm_max", type=int, default=10, - help=_(u"maximum number of items to get per page (DEFAULT: 10)")) rsm_page_group = pubsub_group.add_mutually_exclusive_group() rsm_page_group.add_argument( "-a", "--after", dest="rsm_after", type=unicode_decoder, @@ -594,6 +596,27 @@ except AttributeError: pass + try: + max_items = self.args.max + rsm_max = self.args.rsm_max + except AttributeError: + pass + else: + # we need to set a default value for max, but we need to know if we want + # to use pubsub's max or RSM's max. The later is used if any RSM or MAM + # argument is set + if max_items is None and rsm_max is None: + to_check = ('mam_filters', 'rsm_max', 'rsm_after', 'rsm_before', + 'rsm_index') + if any((getattr(self.args, name) for name in to_check)): + # we use RSM + self.args.rsm_max = 10 + else: + # we use pubsub without RSM + self.args.max = 10 + if self.args.max is None: + self.args.max = C.NO_LIMIT + def run(self, args=None, namespace=None): self.args = self.parser.parse_args(args, namespace=None) if self.args._cmd._use_pubsub: