From e0db3313f3e36805828557bdc102fbcebc0d75ff Mon Sep 17 00:00:00 2001 From: DongHun Kwak Date: Wed, 26 Jan 2022 08:27:46 +0900 Subject: [PATCH] Imported Upstream version 3.9.5 --- Doc/c-api/contextvars.rst | 13 +- Doc/data/python3.9.abi | 13843 ++++++++++++++++ Doc/extending/extending.rst | 2 +- Doc/faq/programming.rst | 68 +- Doc/faq/windows.rst | 8 +- Doc/howto/descriptor.rst | 34 +- Doc/howto/logging-cookbook.rst | 12 +- Doc/includes/sqlite3/execute_1.py | 21 +- Doc/library/argparse.rst | 4 +- Doc/library/array.rst | 3 +- Doc/library/asyncio-subprocess.rst | 2 +- Doc/library/audit_events.rst | 2 +- Doc/library/codecs.rst | 13 +- Doc/library/contextlib.rst | 2 +- Doc/library/copy.rst | 2 +- Doc/library/ctypes.rst | 4 +- Doc/library/dataclasses.rst | 4 +- Doc/library/email.compat32-message.rst | 2 +- Doc/library/email.rst | 2 +- Doc/library/exceptions.rst | 4 +- Doc/library/functions.rst | 2 +- Doc/library/hashlib.rst | 4 +- Doc/library/http.server.rst | 4 +- Doc/library/idle.rst | 2 +- Doc/library/importlib.metadata.rst | 2 + Doc/library/ipaddress.rst | 19 +- Doc/library/multiprocessing.rst | 2 +- Doc/library/operator.rst | 7 +- Doc/library/os.path.rst | 3 +- Doc/library/os.rst | 7 +- Doc/library/pathlib.rst | 21 +- Doc/library/random.rst | 2 +- Doc/library/socket.rst | 49 +- Doc/library/sqlite3.rst | 71 +- Doc/library/ssl.rst | 13 + Doc/library/stdtypes.rst | 3 + Doc/library/sys.rst | 11 +- Doc/library/types.rst | 2 +- Doc/library/typing.rst | 9 +- Doc/library/unittest.mock-examples.rst | 2 +- Doc/library/unittest.rst | 5 +- Doc/library/urllib.parse.rst | 13 + Doc/library/weakref.rst | 4 +- Doc/reference/compound_stmts.rst | 11 +- Doc/reference/datamodel.rst | 8 +- Doc/reference/expressions.rst | 68 +- Doc/reference/simple_stmts.rst | 11 +- Doc/tools/susp-ignored.csv | 8 +- Doc/tutorial/errors.rst | 2 +- Doc/tutorial/venv.rst | 15 +- Doc/using/windows.rst | 2 +- Doc/whatsnew/3.9.rst | 24 +- Include/patchlevel.h | 4 +- Include/pyctype.h | 6 + Lib/ctypes/test/test_unicode.py | 8 + Lib/dataclasses.py | 6 +- Lib/ensurepip/__init__.py | 6 +- ...ne-any.whl => pip-21.1.1-py3-none-any.whl} | Bin 1503696 -> 1547644 bytes ...whl => setuptools-56.0.0-py3-none-any.whl} | Bin 789827 -> 784941 bytes Lib/enum.py | 31 +- Lib/idlelib/colorizer.py | 36 +- Lib/idlelib/config_key.py | 2 + Lib/idlelib/query.py | 10 +- Lib/idlelib/searchbase.py | 2 + Lib/importlib/_bootstrap_external.py | 108 +- Lib/ipaddress.py | 5 + Lib/nturl2path.py | 10 +- Lib/pathlib.py | 23 +- Lib/platform.py | 21 +- Lib/pydoc_data/topics.py | 198 +- Lib/random.py | 10 +- Lib/smtplib.py | 4 +- Lib/test/allsans.pem | 243 +- Lib/test/capath/b1930218.0 | 40 +- Lib/test/capath/ceff1710.0 | 40 +- Lib/test/idnsans.pem | 232 +- Lib/test/keycert2.pem | 124 +- Lib/test/keycert3.pem | 224 +- Lib/test/keycert4.pem | 224 +- Lib/test/keycertecc.pem | 106 +- Lib/test/make_ssl_certs.py | 58 +- Lib/test/nosan.pem | 130 + Lib/test/pycacert.pem | 146 +- Lib/test/pycakey.pem | 76 +- Lib/test/revocation.crl | 20 +- Lib/test/test_asyncio/utils.py | 2 +- Lib/test/test_bytes.py | 10 + Lib/test/test_collections.py | 8 +- Lib/test/test_dataclasses.py | 42 + Lib/test/test_enum.py | 32 + Lib/test/test_import/__init__.py | 14 +- Lib/test/test_importlib/test_spec.py | 19 +- Lib/test/test_importlib/test_windows.py | 45 + Lib/test/test_ipaddress.py | 21 +- Lib/test/test_logging.py | 9 +- Lib/test/test_pdb.py | 18 +- Lib/test/test_site.py | 50 +- Lib/test/test_ssl.py | 55 +- Lib/test/test_urllib.py | 18 + Lib/test/test_urlparse.py | 33 + Lib/tkinter/filedialog.py | 2 + Lib/tkinter/simpledialog.py | 12 + Lib/turtle.py | 22 +- Lib/turtledemo/two_canvases.py | 2 +- Lib/urllib/parse.py | 7 + Lib/urllib/request.py | 2 +- Lib/zoneinfo/_tzpath.py | 2 +- Mac/BuildScript/build-installer.py | 40 +- Mac/BuildScript/resources/ReadMe.rtf | 54 +- Mac/Makefile.in | 21 + Mac/README.rst | 6 + Makefile.pre.in | 20 + Misc/ACKS | 9 +- Misc/NEWS | 201 +- Modules/_ctypes/cfield.c | 3 +- Modules/_hashopenssl.c | 15 +- Modules/_sqlite/connection.c | 4 + Modules/_sqlite/module.c | 10 +- Modules/_ssl.c | 82 +- Modules/_ssl_data_111.h | 6525 ++++++++ Modules/_ssl_data_300.h | 8435 ++++++++++ Modules/_xxsubinterpretersmodule.c | 2 +- Modules/clinic/posixmodule.c.h | 47 +- Modules/posixmodule.c | 72 +- Modules/socketmodule.c | 2 +- Modules/zlibmodule.c | 8 +- Objects/bytearrayobject.c | 6 +- Objects/frameobject.c | 2 +- Objects/genobject.c | 14 +- PCbuild/find_python.bat | 4 +- PCbuild/get_externals.bat | 4 +- PCbuild/python.props | 4 +- PCbuild/readme.txt | 2 +- Parser/pegen/pegen.c | 5 +- Python/importlib_external.h | 5464 +++--- Python/traceback.c | 2 +- README.rst | 2 +- Tools/msi/purge.py | 3 + Tools/ssl/make_ssl_data.py | 194 +- Tools/ssl/multissltests.py | 26 +- configure | 15 +- configure.ac | 12 +- setup.py | 15 +- 143 files changed, 34277 insertions(+), 4082 deletions(-) create mode 100644 Doc/data/python3.9.abi rename Lib/ensurepip/_bundled/{pip-20.2.3-py2.py3-none-any.whl => pip-21.1.1-py3-none-any.whl} (51%) rename Lib/ensurepip/_bundled/{setuptools-49.2.1-py3-none-any.whl => setuptools-56.0.0-py3-none-any.whl} (66%) create mode 100644 Lib/test/nosan.pem create mode 100644 Modules/_ssl_data_111.h create mode 100644 Modules/_ssl_data_300.h diff --git a/Doc/c-api/contextvars.rst b/Doc/c-api/contextvars.rst index 9c088814..d970f544 100644 --- a/Doc/c-api/contextvars.rst +++ b/Doc/c-api/contextvars.rst @@ -107,9 +107,9 @@ Context variable functions: .. c:function:: PyObject *PyContextVar_New(const char *name, PyObject *def) Create a new ``ContextVar`` object. The *name* parameter is used - for introspection and debug purposes. The *def* parameter may optionally - specify the default value for the context variable. If an error has - occurred, this function returns ``NULL``. + for introspection and debug purposes. The *def* parameter specifies + a default value for the context variable, or ``NULL`` for no default. + If an error has occurred, this function returns ``NULL``. .. c:function:: int PyContextVar_Get(PyObject *var, PyObject *default_value, PyObject **value) @@ -124,13 +124,12 @@ Context variable functions: - the default value of *var*, if not ``NULL``; - ``NULL`` - If the value was found, the function will create a new reference to it. + Except for ``NULL``, the function returns a new reference. .. c:function:: PyObject *PyContextVar_Set(PyObject *var, PyObject *value) - Set the value of *var* to *value* in the current context. Returns a - pointer to a :c:type:`PyObject` object, or ``NULL`` if an error - has occurred. + Set the value of *var* to *value* in the current context. Returns + a new token object for this change, or ``NULL`` if an error has occurred. .. c:function:: int PyContextVar_Reset(PyObject *var, PyObject *token) diff --git a/Doc/data/python3.9.abi b/Doc/data/python3.9.abi new file mode 100644 index 00000000..228fefcd --- /dev/null +++ b/Doc/data/python3.9.abi @@ -0,0 +1,13843 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Doc/extending/extending.rst b/Doc/extending/extending.rst index 25dc2934..bc85a05f 100644 --- a/Doc/extending/extending.rst +++ b/Doc/extending/extending.rst @@ -410,7 +410,7 @@ optionally followed by an import of the module:: /* Optionally import the module; alternatively, import can be deferred until the embedded script imports it. */ - pmodule = PyImport_ImportModule("spam"); + PyObject *pmodule = PyImport_ImportModule("spam"); if (!pmodule) { PyErr_Print(); fprintf(stderr, "Error: could not import module 'spam'\n"); diff --git a/Doc/faq/programming.rst b/Doc/faq/programming.rst index fd59f680..f0784f07 100644 --- a/Doc/faq/programming.rst +++ b/Doc/faq/programming.rst @@ -29,26 +29,26 @@ Python distribution (normally available as Tools/scripts/idle), includes a graphical debugger. PythonWin is a Python IDE that includes a GUI debugger based on pdb. The -Pythonwin debugger colors breakpoints and has quite a few cool features such as -debugging non-Pythonwin programs. Pythonwin is available as part of the `Python -for Windows Extensions `__ project and -as a part of the ActivePython distribution (see -https://www.activestate.com/activepython\ ). +PythonWin debugger colors breakpoints and has quite a few cool features such as +debugging non-PythonWin programs. PythonWin is available as part of +`pywin32 `_ project and +as a part of the +`ActivePython `_ distribution. `Eric `_ is an IDE built on PyQt and the Scintilla editing component. -Pydb is a version of the standard Python debugger pdb, modified for use with DDD -(Data Display Debugger), a popular graphical debugger front end. Pydb can be -found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at -https://www.gnu.org/software/ddd. +`trepan3k `_ is a gdb-like debugger. + +`Visual Studio Code `_ is an IDE with debugging +tools that integrates with version-control software. There are a number of commercial Python IDEs that include graphical debuggers. They include: -* Wing IDE (https://wingware.com/) -* Komodo IDE (https://komodoide.com/) -* PyCharm (https://www.jetbrains.com/pycharm/) +* `Wing IDE `_ +* `Komodo IDE `_ +* `PyCharm `_ Are there tools to help find bugs or perform static analysis? @@ -90,11 +90,12 @@ then compiles the generated C code and links it with the rest of the Python interpreter to form a self-contained binary which acts exactly like your script. Obviously, freeze requires a C compiler. There are several other utilities -which don't. One is Thomas Heller's py2exe (Windows only) at - - http://www.py2exe.org/ +which don't: -Another tool is Anthony Tuininga's `cx_Freeze `_. +* `py2exe `_ for Windows binaries +* `py2app `_ for Mac OS X binaries +* `cx_Freeze `_ for cross-platform + binaries Are there coding standards or a style guide for Python programs? @@ -1420,6 +1421,41 @@ single class, e.g. ``isinstance(obj, (class1, class2, ...))``, and can also check whether an object is one of Python's built-in types, e.g. ``isinstance(obj, str)`` or ``isinstance(obj, (int, float, complex))``. +Note that :func:`isinstance` also checks for virtual inheritance from an +:term:`abstract base class`. So, the test will return ``True`` for a +registered class even if hasn't directly or indirectly inherited from it. To +test for "true inheritance", scan the :term:`MRO` of the class: + +.. testcode:: + + from collections.abc import Mapping + + class P: + pass + + class C(P): + pass + + Mapping.register(P) + +.. doctest:: + + >>> c = C() + >>> isinstance(c, C) # direct + True + >>> isinstance(c, P) # indirect + True + >>> isinstance(c, Mapping) # virtual + True + + # Actual inheritance chain + >>> type(c).__mro__ + (, , ) + + # Test for "true inheritance" + >>> Mapping in type(c).__mro__ + False + Note that most programs do not use :func:`isinstance` on user-defined classes very often. If you are developing the classes yourself, a more proper object-oriented style is to define methods on the classes that encapsulate a diff --git a/Doc/faq/windows.rst b/Doc/faq/windows.rst index c8e9c5fb..186dac2e 100644 --- a/Doc/faq/windows.rst +++ b/Doc/faq/windows.rst @@ -140,11 +140,9 @@ offender. How do I make an executable from a Python script? ------------------------------------------------- -See `cx_Freeze `_ for a distutils extension -that allows you to create console and GUI executables from Python code. -`py2exe `_, the most popular extension for building -Python 2.x-based executables, does not yet support Python 3 but a version that -does is in development. +See `cx_Freeze `_ and +`py2exe `_, both are distutils extensions +that allow you to create console and GUI executables from Python code. Is a ``*.pyd`` file the same as a DLL? diff --git a/Doc/howto/descriptor.rst b/Doc/howto/descriptor.rst index 93dd3544..9f0dd2f1 100644 --- a/Doc/howto/descriptor.rst +++ b/Doc/howto/descriptor.rst @@ -953,6 +953,20 @@ The documentation shows a typical use to define a managed attribute ``x``: def delx(self): del self.__x x = property(getx, setx, delx, "I'm the 'x' property.") +.. doctest:: + :hide: + + >>> C.x.__doc__ + "I'm the 'x' property." + >>> c.x = 2.71828 + >>> c.x + 2.71828 + >>> del c.x + >>> c.x + Traceback (most recent call last): + ... + AttributeError: 'C' object has no attribute '_C__x' + To see how :func:`property` is implemented in terms of the descriptor protocol, here is a pure Python equivalent: @@ -1319,7 +1333,7 @@ Using the non-data descriptor protocol, a pure Python version of def __get__(self, obj, cls=None): if cls is None: cls = type(obj) - if hasattr(obj, '__get__'): + if hasattr(type(self.f), '__get__'): return self.f.__get__(cls) return MethodType(self.f, cls) @@ -1332,6 +1346,12 @@ Using the non-data descriptor protocol, a pure Python version of def cm(cls, x, y): return (cls, x, y) + @ClassMethod + @property + def __doc__(cls): + return f'A doc for {cls.__name__!r}' + + .. doctest:: :hide: @@ -1343,9 +1363,15 @@ Using the non-data descriptor protocol, a pure Python version of >>> t.cm(11, 22) (, 11, 22) -The code path for ``hasattr(obj, '__get__')`` was added in Python 3.9 and -makes it possible for :func:`classmethod` to support chained decorators. -For example, a classmethod and property could be chained together: + # Check the alternate path for chained descriptors + >>> T.__doc__ + "A doc for 'T'" + + +The code path for ``hasattr(type(self.f), '__get__')`` was added in +Python 3.9 and makes it possible for :func:`classmethod` to support +chained decorators. For example, a classmethod and property could be +chained together: .. testcode:: diff --git a/Doc/howto/logging-cookbook.rst b/Doc/howto/logging-cookbook.rst index de0f8345..5777a4c5 100644 --- a/Doc/howto/logging-cookbook.rst +++ b/Doc/howto/logging-cookbook.rst @@ -1188,7 +1188,7 @@ to the above, as in the following example:: class StyleAdapter(logging.LoggerAdapter): def __init__(self, logger, extra=None): - super(StyleAdapter, self).__init__(logger, extra or {}) + super().__init__(logger, extra or {}) def log(self, level, msg, /, *args, **kwargs): if self.isEnabledFor(level): @@ -1783,7 +1783,7 @@ as in the following complete example:: return tuple(o) elif isinstance(o, unicode): return o.encode('unicode_escape').decode('ascii') - return super(Encoder, self).default(o) + return super().default(o) class StructuredMessage: def __init__(self, message, /, **kwargs): @@ -2175,11 +2175,11 @@ class, as shown in the following example:: """ Format an exception so that it prints on a single line. """ - result = super(OneLineExceptionFormatter, self).formatException(exc_info) + result = super().formatException(exc_info) return repr(result) # or format into one line however you want to def format(self, record): - s = super(OneLineExceptionFormatter, self).format(record) + s = super().format(record) if record.exc_text: s = s.replace('\n', '') + '|' return s @@ -2813,7 +2813,7 @@ refer to the comments in the code snippet for more detailed information. # class QtHandler(logging.Handler): def __init__(self, slotfunc, *args, **kwargs): - super(QtHandler, self).__init__(*args, **kwargs) + super().__init__(*args, **kwargs) self.signaller = Signaller() self.signaller.signal.connect(slotfunc) @@ -2883,7 +2883,7 @@ refer to the comments in the code snippet for more detailed information. } def __init__(self, app): - super(Window, self).__init__() + super().__init__() self.app = app self.textedit = te = QtWidgets.QPlainTextEdit(self) # Set whatever the default monospace font is for the platform diff --git a/Doc/includes/sqlite3/execute_1.py b/Doc/includes/sqlite3/execute_1.py index 3466b126..42aad4d5 100644 --- a/Doc/includes/sqlite3/execute_1.py +++ b/Doc/includes/sqlite3/execute_1.py @@ -2,17 +2,22 @@ import sqlite3 con = sqlite3.connect(":memory:") cur = con.cursor() -cur.execute("create table people (name_last, age)") - -who = "Yeltsin" -age = 72 +cur.execute("create table lang (lang_name, lang_age)") # This is the qmark style: -cur.execute("insert into people values (?, ?)", (who, age)) +cur.execute("insert into lang values (?, ?)", ("C", 49)) -# And this is the named style: -cur.execute("select * from people where name_last=:who and age=:age", {"who": who, "age": age}) +# The qmark style used with executemany(): +lang_list = [ + ("Fortran", 64), + ("Python", 30), + ("Go", 11), +] +cur.executemany("insert into lang values (?, ?)", lang_list) -print(cur.fetchone()) +# And this is the named style: +cur.execute("select * from lang where lang_name=:name and lang_age=:age", + {"name": "C", "age": 49}) +print(cur.fetchall()) con.close() diff --git a/Doc/library/argparse.rst b/Doc/library/argparse.rst index 4542961d..aa4713e7 100644 --- a/Doc/library/argparse.rst +++ b/Doc/library/argparse.rst @@ -659,7 +659,7 @@ exit_on_error Normally, when you pass an invalid argument list to the :meth:`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, it will exit with error info. -If the user would like catch errors manually, the feature can be enable by setting +If the user would like to catch errors manually, the feature can be enabled by setting ``exit_on_error`` to ``False``:: >>> parser = argparse.ArgumentParser(exit_on_error=False) @@ -863,7 +863,7 @@ An example of a custom action:: ... def __init__(self, option_strings, dest, nargs=None, **kwargs): ... if nargs is not None: ... raise ValueError("nargs not allowed") - ... super(FooAction, self).__init__(option_strings, dest, **kwargs) + ... super().__init__(option_strings, dest, **kwargs) ... def __call__(self, parser, namespace, values, option_string=None): ... print('%r %r %r' % (namespace, values, option_string)) ... setattr(namespace, self.dest, values) diff --git a/Doc/library/array.rst b/Doc/library/array.rst index 78020738..f2f7894e 100644 --- a/Doc/library/array.rst +++ b/Doc/library/array.rst @@ -160,8 +160,7 @@ The following data items and methods are also supported: Read *n* items (as machine values) from the :term:`file object` *f* and append them to the end of the array. If less than *n* items are available, :exc:`EOFError` is raised, but the items that were available are still - inserted into the array. *f* must be a real built-in file object; something - else with a :meth:`read` method won't do. + inserted into the array. .. method:: array.fromlist(list) diff --git a/Doc/library/asyncio-subprocess.rst b/Doc/library/asyncio-subprocess.rst index fb98552c..6ba24249 100644 --- a/Doc/library/asyncio-subprocess.rst +++ b/Doc/library/asyncio-subprocess.rst @@ -251,7 +251,7 @@ their completion. .. method:: kill() - Kill the child. + Kill the child process. On POSIX systems this method sends :py:data:`SIGKILL` to the child process. diff --git a/Doc/library/audit_events.rst b/Doc/library/audit_events.rst index 367d56e4..8227a795 100644 --- a/Doc/library/audit_events.rst +++ b/Doc/library/audit_events.rst @@ -7,7 +7,7 @@ Audit events table This table contains all events raised by :func:`sys.audit` or :c:func:`PySys_Audit` calls throughout the CPython runtime and the -standard library. These calls were added in 3.8.0 or later. +standard library. These calls were added in 3.8.0 or later (see :pep:`578`). See :func:`sys.addaudithook` and :c:func:`PySys_AddAuditHook` for information on handling these events. diff --git a/Doc/library/codecs.rst b/Doc/library/codecs.rst index 6eb907af..3338545e 100644 --- a/Doc/library/codecs.rst +++ b/Doc/library/codecs.rst @@ -159,9 +159,13 @@ function: .. function:: register(search_function) Register a codec search function. Search functions are expected to take one - argument, being the encoding name in all lower case letters, and return a - :class:`CodecInfo` object. In case a search function cannot find - a given encoding, it should return ``None``. + argument, being the encoding name in all lower case letters with hyphens + and spaces converted to underscores, and return a :class:`CodecInfo` object. + In case a search function cannot find a given encoding, it should return + ``None``. + + .. versionchanged:: 3.9 + Hyphens and spaces are converted to underscore. .. note:: @@ -1414,6 +1418,9 @@ Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)). It builds upon the ``punycode`` encoding and :mod:`stringprep`. +If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the +third-party `idna module _`. + These RFCs together define a protocol to support non-ASCII characters in domain names. A domain name containing non-ASCII characters (such as ``www.Alliancefrançaise.nu``) is converted into an ASCII-compatible encoding diff --git a/Doc/library/contextlib.rst b/Doc/library/contextlib.rst index 0aa4ad76..4c6c5207 100644 --- a/Doc/library/contextlib.rst +++ b/Doc/library/contextlib.rst @@ -638,7 +638,7 @@ even further by means of a small helper class:: class Callback(ExitStack): def __init__(self, callback, /, *args, **kwds): - super(Callback, self).__init__() + super().__init__() self.callback(callback, *args, **kwds) def cancel(self): diff --git a/Doc/library/copy.rst b/Doc/library/copy.rst index a8e8bfb1..0eb5a793 100644 --- a/Doc/library/copy.rst +++ b/Doc/library/copy.rst @@ -27,7 +27,7 @@ Interface summary: Return a deep copy of *x*. -.. exception:: error +.. exception:: Error Raised for module specific errors. diff --git a/Doc/library/ctypes.rst b/Doc/library/ctypes.rst index 73131487..fd6422cc 100644 --- a/Doc/library/ctypes.rst +++ b/Doc/library/ctypes.rst @@ -919,9 +919,9 @@ Let's try it. We create two instances of ``cell``, and let them point to each other, and finally follow the pointer chain a few times:: >>> c1 = cell() - >>> c1.name = "foo" + >>> c1.name = b"foo" >>> c2 = cell() - >>> c2.name = "bar" + >>> c2.name = b"bar" >>> c1.next = pointer(c2) >>> c2.next = pointer(c1) >>> p = c1 diff --git a/Doc/library/dataclasses.rst b/Doc/library/dataclasses.rst index 133cc0a0..87111915 100644 --- a/Doc/library/dataclasses.rst +++ b/Doc/library/dataclasses.rst @@ -33,7 +33,7 @@ using :pep:`526` type annotations. For example this code:: Will add, among other things, a :meth:`__init__` that looks like:: - def __init__(self, name: str, unit_price: float, quantity_on_hand: int=0): + def __init__(self, name: str, unit_price: float, quantity_on_hand: int = 0): self.name = name self.unit_price = unit_price self.quantity_on_hand = quantity_on_hand @@ -592,4 +592,4 @@ Exceptions Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` is called on a dataclass which was defined with - ``frozen=True``. + ``frozen=True``. It is a subclass of :exc:`AttributeError`. diff --git a/Doc/library/email.compat32-message.rst b/Doc/library/email.compat32-message.rst index 745b3a6a..c68e773b 100644 --- a/Doc/library/email.compat32-message.rst +++ b/Doc/library/email.compat32-message.rst @@ -23,7 +23,7 @@ policy :attr:`~email.policy.Compat32`. If you are going to use another policy, you should be using the :class:`~email.message.EmailMessage` class instead. An email message consists of *headers* and a *payload*. Headers must be -:rfc:`5233` style names and values, where the field name and value are +:rfc:`5322` style names and values, where the field name and value are separated by a colon. The colon is not part of either the field name or the field value. The payload may be a simple text message, or a binary object, or a structured sequence of sub-messages each with their own set of headers and diff --git a/Doc/library/email.rst b/Doc/library/email.rst index fae99cf3..5eebcd9e 100644 --- a/Doc/library/email.rst +++ b/Doc/library/email.rst @@ -16,7 +16,7 @@ The :mod:`email` package is a library for managing email messages. It is specifically *not* designed to do any sending of email messages to SMTP (:rfc:`2821`), NNTP, or other servers; those are functions of modules such as :mod:`smtplib` and :mod:`nntplib`. The :mod:`email` package attempts to be as -RFC-compliant as possible, supporting :rfc:`5233` and :rfc:`6532`, as well as +RFC-compliant as possible, supporting :rfc:`5322` and :rfc:`6532`, as well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :rfc:`2183`, and :rfc:`2231`. diff --git a/Doc/library/exceptions.rst b/Doc/library/exceptions.rst index 28d1ab15..7170b2c2 100644 --- a/Doc/library/exceptions.rst +++ b/Doc/library/exceptions.rst @@ -42,12 +42,12 @@ include the originating exception(s) and the final exception. When raising a new exception (rather than using a bare ``raise`` to re-raise the exception currently being handled), the implicit exception context can be -supplemented with an explicit cause by using :keyword:`from` with +supplemented with an explicit cause by using :keyword:`from` with :keyword:`raise`:: raise new_exc from original_exc -The expression following :keyword:`from` must be an exception or ``None``. It +The expression following :keyword:`from` must be an exception or ``None``. It will be set as :attr:`__cause__` on the raised exception. Setting :attr:`__cause__` also implicitly sets the :attr:`__suppress_context__` attribute to ``True``, so that using ``raise new_exc from None`` diff --git a/Doc/library/functions.rst b/Doc/library/functions.rst index ef517822..3a222b1e 100644 --- a/Doc/library/functions.rst +++ b/Doc/library/functions.rst @@ -1631,7 +1631,7 @@ are always available. They are listed here in alphabetical order. not found in statically compiled languages or languages that only support single inheritance. This makes it possible to implement "diamond diagrams" where multiple base classes implement the same method. Good design dictates - that this method have the same calling signature in every case (because the + that such implementations have the same calling signature in every case (because the order of calls is determined at runtime, because that order adapts to changes in the class hierarchy, and because that order can include sibling classes that are unknown prior to runtime). diff --git a/Doc/library/hashlib.rst b/Doc/library/hashlib.rst index d644974e..5a507c12 100644 --- a/Doc/library/hashlib.rst +++ b/Doc/library/hashlib.rst @@ -118,10 +118,10 @@ More condensed: Using :func:`new` with an algorithm provided by OpenSSL: - >>> h = hashlib.new('ripemd160') + >>> h = hashlib.new('sha512_256') >>> h.update(b"Nobody inspects the spammish repetition") >>> h.hexdigest() - 'cc4a5ce1b3df48aec5d22d1f16b894a0b894eccc' + '19197dc4d03829df858011c6c87600f994a858103bbc19005f20987aa19a97e2' Hashlib provides the following constant attributes: diff --git a/Doc/library/http.server.rst b/Doc/library/http.server.rst index 478a5b31..729d7e37 100644 --- a/Doc/library/http.server.rst +++ b/Doc/library/http.server.rst @@ -98,7 +98,9 @@ provides three different variants: .. attribute:: path - Contains the request path. + Contains the request path. If query component of the URL is present, + then ``path`` includes the query. Using the terminology of :rfc:`3986`, + ``path`` here includes ``hier-part`` and the ``query``. .. attribute:: request_version diff --git a/Doc/library/idle.rst b/Doc/library/idle.rst index 6ef15653..3c302115 100644 --- a/Doc/library/idle.rst +++ b/Doc/library/idle.rst @@ -732,7 +732,7 @@ intended to be the same as executing the same code by the default method, directly with Python in a text-mode system console or terminal window. However, the different interface and operation occasionally affect visible results. For instance, ``sys.modules`` starts with more entries, -and ``threading.activeCount()`` returns 2 instead of 1. +and ``threading.active_count()`` returns 2 instead of 1. By default, IDLE runs user code in a separate OS process rather than in the user interface process that runs the shell and editor. In the execution diff --git a/Doc/library/importlib.metadata.rst b/Doc/library/importlib.metadata.rst index 0dd3daaa..2c8d7f81 100644 --- a/Doc/library/importlib.metadata.rst +++ b/Doc/library/importlib.metadata.rst @@ -4,6 +4,8 @@ Using :mod:`!importlib.metadata` ================================= +.. versionadded:: 3.8 + .. note:: This functionality is provisional and may deviate from the usual version semantics of the standard library. diff --git a/Doc/library/ipaddress.rst b/Doc/library/ipaddress.rst index d6d1f1e3..1c2263b1 100644 --- a/Doc/library/ipaddress.rst +++ b/Doc/library/ipaddress.rst @@ -104,8 +104,7 @@ write code that handles both IP versions correctly. Address objects are 1. A string in decimal-dot notation, consisting of four decimal integers in the inclusive range 0--255, separated by dots (e.g. ``192.168.0.1``). Each integer represents an octet (byte) in the address. Leading zeroes are - tolerated only for values less than 8 (as there is no ambiguity - between the decimal and octal interpretations of such strings). + not tolerated to prevent confusion with octal notation. 2. An integer that fits into 32 bits. 3. An integer packed into a :class:`bytes` object of length 4 (most significant octet first). @@ -117,6 +116,22 @@ write code that handles both IP versions correctly. Address objects are >>> ipaddress.IPv4Address(b'\xC0\xA8\x00\x01') IPv4Address('192.168.0.1') + .. versionchanged:: 3.8 + + Leading zeros are tolerated, even in ambiguous cases that look like + octal notation. + + .. versionchanged:: 3.10 + + Leading zeros are no longer tolerated and are treated as an error. + IPv4 address strings are now parsed as strict as glibc + :func:`~socket.inet_pton`. + + .. versionchanged:: 3.9.5 + + The above change was also included in Python 3.9 starting with + version 3.9.5. + .. attribute:: version The appropriate version number: ``4`` for IPv4, ``6`` for IPv6. diff --git a/Doc/library/multiprocessing.rst b/Doc/library/multiprocessing.rst index 352f48f5..def27bf0 100644 --- a/Doc/library/multiprocessing.rst +++ b/Doc/library/multiprocessing.rst @@ -1926,7 +1926,7 @@ client to access it remotely:: >>> class Worker(Process): ... def __init__(self, q): ... self.q = q - ... super(Worker, self).__init__() + ... super().__init__() ... def run(self): ... self.q.put('local hello') ... diff --git a/Doc/library/operator.rst b/Doc/library/operator.rst index fa02bde8..f2fb084a 100644 --- a/Doc/library/operator.rst +++ b/Doc/library/operator.rst @@ -315,15 +315,12 @@ expect a function argument. method. Dictionaries accept any hashable value. Lists, tuples, and strings accept an index or a slice: - >>> itemgetter('name')({'name': 'tu', 'age': 18}) - 'tu' >>> itemgetter(1)('ABCDEFG') 'B' - >>> itemgetter(1,3,5)('ABCDEFG') + >>> itemgetter(1, 3, 5)('ABCDEFG') ('B', 'D', 'F') - >>> itemgetter(slice(2,None))('ABCDEFG') + >>> itemgetter(slice(2, None))('ABCDEFG') 'CDEFG' - >>> soldier = dict(rank='captain', name='dotterbart') >>> itemgetter('rank')(soldier) 'captain' diff --git a/Doc/library/os.path.rst b/Doc/library/os.path.rst index 251df4d5..d2fe4943 100644 --- a/Doc/library/os.path.rst +++ b/Doc/library/os.path.rst @@ -366,7 +366,8 @@ the :mod:`glob` module.) Return a relative filepath to *path* either from the current directory or from an optional *start* directory. This is a path computation: the filesystem is not accessed to confirm the existence or nature of *path* or - *start*. + *start*. On Windows, :exc:`ValueError` is raised when *path* and *start* + are on different drives. *start* defaults to :attr:`os.curdir`. diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 9d206f46..1198c4af 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -1895,7 +1895,7 @@ features: Added the *dir_fd* parameter. .. versionchanged:: 3.6 - Accepts a :term:`path-like object` for *src* and *dst*. + Accepts a :term:`path-like object`. .. versionchanged:: 3.8 On Windows, now opens reparse points that represent another path @@ -2115,6 +2115,7 @@ features: Remove (delete) the file *path*. If *path* is a directory, an :exc:`IsADirectoryError` is raised. Use :func:`rmdir` to remove directories. + If the file does not exist, a :exc:`FileNotFoundError` is raised. This function can support :ref:`paths relative to directory descriptors `. @@ -3249,9 +3250,9 @@ These functions are all available on Linux only. indirectly through the :class:`PathLike` interface). If it is a str, it is encoded with the filesystem encoding. *flags* may be :data:`XATTR_REPLACE` or :data:`XATTR_CREATE`. If :data:`XATTR_REPLACE` is - given and the attribute does not exist, ``EEXISTS`` will be raised. + given and the attribute does not exist, ``ENODATA`` will be raised. If :data:`XATTR_CREATE` is given and the attribute already exists, the - attribute will not be created and ``ENODATA`` will be raised. + attribute will not be created and ``EEXISTS`` will be raised. This function can support :ref:`specifying a file descriptor ` and :ref:`not following symlinks `. diff --git a/Doc/library/pathlib.rst b/Doc/library/pathlib.rst index 9526a03b..c31ff654 100644 --- a/Doc/library/pathlib.rst +++ b/Doc/library/pathlib.rst @@ -1119,6 +1119,20 @@ call fails (for example because the path doesn't exist). of :func:`os.symlink`'s. +.. method:: Path.link_to(target) + + Make *target* a hard link to this path. + + .. warning:: + + This function does not make this path a hard link to *target*, despite + the implication of the function and argument names. The argument order + (target, link) is the reverse of :func:`Path.symlink_to`, but matches + that of :func:`os.link`. + + .. versionadded:: 3.8 + + .. method:: Path.touch(mode=0o666, exist_ok=True) Create a file at this given path. If *mode* is given, it is combined @@ -1143,13 +1157,6 @@ call fails (for example because the path doesn't exist). The *missing_ok* parameter was added. -.. method:: Path.link_to(target) - - Create a hard link pointing to a path named *target*. - - .. versionadded:: 3.8 - - .. method:: Path.write_bytes(data) Open the file pointed to in bytes mode, write *data* to it, and close the diff --git a/Doc/library/random.rst b/Doc/library/random.rst index 0e703251..f2d67494 100644 --- a/Doc/library/random.rst +++ b/Doc/library/random.rst @@ -409,7 +409,7 @@ Basic examples:: >>> random() # Random float: 0.0 <= x < 1.0 0.37444887175646646 - >>> uniform(2.5, 10.0) # Random float: 2.5 <= x < 10.0 + >>> uniform(2.5, 10.0) # Random float: 2.5 <= x <= 10.0 3.1800146073117523 >>> expovariate(1 / 5) # Interval between arrivals averaging 5 seconds diff --git a/Doc/library/socket.rst b/Doc/library/socket.rst index 2fc170a0..26892c99 100755 --- a/Doc/library/socket.rst +++ b/Doc/library/socket.rst @@ -1139,6 +1139,32 @@ The :mod:`socket` module also offers various network-related services: "Interface name" is a name as documented in :func:`if_nameindex`. +.. function:: send_fds(sock, buffers, fds[, flags[, address]]) + + Send the list of file descriptors *fds* over an :const:`AF_UNIX` socket *sock*. + The *fds* parameter is a sequence of file descriptors. + Consult :meth:`sendmsg` for the documentation of these parameters. + + .. availability:: Unix supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` mechanism. + + .. versionadded:: 3.9 + + +.. function:: recv_fds(sock, bufsize, maxfds[, flags]) + + Receive up to *maxfds* file descriptors from an :const:`AF_UNIX` socket *sock*. + Return ``(msg, list(fds), flags, addr)``. + Consult :meth:`recvmsg` for the documentation of these parameters. + + .. availability:: Unix supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` mechanism. + + .. versionadded:: 3.9 + + .. note:: + + Any truncated integers at the end of the list of file descriptors. + + .. _socket-objects: Socket Objects @@ -1633,29 +1659,6 @@ to sockets. .. versionadded:: 3.6 -.. method:: socket.send_fds(sock, buffers, fds[, flags[, address]]) - - Send the list of file descriptors *fds* over an :const:`AF_UNIX` socket. - The *fds* parameter is a sequence of file descriptors. - Consult :meth:`sendmsg` for the documentation of these parameters. - - .. availability:: Unix supporting :meth:`~socket.sendmsg` and :const:`SCM_RIGHTS` mechanism. - - .. versionadded:: 3.9 - -.. method:: socket.recv_fds(sock, bufsize, maxfds[, flags]) - - Receive up to *maxfds* file descriptors. Return ``(msg, list(fds), flags, addr)``. Consult - :meth:`recvmsg` for the documentation of these parameters. - - .. availability:: Unix supporting :meth:`~socket.recvmsg` and :const:`SCM_RIGHTS` mechanism. - - .. versionadded:: 3.9 - - .. note:: - - Any truncated integers at the end of the list of file descriptors. - .. method:: socket.sendfile(file, offset=0, count=None) Send a file until EOF is reached by using high-performance diff --git a/Doc/library/sqlite3.rst b/Doc/library/sqlite3.rst index 8e935c32..a82ba3a5 100644 --- a/Doc/library/sqlite3.rst +++ b/Doc/library/sqlite3.rst @@ -54,33 +54,6 @@ The data you've saved is persistent and is available in subsequent sessions:: con = sqlite3.connect('example.db') cur = con.cursor() -Usually your SQL operations will need to use values from Python variables. You -shouldn't assemble your query using Python's string operations because doing so -is insecure; it makes your program vulnerable to an SQL injection attack -(see https://xkcd.com/327/ for humorous example of what can go wrong). - -Instead, use the DB-API's parameter substitution. Put ``?`` as a placeholder -wherever you want to use a value, and then provide a tuple of values as the -second argument to the cursor's :meth:`~Cursor.execute` method. (Other database -modules may use a different placeholder, such as ``%s`` or ``:1``.) For -example:: - - # Never do this -- insecure! - symbol = 'RHAT' - cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) - - # Do this instead - t = ('RHAT',) - cur.execute('SELECT * FROM stocks WHERE symbol=?', t) - print(cur.fetchone()) - - # Larger example that inserts many records at a time - purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00), - ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00), - ('2006-04-06', 'SELL', 'IBM', 500, 53.00), - ] - cur.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases) - To retrieve data after executing a SELECT statement, you can either treat the cursor as an :term:`iterator`, call the cursor's :meth:`~Cursor.fetchone` method to retrieve a single matching row, or call :meth:`~Cursor.fetchall` to get a list of the @@ -97,6 +70,33 @@ This example uses the iterator form:: ('2006-04-05', 'BUY', 'MSFT', 1000, 72.0) +.. _sqlite3-placeholders: + +Usually your SQL operations will need to use values from Python variables. You +shouldn't assemble your query using Python's string operations because doing so +is insecure; it makes your program vulnerable to an SQL injection attack +(see the `xkcd webcomic `_ for a humorous example of +what can go wrong):: + + # Never do this -- insecure! + symbol = 'RHAT' + cur.execute("SELECT * FROM stocks WHERE symbol = '%s'" % symbol) + +Instead, use the DB-API's parameter substitution. Put a placeholder wherever +you want to use a value, and then provide a tuple of values as the second +argument to the cursor's :meth:`~Cursor.execute` method. An SQL statement may +use one of two kinds of placeholders: question marks (qmark style) or named +placeholders (named style). For the qmark style, ``parameters`` must be a +:term:`sequence `. For the named style, it can be either a +:term:`sequence ` or :class:`dict` instance. The length of the +:term:`sequence ` must match the number of placeholders, or a +:exc:`ProgrammingError` is raised. If a :class:`dict` is given, it must contain +keys for all named parameters. Any extra items are ignored. Here's an example +of both styles: + +.. literalinclude:: ../includes/sqlite3/execute_1.py + + .. seealso:: https://www.sqlite.org @@ -608,14 +608,8 @@ Cursor Objects .. method:: execute(sql[, parameters]) - Executes an SQL statement. The SQL statement may be parameterized (i. e. - placeholders instead of SQL literals). The :mod:`sqlite3` module supports two - kinds of placeholders: question marks (qmark style) and named placeholders - (named style). - - Here's an example of both styles: - - .. literalinclude:: ../includes/sqlite3/execute_1.py + Executes an SQL statement. Values may be bound to the statement using + :ref:`placeholders `. :meth:`execute` will only execute a single SQL statement. If you try to execute more than one statement with it, it will raise a :exc:`.Warning`. Use @@ -625,9 +619,10 @@ Cursor Objects .. method:: executemany(sql, seq_of_parameters) - Executes an SQL command against all parameter sequences or mappings found in - the sequence *seq_of_parameters*. The :mod:`sqlite3` module also allows - using an :term:`iterator` yielding parameters instead of a sequence. + Executes a :ref:`parameterized ` SQL command + against all parameter sequences or mappings found in the sequence + *seq_of_parameters*. The :mod:`sqlite3` module also allows using an + :term:`iterator` yielding parameters instead of a sequence. .. literalinclude:: ../includes/sqlite3/executemany_1.py diff --git a/Doc/library/ssl.rst b/Doc/library/ssl.rst index 0bf0554d..d673effc 100644 --- a/Doc/library/ssl.rst +++ b/Doc/library/ssl.rst @@ -886,6 +886,14 @@ Constants .. versionadded:: 3.6 +.. data:: OP_IGNORE_UNEXPECTED_EOF + + Ignore unexpected shutdown of TLS connections. + + This option is only available with OpenSSL 3.0.0 and later. + + .. versionadded:: 3.10 + .. data:: HAS_ALPN Whether the OpenSSL library has built-in support for the *Application-Layer @@ -2032,6 +2040,11 @@ to speed up repeated connections from the same clients. .. versionadded:: 3.7 + .. versionchanged:: 3.9.3 + + The flag had no effect with OpenSSL before version 1.1.1k. Python 3.8.9, + 3.9.3, and 3.10 include workarounds for previous versions. + .. attribute:: SSLContext.verify_flags The flags for certificate verification operations. You can set flags like diff --git a/Doc/library/stdtypes.rst b/Doc/library/stdtypes.rst index 0667a601..8a03b73b 100644 --- a/Doc/library/stdtypes.rst +++ b/Doc/library/stdtypes.rst @@ -5044,6 +5044,9 @@ environment. Code objects are returned by the built-in :func:`compile` function and can be extracted from function objects through their :attr:`__code__` attribute. See also the :mod:`code` module. +Accessing ``__code__`` raises an :ref:`auditing event ` +``object.__getattr__`` with arguments ``obj`` and ``"__code__"``. + .. index:: builtin: exec builtin: eval diff --git a/Doc/library/sys.rst b/Doc/library/sys.rst index 3df529f8..6b23b6f0 100644 --- a/Doc/library/sys.rst +++ b/Doc/library/sys.rst @@ -26,12 +26,12 @@ always available. .. function:: addaudithook(hook) Append the callable *hook* to the list of active auditing hooks for the - current interpreter. + current (sub)interpreter. When an auditing event is raised through the :func:`sys.audit` function, each hook will be called in the order it was added with the event name and the tuple of arguments. Native hooks added by :c:func:`PySys_AddAuditHook` are - called first, followed by hooks added in the current interpreter. Hooks + called first, followed by hooks added in the current (sub)interpreter. Hooks can then log the event, raise an exception to abort the operation, or terminate the process entirely. @@ -777,11 +777,16 @@ always available. Microsoft documentation on :c:func:`OSVERSIONINFOEX` for more information about these fields. - *platform_version* returns the accurate major version, minor version and + *platform_version* returns the major version, minor version and build number of the current operating system, rather than the version that is being emulated for the process. It is intended for use in logging rather than for feature detection. + .. note:: + *platform_version* derives the version from kernel32.dll which can be of a different + version than the OS version. Please use :mod:`platform` module for achieving accurate + OS version. + .. availability:: Windows. .. versionchanged:: 3.2 diff --git a/Doc/library/types.rst b/Doc/library/types.rst index d1099cf2..83e2cb4c 100644 --- a/Doc/library/types.rst +++ b/Doc/library/types.rst @@ -34,7 +34,7 @@ Dynamic Type Creation freshly created class namespace. It should accept the class namespace as its sole argument and update the namespace directly with the class contents. If no callback is provided, it has the same effect as passing - in ``lambda ns: ns``. + in ``lambda ns: None``. .. versionadded:: 3.3 diff --git a/Doc/library/typing.rst b/Doc/library/typing.rst index 688564f1..b136da00 100644 --- a/Doc/library/typing.rst +++ b/Doc/library/typing.rst @@ -1710,10 +1710,15 @@ Introspection helpers .. class:: ForwardRef A class used for internal typing representation of string forward references. - For example, ``list["SomeClass"]`` is implicitly transformed into - ``list[ForwardRef("SomeClass")]``. This class should not be instantiated by + For example, ``List["SomeClass"]`` is implicitly transformed into + ``List[ForwardRef("SomeClass")]``. This class should not be instantiated by a user, but may be used by introspection tools. + .. note:: + :pep:`585` generic types such as ``list["SomeClass"]`` will not be + implicitly transformed into ``list[ForwardRef("SomeClass")]`` and thus + will not automatically resolve to ``list[SomeClass]``. + .. versionadded:: 3.7.4 Constant diff --git a/Doc/library/unittest.mock-examples.rst b/Doc/library/unittest.mock-examples.rst index e650bb1e..24a18c68 100644 --- a/Doc/library/unittest.mock-examples.rst +++ b/Doc/library/unittest.mock-examples.rst @@ -893,7 +893,7 @@ Here's an example implementation: ... def __call__(self, /, *args, **kwargs): ... args = deepcopy(args) ... kwargs = deepcopy(kwargs) - ... return super(CopyingMock, self).__call__(*args, **kwargs) + ... return super().__call__(*args, **kwargs) ... >>> c = CopyingMock(return_value=None) >>> arg = set() diff --git a/Doc/library/unittest.rst b/Doc/library/unittest.rst index ebed5c08..9541997e 100644 --- a/Doc/library/unittest.rst +++ b/Doc/library/unittest.rst @@ -331,8 +331,9 @@ the `load_tests protocol`_. .. versionchanged:: 3.4 Test discovery supports :term:`namespace packages ` - for start directory. Note that you need to the top level directory too. - (e.g. ``python -m unittest discover -s root/namespace -t root``). + for the start directory. Note that you need to specify the top level + directory too (e.g. + ``python -m unittest discover -s root/namespace -t root``). .. _organizing-tests: diff --git a/Doc/library/urllib.parse.rst b/Doc/library/urllib.parse.rst index 38e29863..c0376525 100644 --- a/Doc/library/urllib.parse.rst +++ b/Doc/library/urllib.parse.rst @@ -311,6 +311,9 @@ or on combining URL components into a URL string. ``#``, ``@``, or ``:`` will raise a :exc:`ValueError`. If the URL is decomposed before parsing, no error will be raised. + Following the `WHATWG spec`_ that updates RFC 3986, ASCII newline + ``\n``, ``\r`` and tab ``\t`` characters are stripped from the URL. + .. versionchanged:: 3.6 Out-of-range port numbers now raise :exc:`ValueError`, instead of returning :const:`None`. @@ -319,6 +322,10 @@ or on combining URL components into a URL string. Characters that affect netloc parsing under NFKC normalization will now raise :exc:`ValueError`. + .. versionchanged:: 3.9.5 + ASCII newline and tab characters are stripped from the URL. + +.. _WHATWG spec: https://url.spec.whatwg.org/#concept-basic-url-parser .. function:: urlunsplit(parts) @@ -673,6 +680,10 @@ task isn't already covered by the URL parsing functions above. .. seealso:: + `WHATWG`_ - URL Living standard + Working Group for the URL Standard that defines URLs, domains, IP addresses, the + application/x-www-form-urlencoded format, and their API. + :rfc:`3986` - Uniform Resource Identifiers This is the current standard (STD66). Any changes to urllib.parse module should conform to this. Certain deviations could be observed, which are @@ -696,3 +707,5 @@ task isn't already covered by the URL parsing functions above. :rfc:`1738` - Uniform Resource Locators (URL) This specifies the formal syntax and semantics of absolute URLs. + +.. _WHATWG: https://url.spec.whatwg.org/ diff --git a/Doc/library/weakref.rst b/Doc/library/weakref.rst index d3c3a070..b88543e4 100644 --- a/Doc/library/weakref.rst +++ b/Doc/library/weakref.rst @@ -382,7 +382,7 @@ the referent is accessed:: class ExtendedRef(weakref.ref): def __init__(self, ob, callback=None, /, **annotations): - super(ExtendedRef, self).__init__(ob, callback) + super().__init__(ob, callback) self.__counter = 0 for k, v in annotations.items(): setattr(self, k, v) @@ -391,7 +391,7 @@ the referent is accessed:: """Return a pair containing the referent and the number of times the reference has been called. """ - ob = super(ExtendedRef, self).__call__() + ob = super().__call__() if ob is not None: self.__counter += 1 ob = (ob, self.__counter) diff --git a/Doc/reference/compound_stmts.rst b/Doc/reference/compound_stmts.rst index 7e666351..75424162 100644 --- a/Doc/reference/compound_stmts.rst +++ b/Doc/reference/compound_stmts.rst @@ -510,7 +510,6 @@ A function definition defines a user-defined function object (see section : ["->" `expression`] ":" `suite` decorators: `decorator`+ decorator: "@" `assignment_expression` NEWLINE - dotted_name: `identifier` ("." `identifier`)* parameter_list: `defparameter` ("," `defparameter`)* "," "/" ["," [`parameter_list_no_posonly`]] : | `parameter_list_no_posonly` parameter_list_no_posonly: `defparameter` ("," `defparameter`)* ["," [`parameter_list_starargs`]] @@ -587,19 +586,25 @@ e.g.:: return penguin .. index:: + single: / (slash); function definition single: * (asterisk); function definition single: **; function definition Function call semantics are described in more detail in section :ref:`calls`. A function call always assigns values to all parameters mentioned in the parameter -list, either from position arguments, from keyword arguments, or from default +list, either from positional arguments, from keyword arguments, or from default values. If the form "``*identifier``" is present, it is initialized to a tuple receiving any excess positional parameters, defaulting to the empty tuple. If the form "``**identifier``" is present, it is initialized to a new ordered mapping receiving any excess keyword arguments, defaulting to a new empty mapping of the same type. Parameters after "``*``" or "``*identifier``" are keyword-only parameters and may only be passed -used keyword arguments. +by keyword arguments. Parameters before "``/``" are positional-only parameters +and may only be passed by positional arguments. + +.. versionchanged:: 3.8 + The ``/`` function parameter syntax may be used to indicate positional-only + parameters. See :pep:`570` for details. .. index:: pair: function; annotations diff --git a/Doc/reference/datamodel.rst b/Doc/reference/datamodel.rst index 3b3bd552..40301230 100644 --- a/Doc/reference/datamodel.rst +++ b/Doc/reference/datamodel.rst @@ -1005,6 +1005,9 @@ Internal types :attr:`f_lasti` gives the precise instruction (this is an index into the bytecode string of the code object). + Accessing ``f_code`` raises an :ref:`auditing event ` + ``object.__getattr__`` with arguments ``obj`` and ``"f_code"``. + .. index:: single: f_trace (frame attribute) single: f_trace_lines (frame attribute) @@ -1089,6 +1092,9 @@ Internal types :keyword:`try` statement with no matching except clause or with a finally clause. + Accessing ``tb_frame`` raises an :ref:`auditing event ` + ``object.__getattr__`` with arguments ``obj`` and ``"tb_frame"``. + .. index:: single: tb_next (traceback attribute) @@ -1773,7 +1779,7 @@ Super Binding immediately preceding ``B`` and then invokes the descriptor with the call: ``A.__dict__['m'].__get__(obj, obj.__class__)``. -For instance bindings, the precedence of descriptor invocation depends on the +For instance bindings, the precedence of descriptor invocation depends on which descriptor methods are defined. A descriptor can define any combination of :meth:`__get__`, :meth:`__set__` and :meth:`__delete__`. If it does not define :meth:`__get__`, then accessing the attribute will return the descriptor diff --git a/Doc/reference/expressions.rst b/Doc/reference/expressions.rst index 9b1a395b..8fead33e 100644 --- a/Doc/reference/expressions.rst +++ b/Doc/reference/expressions.rst @@ -183,7 +183,7 @@ Common syntax elements for comprehensions are: comprehension: `assignment_expression` `comp_for` comp_for: ["async"] "for" `target_list` "in" `or_test` [`comp_iter`] comp_iter: `comp_for` | `comp_if` - comp_if: "if" `expression_nocond` [`comp_iter`] + comp_if: "if" `or_test` [`comp_iter`] The comprehension consists of a single expression followed by at least one :keyword:`!for` clause and zero or more :keyword:`!for` or :keyword:`!if` clauses. @@ -1695,7 +1695,6 @@ Conditional expressions .. productionlist:: python-grammar conditional_expression: `or_test` ["if" `or_test` "else" `expression`] expression: `conditional_expression` | `lambda_expr` - expression_nocond: `or_test` | `lambda_expr_nocond` Conditional expressions (sometimes called a "ternary operator") have the lowest priority of all Python operations. @@ -1721,7 +1720,6 @@ Lambdas .. productionlist:: python-grammar lambda_expr: "lambda" [`parameter_list`] ":" `expression` - lambda_expr_nocond: "lambda" [`parameter_list`] ":" `expression_nocond` Lambda expressions (sometimes called lambda forms) are used to create anonymous functions. The expression ``lambda parameters: expression`` yields a function @@ -1809,8 +1807,8 @@ Operator precedence .. index:: pair: operator; precedence -The following table summarizes the operator precedence in Python, from lowest -precedence (least binding) to highest precedence (most binding). Operators in +The following table summarizes the operator precedence in Python, from highest +precedence (most binding) to lowest precedence (least binding). Operators in the same box have the same precedence. Unless the syntax is explicitly given, operators are binary. Operators in the same box group left to right (except for exponentiation, which groups from right to left). @@ -1823,50 +1821,50 @@ precedence and have a left-to-right chaining feature as described in the +-----------------------------------------------+-------------------------------------+ | Operator | Description | +===============================================+=====================================+ -| ``:=`` | Assignment expression | -+-----------------------------------------------+-------------------------------------+ -| :keyword:`lambda` | Lambda expression | +| ``(expressions...)``, | Binding or parenthesized | +| | expression, | +| ``[expressions...]``, | list display, | +| ``{key: value...}``, | dictionary display, | +| ``{expressions...}`` | set display | +-----------------------------------------------+-------------------------------------+ -| :keyword:`if ` -- :keyword:`!else` | Conditional expression | +| ``x[index]``, ``x[index:index]``, | Subscription, slicing, | +| ``x(arguments...)``, ``x.attribute`` | call, attribute reference | +-----------------------------------------------+-------------------------------------+ -| :keyword:`or` | Boolean OR | +| :keyword:`await` ``x`` | Await expression | +-----------------------------------------------+-------------------------------------+ -| :keyword:`and` | Boolean AND | +| ``**`` | Exponentiation [#]_ | +-----------------------------------------------+-------------------------------------+ -| :keyword:`not` ``x`` | Boolean NOT | +| ``+x``, ``-x``, ``~x`` | Positive, negative, bitwise NOT | +-----------------------------------------------+-------------------------------------+ -| :keyword:`in`, :keyword:`not in`, | Comparisons, including membership | -| :keyword:`is`, :keyword:`is not`, ``<``, | tests and identity tests | -| ``<=``, ``>``, ``>=``, ``!=``, ``==`` | | +| ``*``, ``@``, ``/``, ``//``, ``%`` | Multiplication, matrix | +| | multiplication, division, floor | +| | division, remainder [#]_ | +-----------------------------------------------+-------------------------------------+ -| ``|`` | Bitwise OR | +| ``+``, ``-`` | Addition and subtraction | +-----------------------------------------------+-------------------------------------+ -| ``^`` | Bitwise XOR | +| ``<<``, ``>>`` | Shifts | +-----------------------------------------------+-------------------------------------+ | ``&`` | Bitwise AND | +-----------------------------------------------+-------------------------------------+ -| ``<<``, ``>>`` | Shifts | +| ``^`` | Bitwise XOR | +-----------------------------------------------+-------------------------------------+ -| ``+``, ``-`` | Addition and subtraction | +| ``|`` | Bitwise OR | +-----------------------------------------------+-------------------------------------+ -| ``*``, ``@``, ``/``, ``//``, ``%`` | Multiplication, matrix | -| | multiplication, division, floor | -| | division, remainder [#]_ | +| :keyword:`in`, :keyword:`not in`, | Comparisons, including membership | +| :keyword:`is`, :keyword:`is not`, ``<``, | tests and identity tests | +| ``<=``, ``>``, ``>=``, ``!=``, ``==`` | | +-----------------------------------------------+-------------------------------------+ -| ``+x``, ``-x``, ``~x`` | Positive, negative, bitwise NOT | +| :keyword:`not` ``x`` | Boolean NOT | +-----------------------------------------------+-------------------------------------+ -| ``**`` | Exponentiation [#]_ | +| :keyword:`and` | Boolean AND | +-----------------------------------------------+-------------------------------------+ -| :keyword:`await` ``x`` | Await expression | +| :keyword:`or` | Boolean OR | +-----------------------------------------------+-------------------------------------+ -| ``x[index]``, ``x[index:index]``, | Subscription, slicing, | -| ``x(arguments...)``, ``x.attribute`` | call, attribute reference | +| :keyword:`if ` -- :keyword:`!else` | Conditional expression | +-----------------------------------------------+-------------------------------------+ -| ``(expressions...)``, | Binding or parenthesized | -| | expression, | -| ``[expressions...]``, | list display, | -| ``{key: value...}``, | dictionary display, | -| ``{expressions...}`` | set display | +| :keyword:`lambda` | Lambda expression | ++-----------------------------------------------+-------------------------------------+ +| ``:=`` | Assignment expression | +-----------------------------------------------+-------------------------------------+ @@ -1910,8 +1908,8 @@ precedence and have a left-to-right chaining feature as described in the the :keyword:`is` operator, like those involving comparisons between instance methods, or constants. Check their documentation for more info. -.. [#] The ``%`` operator is also used for string formatting; the same - precedence applies. - .. [#] The power operator ``**`` binds less tightly than an arithmetic or bitwise unary operator on its right, that is, ``2**-1`` is ``0.5``. + +.. [#] The ``%`` operator is also used for string formatting; the same + precedence applies. diff --git a/Doc/reference/simple_stmts.rst b/Doc/reference/simple_stmts.rst index f8ab2e91..8691cbd0 100644 --- a/Doc/reference/simple_stmts.rst +++ b/Doc/reference/simple_stmts.rst @@ -591,10 +591,13 @@ instance, with its traceback set to its argument), like so:: __context__ (exception attribute) The ``from`` clause is used for exception chaining: if given, the second -*expression* must be another exception class or instance, which will then be -attached to the raised exception as the :attr:`__cause__` attribute (which is -writable). If the raised exception is not handled, both exceptions will be -printed:: +*expression* must be another exception class or instance. If the second +expression is an exception instance, it will be attached to the raised +exception as the :attr:`__cause__` attribute (which is writable). If the +expression is an exception class, the class will be instantiated and the +resulting exception instance will be attached to the raised exception as the +:attr:`__cause__` attribute. If the raised exception is not handled, both +exceptions will be printed:: >>> try: ... print(1 / 0) diff --git a/Doc/tools/susp-ignored.csv b/Doc/tools/susp-ignored.csv index 9f0c42a9..95277c44 100644 --- a/Doc/tools/susp-ignored.csv +++ b/Doc/tools/susp-ignored.csv @@ -151,8 +151,8 @@ library/ipaddress,,:db8,>>> ipaddress.IPv6Address('2001:db8::1000') library/ipaddress,,::,>>> ipaddress.IPv6Address('2001:db8::1000') library/ipaddress,,:db8,'2001:db8::1000' library/ipaddress,,::,'2001:db8::1000' -library/ipaddress,231,:db8,">>> f'{ipaddress.IPv6Address(""2001:db8::1000""):s}'" -library/ipaddress,231,::,">>> f'{ipaddress.IPv6Address(""2001:db8::1000""):s}'" +library/ipaddress,,:db8,">>> f'{ipaddress.IPv6Address(""2001:db8::1000""):s}'" +library/ipaddress,,::,">>> f'{ipaddress.IPv6Address(""2001:db8::1000""):s}'" library/ipaddress,,::,IPv6Address('ff02::5678%1') library/ipaddress,,::,fe80::1234 library/ipaddress,,:db8,">>> ipaddress.ip_address(""2001:db8::1"").reverse_pointer" @@ -211,9 +211,9 @@ library/smtplib,,:port,method must support that as well as a regular host:port library/socket,,::,'5aef:2b::8' library/socket,,:can,"return (can_id, can_dlc, data[:can_dlc])" library/socket,,:len,fds.frombytes(cmsg_data[:len(cmsg_data) - (len(cmsg_data) % fds.itemsize)]) -library/sqlite3,,:age,"cur.execute(""select * from people where name_last=:who and age=:age"", {""who"": who, ""age"": age})" +library/sqlite3,,:name,"cur.execute(""select * from lang where lang_name=:name and lang_age=:age""," +library/sqlite3,,:age,"cur.execute(""select * from lang where lang_name=:name and lang_age=:age""," library/sqlite3,,:memory, -library/sqlite3,,:who,"cur.execute(""select * from people where name_last=:who and age=:age"", {""who"": who, ""age"": age})" library/sqlite3,,:path,"db = sqlite3.connect('file:path/to/database?mode=ro', uri=True)" library/ssl,,:My,"Organizational Unit Name (eg, section) []:My Group" library/ssl,,:My,"Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Organization, Inc." diff --git a/Doc/tutorial/errors.rst b/Doc/tutorial/errors.rst index efe44da3..f72da5c3 100644 --- a/Doc/tutorial/errors.rst +++ b/Doc/tutorial/errors.rst @@ -272,7 +272,7 @@ re-raise the exception:: Exception Chaining ================== -The :keyword:`raise` statement allows an optional :keyword:`from` which enables +The :keyword:`raise` statement allows an optional :keyword:`from` which enables chaining exceptions. For example:: # exc must be exception instance or None. diff --git a/Doc/tutorial/venv.rst b/Doc/tutorial/venv.rst index f422146a..2782db9d 100644 --- a/Doc/tutorial/venv.rst +++ b/Doc/tutorial/venv.rst @@ -95,20 +95,9 @@ Managing Packages with pip You can install, upgrade, and remove packages using a program called :program:`pip`. By default ``pip`` will install packages from the Python Package Index, . You can browse the Python -Package Index by going to it in your web browser, or you can use ``pip``'s -limited search feature: +Package Index by going to it in your web browser. -.. code-block:: bash - - (tutorial-env) $ pip search astronomy - skyfield - Elegant astronomy for Python - gary - Galactic astronomy and gravitational dynamics. - novas - The United States Naval Observatory NOVAS astronomy library - astroobs - Provides astronomy ephemeris to plan telescope observations - PyAstronomy - A collection of astronomy related tools for Python. - ... - -``pip`` has a number of subcommands: "search", "install", "uninstall", +``pip`` has a number of subcommands: "install", "uninstall", "freeze", etc. (Consult the :ref:`installing-index` guide for complete documentation for ``pip``.) diff --git a/Doc/using/windows.rst b/Doc/using/windows.rst index 4699e375..c04a34a6 100644 --- a/Doc/using/windows.rst +++ b/Doc/using/windows.rst @@ -1112,7 +1112,7 @@ shipped with PyWin32. It is an embeddable IDE with a built-in debugger. cx_Freeze --------- -`cx_Freeze `_ is a :mod:`distutils` +`cx_Freeze `_ is a :mod:`distutils` extension (see :ref:`extending-distutils`) which wraps Python scripts into executable Windows programs (:file:`{*}.exe` files). When you have done this, you can distribute your application without requiring your users to install diff --git a/Doc/whatsnew/3.9.rst b/Doc/whatsnew/3.9.rst index 4cb49406..cb492e45 100644 --- a/Doc/whatsnew/3.9.rst +++ b/Doc/whatsnew/3.9.rst @@ -267,6 +267,10 @@ Other Language Changes :func:`~operator.countOf` of the :mod:`operator` module. (Contributed by Serhiy Storchaka in :issue:`40824`.) +* Unparenthesized lambda expressions can no longer be the expression part in an + ``if`` clause in comprehensions and generator expressions. See :issue:`41848` + and :issue:`43755` for details. + New Modules =========== @@ -533,6 +537,10 @@ Scoped IPv6 addresses can be parsed using :class:`ipaddress.IPv6Address`. If present, scope zone ID is available through the :attr:`~ipaddress.IPv6Address.scope_id` attribute. (Contributed by Oleksandr Pavliuk in :issue:`34788`.) +Starting with Python 3.9.5 the :mod:`ipaddress` module no longer +accepts any leading zeros in IPv4 address strings. +(Contributed by Christian Heimes in :issue:`36384`). + math ---- @@ -654,7 +662,7 @@ The socket module now supports the :data:`~socket.CAN_J1939` protocol on platforms that support it. (Contributed by Karl Ding in :issue:`40291`.) The socket module now has the :func:`socket.send_fds` and -:func:`socket.recv.fds` methods. (Contributed by Joannah Nanjekye, Shinya +:func:`socket.recv_fds` functions. (Contributed by Joannah Nanjekye, Shinya Okano and Victor Stinner in :issue:`28724`.) @@ -1110,6 +1118,20 @@ Changes in the Python API compatible classes that don't inherit from those mentioned types. (Contributed by Roger Aiudi in :issue:`34775`). +* Starting with Python 3.9.5 the :mod:`ipaddress` module no longer + accepts any leading zeros in IPv4 address strings. Leading zeros are + ambiguous and interpreted as octal notation by some libraries. For example + the legacy function :func:`socket.inet_aton` treats leading zeros as octal + notatation. glibc implementation of modern :func:`~socket.inet_pton` does + not accept any leading zeros. + (Contributed by Christian Heimes in :issue:`36384`). + +* :func:`codecs.lookup` now normalizes the encoding name the same way as + :func:`encodings.normalize_encoding`, except that :func:`codecs.lookup` also + converts the name to lower case. For example, ``"latex+latin1"`` encoding + name is now normalized to ``"latex_latin1"``. + (Contributed by Jordon Xu in :issue:`37751`.) + Changes in the C API -------------------- diff --git a/Include/patchlevel.h b/Include/patchlevel.h index cf76d874..32ce1165 100644 --- a/Include/patchlevel.h +++ b/Include/patchlevel.h @@ -18,12 +18,12 @@ /*--start constants--*/ #define PY_MAJOR_VERSION 3 #define PY_MINOR_VERSION 9 -#define PY_MICRO_VERSION 4 +#define PY_MICRO_VERSION 5 #define PY_RELEASE_LEVEL PY_RELEASE_LEVEL_FINAL #define PY_RELEASE_SERIAL 0 /* Version as a string */ -#define PY_VERSION "3.9.4" +#define PY_VERSION "3.9.5" /*--end constants--*/ /* Version as a single 4-byte hex number, e.g. 0x010502B2 == 1.5.2b2. diff --git a/Include/pyctype.h b/Include/pyctype.h index 6bce63ee..729d9327 100644 --- a/Include/pyctype.h +++ b/Include/pyctype.h @@ -1,6 +1,9 @@ #ifndef Py_LIMITED_API #ifndef PYCTYPE_H #define PYCTYPE_H +#ifdef __cplusplus +extern "C" { +#endif #define PY_CTF_LOWER 0x01 #define PY_CTF_UPPER 0x02 @@ -29,5 +32,8 @@ PyAPI_DATA(const unsigned char) _Py_ctype_toupper[256]; #define Py_TOLOWER(c) (_Py_ctype_tolower[Py_CHARMASK(c)]) #define Py_TOUPPER(c) (_Py_ctype_toupper[Py_CHARMASK(c)]) +#ifdef __cplusplus +} +#endif #endif /* !PYCTYPE_H */ #endif /* !Py_LIMITED_API */ diff --git a/Lib/ctypes/test/test_unicode.py b/Lib/ctypes/test/test_unicode.py index c200af7b..60c75424 100644 --- a/Lib/ctypes/test/test_unicode.py +++ b/Lib/ctypes/test/test_unicode.py @@ -26,6 +26,14 @@ class UnicodeTestCase(unittest.TestCase): self.assertEqual(buf[::2], 'a\xe4\xfc') self.assertEqual(buf[6:5:-1], "") + def test_embedded_null(self): + class TestStruct(ctypes.Structure): + _fields_ = [("unicode", ctypes.c_wchar_p)] + t = TestStruct() + # This would raise a ValueError: + t.unicode = "foo\0bar\0\0" + + func = ctypes.CDLL(_ctypes_test.__file__)._testfunc_p_p class StringTestCase(UnicodeTestCase): diff --git a/Lib/dataclasses.py b/Lib/dataclasses.py index 530d3e99..da7cb743 100644 --- a/Lib/dataclasses.py +++ b/Lib/dataclasses.py @@ -696,7 +696,7 @@ def _get_field(cls, a_name, a_type): # In addition to checking for actual types here, also check for # string annotations. get_type_hints() won't always work for us # (see https://github.com/python/typing/issues/508 for example), - # plus it's expensive and would require an eval for every stirng + # plus it's expensive and would require an eval for every string # annotation. So, make a best effort to see if this is a ClassVar # or InitVar using regex's and checking that the thing referenced # is actually of the correct type. @@ -836,7 +836,7 @@ def _process_class(cls, init, repr, eq, order, unsafe_hash, frozen): # Only process classes that have been processed by our # decorator. That is, they have a _FIELDS attribute. base_fields = getattr(b, _FIELDS, None) - if base_fields: + if base_fields is not None: has_dataclass_bases = True for f in base_fields.values(): fields[f.name] = f @@ -1271,7 +1271,7 @@ def replace(obj, /, **changes): continue if f.name not in changes: - if f._field_type is _FIELD_INITVAR: + if f._field_type is _FIELD_INITVAR and f.default is MISSING: raise ValueError(f"InitVar {f.name!r} " 'must be specified with replace()') changes[f.name] = getattr(obj, f.name) diff --git a/Lib/ensurepip/__init__.py b/Lib/ensurepip/__init__.py index 97dfa7ea..57e576d1 100644 --- a/Lib/ensurepip/__init__.py +++ b/Lib/ensurepip/__init__.py @@ -13,13 +13,13 @@ from . import _bundled __all__ = ["version", "bootstrap"] -_SETUPTOOLS_VERSION = "49.2.1" +_SETUPTOOLS_VERSION = "56.0.0" -_PIP_VERSION = "20.2.3" +_PIP_VERSION = "21.1.1" _PROJECTS = [ ("setuptools", _SETUPTOOLS_VERSION, "py3"), - ("pip", _PIP_VERSION, "py2.py3"), + ("pip", _PIP_VERSION, "py3"), ] diff --git a/Lib/ensurepip/_bundled/pip-20.2.3-py2.py3-none-any.whl b/Lib/ensurepip/_bundled/pip-21.1.1-py3-none-any.whl similarity index 51% rename from Lib/ensurepip/_bundled/pip-20.2.3-py2.py3-none-any.whl rename to Lib/ensurepip/_bundled/pip-21.1.1-py3-none-any.whl index 7ebdc0f31d4e3ec28cab71df496213e7be7711bf..291cc296fa7b4811f1c8d361cfe58266b9eb7d6d 100644 GIT binary patch delta 802753 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

9NjShO-YCH9cS1n#7u4cpK0cnKm;MW(Ag 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

Hf;5bncDHY-P!QC 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