Skip to content

Commit

Permalink
fix: Pass in source_subdirectory to get_package_from_vcs
Browse files Browse the repository at this point in the history
Fixes #5521.
With this commit, one can finally add a Git dependency with a
subdirectory, e.g.

```
talon-core = {git = "https://github.com/zulip/talon.git", rev = "1711705c952806d4a704c7dbf58f21db8e11756a", subdirectory = "talon-core" }
```
  • Loading branch information
rht committed May 3, 2022
1 parent 4d0b710 commit 6421e53
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/poetry/puzzle/provider.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def _get_package_from_git(
tag: str | None = None,
rev: str | None = None,
source_root: Path | None = None,
source_subdirectory: str | None = None,
) -> Package:
source = Git.clone(
url=url,
Expand All @@ -78,7 +79,11 @@ def _get_package_from_git(
)
revision = Git.get_revision(source)

package = Provider.get_package_from_directory(Path(source.path))
directory = Path(source.path)
if source_subdirectory:
directory = directory / source_subdirectory

package = Provider.get_package_from_directory(directory)
package._source_type = "git"
package._source_url = url
package._source_reference = rev or tag or branch or "HEAD"
Expand Down Expand Up @@ -214,6 +219,7 @@ def search_for_vcs(self, dependency: VCSDependency) -> list[Package]:
rev=dependency.rev,
source_root=self._source_root
or (self._env.path.joinpath("src") if self._env else None),
source_subdirectory=dependency._source_subdirectory,
)

self.validate_package_for_dependency(dependency=dependency, package=package)
Expand All @@ -239,12 +245,18 @@ def get_package_from_vcs(
tag: str | None = None,
rev: str | None = None,
source_root: Path | None = None,
source_subdirectory: str | None = None,
) -> Package:
if vcs != "git":
raise ValueError(f"Unsupported VCS dependency {vcs}")

return _get_package_from_git(
url=url, branch=branch, tag=tag, rev=rev, source_root=source_root
url=url,
branch=branch,
tag=tag,
rev=rev,
source_root=source_root,
source_subdirectory=source_subdirectory,
)

def search_for_file(self, dependency: FileDependency) -> list[Package]:
Expand Down

0 comments on commit 6421e53

Please sign in to comment.