55Binary distribution format
66==========================
77
8- The binary distribution format (:term: `wheel <Wheel> `) was originally defined
9- in :pep: `427 `. The current version of the specification is here.
10-
11-
12- Abstract
13- ========
14-
15- This PEP describes a built-package format for Python called "wheel".
8+ This page specifies the binary distribution format for Python packages,
9+ also called the wheel format.
1610
1711A wheel is a ZIP-format archive with a specially formatted file name and
1812the ``.whl `` extension. It contains a single distribution nearly as it
@@ -23,31 +17,6 @@ may be installed by simply unpacking into site-packages with the standard
2317out onto their final paths at any later time.
2418
2519
26- PEP Acceptance
27- ==============
28-
29- This PEP was accepted, and the defined wheel version updated to 1.0, by
30- Nick Coghlan on 16th February, 2013 [1 ]_
31-
32-
33- Rationale
34- =========
35-
36- Python needs a package format that is easier to install than sdist.
37- Python's sdist packages are defined by and require the distutils and
38- setuptools build systems, running arbitrary code to build-and-install,
39- and re-compile, code just so it can be installed into a new
40- virtualenv. This system of conflating build-install is slow, hard to
41- maintain, and hinders innovation in both build systems and installers.
42-
43- Wheel attempts to remedy these problems by providing a simpler
44- interface between the build system and the installer. The wheel
45- binary package format frees installers from having to know about the
46- build system, saves time by amortizing compile time over many
47- installations, and removes the need to install a build system in the
48- target environment.
49-
50-
5120Details
5221=======
5322
@@ -469,20 +438,16 @@ Is it possible to import Python code directly from a wheel file?
469438 aware that many projects will require a failure to be reproduced with
470439 a fully installed package before accepting it as a genuine bug.
471440
472- Changes
473- =======
474-
475- Since :pep: `427 `, this specification has changed as follows:
476441
477- - The rules on escaping in wheel filenames were revised, to bring them into line
478- with what popular tools actually do (February 2021).
442+ History
443+ =======
479444
445+ This specification was originally approved as :pep: `427 `.
480446
481- References
482- ==========
447+ The following changes were applied since the initial version:
483448
484- .. [ 1 ] PEP acceptance
485- (https://mail.python.org/pipermail/python-dev/2013- February/124103.html)
449+ - The rules on escaping in wheel filenames were revised, to bring them
450+ into line with what popular tools actually do ( February 2021).
486451
487452
488453Appendix
@@ -499,9 +464,3 @@ Example urlsafe-base64-nopad implementation::
499464 def urlsafe_b64decode_nopad(data):
500465 pad = b'=' * (4 - (len(data) & 3))
501466 return base64.urlsafe_b64decode(data + pad)
502-
503-
504- Copyright
505- =========
506-
507- This document has been placed into the public domain.
0 commit comments