- Move a test from call time to define time
- Add the function name to __all__
- Improve docstring and docs
A few lines are now duplicated (named tuple definition and docstring)
but I think the end result reads better.
In the install and library docs, I changed the text to refer to
packaging instead of distutils. I also checked that the documented
paths correctly reflect what’s really defined in sysconfig; the main
difference with paths defined in distutils.install is that include
directories don’t end with the distribution name anymore (i.e. distutils
uses include/python3.3/spam, sysconfig include/python3.3), I have no
idea why.
This started out as an easy task, just add a section describing this
alternate scheme, but I found a lot of cleanup to do along the way:
- fixed inverted reST targets
- fixed entries for modules (hi abiflags!) or data files
- avoided duplicating the same options listing five or six times
- added missing entries for C headers locations
- added documentation for --install-lib
- fixed a few misuses of the option role (see #9312), but not all (not
worth the time, but will do it in packaging docs)
- fixed some markup
The paths fixes were done with an eye on the source code in the install
command, so they really describe what’s actually done. The situation on
Mac OS X is rather messy: the fix for #8084 touched site and sysconfig,
but distutils doesn’t use these files. I suspect we have a mismatched
stdlib at the moment, and the fix is not even clear (see the bug report
for further discussion).
site.USER_BASE and site.USER_SITE are now fully documented. PEP 370 is
outdated with respects to the Mac framework situation, but the code in
sysconfig and the example in the 3.2 What’s New document helped me find
the right values to document for Mac OS X.
The command-line interface of the site module, partly documented in the
3.2 What’s New, is fully described in the module docs.
The purpose of the usercustomize module is explained in the site docs,
with a gentle introduction in the tutorial (right after the section that
talks about PYTHONSTARTUP; a comment mentions it should be moved from
the tutorial to another file, but that will be another bug).
Various markup and wording improvements were made along the way in the
site module docs. Duplicate and incomplete declarations of environment
variables have also been removed (the original bug report was actually
about these entries :). The site module docs are still a bit messy;
I’ll see about improving them for #11553.
All these sections are copiously interlinked and findable from the doc
indexes.
The changed behavior of sdist in 3.1 broke packaging for projects that
wanted to use a manually-maintained MANIFEST file (instead of having a
MANIFEST.in template and letting distutils generate the MANIFEST).
The fixes that were committed for #8688 (76643c286b9f by Tarek and
d54da9248ed9 by me) did not fix all issues exposed in the bug report,
and also added one problem: the MANIFEST file format gained comments,
but the read_manifest method was not updated to handle (i.e. ignore)
them. This changeset should fix everything; the tests have been
expanded and I successfully tested the 2.7 version with Mercurial, which
suffered from this regression.
I have grouped the versionchanged directives for these bugs in one place
and added micro version numbers to help users know the quirks of the
exact version they’re using.
Initial report, thorough diagnosis and patch by John Dennis, further
work on the patch by Stephen Thorne, and a few edits and additions by
me.
importlib.import_module eschews a number of issues that __import__ has.
Reviewed by Brett Cannon. (The docstring of __import__ was already
updated in 3d490c3a019e, for #7397.)
This function used to live as pipes.quote, where it was undocumented but
used anyway. (An alias still exists for backward compatibility.) The
tests have been moved as is, but the code of the function was changed to
use a regex instead of a loop with string comparisons (at Ian Bicking’s
suggestion). I’m terrible at regexes, so any feedback is welcome.
to get channel binding data for the current SSL session (only the
"tls-unique" channel binding is implemented). This allows the
implementation of certain authentication mechanisms such as SCRAM-SHA-1-PLUS.
Patch by Jacek Konieczny.