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
4f215278
Commit
4f215278
authored
Mar 06, 2019
by
Andreas Sodeur
Committed by
Sébastien Eustace
Mar 06, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[724] handle ast.Name values in extras_require (#883)
* fixing #724 * added test for issue 724
parent
3c1957f5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
36 additions
and
0 deletions
+36
-0
poetry/utils/setup_reader.py
+8
-0
tests/utils/fixtures/setups/extras_require_with_vars/setup.py
+11
-0
tests/utils/test_setup_reader.py
+17
-0
No files found.
poetry/utils/setup_reader.py
View file @
4f215278
...
...
@@ -282,6 +282,10 @@ class SetupReader(object):
if
isinstance
(
value
,
ast
.
Dict
):
for
key
,
val
in
zip
(
value
.
keys
,
value
.
values
):
if
isinstance
(
val
,
ast
.
Name
):
val
=
self
.
_find_variable_in_body
(
body
,
val
.
id
)
if
isinstance
(
val
,
ast
.
List
):
extras_require
[
key
.
s
]
=
[
e
.
s
for
e
in
val
.
elts
]
elif
isinstance
(
value
,
ast
.
Name
):
variable
=
self
.
_find_variable_in_body
(
body
,
value
.
id
)
...
...
@@ -290,6 +294,10 @@ class SetupReader(object):
return
extras_require
for
key
,
val
in
zip
(
variable
.
keys
,
variable
.
values
):
if
isinstance
(
val
,
ast
.
Name
):
val
=
self
.
_find_variable_in_body
(
body
,
val
.
id
)
if
isinstance
(
val
,
ast
.
List
):
extras_require
[
key
.
s
]
=
[
e
.
s
for
e
in
val
.
elts
]
return
extras_require
...
...
tests/utils/fixtures/setups/extras_require_with_vars/setup.py
0 → 100644
View file @
4f215278
from
setuptools
import
setup
tests_require
=
[
"pytest"
]
setup
(
name
=
"extras_require_with_vars"
,
version
=
"0.0.1"
,
description
=
"test setup_reader.py"
,
install_requires
=
[],
extras_require
=
{
"test"
:
tests_require
},
)
tests/utils/test_setup_reader.py
View file @
4f215278
...
...
@@ -149,3 +149,20 @@ def test_setup_reader_read_setup_call_in_main(setup):
assert
expected_install_requires
==
result
[
"install_requires"
]
assert
expected_extras_require
==
result
[
"extras_require"
]
assert
expected_python_requires
==
result
[
"python_requires"
]
@pytest.mark.skipif
(
not
PY35
,
reason
=
"AST parsing does not work for Python <3.4"
)
def
test_setup_reader_read_extras_require_with_variables
(
setup
):
result
=
SetupReader
.
read_from_directory
(
setup
(
"extras_require_with_vars"
))
expected_name
=
"extras_require_with_vars"
expected_version
=
"0.0.1"
expected_install_requires
=
[]
expected_extras_require
=
{
"test"
:
[
"pytest"
]}
expected_python_requires
=
None
assert
expected_name
==
result
[
"name"
]
assert
expected_version
==
result
[
"version"
]
assert
expected_install_requires
==
result
[
"install_requires"
]
assert
expected_extras_require
==
result
[
"extras_require"
]
assert
expected_python_requires
==
result
[
"python_requires"
]
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