@options([make_option(None, '--user', type="string", metavar="UID",
                          help="Show user stats using it's UID"),
              make_option(None, '--users', action="store_true",
                          help="Show all users stats"),
              make_option(None, '--smppc', type="string", metavar="CID",
                          help="Show smpp connector stats using it's CID"),
              make_option(None, '--smppcs', action="store_true",
                          help="Show all smpp connectors stats"),
              make_option(None, '--httpapi', action="store_true",
                          help="Show HTTP API stats"),
              make_option(None, '--smppsapi', action="store_true",
                          help="Show SMPP Server API stats")], '')
    def do_stats(self, arg, opts=None):

        if opts.user:
            self.managers['stats'].user(arg, opts)
        elif opts.users:
            self.managers['stats'].users(arg, opts)
        elif opts.smppc:
            self.managers['stats'].smppc(arg, opts)
        elif opts.smppcs:
            self.managers['stats'].smppcs(arg, opts)
        elif opts.httpapi:
            self.managers['stats'].httpapi(arg, opts)
        elif opts.smppsapi:
            self.managers['stats'].smppsapi(arg, opts)
        else:
            return self.sendData('Missing required option')
Generates transitive closure of a user-defined
dataset/ETHPy150Open jookies/jasmin/jasmin/protocols/cli/jcli.py/JCliProtocol.do_stats--crossover with--dataset/ETHPy150Open RDFLib/rdflib/rdflib/graph.py/Graph.transitiveClosure