def tree_iterator(args): if not args.src_trees and not sys.stdin.isatty(): log.debug("Reading trees from standard input...") args.src_trees = sys.stdin elif not args.src_trees: log.error("At least one tree is required as input (i.e --src_trees ) ") sys.exit(-1) for stree in args.src_trees: # CHECK WHAT is needed before process the main command, allows mods before analyses yield stree.strip()
def main(): if len(sys.argv) > 1 and sys.argv[1] == "version": import ete3 print(ete3.__version__) return elif len(sys.argv) > 1 and sys.argv[1] == "build": from . import phylobuild del sys.argv[1] phylobuild._main() return # CREATE REUSABLE PARSER OPTIONS # main args main_args_p = argparse.ArgumentParser(add_help=False) common.populate_main_args(main_args_p) # source tree args source_args_p = argparse.ArgumentParser(add_help=False) common.populate_source_args(source_args_p) # ref tree args ref_args_p = argparse.ArgumentParser(add_help=False) common.populate_ref_args(ref_args_p) # mod mod_args_p = argparse.ArgumentParser(add_help=False) ete_mod.populate_args(mod_args_p) # expand expand_args_p = argparse.ArgumentParser(add_help=False) ete_expand.populate_args(expand_args_p) # extract extract_args_p = argparse.ArgumentParser(add_help=False) ete_extract.populate_args(extract_args_p) # split split_args_p = argparse.ArgumentParser(add_help=False) ete_split.populate_args(split_args_p) # ADD SUBPROGRAM TO THE MAIN PARSER parser = argparse.ArgumentParser(description="", formatter_class=argparse.RawDescriptionHelpFormatter) subparser = parser.add_subparsers(title="AVAILABLE PROGRAMS") # - MOD - mod_args_pp = subparser.add_parser("mod", parents=[source_args_p, main_args_p, mod_args_p], description=ete_mod.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) mod_args_pp.set_defaults(func=ete_mod.run) # - EXTRACT - extract_args_pp = subparser.add_parser("extract", parents=[source_args_p, main_args_p, extract_args_p], description=ete_extract.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) extract_args_pp.set_defaults(func=ete_extract.run) # - ANNOTATE - annotate_args_p = subparser.add_parser("annotate", parents=[source_args_p, main_args_p], description=ete_annotate.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) annotate_args_p.set_defaults(func=ete_annotate.run) ete_annotate.populate_args(annotate_args_p) # - COMPARE - compare_args_p = subparser.add_parser("compare", parents=[source_args_p, ref_args_p, main_args_p], description=ete_compare.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) compare_args_p.set_defaults(func=ete_compare.run) ete_compare.populate_args(compare_args_p) # - VIEW - view_args_p = subparser.add_parser("view", parents=[source_args_p, main_args_p], description=ete_view.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) view_args_p.set_defaults(func=ete_view.run) ete_view.populate_args(view_args_p) # - NCBIQUERY - ncbi_args_p = subparser.add_parser("ncbiquery", parents=[main_args_p], description=ete_ncbiquery.DESC) ncbi_args_p.set_defaults(func=ete_ncbiquery.run) ete_ncbiquery.populate_args(ncbi_args_p) # - GENERATE - generate_args_p = subparser.add_parser("generate", parents=[source_args_p, main_args_p], description=ete_generate.DESC, formatter_class=argparse.RawDescriptionHelpFormatter) generate_args_p.set_defaults(func=ete_generate.run) ete_generate.populate_args(generate_args_p) # - build - generate_args_p = subparser.add_parser("build") generate_args_p = subparser.add_parser("version") # =================== # EXECUTE PROGRAM # =================== args = parser.parse_args() LOG_LEVEL = args.verbosity if hasattr(args, "src_trees"): args.src_tree_iterator = tree_iterator(args) elif args.func==ete_ncbiquery.run and not getattr(args, "search", None): if not args.search and not sys.stdin.isatty(): log.debug("Reading taxa from standard input...") args.search = sys.stdin # Call main program args.func(args)
def main(): if len(sys.argv) > 1 and sys.argv[1] == "version": import ete3 print(ete3.__version__) return elif len(sys.argv) > 1 and sys.argv[1] == "build": from . import phylobuild del sys.argv[1] phylobuild._main() return # CREATE REUSABLE PARSER OPTIONS # main args main_args_p = argparse.ArgumentParser(add_help=False) common.populate_main_args(main_args_p) # source tree args source_args_p = argparse.ArgumentParser(add_help=False) common.populate_source_args(source_args_p) # ref tree args ref_args_p = argparse.ArgumentParser(add_help=False) common.populate_ref_args(ref_args_p) # mod mod_args_p = argparse.ArgumentParser(add_help=False) ete_mod.populate_args(mod_args_p) # expand expand_args_p = argparse.ArgumentParser(add_help=False) ete_expand.populate_args(expand_args_p) # extract extract_args_p = argparse.ArgumentParser(add_help=False) ete_extract.populate_args(extract_args_p) # split split_args_p = argparse.ArgumentParser(add_help=False) ete_split.populate_args(split_args_p) # ADD SUBPROGRAM TO THE MAIN PARSER parser = argparse.ArgumentParser(description="", formatter_class=argparse.RawDescriptionHelpFormatter) subparser = parser.add_subparsers(title="AVAILABLE PROGRAMS") # - MOD - mod_args_pp = subparser.add_parser( "mod", parents=[source_args_p, main_args_p, mod_args_p], description=ete_mod.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) mod_args_pp.set_defaults(func=ete_mod.run) # - EXTRACT - extract_args_pp = subparser.add_parser( "extract", parents=[source_args_p, main_args_p, extract_args_p], description=ete_extract.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) extract_args_pp.set_defaults(func=ete_extract.run) # - ANNOTATE - annotate_args_p = subparser.add_parser( "annotate", parents=[source_args_p, main_args_p], description=ete_annotate.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) annotate_args_p.set_defaults(func=ete_annotate.run) ete_annotate.populate_args(annotate_args_p) # - COMPARE - compare_args_p = subparser.add_parser( "compare", parents=[source_args_p, ref_args_p, main_args_p], description=ete_compare.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) compare_args_p.set_defaults(func=ete_compare.run) ete_compare.populate_args(compare_args_p) # - VIEW - view_args_p = subparser.add_parser( "view", parents=[source_args_p, main_args_p], description=ete_view.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) view_args_p.set_defaults(func=ete_view.run) ete_view.populate_args(view_args_p) # - NCBIQUERY - ncbi_args_p = subparser.add_parser("ncbiquery", parents=[main_args_p], description=ete_ncbiquery.DESC) ncbi_args_p.set_defaults(func=ete_ncbiquery.run) ete_ncbiquery.populate_args(ncbi_args_p) # - GENERATE - generate_args_p = subparser.add_parser( "generate", parents=[source_args_p, main_args_p], description=ete_generate.DESC, formatter_class=argparse.RawDescriptionHelpFormatter, ) generate_args_p.set_defaults(func=ete_generate.run) ete_generate.populate_args(generate_args_p) # - build - generate_args_p = subparser.add_parser("build") generate_args_p = subparser.add_parser("version") # =================== # EXECUTE PROGRAM # =================== args = parser.parse_args() LOG_LEVEL = args.verbosity if hasattr(args, "src_trees"): args.src_tree_iterator = tree_iterator(args) elif args.func == ete_ncbiquery.run and not getattr(args, "search", None): if not args.search and not sys.stdin.isatty(): log.debug("Reading taxa from standard input...") args.search = sys.stdin # Call main program args.func(args)