<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def SCM(root_dir, repo=None):
 # pylint: disable=invalid-name """Returns SCM instance that corresponds to a repo at the specified path. Args: root_dir (str):
 path to a root directory of the repo. repo (dvc.repo.Repo):
 dvc repo instance that root_dir belongs to. Returns: dvc.scm.base.Base: SCM instance. """

    if Git.is_repo(root_dir) or Git.is_submodule(root_dir):
        return Git(root_dir, repo=repo)

    return NoSCM(root_dir, repo=repo)