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
97597ba6
Unverified
Commit
97597ba6
authored
Apr 09, 2018
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix generated setup.py in sdist (install_requires and extras)
parent
09fae426
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
85 additions
and
11 deletions
+85
-11
CHANGELOG.md
+5
-0
poetry/masonry/builders/sdist.py
+35
-3
tests/masonry/builders/test_sdist.py
+45
-8
No files found.
CHANGELOG.md
View file @
97597ba6
...
@@ -12,6 +12,11 @@
...
@@ -12,6 +12,11 @@
-
Improved dependency resolution time by using cache control.
-
Improved dependency resolution time by using cache control.
### Fixed
-
Fixed
`install_requires`
and
`extras`
in generated sdist.
## [0.7.1] - 2018-04-05
## [0.7.1] - 2018-04-05
### Fixed
### Fixed
...
...
poetry/masonry/builders/sdist.py
View file @
97597ba6
from
__future__
import
unicode_literals
from
__future__
import
unicode_literals
import
os
import
os
import
re
import
tarfile
import
tarfile
from
collections
import
defaultdict
from
collections
import
defaultdict
...
@@ -227,18 +228,49 @@ class SdistBuilder(Builder):
...
@@ -227,18 +228,49 @@ class SdistBuilder(Builder):
):
):
main
=
[]
main
=
[]
extras
=
defaultdict
(
list
)
extras
=
defaultdict
(
list
)
req_regex
=
re
.
compile
(
'^(.+)
\
((.+)
\
)$'
)
for
dependency
in
dependencies
:
for
dependency
in
dependencies
:
if
dependency
.
is_optional
():
if
dependency
.
is_optional
():
for
extra_name
,
reqs
in
package
.
extras
.
items
():
for
extra_name
,
reqs
in
package
.
extras
.
items
():
for
req
in
reqs
:
for
req
in
reqs
:
if
req
.
name
==
dependency
.
name
:
if
req
.
name
==
dependency
.
name
:
extras
[
extra_name
]
.
append
(
requirement
=
dependency
.
to_pep_508
(
with_extras
=
False
)
dependency
.
to_pep_508
(
with_extras
=
False
)
if
';'
in
requirement
:
)
requirement
,
conditions
=
requirement
.
split
(
';'
)
requirement
=
requirement
.
strip
()
if
req_regex
.
match
(
requirement
):
requirement
=
req_regex
.
sub
(
'
\\
1
\\
2'
,
requirement
.
strip
())
extras
[
extra_name
+
':'
+
conditions
.
strip
()]
.
append
(
requirement
)
continue
requirement
=
requirement
.
strip
()
if
req_regex
.
match
(
requirement
):
requirement
=
req_regex
.
sub
(
'
\\
1
\\
2'
,
requirement
.
strip
())
extras
[
extra_name
]
.
append
(
requirement
)
continue
continue
requirement
=
dependency
.
to_pep_508
()
requirement
=
dependency
.
to_pep_508
()
if
';'
in
requirement
:
requirement
,
conditions
=
requirement
.
split
(
';'
)
requirement
=
requirement
.
strip
()
if
req_regex
.
match
(
requirement
):
requirement
=
req_regex
.
sub
(
'
\\
1
\\
2'
,
requirement
.
strip
())
extras
[
':'
+
conditions
.
strip
()]
.
append
(
requirement
)
continue
requirement
=
requirement
.
strip
()
if
req_regex
.
match
(
requirement
):
requirement
=
req_regex
.
sub
(
'
\\
1
\\
2'
,
requirement
.
strip
())
main
.
append
(
requirement
)
main
.
append
(
requirement
)
return
main
,
dict
(
extras
)
return
main
,
dict
(
extras
)
...
...
tests/masonry/builders/test_sdist.py
View file @
97597ba6
...
@@ -46,9 +46,9 @@ def test_convert_dependencies():
...
@@ -46,9 +46,9 @@ def test_convert_dependencies():
]
]
)
)
main
=
[
main
=
[
'A
(>=1.0.0.0,<2.0.0.0)
'
,
'A
>=1.0.0.0,<2.0.0.0
'
,
'B
(>=1.0.0.0,<1.1.0.0)
'
,
'B
>=1.0.0.0,<1.1.0.0
'
,
'C
(==1.2.3.0)
'
,
'C
==1.2.3.0
'
,
]
]
extras
=
{}
extras
=
{}
...
@@ -68,11 +68,48 @@ def test_convert_dependencies():
...
@@ -68,11 +68,48 @@ def test_convert_dependencies():
]
]
)
)
main
=
[
main
=
[
'B
(>=1.0.0.0,<1.1.0.0)
'
,
'B
>=1.0.0.0,<1.1.0.0
'
,
'C
(==1.2.3.0)
'
,
'C
==1.2.3.0
'
,
]
]
extras
=
{
extras
=
{
'bar'
:
[
'A (>=1.2.0.0)'
]
'bar'
:
[
'A>=1.2.0.0'
]
}
assert
result
==
(
main
,
extras
)
c
=
get_dependency
(
'C'
,
'1.2.3'
)
c
.
python_versions
=
'~2.7 || ^3.6'
d
=
get_dependency
(
'D'
,
'3.4.5'
,
optional
=
True
)
d
.
python_versions
=
'~2.7 || ^3.4'
package
.
extras
=
{
'baz'
:
[
get_dependency
(
'D'
)]
}
result
=
SdistBuilder
.
convert_dependencies
(
package
,
[
get_dependency
(
'A'
,
'>=1.2'
,
optional
=
True
),
get_dependency
(
'B'
,
'~1.0'
),
c
,
d
]
)
main
=
[
'B>=1.0.0.0,<1.1.0.0'
,
]
extra_python
=
(
':(python_version >= "2.7.0.0" and python_version < "2.8.0.0") '
'or (python_version >= "3.6.0.0" and python_version < "4.0.0.0")'
)
extra_d_dependency
=
(
'baz:(python_version >= "2.7.0.0" and python_version < "2.8.0.0") '
'or (python_version >= "3.4.0.0" and python_version < "4.0.0.0")'
)
extras
=
{
extra_python
:
[
'C==1.2.3.0'
],
extra_d_dependency
:
[
'D==3.4.5.0'
],
}
}
assert
result
==
(
main
,
extras
)
assert
result
==
(
main
,
extras
)
...
@@ -94,7 +131,7 @@ def test_make_setup():
...
@@ -94,7 +131,7 @@ def test_make_setup():
'my_package.sub_pkg2'
'my_package.sub_pkg2'
]
]
assert
ns
[
'install_requires'
]
==
[
assert
ns
[
'install_requires'
]
==
[
'cleo
(>=0.6.0.0,<0.7.0.0)
'
'cleo
>=0.6.0.0,<0.7.0.0
'
]
]
assert
ns
[
'entry_points'
]
==
{
assert
ns
[
'entry_points'
]
==
{
'console_scripts'
:
[
'console_scripts'
:
[
...
@@ -104,7 +141,7 @@ def test_make_setup():
...
@@ -104,7 +141,7 @@ def test_make_setup():
}
}
assert
ns
[
'extras_require'
]
==
{
assert
ns
[
'extras_require'
]
==
{
'time'
:
[
'time'
:
[
'pendulum
(>=1.4.0.0,<2.0.0.0)
'
'pendulum
>=1.4.0.0,<2.0.0.0
'
]
]
}
}
...
...
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