#!/usr/bin/env python

# executing script allowing direct input of a protein name to get a graph back
# import stuff for making CLI

import os
import argparse

# import functionality to get a sequence
from getSequence.getseq import getseq as seq_from_name


if __name__ == "__main__":
    # Parse command line arguments.
    parser = argparse.ArgumentParser(description='Get a sequence from a protein name or UniProt accession number.')

    parser.add_argument('name', nargs='+', help='Name of the protein.')

    parser.add_argument('-s', '--silent', action='store_true', help='Optional. Use this flag to stop any printed text to the terminal except for the sequence.')


    # parse the args
    args = parser.parse_args()

    # get protein name 
    if len(args.name) == 1:
        final_name = args.name[0]
        just_protein_name = True

    else:
        final_name = ''
        for i in args.name:
            final_name += i
            final_name += ' '
        final_name = final_name[:len(final_name)-1]
        just_protein_name = False

    # sequence and name
    seq_and_name = seq_from_name(final_name)


    # see if you should print the entire uniprot ID to the terminal
    if args.silent:
        print_uniprot=False
    else:
        print_uniprot=True


    # figure out what to print if anything
    if print_uniprot==True:
        print(f'>{seq_and_name[0]}')
        print(seq_and_name[1])
    else:
    	print(seq_and_name[1])



