python-poetry / poetry

Python packaging and dependency management made easy
https://python-poetry.org
MIT License
31.76k stars 2.27k forks source link

Support for Git Repository Packages which have LFS #8723

Open burnhamd opened 11 months ago

burnhamd commented 11 months ago

Feature Request

Using pip install I am able to use git repositories which have LFS enabled as dependencies in py pyproject.toml. In my projects I often use LFS for storing ML models so that the model and source code are matched in the repo.

I would like to propose allowing git LFS clones when pulling packages from git. My proposal would be to have it as an extra argument in the dependency specification like this: myprivaterepo = { git = "git@github.com:myorganization/myprivaterepo.git", branch = "master", lfs = "enabled"

dimbleby commented 11 months ago

presumably this just works if you configure poetry to use the system git client (and have configured git correctly)?

if you want "native" support you will need to ask for or contribute it at https://github.com/jelmer/dulwich/

nicolashery commented 8 months ago

I have bumped into this issue as well.

presumably this just works if you configure poetry to use the system git client (and have configured git correctly)?

As mentioned in this post https://stackoverflow.com/questions/77554348/install-package-from-git-including-git-lfs-files-with-poetry (by the same author of this issue it seems), I did try experimental.system-git-client = true with my system Git configured correctly (Git and LFS installed via Homebrew), but that didn't seem to work.

Oddly enough poetry run pip install git+ssh://git@github.com/org/package.git did work, i.e. LFS was triggered and the files showed up normally not as pointers.

I don't know if there is a way to check that Poetry is indeed calling out to the proper system git client and using the same git config as my shell?

abn commented 8 months ago

I don't know if there is a way to check that Poetry is indeed calling out to the proper system git client and using the same git config as my shell?

Poetry uses dulwich by default. You can see https://python-poetry.org/docs/dependency-specification/#git-dependencies for instructions on how to use your system git client.

Edit: Missed the part you said you already tried this. Maybe try clearing the cached checkout in your virtual env?

jk7070 commented 2 months ago

Any further updates on this?