diff sat_frontends/jp/cmd_event.py @ 2624:56f94936df1e

code style reformatting using black
author Goffi <goffi@goffi.org>
date Wed, 27 Jun 2018 20:14:46 +0200
parents 1cc88adb5142
children 003b8b4b56a7
line wrap: on
line diff
--- a/sat_frontends/jp/cmd_event.py	Wed Jun 27 07:51:29 2018 +0200
+++ b/sat_frontends/jp/cmd_event.py	Wed Jun 27 20:14:46 2018 +0200
@@ -30,29 +30,31 @@
 
 __commands__ = ["Event"]
 
-OUTPUT_OPT_TABLE = u'table'
+OUTPUT_OPT_TABLE = u"table"
 
 # TODO: move date parsing to base, it may be useful for other commands
 
 
 class Get(base.CommandBase):
-
     def __init__(self, host):
-        base.CommandBase.__init__(self,
-                                  host,
-                                  'get',
-                                  use_output=C.OUTPUT_DICT,
-                                  use_pubsub=True, pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
-                                  use_verbose=True,
-                                  help=_(u'get event data'))
-        self.need_loop=True
+        base.CommandBase.__init__(
+            self,
+            host,
+            "get",
+            use_output=C.OUTPUT_DICT,
+            use_pubsub=True,
+            pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
+            use_verbose=True,
+            help=_(u"get event data"),
+        )
+        self.need_loop = True
 
     def add_parser_options(self):
         pass
 
     def eventInviteeGetCb(self, result):
         event_date, event_data = result
-        event_data['date'] = event_date
+        event_data["date"] = event_date
         self.output(event_data)
         self.host.quit()
 
@@ -63,18 +65,36 @@
             self.args.item,
             self.profile,
             callback=self.eventInviteeGetCb,
