summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bootstrap.egg-info/entry_points.txt1
-rw-r--r--setuptools/command/editable_wheel.py48
2 files changed, 17 insertions, 32 deletions
diff --git a/bootstrap.egg-info/entry_points.txt b/bootstrap.egg-info/entry_points.txt
index c00d1d3a..a21ca227 100644
--- a/bootstrap.egg-info/entry_points.txt
+++ b/bootstrap.egg-info/entry_points.txt
@@ -2,6 +2,7 @@
egg_info = setuptools.command.egg_info:egg_info
build_py = setuptools.command.build_py:build_py
sdist = setuptools.command.sdist:sdist
+editable_wheel = setuptools.command.editable_wheel:editable_wheel
[distutils.setup_keywords]
include_package_data = setuptools.dist:assert_bool
diff --git a/setuptools/command/editable_wheel.py b/setuptools/command/editable_wheel.py
index 94284d55..f862e6a0 100644
--- a/setuptools/command/editable_wheel.py
+++ b/setuptools/command/editable_wheel.py
@@ -12,13 +12,21 @@ import time
from pathlib import Path
from distutils.core import Command
-from distutils.errors import DistutilsError
from zipfile import ZIP_DEFLATED, ZipFile, ZipInfo
import pkg_resources
+from setuptools import __version__
SOURCE_EPOCH_ZIP = 499162860
+WHEEL_FILE = f"""\
+Wheel-Version: 1.0
+Generator: setuptools ({__version__})
+Root-Is-Purelib: false
+Tag: py3-none-any
+Tag: ed-none-any
+"""
+
class editable_wheel(Command):
"""Build 'editable' wheel for development"""
@@ -38,20 +46,10 @@ class editable_wheel(Command):
self.dist_dir = None
def finalize_options(self):
- # is this part of the 'develop' command needed?
- ei = self.get_finalized_command("egg_info")
- if ei.broken_egg_info:
- template = "Please rename %r to %r before using 'develop'"
- args = ei.egg_info, ei.broken_egg_info
- raise DistutilsError(template % args)
- self.args = [ei.egg_name]
-
- # the .pth file should point to target
- self.egg_base = ei.egg_base
+ self.dist_info = self.get_finalized_command("dist_info")
+ self.egg_base = self.dist_info.egg_base
+ self.dist_info_dir = Path(self.dist_info.dist_info_dir)
self.target = pkg_resources.normalize_path(self.egg_base)
- self.dist_info_dir = Path(
- (ei.egg_info[: -len(".egg-info")] + ".dist-info").rpartition("/")[-1]
- )
def build_editable_wheel(self):
if getattr(self.distribution, "use_2to3", False):
@@ -66,10 +64,6 @@ class editable_wheel(Command):
self.reinitialize_command("build_ext", inplace=1)
self.run_command("build_ext")
- # now build the wheel
- # with the dist-info directory and .pth from 'editables' library
- # ...
-
mtime = time.gmtime(SOURCE_EPOCH_ZIP)[:6]
dist_dir = Path(self.dist_dir)
@@ -80,8 +74,6 @@ class editable_wheel(Command):
wheel_name = f"{fullname}-ed.py3-none-any.whl"
wheel_path = dist_dir / wheel_name
- wheelmeta_builder(dist_dir / dist_info_dir / "WHEEL")
-
if wheel_path.exists():
wheel_path.unlink()
@@ -96,6 +88,10 @@ class editable_wheel(Command):
info = ZipInfo(str(dist_info_dir / f), mtime)
archive.writestr(info, metadata.read())
+ # Add WHEEL file
+ info = ZipInfo(str(dist_info_dir / "WHEEL"), mtime)
+ archive.writestr(info, WHEEL_FILE)
+
add_manifest(archive, dist_info_dir)
@@ -127,15 +123,3 @@ def add_manifest(archive, dist_info_dir):
zipfile.ZipInfo(str(record_path), time.gmtime(SOURCE_EPOCH_ZIP)[:6]), RECORD
)
archive.close()
-
-
-def wheelmeta_builder(target):
- with open(target, "w+") as f:
- f.write(
- """Wheel-Version: 1.0
-Generator: setuptools_pep660 (0.1)
-Root-Is-Purelib: false
-Tag: py3-none-any
-Tag: ed-none-any
-"""
- )