def main():
    import sys
    cout = codecs.getwriter('utf-8')(sys.stdout)
    o = OTT()
    # print('taxonomic sources = "{}"'.format('", "'.join([iii for iii in o.taxonomic_sources])))
    # print(o.ncbi(1115784))
    o.write_newick(cout, label_style=OTULabelStyleEnum.CURRENT_LABEL_OTT_ID, prune_flags=_TREEMACHINE_PRUNE_FLAGS)
    cout.write('\n')
    '''fstrs = ['{k:d}: {v}'.format(k=k, v=v) for k, v in o.flag_set_id_to_flag_set.items()]
    print('flag_set_id_to_flag_set =\n  {}'.format('\n  '.join(fstrs)))
    for ott_id, info in o.ott_id_to_sources.items():
        if 'ncbi' in info:
            print('OTT {o:d} => NCBI {n:d}'.format(o=ott_id, n=info['ncbi']))
    print(len(o.ott_id2par_ott_id), 'ott IDs')
    print('call')
    print(o.get_anc_lineage(593937)) # This is the OTT id of a species in the Asterales system
    print(o.root_name)
    o.induced_tree([458721, 883864, 128315])
    '''