<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_config(args, config_path=".inlineplz.yml"):
 """Load inline-plz config from yaml config file with reasonable defaults."""

    config = {}
    try:
        with open(config_path) as configfile:
            config = yaml.safe_load(configfile) or {}
            if config:
                print("Loaded config from {}".format(config_path))
                pprint.pprint(config)
    except (IOError, OSError, yaml.parser.ParserError):
        traceback.print_exc()
    args = update_from_config(args, config)
    args.ignore_paths = args.__dict__.get("ignore_paths") or [
        "node_modules",
        ".git",
        ".tox",
        "godeps",
        "vendor",
        "site-packages",
        "venv",
        ".env",
        "spec",
        "migrate",
        "bin",
        "fixtures",
        "cassettes",
        ".cache",
        ".idea",
        ".pytest_cache",
        "__pycache__",
        "dist",
    ]
    if config_path != ".inlineplz.yml":
        return args

    # fall back to config_dir inlineplz yaml if we didn't find one locally
    if args.config_dir and not config:
        new_config_path = os.path.join(args.config_dir, config_path)
        if os.path.exists(new_config_path):
            return load_config(args, new_config_path)

    return args