<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def museval(inargs=None):
 """ Commandline interface for museval evaluation tools """

    parser = argparse.ArgumentParser()

    parser.add_argument(
        'estimates_dir',
        type=str
    )

    parser.add_argument('-o', help='output_dir')

    parser.add_argument('--cpu', type=int, help='number of cpus', default=4)

    parser.add_argument(
        '-p', help='enable multiprocessing',
        action='store_true',
    )

    parser.add_argument(
        '--musdb',
        help='path to musdb',
        type=str
    )

    parser.add_argument(
        '--iswav', help='Read musdb wav instead of stems',
        action='store_true',
    )

    parser.add_argument(
        '--version', '-v',
        action='version',
        version='%%(prog)s %s' % util.__version__
    )

    args = parser.parse_args(inargs)
    mus = musdb.DB(root_dir=args.musdb, is_wav=args.iswav)

    if not args.o:
        output_dir = args.estimates_dir
    else:
        output_dir = args.o

    # evaluate an existing estimate folder with wav files
    eval_mus_dir(
        dataset=mus,  # instance of musdb
        estimates_dir=args.estimates_dir,  # path to estiamte folder
        output_dir=output_dir,  # set a folder to write eval json files
        parallel=args.p,
        cpus=args.cpu
    )