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
b4f9e3fc
Unverified
Commit
b4f9e3fc
authored
Apr 07, 2019
by
Sébastien Eustace
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add prepare_metadata_for_build_wheel() in build api
parent
17a5df2f
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
92 additions
and
0 deletions
+92
-0
poetry/masonry/api.py
+20
-0
tests/masonry/test_api.py
+72
-0
No files found.
poetry/masonry/api.py
View file @
b4f9e3fc
...
@@ -31,6 +31,26 @@ def get_requires_for_build_wheel(config_settings=None):
...
@@ -31,6 +31,26 @@ def get_requires_for_build_wheel(config_settings=None):
get_requires_for_build_sdist
=
get_requires_for_build_wheel
get_requires_for_build_sdist
=
get_requires_for_build_wheel
def
prepare_metadata_for_build_wheel
(
metadata_directory
,
config_settings
=
None
):
poetry
=
Poetry
.
create
(
"."
)
builder
=
WheelBuilder
(
poetry
,
SystemEnv
(
Path
(
sys
.
prefix
)),
NullIO
())
dist_info
=
Path
(
metadata_directory
,
builder
.
dist_info
)
dist_info
.
mkdir
()
if
"scripts"
in
poetry
.
local_config
or
"plugins"
in
poetry
.
local_config
:
with
(
dist_info
/
"entry_points.txt"
)
.
open
(
"w"
)
as
f
:
builder
.
_write_entry_points
(
f
)
with
(
dist_info
/
"WHEEL"
)
.
open
(
"w"
)
as
f
:
builder
.
_write_wheel_file
(
f
)
with
(
dist_info
/
"METADATA"
)
.
open
(
"w"
)
as
f
:
builder
.
_write_metadata_file
(
f
)
return
dist_info
.
name
def
build_wheel
(
wheel_directory
,
config_settings
=
None
,
metadata_directory
=
None
):
def
build_wheel
(
wheel_directory
,
config_settings
=
None
,
metadata_directory
=
None
):
"""Builds a wheel, places it in wheel_directory"""
"""Builds a wheel, places it in wheel_directory"""
poetry
=
Poetry
.
create
(
"."
)
poetry
=
Poetry
.
create
(
"."
)
...
...
tests/masonry/test_api.py
View file @
b4f9e3fc
# -*- coding: utf-8 -*-
from
__future__
import
unicode_literals
import
os
import
os
import
tarfile
import
tarfile
import
zipfile
import
zipfile
from
contextlib
import
contextmanager
from
contextlib
import
contextmanager
from
poetry
import
__version__
from
poetry.masonry
import
api
from
poetry.masonry
import
api
from
poetry.utils._compat
import
Path
from
poetry.utils._compat
import
decode
from
poetry.utils.helpers
import
temporary_directory
from
poetry.utils.helpers
import
temporary_directory
...
@@ -53,3 +59,69 @@ def test_build_sdist():
...
@@ -53,3 +59,69 @@ def test_build_sdist():
namelist
=
tar
.
getnames
()
namelist
=
tar
.
getnames
()
assert
"my-package-1.2.3/LICENSE"
in
namelist
assert
"my-package-1.2.3/LICENSE"
in
namelist
def
test_prepare_metadata_for_build_wheel
():
entry_points
=
"""
\
[console_scripts]
extra-script=my_package.extra:main[time]
my-2nd-script=my_package:main2
my-script=my_package:main
"""
wheel_data
=
"""
\
Wheel-Version: 1.0
Generator: poetry {}
Root-Is-Purelib: true
Tag: py3-none-any
"""
.
format
(
__version__
)
metadata
=
"""
\
Metadata-Version: 2.1
Name: my-package
Version: 1.2.3
Summary: Some description.
Home-page: https://poetry.eustace.io/
License: MIT
Keywords: packaging,dependency,poetry
Author: Sébastien Eustace
Author-email: sebastien@eustace.io
Requires-Python: >=3.6,<4.0
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Provides-Extra: time
Requires-Dist: cachy[msgpack] (>=0.2.0,<0.3.0)
Requires-Dist: cleo (>=0.6,<0.7)
Requires-Dist: pendulum (>=1.4,<2.0); extra == "time"
Project-URL: Documentation, https://poetry.eustace.io/docs
Project-URL: Repository, https://github.com/sdispater/poetry
Description-Content-Type: text/x-rst
My Package
==========
"""
with
temporary_directory
()
as
tmp_dir
,
cwd
(
os
.
path
.
join
(
fixtures
,
"complete"
)):
dirname
=
api
.
prepare_metadata_for_build_wheel
(
tmp_dir
)
assert
"my_package-1.2.3.dist-info"
==
dirname
dist_info
=
Path
(
tmp_dir
,
dirname
)
assert
(
dist_info
/
"entry_points.txt"
)
.
exists
()
assert
(
dist_info
/
"WHEEL"
)
.
exists
()
assert
(
dist_info
/
"METADATA"
)
.
exists
()
with
(
dist_info
/
"entry_points.txt"
)
.
open
()
as
f
:
assert
entry_points
==
decode
(
f
.
read
())
with
(
dist_info
/
"WHEEL"
)
.
open
()
as
f
:
assert
wheel_data
==
decode
(
f
.
read
())
with
(
dist_info
/
"METADATA"
)
.
open
()
as
f
:
assert
metadata
==
decode
(
f
.
read
())
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