code: def main():
      
      # Setup logging for the command line
      name = os.path.splitext(os.path.basename(__file__))[0]
      logging.basicConfig(
          format="%(asctime)s [%(process)s] %(levelname)s {} - %(message)s".format(name),
          level=logging.INFO)
  
      # Program arguments
      parser = argparse.ArgumentParser(description=__doc__)
      parser.add_argument("--edges", metavar="FILENAME", required=True,
                          help="input network edges file in TSV format")
      parser.add_argument("--output-clusters", metavar="FILENAME", required=True,
                          help="output clusters file in JSON format")
      parser.add_argument("--oslom-output", metavar="DIRECTORY", required=True,
                          help="output directory for OSLOM files")
      parser.add_argument("--min-cluster-size", metavar="INTEGER", type=int,
                          default=DEF_MIN_CLUSTER_SIZE,
                          help="minimum cluster size (default: %(default)s)")
      parser.add_argument("--oslom-exec", metavar="EXECUTABLE",
                          default=DEF_OSLOM_EXEC,
                          help="OSLOM executable program to use "
                               "(default: %(default)s)")
      parser.add_argument("oslom_args", metavar="OSLOM_ARG", nargs="*",
                          default=DEF_OSLOM_ARGS,
                          help="argument to pass to OSLOM (don't pass '-f' !) "
                               "(default: %(default)s)")
  
      # Run OSLOM with parsed arguments
      sys.exit(not run(parser.parse_args()))
docs: Main interface function for the command line.