コード例 #1
0
ファイル: arast.py プロジェクト: YvetteVv/Gene-Pipeline
def prepare_assembly_data(args, aclient, usage):
    """Parses args and uploads files
    returns data spec for submission in run/upload commands"""
    if not (args.pair or args.single or args.pair_url or args.single_url or args.contigs):
        sys.exit(usage)

    adata = client.AssemblyData()
    curl = args.curl

    res_ids = []
    files = []
    file_sizes = []
    file_list = []
    file_lists = []

    all_lists = [args.pair, args.pair_url, args.single, args.single_url,
                 args.reference, args.reference_url, args.contigs]
    all_types = ['paired', 'paired_url', 'single', 'single_url',
                 'reference', 'reference_url', 'contigs']

    for li in all_lists:
        if li is None:
            file_lists.append([])
        else:
            file_lists.append(li)

    seen = {}
    for f_list in file_lists:
        for ls in f_list:
            for word in ls:
                if '=' not in word:
                    if word in seen:
                        sys.exit('Input error: duplicated file: {}'.format(word))
                    else:
                        seen[word] = True

    for f_list, f_type in zip(file_lists, all_types):
        for ls in f_list:
            f_infos = []
            f_set_args = {}
            for word in ls:
                if '=' in word:
                    key, val = word.split('=')
                    f_set_args[key] = val
                elif os.path.isfile(word):
                    f_info = aclient.upload_data_file_info(word, curl=curl)
                    f_infos.append(f_info)
                elif f_type.endswith('_url'):
                    file_url = utils.verify_url(word)
                    f_info = asmtypes.FileInfo(direct_url=file_url)
                    f_infos.append(f_info)
                else:
                    sys.exit('Invalid input: {}: {}'.format(f_type, word))
            f_set = asmtypes.FileSet(f_type, f_infos, **f_set_args)
            adata.add_set(f_set)

    return adata
コード例 #2
0
ファイル: arast.py プロジェクト: sebhtml/assembly
def run_command():
    parser = get_parser()
    args = parser.parse_args()
    usage = parser.format_usage()

    frmt = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")
    sh = logging.StreamHandler()
    sh.setLevel(logging.DEBUG)
    sh.setFormatter(frmt)

    clientlog = logging.getLogger("client")
    clientlog.setLevel(logging.INFO)
    clientlog.addHandler(sh)
    if args.verbose:
        clientlog.setLevel(logging.DEBUG)
        clientlog.debug("Logger Debugging mode")

    if args.command == "login":
        cmd_login(args)
        sys.exit()

    if args.command == "logout":
        cmd_logout(args)
        sys.exit()

    a_user, a_token = auth.verify_token(ARAST_AUTH_USER, ARAST_AUTH_TOKEN)
    if not a_user or not a_token:
        if ARAST_ENVIRON:
            sys.exit("Please use the {} controls to authenticate".format(ARAST_ENVIRON))
        else:
            sys.stderr.write("You can use the login/logout commands to authenticate\n")
            a_user, a_token = auth.authenticate()

    # main command options
    a_url = args.arast_url or ARAST_URL
    a_url = utils.verify_url(a_url)
    logging.info("ARAST_URL: {}".format(a_url))

    aclient = client.Client(a_url, a_user, a_token)

    if args.command == "upload":
        cmd_upload(args, aclient, usage, clientlog)
    elif args.command == "run":
        cmd_run(args, aclient, usage, clientlog)
    elif args.command == "stat":
        cmd_stat(args, aclient)
    elif args.command == "get":
        cmd_get(args, aclient)
    elif args.command == "avail":
        cmd_avail(args, aclient)
    elif args.command == "kill":
        print aclient.kill_jobs(args.job)
コード例 #3
0
ファイル: arast.py プロジェクト: YvetteVv/Gene-Pipeline
def run_command():
    parser = get_parser()
    args = parser.parse_args()
    usage = parser.format_usage()

    frmt = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    sh = logging.StreamHandler()
    sh.setLevel(logging.DEBUG)
    sh.setFormatter(frmt)

    clientlog = logging.getLogger('client')
    clientlog.setLevel(logging.INFO)
    clientlog.addHandler(sh)
    if args.verbose:
        clientlog.setLevel(logging.DEBUG)
        clientlog.debug("Logger Debugging mode")

    if args.command == 'login':
        cmd_login(args)
        sys.exit()

    if args.command == 'logout':
        cmd_logout(args)
        sys.exit()

    a_user, a_token = auth.verify_token(ARAST_AUTH_USER,ARAST_AUTH_TOKEN)
    if not a_user or not a_token:
        if ARAST_ENVIRON:
            sys.exit('Please use the {} controls to authenticate'.format(ARAST_ENVIRON))
        else:
            sys.stderr.write('You can use the login/logout commands to authenticate\n')
            a_user, a_token = auth.authenticate()

    # main command options
    a_url = args.arast_url or ARAST_URL
    a_url = utils.verify_url(a_url)
    logging.info('ARAST_URL: {}'.format(a_url))

    aclient = client.Client(a_url, a_user, a_token)

    if args.command == 'upload':
        cmd_upload(args, aclient, usage, clientlog)
    elif args.command == 'run':
        cmd_run(args, aclient, usage, clientlog)
    elif args.command == 'stat':
        cmd_stat(args, aclient)
    elif args.command == 'get':
        cmd_get(args, aclient)
    elif args.command == 'avail':
        cmd_avail(args, aclient)
    elif args.command == 'kill':
        print aclient.kill_jobs(args.job)