/
NEWS
5441 lines (3640 loc) · 210 KB
/
NEWS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
+++++++++++
Python News
+++++++++++
What's New in Python 3.2.1?
===========================
*Release date: XX-XXX-20XX*
Core and Builtins
-----------------
- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with
a buffer struct having a NULL data pointer.
- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and
sys.stdin uses universal newline (replace '\r\n' by '\n').
- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on
narrow build.
- Check for NULL result in PyType_FromSpec.
Library
-------
- Issue #7322: Trying to read from a socket's file-like object after a timeout
occurred now raises an error instead of silently losing data.
- Issue #10956: Buffered I/O classes retry reading or writing after a signal
has arrived and the handler returned successfully.
- Issue #11224: Fixed a regression in tarfile that affected the file-like
objects returned by TarFile.extractfile() regarding performance, memory
consumption and failures with the stream interface.
- Issue #11074: Make 'tokenize' so it can be reloaded.
- Issue #4681: Allow mmap() to work on file sizes and offsets larger than
4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for
32-bit Windows.
- Issue #11089: Fix performance issue limiting the use of ConfigParser()
with large config files.
- Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers
larger than 4GB. Patch by Nadeem Vawda.
Build
-----
- Issue #11268: Prevent Mac OS X Installer failure if Documentation
package had previously been installed.
Tests
-----
- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due
to open door files.
What's New in Python 3.2?
=========================
*Release date: 20-Feb-2011*
Core and Builtins
-----------------
- Issue #11249: Fix potential crashes when using the limited API.
Build
-----
- Issue #11222: Fix non-framework shared library build on Mac OS X.
- Issue #11184: Fix large-file support on AIX.
- Issue #941346: Fix broken shared library build on AIX.
Documentation
-------------
- Issue #10709: Add updated AIX notes in Misc/README.AIX.
What's New in Python 3.2 Release Candidate 3?
=============================================
*Release date: 13-Feb-2011*
Core and Builtins
-----------------
- Issue #11134: Add missing fields to typeslots.h.
- Issue #11135: Remove redundant doc field from PyType_Spec.
- Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check in the limited
ABI.
- Issue #11118: Fix bogus export of None in python3.dll.
Library
-------
- Issue #11116: any error during addition of a message to a mailbox now causes a
rollback, instead of leaving the mailbox partially modified.
- Issue #11132: Fix passing of "optimize" parameter when recursing in
compileall.compile_dir().
- Issue #11110: Fix a potential decref of a NULL in sqlite3.
- Issue #8275: Fix passing of callback arguments with ctypes under Win64. Patch
by Stan Mihai.
Build
-----
- Issue #11079: The /Applications/Python x.x folder created by the Mac OS X
installers now includes a link to the installed documentation and no longer
includes an Extras directory. The Tools directory is now installed in the
framework under share/doc.
- Issue #11121: Fix building with --enable-shared.
Tests
-----
- Issue #10971: test_zipimport_support is once again compatible with the refleak
hunter feature of test.regrtest.
What's New in Python 3.2 Release Candidate 2?
=============================================
*Release date: 30-Jan-2011*
Core and Builtins
-----------------
- Issue #10451: memoryview objects could allow to mutate a readable buffer.
Initial patch by Ross Lagerwall.
Library
-------
- Issue #9124: mailbox now accepts binary input and reads and writes mailbox
files in binary mode, using the email package's binary support to parse
arbitrary email messages. StringIO and text file input is deprecated,
and string input fails early if non-ASCII characters are used, where
previously it would fail when the email was processed in a later step.
- Issue #10845: Mitigate the incompatibility between the multiprocessing
module on Windows and the use of package, zipfile or directory execution
by special casing main modules that actually *are* called __main__.py.
- Issue #11045: Protect logging call against None argument.
- Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save
commands.
- Issue #11053: Fix IDLE "Syntax Error" windows to behave as in 2.x,
preventing a confusing hung appearance on OS X with the windows
obscured.
- Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the
menu accelerators for Open Module, Go to Line, and New Indent Width.
The accelerators still work but no longer appear in the menu items.
- Issue #10989: Fix a crash on SSLContext.load_verify_locations(None, True).
- Issue #11020: Command-line pyclbr was broken because of missing 2-to-3
conversion.
- Issue #11019: Fixed BytesGenerator so that it correctly handles a Message
with a None body.
- Issue #11014: Make 'filter' argument in tarfile.Tarfile.add() into a
keyword-only argument. The preceding positional argument was deprecated,
so it made no sense to add filter as a positional argument.
- Issue #11004: Repaired edge case in deque.count().
- Issue #10974: IDLE no longer crashes if its recent files list includes files
with non-ASCII characters in their path names.
- Have hashlib.algorithms_available and hashlib.algorithms_guaranteed both
return sets instead of one returning a tuple and the other a frozenset.
- Issue #10987: Fix the recursion limit handling in the _pickle module.
- Issue #10983: Fix several bugs making tunnel requests in http.client.
- Issue #10955: zipimport uses ASCII encoding instead of cp437 to decode
filenames, at bootstrap, if the codec registry is not ready yet. It is still
possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding)
for all file entries in the ZIP file.
- Issue #10949: Improved robustness of rotating file handlers.
- Issue #10955: Fix a potential crash when trying to mmap() a file past its
length. Initial patch by Ross Lagerwall.
- Issue #10898: Allow compiling the posix module when the C library defines
a symbol named FSTAT.
- Issue #10980: the HTTP server now encodes headers with iso-8859-1 (latin1)
encoding. This is the preferred encoding of PEP 3333 and the base encoding
of HTTP 1.1.
- To match the behaviour of HTTP server, the HTTP client library now also
encodes headers with iso-8859-1 (latin1) encoding. It was already doing
that for incoming headers which makes this behaviour now consistent in
both incoming and outgoing direction.
- Issue #9509: argparse now properly handles IOErrors raised by
argparse.FileType.
- Issue #10961: The new pydoc server now better handles exceptions raised
during request handling.
- Issue #10680: Fix mutually exclusive arguments for argument groups in
argparse.
Build
-----
- Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with
the system-provided Python.
What's New in Python 3.2 Release Candidate 1
============================================
*Release date: 16-Jan-2011*
Core and Builtins
-----------------
- Issue #10889: range indexing and slicing now works correctly on ranges with
a length that exceeds sys.maxsize.
- Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a
class.
- Issue #8020: Avoid a crash where the small objects allocator would read
non-Python managed memory while it is being modified by another thread. Patch
by Matt Bandy.
- Issue #10841: On Windows, set the binary mode on stdin, stdout, stderr and all
io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser
translates newlines (\r\n => \n).
- Remove buffer API from stable ABI for now, see #10181.
- Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file
doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int
(length bigger than 2^31-1 bytes).
- Issue #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and
stdprinter.write() clamp the length to 2^31-1 on Windows.
- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime()
can now handle dates after 2038.
- Issue #10780: PyErr_SetFromWindowsErrWithFilename() and
PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the
filesystem encoding instead of UTF-8.
- Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem
encoding instead of UTF-8.
- Add sys.flags attribute for the new -q command-line option.
Library
-------
- Issue #10916: mmap should not segfault when a file is mapped using 0 as length
and a non-zero offset, and an attempt to read past the end of file is made
(IndexError is raised instead). Patch by Ross Lagerwall.
- Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather
than the currently problematic Apple-supplied one, when running with the
64-/32-bit installer variant.
- Issue #4953: cgi.FieldStorage and cgi.parse() parse the request as bytes, not
as unicode, and accept binary files. Add encoding and errors attributes to
cgi.FieldStorage. Patch written by Pierre Quentel (with many inputs by Glenn
Linderman).
- Add encoding and errors arguments to urllib.parse_qs() and urllib.parse_qsl().
- Issue #10899: No function type annotations in the standard library. Removed
function type annotations from _pyio.py.
- Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'.
- Issue #10872: The repr() of TextIOWrapper objects now includes the mode
if available.
- Issue #10869: Fixed bug where ast.increment_lineno modified the root node
twice.
- Issue #5871: email.header.Header.encode now raises an error if any
continuation line in the formatted value has no leading white space and looks
like a header. Since Generator uses Header to format all headers, this check
is made for all headers in any serialized message at serialization time. This
provides protection against header injection attacks.
- Issue #10859: Make ``contextlib.GeneratorContextManager`` officially
private by renaming it to ``_GeneratorContextManager``.
- Issue #10042: Fixed the total_ordering decorator to handle cross-type
comparisons that could lead to infinite recursion.
- Issue #10686: the email package now :rfc:`2047`\ -encodes headers with
non-ASCII bytes (parsed by a Bytes Parser) when doing conversion to 7bit-clean
presentation, instead of replacing them with ?s.
- email.header.Header was incorrectly encoding folding white space when
rfc2047-encoding header values with embedded newlines, leaving them without
folding whitespace. It now uses the continuation_ws, as it does for
continuation lines that it creates itself.
- Issue #1777412, #10827: Changed the rules for 2-digit years. The
time.asctime(), time.ctime() and time.strftime() functions will now format
any year when ``time.accept2dyear`` is False and will accept years >= 1000
otherwise. ``time.mktime`` and ``time.strftime`` now accept full range
supported by the OS. With Visual Studio or on Solaris, the year is limited to
the range [1; 9999]. Conversion of 2-digit years to 4-digit is deprecated.
- Issue #7858: Raise an error properly when os.utime() fails under Windows
on an existing file.
- Issue #3839: wsgiref should not override a Content-Length header set by
the application. Initial patch by Clovis Fabricio.
- Issue #10492: bdb.Bdb.run() only traces the execution of the code, not the
compilation (if the input is a string).
- Issue #7995: When calling accept() on a socket with a timeout, the returned
socket is now always blocking, regardless of the operating system.
- Issue #10756: atexit normalizes the exception before displaying it. Patch by
Andreas Stührk.
- Issue #10790: email.header.Header.append's charset logic now works correctly
for charsets whose output codec is different from its input codec.
- Issue #10819: SocketIO.name property returns -1 when its closed, instead of
raising a ValueError, to fix repr().
- Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if
the input buffer length doesn't fit into an unsigned int (length bigger than
2^32-1 bytes).
- Issue #6643: Reinitialize locks held within the threading module after fork to
avoid a potential rare deadlock or crash on some platforms.
- Issue #10806, issue #9905: Fix subprocess pipes when some of the standard file
descriptors (0, 1, 2) are closed in the parent process. Initial patch by Ross
Lagerwall.
- `unittest.TestCase` can be instantiated without a method name; for simpler
exploration from the interactive interpreter.
- Issue #10798: Reject supporting concurrent.futures if the system has too
few POSIX semaphores.
- Issue #10807: Remove base64, bz2, hex, quopri, rot13, uu and zlib codecs from
the codec aliases. They are still accessible via codecs.lookup().
- Issue #10801: In zipfile, support different encodings for the header and the
filenames.
- Issue #6285: IDLE no longer crashes on missing help file; patch by Scott
David Daniels.
- Fix collections.OrderedDict.setdefault() so that it works in subclasses that
define __missing__().
- Issue #10786: unittest.TextTestRunner default stream no longer bound at import
time. `sys.stderr` now looked up at instantiation time. Fix contributed by
Mark Roddy.
- Issue #10753: Characters ';','=' and ',' in the PATH_INFO environment variable
won't be quoted when the URI is constructed by the wsgiref.util 's request_uri
method. According to RFC 3986, these characters can be a part of params in
PATH component of URI and need not be quoted.
- Issue #10738: Fix webbrowser.Opera.raise_opts.
- Issue #9824: SimpleCookie now encodes , and ; in values to cater to how
browsers actually parse cookies.
- Issue #9333: os.symlink now available regardless of user privileges. The
function now raises OSError on Windows >=6.0 when the user is unable to create
symbolic links. XP and 2003 still raise NotImplementedError.
- Issue #10783: struct.pack() no longer implicitly encodes unicode to UTF-8.
- Issue #10730: Add SVG mime types to mimetypes module.
- Issue #10768: Make the Tkinter ScrolledText widget work again.
- Issue #10777: Fix "dictionary changed size during iteration" bug in
ElementTree register_namespace().
- Issue #10626: test_logging now preserves logger disabled states.
- Issue #10774: test_logging now removes temp files created during tests.
- Issue #5258/#10642: if site.py encounters a .pth file that generates an error,
it now prints the filename, line number, and traceback to stderr and skips
the rest of that individual file, instead of stopping processing entirely.
- Issue #10763: subprocess.communicate() closes stdout and stderr if both are
pipes (bug specific to Windows).
- Issue #1693546: fix email.message RFC 2231 parameter encoding to be in better
compliance (no "s around encoded values).
- Improved the diff message in the unittest module's assertCountEqual().
- Issue #1155362: email.utils.parsedate_tz now handles a missing space before
the '-' of a timezone field as well as before a '+'.
- Issue #4871: The zipfile module now gives a more useful error message if
an attempt is made to use a string to specify the archive password.
- Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only.
- Deprecated assertDictContainsSubset() in the unittest module.
C-API
-----
- Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and
PyEval_ReleaseLock(). The thread-state aware APIs should be used instead.
- Issue #10333: Remove ancient GC API, which has been deprecated since Python
2.2.
Build
-----
- Issue #10843: Update third-party library versions used in OS X 32-bit
installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4 (with FTS3/FTS4
and RTREE enabled), and ncursesw 5.5 (wide-char support enabled).
- Issue #10820: Fix OS X framework installs to support version-specific
scripts (#10679).
- Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in
the configure script but use $GREP instead. Patch by Fabian Groffen.
- Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD
and DragonFly BSD. Patch by Nicolas Joly.
- Issue #10679: The "idle", "pydoc" and "2to3" scripts are now installed with
a version-specific suffix on "make altinstall".
- Issue #10655: Fix the build on PowerPC on Linux with GCC when building with
timestamp profiling (--with-tsc): the preprocessor test for the PowerPC
support now looks for "__powerpc__" as well as "__ppc__": the latter seems to
only be present on OS X; the former is the correct one for Linux with GCC.
Tools/Demos
-----------
- Issue #10843: Install the Tools directory on OS X in the applications Extras
(/Applications/Python 3.n/Extras/) where the Demo directory had previous been
installed.
- Issue #7962: The Demo directory is gone. Most of the old and unmaintained
demos have been removed, others integrated in documentation or a new
Tools/demo subdirectory.
- Issue #10502: Addition of the unittestgui tool. Originally by Steve Purcell.
Updated for test discovery by Mark Roddy and Python 3 compatibility by Brian
Curtin.
Tests
-----
- Issue #10822: Fix test_posix:test_getgroups failure under Solaris. Patch
by Ross Lagerwall.
- Make the --coverage flag work for test.regrtest.
- Issue #1677694: Refactor and improve test_timeout. Original patch by
Björn Lindqvist.
- Issue #5485: Add tests for the UseForeignDTD method of expat parser objects.
Patch by Jean-Paul Calderone and Sandro Tosi.
- Issue #6293: Have regrtest.py echo back sys.flags. This is done by default in
whole runs and enabled selectively using ``--header`` when running an explicit
list of tests. Original patch by Collin Winter.
What's New in Python 3.2 Beta 2?
================================
*Release date: 19-Dec-2010*
Core and Builtins
-----------------
- Issue #8844: Regular and recursive lock acquisitions can now be interrupted
by signals on platforms using pthreads. Patch by Reid Kleckner.
- Issue #4236: PyModule_Create2 now checks the import machinery directly
rather than the Py_IsInitialized flag, avoiding a Fatal Python
error in certain circumstances when an import is done in __del__.
- Issue #5587: add a repr to dict_proxy objects. Patch by David Stanek and
Daniel Urban.
Library
-------
- Issue #3243: Support iterable bodies in httplib. Patch Contributions by
Xuanji Li and Chris AtLee.
- Issue #10611: SystemExit exception will no longer kill a unittest run.
- Issue #9857: It is now possible to skip a test in a setUp, tearDown or clean
up function.
- Issue #10573: use actual/expected consistently in unittest methods.
The order of the args of assertCountEqual is also changed.
- Issue #9286: email.utils.parseaddr no longer concatenates blank-separated
words in the local part of email addresses, thereby preserving the input.
- Issue #6791: Limit header line length (to 65535 bytes) in http.client
and http.server, to avoid denial of services from the other party.
- Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle.
- Issue #9907: Fix tab handling on OSX when using editline by calling
rl_initialize first, then setting our custom defaults, then reading .editrc.
- Issue #4188: Avoid creating dummy thread objects when logging operations
from the threading module (with the internal verbose flag activated).
- Issue #10711: Remove HTTP 0.9 support from http.client. The ``strict``
parameter to HTTPConnection and friends is deprecated.
- Issue #9721: Fix the behavior of urljoin when the relative url starts with a
';' character. Patch by Wes Chow.
- Issue #10714: Limit length of incoming request in http.server to 65536 bytes
for security reasons. Initial patch by Ross Lagerwall.
- Issue #9558: Fix distutils.command.build_ext with VS 8.0.
- Issue #10667: Fast path for collections.Counter().
- Issue #10695: passing the port as a string value to telnetlib no longer
causes debug mode to fail.
- Issue #1078919: add_header now automatically RFC2231 encodes parameters
that contain non-ascii values.
- Issue #10188 (partial resolution): tempfile.TemporaryDirectory emits
a warning on sys.stderr rather than throwing a misleading exception
if cleanup fails due to nulling out of modules during shutdown.
Also avoids an AttributeError when mkdtemp call fails and issues
a ResourceWarning on implicit cleanup via __del__.
- Issue #10107: Warn about unsaved files in IDLE on OSX.
- Issue #7213: subprocess.Popen's default for close_fds has been changed.
It is now True in most cases other than on Windows when input, output or
error handles are provided.
- Issue #6559: subprocess.Popen has a new pass_fds parameter (actually
added in 3.2beta1) to allow specifying a specific list of file descriptors
to keep open in the child process.
- Issue #1731717: Fixed the problem where subprocess.wait() could cause an
OSError exception when The OS had been told to ignore SIGCLD in our process
or otherwise not wait for exiting child processes.
Tests
-----
- Issue #775964: test_grp now skips YP/NIS entries instead of failing when
encountering them.
Tools/Demos
-----------
- Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and
Cocoa AquaTk.
- Issue #10710: ``Misc/setuid-prog.c`` is removed from the source tree.
- Issue #10706: Remove outdated script runtests.sh. Either ``make test``
or ``python -m test`` should be used instead.
Build
-----
- The Windows build now uses Tcl/Tk 8.5.9 and sqlite3 3.7.4.
- Issue #9234: argparse supports alias names for subparsers.
What's New in Python 3.2 Beta 1?
================================
*Release date: 05-Dec-2010*
Core and Builtins
-----------------
- Issue #10630: Return dict views from the dict proxy keys()/values()/items()
methods.
- Issue #10596: Fix float.__mod__ to have the same behaviour as float.__divmod__
with respect to signed zeros. -4.0 % 4.0 should be 0.0, not -0.0.
- Issue #1772833: Add the -q command-line option to suppress copyright and
version output in interactive mode.
- Provide an *optimize* parameter in the built-in compile() function.
- Fixed several corner case issues on Windows in os.stat/os.lstat related to
reparse points.
- PEP 384 (Defining a Stable ABI) is implemented.
- Issue #2690: Range objects support negative indices and slicing.
- Issue #9915: Speed up sorting with a key.
- Issue #8685: Speed up set difference ``a - b`` when source set ``a`` is much
larger than operand ``b``. Patch by Andrew Bennetts.
- Issue #10518: Bring back the callable() builtin.
- Issue #7094: Added alternate formatting (specified by '#') to ``__format__``
method of float, complex, and Decimal. This allows more precise control over
when decimal points are displayed.
- Issue #10474: range.count() should return integers.
- Issue #1574217: isinstance now catches only AttributeError, rather than
masking all errors.
Library
-------
- logging: added "handler of last resort". See http://bit.ly/last-resort-handler
- test.support: Added TestHandler and Matcher classes for better support of
assertions about logging.
- Issue #4391: Use proper plural forms in argparse.
- Issue #10601: sys.displayhook uses 'backslashreplace' error handler on
UnicodeEncodeError.
- Add the "display" and "undisplay" pdb commands.
- Issue #7245: Add a SIGINT handler in pdb that allows to break a program again
after a "continue" command.
- Add the "interact" pdb command.
- Issue #7905: Actually respect the keyencoding parameter to shelve.Shelf.
- Issue #1569291: Speed up array.repeat().
- Provide an interface to set the optimization level of compilation in
py_compile, compileall and zipfile.PyZipFile.
- Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by
RFC3986. Anything before :// is considered a scheme and is followed by an
authority (or netloc) and by '/' led path, which is optional.
- Issue #6045: dbm.gnu databases now support get() and setdefault() methods.
- Issue #10620: `python -m unittest` can accept file paths instead of module
names for running specific tests.
- Issue #9424: Deprecate the `unittest.TestCase` methods `assertEquals`,
`assertNotEquals`, `assertAlmostEquals`, `assertNotAlmostEquals` and `assert_`
and replace them with the correct methods in the Python test suite.
- Issue #10272: The ssl module now raises socket.timeout instead of a generic
SSLError on socket timeouts.
- Issue #10528: Allow translators to reorder placeholders in localizable
messages from argparse.
- Issue #10497: Fix incorrect use of gettext in argparse.
- Issue #10478: Reentrant calls inside buffered IO objects (for example by
way of a signal handler) now raise a RuntimeError instead of freezing the
current process.
- logging: Added getLogRecordFactory/setLogRecordFactory with docs and tests.
- Issue #10549: Fix pydoc traceback when text-documenting certain classes.
- Issue #2001: New HTML server with enhanced Web page features. Patch by Ron
Adam.
- Issue #10360: In WeakSet, do not raise TypeErrors when testing for membership
of non-weakrefable objects.
- Issue #940286: pydoc.Helper.help() ignores input/output init parameters.
- Issue #1745035: Add a command size and data size limit to smtpd.py, to prevent
DoS attacks. Patch by Savio Sena.
- Issue #4925: Add filename to error message when executable can't be found in
subprocess.
- Issue #10391: Don't dereference invalid memory in error messages in the ast
module.
- Issue #10027: st_nlink was not being set on Windows calls to os.stat or
os.lstat. Patch by Hirokazu Yamamoto.
- Issue #9333: Expose os.symlink only when the SeCreateSymbolicLinkPrivilege is
held by the user's account, i.e., when the function can actually be used.
- Issue #8879: Add os.link support for Windows.
- Issue #7911: ``unittest.TestCase.longMessage`` defaults to True for improved
failure messages by default. Patch by Mark Roddy.
- Issue #1486713: HTMLParser now has an optional tolerant mode where it tries to
guess at the correct parsing of invalid html.
- Issue #10554: Add context manager support to subprocess.Popen objects.
- Issue #8989: email.utils.make_msgid now has a domain parameter that can
override the domain name used in the generated msgid.
- Issue #9299: Add exist_ok parameter to os.makedirs to suppress the 'File
exists' exception when a target directory already exists with the specified
mode. Patch by Ray Allen.
- Issue #9573: os.fork() now works correctly when triggered as a side effect of
a module import.
- Issue #10464: netrc now correctly handles lines with embedded '#' characters.
- Added itertools.accumulate().
- Issue #4113: Added custom ``__repr__`` method to ``functools.partial``.
Original patch by Daniel Urban.
- Issue #10273: Rename `assertRegexpMatches` and `assertRaisesRegexp` to
`assertRegex` and `assertRaisesRegex`.
- Issue #10535: Enable silenced warnings in unittest by default.
- Issue #9873: The URL parsing functions in urllib.parse now accept ASCII byte
sequences as input in addition to character strings.
- Issue #10586: The statistics API for the new functools.lru_cache has been
changed to a single cache_info() method returning a named tuple.
- Issue #10323: itertools.islice() now consumes the minimum number of inputs
before stopping. Formerly, the final state of the underlying iterator was
undefined.
- Issue #10565: The collections.Iterator ABC now checks for both __iter__ and
__next__.
- Issue #10242: Fixed implementation of unittest.ItemsEqual and gave it a new
more informative name, unittest.CountEqual.
- Issue #10561: In pdb, clear the breakpoints by the breakpoint number.
- Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which can
be set to False to turn off the previously undocumented 'popularity'
heuristic. Patch by Terry Reedy and Eli Bendersky.
- Issue #10534: in difflib, expose bjunk and bpopular sets; deprecate
undocumented and now redundant isbjunk and isbpopular methods.
- Issue #9846: zipfile is now correctly closing underlying file objects.
- Issue #10459: Update CJK character names to Unicode 6.0.
- Issue #4493: urllib.request adds '/' in front of path components which does not
start with '/. Common behavior exhibited by browsers and other clients.
- Issue #6378: idle.bat now runs with the appropriate Python version rather than
the system default. Patch by Sridhar Ratnakumar.
- Issue #10470: 'python -m unittest' will now run test discovery by default,
when no extra arguments have been provided.
- Issue #3709: BaseHTTPRequestHandler will buffer the headers and write to
output stream only when end_headers is invoked. This is a speedup and an
internal optimization. Patch by endian.
- Issue #10220: Added inspect.getgeneratorstate. Initial patch by Rodolpho
Eckhardt.
- Issue #10453: compileall now uses argparse instead of getopt, and thus
provides clean output when called with '-h'.
- Issue #8078: Add constants for higher baud rates in the termios module. Patch
by Rodolpho Eckhardt.
- Issue #10407: Fix two NameErrors in distutils.
- Issue #10371: Deprecated undocumented functions in the trace module.
- Issue #10467: Fix BytesIO.readinto() after seeking into a position after the
end of the file.
- configparser: 100% test coverage.
- Issue #10499: configparser supports pluggable interpolation handlers. The
default classic interpolation handler is called BasicInterpolation. Another
interpolation handler added (ExtendedInterpolation) which supports the syntax
used by zc.buildout (e.g. interpolation between sections).
- configparser: the SafeConfigParser class has been renamed to ConfigParser.
The legacy ConfigParser class has been removed but its interpolation mechanism
is still available as LegacyInterpolation.
- configparser: Usage of RawConfigParser is now discouraged for new projects
in favor of ConfigParser(interpolation=None).
- Issue #1682942: configparser supports alternative option/value delimiters.
- Issue #5412: configparser supports mapping protocol access.
- Issue #9411: configparser supports specifying encoding for read operations.
- Issue #9421: configparser's getint(), getfloat() and getboolean() methods
accept vars and default arguments just like get() does.
- Issue #9452: configparser supports reading from strings and dictionaries
(thanks to the mapping protocol API, the latter can be used to copy data
between parsers).
- configparser: accepted INI file structure is now customizable, including
comment prefixes, name of the DEFAULT section, empty lines in multiline
values, and indentation.
- Issue 10326: unittest.TestCase instances can be pickled.
- Issue 9926: Wrapped TestSuite subclass does not get __call__ executed.
- Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to complex
zeros on systems where the log1p function fails to respect the sign of zero.
This fixes a test failure on AIX.
- Issue #9732: Addition of getattr_static to the inspect module.
- Issue #10446: Module documentation generated by pydoc now links to a
version-specific online reference manual.
- Make the 'No module named' exception message from importlib consistent.
- Issue #10443: Add the SSLContext.set_default_verify_paths() method.
- Issue #10440: Support RUSAGE_THREAD as a constant in the resource module.
Patch by Robert Collins.
- Issue #10429: IMAP.starttls() stored the capabilities as bytes objects, rather
than strings.
C-API
-----
- Issue #10557: Added a new API function, PyUnicode_TransformDecimalToASCII(),
which transforms non-ASCII decimal digits in a Unicode string to their ASCII
equivalents.
- Issue #9518: Extend the PyModuleDef_HEAD_INIT macro to explicitly
zero-initialize all fields, fixing compiler warnings seen when building
extension modules with gcc with "-Wmissing-field-initializers" (implied by
"-W").
- Issue #10255: Fix reference leak in Py_InitializeEx(). Patch by Neil
Schemenauer.
- structseq.h is now included in Python.h.
- Loosen PyArg_ValidateKeywordArguments to allow dict subclasses.
Tests
-----
- regrtest.py once again ensures the test directory is removed from sys.path
when it is invoked directly as the __main__ module.
- `python -m test` can be used to run the test suite as well as `python -m
test.regrtest`.
- Do not fail test_socket when the IP address of the local hostname cannot be
looked up.
- Issue #8886: Use context managers throughout test_zipfile. Patch by Eric
Carstensen.
Build
-----
- Issue #10325: Fix two issues in the fallback definitions for PY_ULLONG_MAX and
PY_LLONG_MAX that made them unsuitable for use in preprocessor conditionals.
Documentation
-------------
- Issue #10299: List the built-in functions in a table in functions.rst.
What's New in Python 3.2 Alpha 4?
=================================
*Release date: 13-Nov-2010*
Core and Builtins
-----------------
- Issue #10372: Import the warnings module only after the IO library is
initialized, so as to avoid bootstrap issues with the '-W' option.
- Issue #10293: Remove obsolete field in the PyMemoryView structure, unused
undocumented value PyBUF_SHADOW, and strangely-looking code in
PyMemoryView_GetContiguous.
- Issue #6081: Add str.format_map(), similar to ``str.format(**mapping)``.
- If FileIO.__init__ fails, close the file descriptor.
- Issue #10221: dict.pop(k) now has a key error message that includes the
missing key (same message d[k] returns for missing keys).
- Issue #5437: A preallocated MemoryError instance should not keep traceback
data (including local variables caught in the stack trace) alive infinitely.
- Issue #10186: Fix the SyntaxError caret when the offset is equal to the length
of the offending line.
- Issue #10089: Add support for arbitrary -X options on the command line. They
can be retrieved through a new attribute ``sys._xoptions``.
- Issue #4388: On Mac OS X, decode command line arguments from UTF-8, instead of
the locale encoding. If the LANG (and LC_ALL and LC_CTYPE) environment
variable is not set, the locale encoding is ISO-8859-1, whereas most programs
(including Python) expect UTF-8. Python already uses UTF-8 for the filesystem
encoding and to encode command line arguments on this OS.
- Issue #9713, #10114: Parser functions (e.g. PyParser_ASTFromFile) expect
filenames encoded to the filesystem encoding with the surrogateescape error
handler (to support undecodable bytes), instead of UTF-8 in strict mode.
- Issue #9997: Don't let the name "top" have special significance in scope
resolution.
- Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding its value as
the default 512 when compiling on AIX.
- Use locale encoding instead of UTF-8 to encode and decode filenames if
Py_FileSystemDefaultEncoding is not set.
- Issue #10095: fp_setreadl() doesn't reopen the file, instead reuse the file
descriptor.
- Issue #9418: Moved private string methods ``_formatter_parser`` and
``_formatter_field_name_split`` into a new ``_string`` module.
- Issue #9992: Remove PYTHONFSENCODING environment variable.
Library
-------
- Issue #10465: fix broken delegating of attributes by gzip._PaddedFile.
- Issue #10356: Decimal.__hash__(-1) should return -2.
- Issue #1553375: logging: Added stack_info kwarg to display stack information.
- Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru.
- Fix Fraction.__hash__ so that Fraction.__hash__(-1) is -2. (See also issue
#10356.)
- Issue #4471: Add the IMAP.starttls() method to enable encryption on standard
IMAP4 connections. Original patch by Lorenzo M. Catucci.
- Issue #1466065: Add 'validate' option to base64.b64decode to raise an error if