def _get_package_from_git( url: str, branch: str | None = None, tag: str | None = None, rev: str | None = None, subdirectory: str | None = None, source_root: Path | None = None, ) -> Package: source = Git.clone( url=url, source_root=source_root, branch=branch, tag=tag, revision=rev, clean=False, ) revision = Git.get_revision(source) path = Path(source.path) if subdirectory: path = path.joinpath(subdirectory) package = Provider.get_package_from_directory(path) package._source_type = "git" package._source_url = url package._source_reference = rev or tag or branch or "HEAD" package._source_resolved_reference = revision package._source_subdirectory = subdirectory return package
def assert_version(repo: Repo, expected_revision: str) -> None: version = PyProjectTOML(path=Path(repo.path).joinpath( "pyproject.toml")).poetry_config["version"] revision = Git.get_revision(repo=repo) assert revision == expected_revision assert revision in REVISION_TO_VERSION_MAP assert version == REVISION_TO_VERSION_MAP[revision]