Source code for tokio.cli.cache_isdct

"""
Provide a CLI interface for :meth:`tokio.connectors.nersc_isdct.NerscIsdct.to_dataframe`
and :meth:`tokio.connectors.nersc_isdct.NerscIsdct.save_cache` methods.
"""

import argparse
import tokio.connectors.nersc_isdct

[docs]def main(argv=None): """Entry point for the CLI interface """ parser = argparse.ArgumentParser() parser.add_argument("isdctfile", type=str, help="NERSC ISDCT dump to process") parser.add_argument("-j", "--json", action="store_true", default=True, help="return output in JSON format") parser.add_argument("-c", "--csv", action="store_true", help="return output in CSV format") parser.add_argument("-o", "--output", type=str, default=None, help="output file") args = parser.parse_args(argv) # Read from a cache file isdct_data = tokio.connectors.nersc_isdct.NerscIsdct(args.isdctfile) # Serialize the object cache_file = args.output if cache_file is not None: print("Caching to %s" % cache_file) if args.csv: if cache_file is None: print(isdct_data.to_dataframe().to_csv()) else: isdct_data.to_dataframe().to_csv(cache_file) elif args.json: isdct_data.save_cache(cache_file) else: raise Exception("No output format specified")