-
Notifications
You must be signed in to change notification settings - Fork 290
WhatsNew–Python3.4
Lamparter edited this page Nov 18, 2024
·
1 revision
Important
This file is used by maintainers to track implementation of core functionality from Python 3 into IronPython.
https://docs.python.org/3/whatsnew/3.4.html
- PEP 453: Explicit Bootstrapping of PIP in Python Installations
- PEP 446: Newly created file descriptors are non-inheritable
- PEP 451: A
ModuleSpec
Type for the Import System
- Unicode database updated to UCD version 6.3.
-
min()
andmax()
now accept a default keyword-only argument that can be used to specify the value they return if the iterable they are evaluating has no elements. - Module objects are now
weakref
’able. - Module
__file__
attributes (and related values) should now always contain absolute paths by default, with the sole exception of__main__.__file__
when a script has been executed directly using a relative path. - All the UTF-* codecs (except UTF-7) now reject surrogates during both encoding and decoding unless the surrogatepass error handler is used, with the exception of the UTF-16 decoder and the UTF-16 encoder
- New German EBCDIC codec
cp273
. - New Ukrainian codec
cp1125
. -
bytes.join()
andbytearray.join()
now accept arbitrary buffer objects as arguments. - The
int
constructor now accepts any object that has an__index__
method for its base argument. - Frame objects now have a
clear()
method that clears all references to local variables from the frame. -
memoryview
is now registered as aSequence
, and supports thereversed()
builtin. - Signatures reported by
help()
have been modified and improved in several cases as a result of the introduction of Argument Clinic and other changes to theinspect
andpydoc
modules. -
__length_hint__()
is now part of the formal language specification
-
asyncio
-
ensurepip
-
enum
-
pathlib
-
selectors
-
statistics
-
tracemalloc
-
abc
-
aifc
-
argparse
-
audioop
-
base64
-
collections
-
colorsys
-
contextlib
-
dbm
-
dis
-
doctest
-
email
-
filecmp
-
functools
-
gc
-
glob
-
hashlib
-
hmac
-
html
-
http
-
idlelib-and-idle
-
importlib
-
inspect
-
ipaddress
-
logging
-
marshal
-
mmap
-
multiprocessing
-
operator
-
os
-
pdb
-
pickle
-
plistlib
-
poplib
-
pprint
-
pty
-
pydoc
-
re
-
resource
-
select
-
shelve
-
shutil
-
smtpd
-
smtplib
-
socket
-
sqlite3
-
ssl
-
stat
-
struct
-
subprocess
-
sunau
-
sys
-
tarfile
-
textwrap
-
threading
-
traceback
-
types
-
urllib
-
unittest
-
venv
-
wave
-
weakref
-
xml.etree
-
zipfile
- As mentioned in PEP 451: A ModuleSpec Type for the Import System, a number of importlib methods and functions are deprecated: importlib.find_loader() is replaced by importlib.util.find_spec(); importlib.machinery.PathFinder.find_module() is replaced by importlib.machinery.PathFinder.find_spec(); importlib.abc.MetaPathFinder.find_module() is replaced by importlib.abc.MetaPathFinder.find_spec(); importlib.abc.PathEntryFinder.find_loader() and find_module() are replaced by importlib.abc.PathEntryFinder.find_spec(); all of the xxxLoader ABC load_module methods (importlib.abc.Loader.load_module(), importlib.abc.InspectLoader.load_module(), importlib.abc.FileLoader.load_module(), importlib.abc.SourceLoader.load_module()) should no longer be implemented, instead loaders should implement an exec_module method (importlib.abc.Loader.exec_module(), importlib.abc.InspectLoader.exec_module() importlib.abc.SourceLoader.exec_module()) and let the import system take care of the rest; and importlib.abc.Loader.module_repr(), importlib.util.module_for_loader(), importlib.util.set_loader(), and importlib.util.set_package() are no longer needed because their functions are now handled automatically by the import system.
- The imp module is pending deprecation. To keep compatibility with Python 2/3 code bases, the module's removal is currently not scheduled.
- The formatter module is pending deprecation and is slated for removal in Python 3.6.
- MD5 as the default digestmod for the hmac.new() function is deprecated. Python 3.6 will require an explicit digest name or constructor as digestmod argument.
- The internal Netrc class in the ftplib module has been documented as deprecated in its docstring for quite some time. It now emits a DeprecationWarning and will be removed completely in Python 3.5.
- The undocumented endtime argument to subprocess.Popen.wait() should not have been exposed and is hopefully not in use; it is deprecated and will mostly likely be removed in Python 3.5.
- The strict argument of HTMLParser is deprecated.
- The plistlib readPlist(), writePlist(), readPlistFromBytes(), and writePlistToBytes() functions are deprecated in favor of the corresponding new functions load(), dump(), loads(), and dumps(). Data() is deprecated in favor of just using the bytes constructor.
- The sysconfig key SO is deprecated, it has been replaced by EXT_SUFFIX.
- The U mode accepted by various open functions is deprecated. In Python3 it does not do anything useful, and should be replaced by appropriate uses of io.TextIOWrapper (if needed) and its newline argument.
- The parser argument of xml.etree.ElementTree.iterparse() has been deprecated, as has the html argument of XMLParser(). To prepare for the removal of the latter, all arguments to XMLParser should be passed by keyword.
- Running IDLE with the -n flag (no subprocess) is deprecated. However, the feature will not be removed until bpo-18823 is resolved.
- The site module adding a “site-python” directory to sys.path, if it exists, is deprecated (bpo-19375).
- The unmaintained Misc/TextMate and Misc/vim directories have been removed (see the devguide for suggestions on what to use instead).
- The SO makefile macro is removed (it was replaced by the SHLIB_SUFFIX and EXT_SUFFIX macros) (bpo-16754).
- The
PyThreadState.tick_counter
field has been removed; its value has been meaningless since Python 3.2, when the “new GIL” was introduced (bpo-19199). -
PyLoader
andPyPycLoader
have been removed fromimportlib
. (Contributed by Taras Lyapun in bpo-15641.) - The
strict
argument toHTTPConnection
andHTTPSConnection
has been removed. HTTP 0.9-style “Simple Responses” are no longer supported. - The deprecated
urllib.request.Request
getter and setter methodsadd_data
,has_data
,get_data
,get_type
,get_host
,get_selector
,set_proxy
,get_origin_req_host
, andis_unverifiable
have been removed (use direct attribute access instead). - Support for loading the deprecated
TYPE_INT64
has been removed from marshal. (Contributed by Dan Riti in bpo-15480.) -
inspect.Signature
: positional-only parameters are now required to have a valid name. -
object.__format__()
no longer accepts non-empty format strings, it now raises aTypeError
instead. Using a non-empty string has been deprecated since Python 3.2. This change has been made to prevent a situation where previously working (but incorrect) code would start failing if an object gained a__format__
method, which means that your code may now raise a TypeError if you are using an 's' format code with objects that do not have a__format__
method that handles it. See bpo-7994 for background. -
difflib.SequenceMatcher.isbjunk()
anddifflib.SequenceMatcher.isbpopular()
were deprecated in 3.2, and have now been removed: usex in sm.bjunk
andx in sm.bpopular
, wheresm
is aSequenceMatcher
object (bpo-13248).
Still looking for more? Send a message by creating a feature request on the Issues tab.
🐍 IronPython