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
cc715ef8
Unverified
Commit
cc715ef8
authored
Oct 07, 2018
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix a conflict error for locked conditional dependencies
parent
e3b974c6
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
40 additions
and
1 deletions
+40
-1
poetry/packages/package.py
+9
-1
tests/puzzle/test_solver.py
+31
-0
No files found.
poetry/packages/package.py
View file @
cc715ef8
...
@@ -19,6 +19,7 @@ from .dependency import Dependency
...
@@ -19,6 +19,7 @@ from .dependency import Dependency
from
.directory_dependency
import
DirectoryDependency
from
.directory_dependency
import
DirectoryDependency
from
.file_dependency
import
FileDependency
from
.file_dependency
import
FileDependency
from
.vcs_dependency
import
VCSDependency
from
.vcs_dependency
import
VCSDependency
from
.utils.utils
import
convert_markers
from
.utils.utils
import
create_nested_marker
from
.utils.utils
import
create_nested_marker
AUTHOR_REGEX
=
re
.
compile
(
"(?u)^(?P<name>[- .,
\
w
\
d'’
\"
()]+)(?: <(?P<email>.+?)>)?$"
)
AUTHOR_REGEX
=
re
.
compile
(
"(?u)^(?P<name>[- .,
\
w
\
d'’
\"
()]+)(?: <(?P<email>.+?)>)?$"
)
...
@@ -326,7 +327,14 @@ class Package(object):
...
@@ -326,7 +327,14 @@ class Package(object):
return
dependency
return
dependency
def
to_dependency
(
self
):
def
to_dependency
(
self
):
return
Dependency
(
self
.
name
,
self
.
_version
)
from
.
import
dependency_from_pep_508
name
=
"{} (=={})"
.
format
(
self
.
_name
,
self
.
_version
)
if
not
self
.
marker
.
is_any
():
name
+=
" ; {}"
.
format
(
str
(
self
.
marker
))
return
dependency_from_pep_508
(
name
)
@contextmanager
@contextmanager
def
with_python_versions
(
self
,
python_versions
):
def
with_python_versions
(
self
,
python_versions
):
...
...
tests/puzzle/test_solver.py
View file @
cc715ef8
...
@@ -10,6 +10,7 @@ from poetry.repositories.pool import Pool
...
@@ -10,6 +10,7 @@ from poetry.repositories.pool import Pool
from
poetry.repositories.repository
import
Repository
from
poetry.repositories.repository
import
Repository
from
poetry.puzzle
import
Solver
from
poetry.puzzle
import
Solver
from
poetry.puzzle.exceptions
import
SolverProblemError
from
poetry.puzzle.exceptions
import
SolverProblemError
from
poetry.version.markers
import
parse_marker
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_dependency
from
tests.helpers
import
get_package
from
tests.helpers
import
get_package
...
@@ -1073,3 +1074,33 @@ def test_solver_does_not_trigger_new_resolution_on_duplicate_dependencies_if_onl
...
@@ -1073,3 +1074,33 @@ def test_solver_does_not_trigger_new_resolution_on_duplicate_dependencies_if_onl
'extra == "bar" or extra == "foo"'
,
'extra == "bar" or extra == "foo"'
,
]
]
assert
str
(
ops
[
1
]
.
package
.
marker
)
==
""
assert
str
(
ops
[
1
]
.
package
.
marker
)
==
""
def
test_solver_does_not_raise_conflict_for_locked_conditional_dependencies
(
solver
,
repo
,
package
):
package
.
python_versions
=
"~2.7 || ^3.4"
package
.
add_dependency
(
"A"
,
{
"version"
:
"^1.0"
,
"python"
:
"^3.6"
})
package
.
add_dependency
(
"B"
,
"^1.0"
)
package_a
=
get_package
(
"A"
,
"1.0.0"
)
package_a
.
python_versions
=
">=3.6"
package_a
.
marker
=
parse_marker
(
'python_version >= "3.6" and python_version < "4.0"'
)
package_b
=
get_package
(
"B"
,
"1.0.0"
)
repo
.
add_package
(
package_a
)
repo
.
add_package
(
package_b
)
solver
.
_locked
=
Repository
([
package_a
])
ops
=
solver
.
solve
(
use_latest
=
[
package_b
.
name
])
check_solver_result
(
ops
,
[
{
"job"
:
"install"
,
"package"
:
package_a
},
{
"job"
:
"install"
,
"package"
:
package_b
},
],
)
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