-            errback=partial(self.errback,
-                            msg=_(u"can't get event data: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't get event data: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class EventBase(object):
-
     def add_parser_options(self):
-        self.parser.add_argument("-i", "--id", type=base.unicode_decoder, default=u'', help=_(u"ID of the PubSub Item"))
-        self.parser.add_argument("-d", "--date", type=unicode, help=_(u"date of the event"))
-        self.parser.add_argument("-f", "--field", type=base.unicode_decoder, action='append', nargs=2, dest='fields',
-                                 metavar=(u"KEY", u"VALUE"), help=_(u"configuration field to set"))
+        self.parser.add_argument(
+            "-i",
+            "--id",
+            type=base.unicode_decoder,
+            default=u"",
+            help=_(u"ID of the PubSub Item"),
+        )
+        self.parser.add_argument(
+            "-d", "--date", type=unicode, help=_(u"date of the event")
+        )
+        self.parser.add_argument(
+            "-f",
+            "--field",
+            type=base.unicode_decoder,
+            action="append",
+            nargs=2,
+            dest="fields",
+            metavar=(u"KEY", u"VALUE"),
+            help=_(u"configuration field to set"),
+        )
 
     def parseFields(self):
         return dict(self.args.fields) if self.args.fields else {}
@@ -85,7 +105,9 @@
                 date = int(self.args.date)
             except ValueError:
                 try:
-                    date_time = du_parser.parse(self.args.date, dayfirst=not (u'-' in self.args.date))
+                    date_time = du_parser.parse(
+                        self.args.date, dayfirst=not (u"-" in self.args.date)
+                    )
                 except ValueError as e:
                     self.parser.error(_(u"Can't parse date: {msg}").format(msg=e))
                 if date_time.tzinfo is None:
@@ -99,12 +121,18 @@
 
 class Create(EventBase, base.CommandBase):
     def __init__(self, host):
-        super(Create, self).__init__(host, 'create', use_pubsub=True, pubsub_flags={C.NODE}, help=_('create or replace event'))
+        super(Create, self).__init__(
+            host,
+            "create",
+            use_pubsub=True,
+            pubsub_flags={C.NODE},
+            help=_("create or replace event"),
+        )
         EventBase.__init__(self)
-        self.need_loop=True
+        self.need_loop = True
 
     def eventCreateCb(self, node):
-        self.disp(_(u'Event created successfuly on node {node}').format(node=node))
+        self.disp(_(u"Event created successfuly on node {node}").format(node=node))
         self.host.quit()
 
     def start(self):
@@ -118,16 +146,25 @@
             self.args.id,
             self.profile,
             callback=self.eventCreateCb,
-            errback=partial(self.errback,
-                            msg=_(u"can't create event: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't create event: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class Modify(EventBase, base.CommandBase):
     def __init__(self, host):
-        super(Modify, self).__init__(host, 'modify', use_pubsub=True, pubsub_flags={C.NODE}, help=_('modify an existing event'))
+        super(Modify, self).__init__(
+            host,
+            "modify",
+            use_pubsub=True,
+            pubsub_flags={C.NODE},
+            help=_("modify an existing event"),
+        )
         EventBase.__init__(self)
-        self.need_loop=True
+        self.need_loop = True
 
     def start(self):
         fields = self.parseFields()
@@ -140,22 +177,27 @@
             fields,
             self.profile,
             callback=self.host.quit,
-            errback=partial(self.errback,
-                            msg=_(u"can't update event data: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't update event data: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class InviteeGet(base.CommandBase):
-
     def __init__(self, host):
-        base.CommandBase.__init__(self,
-                                  host,
-                                  'get',
-                                  use_output=C.OUTPUT_DICT,
-                                  use_pubsub=True, pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
-                                  use_verbose=True,
-                                  help=_(u'get event attendance'))
-        self.need_loop=True
+        base.CommandBase.__init__(
+            self,
+            host,
+            "get",
+            use_output=C.OUTPUT_DICT,
+            use_pubsub=True,
+            pubsub_flags={C.NODE, C.ITEM, C.SINGLE_ITEM},
+            use_verbose=True,
+            help=_(u"get event attendance"),
+        )
+        self.need_loop = True
 
     def add_parser_options(self):
         pass
@@ -170,19 +212,37 @@
             self.args.node,
             self.profile,
             callback=self.eventInviteeGetCb,
-            errback=partial(self.errback,
-                            msg=_(u"can't get event data: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't get event data: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class InviteeSet(base.CommandBase):
     def __init__(self, host):
-        super(InviteeSet, self).__init__(host, 'set', use_output=C.OUTPUT_DICT, use_pubsub=True, pubsub_flags={C.NODE}, help=_('set event attendance'))
-        self.need_loop=True
+        super(InviteeSet, self).__init__(
+            host,
+            "set",
+            use_output=C.OUTPUT_DICT,
+            use_pubsub=True,
+            pubsub_flags={C.NODE},
+            help=_("set event attendance"),
+        )
+        self.need_loop = True
 
     def add_parser_options(self):
-        self.parser.add_argument("-f", "--field", type=base.unicode_decoder, action='append', nargs=2, dest='fields',
-                                 metavar=(u"KEY", u"VALUE"), help=_(u"configuration field to set"))
+        self.parser.add_argument(
+            "-f",
+            "--field",
+            type=base.unicode_decoder,
+            action="append",
+            nargs=2,
+            dest="fields",
+            metavar=(u"KEY", u"VALUE"),
+            help=_(u"configuration field to set"),
+        )
 
     def start(self):
         fields = dict(self.args.fields) if self.args.fields else {}
@@ -192,40 +252,55 @@
             fields,
             self.profile,
             callback=self.host.quit,
-            errback=partial(self.errback,
-                            msg=_(u"can't set event data: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't set event data: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class InviteesList(base.CommandBase):
-
     def __init__(self, host):
-        extra_outputs = {'default': self.default_output}
-        base.CommandBase.__init__(self,
-                                  host,
-                                  'list',
-                                  use_output=C.OUTPUT_DICT_DICT,
-                                  extra_outputs=extra_outputs,
-                                  use_pubsub=True, pubsub_flags={C.NODE},
-                                  use_verbose=True,
-                                  help=_(u'get event attendance'))
-        self.need_loop=True
+        extra_outputs = {"default": self.default_output}
+        base.CommandBase.__init__(
+            self,
+            host,
+            "list",
+            use_output=C.OUTPUT_DICT_DICT,
+            extra_outputs=extra_outputs,
+            use_pubsub=True,
+            pubsub_flags={C.NODE},
+            use_verbose=True,
+            help=_(u"get event attendance"),
+        )
+        self.need_loop = True
 
     def add_parser_options(self):
-        self.parser.add_argument('-m', '--missing', action='store_true', help=_(u'show missing people (invited but no R.S.V.P. so far)'))
-        self.parser.add_argument('-R', '--no-rsvp', action='store_true', help=_(u"don't show people which gave R.S.V.P."))
+        self.parser.add_argument(
+            "-m",
+            "--missing",
+            action="store_true",
+            help=_(u"show missing people (invited but no R.S.V.P. so far)"),
+        )
+        self.parser.add_argument(
+            "-R",
+            "--no-rsvp",
+            action="store_true",
+            help=_(u"don't show people which gave R.S.V.P."),
+        )
 
     def _attend_filter(self, attend, row):
-        if attend == u'yes':
+        if attend == u"yes":
             attend_color = C.A_SUCCESS
-        elif attend == u'no':
+        elif attend == u"no":
             attend_color = C.A_FAILURE
         else:
             attend_color = A.FG_WHITE
         return A.color(attend_color, attend)
 
     def _guests_filter(self, guests):
-        return u'(' + unicode(guests) + ')' if guests else u''
+        return u"(" + unicode(guests) + ")" if guests else u""
 
     def default_output(self, event_data):
         data = []
@@ -236,74 +311,97 @@
         guests = 0
         guests_maybe = 0
         for jid_, jid_data in event_data.iteritems():
-            jid_data[u'jid'] = jid_
+            jid_data[u"jid"] = jid_
             try:
-                guests_int = int(jid_data['guests'])
+                guests_int = int(jid_data["guests"])
             except (ValueError, KeyError):
                 pass
-            attend = jid_data.get(u'attend',u'')
-            if attend == 'yes':
+            attend = jid_data.get(u"attend", u"")
+            if attend == "yes":
                 attendees_yes += 1
                 guests += guests_int
-            elif attend == 'maybe':
+            elif attend == "maybe":
                 attendees_maybe += 1
                 guests_maybe += guests_int
-            elif attend == 'no':
+            elif attend == "no":
                 attendees_no += 1
-                jid_data[u'guests'] = ''
+                jid_data[u"guests"] = ""
             else:
                 attendees_missing += 1
-                jid_data[u'guests'] = ''
+                jid_data[u"guests"] = ""
             data.append(jid_data)
 
         show_table = OUTPUT_OPT_TABLE in self.args.output_opts
 
-        table = common.Table.fromDict(self.host,
+        table = common.Table.fromDict(
+            self.host,
             data,
-            (u'nick',) + ((u'jid',) if self.host.verbosity else ()) +  (u'attend', 'guests'),
+            (u"nick",)
+            + ((u"jid",) if self.host.verbosity else ())
+            + (u"attend", "guests"),
             headers=None,
-            filters = { u'nick': A.color(C.A_HEADER, u'{}' if show_table else u'{} '),
-                        u'jid': u'{}' if show_table else u'{} ',
-                        u'attend': self._attend_filter,
-                        u'guests': u'{}' if show_table else self._guests_filter,
-                      },
-            defaults = { u'nick': u'',
-                         u'attend': u'',
-                         u'guests': 1
-                       }
-            )
+            filters={
+                u"nick": A.color(C.A_HEADER, u"{}" if show_table else u"{} "),
+                u"jid": u"{}" if show_table else u"{} ",
+                u"attend": self._attend_filter,
+                u"guests": u"{}" if show_table else self._guests_filter,
+            },
+            defaults={u"nick": u"", u"attend": u"", u"guests": 1},
+        )
         if show_table:
             table.display()
         else:
-            table.display_blank(show_header=False, col_sep=u'')
+            table.display_blank(show_header=False, col_sep=u"")
 
         if not self.args.no_rsvp:
-            self.disp(u'')
-            self.disp(A.color(
-                C.A_SUBHEADER,
-                _(u'Attendees: '),
-                A.RESET,
-                unicode(len(data)),
-                _(u' ('),
-                C.A_SUCCESS,
-                _(u'yes: '),
-                unicode(attendees_yes),
-                A.FG_WHITE,
-                _(u', maybe: '),
-                unicode(attendees_maybe),
-                u', ',
-                C.A_FAILURE,
-                _(u'no: '),
-                unicode(attendees_no),
-                A.RESET,
-                u')'
-                ))
-            self.disp(A.color(C.A_SUBHEADER, _(u'confirmed guests: '), A.RESET, unicode(guests)))
-            self.disp(A.color(C.A_SUBHEADER, _(u'unconfirmed guests: '), A.RESET, unicode(guests_maybe)))
-            self.disp(A.color(C.A_SUBHEADER, _(u'total: '), A.RESET, unicode(guests+guests_maybe)))
+            self.disp(u"")
+            self.disp(
+                A.color(
+                    C.A_SUBHEADER,
+                    _(u"Attendees: "),
+                    A.RESET,
+                    unicode(len(data)),
+                    _(u" ("),
+                    C.A_SUCCESS,
+                    _(u"yes: "),
+                    unicode(attendees_yes),
+                    A.FG_WHITE,
+                    _(u", maybe: "),
+                    unicode(attendees_maybe),
+                    u", ",
+                    C.A_FAILURE,
+                    _(u"no: "),
+                    unicode(attendees_no),
+                    A.RESET,
+                    u")",
+                )
+            )
+            self.disp(
+                A.color(C.A_SUBHEADER, _(u"confirmed guests: "), A.RESET, unicode(guests))
+            )
+            self.disp(
+                A.color(
+                    C.A_SUBHEADER,
+                    _(u"unconfirmed guests: "),
+                    A.RESET,
+                    unicode(guests_maybe),
+                )
+            )
+            self.disp(
+                A.color(
+                    C.A_SUBHEADER, _(u"total: "), A.RESET, unicode(guests + guests_maybe)
+                )
+            )
         if attendees_missing:
-            self.disp('')
-            self.disp(A.color(C.A_SUBHEADER, _(u'missing people (no reply): '), A.RESET, unicode(attendees_missing)))
+            self.disp("")
+            self.disp(
+                A.color(
+                    C.A_SUBHEADER,
+                    _(u"missing people (no reply): "),
+                    A.RESET,
+                    unicode(attendees_missing),
+                )
+            )
 
     def eventInviteesListCb(self, event_data, prefilled_data):
         """fill nicknames and keep only requested people
@@ -325,7 +423,7 @@
         # we get nicknames for everybody, make it easier for organisers
         for jid_, data in prefilled_data.iteritems():
             id_data = self.host.bridge.identityGet(jid_, self.profile)
-            data[u'nick'] = id_data.get(u'nick', u'')
+            data[u"nick"] = id_data.get(u"nick", u"")
 
         self.output(prefilled_data)
         self.host.quit()
@@ -335,17 +433,23 @@
             self.args.service,
             self.args.node,
             self.profile,
-            callback=partial(self.eventInviteesListCb,
-                             prefilled_data=prefilled_data),
-            errback=partial(self.errback,
-                            msg=_(u"can't get event data: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            callback=partial(self.eventInviteesListCb, prefilled_data=prefilled_data),
+            errback=partial(
+                self.errback,
+                msg=_(u"can't get event data: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
     def psNodeAffiliationsGetCb(self, affiliations):
         # we fill all affiliations with empty data
         # answered one will be filled in eventInviteesListCb
         # we only consider people with "publisher" affiliation as invited, creators are not, and members can just observe
-        prefilled = {jid_: {} for jid_, affiliation in affiliations.iteritems() if affiliation in (u'publisher',)}
+        prefilled = {
+            jid_: {}
+            for jid_, affiliation in affiliations.iteritems()
+            if affiliation in (u"publisher",)
+        }
         self.getList(prefilled)
 
     def start(self):
@@ -357,27 +461,79 @@
                 self.args.node,
                 self.profile,
                 callback=self.psNodeAffiliationsGetCb,
-                errback=partial(self.errback,
-                                msg=_(u"can't get event data: {}"),
-                                exit_code=C.EXIT_BRIDGE_ERRBACK))
+                errback=partial(
+                    self.errback,
+                    msg=_(u"can't get event data: {}"),
+                    exit_code=C.EXIT_BRIDGE_ERRBACK,
+                ),
+            )
         else:
             self.getList()
 
 
 class InviteeInvite(base.CommandBase):
-
     def __init__(self, host):
-        base.CommandBase.__init__(self, host, 'invite', use_pubsub=True, pubsub_flags={C.NODE, C.SINGLE_ITEM}, help=_(u'invite someone to the event through email'))
-        self.need_loop=True
+        base.CommandBase.__init__(
+            self,
+            host,
+            "invite",
+            use_pubsub=True,
+            pubsub_flags={C.NODE, C.SINGLE_ITEM},
+            help=_(u"invite someone to the event through email"),
+        )
+        self.need_loop = True
 
     def add_parser_options(self):
-        self.parser.add_argument("-e", "--email", action="append", type=base.unicode_decoder, default=[], help='email(s) to send the invitation to')
-        self.parser.add_argument("-N", "--name", type=base.unicode_decoder, default='', help='name of the invitee')
-        self.parser.add_argument("-H", "--host-name", type=base.unicode_decoder, default='', help='name of the host')
-        self.parser.add_argument("-l", "--lang", type=base.unicode_decoder, default='', help='main language spoken by the invitee')
-        self.parser.add_argument("-U", "--url-template", type=base.unicode_decoder, default='', help='template to construct the URL')
-        self.parser.add_argument("-S", "--subject", type=base.unicode_decoder, default='', help='subject of the invitation email (default: generic subject)')
-        self.parser.add_argument("-b", "--body", type=base.unicode_decoder, default='', help='body of the invitation email (default: generic body)')
+        self.parser.add_argument(
+            "-e",
+            "--email",
+            action="append",
+            type=base.unicode_decoder,
+            default=[],
+            help="email(s) to send the invitation to",
+        )
+        self.parser.add_argument(
+            "-N",
+            "--name",
+            type=base.unicode_decoder,
+            default="",
+            help="name of the invitee",
+        )
+        self.parser.add_argument(
+            "-H",
+            "--host-name",
+            type=base.unicode_decoder,
+            default="",
+            help="name of the host",
+        )
+        self.parser.add_argument(
+            "-l",
+            "--lang",
+            type=base.unicode_decoder,
+            default="",
+            help="main language spoken by the invitee",
+        )
+        self.parser.add_argument(
+            "-U",
+            "--url-template",
+            type=base.unicode_decoder,
+            default="",
+            help="template to construct the URL",
+        )
+        self.parser.add_argument(
+            "-S",
+            "--subject",
+            type=base.unicode_decoder,
+            default="",
+            help="subject of the invitation email (default: generic subject)",
+        )
+        self.parser.add_argument(
+            "-b",
+            "--body",
+            type=base.unicode_decoder,
+            default="",
+            help="body of the invitation email (default: generic body)",
+        )
 
     def start(self):
         email = self.args.email[0] if self.args.email else None
@@ -397,20 +553,27 @@
             self.args.body,
             self.args.profile,
             callback=self.host.quit,
-            errback=partial(self.errback,
-                            msg=_(u"can't create invitation: {}"),
-                            exit_code=C.EXIT_BRIDGE_ERRBACK))
+            errback=partial(
+                self.errback,
+                msg=_(u"can't create invitation: {}"),
+                exit_code=C.EXIT_BRIDGE_ERRBACK,
+            ),
+        )
 
 
 class Invitee(base.CommandBase):
     subcommands = (InviteeGet, InviteeSet, InviteesList, InviteeInvite)
 
     def __init__(self, host):
-        super(Invitee, self).__init__(host, 'invitee', use_profile=False, help=_(u'manage invities'))
+        super(Invitee, self).__init__(
+            host, "invitee", use_profile=False, help=_(u"manage invities")
+        )
 
 
 class Event(base.CommandBase):
     subcommands = (Get, Create, Modify, Invitee)
 
     def __init__(self, host):
-        super(Event, self).__init__(host, 'event', use_profile=False, help=_('event management'))
+        super(Event, self).__init__(
+            host, "event", use_profile=False, help=_("event management")
+        )