Source code for frb.scripts.build

#!/usr/bin/env python
"""
Build FRB bits and pieces
"""

[docs] def parser(options=None): import argparse # Parse parser = argparse.ArgumentParser(description='Build parts of the CASBAH database; Output_dir = $CASBAH_GALAXIES [v1.1]') parser.add_argument("item", type=str, help="Item to build ['FRBs', 'Hosts', 'specDB', 'FG', 'PATH']. Case insensitive") parser.add_argument("--flag", type=str, default='all', help="Flag passed to the build") parser.add_argument("--options", type=str, help="Options for the build, e.g. fg/host building (cigale,ppxf); PATH (write_indiv)") parser.add_argument("--frb", type=str, help="Full TNS FRB name, list or CSV file with column TNS, e.g. FRB20191001A,20191001A") parser.add_argument("--data_file", type=str, help="Alternate file for data than the default (public)") parser.add_argument("--lit_refs", type=str, help="Alternate file for literature sources than all_refs.csv") parser.add_argument("--override", default=False, action='store_true', help="Over-ride errors (as possible)? Not recommended") if options is None: pargs = parser.parse_args() else: pargs = parser.parse_args(options) return pargs
[docs] def main(pargs): """ Run """ import warnings import pandas from frb.builds import build_specdb from frb.builds import build_frbs from frb.builds import build_hosts from frb.builds import build_fg from frb.builds import build_path # Parse item = pargs.item.lower() if item in ['frbs', 'hosts']: if pargs.frb is None: print("You must specify --frb") return # Text file? if pargs.frb.endswith('.txt'): frbs = [] with open(pargs.frb, 'r') as f: for line in f: frbs.append(line.strip()) elif pargs.frb.endswith('.csv'): # Read from TNS column df = pandas.read_csv(pargs.frb) frbs = df.TNS.values.tolist() else: frbs = pargs.frb.split(',') frbs = [ifrb.strip() for ifrb in frbs] if item == 'frbs': build_frbs.main(frbs, data_file=pargs.data_file) else: build_hosts.main(frbs, options=pargs.options, hosts_file=pargs.data_file, lit_refs=pargs.lit_refs, override=pargs.override) elif item == 'specdb': build_specdb.main(inflg=pargs.flag) elif item == 'fg': build_fg.main(inflg=pargs.flag, options=pargs.options) elif item == 'path': build_path.main(options=pargs.options, frb=pargs.frb) else: raise IOError("Bad build item {:s}".format(item))
[docs] def cli(): main(parser())