Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
python-poetry
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
open
python-poetry
Commits
021253db
Commit
021253db
authored
May 19, 2022
by
Arun Babu Neelicattu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
support subdirectories for vcs dependencies
parent
dacb720b
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
31 additions
and
4 deletions
+31
-4
src/poetry/puzzle/provider.py
+22
-3
src/poetry/utils/dependency_specification.py
+9
-1
No files found.
src/poetry/puzzle/provider.py
View file @
021253db
...
@@ -87,6 +87,7 @@ def _get_package_from_git(
...
@@ -87,6 +87,7 @@ def _get_package_from_git(
branch
:
str
|
None
=
None
,
branch
:
str
|
None
=
None
,
tag
:
str
|
None
=
None
,
tag
:
str
|
None
=
None
,
rev
:
str
|
None
=
None
,
rev
:
str
|
None
=
None
,
subdirectory
:
str
|
None
=
None
,
source_root
:
Path
|
None
=
None
,
source_root
:
Path
|
None
=
None
,
)
->
Package
:
)
->
Package
:
source
=
Git
.
clone
(
source
=
Git
.
clone
(
...
@@ -99,11 +100,16 @@ def _get_package_from_git(
...
@@ -99,11 +100,16 @@ def _get_package_from_git(
)
)
revision
=
Git
.
get_revision
(
source
)
revision
=
Git
.
get_revision
(
source
)
package
=
Provider
.
get_package_from_directory
(
Path
(
source
.
path
))
path
=
Path
(
source
.
path
)
if
subdirectory
:
path
=
path
.
joinpath
(
subdirectory
)
package
=
Provider
.
get_package_from_directory
(
path
)
package
.
_source_type
=
"git"
package
.
_source_type
=
"git"
package
.
_source_url
=
url
package
.
_source_url
=
url
package
.
_source_reference
=
rev
or
tag
or
branch
or
"HEAD"
package
.
_source_reference
=
rev
or
tag
or
branch
or
"HEAD"
package
.
_source_resolved_reference
=
revision
package
.
_source_resolved_reference
=
revision
package
.
_source_subdirectory
=
subdirectory
return
package
return
package
...
@@ -230,7 +236,13 @@ class Provider:
...
@@ -230,7 +236,13 @@ class Provider:
Basically, we clone the repository in a temporary directory
Basically, we clone the repository in a temporary directory
and get the information we need by checking out the specified reference.
and get the information we need by checking out the specified reference.
"""
"""
if
dependency
in
self
.
_deferred_cache
:
# we ensure subdirectory match here as workaround until poetry-core is updated
# to >1.1.0a7
if
(
dependency
in
self
.
_deferred_cache
and
self
.
_deferred_cache
[
dependency
]
.
source_subdirectory
==
dependency
.
source_subdirectory
):
return
[
self
.
_deferred_cache
[
dependency
]]
return
[
self
.
_deferred_cache
[
dependency
]]
package
=
self
.
get_package_from_vcs
(
package
=
self
.
get_package_from_vcs
(
...
@@ -239,6 +251,7 @@ class Provider:
...
@@ -239,6 +251,7 @@ class Provider:
branch
=
dependency
.
branch
,
branch
=
dependency
.
branch
,
tag
=
dependency
.
tag
,
tag
=
dependency
.
tag
,
rev
=
dependency
.
rev
,
rev
=
dependency
.
rev
,
subdirectory
=
dependency
.
source_subdirectory
,
source_root
=
self
.
_source_root
source_root
=
self
.
_source_root
or
(
self
.
_env
.
path
.
joinpath
(
"src"
)
if
self
.
_env
else
None
),
or
(
self
.
_env
.
path
.
joinpath
(
"src"
)
if
self
.
_env
else
None
),
)
)
...
@@ -265,13 +278,19 @@ class Provider:
...
@@ -265,13 +278,19 @@ class Provider:
branch
:
str
|
None
=
None
,
branch
:
str
|
None
=
None
,
tag
:
str
|
None
=
None
,
tag
:
str
|
None
=
None
,
rev
:
str
|
None
=
None
,
rev
:
str
|
None
=
None
,
subdirectory
:
str
|
None
=
None
,
source_root
:
Path
|
None
=
None
,
source_root
:
Path
|
None
=
None
,
)
->
Package
:
)
->
Package
:
if
vcs
!=
"git"
:
if
vcs
!=
"git"
:
raise
ValueError
(
f
"Unsupported VCS dependency {vcs}"
)
raise
ValueError
(
f
"Unsupported VCS dependency {vcs}"
)
return
_get_package_from_git
(
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
,
subdirectory
=
subdirectory
,
source_root
=
source_root
,
)
)
def
search_for_file
(
self
,
dependency
:
FileDependency
)
->
list
[
Package
]:
def
search_for_file
(
self
,
dependency
:
FileDependency
)
->
list
[
Package
]:
...
...
src/poetry/utils/dependency_specification.py
View file @
021253db
...
@@ -37,12 +37,20 @@ def _parse_dependency_specification_git_url(
...
@@ -37,12 +37,20 @@ def _parse_dependency_specification_git_url(
url
=
Git
.
normalize_url
(
requirement
)
url
=
Git
.
normalize_url
(
requirement
)
pair
=
{
"name"
:
parsed
.
name
,
"git"
:
url
.
url
}
pair
=
{
"name"
:
parsed
.
name
,
"git"
:
url
.
url
}
if
parsed
.
rev
:
if
parsed
.
rev
:
pair
[
"rev"
]
=
url
.
revision
pair
[
"rev"
]
=
url
.
revision
if
parsed
.
subdirectory
:
pair
[
"subdirectory"
]
=
parsed
.
subdirectory
source_root
=
env
.
path
.
joinpath
(
"src"
)
if
env
else
None
source_root
=
env
.
path
.
joinpath
(
"src"
)
if
env
else
None
package
=
Provider
.
get_package_from_vcs
(
package
=
Provider
.
get_package_from_vcs
(
"git"
,
url
=
url
.
url
,
rev
=
pair
.
get
(
"rev"
),
source_root
=
source_root
"git"
,
url
=
url
.
url
,
rev
=
pair
.
get
(
"rev"
),
subdirectory
=
parsed
.
subdirectory
,
source_root
=
source_root
,
)
)
pair
[
"name"
]
=
package
.
name
pair
[
"name"
]
=
package
.
name
return
pair
return
pair
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment