def __init__(self):
        self.parser = argparse.ArgumentParser()
        self.parser.add_argument(
            '-c', '--config',
            help="magma web config file (default: production.ini)",
            default="production.ini", type=str)
        sp = self.parser.add_subparsers()

        sc_add = sp.add_parser(
            "add", help=self.add.__doc__, description=self.add.__doc__)
        sc_add.add_argument(
            'user', help="user id (default: %(default)s)",
            default=None, type=str)
        sc_add.add_argument(
            'name', help="name (default: %(default)s)",
            default=None, type=str)
        sc_add.add_argument(
            'email', help="e-mail address (default: %(default)s)",
            default=None, type=str)
        sc_add.add_argument(
            'password', help="password (default: %(default)s)",
            default=None, type=str)
        sc_add.set_defaults(func=self.add)

        sc_update = sp.add_parser(
            "update", help=self.update.__doc__,
            description=self.update.__doc__)
        sc_update.add_argument(
            '-u', '--user', help="change user id)",
            default=argparse.SUPPRESS, type=str)
        sc_update.add_argument(
            '-n', '--name', help="change display name",
            default=argparse.SUPPRESS, type=str)
        sc_update.add_argument(
            '-e', '--email', help="change email",
            default=argparse.SUPPRESS, type=str)
        sc_update.add_argument(
            '-p', '--password', help="change password",
            default=argparse.SUPPRESS, type=str)
        sc_update.add_argument(
            'userid', help="user id (default: %(default)s)",
            default=None, type=str)
        sc_update.set_defaults(func=self.update)

        sc_remove = sp.add_parser(
            "remove", help=self.remove.__doc__,
            description=self.remove.__doc__)
        sc_remove.add_argument(
            'user', help="user id (default: %(default)s)",
            default=None, type=str)
        sc_remove.set_defaults(func=self.remove)

        sc_owner = sp.add_parser(
            "owner", help=self.owner.__doc__, description=self.owner.__doc__)
        sc_owner.add_argument(
            'job', help="job identifier", default=None, type=str)
        sc_owner.add_argument(
            'user', help="user id", default=None, type=str)
        sc_owner.set_defaults(func=self.owner)

        sc_import = sp.add_parser(
            "importjob", help=self.importjob.__doc__,
            description=self.importjob.__doc__)
        sc_import.add_argument(
            'dbfile', help="job sqlite result db file",
            default=None, type=argparse.FileType('r'))
        sc_import.add_argument(
            'owner', help="user id", default=None, type=str)
        sc_import.set_defaults(func=self.importjob)