<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def eval_mus_dir( dataset, estimates_dir, output_dir=None, *args, **kwargs ):
 """Run musdb.run for the purpose of evaluation of musdb estimate dir Parameters dataset : DB(object) Musdb Database object. estimates_dir : str Path to estimates folder. output_dir : str Output folder where evaluation json files are stored. *args Variable length argument list for `musdb.run()`. **kwargs Arbitrary keyword arguments for `musdb.run()`. """

    # create a new musdb instance for estimates with the same file structure
    est = musdb.DB(root_dir=estimates_dir, is_wav=True)
    # load all estimates track_names
    est_tracks = est.load_mus_tracks()
    # get a list of track names
    tracknames = [t.name for t in est_tracks]
    # load only musdb tracks where we have estimate tracks
    tracks = dataset.load_mus_tracks(tracknames=tracknames)
    # wrap the estimate loader
    run_fun = functools.partial(
        _load_track_estimates,
        estimates_dir=estimates_dir,
        output_dir=output_dir
    )
    # evaluate tracks
    dataset.run(run_fun, estimates_dir=None, tracks=tracks, *args, **kwargs)