cpython/Lib
John Belmonte 09c98e4633
[3.12] gh-114563: C decimal falls back to pydecimal for unsupported format strings (GH-114879) (GH-115353)
Immediate merits:
* eliminate complex workarounds for 'z' format support
  (NOTE: mpdecimal recently added 'z' support, so this becomes
  efficient in the long term.)
* fix 'z' format memory leak
* fix 'z' format applied to 'F'
* fix missing '#' format support

Suggested and prototyped by Stefan Krah.

Fixes gh-114563, gh-91060

(cherry picked from commit 72340d15cd)

Co-authored-by: John Belmonte <john@neggie.net>
Co-authored-by: Stefan Krah <skrah@bytereef.org>
2024-02-12 23:31:12 +02:00
..
__phello__
asyncio [3.12] gh-114887 Reject only sockets of type SOCK_STREAM in create_da… (#114980) 2024-02-04 15:42:06 -08:00
collections [3.12] gh-105736: Sync pure python version of OrderedDict with the C version (GH-108098) (#108200) 2023-08-21 14:31:11 +02:00
concurrent [3.12] gh-114440: Close writer pipe in multiprocessing.Queue, not concurrent.futures (GH-114489) 2024-01-24 13:21:10 +01:00
ctypes [3.12] gh-114257: Ignore the FileNotFound error in ctypes.util._is_elf() (GH-114394) (GH-114444) 2024-01-22 18:10:41 +00:00
curses gh-60436: fix curses textbox backspace/del (#103783) 2023-04-26 22:54:07 +02:00
dbm
email [3.12] gh-77749: Fix inconsistent behavior of non-ASCII handling in EmailPolicy.fold() (GH-6986) (GH-114606) 2024-01-26 18:30:32 +02:00
encodings gh-98433: Fix quadratic time idna decoding. (#99092) 2022-11-07 16:54:41 -08:00
ensurepip [3.12] gh-114965: Updated bundled pip to 24.0 (gh-114966) (gh-114971) 2024-02-03 19:37:13 +00:00
html gh-100210: Correct the comment link for unescaping HTML (#100212) 2023-02-19 11:18:12 +01:00
http [3.12] gh-113199: Make read1() and readline() of HTTPResponse close IO after reading all data (GH-113200) (GH-113259) 2023-12-18 20:36:45 +00:00
idlelib [3.12] gh-103820: IDLE: Do not interpret buttons 4/5 as scrolling on non-X11 (GH-103821) (GH-114901) 2024-02-02 15:12:31 +02:00
importlib [3.12] gh-112983: Add the known magic value of 3495 for Python 3.11 bytecode (GH-112985) (#113023) 2023-12-12 18:24:28 +00:00
json [3.12] Revert "GH-96145: Add AttrDict to JSON module for use with object_hook (GH-96146)" (GH-105948) (#106117) 2023-06-26 21:11:49 +02:00
lib2to3
logging [3.12] gh-115233: Fix an example in the Logging Cookbook (GH-115325) (GH-115355) 2024-02-12 18:29:48 +00:00
msilib
multiprocessing [3.12] gh-114440: Close writer pipe in multiprocessing.Queue, not concurrent.futures (GH-114489) 2024-01-24 13:21:10 +01:00
pydoc_data Python 3.12.2 2024-02-06 21:19:44 +01:00
re [3.12] gh-109747: Improve errors for unsupported look-behind patterns (GH-109859) (GH-110859) 2023-10-14 06:42:19 +00:00
site-packages
sqlite3 [3.12] gh-109151: Revert readline support in the sqlite3 CLI (#110542) 2023-10-09 09:13:16 +00:00
test [3.12] gh-114563: C decimal falls back to pydecimal for unsupported format strings (GH-114879) (GH-115353) 2024-02-12 23:31:12 +02:00
tkinter [3.12] gh-113951: Tkinter: "tag_unbind(tag, sequence, funcid)" now only unbinds "funcid" (GH-113955) (GH-114997) 2024-02-04 16:43:56 +00:00
tomllib
turtledemo [3.12] gh-111092: Make turtledemo run without default root enabled (GH-111093) (#111095) 2023-10-20 04:22:15 +00:00
unittest [3.12] gh-113267: Revert "gh-106584: Fix exit code for unittest in Python 3.12 (GH-106588)" (GH-114470) (GH-114994) 2024-02-04 16:00:56 +00:00
urllib [3.12] GH-104554: Add RTSPS support to urllib/parse.py (GH-104605) (#105759) 2023-07-05 13:02:22 +02:00
venv [3.12] gh-112252: Fix error on unset $OSNAME in venv/activate (GH-112253) (GH-112297) 2023-12-25 21:07:09 +02:00
wsgiref bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
xml [3.12] gh-114737: Revert change to ElementTree.iterparse "root" attribute (GH-114755) (GH-114798) 2024-01-31 11:59:58 +00:00
xmlrpc bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
zipfile [3.12] gh-109858: Protect zipfile from "quoted-overlap" zipbomb (GH-110016) (GH-113912) 2024-01-11 11:24:29 +02:00
zoneinfo [3.12] gh-106233: Fix stacklevel in zoneinfo.InvalidTZPathWarning (GH-106234) (GH-115081) 2024-02-06 13:26:39 +00:00
__future__.py
__hello__.py
_aix_support.py gh-96305: Fix AIX build by avoiding subprocess during bootstrap (#96429) 2023-02-02 12:30:49 -08:00
_collections_abc.py gh-91896: Deprecate collections.abc.ByteString (#102096) 2023-05-04 09:39:33 -07:00
_compat_pickle.py
_compression.py
_markupbase.py
_osx_support.py [3.12] gh-102362: Fix macOS version number in result of sysconfig.get_platform() (GH-112942) (#113264) 2023-12-19 19:51:17 +01:00
_py_abc.py
_pydatetime.py [3.12] gh-106392: Fix inconsistency in deprecation warnings in datetime module (GH-114761) (#114767) 2024-01-30 19:24:27 -08:00
_pydecimal.py gh-86682: Adds sys._getframemodulename as an alternative to using _getframe (GH-99520) 2023-01-13 11:31:06 +00:00
_pyio.py [3.12] gh-80109: Fix io.TextIOWrapper dropping the internal buffer during write() (GH-22535) (GH-113808) 2024-01-08 11:00:30 +00:00
_pylong.py gh-102515: Remove unused imports in the Lib/ directory (#102516) 2023-03-08 11:45:38 +00:00
_sitebuiltins.py
_strptime.py [3.12] bpo-36959: Fix error messages for invalid ISO format string in _strptime() (GH-13408) (GH-113495) 2023-12-26 21:56:42 +02:00
_threading_local.py
_weakrefset.py
abc.py gh-87864: Use correct function definition syntax in the docs (#103312) 2023-04-11 16:50:25 +03:00
aifc.py
antigravity.py
argparse.py [3.12] gh-109475: Fix support of explicit option value "--" in argparse (GH-114814) (GH-115036) 2024-02-05 21:02:00 +00:00
ast.py [3.12] gh-110259: Fix f-strings with multiline expressions and format specs (GH-110271) (#110396) 2023-10-05 14:07:25 +00:00
base64.py GH-102456: Fix docstring and getopt options for base64 (gh-102457) 2023-04-02 14:05:50 +09:00
bdb.py gh-101517: fix line number propagation in code generated for except* (#103550) 2023-04-24 21:58:51 +01:00
bisect.py GH-102833: Mention the key function in the docstrings (GH-103009) 2023-03-25 02:19:20 -05:00
bz2.py
calendar.py [3.12] Remove limit in calendar CLI help message for year arg (GH-114719) (GH-114722) 2024-01-29 16:40:32 +00:00
cgi.py
cgitb.py
chunk.py
cmd.py
code.py gh-102778: Add sys.last_exc, deprecate sys.last_type, sys.last_value,sys.last_traceback (#102779) 2023-03-18 11:47:11 +00:00
codecs.py [3.12] gh-50644: Forbid pickling of codecs streams (GH-109180) (#109231) 2023-10-02 16:55:52 +02:00
codeop.py [3.12] gh-111366: Correctly show custom syntax error messages in the codeop module functions (GH-111384). (#111517) 2023-10-30 19:53:01 +00:00
colorsys.py [3.12] gh-106498: Revert incorrect colorsys.rgb_to_hls change (GH-106627) (#106632) 2023-07-11 15:47:15 +00:00
compileall.py GH-84559: Deprecate fork being the multiprocessing default. (#100618) 2023-02-02 15:50:35 -08:00
configparser.py [3.12] Fix typo in configparser module docstring (GH-105652) (#105653) 2023-06-11 14:31:04 +00:00
contextlib.py [3.12] gh-103791: handle BaseExceptionGroup in contextlib.suppress() (GH-111910) (#111955) 2023-11-10 14:00:48 +00:00
contextvars.py
copy.py gh-100815: Normalize types module usage in copy module (#100816) 2023-01-07 21:29:53 +00:00
copyreg.py gh-99325: Remove unused NameError handling (#99326) 2022-11-11 09:56:57 +00:00
cProfile.py gh-103935: Use io.open_code() when executing code in trace and profile modules (GH-103947) 2023-04-27 20:29:35 +00:00
crypt.py
csv.py gh-67230: add quoting rules to csv module (GH-29469) 2023-04-12 15:32:30 -07:00
dataclasses.py gh-103000: Optimise dataclasses.asdict for the common case (#104364) 2023-05-10 22:43:51 +01:00
datetime.py [3.12] gh-84976: Add back UTC to datetime.__all__ (GH-104920) (#106019) 2023-06-26 20:41:52 -07:00
decimal.py
difflib.py
dis.py [3.12] gh-108826: Document dis module CLI and rename _test function to main (#108827) (#110681) 2023-10-11 14:47:38 -06:00
doctest.py [3.12] gh-61648: Detect line numbers of properties in doctests (GH-113161) (GH-113164) 2023-12-15 13:44:45 +00:00
enum.py [3.12] gh-114071: [Enum] update docs and code for tuples/subclasses (GH-114871) (GH-114993) 2024-02-08 14:01:38 -08:00
filecmp.py
fileinput.py gh-101961 fileinput.hookcompressed should not set the encoding value for the binary mode (gh-102068) 2023-02-21 12:10:29 +09:00
fnmatch.py
fractions.py [3.12] gh-114014: Update fractions.Fraction()'s rational parsing regex (GH-114015) (#114023) 2024-01-13 13:21:34 -05:00
ftplib.py [3.12] gh-114241: Fix and improve the ftplib CLI (GH-114242) (GH-114404) 2024-01-21 20:48:12 +00:00
functools.py [3.12] gh-106292: restore checking __dict__ in cached_property.__get__ (GH-106380) (#106469) 2023-07-05 23:31:54 +00:00
genericpath.py gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324) 2023-02-08 14:34:24 +00:00
getopt.py
getpass.py
gettext.py [3.12] gh-110519: Improve deprecation warning in the gettext module (GH-110520) (GH-110563) 2023-10-09 16:27:01 +02:00
glob.py [3.12] gh-79382: Fix recursive glob() with trailing "**" (GH-115134) (GH-115290) 2024-02-11 10:57:40 +00:00
graphlib.py
gzip.py [3.12] gh-108111: Flush gzip write buffer before seeking, fixing bad writes (GH-108341) (#108402) 2023-08-24 12:30:16 +02:00
hashlib.py gh-99108: Refactor _sha256 & _sha512 into _sha2. (#101924) 2023-02-15 22:08:20 -08:00
heapq.py
hmac.py [3.12] gh-112999: Replace the outdated "deprecated" directives with "versionchanged" (GH-113000) (GH-113019) 2023-12-12 17:20:51 +00:00
imaplib.py gh-94172: Remove keyfile, certfile and check_hostname parameters (#94173) 2022-11-03 18:32:25 +01:00
imghdr.py gh-85455: Add missing doc strings and improve docs (#21573) 2022-10-15 09:31:06 -04:00
inspect.py [3.12] gh-105080: Fixed inconsistent signature on derived classes (GH-105217) (#105257) 2023-06-02 17:05:49 -06:00
io.py gh-111356: io: Add missing documented objects to io.__all__ (GH-111370) 2023-11-10 07:37:19 +00:00
ipaddress.py [3.12] gh-110196: Fix ipaddress.IPv6Address.__reduce__ (GH-110198) (GH-111191) 2023-10-22 19:14:50 +00:00
keyword.py gh-103763: Implement PEP 695 (#103764) 2023-05-15 20:36:23 -07:00
linecache.py
locale.py [3.12] gh-111187: Postpone removal version for locale.getdefaultlocale() to 3.15 (GH-111188) (#111323) 2023-10-27 16:08:45 +03:00
lzma.py
mailbox.py [3.12] GH-gh-75705: Set unixfrom envelope in mailbox._mboxMMDF (GH-107117) (GH-115098) 2024-02-06 19:05:05 +00:00
mailcap.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
mimetypes.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
modulefinder.py
netrc.py
nntplib.py
ntpath.py [3.12] gh-106242: Make ntpath.realpath errors consistent with abspath when there are embedded nulls (GH-108248) (#108251) 2023-08-22 12:01:24 +02:00
nturl2path.py
numbers.py
opcode.py gh-103865: add monitoring support to LOAD_SUPER_ATTR (#103866) 2023-05-16 10:29:00 -06:00
operator.py
optparse.py
os.py gh-89727: Improve os.walk complexity (#100671) 2023-01-02 13:41:19 -08:00
pathlib.py [3.12] GH-110488: Fix two small issues in pathlib.PurePath.with_name() (GH-110651) (#110678) 2023-10-11 04:30:23 +00:00
pdb.py [3.12] gh-112343: pdb: Use tokenize to replace convenience variables (GH-112380) (#114202) 2024-01-17 22:15:44 +00:00
pickle.py [3.12] gh-85567: Fix resouce warnings in pickle and pickletools CLIs (GH-113618) (GH-113758) 2024-01-05 22:37:43 +00:00
pickletools.py [3.12] gh-115146: Fix typo in pickletools.py documentation (GH-115148) (GH-115155) 2024-02-08 08:30:31 +00:00
pipes.py
pkgutil.py gh-97850: Deprecate find_loader and get_loader in pkgutil (GH-98520) 2023-05-03 16:11:54 -07:00
platform.py gh-103977: compile re expressions in platform.py only if required (#103981) 2023-04-30 08:36:19 -07:00
plistlib.py gh-101992: update pstlib module documentation (#102133) 2023-03-04 13:35:25 -08:00
poplib.py gh-94172: Remove keyfile, certfile and check_hostname parameters (#94173) 2022-11-03 18:32:25 +01:00
posixpath.py gh-101196: Make isdir/isfile/exists faster on Windows (GH-101324) 2023-02-08 14:34:24 +00:00
pprint.py [3.12] [pprint]: Add docstring about PrettyPrinter.underscore_numbers parameter (GH-112963) (#113053) 2023-12-13 12:38:07 +00:00
profile.py gh-103935: Use io.open_code() when executing code in trace and profile modules (GH-103947) 2023-04-27 20:29:35 +00:00
pstats.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
pty.py gh-96522: Fix deadlock in pty.spawn (#96639) 2023-05-19 13:22:43 +00:00
py_compile.py
pyclbr.py
pydoc.py [3.12] gh-97959: Fix rendering of routines in pydoc (GH-113941) (GH-115296) 2024-02-11 13:56:34 +00:00
queue.py
quopri.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
random.py [3.12] gh-109653: Reduce the import time of random by 60% (GH-110221) (#110247) 2023-10-02 23:31:55 +00:00
reprlib.py [3.12] gh-109818: reprlib.recursive_repr copies __type_params__ (… (#109999) 2023-10-02 17:41:26 +02:00
rlcompleter.py
runpy.py gh-98040: Remove just the imp module (#98573) 2023-04-28 16:17:58 -07:00
sched.py
secrets.py gh-99305: Speed up secrets.token_hex() ~2x (#99306) 2022-11-11 14:45:24 -08:00
selectors.py [3.12] gh-110038: KqueueSelector must count all read/write events (GH-110039) (#110043) 2023-10-02 17:42:55 +02:00
shelve.py
shlex.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
shutil.py [3.12] gh-113803: Fix inaccurate documentation for shutil.move when dst is an existing directory (GH-113837) (#115006) 2024-02-04 19:00:03 +00:00
signal.py [3.12] gh-112559: Avoid unnecessary conversion attempts to enum_klass in signal.py (GH-113040) (#113443) 2023-12-23 18:09:59 -08:00
site.py [3.12] gh-113659: Skip hidden .pth files (GH-113660) (GH-114143) 2024-01-16 18:57:14 +00:00
smtplib.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
sndhdr.py gh-85525: Indicate supported sound header formats (#21575) 2022-10-15 09:30:05 -04:00
socket.py [3.12] gh-114077: Fix OverflowError in socket.sendfile() when pass count >2GiB (GH-114079) (GH-114110) 2024-01-16 13:53:02 +02:00
socketserver.py gh-103673: Add missing ForkingUnixStreamServer and ForkingUnixDatagramServer socketservers (#103674) 2023-04-24 22:35:52 +00:00
sre_compile.py
sre_constants.py
sre_parse.py
ssl.py [3.12] gh-113280: Always close socket if SSLSocket creation failed (GH-114659) (GH-114995) 2024-02-04 16:12:19 +00:00
stat.py
statistics.py GH-102670: Use sumprod() to simplify, speed up, and improve accuracy of statistics functions (GH-102649) 2023-03-13 20:06:43 -05:00
string.py
stringprep.py
struct.py
subprocess.py [3.12] gh-104522: Fix OSError raised when run a subprocess (GH-114195) (#114219) 2024-01-18 01:19:11 +00:00
sunau.py
symtable.py [3.12] gh-110045: Update symtable module for PEP 695 (GH-110066) (#110070) 2023-09-29 08:10:22 +02:00
sysconfig.py gh-102515: Remove unused imports in the Lib/ directory (#102516) 2023-03-08 11:45:38 +00:00
tabnanny.py gh-102856: Python tokenizer implementation for PEP 701 (#104323) 2023-05-21 01:03:02 +01:00
tarfile.py [3.12] gh-114959: tarfile: do not ignore errors when extract a directory on top of a file (GH-114960) (GH-114963) 2024-02-03 18:39:01 +02:00
telnetlib.py
tempfile.py [3.12] gh-79325: Fix recursion error in TemporaryDirectory cleanup on Windows (GH-112762) (GH-112847) 2023-12-07 17:36:29 +00:00
textwrap.py
this.py
threading.py [3.12] gh-102512: Turn _DummyThread into _MainThread after os.fork() called from a foreign thread (GH-113261) (GH-114430) 2024-01-22 15:24:43 +00:00
timeit.py [3.12] gh-105052:update timeit function's description (GH-105060) (#108534) 2023-08-27 16:15:01 +02:00
token.py gh-102856: Python tokenizer implementation for PEP 701 (#104323) 2023-05-21 01:03:02 +01:00
tokenize.py [3.12] gh-105390: Correctly raise TokenError instead of SyntaxError for tokenize errors (GH-105399) (#105439) 2023-06-07 12:38:36 +01:00
trace.py [3.12] gh-38807: Fix race condition in Lib/trace.py (GH-110143) (GH-114206) 2024-01-17 20:35:00 +00:00
traceback.py [3.12] gh-113358: Fix rendering tracebacks with exceptions with a broken __getattr__ (GH-113359) (#114173) 2024-01-21 17:12:17 +00:00
tracemalloc.py
tty.py [3.12] gh-114328: tty cbreak mode should not alter ICRNL (GH-114335) (#114410) 2024-01-21 23:41:03 +00:00
turtle.py [3.12] gh-107805: Fix signatures of module-level generated functions in turtle (GH-107807) (#108749) 2023-09-01 15:32:35 +02:00
types.py [3.12] gh-107576: Ensure __orig_bases__ are our own in get_original_bases (GH-107584) (#107592) 2023-08-03 17:07:43 +02:00
typing.py [3.12] gh-115165: Fix typing.Annotated for immutable types (GH-115213) (#115227) 2024-02-09 22:31:57 +00:00
uu.py gh-99889: Fix directory traversal security flaw in uu.decode() (#104096) 2023-05-09 16:01:58 +00:00
uuid.py gh-104396: uuid.py to skip platform check for emscripten and wasi (gh-104397) 2023-05-12 07:45:55 +09:00
warnings.py [3.12] gh-113781: Silence AttributeError in warning module during Python finalization (GH-113813) (GH-113873) 2024-01-09 22:40:30 +02:00
wave.py [3.12] gh-105096: Reformat wave documentation (#105136) (#105138) 2023-05-31 12:04:21 +00:00
weakref.py
webbrowser.py [3.12] gh-113543: Make sure that MacOSXOSAScript sends webbrowser.open audit event (GH-113544) (#113549) 2023-12-29 09:56:18 +01:00
xdrlib.py bpo-45975: Simplify some while-loops with walrus operator (GH-29347) 2022-11-26 14:33:25 -08:00
zipapp.py
zipimport.py GH-87235: Make sure "python /dev/fd/9 9</path/to/script.py" works on macOS (#99768) 2022-11-27 11:56:14 +01:00