-
-
Notifications
You must be signed in to change notification settings - Fork 34.5k
Expand file tree
/
Copy pathNEWS
More file actions
8394 lines (5593 loc) · 319 KB
/
NEWS
File metadata and controls
8394 lines (5593 loc) · 319 KB
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.4.1?
===========================
Core and Builtins
-----------------
- Issue #20637: Key-sharing now also works for instance dictionaries of
subclasses. Patch by Peter Ingebretson.
Library
-------
- Issue #19748: On AIX, time.mktime() now raises an OverflowError for year
outsize range [1902; 2037].
Tests
-----
- Issue #20743: Fix a reference leak in test_tcl.
What's New in Python 3.4.0 release candidate 2?
===============================================
Release date: 2014-02-23
Core and Builtins
-----------------
- Issue #20261: In pickle, lookup __getnewargs__ and __getnewargs_ex__ on the
type of the object.
- Issue #20619: Give the AST nodes of keyword-only arguments a column and line
number.
- Issue #20526: Revert changes of issue #19466 which introduces a regression:
don't clear anymore the state of Python threads early during the Python
shutdown.
- Issue #20595: Make getargs.c C89 compliant.
- Issue #20625: Parameter names in __annotations__ were not mangled properly.
Discovered by Jonas Wielicki, patch by Yury Selivanov.
Library
-------
- Issue #20710: The pydoc summary line no longer displays the "self" parameter
for bound methods.
- Issue #20654: Fixed pydoc for enums with zero value. Patch by Vajrasky Kok.
- Issue #20635: Fixed grid_columnconfigure() and grid_rowconfigure() methods of
Tkinter widgets to work in wantobjects=True mode.
- Issue #19612: On Windows, subprocess.Popen.communicate() now ignores
OSError(22, 'Invalid argument') when writing input data into stdin, whereas
the process already exited.
- Issue #20320: select.select() and select.kqueue.control() now round the
timeout aways from zero, instead of rounding towards zero.
- Issue #20616: Add a format() method to tracemalloc.Traceback.
- Issue #19744: the ensurepip installation step now just prints a warning to
stderr rather than failing outright if SSL/TLS is unavailable. This allows
local installation of POSIX builds without SSL/TLS support.
- Issue #6815: os.path.expandvars() now supports non-ASCII environment
variables names and values.
- Issue #17671: Fixed a crash when use non-initialized io.BufferedRWPair.
Based on patch by Stephen Tu.
- Issue #8478: Untokenizer.compat processes first token from iterator input.
Patch based on lines from Georg Brandl, Eric Snow, and Gareth Rees.
- Issue #20594: Avoid name clash with the libc function posix_close.
- Issue #19856: shutil.move() failed to move a directory to other directory
on Windows if source name ends with os.altsep.
- Issue #20673: Implement support for UNIX Domain Sockets in asyncio.
New APIs: loop.create_unix_connection(), loop.create_unix_server(),
streams.open_unix_connection(), and streams.start_unix_server().
- Issue #20681: Add new error handling API in asyncio. New APIs:
loop.set_exception_handler(), loop.default_exception_handler(), and
loop.call_exception_handler().
- Issue #20684: Fix inspect.getfullargspec() to not to follow __wrapped__
chains. Make its behaviour consistent with bound methods first argument.
Patch by Nick Coghlan and Yury Selivanov.
- Issue #20566: Change asyncio.as_completed() to use a Queue, to
avoid O(N**2) behavior.
- Issue #20704: Implement new debug API in asyncio. Add new methods
BaseEventLoop.set_debug() and BaseEventLoop.get_debug().
Add support for setting 'asyncio.tasks._DEBUG' variable with
'PYTHONASYNCIODEBUG' environment variable.
- asyncio: Refactoring and fixes: BaseEventLoop.sock_connect() raises an
error if the address is not resolved; use __slots__ in Handle and
TimerHandle; as_completed() and wait() raise TypeError if the passed
list of Futures is a single Future; call_soon() and other 'call_*()'
functions raise TypeError if the passed callback is a coroutine
function; _ProactorBasePipeTransport uses _FlowControlMixin;
WriteTransport.set_write_buffer_size() calls _maybe_pause_protocol()
to consider pausing receiving if the watermark limits have changed;
fix _check_resolved_address() for IPv6 address; and other minor
improvements, along with multiple documentation updates.
Tests
-----
- Issue #20510: Rewrote test_exit in test_sys to match existing comments,
use modern unittest features, and use helpers from test.script_helper
instead of using subprocess directly. Patch by Gareth Rees.
- Issue #20605: Make test_socket getaddrinfo OS X segfault test more robust.
Build
-----
- Issue #20641: Run MSI custom actions (pip installation, pyc compilation)
with the NoImpersonate flag, to support elevated execution (UAC).
- Issue #20221: Removed conflicting (or circular) hypot definition when
compiled with VS 2010 or above. Initial patch by Tabrez Mohammed.
- Issue #20609: Restored the ability to build 64-bit Windows binaries on
32-bit Windows, which was broken by the change in issue #19788.
What's New in Python 3.4.0 release candidate 1?
===============================================
Release date: 2014-02-10
Core and Builtins
-----------------
- Issue #19255: The builtins module is restored to initial value before
cleaning other modules. The sys and builtins modules are cleaned last.
- Issue #20588: Make Python-ast.c C89 compliant.
- Issue #20437: Fixed 22 potential bugs when deleting objects references.
- Issue #20500: Displaying an exception at interpreter shutdown no longer
risks triggering an assertion failure in PyObject_Str.
- Issue #20538: UTF-7 incremental decoder produced inconsistent string when
input was truncated in BASE64 section.
- Issue #20404: io.TextIOWrapper (and hence the open() builtin) now uses the
internal codec marking system added for issue #19619 to throw LookupError
for known non-text encodings at stream construction time. The existing
output type checks remain in place to deal with unmarked third party
codecs.
- Issue #17162: Add PyType_GetSlot.
- Issue #20162: Fix an alignment issue in the siphash24() hash function which
caused a crash on PowerPC 64-bit (ppc64).
Library
-------
- Issue #20530: The signatures for slot builtins have been updated
to reflect the fact that they only accept positional-only arguments.
- Issue #20517: Functions in the os module that accept two filenames
now register both filenames in the exception on failure.
- Issue #20563: The ipaddress module API is now considered stable.
- Issue #14983: email.generator now always adds a line end after each MIME
boundary marker, instead of doing so only when there is an epilogue. This
fixes an RFC compliance bug and solves an issue with signed MIME parts.
- Issue #20540: Fix a performance regression (vs. Python 3.2) when layering
a multiprocessing Connection over a TCP socket. For small payloads, Nagle's
algorithm would introduce idle delays before the entire transmission of a
message.
- Issue #16983: the new email header parsing code will now decode encoded words
that are (incorrectly) surrounded by quotes, and register a defect.
- Issue #19772: email.generator no longer mutates the message object when
doing a down-transform from 8bit to 7bit CTEs.
- Issue #20536: the statistics module now correctly handle Decimal instances
with positive exponents
- Issue #18805: the netmask/hostmask parsing in ipaddress now more reliably
filters out illegal values and correctly allows any valid prefix length.
- Issue #20481: For at least Python 3.4, the statistics module will require
that all inputs for a single operation be of a single consistent type, or
else a mixed of ints and a single other consistent type. This avoids
some interoperability issues that arose with the previous approach of
coercing to a suitable common type.
- Issue #20478: the statistics module now treats collections.Counter inputs
like any other iterable.
- Issue #17369: get_filename was raising an exception if the filename
parameter's RFC2231 encoding was broken in certain ways. This was
a regression relative to python2.
- Issue #20013: Some imap servers disconnect if the current mailbox is
deleted, and imaplib did not handle that case gracefully. Now it
handles the 'bye' correctly.
- Issue #20531: Revert 3.4 version of fix for #19063, and apply the 3.3
version. That is, do *not* raise an error if unicode is passed to
email.message.Message.set_payload.
- Issue #20476: If a non-compat32 policy is used with any of the email parsers,
EmailMessage is now used as the factory class. The factory class should
really come from the policy; that will get fixed in 3.5.
- Issue #19920: TarFile.list() no longer fails when outputs a listing
containing non-encodable characters. Based on patch by Vajrasky Kok.
- Issue #20515: Fix NULL pointer dereference introduced by issue #20368.
- Issue #19186: Restore namespacing of expat symbols inside the pyexpat module.
- Issue #20053: ensurepip (and hence venv) are no longer affected by the
settings in the default pip configuration file.
- Issue #20426: When passing the re.DEBUG flag, re.compile() displays the
debug output every time it is called, regardless of the compilation cache.
- Issue #20368: The null character now correctly passed from Tcl to Python.
Improved error handling in variables-related commands.
- Issue #20435: Fix _pyio.StringIO.getvalue() to take into account newline
translation settings.
- tracemalloc: Fix slicing traces and fix slicing a traceback.
- Issue #20354: Fix an alignment issue in the tracemalloc module on 64-bit
platforms. Bug seen on 64-bit Linux when using "make profile-opt".
- Issue #17159: inspect.signature now accepts duck types of functions,
which adds support for Cython functions. Initial patch by Stefan Behnel.
- Issue #18801: Fix inspect.classify_class_attrs to correctly classify
object.__new__ and object.__init__.
- Fixed cmath.isinf's name in its argument parsing code.
- Issue #20311, #20452: poll and epoll now round the timeout away from zero,
instead of rounding towards zero, in select and selectors modules:
select.epoll.poll(), selectors.PollSelector.poll() and
selectors.EpollSelector.poll(). For example, a timeout of one microsecond
(1e-6) is now rounded to one millisecondi (1e-3), instead of being rounded to
zero. However, the granularity property and asyncio's resolution feature
were removed again.
- asyncio: Some refactoring; various fixes; add write flow control to
unix pipes; Future.set_exception() instantiates the exception
argument if it is a class; improved proactor pipe transport; support
wait_for(f, None); don't log broken/disconnected pipes; use
ValueError instead of assert for forbidden subprocess_{shell,exec}
arguments; added a convenience API for subprocess management; added
StreamReader.at_eof(); properly handle duplicate coroutines/futures
in gather(), wait(), as_completed(); use a bytearray for buffering
in StreamReader; and more.
- Issue #20288: fix handling of invalid numeric charrefs in HTMLParser.
- Issue #20424: Python implementation of io.StringIO now supports lone surrogates.
- Issue #20308: inspect.signature now works on classes without user-defined
__init__ or __new__ methods.
- Issue #20372: inspect.getfile (and a bunch of other inspect functions that
use it) doesn't crash with unexpected AttributeError on classes defined in C
without __module__.
- Issue #20356: inspect.signature formatting uses '/' to separate
positional-only parameters from others.
- Issue #20223: inspect.signature now supports methods defined with
functools.partialmethods.
- Issue #19456: ntpath.join() now joins relative paths correctly when a drive
is present.
- Issue #19077: tempfile.TemporaryDirectory cleanup no longer fails when
called during shutdown. Emitting resource warning in __del__ no longer fails.
Original patch by Antoine Pitrou.
- Issue #20394: Silence Coverity warning in audioop module.
- Issue #20367: Fix behavior of concurrent.futures.as_completed() for
duplicate arguments. Patch by Glenn Langford.
- Issue #8260: The read(), readline() and readlines() methods of
codecs.StreamReader returned incomplete data when were called after
readline() or read(size). Based on patch by Amaury Forgeot d'Arc.
- Issue #20105: the codec exception chaining now correctly sets the
traceback of the original exception as its __traceback__ attribute.
- Issue #17481: inspect.getfullargspec() now uses inspect.signature() API.
- Issue #15304: concurrent.futures.wait() can block forever even if
Futures have completed. Patch by Glenn Langford.
- Issue #14455: plistlib: fix serializing integers integers in the range
of an unsigned long long but outside of the range of signed long long for
binary plist files.
IDLE
----
- Issue #20406: Use Python application icons for Idle window title bars.
Patch mostly by Serhiy Storchaka.
- Update the python.gif icon for the Idle classbrowser and pathbowser
from the old green snake to the new new blue and yellow snakes.
- Issue #17721: Remove non-functional configuration dialog help button until we
make it actually gives some help when clicked. Patch by Guilherme Simões.
Tests
-----
- Issue #20532: Tests which use _testcapi now are marked as CPython only.
- Issue #19920: Added tests for TarFile.list(). Based on patch by Vajrasky Kok.
- Issue #19990: Added tests for the imghdr module. Based on patch by
Claudiu Popa.
- Issue #20474: Fix test_socket "unexpected success" failures on OS X 10.7+.
Tools/Demos
-----------
- Issue #20530: Argument Clinic's signature format has been revised again.
The new syntax is highly human readable while still preventing false
positives. The syntax also extends Python syntax to denote "self" and
positional-only parameters, allowing inspect.Signature objects to be
totally accurate for all supported builtins in Python 3.4.
- Issue #20456: Argument Clinic now observes the C preprocessor conditional
compilation statements of the C files it parses. When a Clinic block is
inside a conditional code, it adjusts its output to match, including
automatically generating an empty methoddef macro.
- Issue #20456: Cloned functions in Argument Clinic now use the correct
name, not the name of the function they were cloned from, for text
strings inside generated code.
- Issue #20456: Fixed Argument Clinic's test suite and "--converters" feature.
- Issue #20456: Argument Clinic now allows specifying different names
for a parameter in Python and C, using "as" on the parameter line.
- Issue #20326: Argument Clinic now uses a simple, unique signature to
annotate text signatures in docstrings, resulting in fewer false
positives. "self" parameters are also explicitly marked, allowing
inspect.Signature() to authoritatively detect (and skip) said parameters.
- Issue #20326: Argument Clinic now generates separate checksums for the
input and output sections of the block, allowing external tools to verify
that the input has not changed (and thus the output is not out-of-date).
Build
-----
- Issue #20465: Update SQLite shipped with OS X installer to 3.8.3.
C-API
-----
- Issue #20517: Added new functions allowing OSError exceptions to reference
two filenames instead of one: PyErr_SetFromErrnoWithFilenameObjects() and
PyErr_SetExcFromWindowsErrWithFilenameObjects().
Documentation
-------------
- Issue #20488: Change wording to say importlib is *the* implementation of
import instead of just *an* implementation.
- Issue #6386: Clarify in the tutorial that specifying a symlink to execute
means the directory containing the executed script and not the symlink is
added to sys.path.
What's New in Python 3.4.0 Beta 3?
==================================
Release date: 2014-01-26
Core and Builtins
-----------------
- Issue #20189: Four additional builtin types (PyTypeObject,
PyMethodDescr_Type, _PyMethodWrapper_Type, and PyWrapperDescr_Type)
have been modified to provide introspection information for builtins.
- Issue #17825: Cursor "^" is correctly positioned for SyntaxError and
IndentationError.
- Issue #2382: SyntaxError cursor "^" is now written at correct position in most
cases when multibyte characters are in line (before "^"). This still not
works correctly with wide East Asian characters.
- Issue #18960: The first line of Python script could be executed twice when
the source encoding was specified on the second line. Now the source encoding
declaration on the second line isn't effective if the first line contains
anything except a comment. 'python -x' works now again with files with the
source encoding declarations, and can be used to make Python batch files
on Windows.
Library
-------
- asyncio: Various improvements and small changes not all covered by
issues listed below. E.g. wait_for() now cancels the inner task if
the timeout occcurs; tweaked the set of exported symbols; renamed
Empty/Full to QueueEmpty/QueueFull; "with (yield from lock)" now
uses a separate context manager; readexactly() raises if not enough
data was read; PTY support tweaks.
- Issue #20311: asyncio: Add a granularity attribute to BaseEventLoop: maximum
between the resolution of the BaseEventLoop.time() method and the resolution
of the selector. The granuarility is used in the scheduler to round time and
deadline.
- Issue #20311: selectors: Add a resolution attribute to BaseSelector.
- Issue #20189: unittest.mock now no longer assumes that any object for
which it could get an inspect.Signature is a callable written in Python.
Fix courtesy of Michael Foord.
- Issue #20317: ExitStack.__exit__ could create a self-referential loop if an
exception raised by a cleanup operation already had its context set
correctly (for example, by the @contextmanager decorator). The infinite
loop this caused is now avoided by checking if the expected context is
already set before trying to fix it.
- Issue #20374: Fix build with GNU readline >= 6.3.
- Issue #20262: Warnings are raised now when duplicate names are added in the
ZIP file or too long ZIP file comment is truncated.
- Issue #20165: The unittest module no longer considers tests marked with
@expectedFailure successful if they pass.
- Issue #18574: Added missing newline in 100-Continue reply from
http.server.BaseHTTPRequestHandler. Patch by Nikolaus Rath.
- Issue #20270: urllib.urlparse now supports empty ports.
- Issue #20243: TarFile no longer raise ReadError when opened in write mode.
- Issue #20238: TarFile opened with external fileobj and "w:gz" mode didn't
write complete output on close.
- Issue #20245: The open functions in the tarfile module now correctly handle
empty mode.
- Issue #20242: Fixed basicConfig() format strings for the alternative
formatting styles. Thanks to kespindler for the bug report and patch.
- Issue #20246: Fix buffer overflow in socket.recvfrom_into.
- Issues #20206 and #5803: Fix edge case in email.quoprimime.encode where it
truncated lines ending in a character needing encoding but no newline by
using a more efficient algorithm that doesn't have the bug.
- Issue #19082: Working xmlrpc.server and xmlrpc.client examples. Both in
modules and in documentation. Initial patch contributed by Vajrasky Kok.
- Issue #20138: The wsgiref.application_uri() and wsgiref.request_uri()
functions now conform to PEP 3333 when handle non-ASCII URLs.
- Issue #19097: Raise the correct Exception when cgi.FieldStorage is given an
invalid fileobj.
- Issue #20152: Ported Python/import.c over to Argument Clinic.
- Issue #13107: argparse and optparse no longer raises an exception when output
a help on environment with too small COLUMNS. Based on patch by
Elazar Gershuni.
- Issue #20207: Always disable SSLv2 except when PROTOCOL_SSLv2 is explicitly
asked for.
- Issue #18960: The tokenize module now ignore the source encoding declaration
on the second line if the first line contains anything except a comment.
- Issue #20078: Reading malformed zipfiles no longer hangs with 100% CPU
consumption.
- Issue #20113: os.readv() and os.writev() now raise an OSError exception on
error instead of returning -1.
- Issue #19719: Make importlib.abc.MetaPathFinder.find_module(),
PathEntryFinder.find_loader(), and Loader.load_module() use PEP 451 APIs to
help with backwards-compatibility.
- Issue #20144: inspect.Signature now supports parsing simple symbolic
constants as parameter default values in __text_signature__.
- Issue #20072: Fixed multiple errors in tkinter with wantobjects is False.
- Issue #20229: Avoid plistlib deprecation warning in platform.mac_ver().
- Issue #14455: Fix some problems with the new binary plist support in plistlib.
IDLE
----
- Issue #17390: Add Python version to Idle editor window title bar.
Original patches by Edmond Burnett and Kent Johnson.
- Issue #18960: IDLE now ignores the source encoding declaration on the second
line if the first line contains anything except a comment.
Tests
-----
- Issue #20358: Tests for curses.window.overlay and curses.window.overwrite
no longer specify min{row,col} > max{row,col}.
- Issue #19804: The test_find_mac test in test_uuid is now skipped if the
ifconfig executable is not available.
- Issue #19886: Use better estimated memory requirements for bigmem tests.
Tools/Demos
-----------
- Issue #20390: Argument Clinic's "file" output preset now defaults to
"{dirname}/clinic/{basename}.h".
- Issue #20390: Argument Clinic's "class" directive syntax has been extended
with two new required arguments: "typedef" and "type_object".
- Issue #20390: Argument Clinic: If __new__ or __init__ functions didn't use
kwargs (or args), the PyArg_NoKeywords (or PyArg_NoPositional) calls
generated are only run when the type object is an exact match.
- Issue #20390: Argument Clinic now fails if you have required parameters after
optional parameters.
- Issue #20390: Argument Clinic converters now have a new template they can
inject code into: "modifiers". Code put there is run in the parsing
function after argument parsing but before the call to the impl.
- Issue #20376: Argument Clinic now escapes backslashes in docstrings.
- Issue #20381: Argument Clinic now sanity checks the default argument when
c_default is also specified, providing a nice failure message for
disallowed values.
- Issue #20189: Argument Clinic now ensures that parser functions for
__new__ are always of type newfunc, the type of the tp_new slot.
Similarly, parser functions for __init__ are now always of type initproc,
the type of tp_init.
- Issue #20189: Argument Clinic now suppresses the docstring for __new__
and __init__ functions if no docstring is provided in the input.
- Issue #20189: Argument Clinic now suppresses the "self" parameter in the
impl for @staticmethod functions.
- Issue #20294: Argument Clinic now supports argument parsing for __new__ and
__init__ functions.
- Issue #20299: Argument Clinic custom converters may now change the default
value of c_default and py_default with a class member.
- Issue #20287: Argument Clinic's output is now configurable, allowing
delaying its output or even redirecting it to a separate file.
- Issue #20226: Argument Clinic now permits simple expressions
(e.g. "sys.maxsize - 1") as default values for parameters.
- Issue #19936: Added executable bits or shebang lines to Python scripts which
requires them. Disable executable bits and shebang lines in test and
benchmark files in order to prevent using a random system python, and in
source files of modules which don't provide command line interface. Fixed
shebang lines in the unittestgui and checkpip scripts.
- Issue #20268: Argument Clinic now supports cloning the parameters and
return converter of existing functions.
- Issue #20228: Argument Clinic now has special support for class special
methods.
- Issue #20214: Fixed a number of small issues and documentation errors in
Argument Clinic (see issue for details).
- Issue #20196: Fixed a bug where Argument Clinic did not generate correct
parsing code for functions with positional-only parameters where all arguments
are optional.
- Issue #18960: 2to3 and the findnocoding.py script now ignore the source
encoding declaration on the second line if the first line contains anything
except a comment.
- Issue #19723: The marker comments Argument Clinic uses have been changed
to improve readability.
- Issue #20157: When Argument Clinic renames a parameter because its name
collides with a C keyword, it no longer exposes that rename to PyArg_Parse.
- Issue #20141: Improved Argument Clinic's support for the PyArg_Parse "O!"
format unit.
- Issue #20144: Argument Clinic now supports simple symbolic constants
as parameter default values.
- Issue #20143: The line numbers reported in Argument Clinic errors are
now more accurate.
- Issue #20142: Py_buffer variables generated by Argument Clinic are now
initialized with a default value.
Build
-----
- Issue #12837: Silence a tautological comparison warning on OS X under Clang in
socketmodule.c.
What's New in Python 3.4.0 Beta 2?
==================================
Release date: 2014-01-05
Core and Builtins
-----------------
- Issue #17432: Drop UCS2 from names of Unicode functions in python3.def.
- Issue #19526: Exclude all new API from the stable ABI. Exceptions can be
made if a need is demonstrated.
- Issue #19969: PyBytes_FromFormatV() now raises an OverflowError if "%c"
argument is not in range [0; 255].
- Issue #19995: %c, %o, %x, and %X now issue a DeprecationWarning on non-integer
input; reworded docs to clarify that an integer type should define both __int__
and __index__.
- Issue #19787: PyThread_set_key_value() now always set the value. In Python
3.3, the function did nothing if the key already exists (if the current value
is a non-NULL pointer).
- Issue #14432: Remove the thread state field from the frame structure. Fix a
crash when a generator is created in a C thread that is destroyed while the
generator is still used. The issue was that a generator contains a frame, and
the frame kept a reference to the Python state of the destroyed C thread. The
crash occurs when a trace function is setup.
- Issue #19576: PyGILState_Ensure() now initializes threads. At startup, Python
has no concrete GIL. If PyGILState_Ensure() is called from a new thread for
the first time and PyEval_InitThreads() was not called yet, a GIL needs to be
created.
- Issue #17576: Deprecation warning emitted now when __int__() or __index__()
return not int instance.
- Issue #19932: Fix typo in import.h, missing whitespaces in function prototypes.
- Issue #19736: Add module-level statvfs constants defined for GNU/glibc
based systems.
- Issue #20097: Fix bad use of "self" in importlib's WindowsRegistryFinder.
- Issue #19729: In str.format(), fix recursive expansion in format spec.
- Issue #19638: Fix possible crash / undefined behaviour from huge (more than 2
billion characters) input strings in _Py_dg_strtod.
Library
-------
- Issue #20154: Deadlock in asyncio.StreamReader.readexactly().
- Issue #16113: Remove sha3 module again.
- Issue #20111: pathlib.Path.with_suffix() now sanity checks the given suffix.
- Fix breakage in TestSuite.countTestCases() introduced by issue #11798.
- Issue #20108: Avoid parameter name clash in inspect.getcallargs().
- Issue #19918: Fix PurePath.relative_to() under Windows.
- Issue #19422: Explicitly disallow non-SOCK_STREAM sockets in the ssl
module, rather than silently let them emit clear text data.
- Issue #20046: Locale alias table no longer contains entities which can be
calculated. Generalized support of the euro modifier.
- Issue #20027: Fixed locale aliases for devanagari locales.
- Issue #20067: Tkinter variables now work when wantobjects is false.
- Issue #19020: Tkinter now uses splitlist() instead of split() in configure
methods.
- Issue #19744: ensurepip now provides a better error message when Python is
built without SSL/TLS support (pip currently requires that support to run,
even if only operating with local wheel files)
- Issue #19734: ensurepip now ignores all pip environment variables to avoid
odd behaviour based on user configuration settings
- Fix TypeError on "setup.py upload --show-response".
- Issue #20045: Fix "setup.py register --list-classifiers".
- Issue #18879: When a method is looked up on a temporary file, avoid closing
the file before the method is possibly called.
- Issue #20037: Avoid crashes when opening a text file late at interpreter
shutdown.
- Issue #19967: Thanks to the PEP 442, asyncio.Future now uses a
destructor to log uncaught exceptions, instead of the dedicated
_TracebackLogger class.
- Added a Task.current_task() class method to asyncio.
- Issue #19850: Set SA_RESTART in asyncio when registering a signal
handler to limit EINTR occurrences.
- Implemented write flow control in asyncio for proactor event loop (Windows).
- Change write buffer in asyncio use to avoid O(N**2) behavior. Make
write()/sendto() accept bytearray/memoryview.
- Issue #20034: Updated alias mapping to most recent locale.alias file
from X.org distribution using makelocalealias.py.
- Issue #5815: Fixed support for locales with modifiers. Fixed support for
locale encodings with hyphens.
- Issue #20026: Fix the sqlite module to handle correctly invalid isolation
level (wrong type).
- Issue #18829: csv.Dialect() now checks type for delimiter, escapechar and
quotechar fields. Original patch by Vajrasky Kok.
- Issue #19855: uuid.getnode() on Unix now looks on the PATH for the
executables used to find the mac address, with /sbin and /usr/sbin as
fallbacks.
- Issue #20007: HTTPResponse.read(0) no more prematurely closes connection.
Original patch by Simon Sapin.
- Issue #19946: multiprocessing now uses runpy to initialize __main__ in
child processes when necessary, allowing it to correctly handle scripts
without suffixes and submodules that use explicit relative imports or
otherwise rely on parent modules being correctly imported prior to
execution.
- Issue #19921: When Path.mkdir() is called with parents=True, any missing
parent is created with the default permissions, ignoring the mode argument
(mimicking the POSIX "mkdir -p" command).
- Issue #19887: Improve the Path.resolve() algorithm to support certain
symlink chains.
- Issue #19912: Fixed numerous bugs in ntpath.splitunc().
- Issue #19911: ntpath.splitdrive() now correctly processes the 'İ' character
(U+0130, LATIN CAPITAL LETTER I WITH DOT ABOVE).
- Issue #19532: python -m compileall with no filename/directory arguments now
respects the -f and -q flags instead of ignoring them.
- Issue #19623: Fixed writing to unseekable files in the aifc module.
- Issue #19946: multiprocessing.spawn now raises ImportError when the module to
be used as the main module cannot be imported.
- Issue #17919: select.poll.register() again works with poll.POLLNVAL on AIX.
Fixed integer overflow in the eventmask parameter.
- Issue #19063: if a Charset's body_encoding was set to None, the email
package would generate a message claiming the Content-Transfer-Encoding
was 7bit, and produce garbage output for the content. This now works.
A couple of other set_payload mishandlings of non-ASCII are also fixed.
In addition, calling set_payload with a string argument without
specifying a charset now raises an error (this is a new error in 3.4).
- Issue #15475: Add __sizeof__ implementations for itertools objects.
- Issue #19944: Fix importlib.find_spec() so it imports parents as needed
and move the function to importlib.util.
- Issue #19880: Fix a reference leak in unittest.TestCase. Explicitly break
reference cycles between frames and the _Outcome instance.
- Issue #17429: platform.linux_distribution() now decodes files from the UTF-8
encoding with the surrogateescape error handler, instead of decoding from the
locale encoding in strict mode. It fixes the function on Fedora 19 which is
probably the first major distribution release with a non-ASCII name. Patch
written by Toshio Kuratomi.
- Issue #19343: Expose FreeBSD-specific APIs in resource module. Original
patch by Koobs.
- Issue #19929: Call os.read with 32768 within subprocess.Popen.communicate
rather than 4096 for efficiency. A microbenchmark shows Linux and OS X
both using ~50% less cpu time this way.
- Issue #19506: Use a memoryview to avoid a data copy when piping data
to stdin within subprocess.Popen.communicate. 5-10% less cpu usage.
- Issue #19876: selectors unregister() no longer raises ValueError or OSError
if the FD is closed (as long as it was registered).
- Issue #19908: pathlib now joins relative Windows paths correctly when a drive
is present. Original patch by Antoine Pitrou.
- Issue #19296: Silence compiler warning in dbm_open
- Issue #6784: Strings from Python 2 can now be unpickled as bytes
objects by setting the encoding argument of Unpickler to be 'bytes'.
Initial patch by Merlijn van Deen.
- Issue #19839: Fix regression in bz2 module's handling of non-bzip2 data at
EOF, and analogous bug in lzma module.
- Issue #19881: Fix pickling bug where cpickle would emit bad pickle data for
large bytes string (i.e., with size greater than 2**32-1).
- Issue #19138: doctest's IGNORE_EXCEPTION_DETAIL now allows a match when
no exception detail exists (no colon following the exception's name, or
a colon does follow but no text follows the colon).
- Issue #19927: Add __eq__ to path-based loaders in importlib.
- Issue #19827: On UNIX, setblocking() and settimeout() methods of
socket.socket can now avoid a second syscall if the ioctl() function can be
used, or if the non-blocking flag of the socket is unchanged.
- Issue #19785: smtplib now supports SSLContext.check_hostname and server name
indication for TLS/SSL connections.
- Issue #19784: poplib now supports SSLContext.check_hostname and server name
indication for TLS/SSL connections.
- Issue #19783: nntplib now supports SSLContext.check_hostname and server name
indication for TLS/SSL connections.
- Issue #19782: imaplib now supports SSLContext.check_hostname and server name
indication for TLS/SSL connections.
- Issue 20123: Fix pydoc.synopsis() for "binary" modules.
- Issue #19834: Support unpickling of exceptions pickled by Python 2.
- Issue #19781: ftplib now supports SSLContext.check_hostname and server name
indication for TLS/SSL connections.
- Issue #19509: Add SSLContext.check_hostname to match the peer's certificate
with server_hostname on handshake.
- Issue #15798: Fixed subprocess.Popen() to no longer fail if file
descriptor 0, 1 or 2 is closed.
- Issue #17897: Optimized unpickle prefetching.
- Issue #3693: Make the error message more helpful when the array.array()
constructor is given a str. Move the array module typecode documentation to
the docstring of the constructor.
- Issue #19088: Fixed incorrect caching of the copyreg module in
object.__reduce__() and object.__reduce_ex__().
- Issue #19698: Removed exec_module() methods from
importlib.machinery.BuiltinImporter and ExtensionFileLoader.
- Issue #18864: Added a setter for ModuleSpec.has_location.
- Fixed _pickle.Unpickler to not fail when loading empty strings as
persistent IDs.
- Issue #11480: Fixed copy.copy to work with classes with custom metaclasses.
Patch by Daniel Urban.
- Issue #6477: Added support for pickling the types of built-in singletons
(i.e., Ellipsis, NotImplemented, None).
- Issue #19713: Add remaining PEP 451-related deprecations and move away
from using find_module/find_loaer/load_module.
- Issue #19708: Update pkgutil to use the new importer APIs.
- Issue #19703: Update pydoc to use the new importer APIs.
- Issue #19851: Fixed a regression in reloading sub-modules.
- ssl.create_default_context() sets OP_NO_COMPRESSION to prevent CRIME.
- Issue #19802: Add socket.SO_PRIORITY.
- Issue #11508: Fixed uuid.getnode() and uuid.uuid1() on environment with
virtual interface. Original patch by Kent Frazier.
- Issue #11489: JSON decoder now accepts lone surrogates.
- Issue #19545: Avoid chained exceptions while passing stray % to
time.strptime(). Initial patch by Claudiu Popa.
IDLE
----
- Issue #20058: sys.stdin.readline() in IDLE now always returns only one line.
- Issue #19481: print() of string subclass instance in IDLE no longer hangs.
- Issue #18270: Prevent possible IDLE AttributeError on OS X when no initial
shell window is present.
Tests
-----
- Issue #20055: Fix test_shutil under Windows with symlink privileges held.
Patch by Vajrasky Kok.
- Issue #20070: Don't run test_urllib2net when network resources are not
enabled.
- Issue #19938: Re-enabled test_bug_1333982 in test_dis, which had been
disabled since 3.0 due to the changes in listcomp handling.
- Issue #19320: test_tcl no longer fails when wantobjects is false.
- Issue #19919: Fix flaky SSL test. connect_ex() sometimes returns
EWOULDBLOCK on Windows or VMs hosted on Windows.
- Issue #19912: Added tests for ntpath.splitunc().
- Issue #19828: Fixed test_site when the whole suite is run with -S.
- Issue #19928: Implemented a test for repr() of cell objects.
- Issue #19535: Fixed test_docxmlrpc, test_functools, test_inspect, and
test_statistics when python is run with -OO.
- Issue #19926: Removed unneeded test_main from test_abstract_numbers.
Patch by Vajrasky Kok.
- Issue #19572: More skipped tests explicitly marked as skipped.
- Issue #19595, #19987: Re-enabled a long-disabled test in test_winsound.
- Issue #19588: Fixed tests in test_random that were silently skipped most
of the time. Patch by Julian Gindi.
Build
-----
- Issue #19728: Enable pip installation by default on Windows.
- Issue #16136: Remove VMS support
- Issue #18215: Add script Tools/ssl/test_multiple_versions.py to compile and
run Python's unit tests with multiple versions of OpenSSL.
- Issue #19922: define _INCLUDE__STDC_A1_SOURCE in HP-UX to include mbstate_t
for mbrtowc().
- Issue #19788: kill_python(_d).exe is now run as a PreBuildEvent on the
pythoncore sub-project. This should prevent build errors due a previous
build's python(_d).exe still running.
Documentation
-------------
- Issue #20265: Updated some parts of the Using Windows document.
- Issue #20266: Updated some parts of the Windows FAQ.
- Issue #20255: Updated the about and bugs pages.
- Issue #20253: Fixed a typo in the ipaddress docs that advertised an
illegal attribute name. Found by INADA Naoki.