Normally an SMTP server will return an error, and smtplib will then issue an
RSET to return the connection to the known starting state. Some servers,
however, disconnect after issuing certain errors. When we issue the RSET,
this would result in raising an SMTPServerDisconnected error, *instead* of
returning the error code the user of the library was expecting. This fix
makes the internal RSET calls ignore the disconnection so that the error code
is returned. The user of the library will then get the SMTPServerDisconnected
error the next time they try to talk to the server.
Patch by Kushal Das.
If the input stream encoding couldn't encode one or more of the
non-ascii characters in the prompt, it would fail, throwing a
UnicodeEncodeError. Now if that happens we re-encoding using the
'replace' error handler.
Patch by Kushal Das.
__file__.
This causes _frozen_importlib to no longer have __file__ set as well
as any frozen module imported using imp.init_frozen() (which is
deprecated).
to parse more than one XML document per pyexpat xmlparser instance.
(Original patches by Hirokazu Yamamoto and Amaury Forgeot d'Arc, with
suggested wording by David Gutteridge)
Previously a non-string, non-regex second argument and missing callable
argument could cause the test to appear to always pass.
Initial patch by Kamilla Holanda.
Closes#21043 by updating the documentation to remove specific CA
organizations and update the text to no longer need to tell you to
download root certificates, but instead use the OS certificates
avaialble through SSLContext.load_default_certs.
Closes#21013 by modfying ssl.create_default_context() to:
* Move the restricted ciphers to only apply when using
ssl.Purpose.CLIENT_AUTH. The major difference between restricted and not
is the lack of RC4 in the restricted. However there are servers that exist
that only expose RC4 still.
* Switches the default protocol to ssl.PROTOCOL_SSLv23 so that the context
will select TLS1.1 or TLS1.2 if it is available.
* Add ssl.OP_NO_SSLv3 by default to continue to block SSL3.0 sockets
* Add ssl.OP_SINGLE_DH_USE and ssl.OP_SINGLE_ECDG_USE to improve the security
of the perfect forward secrecy
* Add ssl.OP_CIPHER_SERVER_PREFERENCE so that when used for a server side
socket the context will prioritize our ciphers which have been carefully
selected to maximize security and performance.
* Documents the failure conditions when a SSL3.0 connection is required so
that end users can more easily determine if they need to unset
ssl.OP_NO_SSLv3.
Closes#20995 by Enabling better security by prioritizing ciphers
such that:
* Prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE)
* Prefer ECDHE over DHE for better performance
* Prefer any AES-GCM over any AES-CBC for better performance and security
* Then Use HIGH cipher suites as a fallback
* Then Use 3DES as fallback which is secure but slow
* Finally use RC4 as a fallback which is problematic but needed for
compatibility some times.
* Disable NULL authentication, NULL encryption, and MD5 MACs for security
reasons
base32, ascii85 and base85 codecs in the base64 module, and delay the
initialization of the unquote_to_bytes() table of the urllib.parse module, to
not waste memory if these modules are not used.
When running external programs such as a C compiler and getting an
error code, distutils only prints the program name. With this change,
one can get the full command line by setting the DISTUTILS_DEBUG
environment variable.
This should have no compatibility issues, unless there are tools
that depend on the exact format of distutils debug messages.
- based on pip and other PyPA tools
- includes references to the new Python Packaging User Guide
where appropriate (and the relevant section is at least
partially filled in)
- started new FAQ sections
- both guides aim to introduce users to basic open source
concepts if they aren't aware of them
- existing guides have been relocated (now linked from the
distutils docs) rather then removed, since there is
some needed material that has yet to be relocated to the
distutils docs as a reference for the legacy formats
Also tweaked the docs a bit to use our standard style for
versionadded/changed. (I'm guessing there are other places
in the multiprocessing docs where similar tweaks should be made.)
I had missed that there was already an entry for the Frozen package change, so
I combined mine with the existing one. Also added the info about the reload
change to the entry for the other changes to reload, but I'm missing an issue
number for the rest of the attribute behavior changes so I left myself an
XXX as a reminder to find it.