Exemplo n.º 1
0
    def add_arguments(self):
        """ Add the class-specific arguments."""
        sub = self.add_subparsers(help="Distributed job modes.")
        # Server.
        if self.server_func:
            p_server = sub.add_parser("server", description="Server options.")
            self.add_det(p_server)
            self.add_au(p_server)
            self.add_s(p_server)
            self.add_f(p_server)
            func = lambda args: self.server_func(
                *self.parse_det(args),
                **cat_dict(self.parse_au(args), self.parse_s(args),
                           self.parse_f(args)))
            p_server.set_defaults(func=func)
        # Client.
        if self.client_func:
            p_client = sub.add_parser("client", description="Client options.")
            self.add_g(p_client)
            self.add_T(p_client)
            self.add_au(p_client)

            def func(args):
                dct = cat_dict(self.parse_g(args), self.parse_au(args),
                               self.parse_T(args))
                self.client_func(**dct)
            p_client.set_defaults(func=func)
        # Debug.
        if self.debug_func:
            p_debug = sub.add_parser("debug", description="Debug options.")
            self.add_det(p_debug)
            self.add_f(p_debug)
            self.add_s(p_debug)
            self.add_g(p_debug)
            func = lambda args: self.debug_func(
                *self.parse_det(args),
                **cat_dict(self.parse_f(args), self.parse_s(args),
                           self.parse_g(args)))
            p_debug.set_defaults(func=func)
Exemplo n.º 2
0
 def func(args):
     dct = cat_dict(self.parse_g(args), self.parse_au(args),
                    self.parse_T(args))
     self.client_func(**dct)
Exemplo n.º 3
0
    params = {"Job": TestJob}
    tasks = {i: {"task_name": i, "out_pth": "test_{}.res".format(i),
                 "complete": False} for i in xrange(5)}
    ## TODO: complete
    raise NotImplementedError()


if __name__ == "__main__":

    parser = BaseParser()
    sub = parser.add_subparsers(help="Modes.")
    # Server.
    p_server = sub.add_parser("server", description="Server options.")
    parser.add_au(p_server)
    parser.add_s(p_server)
    func = lambda args: server_func(**cat_dict(parser.parse_au(args),
                                               parser.parse_s(args)))
    p_server.set_defaults(func=func)
    # Client.
    p_client = sub.add_parser("client", description="Client options.")
    parser.add_au(p_client)
    func = lambda args: client_func(**parser.parse_au(args))
    p_client.set_defaults(func=func)
    # Parse the args.
    args = parser.parse()
    args.func(args)


## TODO:
#
# - Secure shared objects.
# -- OR use fabric to run tasks.