code: def new_project(self, project_root):
          
          # copy profile
          profile = Profile(**self.to_profile_info())
          profile.validate()
          # load the new project and its packages. Don't pass cli variables.
          project = Project.from_project_root(project_root, {})
  
          cfg = self.from_parts(
              project=project,
              profile=profile,
              args=deepcopy(self.args),
          )
          # force our quoting back onto the new project.
          cfg.quoting = deepcopy(self.quoting)
          return cfg
docs: Given a new project root, read in its project dictionary, supply the
          existing project's profile info, and create a new project file.
  
          :param project_root str: A filepath to a dbt project.
          :raises DbtProfileError: If the profile is invalid.
          :raises DbtProjectError: If project is missing or invalid.
          :returns RuntimeConfig: The new configuration.