Changelog

Python 3.5.3 release candidate 1

发布日期:TBA

Core and Builtins

  • 问题#27419:标准__import __()不再在全局或内置中查找用于导入子模块或“从导入”的“__import__”。修正了处理非字符串包名的错误。
  • 问题#27083:在Windows下尊重PYTHONCASEOK环境变量。
  • 问题#27514:使得具有太多静态嵌套块的语法错误,而不是SystemError。
  • 问题#27473:修复了可能的整数溢出字节和bytearray连接。补充由张祥。
  • 问题#27507:在bytearray.extend()中添加整数溢出检查。补充由张祥。
  • 问题#27581:不要依赖PySequence_Tuple()中的溢出检查的包装。补充由张祥。
  • 问题#27443:__length_hint __()bytearray迭代器不再为调整大小的bytearray返回负整数。

Library

  • 问题#26750:unittest.mock.create_autospec()现在适用于属性()和其他数据描述器的子类。
  • 问题#27568:防止HTTPoxy攻击(CVE-2016-1000110)。当设置REQUEST_METHOD环境时,忽略HTTP_PROXY变量,这表示脚本处于CGI模式。
  • 问题#27656:不要假定sched.h定义任何SCHED_ *常量。
  • 问题#27130:在“zlib”模块中,修复在压缩和解压缩时处理大型缓冲区(通常为4 GiB)。以前,输入限制为4 GiB,压缩和解压缩操作未正确处理4 GiB的结果。
  • 问题#27533:在nt._isdir中释放GIL
  • 问题#17711:修复了通过协议0的持久性标识解冻。由亚历山大Vassalotti原始补丁。
  • 问题#27522:避免在email.feedparser中出现无意的参考周期。
  • 问题#26844:修复imp.find_module()的错误消息以引用“路径”而不是“名称”。由Lev Maximov修补。
  • 问题#23804:修复SSL零长度recv()调用不阻止,不引入关于unclean EOF的错误。
  • 问题#27466:更改http.cookie.time2netscape返回的时间格式,确认netscape cookie格式并使其与文档一致。
  • 问题#26664 t>:通过删除$的误用,修复activate.fish。
  • 问题#22115:固定跟踪Tkinter变量:trace_vdelete()与错误模式不再断开跟踪,trace_vinfo()现在总是返回一个字符串对的列表,跟踪在“u”模式现在工作。
  • 修复importlib.util.LazyLoader中的范围问题,当延迟加载已放入sys.modules中的模块时,触发了UnboundLocalError。
  • 问题#27079:修复curses.ascii函数isblank(),iscntrl()和ispunct()。
  • 问题#26754:一些函数(compile()等)接受一个编码为整数的迭代的文件名参数。现在只接受字符串和字节状对象。
  • 问题#27048:当环境变量包含非ASCII字符时,阻止Windows上的distutils故障
  • 问题#27330:修复了ctypes模块中可能发生的泄漏。
  • 问题#27238:在乌龟模块中摆脱了裸露的异常。原始补丁由Jelle Zijlstra。
  • 问题#27122:当在contextlib.ExitStack()管理的上下文中引发异常并且生成器捕获并引发它在链中的一个时,不要重新提高原始异常退出时,让新的链接一个通过。这避免issue25782中描述的PEP 479错误。
  • [安全] 问题#27278:在Linux上使用getrandom()修复os.urandom()实现。截断大小为INT_MAX并循环,直到我们收集足够的随机字节,而不是直接Py_ssize_t转换为int。
  • 问题#26386:修正了ttk.TreeView选择操作,其中项目ID包含空格。
  • [安全] 问题#22636:避免shell注入问题ctypes.util.find_library()。
  • 问题#16182:修复“readline”模块中的各种函数以使用语言环境编码,并修复get_begidx()和get_endidx()以返回代码点索引。
  • 问题#26930:更新Windows版本以使用OpenSSL 1.0.2h。
  • 问题#27392:添加loop.connect_accepted_socket()。补丁由吉姆·富尔顿。

IDLE

  • 问题#27365:在IDLE NEWS.txt中允许非ascii字符,作为贡献者名称。
  • 问题#27245:IDLE:清除地删除自定义主题和键绑定。以前,当从控制台或导入启动IDLE时,会发出级联的警告。补丁由Serhiy Storchaka。

C API

  • 问题#26754:PyUnicode_FSDecoder()接受编码为整数的可迭代的文件名参数。现在只接受字符串和字节状对象。

Tests

  • 问题#27369:在test_pyexpat中,请避免测试在Expat 2.2.0中更改的错误消息详细信息。

Tools/Demos

  • 问题#27332:修正了由Argument Clinic生成的模块级函数的第一个参数的类型。补丁由彼得·维克托林。
  • 问题#27418:固定工具/ importbench / importbench.py​​。

Windows

  • 问题#27469:向启动器添加shell扩展,以便拖放正常工作。
  • 问题#27309:在python [w] .exe清单中启用正确的Windows样式。

Build

  • 问题#25825:更正对AIX上需要的Modules / python.exp的引用。参考在3.5.0a1中意外更改。
  • 问题#27453:在配置中的CPP调用必须使用CPPFLAGS。补偿由Chi原日元。
  • 问题#27641:configure脚本现在将注释插入makefile,以防止pgen和_freeze_importlib可执行文件被交叉编译。
  • 问题#26662:在configure中将PYTHON_FOR_GEN设置为在构建过程中用于生成文件的Python程序。

Python 3.5.2

发布日期:2016-06-26

Core and Builtins

Tests

  • 问题#26867:Ubuntu的openssl OP_NO_SSLv3默认强制启用;修复测试。

IDLE

  • 问题#27365:在idlelib / NEWS.txt中允许非ascii - 3.5.2的最小部分。

Python 3.5.2 release candidate 1

发布日期:2016-06-12

Core and Builtins

  • 问题#27066:如果自定义开启者(用于open())返回负数而未设置异常,则修复SystemError。
  • 问题#20041:当frame.f_trace设置为无时修复TypeError。补丁由Xavier de Gaye。
  • 问题#26168:修复了使用“N”格式单元来使Py_BuildValue()失败的可能的漏洞。
  • 问题#26991:在使用注释创建函数时修复可能的refleak。
  • 问题#27039:对于大于127的值,修复了bytearray.remove()。补丁由乔Jevnik。
  • 问题#23640:int.from_bytes()不再绕过子类的构造函数。
  • 问题#26811:gc.get_objects()不再包含具有NULL指针的破碎元组。
  • 问题#20120:使用RawConfigParser进行.pypirc解析,移除对无意中添加的内插对Python 3的支持。行为不再在.pypirc文件中进行任何插值,在Python 2.7和Setuptools 19.0中匹配行为。
  • 问题#26659:使内置切片类型支持周期容器。
  • 问题#26718:如果调用多次,super .__ init__不再泄漏内存。注意:不支持直接调用super .__ init__!
  • 问题#25339:PYTHONIOENCODING现在在设置stdin和stdout的错误处理程序时优先于区域设置。
  • 问题#26494:修复了迭代耗尽迭代器崩溃。受影响的类是通用序列迭代器,str,字节,bytearray,list,tuple,set,frozenset,dict,OrderedDict,对应视图和os.scandir()迭代器的迭代器。
  • 问题#26581:如果在Python源代码文件中的一行上多次指定编码Cookie,则只会采用第一个帐户。
  • 问题#26464:当字符串为ASCII时,修复str.translate(),第一次替换删除字符,但下一次替换使用非ASCII字符或长度大于1个字符的字符串。在Python 3.5.0中引入了回归。
  • 问题#22836:确保来自PyErr_Display()和PyErr_WriteUnraisable()的异常报告是明智的,即使格式化它们会产生次级错误。这会影响sys .__ excepthook __()和__del __()引发异常时产生的报告。
  • 问题#26302:正确的行为,将逗号作为Cookie名称的法定字符。
  • 问题#4806:在函数调用中使用star(*)分拆时,避免掩盖原始的TypeError异常。基于HagenFürstenau和Daniel Urban的补丁。
  • 问题#27138:修复FileFinder.find_spec()的文档注释。
  • 问题#26154:添加一个新的私有_PyThreadState_UncheckedGet()函数以获取当前的Python线程状态,但如果它为NULL,不会发出致命错误。必须使用此新函数,而不是直接访问_PyThreadState_Current变量。该变量不再暴露自从Python 3.5.1隐藏的原子C类型的确切实现,以避免编译器问题。
  • 问题#26194:Deque.insert()对已达到其最大大小的边界deques提供了奇怪的结果。现在,当尝试插入到完整的deque时,将引发一个IndexError。
  • 问题#25843:在编译代码时,如果常量是相等的但有不同的类型,不要合并它们。For example, f1, f2 = lambda: 1, lambda: 1.0 is now correctly compiled to two different functions: f1() returns 1 (int) and f2() returns 1.0 (int), even if 1 and 1.0 are equal.
  • 问题#22995:[UPDATE]注释掉_PyObject_GetState()中的一个pickleability测试,因为在基于Cython的项目中观察到回归。
  • 问题#25961:类型名称中不允许使用空字符。
  • 问题#25973:当无效的非本地语句绑定以两个下划线开头的名称时,修复segfault。
  • 问题#22995:状态不是list或dict的子类并且尚未实现任何与pickle相关的方法(__reduce__,__reduce_ex__,​​__getnewargs__,__getnewargs_ex__或__getstate__)的扩展类型实例,不能再被酸洗。包括memoryview。
  • 问题#20440:使用特殊宏Py_SETREF大规模替换不安全的属性设置代码。
  • 问题#25766:特殊方法__bytes __()现在可在str子类中使用。
  • 问题#25421:__sizeof__方法的内置类型现在使用动态基本大小。这允许sys.getsize()与其定义的__slots__子类正常工作。
  • 问题#25709:修复了就地字符串连接和utf-8缓存的问题。
  • 问题#27147:在importlib文档中提及PEP 420。
  • 问题#24097:修复对象中的崩溃.__如果槽名在__getattr__中释放,请减少__()。
  • 问题#24731:修复了使用特殊方法转换对象时出现的崩溃__bytes__,__trunc__和__float__将bytes,int和float子类的实例对应地返回字节,int和float的子类。
  • 问题#26478:在使用带字典视图和元组的二进制运算符时修复语义错误。
  • 问题#26171:修复zipimporter.get_data()中可能的整数溢出和堆损坏。
  • 问题#25660:使用readline修复REPL中的TAB键行为。
  • 问题#25887:当协程对象多次等待时引发RuntimeError。
  • 问题#27243:更新__aiter__协议:而不是返回一个解析为异步迭代器的等待,应该直接返回异步迭代器。执行前者将触发PendingDeprecationWarning。

Library

  • [安全] 问题#26556:将外国人更新为2.1.1,修复CVE-2015-1283。

  • [安全]修复smtplib中的TLS剥离漏洞,CVE-2016-0772。由Oststrom团队报告

  • 问题#21386:实施缺少IPv4Address.is_global属性。它自07a5610bae9d以来被记录。由Roger Luethi提供的初始补丁。

  • 问题#20900:distutils register命令现在正确解码HTTP响应。初始补丁由ingrid。

  • 一个新版本的typing.py提供了几个新的类和特性:@overload outside stubs,Reversible,DefaultDict,Text,ContextManager,Type [],NewType(),TYPE_CHECKING和许多错误修复尚未在mypy或其他静态分析器中实现)。还添加了PEP 492(等待,AsyncIterable,AsyncIterator)的类(实际上,它们已经成为3.5.1,但从未提及)。

  • 问题#25738:停止发送205重置内容的邮件正文的http.server.BaseHTTPRequestHandler.send_error()。此外,不要在没有正文的响应中发送Content头字段。补丁由Susumu Koshiba。

  • 问题#21313:修复sys.version包含截断的构建信息时允许的“平台”模块。

  • [Security] Issue #26839: On Linux, os.urandom() now calls getrandom() with GRND_NONBLOCK to fall back on reading /dev/urandom if the urandom entropy pool is not initialized yet. 由Colm Buckley写的补丁。

  • 问题#27164:在zlib模块中,允许使用预定义的zdict解压缩原始Deflate流。基于张祥的补丁。

  • 问题#24291:修复wsgiref.simple_server.WSGIRequestHandler以完全将数据写入客户端。以前,它可以执行部分​​写入和截断数据。此外,wsgiref.handler.ServerHandler现在可以处理stdout执行部分写入,但这已被弃用。

  • 问题#26809:将__all__添加到string贴片:Emanuel Barry。

  • 问题#26373:当子进程在更多/所有情况下调用.communicate()之前死机时,subprocess.Popen.communicate现在正确地忽略BrokenPipeError。

  • 问题#21776:distutils.upload现在可以正确处理HTTPError。初始补丁Claudiu Popa。

  • 问题#27114:修复SSLContext._load_windows_store_certs失败并显示PermissionError

  • 问题#18383:使用filterwarnings和simplefilter时避免创建重复的过滤器。基于由亚历克斯Shkop补丁。

  • 问题#27057:在Android上修复os.set_inheritable(),ioctl()被SELinux阻止,并失败了EACCESS。该函数现在回退到fcntl()。由MichałBednarski写的补丁。

  • 问题#27014:使用typing.py修复无限递归。感谢Kalle Tuure!

  • 问题#14132:当目标只有查询字符串时,修复urllib.request重定向处理。JánJanech的原始修正。

  • 问题#17214:“urllib.request”模块现在对在重定向目标网址中找到的非ASCII字节进行百分比编码。一些服务器发送具有非ASCII字节的位置头字段,但是“http.client”要求请求目标是ASCII可编码的,否则会引发UnicodeEncodeError。基于克里斯蒂安·海姆斯的补丁。

  • 问题#26892:在urllib.request.HTTPHandler中的荣誉debuglevel标志。由Chi璇仁贡献的贴。

  • 问题#22274:在子过程模块中,即使stdout未重定向,也允许将stderr重定向到stdout。补丁由Akira李。

  • 问题#26807:mock_open'files'在文件末尾的readline中不再出错。补丁从Yolanda Robla。

  • 问题#25745:修复了在curses面板析构函数中泄露userptr。

  • 问题#26977:删除不必要的,忽略的,调用statistics.pvariance中的平方和辅助程序。

  • 问题#26881:modulefinder模块现在支持扩展操作码参数。

  • 问题#23815:修复了与在_tkinter和curses.panel模块中直接创建的类型实例相关的崩溃问题。

  • 问题#17765:weakref.ref()不再静默忽略关键字参数。乔治·布兰德的补丁。

  • 问题#26873:xmlrpc现在在不支持的类型标记上引发ResponseError,而不是静默地返回不正确的结果。

  • 问题#26711:修复了plistlib.Data与其他类型的比较。

  • 问题#24114:修复ctypes.util中的未初始化变量。

    当ctypes实现搜索crle程序时,该错误只发生在SunOS上。补充由张祥。测试在SunOS由Kees Bos。

  • 问题#26864:在urllib.request中,将对no_proxy的代理绕过主机检查更改为不区分大小写,并且不匹配无关主机名,这些主机名恰好有旁路主机名作为后缀。补充由张祥。

  • 问题#26634:recursive_repr()现在设置包装器的__qualname__。补充由张祥。

  • 问题#26804:urllib.request将首选低于UPPER_CASE或Mixed_Case的低级代理环境变量。补丁由Hans-Peter Jansen贡献。

  • 问题#26837:assertSequenceEqual()现在正确地输出非字符串化的不同项目(如-b模式中的字节)。这会影响assertListEqual()和assertTupleEqual()。

  • 问题#26041:从platform.dist()和platform.linux_distribution()的弃用消息中删除“将从Python 3.7中删除”。补丁由Kumaripaba Miyurusara Athukorala。

  • 问题#26822:itemgetter,attrgetter和methodcaller对象不再默默忽略关键字参数。

  • 问题#26733:现在反汇编类反汇编类和静态方法。补充由张祥。

  • 问题#26801:修复shutil.get_terminal_size()中的错误处理,捕获AttributeError而不是NameError由Emanuel Barry写的补丁。

  • 问题#24838:tarfile的ustar和gnu格式现在可以正确地计算UTF-8等多字节字符编码的名称和链接字段限制。

  • [安全] 问题#26657:在Windows上使用http.server修复目录遍历漏洞。这修复了在3.3.4rc1和3.4.0rc1中引入的回归。基于补丁由Philipp Hagemeister。

  • 问题#26717:停止使用UTF-8编码拉丁字母的WSGI路径。补丁由安东尼Sottile。

  • Issue #26735: Fix os.urandom() on Solaris 11.3 and newer when reading more than 1,024 bytes: call getrandom() multiple times with a limit of 1024 bytes per call.

  • 问题#16329:将.webm添加到mimetypes.types_map。补丁由Giampaolo Rodola'。

  • 问题#13952:将.csv添加到mimetypes.types_map。补丁由Geoff Wilson。

  • 问题#26709:修正加载二进制PLists的Y2038问题。

  • 问题#23735:通过安装我们自己的SIGWINCH处理程序处理终端通过Readline 6.3+调整大小。补丁由Eric Price。

  • 问题#26586:在http.server中,如果有太多的头字段需要解析,而不是终止连接并引发未处理的异常,则用“413请求头字段太大”进行响应。补充由张祥。

  • 问题#22854:更改BufferedReader.writable()和BufferedWriter.readable()始终返回False。

  • 问题#25195:修复mock.MagicMock中的回归。_Call是元组的子类(changeset 3603bae63c13只适用于类),所以我们需要实现__ne__自己。补丁由安德鲁Plummer。

  • 问题#26644:当负长度传递到SSLSocket.recv()或read()时,引发ValueError而不是SystemError。

  • 问题#23804:修复SSL recv(0)和读取(0)方法以返回零字节,而不是最多1024个字节。

  • 问题#26616:修复了datetime.astimezone()方法中的错误。

  • Issue #21925: warnings.formatwarning() now catches exceptions on linecache.getline(...) to be able to log ResourceWarning emitted late during the Python shutdown process.

  • 问题#24266:在Readline历史记录搜索期间,Ctrl + C现在取消了使用Readline 7编译时的搜索模式。

  • 问题#26560:在BaseHandler.start_response中避免潜在的ValueError。由Peter Inglesby提供的初始补丁。

  • [安全] 问题#26313:如果Windows证书存储为空,ssl.py _load_windows_store_certs将失败。补丁由Baji。

  • 问题#26569:修正pyclbr.readmodule()pyclbr.readmodule_ex()以支持导入包。

  • 问题#26499:HTTPResponse.readline()和read1()中剩余Content-Length的帐户。基于补丁由Silent Ghost。还记录HTTPResponse现在支持这些方法。

  • 问题#25320:处理目录中的套接字unittest发现正在扫描。来自Victor van den Elzen的补丁。

  • 问题#16181:如果year高于datetime.MAXYEAR,cookiejar.http2time()现在返回None。

  • 问题#26513:修复Windows Server的平台模块检测

  • 问题#23718:在1月1日之前的第0周修正解析时间。原始补丁由TamásBence Gedai。

  • 问题#20589:在Windows上调用Path.owner()和Path.group()现在引发NotImplementedError,而不是ImportError。

  • 问题#26177:修复了Canvas和Scrollbar小部件的keys()方法。

  • 问题#15068:消除了fileinput模块中过多的缓冲。不再使用bufsize参数。

  • 问题#2202:在AbstractDigestAuthHandler.get_algorithm_impls中修复UnboundLocalError。Mathieu Dupuy的初始补丁。

  • 问题#25718:固定酸洗和复制accumulate()迭代器,总计为None。

  • 问题#26475:修正带有(?x)标志的正则表达式的调试输出。

  • 问题#26457:在结果前缀长度等于最大前缀长度的情况下,修复IP网络类中的子网()方法。基于张祥的补丁。

  • 问题#26385:如果NamedTemporaryFile()中的内部open()调用失败,请删除该文件。Patch by Silent Ghost。

  • 问题#26402:修复XML-RPC客户端以在服务器关闭持续连接时重试。这是与3.5.0a4中的新http.client.RemoteDisconnected异常相关的回归。

  • 问题#25913:在adobe = True的base64.a85decode()中,目前<~是可选的。补丁由Swati Jaiswal。

  • 问题#26186:在importlib.util.LazyLoader中删除无效的类型检查。

  • 问题#26367:importlib .__ import __()引发SystemError类似于内置.__ import __()当指定level但没有指定伴随包时。

  • 问题#26309:在“socketserver”模块中,当verify_request()返回false时,关闭请求(关闭连接的套接字)。由Aviv Palivoda修补。

  • [安全] 问题#25939:在Windows上,在ssl.enum_certificates中只读打开cert存储。

  • 问题#25995:os.walk()不再使用与树深度成比例的FD。

  • 问题#26117:os.scandir()迭代器现在关闭文件描述器不仅当迭代完成时,但是当它失败与错误。

  • 问题#25911:在Windows上恢复os.walk()中的字节路径支持。

  • 问题#26045:在使用http.client发布非拉丁语-1字符串时,将错误消息添加到UTF-8建议。

  • 问题#12923:重置FancyURLopener的重定向计数器,即使有异常。基于Brian Brazil和Daniel Rocco的补丁。

  • 问题#25945:修复了解开状态错误的functools.partial对象时出现的崩溃。修复了失败的functools.partial构造函数中的泄漏。functools.partial的“args”和“keywords”属性现在总是相应地键入tuple和dict。

  • 问题#26202:copy.deepcopy()现在可以正确复制具有非原子属性的range()对象。

  • 问题#23076:Path.glob()现在引发一个ValueError,如果它使用无效模式调用。补丁由托马斯尼伯格。

  • 问题#19883:修复了可能的zipimport中的整数溢出。

  • 问题#26227:在Windows上,套接字模块的getnameinfo(),gethostbyaddr()和gethostbyname_ex()函数现在从ANSI代码页而不是UTF-8解码主机名。

  • 问题#26147:xmlrpc现在可用于不能使用非UTF-8编码的字符串。

  • 问题#25935:垃圾收集器现在使用OrderedDict中断引用循环。

  • 问题#16620:修复了msilib.Directory.glob()中的AttributeError。

  • 问题#26013:增加了与旧Python 3版本(3.4.3及更低版本)中创建的破坏的协议2腌菜的兼容性。

  • 问题#25850:对于64位Windows,默认情况下使用交叉编译。

  • 问题#17633:改进zipimport对命名空间包的支持。

  • 问题#24705:修复sysconfig._parse_makefile不扩展$ {} vars出现在$()vars之前。

  • 问题#22138:在修补描述器时修复mock.patch行为。修补后恢复原始值。补丁由Sean McCully贡献。

  • 问题#25672:在ssl模块中,如果安全,请启用SSL_MODE_RELEASE_BUFFERS模式选项。

  • 问题#26012:不要遍历到pathlib.Path中的**模式的​​符号链接。[r] glob()。

  • 问题#24120:在使用pathlib.Path。[r] glob()遍历树时忽略PermissionError。补丁由Ulrich Petri。

  • 问题#25447:fileinput现在如果没有缓冲属性则使用sys.stdin(恢复向后兼容性)。

  • 问题#25447:现在,复制lru_cache()包装器对象始终可行,从包装对象的类型(通过不改变地返回原始对象)无关。

  • 问题#24103:修复了在ElementTree.XMLPullParser中释放后可能使用。

  • 问题#25860:os.fwalk()在发生错误时不再跳过剩余的目录。原始补丁Samson Lee。

  • 问题#25914:固定和简化的OrderedDict .__ sizeof__。

  • 问题#25902:修复了ElementTree迭代中的各种引用计数问题。

  • 问题#25717:恢复以前在打开文件时容忍大多数fstat()错误的行为。这是3.5a1中的一个回归,并阻止匿名临时文件在特殊情况下工作。

  • 问题#24903:修正参数个数的回归compileall在指定'-d'时接受。对参数数量的检查已完全丢弃,因为它从来不能正确工作。

  • 问题#25764:在子过程模块中,使用preexec_fn时保留由fork()失败导致的任何异常。

  • 问题#6478:_strptime的regexp缓存现在在用time.tzset()更改时区后重置。

  • 问题#14285:当使用“python -m package”选项执行包时,包初始化失败,现在将报告正确的追溯。“runpy”模块现在允许从包初始化的异常传递回调用者,而不是提高ImportError。

  • 问题#19771:在runpy和“-m”选项中,忽略不相关的消息“。. . 是一个包,并且不能被直接执行“,如果包甚至不能被初始化。由于不好的*.pyc文件)。

  • 问题#25177:修正了非常小和非常大的数字的平均值的问题。作为副作用,statistics.mean和statistics.variance应该明显更快。

  • 问题#25718:带有布尔值的状态的修复复制对象为false。

  • 问题#10131:修复了对minidom文档的深层复制。基于补丁由Marian Ganisin。

  • 问题#25725:解决pickle.loads()中的引用泄漏,解除包含元组指令的无效数据。

  • 问题#25663:在“读取完成”中,避免列出重复的全局名称,并在搜索内置项之前搜索全局命名空间。

  • 问题#25688:修复了ElementTree.iterparse()中的文件泄露引发错误。

  • 问题#23914:修复了unpickler对破坏的pickle数据引发的SystemError。

  • 问题#25691:修复了删除ElementTree.Element属性时出现的崩溃问题。

  • 问题#25624:ZipFile现在总是为目录条目写入一个ZIP_STORED标头。王丁元的补丁。

  • 如果主机已解决,请跳过getaddrinfo。补丁由杰西Jiryu戴维斯。

  • 问题#26050:添加asyncio.StreamReader.readuntil()方法。由МаркКоренберг修补。

  • 问题#25924:避免在OS X 10.5或更高版本上对getaddrinfo(3)调用进行不必要的序列化。原始补丁由A.杰西Jiryu戴维斯。

  • 问题#26406:避免在当前版本的OpenBSD和NetBSD上对getaddrinfo(3)调用进行不必要的序列化。补丁由杰西Jiryu戴维斯。

  • 问题#26848:修复asyncio / subprocess.communicate()以处理空输入。补丁由杰克·奥康纳。

  • 问题#27040:添加loop.get_exception_handler方法

  • 问题#27041:asyncio:添加loop.create_future方法

  • 问题#27223:asyncio:修复_read_ready和_write_ready以尊重_conn_lost。由ŁukaszLanga修补。

  • 问题#22970:asyncio:修复不一致性,取消Condition.wait。补丁由大卫科尔斯。

IDLE

  • 问题#5124:粘贴选中的文本现在将替换X11上的选择。这与在Windows,Mac,最现代的Linux应用程序和ttk小部件上的粘贴方式相匹配。原始补丁由Serhiy Storchaka。
  • 问题#24759:在idlelib.idle_test .__ init__中清除该目录是test.test_idle的私有实现以及维护人员的工具。
  • 问题#27196:运行IDLE测试时停止“ThemeChanged”警告。这些在其他警告被抑制在#20567后持续。将Serhiy Storchaka的update_idletasks解决方案应用于四个测试文件。在idle_test / README.txt中记录此附加建议
  • 问题#20567:修改idle_test / README.txt并提供关于避免来自测试的tk警告消息的建议。将建议应用于多个IDLE测试。
  • 问题#27117:使coloriser htest和turtledemo工作在黑暗的主题。将用于将文本窗口小部件颜色配置为新函数的代码。
  • 问题#26673:当tk报告字体大小为0时,更改为大小10。Linux上的这种字体阻止打开配置对话框。
  • 问题#21939:为IDLE的过滤器添加测试。原始补丁由Saimadhav Heblikar。
  • 问题#21676:为IDLE的替换对话框添加测试。原始补丁由Saimadhav Heblikar。
  • 问题#18410:为IDLE的搜索对话框添加测试。原始补丁由WestleyMartínez。
  • 问题#21703:为IDLE的撤消委托方添加测试。原始补丁由Saimadhav Heblikar。
  • 问题#27044:添加ConfigDialog.remove_var_callbacks以停止内存泄漏。
  • 问题#23977:向test_delegator添加更多断言。
  • 问题#20640:为idlelib.configHelpSourceEdit添加测试。补丁由Saimadhav Heblikar。
  • 在IDLE文档的“IDLE控制台差异”部分中,说明如何使用IDLE运行会影响sys.modules和标准流。
  • 问题#25507:修复阻止打印的IOBinding中的不正确更改。扩充IOBinding htest以包括所有主要的IOBinding函数。
  • 问题#25905:在README.txt中还原不需要的转换为“RIGHT SINGLE QUOTATION MARK”,并使用“ascii”打开此文件和NEWS.txt。重新编码CREDITS.txt到utf-8,并用“utf-8”打开它。

Documentation

  • 问题#24136:记录3.5的新的PEP 448分拆语法。
  • 问题#26736:如果可能,对文档中的外部链接使用HTTPS。
  • 问题#6953:重写Readline模块文档以将相关函数组合在一起,并添加更多详细信息,例如访问底层Readline函数和变量。
  • 问题#23606:向ctypes文档中添加有关cdll.msvcrt的注释。
  • 问题#25500:修复文档以不声明在全局范围中搜索__import__。
  • 问题#26014:更新3.x打包文档:*“另请参见”链接到新文档现在在旧页面中提供* setuptools文档的链接已更新

Tests

  • 问题#21916:添加了龟模块的测试。由ingrid,Gregory Loyse和Jelle Zijlstra修补。
  • 问题#26523:多进程线程池(multiprocessing.dummy.Pool)未经测试。
  • 问题#26015:为可变序列的酸洗迭代器添加了新测试。
  • 问题#26325:添加了test.support.check_no_resource_warning()以检查是否没有发出ResourceWarning。
  • 问题#25940:已将test_ssl更改为使用selfsigned.pythontest.net。这避免依赖于svn.python.org,它最近更改了根证书。
  • 问题#25616:OrderedDict的测试从test_collections提取到单独的文件test_ordered_dict。
  • 问题#26583:如果无法写入字节码文件,请跳过test_import中的test_timestamp_overflow。

Build

  • 问题#26884:修复交叉构建的链接扩展模块。补丁由Xavier de Gaye。
  • 问题#22359:禁用交叉编译时运行_freeze_importlib和pgen的规则。这些程序的输出通常与源代码一起保存,并且在执行本机构建时仍然重新生成。补丁由Xavier de Gaye。
  • 问题#27229:修复树内构建的交叉编译pgen规则。补丁由Xavier de Gaye。
  • 问题#21668:将audioop,_datetime,_ctypes_test模块链接到libm,Mac OS X除外。Xavier de Gaye写的补丁。
  • 问题#25702:添加了一个-with-lto配置选项,将在make profile-opt期间在构建时启用链接时间优化。已知一些编译器和工具链在使用LTO时不会产生稳定的代码,请确保在依赖它之前对其进行彻底测试。它可以提供几个%速度超过profile-opt单独。
  • 问题#26624:添加ucrtbase [d] .dll版本的验证,并对旧版本发出警告。
  • 问题#17603:通过对struct stat中的st_blocks使用较低级别的检查,避免关于nonexistant fileblocks.o文件的错误。
  • 问题#26079:修复tix-8.4.3.6的构建输出文件夹。补丁由Bjoern Thiel。
  • 问题#26465:更新Windows版本以使用OpenSSL 1.0.2g。
  • 问题#24421:编译模块/ _math.c一次,然后再构建扩展。以前,如果数学和cmath构建是并发的,它可能无法正确编译。
  • 问题#25348:向PCbuild\build.bat添加了--pgo--pgo-job旧的PCbuild\build_pgo.bat脚本现在已弃用,只需调用PCbuild \ build.bat - pgo %*
  • 问题#25827:添加对使用ICC构建configure的支持,包括新的--with-icc标志。
  • 问题#25696:在UNIX上使用make -j9修复Python的安装。
  • 问题#26930:更新OS X 10.5+仅限32位的安装程序,以构建并链接OpenSSL 1.0.2h。
  • 问题#26268:更新Windows版本以使用OpenSSL 1.0.2f。
  • 问题#25136:支持Apple Xcode 7的新文本SDK存根库。
  • 问题#24324:使用gcc时不要启用无法访问的代码警告,因为该选项在旧版本的gcc中无法正常工作,并且从gcc-4.5开始以静默方式删除。

Windows

  • 问题#27053:更新make_zip.py以正确生成库ZIP文件。
  • 问题#26268:更新prepare_ssl.py脚本以处理不包括include目录(即1.0.2e及更高版本)内容的OpenSSL版本。
  • 问题#26071:bdist_wininst创建的二进制文件无法启动并找到32位Python
  • 问题#26073:更新启动器中的魔法数字列表
  • 问题#26065:在生成嵌入式发行版时从库中排除venv。

Tools/Demos

  • 问题#26799:修复python-gdb.py:在加载Python代码时,不要获取C类型一次,而是根据需要获取C类型。如果python-gdb.py在Python可执行文件之前加载,C类型可以更改。由Thomas Ilsche写的补丁。
  • 问题#26271:修复冻结工具以正确使用通过configure传递的标志。补丁由丹尼尔Shaulov。
  • 问题#26489:将字典分拆支持添加到Tools / parser / unparse.py。补丁郭国泰。
  • 问题#26316:在参数诊所中修正变量名称错误。

Misc

Python 3.5.1 final

发布日期:2015-12-06

Core and Builtins

  • 问题#25709:修复了就地字符串连接和utf-8缓存的问题。

Windows

  • 问题#25715:Python 3.5.1安装程序显示错误的升级路径和启动程序检测的不正确的逻辑。

Python 3.5.1 release candidate 1

发布日期:2015-11-22

Core and Builtins

  • 问题#25630:在接受文件系统路径的函数中解析参数解析期间修复可能的segfault。
  • 问题#23564:修复了_posixsubprocess内部结构中关于如何将fds_to_pass传递给子代码的部分破坏的健全性检查。该错误没有实际的影响,因为subprocess.py已经避免了它。
  • 问题#25388:在处理具有空字节的不可解码源代码时修复了标记器崩溃。
  • 问题#25462:在OrderedDict的C实现中,大多数操作中的键的哈希只计算一次。
  • 问题#22995:__reduce__和__reduce_ex__的默认实现现在拒绝未定义__new__的内置类型。
  • 问题#25555:在从Python对象编译AST时修复解析器和AST:填充“arg”节点的lineno和col_offset。
  • 问题#24802:当int(),float(),compile(),exec()和eval()通过类似字节的对象时,避免缓冲区重写。这些对象不一定以空字节终止,但函数假定它们是。
  • 问题#24726:修复了OrderedDict的repr()中由于直接调用dict方法而改变的崩溃和泄漏NULL。
  • 问题#25449:用不稳定哈希键迭代OrderedDict现在引入C实现中的KeyError以及Python实现。
  • 问题#25395:修复了高度嵌套的OrderedDict结构被垃圾回收时的崩溃。
  • 问题#25274:sys.setrecursionlimit()现在引发RecursionError,如果新的递归限制太低,取决于当前的递归深度。还修改“较低水位标记”公式,使其单调。此标记用于决定何时重置线程状态的溢出标志。
  • 问题#24402:当sys.stdout.fileno()失败时,修复input()以提示重定向stdout。
  • 问题#24806:防止不允许被子类化的内置类型通过多继承子类化。
  • 问题#24848:修复了UTF-7对错误数据解码的一些错误。
  • 问题#25280:以详细(-v)模式导入跟踪消息不再格式化两次。
  • 问题#25003:在Solaris 11.3或更高版本上,os.urandom()现在使用getrandom()函数,而不是getentropy()函数。getentropy()函数是阻塞生成非常好的质量熵,os.urandom()不需要这样的高质量熵。
  • 问题#25182:stdprinter(在启动时导入io模块之前用作sys.stderr)现在使用反斜杠错误处理程序。
  • 问题#25131:设置set / dict字面值和推导式的行号和列偏移量对应于大括号。
  • 问题#25150:从公共Python.h头中隐藏私有_Py_atomic_xxx符号,以修复OpenMP的编译错误。PyThreadState_GET()成为PyThreadState_Get()的别名,以避免ABI不兼容。

Library

  • 问题#25626:更改三个zlib函数以接受适合Py_ssize_t的大小,但将这些大小内部限制为UINT_MAX。这解决了3.5的回归,其中GzipFile.read()无法读取大于2或4 GiB的块。此更改会影响zlib.Decompress.decompress()max_length参数,zlib.decompress()bufsize参数和zlib.Decompress.flush()length参数。
  • 问题#25583:当操作系统优先处理诸如EACIST之类的错误时,避免os.makedirs引发不正确的错误(exists_ok = True)。
  • 问题#25593:更改asyncio中EventLoop.stop()的语义。
  • 问题#6973:当我们知道一个子进程已经死亡时,不允许send_signal(),terminate()或kill()方法做任何事情, 。
  • 问题#25590:在Readline完成器中,只对每个属性调用一次getattr()。
  • 问题#25498:在通过包装内存视图创建的垃圾回收ctypes对象时修复崩溃。这是一个在3.5a1中的回归。基于Eryksun的补丁。
  • 问题#25584:在glob模块中的__all__列表中添加了“escape”。
  • 问题#25584:修复了以“**”开头的模式的递归glob()。
  • 问题#25446:修复smtplib的AUTH LOGIN支持中的回归。
  • 问题#18010:修复pydoc Web服务器的模块搜索功能,以处理导入包的异常。
  • 问题#25554:在正则表达式解析中去掉了循环引用。
  • 问题#25510:如果使用二进制模式打开FileInput,fileinput.FileInput.readline()现在返回b“而不是”。补丁由Ryosuke伊东。
  • 问题#25503:修复了属性的继承文档字符串的inspect.getdoc()。原始补丁由约翰·马克·范登堡。
  • 问题#25515:始终使用os.urandom作为uuid.uuid4中的随机源。
  • 问题#21827:固定textwrap.dedent(),用于最大常用空格是最小前导空格的子字符串的情况。基于补充由罗伯特李。
  • 问题#25447:现在可以复制和pickled lru_cache()包装器对象(通过不改变原始对象)。
  • 问题#25390:键入:不会在共用体[str,Pattern]上崩溃。
  • 问题#25441:asyncio:当socket关闭时,从drain()引发错误。
  • 问题#25410:在C实现OrderedDict中清理并修复了一些小错误。
  • 问题#25411:通过更好地使用电子邮件包,改进了SMTPHandler中的Unicode支持。感谢用户simon04的补丁。
  • 问题#25407:删除在Python 3.6中删除的格式化程序模块的提及。
  • 问题#25406:修复了OrderedDict.move_to_end()的C实现中的一个错误,该错误导致分段错误或者在将多个项目移动到有序字典的开始后进行迭代。
  • 问题#25364:zipfile现在可在线程禁用构建中使用。
  • 问题#25328:smtpd的SMTPChannel现在正确地引发了ValueError,如果decode_data和enable_SMTPUTF8都设置为true。
  • 问题#25316:当未安装MSVC时,distutils引发OSError,而不是DistutilsPlatformError。
  • 问题#25380:修正pickletools.opcodes中STACK_GLOBAL操作码的协议。
  • 问题#23972:更新asyncio数据报创建方法,允许在绑定套接字之前设置reuseport和reuseaddr套接字选项。镜像现有的asyncio create_server方法,如果O / S是“posix”(除非平台是Cygwin),则用于数据报套接字的reuseaddr选项默认为True。补丁由Chris Laws。
  • 问题#25304:添加asyncio.run_coroutine_threadsafe()。这允许你从另一个线程提交一个协程到一个循环,返回一个concurrent.futures.Future。作者:Vincent Michel。
  • 问题#25232:修复CGIRequestHandler以从第一个问号(?)处的URL中分割查询而不是最后一个。来自Xiang Zhang的帖子。
  • 问题#24657:阻止CGIRequestHandler在URL的查询部分中折叠斜杠,就像它是一个路径一样。来自Xiang Zhang的补丁。
  • 问题#24483:functools.lru_cache()的C实现现在仅计算密钥的散列一次。
  • 问题#22958:weakref.WeakValueDictionary的构造方法和更新方法现在接受self和dict关键字参数。
  • 问题#22609:容器的构造方法.UserDict现在接受self关键字参数。
  • 问题#25111:修正了traceback.FrameSummary的比较。
  • 问题#25262:在unpickler的Python实现中添加对BINBYTES8操作码的支持。在C实现中,在32位平台上,BINUNICODE8和BINBYTES8操作码的64位大小的最高32位不再默认忽略。
  • 问题#25034:修复string.Formatter问题与自动编号和嵌套format_specs。Patch by Anthon van der Neut。
  • 问题#25233:重写asyncio.Queue和asyncio.Semaphore的内容以使其更容易理解和正确。
  • 问题#25203:readline.set_completer_delims()失败,不再使模块处于不一致的状态。
  • 问题#23600:在某些情况下,tzinfo.fromutc()的默认实现返回错误的结果。
  • 问题#23329:允许使用旧版本的LibreSSL构建ssl模块。
  • 在_Unpickler_Read中防止溢出。
  • 问题#25047:元素树编写的XML编码声明现在尊重用户给出的大写字母大小写。这将恢复以大写形式编写编码名称的功能,如“UTF-8”,这在Python 2中有效。
  • 问题#25135:在清除之前通过清空deque来使deque_clear()更安全。这有助于避免可能的重入问题。
  • 问题#19143:platform模块现在从kernel32.dll读取Windows版本,以避免兼容性垫片。
  • 问题#25092:当errno已设置为EINVAL时,修复datetime.strftime()失败。
  • 问题#23517:修正datetime.datetime的fromtimestamp()和utcfromtimestamp()方法中的四舍五入:微秒现在四舍五入为最接近,具有最接近的偶数整数(ROUND_HALF_EVEN),而不是向负无穷大(ROUND_FLOOR)。重要的是,这些方法使用与datetime.timedelta相同的舍入模式来保留属性:(datetime(1970,1,1)+ timedelta(seconds = t))== datetime.utcfromtimestamp(t)。它也是例如由round(float)使用的舍入模式。
  • 问题#25155:在Windows上修复datetime.datetime.now()和datetime.datetime.utcnow()以支持2038年后的日期。这是一个在Python 3.5.0中引入的回归。
  • 问题#25108:省略了回调函数print_stack(),format_stack()和extract_stack()中的内部框架,不带参数。
  • 问题#25118:在Windows上在os.waitpid()中修复Python 3.5.0的回归。
  • 问题#24684:socket.socket.getaddrinfo()现在调用PyUnicode_AsEncodedString()而不是调用主机的encode()方法,使用encode()方法处理正确的自定义字符串返回一个字节字符串。现在直接调用IDNA编解码器的编码器,而不是调用字符串的encode()方法。
  • 问题#25060:正确计算BUILD_MAP操作码的堆栈使用情况。
  • 问题#24857:将call_args比较为一个长序列现在正确地返回一个布尔值结果,而不是引发异常。补丁由Kaptur。
  • 问题#23144:确保HTMLParser.feed()返回所有数据,即使convert_charrefs为True。
  • 问题#24982:具有“zip”格式的shutil.make_archive()现在会在ZIP文件中为目录(包括空目录)添加条目。
  • 问题#25019:修复了设置expat解析器的非字符串键而导致的崩溃问题。基于John Leitch的补丁。
  • 问题#16180:如果文件具有语法错误,则退出pdb,而不是在无限循环中捕获用户。补丁由Xavier de Gaye。
  • 问题#24891:如果在Python正在创建sys.stdin,sys时关闭stdin(0),stdout(1)或stderr(2)的文件描述器, stdout和sys.stderr对象。如果对象的创建失败,这些属性现在设置为无,而不是引发OSError异常。由Marco Paolini编写的初始补丁。
  • 问题#24992:修复容器.OrderedDict构造函数中的错误处理和竞争条件(与garbage container相关)。
  • 问题#24881:修复了在Windows和Cygwin上的FileIO的Python实现中的设置二进制模式。来自Akira Li的补丁。
  • 问题#25578:修复(另一个)SSLSocket.getpeercer()中的内存泄漏。
  • 问题#25530:在创建ssl.SSLContext时默认禁用易受攻击的SSLv3协议。
  • 问题#25569:修复SSLSocket.getpeercert()中的内存泄漏。
  • 问题#25471:从accept()返回的套接字不应显示为非阻塞。
  • 问题#25319:当threading.Event重新初始化时,基础条件应使用常规锁而不是递归锁。
  • 问题#21112:在子类别的unittest.expectedFailure中修复回归。从柏克Peksag的补丁。
  • 问题#24764:cgi.FieldStorage.read_multi()现在忽略部分标头中的Content-Length标头。由Peter Landry写的补丁,由Pierre Quentel审查。
  • 问题#24913:修复deque.index()中的溢出错误。由John Leitch和Bryce Darling发现。
  • 问题#24774:修复http.server.test中的docstring。来自Chiu-Hsiang Hsu的补丁。
  • 问题#21159:改进configparser.InterpolationMissingOptionError中的消息。从ŁukaszLanga修补。
  • 问题#20362:在assertRegex中正确地使用TestCase.longMessage。从Ilia Kurenkov补丁。
  • 问题#23572:修复了带有伪类元类的functools.singledispatch。补丁由Ethan Furman。
  • asyncio:ensure_future()现在接受等待对象。

IDLE

  • 问题#15348:在关闭调试器窗口(在IDLE过程中运行)之前停止调试器引擎(通常在用户进程中)。这将阻止正在捕获和忽略的RuntimeErrors。
  • 问题#24455:在调试器处于活动状态时关闭shell(15347),防止IDLE挂起。 b)用[X]按钮(15348)关闭调试器;以及c)当已经活动时激活调试器(24455)。Mark Roseman的补丁通过做出两个改变来做到这一点。1. 使用用于此目的的tcl vwait机制(而不是root.mainloop&.quit)暂停并恢复gui.interaction方法。2. 在gui.run中,允许任何现有的交互首先终止。
  • 在IDLE“kill program?”消息中将“程序”更改为“您的程序”,以使它更清楚,引用的程序是当前正在运行的用户程序,而不是IDLE本身。
  • 问题#24750:改进IDLE编辑器窗口状态栏的外观。马克·罗斯曼补丁。
  • 问题#25313:更改新内建文字颜色主题的处理,以更好地解决添加IDLE Dark引入的兼容性问题。始终在idlelib中使用经过修改的idleConf.CurrentTheme。
  • 问题#24782:扩展配置现在是IDLE首选项对话框中的一个选项卡,而不是单独的对话框。以前的选项卡现在是排序列表。马克·罗斯曼补丁。
  • 问题#22726:重新激活配置对话框帮助按钮,其中包含有关其他按钮和新的IDLE Dark主题的内容。
  • 问题#24820:IDLE现在有一个“IDLE Dark”内建文字颜色主题。它或多或少是IDLE经典倒置,有钴蓝色背景。字符串,评论,关键字,...仍然是绿色,红色,橙色,...。要在2015年11月之前发布的IDLE中使用它,请点击“另存为新自定义主题”按钮,然后输入一个新名称,如“自定义深色”。自定义主题将与任何IDLE版本一起使用,并且可以修改。
  • 问题#25224:README.txt现在是IDLE开发人员和好奇用户的idlelib索引。先前的用户内容现在在IDLE文档章中。“IDLE”现在意味着“综合发展和学习环境”。
  • 问题#24820:用户现在可以在“设置” - >“自定义突出显示”中设置断点颜色。原始补丁由马克罗斯曼。
  • 问题#24972:非活动选择背景现在与所有系统上的用户配置的活动选择背景匹配。找到的项目现在总是在Windows上突出显示。由Mark Roseman初次补丁。
  • 问题#24570:闲置:在受tk回归影响的Mac上显示呼叫提示和完成框。由Mark Roseman初次补丁。
  • 问题#24988:Idle ScrolledList上下文菜单(用于调试器)现在在Mac Aqua上工作。马克·罗斯曼补丁。
  • 问题#24801:在Mac Aqua上右键单击上下文菜单。马克·罗斯曼补丁。
  • 问题#25173:将tkinter消息框与特定小部件关联。对于Mac OSX,使它们成为'工作表'。马克·罗斯曼补丁。
  • 问题#25198:增强现在用于空闲帮助的初始html查看器。*适当缩进固定间距文本(由Mark Roseman修补)。*给代码片段一个非常类似Sphinx的浅蓝灰色背景。*重用由用户为shell和编辑器设置的初始宽度和高度。*当使用目录(TOC)菜单时,将节标题放在屏幕顶部。
  • 问题#25225:在文本颜色上浓缩和重写闲置文档部分。
  • 问题#21995:解释IDLE和控制台Python之间的一些区别。
  • 问题#22820:从Idle编辑器运行文件时解释打印的需要。
  • 问题#25224:Doc:扩充空闲功能列表和无子过程部分。
  • 问题#25219:为Idle命令行选项更新doc。有些人失踪了,笔记不正确。
  • 问题#24861:idlelib的大部分是私有的,可能会更改。使用idleib.idle。*开始空闲。请参阅idlelib .__ init __.__ doc__。
  • 问题#25199:空闲:为未来的维护人员添加同步评论。
  • 问题#16893:用help.html替换空闲文档显示的help.txt。新的idlelib / help.html是rstripped Doc / build / html / library / idle.html。它看起来比help.txt更好,将更好地文档空闲释放。适用于此文件的tkinter html查看器是由Mark Roseman编写的。现在未使用的EditorWindow.HelpDialog类和helt.txt文件已弃用。
  • 问题#24199:弃用未使用的idlelib.idlever,可能在3.6中删除。
  • 问题#24790:删除无关的代码(也会创建2和3个冲突)。

Documentation

  • 问题#22558:将其余文档链接添加到Python编码模块的源代码。补丁由Yoni Lavi。
  • 问题#12067:在语言参考的“表达式”章节中重写“比较”部分。比较混合类型的一些细节是不正确的或不明确的。未实现仅在比表达式章更低的级别相关。添加了比较range()对象的详细信息,以及用户定义类的默认行为和一致性建议。来自Andy Maier的补丁。
  • 问题#24952:说明“threading”和“_thread”模块中stack_size()的默认大小参数。马提浦的补丁。
  • 问题#23725:大修tempfile文件。注意mktemp的已弃用状态。从ZbigniewJędrzejewski-Szmek的补丁。
  • 问题#24808:更新一些PyTypeObject字段的类型。补丁由约瑟夫·韦斯顿。
  • 问题#22812:修复单元测试发现示例。Pam McA'Nulty的补丁。

Tests

  • 问题#25449:添加了OrderedDict子类的测试。
  • 问题#25099:当sys.path上的条目无法写入(在Windows上的管理安装中常见)时,使test_compileall不会失败。
  • 问题#23919:阻止在测试套件中显示对话框。
  • PCbuild\rt.bat现在接受无限数量的参数传递给regrtest.py。以前有一个限制9。

Build

  • 问题#24915:为PGO构建添加LLVM支持,并使用测试套件生成配置文件数据。英特尔的Alecsandru Patrascu的初始补丁。
  • 问题#24910:Windows MSI现在具有唯一的显示名称。
  • 问题#24986:当外部库不可用时,现在可以在Windows上构建Python,而没有错误。

Windows

  • 问题#25450:更新在安装目录中启动Python的快捷方式。
  • 问题#25164:更改默认all-users安装目录以匹配每个用户目录。
  • 问题#25143:改进不受支持的平台的安装程序错误消息。
  • 问题#25163:在使用非默认设置时,在安装程序中显示正确的目录。
  • 问题#25361:在Windows 32位构建中禁止使用SSE2指令
  • 问题#25089:在升级时未选择启动器的情况下,将日志记录添加到安装程序。
  • 问题#25165:如果仍有其他版本,Windows卸载不应删除启动器
  • 问题#25112:py.exe启动器缺少图标
  • 问题#25102:Windows安装程序没有预先编译-O或-OO。
  • 问题#25081:在升级时,使安装程序中的“上一步”按钮返回到升级页面。
  • Issue #25091: Increases font size of the installer.
  • 问题#25126:说明非Web安装程序将下载一些组件。
  • 问题#25213:将requestedExecutionLevel恢复为清单以禁用UAC虚拟化。
  • 问题#25022:删除了非常过时的PC / example_nt /目录。

Tools/Demos

Python 3.5.0 final

发布日期:2015-09-13

Build

  • 问题#25071:Windows安装程序在安静安装时不应需要TargetDir参数。

Python 3.5.0 release candidate 4

发布日期:2015-09-09

Library

Build

  • 问题#25027:还原部分静态构建选项,并将vcruntime140.dll添加到Windows安装。

Python 3.5.0 release candidate 3

发布日期:2015-09-07

Core and Builtins

  • 问题#24305:防止导入子系统堆栈帧被warnings.warn(stacklevel =)参数计数。
  • 问题#24912:防止__class__分配给不可变的内建对象。
  • 问题#24975:修复PEP 448语法的AST编译。

Library

  • 问题#24917:time_strftime()缓冲区重读。
  • 问题#24748:要解决与py2exe和pywin32发现的兼容性问题,imp.load_dynamic()再次忽略先前加载的模块,以支持用扩展模块替换自己的Python模块。补丁由彼得·维克托林。
  • 问题#24635:修正了typing.py中的一个错误,其中isinstance([],typing.Iterable)将在后续调用中返回True一次,然后返回False。
  • 问题#24989:如果位置超出大小,则修复BytesIO.readline()中的缓冲区溢出。基于John Leitch的补丁。
  • 问题#24913:修复deque.index()中的溢出错误。由John Leitch和Bryce Darling发现。

Python 3.5.0 release candidate 2

发布日期:2015-08-25

Core and Builtins

  • 问题#24769:当禁用动态加载时,解释器现在正常启动。补丁由彼得·维克托林。
  • 问题#21167:当使用ICC编译python时,现在可以正确处理NAN操作,即使未指定-fp-model strict。
  • 问题#24492:尝试从 执行​​ 时缺少__name__属性的“包”。 t4> ...语句将触发ImportError而不是AttributeError。

Library

Python 3.5.0 release candidate 1

发布日期:2015-08-09

Core and Builtins

  • 问题#24667:在底层指示符调整大小的所有情况下调整odict的大小。

Library

  • 问题#24824:codecs.encode()和codecs.decode()的签名现在与pydoc兼容。
  • 问题#24634:导入uuid不应尝试在Windows上加载libc
  • 问题#24798:_msvccompiler.py不正确支持清单
  • 问题#4395:更好的测试和记录二进制运算符。马丁·帕特补丁。
  • 问题#23973:从GitHub repo更新typing.py。
  • 问题#23004:当read_data的类型为字节时,mock_open()现在可以正确读取二进制数据。初始补丁由Aaron山。
  • 问题#23888:处理Cookie到期的小数时间。补丁由ssh。
  • 问题#23652:可以根据Linux标准库中的libc头编译select模块,而不包括一些EPOLL宏。补丁由马特·弗兰克。
  • 问题#22932:修复email.utils.formatdate中的时区。来自Dmitry Shachnev的补丁。
  • 问题#23779:如果验证者尝试中止,则imaplib引发TypeError。来自Craig Holmquist的补丁。
  • 问题#23319:修复ctypes.BigEndianStructure,正确交换字节。由Matthieu Gautier写的补丁。
  • 问题#23254:记录如何关闭TCPServer侦听套接字。从马丁·帕特的补丁。
  • 问题#19450:更新Windows和OS X安装程序生成以使用SQLite 3.8.11。
  • 问题#17527:将PATCH添加到wsgiref.validator。来自Luca Sbardella的补丁。
  • 问题#24791:修正调用语法的语法回归:'g(* a或b)'。

IDLE

  • 问题#23672:允许空闲以名称编辑和运行带有星号字符的文件。补丁由Mohd Sanad Zaki Rizvi。
  • 问题#24745:空闲编辑器默认字体。从Courier切换到平台敏感的TkFixedFont。这不应影响当前自定义字体选择。如果有问题,请编辑$ HOME / .idlerc / config-main.cfg并从[编辑器窗口]中删除'fontxxx'条目。马克·罗斯曼补丁。
  • 问题#21192:空闲编辑器。运行文件时,将其名称放在重新启动栏中。不要打印假提示。Adnan Umer的原始补丁。
  • 问题#13884:闲置菜单。删除茶叶线。补丁由罗杰Serwy。

Documentation

  • 问题#24129:说明名称解析的参考文档。这包括删除以下假设:读者将熟悉在引入函数命名空间的词法作用域之前使用的Python名称解析方案。补丁由伊万Levkivskyi。
  • 问题#20769:改进reload()docs。补丁由多利安普拉。
  • 问题#23589:从常见问题中删除重复的句子。林志平补丁。
  • 问题#24729:正确的IO教程来匹配关于编码参数的实现以打开函数。

Tests

  • 问题#24751:当使用-w命令行选项运行regrtest时,如果重新运行时所有测试成功,测试运行不再标记为失败。

Python 3.5.0 beta 4

发布日期:2015-07-26

Core and Builtins

  • 问题#23573:对Linux上的单字节参数恢复bytes.rfind()和bytearray.rfind()的优化。
  • 问题#24569:使PEP 448字典评估更加一致。
  • 问题#24583:在更新时设置为mutated时修复崩溃。
  • 问题#24407:当正在更新时dict已更改时修复崩溃。
  • 问题#24619:用于对异步/等待进行标记化的新方法。因此,现在可以有一行“async def foo():await ..”函数。
  • 问题#24687:在函数参数注释中插入refleak on SyntaxError。
  • 问题#15944:memoryview:在转换为字节时允许任意格式。马丁·帕特补丁。

Library

  • 问题#23441:rcompleter现在打印制表符字符,而不是显示空字的可能完成。马丁·塞克拉的初步补丁。
  • 问题#24683:修正了使用不适当类型的参数调用的_json函数中的崩溃。
  • 问题#21697:shutil.copytree()现在可以正确处理指向目录的符号链接。补丁由Eduardo Seabra和托马斯Kluyver。
  • 问题#14373:在构建lru_cache(C实现)期间调用gc.collect()时修复了分段错误。
  • 问题#24695:在traceback.print_exception()中修复回归。如果exc_traceback是None,我们不应该打印一个traceback头像文档中所描述的。
  • 问题#24620:Random.setstate()现在验证状态最后一个元素的值。
  • 问题#22485:解决了导致inspect.getsource在嵌套函数上返回不正确结果的问题。
  • 问题#22153:改进单元测试文档。从马丁·潘特和evilzero的补丁。
  • 问题#24580:现在已明确禁止对重新编码模式中打开组的符号组引用以及数字组引用。
  • 问题#24206:修正了检查课程的__eq__和__ne__方法。
  • 问题#24631:在具有多行设置的timeit模块中修复了回归。
  • Issue#18622:unittest.mock.mock_open()。reset_mock将无限递归。从Nicola Palumbo和Laurent De Buyst的补丁。
  • 问题#23661:unittest.mock side_effects现在可能再次成为异常。这是一个回归对Python 3.4。从Ignacio Rossi的修补程序
  • 问题#24608:chunk.Chunk.read()现在总是返回字节,而不是str。
  • 问题#18684:固定读取re模块中的缓冲区。
  • 问题#24259:tarfile现在如果在数据段内截断归档,则引发ReadError。
  • 问题#15014:SMTP.auth()和SMTP.login()现在支持SMTP AUTH命令的RFC 4954的可选初始响应参数。
  • 问题#24669:为“async def”函数修复inspect.getsource()。Patch by Kai Groner。
  • 问题#24688:ast.get_docstring()用于'async def'函数。

Build

  • 问题#24603:更新Windows版本和OS X 10.5安装程序以使用OpenSSL 1.0.2d。

Python 3.5.0 beta 3

发布日期:2015-07-05

Core and Builtins

  • 问题#24467:修复了bytearray中可能的缓冲区过量读取。bytearray对象现在总是为尾部空字节分配位置,它的缓冲区现在总是空终止。
  • 升级到Unicode 8.0.0。
  • 问题#24345:为稳定的ABI添加Py_tp_finalize槽。
  • 问题#24400:为PEP 492协程引入不同类型;添加types.CoroutineType,inspect.getcoroutinestate,inspect.getcoroutinelocals;协程不再使用CO_GENERATOR标志; sys.set_coroutine_wrapper仅适用于'async def'协程; inspect.iscoroutine不再使用容器.abc.Coroutine,它的目的是测试纯'async def'协程只;添加新操作码:GET_YIELD_FROM_ITER;修复生成器wrapper在types.coroutine中使用的例子是容器.abc.Generator的实例;容器.abc.Awaitable和容器.abc.Coroutine不能再用于检测基于生成器的协程 - 使用inspect.isawaitable。
  • 问题#24450:将gi_yield从添加到生成器,并将cr_await添加到协程。供稿人:Benno Leslie和Yury Selivanov。
  • 问题#19235:添加新的RecursionError异常。乔治·布兰德的补丁。

Library

  • 问题#21750:mock_open.read_data现在可以从每个实例读取,如在Python 3.3中所示。
  • 问题#24552:在_pickle模块的错误情况下修复free后使用。
  • 问题#24514:tarfile现在容许仅由空格组成的数字字段。
  • 问题#19176:在ElementTree的C实现中修复了doctype()相关的错误。不再由XMLParser子类使用默认doctype()方法发出弃用警告。直接调用doctype()现在发出警告。如果调用目标的doctype(),解析器的doctype()现在不被调用。基于Martin Panter的补丁。
  • 问题#20387:在制表符缩进块的tokenize / untokenize中恢复语义往返正确性。
  • 问题#24456:修复了audioop模块的adpcm2lin()和lin2adpcm()函数中可能的缓冲区过量读取。
  • 问题#24336:contextmanager装饰器现在可与带有名为“func”和“self”的关键字参数的函数一起工作。马丁·帕特补丁。
  • 问题#24522:修复json加速器模块中可能的整数溢出。
  • 问题#24489:确保先前设置的C errno不会打扰cmath.polar()。
  • 问题#24408:修复tkinter.Font的measure()和metrics()方法中的AttributeError。
  • 问题#14373:functools.lru_cache()的C实现现在可以与方法一起使用。
  • 问题#24347:如果PyDict_GetItemWithError返回NULL,则设置KeyError。
  • 问题#24348:丢弃多余的decref / decref。
  • 问题#24359:在迭代期间检查已更改的OrderedDict大小。
  • 问题#24368:支持OrderedDict方法中的关键字参数。
  • 问题#24362:简化C OrderedDict快速节点调整大小逻辑。
  • 问题#24377:修复OrderedDict .__ repr__中的ref泄漏。
  • 问题#24369:在迭代期间防范键更改。

Tests

  • 问题#24373:_testmultiphase和xxlimited现在使用tp_traverse和tp_finalize避免将tp_dealloc与PyType_FromSpec组合时遇到的引用泄漏(有关详细信息,请参阅问题#16690

Documentation

  • 问题#24458:更新文档以涵盖扩展模块(PEP 489)的多阶段初始化。补丁由彼得·维克托林。
  • 问题#24351:在string.Template实例的上下文中澄清“identifier”的含义。

Build

  • 问题#24432:更新Windows版本和OS X 10.5安装程序以使用OpenSSL 1.0.2c。

Python 3.5.0 beta 2

发布日期:2015-05-31

Core and Builtins

  • 问题#24284:当找到空字符串并且索引完全超出范围时,str类的startswith和endswith方法不再返回True。
  • 问题#24115:更新使用PyObject_IsTrue(),PyObject_Not(),PyObject_IsInstance(),PyObject_RichCompareBool()和_PyDict_Contains()来正确检查和处理错误。
  • 问题#24328:修复导入一个字符扩展模块。
  • 问题#11205:在字典显示中,计算值之前的键。
  • 问题#24285:固定回归阻止从包中导入扩展模块。补丁由彼得·维克托林。

Library

  • 问题#23247:修正CJK编解码器的StreamWriter.reset()中的崩溃。
  • 问题#24270:根据PEP 485添加math.isclose()和cmath.isclose()函数。供稿人:Chris Barker和Tal Einat。
  • 问题#5633:固定时间,当语句是字符串,而设置不是。
  • 问题#24326:固定audioop.ratecv()与非默认weightB参数。原始补丁由大卫·摩尔。
  • 问题#16991:添加OrderedDict的C实现。
  • 问题#23934:对缺少声明信息的内置类型,修复inspect.signature错误。詹姆斯·鲍威尔的初步补丁。

Python 3.5.0 beta 1

发布日期:2015-05-24

Core and Builtins

  • 问题#24276:固定优化属性描述器getter。
  • 问题#24268:PEP 489:多阶段扩展模块初始化。补丁由彼得·维克托林。
  • 问题#23955:添加pyvenv.cfg选项以禁止在Windows上生成sys.path的注册表/环境查找。
  • 问题#24257:修正了伪造types.SimpleNamespace比较中的系统错误。
  • 问题#22939:在迭代器对象中修复了整数溢出。克莱门特Rouault的补丁。
  • 问题#23985:在从bytearray前面删除切片,然后附加一些其他字节数据时,修复可能的缓冲区溢出。
  • 问题#24102:修复了标准错误处理程序中的异常类型检查。
  • 问题#15027:UTF-32编码器现在的速度提高了3倍到7倍。
  • 问题#23290:针对目标为空的情况优化set_merge()。(由Serhiy Storchaka提供)
  • 问题#2292:PEP 448:附加拆分广义。
  • 问题#24096:使warnings.warn_explicit更强大,防止warnings.filters列表的突变。
  • 问题#23996:当委派的生成器引发非标准化StopIteration异常时,避免崩溃。补丁由斯蒂芬Behnel。
  • 问题#23910:优化property()getter调用。补丁由乔Jevnik。
  • 问题#23911:将基于路径的importlib引导代码移动到单独的冻结模块。
  • 问题#24192:修复命名空间包导入。
  • 问题#24022:处理不可解码的源代码时,修复tokenizer崩溃。
  • 问题#9951:为字节,bytearray和memoryview添加了一个hex()方法。
  • 问题#22906:PEP 479:更改生成器内的StopIteration处理。
  • 问题#24017:PEP 492:协程使用async和await语法。

Library

  • 问题#14373:添加了functools.lru_cache()的C实现。基于Matt Joiner和Alexey Kachayev的补丁。
  • 问题#24230:tempfile模块现在接受前缀,后缀和dir参数的字节,并返回这种情况下的字节(匹配os模块API)。
  • 问题#22189:容器.UserString现在支持__getnewargs __(),__rmod __(),casefold(),format_map(),isprintable()和maketrans补丁由乔Jevnik。
  • 问题#24244:在Windows上在strftime中遇到无效的格式字符串时阻止终止。
  • 问题#23973:PEP 484:添加键入模块。
  • 问题#23086:容器.abc.Sequence()抽象基类向index()mixin添加了开始停止参数。补丁由Devin Jeanpierre。
  • 问题#20035:用_tkinter模块中的私有函数替换用于在Windows上设置Tcl / Tk环境的tkinter._fix这不会对环境造成永久性的更改。
  • 问题#24257:修复了sqlite3.Row构造函数中的分段故障,使用假的游标类型。
  • 问题#15836:assertRaises(),assertRaisesRegex(),assertWarns()和assertWarnsRegex()assertments现在检查第一个参数的类型,以防止可能的用户错误。基于丹尼尔·瓦格纳霍尔的补丁。
  • 问题#9858:将缺少的方法存根添加到_io.RawIOBase。补丁由Laura Rupprecht。
  • 问题#22955:操作符模块中的attrgetter,itemgetter和methodcaller对象现在支持pickling。为这些对象添加了可读和可评估的repr。基于Josh Rosenberg的补丁。
  • 问题#22107:tempfile.gettempdir()和tempfile.mkdtemp()现在,当一个具有所选名称的目录在Windows和Unix上已经存在时,再次尝试。如果父目录在Windows上无效(不存在或是文件),tempfile.mkstemp()现在会提前失败。
  • 问题#23780:使用单个参数改进了os.path.join()中的错误消息。
  • 问题#6598:在email.utils.make_msgid()中增加时间精度和随机数范围,以加强消息ID的唯一性。
  • 问题#24091:修复了ElementTree的C实现中的各种崩溃情况。
  • 问题#21931:msilib.FCICreate()现在引发在错误参数的情况下的TypeError,而不是带有伪造FCI错误号的ValueError。补丁由Jeffrey阿姆斯特朗。
  • 问题#13866quote_via参数添加到urllib.parse.urlencode。
  • 问题#20098:新的mangle_from策略选项用于电子邮件,默认值为对于compat32为True,对于所有其他策略为False。
  • 问题#24211:电子邮件库现在支持RFC 6532:它可以使用utf-8而不是编码字生成标题。
  • 问题#16314:在distutils中添加了对LZMA压缩的支持。
  • 问题#21804:poplib现在支持RFC 6856(UTF8)。
  • 问题#18682:内置标量类型的优化的pprint函数。
  • 问题#22027:smtplib现在支持RFC 6531(SMTPUTF8)。
  • 问题#23488:随机生成器对象现在在64位上消耗2倍的内存。
  • 问题#1322:platform.dist()和platform.linux_distribution()函数现已弃用。初步补丁Vajrasky Kok。
  • 问题#22486:添加了math.gcd()函数。现在已不推荐使用fractions.gcd()函数。基于Mark Dickinson的补丁。
  • 问题#24064:Property()docstrings现在可写。(Pager by Berker Peksag。)
  • 问题#22681:添加了对koi8_t编码的支持。
  • 问题#22682:添加了对kz1048编码的支持。
  • 问题#23796:BufferedReader的peek和read1方法现在引发ValueError,如果他们调用一个封闭的对象。补丁由John Hergenroeder。
  • 问题#21795:每当新的decode_data构造函数参数设置为False时,smtpd现在支持8BITMIME扩展。
  • 问题#24155:优化heapq.heapify()以便在对大型列表进行堆叠时提高缓存性能。
  • 问题#21800:imaplib现在支持RFC 5161(启用),RFC 6855(utf8 /国际化电子邮件),并自动将非ASCII用户名和密码编码为UTF8。
  • 问题#20274:当调用_sqlite.Connection时,它现在抱怨是否传递了任何关键字参数。以前,它默默地忽略他们。
  • 问题#20274:从_sqlite.Connection的三个METH_VARARGS方法中删除忽略的和错误的“kwargs”参数。
  • 问题#24134:assertRaises(),assertRaisesRegex(),assertWarns()和assertWarnsRegex()检查现在发出一个弃用警告,当callable为None或关键字参数,
  • 问题#24018:添加容器.abc.Generator抽象基类。供稿人:Stefan Behnel。
  • 问题#23880:Tkinter的getint()和getdouble()现在支持Tcl_Obj。Tkinter的getdouble()现在支持任何数字(特别是int)。
  • 问题#22619:在追溯模块中添加了负极限支持。基于Dmitry Kazakov的补丁。
  • 问题#24094:修正json.encode中可能的崩溃,并且表现不佳的dict子类。
  • 问题#9246:在POSIX上,os.getcwd()现在支持长于1025字节的路径。由威廉·奥尔写的补丁。
  • 问题#17445:添加difflib.diff_bytes()以支持字节字符串的比较(修复了Python 2的回归)。
  • 问题#23917:当ProcessPoolExecutor不存在时,回退到顺序编译。补丁由Claudiu波帕。
  • 问题#23008:在pydoc中,布尔值的修正解析属性为False。
  • 修复asyncio问题235:LifoQueue和PriorityQueue的put没有增加未完成的任务(这个错误是在JoinableQueue与Queue合并时引入的)。
  • 问题#23908:os函数现在拒绝在Windows上嵌入空字符的路径,而不是静默截断它们。
  • 问题#23728:binascii.crc_hqx()可能返回空数据的范围0-0xffff之外的整数。
  • 问题#23887:urllib.error.HTTPError现在有一个适当的repr()表示。Patchs by Berker Peksag。
  • asyncio:新的事件循环API:set_task_factory()和get_task_factory()。
  • asyncio:async()函数已弃用,有利于ensure_future()。
  • 问题#24178:asyncio.Lock,Condition,Semaphore和BoundedSemaphore支持新的'async with'语法。供稿人:Yury Selivanov。
  • 问题#24179:支持asyncio.StreamReader的“async for”。供稿人:Yury Selivanov。
  • 问题#24184:将AsyncIterator和AsyncIterable ABCs添加到容器.abc。供稿人:Yury Selivanov。
  • 问题#22547:为inspect.BoundArguments实现信息性__repr__。供稿人:Yury Selivanov。
  • 问题#24190:实现inspect.BoundArgument.apply_defaults()方法。供稿人:Yury Selivanov。
  • 问题#20691:向inspect.Signature.from_callable()和inspect.signature()添加'follow_wrapped'参数。供稿人:Yury Selivanov。
  • 问题#24248:不再使用inspect.Signature.from_function()和inspect.Signature.from_builtin()。
  • 问题#23898:修复inspect.classify_class_attrs()以支持带有重载__eq__和__bool__的属性。Payer by Mike Bayer。
  • 问题#24298:修复inspect.signature()以正确解开绑定方法周围的包装器。

IDLE

  • 问题#23184:删除idlelib中未使用的名称和导入。Al Sweigart的初始补丁。

Tests

  • 问题#21520:如果“bad”一词出现在当前目录名称的任何位置,test_zipfile不再失败。
  • 问题#9517:将script_helper移动到支持包中。补丁由克里斯蒂·威尔逊。

Documentation

  • 问题#22155:使用createfilehandler将文件处理程序子部分添加到tkinter doc。从常见问题中删除过时的示例。马丁·帕特补丁。
  • 问题#24029:记录子模块导入的名称绑定行为。
  • 问题#24077:在-I命令选项的手册页中修正拼写错误:-s,not -S

Tools/Demos

  • 问题#24000:改进的参数诊所将转换器映射到传统的“格式单位”。更新了文档以匹配。
  • Issue#24001:Argument Clinic转换器现在使用accept = {type}而不是types = {'type'}来指定转换器接受的类型。
  • 问题#23330:h2py现在支持#include中的任意文件名。
  • 问题#24031:make patchcheck现在也支持git checkout。

Python 3.5.0 alpha 4

发布日期:2015-04-19

Core and Builtins

  • 问题#22980:在Linux下,GNU / KFreeBSD和Hurd,C扩展现在包括扩展名中的架构三元组,以便于在同一工作树中测试不同ABI的构建。在OS X下,扩展名现在包括PEP 3149样式的信息。
  • 问题#22631:添加了特定于Linux的套接字常量CAN_RAW_FD_FRAMES。补丁由Joe Jevnik提供。
  • 问题#23731:实施PEP 488:删除.pyo文件。
  • 问题#23726:不为不添加任何新字段的非GC类型的用户子类启用GC。补丁由尤金Toder。
  • 问题#23309:如果守护线程在对缓冲的I / O对象持有锁时中止守护线程,并且主线程尝试使用相同的I / O对象,则避免死锁通常为stdout或stderr)。发出致命错误。
  • 问题#22977:固定格式化Wine上的Windows错误消息。马丁·帕特补丁。
  • 问题#23466:%c,%o,%x和%X以字节格式化现在引发非整数输入上的TypeError。
  • 问题#24044:在内存不足的情况下修复list.sort中可能的空指针解引用。
  • 问题#21354:PyCFunction_New函数再次由python DLL公开。

Library

  • 问题#23840:tokenize.open()现在关闭错误的临时二进制文件以修复资源警告。
  • 问题#16914:smtplib中的新调试级别2向调试输出添加时间戳。
  • 问题#7159:urllib.request现在支持在第401个之后自动发送验证凭据。此增强是来自问题#19494的增强的超集,并且取代该改变。
  • 问题#23703:修正901e4e52b20a中引入的urljoin()中的回归。补丁由Demian Brecht。
  • 问题#4254:添加_curses.update_lines_cols()。补丁由Arnon Yaari
  • 问题#19933:为轮次中的ndigits提供默认参数。由Vajrasky Kok修补。
  • 问题#23193:向tarfile.TarFile.extract和tarfile.TarFile.extractall添加numeric_owner参数。补丁由迈克尔·沃格特和埃里克·史密斯。
  • 问题#23342:添加一个subprocess.run()函数,比返回一个CalledProcess实例更一致的API比现有的调用*函数。
  • 问题#21217:inspect.getsourcelines()现在尝试从代码对象计算开始和结束行,修复了当lambda函数用作装饰器参数时的问题。补丁由托马斯巴林格和艾利森Kaptur。
  • 问题#24521:修复pickle模块中可能的整数溢出。
  • 问题#22931:在Cookie值中允许'['和']'。
  • functools.partial的关键字属性现在总是一个字典。
  • 问题#23811:向PyCompileError错误消息中添加缺少的换行符。补丁由Alex Shkop。
  • 问题#21116:在分配大于可用RAM的50%的多处理共享数组时,避免占用内存。由MédéricBoquien修补。
  • 问题#22982:在寻找可写文本文件的多个位置时改进BOM处理。
  • 问题#23464:已移除已弃用的asyncio JoinableQueue。
  • 问题#23529:从GzipFile,BZ2File或LZMAFile读取时,限制解压缩数据的大小。这使得使用压缩炸弹的拒绝服务攻击失败。压缩的有效载荷,其解压缩到巨大的大小)。马丁·帕特和尼古拉斯·拉特的补丁。
  • 问题#21859:添加io.FileIO的Python实现。
  • 问题#23865:多个模块中的close()方法现在是等幂的,并且在关闭时更稳健。如果他们需要释放多个资源,即使发生错误,也会释放所有资源。
  • 问题#23400:如果sem_open不可用,在Python 2和3上引入相同的异常。补丁由Davin Potts。
  • 问题#10838:子流程现在模块在其用户的导出名称列表中包含SubprocessError和TimeoutError,足以使用来自 子流程 t3 > import *
  • 问题#23411:添加了DefragResult,ParseResult,SplitResult,DefragResultBytes,ParseResultBytes和SplitResultBytes到urllib.parse .__ all__。马丁·帕特补丁。
  • 问题#23881:如果FTP连接无法修复ResourceWarning,则urllib.request.ftpwrapper构造函数现在关闭套接字。
  • 问题#23853socket.socket.sendall()在每次成功发送数据时不再重置套接字超时。套接字超时现在是发送所有数据的最大总持续时间。
  • 问题#22721:包含可排序和不可排序元素的set或dict的多行输出的顺序不再依赖于set或dict的迭代顺序。
  • 问题#15133:_tkinter.tkapp.getboolean()现在支持Tcl_Obj并始终返回bool。tkinter.BooleanVar现在验证输入值(接受的bool,int,str和Tcl_Obj)。tkinter.BooleanVar.get()现在总是返回bool。
  • 问题#10590:xml.sax.parseString()现在支持字符串参数。
  • 问题#23338:修正Cygwin上的格式化ctypes错误消息。补丁由Makoto加藤。
  • 问题#15582:inspect.getdoc()现在遵循继承链。
  • 问题#2175:SAX解析器现在支持InputSource对象的字符流。
  • 问题#16840:Tkinter现在支持在Tcl 8.4中添加的64位整数和在Tcl 8.5中添加的任意精度整数。
  • 问题#23834:修复socket.sendto(),使用C Py_ssize_t类型存储sendto()的结果,而不是C int类型。
  • 问题#23618socket.socket.connect()现在等待连接完成,而不是提高InterruptedError,如果连接被信号中断,信号处理程序不引发异常,并且套接字阻塞或有超时。socket.socket.connect()仍然引发InterruptedError用于非阻塞套接字。
  • 问题#21526:Tkinter现在支持Tcl 8.5中的新布尔类型。
  • 问题#23836:修复faulthandler模​​块以处理对其信号处理程序的可重入调用。
  • 问题#23838:linecache现在清除缓存,并在MemoryError上返回空结果。
  • 问题#10395:添加了os.path.commonpath()。在posixpath和ntpath中实现。基于Rafik Draoui的补丁。
  • 问题#23611:现在支持使用pickle协议序列化更多“可查找”对象(例如未绑定方法或嵌套类)
  • 问题#13583:sqlite3.Row现在支持切片索引。
  • 问题#18473:修正了2to3和3to2兼容的pickle映射。固定含糊的反向映射。添加了许多新的映射。导入映射不再应用于已使用全名映射映射的模块。
  • 问题#23485:当信号中断时,select.select()现在自动使用重新计算的超时重试,除非信号处理程序引发异常。此更改是PEP 475的一部分。
  • 问题#23752:从现有文件构建时描述器,io.FileIO()现在只调用一次fstat()。在fstat()被调用两次之前,这是没有必要的。
  • 问题#23704:容器.deque()对象现在支持__add__,__mul__和__imul __()。
  • 问题#23171:csv.Writer.writerow()现在支持任意迭代。
  • 问题#23745:新的电子邮件头解析器现在处理重复的MIME参数名称没有错误,类似于get_param的行为。
  • 问题#22117:修复os.utime(),它现在将时间戳向负无穷大(-inf)舍入,而不是向零舍入。
  • 问题#23310:修复MagicMock的初始化程序以使用__methods__,就像configure_mock()。Pasia by Kasia Jachim。

Build

  • 问题#23817:FreeBSD现在在SOVERSION中使用“1.0”作为其他操作系统,而不只是“1”。
  • 问题#23501:默认情况下,Argument Clinic现在会将代码生成为单独的文件。

Tests

  • 问题#23799:添加了用于运行和清理多个线程的test.support.start_threads()。
  • 问题#22390:如果运行测试后遗留了临时文件或目录,test.regrtest现在会发出警告。

Tools/Demos

  • 问题#18128:pygettext现在在POT-Creation-Date标头中使用标准+ NNNN格式。
  • 问题#23935:参数临床对于接受字节,bytearrays和缓冲区的格式单元的理解现在与文档和实现一致。
  • Issue#23944:Argument Clinic现在在第78列包装长型原型。
  • 问题#20586:Argument Clinic现在确保没有docstrings的函数具有签名。
  • Issue#23492:Argument Clinic现在使用PyArg_Parse而不是PyArg_ParseTuple生成参数解析代码(如果可能)。
  • 问题#23500:Argument Clinic现在更聪明地生成methoddef宏的“#ifndef”(空)定义:它只生成一次,即使Argument Clinic多次处理相同的符号,在所有处理结束时而不是在第一次使用后立即发出。

C API

Python 3.5.0 alpha 3

发布日期:2015-03-28

Core and Builtins

  • 问题#23573:使用不同种类的参数(UCS1)提高字符串搜索操作的性能(str.find,str.index,str.count,in操作符号,str.split,str.partition) ,UCS2,UCS4)。
  • 问题#23753:Python不再支持没有stat()或fstat()的平台,这些函数总是必需的。
  • 问题#23681:-b选项现在影响与int比较字节。
  • 问题#23632:Memoryviews现在允许元组索引(包括多维内存查看)。
  • 问题#23192:修正生成器lambdas。补丁由布鲁诺Cauet。
  • 问题#23629:修正可变大小物件的预设__sizeof__实作。

Library

  • 问题#14260:正则表达式模式对象的groupindex属性现在是不可修改的映射。
  • 问题#23792:当pydoc寻呼机处于活动状态时,忽略KeyboardInterrupt。这模仿标准的unix寻呼机的行为,并且防止pipepager在寻呼机本身仍在运行时关闭。
  • 问题#23775:OrderedDict的pprint()现在输出与repr()相同的表示形式。
  • 问题#23765:删除了ctypes中的IsBadStringPtr调用
  • 问题#22364:使用正则表达式提高了一些重新生成错误消息。
  • 问题#23742:ntpath.expandvars()不再丢失不平衡的单引号。
  • 问题#21717:zipfile.ZipFile.open函数现在支持'x'(独占创建)模式。
  • 问题#21802:BufferedRWPair中的读取器现在关闭,即使在BufferedRWPair.close()中关闭写入程序失败。
  • 问题#23622:包含'\'和ASCII字母的正则表达式中的未知转义引发弃用警告,并在Python 3.6中被禁止。
  • 问题#23671:string.Template现在允许将“self”参数指定为关键字参数。string.Formatter现在允许将“self”和“format_string”参数指定为关键字参数。
  • 问题#23502:pprint模块现在支持映射代理。
  • 问题#17530:pprint现在包装长字节对象和bytearrays。
  • 问题#22687:修复了在tetxtwrap中打破字词的一些角落案例。摆脱二次复杂性打破长话。
  • 问题#4727:复制模块现在使用pickle协议4(PEP 3154),并支持复制其__new__方法采用仅关键字参数的类的实例。
  • 问题#23491:添加了一个zipapp模块,以支持创建Python代码的可执行zip文件归档。在Windows上为这些档案(PEP 441)注册了“.pyz”和“.pyzw”扩展名。
  • 问题#23657:避免在zipapp中显式检查str,并添加对pathlib.Path对象作为参数的支持。
  • 问题#23688:添加了任意字节对象的支持,并避免了gzip.GzipFile.write()中对memoryview的不必要复制。原始补丁Wolfgang Maier。
  • 问题#23252:添加了对将ZIP文件写入不可查看流的支持。
  • 问题#23647:增加impalib的MAXLINE以适应现代邮箱大小。
  • 问题#23539:如果正文为无,则http.client.HTTPConnection.request现在将PORT,POST和PATCH标头的Content-Length设置为0,以避免某些Web服务器发生411错误。
  • 问题#22351:nntplib.NNTP构造函数不再使连接和套接字打开,直到垃圾回收器清除它们。马丁·帕特补丁。
  • 问题#23704:容器.deque()对象现在支持index(),insert()和copy()的方法。这允许deques被注册为MutableSequence,并且它提高了它们对列表的可替换性。
  • Issue #23715: signal.sigwaitinfo() and signal.sigtimedwait() are now retried when interrupted by a signal not in the sigset parameter, if the signal handler does not raise an exception. signal.sigtimedwait()在重试时使用单调时钟重新计算超时。
  • 问题#23001:模块mmap,ossaudiodev,socket,ssl和codecs中只接受只读字节类对象的函数现在也接受可写的字节状对象。
  • 问题#23646:如果time.sleep()被信号中断,则休眠现在以重新计算的延迟重试,除非信号处理程序引发异常(PEP 475)。
  • 问题#23136:_strptime现在统一处理第0周的所有天,包括上一年的12月30日。基于Jim Carroll的补丁。
  • 问题#23700:NamedTemporaryFile的迭代器现在保留对NamedTemporaryFile实例的引用。补丁Bohuslav Kabrda。
  • 问题#22903:当unittest.loader导入测试模块失败时创建的假测试用例现在可以选择。
  • 问题#22181:在Linux上,os.urandom()现在使用新的getrandom()syscall(如果可用),syscall在Linux内核3.17中引入。它更可靠和更安全,因为它避免了需要一个文件描述器并等待,直到内核有足够的熵。
  • 问题#2211:更新了http.cookies.Morsel类的实现。现在直接设置属性key,value和coded_value已被弃用。update()和setdefault()现在转换和检查键。比较等式现在考虑属性key,value和coded_value。copy()现在返回一个Morsel,而不是一个dict。repr()现在包含所有属性。优化检查键和引用值。添加了新的测试。原始补丁由Demian Brecht。
  • 问题#18983:允许在timeit中选择输出单位。补丁由朱利安Gindi。
  • 问题#23631:当回溯已突变时修复traceback.format_list。
  • 问题#23568:向MagicMock()对象添加rdivmod支持。由HåkanLövdahl修补。
  • 问题#2052:将字符集参数添加到HtmlDiff.make_file()。
  • 问题#23668:在Windows上支持os.truncate和os.ftruncate。
  • 问题#23138:解决Cookie在Cookiejar中缺少键或值的问题。补丁由Demian Brecht。
  • 问题#23051:multiprocessing.Pool方法imap()和imap_unordered()现在处理由迭代器引发的异常。补丁由Alon Diamant和Davin Potts。
  • 问题#23581:向MagicMock添加matmul支持。由HåkanLövdahl修补。
  • 问题#23566:faulthandler的enable(),register(),dump_traceback()和dump_traceback_later()函数现在接受文件描述器。补丁由吴武。
  • 问题#22928:在http.client中禁用HTTP头注入。原始补丁由Demian Brecht。
  • 问题#23615:模块bz2,tarfile和tokenize现在可以重新加载imp.reload()。补丁由Thomas Kluyver。
  • 问题#23605:os.walk()现在调用os.scandir(),而不是os.listdir()。os.scandir()的使用减少了对os.stat()的调用次数。由Ben Hoyt编写的初始补丁。

Build

Tests

Tools/Demos

  • 问题#22826:Tools / freeze / bkfile.py中的open()的结果现在更好地与常规文件兼容(特别是它现在支持上下文管理协议)。

Python 3.5 alpha 2

发布日期:2015-03-09

Core and Builtins

  • 问题#23571:PyObject_Call()和PyCFunction_Call()现在引发一个SystemError,如果一个函数返回一个结果并引发异常。SystemError链接到上一个异常。

Library

  • 问题#22524:新的os.scandir()函数,PEP 471:“os.scandir()函数的一部分 - 一个更好,更快的目录迭代器”。本Hoyt写的补丁。
  • 问题#23103:减少IPv4Address和IPv6Address的内存消耗。
  • 问题#21793:BaseHTTPRequestHandler再次将响应代码记录为数字,而不是作为字符串化枚举。补丁由Demian Brecht。
  • 问题#23476:在ssl模块中,在证书存储库上启用OpenSSL的X​​509_V_FLAG_TRUSTED_FIRST标志(如果可用)。
  • 问题#23576:在SSL层中达到EOF但底层连接尚未关闭时,避免停止SSL读取。
  • 问题#23504:向类型模块添加了__all__。
  • 问题#23563:在urllib.parse中优化的效用函数。
  • 问题#7830:展开嵌套的functools.partial。
  • 问题#20204:向_tkinter类添加了__module__属性。
  • 问题#19980:改进了未识别字符串的帮助()。help('')现在显示帮助str。help('help')现在显示help()帮助。原始补丁由马克·劳伦斯。
  • 问题#23521:更正了timedelta分区的纯python实现。
  • Eliminated OverflowError from timedelta * float for some floats;
  • Corrected rounding in timedlta true division.
  • 问题#21619:如果管道损坏,popen对象在退出后不再离开僵尸。马丁·帕特补丁。
  • 问题#22936:可以在追踪模块和单元测试的追踪中显示局部变量。
  • 问题#15955:添加一个选项以限制bz2.decompress()中的输出大小。由Nikolaus Rath修补。
  • 问题#6639:模块级龟龟功能不再在关闭窗口后引发TclError。
  • 问题#814253,#9179:组引用和条件组引用现在可在正则表达式中的lookbehind断言中使用。
  • 问题#23215:具有自定义错误处理程序的多字节编解码器,忽略错误消耗了太多内存,并引发SystemError或MemoryError。原始补丁由Aleksi Torhamo。
  • 问题#5700:关闭文件后,io.FileIO()调用flush()。flush()没有在close()中调用,如果closefd = False。
  • 问题#23374:当stdout编码与文件系统编码不同时,修复了使用非ASCII文件的pydoc故障。在Mac OS上)。
  • 问题#23481:从SSL模块的默认密码列表中删除RC4。
  • 问题#21548:在具有空文档字符串的模块上修复pydoc.synopsis()和pydoc.apropos()。
  • 问题#22885:修复了dbm.dumb模块中的任意代码执行漏洞。原始补丁Claudiu Popa。
  • 问题#23239:ssl.match_hostname()现在支持IP地址的匹配。
  • 问题#23146:在pathlib中修正了带有正斜杠的绝对Windows路径的错误处理。
  • 问题#23096:现在对于Python和C实现都使用协议0的pickle表示的浮点数是相同的。
  • 问题#19105:pprint现在可以更有效地使用右侧的可用空间。
  • 问题#14910:向argparse.ArgumentParser添加allow_abbrev参数。补丁由乔纳森·鲍,史蒂文伯特,保罗j3和丹尼尔Eriksson。
  • 问题#21717:tarfile.open()现在支持'x'(独占创建)模式。
  • 问题#23344:marshal.dumps()现在平均快20-25%。
  • 问题#20416:marshal.dumps()与协议3和4现在平均快40-50%。
  • 问题#23421:在tarfile CLI中修复压缩。补丁由wdv4758h。
  • 问题#23367:修复unicodedata模块中可能的溢出。
  • 问题#23361:修复Windows子流程创建代码中可能的溢出。
  • logging.handlers.QueueListener现在采用了一个respect_handler_level关键字参数,如果设置为True,则会将消息传递给处理程序,并将处理程序级别考虑在内。
  • 问题#19705:turtledemo现在有一个视觉排序算法演示。从Jason Yeo的原始补丁。
  • 问题#23801:修复问题,其中cgi.FieldStorage并不总是忽略多部分主体的整个前导。

Build

  • 问题#23445:pydebug builds现在使用“gcc -Og”尽可能使生成的可执行文件更快。
  • 问题#23686:更新OS X 10.5安装程序生成以使用OpenSSL 1.0.2a。

C API

  • 问题#20204:现在针对没有__module__属性的内置类型提出弃用警告。

Windows

  • 问题#23465:实施PEP 486 - 使Python Launcher了解虚拟环境。补丁由保罗·摩尔。
  • 问题#23437:在Windows上使用户脚本目录版本化。补丁由保罗·摩尔。

Python 3.5 alpha 1

发布日期:2015-02-08

Core and Builtins

  • 问题#23285:PEP 475 - EINTR处理。
  • 问题#22735:修复涉及自定义mro()实现的许多边缘情况(包括崩溃)。
  • 问题#22896:避免使用PyObject_AsCharBuffer(),PyObject_AsReadBuffer()和PyObject_AsWriteBuffer()。
  • 问题#21295:将一些更改(问题#16795)还原为构成回归的AST行号和列偏移。
  • 问题#22986:在某些情况下,允许在动态类型和静态类型之间更改对象的__class__。
  • 问题#15859:PyUnicode_EncodeFSDefault(),PyUnicode_EncodeMBCS()和PyUnicode_EncodeCodePage()现在引发异常,如果对象不是Unicode对象。对于PyUnicode_EncodeFSDefault(),在除Windows之外的平台上已经是这种情况。由Campbell Barton写的补丁。
  • 问题#21408:如果__eq __()返回NotImplemented,那么缺省的__ne __()现在返回NotImplemented。原始补丁由马丁·帕特。
  • 问题#23321:修复了当错误处理程序返回的补充字符串长于mailformed输入数据时,str.decode()中的崩溃。
  • 问题#22286:“backslashreplace”错误处理程序现在可以解码和翻译。
  • 问题#23253:在os.startfile中延迟加载ShellExecute [AW],以减少Windows上的启动开销。
  • 问题#22038:pyatomic.h现在使用stdatomic.h或GCC内建函数进行原子内存访问(如果可用)。由Vitor de Lima和Gustavo寺写的补丁。
  • 问题#20284:为字节和bytearray添加了%-interpolation(aka printf)格式。
  • 问题#23048:修复从pdb中的无限while循环跳出。
  • 问题#20335:bytes constructor now引发当使用非字符串参数指定encoding或errors时,TypeError。基于Renaud Blanch的补丁。
  • 问题#22834:如果当前工作目录最终设置为不存在的目录,则导入将不再引发FileNotFoundError。
  • 问题#22869:将解释器启动和关闭代码移动到新的专用pylifecycle.c模块
  • 问题#22847:提高方法缓存效率。
  • 问题#22335:尝试在32位平台上将bytearray放大到0x7fffffff字节时修复崩溃。
  • 问题#22653:在调试模式下执行可重入插入时修复断言失败。
  • 问题#22643:修复Unicode案例操作(上,下,标题,交换框,大小写)中的整数溢出。
  • 问题#17636:现在支持涉及相对导入的循环导入。
  • 问题#22604:在将复数除以(nan + 0j)时在调试模式下修复断言错误。
  • 问题#21052:当sys.path_hooks或sys.meta_path设置为None时,不要引用ImportWarning。
  • 问题#16518:在以前使用更多的“x”不支持缓冲区协议的错误消息中使用“需要字节的对象”。
  • 问题#22470:在“backslashreplace”,“xmlcharrefreplace”和“surrogatepass”错误处理程序中修复了整数溢出问题。
  • 问题#22540:加速PyObject_IsInstancePyObject_IsSubclass,第二个参数具有type
  • 问题#18711:添加新的PyErr_FormatV函数,类似于PyErr_Format,但接受va_list参数。
  • 问题#22520:在生成unicode对象的repr时修复溢出检查。
  • 问题#22519:修复PyBytes_Repr中的溢出检查。
  • 问题#22518:修复拉丁语-1编码中的整数溢出问题。
  • 问题#16324:MIMEText的_charset参数现在还接受email.charset.Charset实例。由Claude Paroz提供的初始补丁。
  • 问题#1764286:修复inspect.getsource()以支持装饰函数。补丁由Claudiu波帕。
  • 问题#18554:os .__ all__包括posix函数。
  • 问题#21391:在shutil模块中使用os.path.abspath。
  • 问题#11471:如果没有else子句,则避免在if块的末尾生成JUMP_FORWARD指令。原始补丁由尤金Toder。
  • 问题#22215:现在,当str或bytes参数包含不允许的空字符或字节时,将引发ValueError,而不是TypeError。
  • 问题#22258:修复Illumos上的内部函数set_inheritable()。此平台暴露函数ioctl(FIOCLEX),但调用它失败,errno是ENOTTY:“不适当的ioctl设备”。set_inheritable()现在回到较慢的fcntl()F_GETFD,然后F_SETFD)。
  • 问题#21389:在绑定方法的repr中显示基础函数的__qualname__。
  • 问题#22206:使用pthread,PyThread_create_key()现在将errno设置为ENOMEM,并在整数溢出时返回-1(错误)。
  • 问题#20184:为30个内置函数添加了基于参数诊断的声明内省。
  • 问题#22116:C函数和方法('builtin_function_or_method'类型)现在可以被弱化。补丁由吴武。
  • 问题#22077:通过添加“或切片”来改进字节数,字节,列表和元组的索引错误消息。对于bytearrays,添加了',而不是'。 原始补丁Claudiu Popa。
  • 问题#20179:将参数临床应用于字节和bytearray。Patch由Tal Einat。
  • 问题#22082:在slotdefs中清除interned字符串。
  • 将Unicode数据库升级到Unicode 7.0.0。
  • 问题#21897:当frame.clear()被调用时,使用闭包变量修复带有f_locals属性的崩溃。
  • 问题#21205:在生成器中添加一个新的__qualname__属性,并将其用于生成器的表示形式(repr(gen)生成器的默认名称(__name__属性)现在从函数而不是代码获取。使用gen.gi_code.co_name获取代码的名称。
  • 问题#21669:借助于SyntaxError .__ init__中的启发式,解析器现在尝试使用“exec”和“print”时生成更有意义的(或至少更多搜索引擎友好的)错误消息作为语句。
  • 问题#21642:在条件if-else表达式中,允许写入的整数与它自身与else关键字之间没有空格。True 如果 42else False
  • 问题#21523:修复编译器中某些操作码的堆栈效应的过度悲观计算。这也修复了在编译具有大量“和”和“或”运算符的代码时明显的二次编译时间问题。
  • 问题#21418:修复内置函数super()中的调试时没有参数和没有当前框架(例如:嵌入式Python)的崩溃。
  • 问题#21425:修复交互式解释器中标准流的刷新。
  • 问题#21435:在极少数情况下,当在循环垃圾桶中的对象上运行终结器时,由于内部迭代逻辑中的微妙缺陷,可能会发生错误的指针解引用。
  • 问题#21377:当第一个参数的引用计数为1时,PyBytes_Concat()现在尝试就地连接。由Nikolaus Rath修补。
  • 问题#20355:-W命令行选项现在的优先级高于PYTHONWARNINGS环境变量。补丁由Arfrever。
  • 问题#21274:在Python / pythonrun.c中为GNU / Hurd定义PATH_MAX。
  • 问题#20904:支持在m68k上设置FPU精度。
  • 问题#21209:使用语法中的yield修复发送元组到自定义生成器对象。
  • 问题#21193:当b是负数时,pow(a,b,c)现在引发ValueError而不是TypeError。补丁由Josh Rosenberg。
  • PEP 465 and Issue #21176: Add the ‘@’ operator for matrix multiplication.
  • 问题#21134:在未初始化的UnicodeEncodeError,UnicodeDecodeError或UnicodeTranslateError对象上调用str时修复segfault。
  • 问题#19537:修复m68k下的PyUnicode_DATA()对齐。补丁Andreas Schwab。
  • 问题#20929:添加类型转换,以避免移动负数。
  • 问题#20731:在源代码文件中适当放置,即使它们在文本模式下打开。补丁由Serhiy Storchaka。
  • 问题#20637:密钥共享现在也适用于实例字典的子类。补丁由Peter Ingebretson。
  • 问题#8297:模块中缺少的属性现在包含错误文本中的模块名称。原始补丁由ysj.ray。
  • 问题#19995:%c,%o,%x和%X现在引发非整数输入上的TypeError。
  • 问题#19655:ASDL解析器 - 由构建过程使用以生成用于管理C中的Python AST的代码 - 被重写。新的解析器是自包含的,不需要携带很长的spark.py解析器生成器库; spark.py已从源代码库中删除。
  • 问题#12546:在使用str,int,float和复数__format__方法时,允许将\x00用作填充字符。
  • 问题#20480:添加ipaddress.reverse_pointer。由Leon Weber补丁。
  • 问题#13598:修改string.Formatter以支持替换字段的自动编号。它现在匹配str.format()的行为在这方面。补丁由菲尔埃尔森和Ramchandra Apte。
  • 问题#8931:对类型“c”进行备用格式化('#')引发异常。在3.5之前的版本中,'#'和'c'没有效果。现在指定它是一个错误。Torsten Landschoff补丁。
  • 问题#23165:在_Py_char2wchar函数中分配内存之前执行溢出检查。

Library

  • 问题#23399:pyvenv尽可能创建相对符号链接。
  • 问题#20289:cgi.FieldStorage()现在支持上下文管理协议。
  • 问题#13128:在debuglevel> 0时打印CONNECT请求的响应头。补丁由Demian Brecht。
  • 问题#15381:优化io.BytesIO以减少分配和复制。
  • 问题#22818:在可能匹配空字符串的模式上拆分现在引发警告。只能匹配空字符串的模式现在被拒绝。
  • 问题#23099:导出的缓冲区关闭io.BytesIO现在被拒绝,以防止损坏导出的缓冲区。
  • 问题#23326:删除了__ne__个实现。由于修复问题#21408中的默认__ne__实现,它们是多余的。
  • 问题#23363:修复itertools.permutations中可能的溢出。
  • 问题#23364:修复itertools.product中可能的溢出。
  • 问题#23366:修复了itertools.combinations中可能的整数溢出。
  • 问题#23369:修复_json.encode_basestring_ascii中可能的整数溢出。
  • 问题#23353:修复生成器在PyEval_EvalFrameEx()中的异常处理。在入口处,保存或交换异常状态,即使使用throwflag = 0调用PyEval_EvalFrameEx()。在退出时,异常状态现在总是被恢复或交换,不仅是为什么是WHY_YIELD或WHY_RETURN。与Antoine Pitrou合写的补丁。
  • 问题#14099:已恢复对将ZIP文件写入可辨别但不可查找的流的支持。
  • 问题#14099:写入ZipFile并读取多个ZipExtFiles现在是线程安全的。
  • 问题#19361:JSON解码器现在引发JSONDecodeError而不是ValueError。
  • 问题#18518:timeit现在拒绝不能在函数或循环外编译的语句。“return”或“break”)。
  • 问题#23094:在pickle的Python实现中修复了带有框架的readline。
  • 问题#23268:修正了ipaddress类比较中的错误。
  • 问题#21408:删除__ne __()的不正确实现,如果__eq __()返回NotImplemented,则未返回NotImplemented。默认的__ne __()现在可以正常工作。
  • 问题#19996email.feedparser.FeedParser现在处理(格式错误的)标头而不使用键,而不是假定正文已开始。
  • 问题#20188:在ssl模块中支持应用层协议协商(ALPN)。
  • 问题#23133:pickling ipaddress对象现在生成更紧凑和可移植的表示。
  • 问题#23248:从最新的OpenSSL git主控更新ssl错误代码。
  • 问题#23266:当有许多非连续地址时,ipaddress.collapse_addresses()的执行速度快得多。
  • 问题#23098:os模块现在支持64位dev_t。
  • 问题#21817:当提交到ProcessPoolExecutor的任务中出现异常时,远程跟踪现在显示在父进程中。补丁由Claudiu波帕。
  • 问题#15955:添加选项以在解压缩LZMA数据时限制输出大小。补丁尼古拉斯·拉斯和马丁·潘特。
  • 问题#23250:在http.cookies模块中,大写“HttpOnly”和“Secure”,因为它们是在标准中写的。
  • 问题#23063:在disutils的check命令中,使用code或code-block伪指令修复reST的解析。
  • 问题#23209,#23225:selectors.BaseSelector.get_key()现在如果选择器关闭,则引发RuntimeError。而selectors.BaseSelector.close()现在会清除其对选择器映射的内部引用以中断参考循环。由Martin Richard写的初始补丁。
  • 问题#17911:提供一种为PEP-302模块种子化linecache的方法,而不实际加载代码。
  • 问题#17911:为追溯提供一个新的对象API,包括在实际渲染追溯之前根本不查找线,而不会保留原始对象的任何跟踪。
  • Issue#19777:在Path对象上提供home()类方法。供稿人:Victor Salgado和Mayank Tripathi。
  • 问题#23206:使默认值为json.dumps(..., ensure_ascii = False) ensure_ascii=True的情况。Patch由Naoki Inada。
  • 问题#23185:添加math.inf和math.nan常量。
  • 问题#23186:添加ssl.SSLObject.shared_ciphers()和ssl.SSLSocket.shared_ciphers()以获取握手时发送的客户端列表密码。
  • 问题#23143:删除与0.9.8之前的OpenSSLs的兼容性。
  • 问题#23132:提高functool.total_ordering创建的比较方法的性能和内省支持。
  • 问题#19776:在Path对象上添加expanduser()方法。
  • 问题#23112:修复SimpleHTTPServer以在重定向以添加尾部斜杠时正确地携带查询字符串和片段。
  • 问题#21793:添加http.HTTPStatus枚举(即HTTPStatus.OK,HTTPStatus.NOT_FOUND)。补丁由Demian Brecht。
  • 问题#23093:在io中,模块允许更多操作在分离的流上工作。
  • 问题#23111:在ftplib中,将ssl.PROTOCOL_SSLv23设置为默认协议版本。
  • 问题#22585:在OpenBSD 5.6及更高版本中,os.urandom()现在调用getentropy(),而不是读取/ dev / urandom,以获取伪随机字节。
  • 问题#19104:pprint现在为包装的字符串生成可计算的输出。
  • 问题#23071:向编解码器添加了缺少的名称.__ all__。马丁·帕特补丁。
  • 问题#22783:Pickling现在使用NEWOBJ操作码,而不是NEWOBJ_EX操作码(如果可能)。
  • 问题#15513:为pickle类添加了__sizeof__实现。
  • 问题#19858:pickletools.optimize()现在知道MEMOIZE操作码,可以产生更紧凑的结果,并且如果输入数据包含与PUT或BINPUT操作码一起的MEMOIZE操作码,则不再产生无效输出。
  • 问题#22095:修复了具有默认端口的HTTPConnection.set_tunnel。主机头中的端口值设置为“无”。贴片由Demian Brecht。
  • 问题#23016:当程序使用pythonw.exe运行时,警告不再产生AttributeError。
  • 问题#21775:shutil.copytree():在复制到VFAT时修复崩溃。异常处理程序假定OSError对象总是具有“winerror”属性。情况不是这样,因此异常处理程序本身在Linux(以及任何其他非Windows操作系统)上运行时会引发AttributeError。补丁by Greg Ward。
  • 问题#1218234:修复inspect.getsource()以加载更新的重新加载的模块源。由Berker Peksag提供的初始补丁。
  • 问题#21740:支持doctest中的包装的callables。补丁由Claudiu波帕。
  • 问题#23009:在没有注册FD时,请确保selectors.EpollSelecrtor.select()有效。
  • 问题#22959:在http.client.HTTPSConnection的构造函数中,在check_hostname参数上优选上下文的check_hostname属性。
  • 问题#22696:添加函数sys.is_finalizing()以了解解释器关闭。
  • 问题#16043:为xmlrpclib.gzip_decode将返回的数据量添加默认限制。这解决了CVE-2013-1753。
  • 问题#14099:ZipFile.open()不再重新打开底层文件。ZipFile.open()返回的对象现在可以独立于ZipFile操作,即使ZipFile是通过将类似文件的对象作为构造函数的第一个参数传递而创建的。
  • 问题#22966:当要求pyc_compile编译源文件中包含多个点的源文件时,修复__pycache__ pyc文件名clobber。
  • 问题#21971:更新turtledemo doc并将模块添加到索引。
  • 问题#21032:如果HTTPConnection.getresponse()失败,修复套接字泄漏。原始补丁由马丁·帕特。
  • 问题#22407:不推荐使用带有str模式或re.ASCII的re.LOCALE标志。它是更新的工作。
  • 问题#22902:现在在Linux上使用“ip”命令来确定uuid.getnode()中的MAC地址。Pach通过Bruno Cauet。
  • 问题#22960:向xmlrpclib.ServerProxy构造函数添加上下文参数。
  • 问题#22389:添加contextlib.redirect_stderr()。
  • 问题#21356:使ssl.RAND_egd()可选,以支持LibreSSL。在编译期间检查函数的可用性。由Bernard Spil写的补丁。
  • 问题#22915:SAX解析器现在支持使用文件描述器或字节路径打开的文件。
  • 问题#22609:容器模块中映射类的构造方法和更新方法现在接受self关键字参数。
  • 问题#22940:添加readline.append_history_file。
  • 问题#19676:添加了“namereplace”错误处理程序。
  • Issue #22788: Add context parameter to logging.handlers.HTTPHandler.
  • 问题#22921:允许SSLContext采用主机名参数,即使OpenSSL不支持SNI。
  • 问题#22894:TestCase.subTest()会导致测试套件在failfast模式下停止,即使没有故障。
  • 问题#22796:HTTP cookie解析现在更严格,以防止潜在的注入攻击。
  • 问题#22370:pathlib中的Windows检测现在更加健壮。
  • 问题#22841:在asyncio add_signal_handler()中拒绝协程。补丁由Ludovic.Gasc。
  • 问题#19494:添加了urllib.request.HTTPBasicPriorAuthHandler。补丁由Matej Cepl。
  • 问题#22578:向re.error类添加了属性。
  • 问题#22849:修复io.TextIOWrapper构造函数中可能的double free。
  • 问题#12728:不区分大小写但不同小写字母的不同Unicode字符现在在不区分大小写的正则表达式中匹配。
  • 问题#22821:在64位大端平台上修正了带有整数参数的fcntl()。
  • 问题#21650:在json.tool CLI中添加--sort-keys选项。
  • 问题#22824:更新了reprlib输出格式以使用set字面值。由Berker Peksag贡献的补丁。
  • 问题#22824:更新了数组的reprlib输出格式,以显示没有不必要的空列表的空数组。建议由Serhiy Storchaka。
  • 问题#22406:修复了uu_codec编解码器不正确地移植到3.x.基于Martin Panter的补丁。
  • 问题#17293:uuid.getnode()现在使用netstat在AIX上确定MAC地址。基于Aivars Kalvans的补丁。
  • 问题#22769:在没有参数调用时修复了ttk.Treeview.tag_has()。
  • 问题#22417:在httplib中默认验证证书(PEP 476)。
  • 问题#22775:修复了协议2及以上版本的http.cookies.SimpleCookie取消绑定。补丁由Tim Graham。
  • 问题#22776:将排除的代码放入SysLogHandler.emit()中的try块的范围内。
  • 问题#22665:将缺少的get_terminal_size和SameFileError添加到shutil .__ all__。
  • 问题#6623:在ftplib模块中删除不推荐使用的Netrc类。补丁by Matt Chaput。
  • 问题#17381:修正了在正则表达式中处理不区分大小写的范围。
  • 问题#22410:re模块中的模块级函数现在缓存编译的与语言环境相关的正则表达式,并考虑到语言环境。
  • 问题#22759:对pathlib.Path()(exists(),is_dir()等)的查询方法现在当底层stat调用引发NotADirectoryError时返回False。
  • 问题#8876:当硬链接不起作用时,distutils现在会回到复制文件。这允许使用特殊文件系统,如VirtualBox共享文件夹。
  • 问题#22217:在zipfile模块中实现了类的reprs。
  • 问题#22457:荣誉load_tests在发现的start_dir。
  • 问题#18216:gettext now当.mo文件具有不受支持的主版本号时,引发错误。补丁由Aaron山。
  • 问题#13918:提供locale.delocalize()函数,可以从表示数字的字符串中删除特定于语言环境的数字格式,而不必将其转换为特定类型。贴图CédricKrier。
  • 问题#22676:使没有__module__属性的全局对象的pickling更慢。
  • 问题#18853:在shlex .__ nain__中修复ResourceWarning。
  • 问题#9351:在父解析器上设置时,在argparse子解析器上使用set_defaults设置的默认值不再被忽略。
  • 问题#7559:unittest测试装入ImportErrors被报告为导入错误,导入异常而不是导入已失败后的属性错误。
  • 问题#19746:可以在不执行测试套件的情况下检查单元测试发现的错误。TestLoader上的新errors属性暴露了发现过程中遇到的这些非致命错误。
  • 问题#21991:使email.headerregistry的标头'params'属性为只读(MappingProxyType)。以前,字典是可修改的,但是在属性的每次访问时创建了一个新的。
  • 问题#22638:SSLv3现已在整个标准库中禁用。仍然可以通过手动实例化SSLContext来启用它。
  • 问题#22641:在asyncio中,现在使用ssl.create_default_context()创建客户端连接的默认SSL上下文,以提高安全性。
  • 问题#17401:在io.FileIO repr中包含closefd。
  • 问题#21338:为compileall添加无提示模式。compile_ {dir,file,path}函数的静默参数现在具有多级值。此外,CLI的-q选项现在具有多级值。补丁由Thomas Kluyver。
  • 问题#20152:将数组和cmath模块转换为Argument Clinic。
  • 问题#18643:在Windows上添加socket.socketpair()。
  • 问题#22435:修复文件当SocketServer绑定失败时描述器泄漏。
  • 问题#13096:在CTypes POINTER处理大值时修复了segfault。
  • 问题#11694:在文档中引用xdrlib中的ConversionError。由FilipGruszczyński和Claudiu Popa修补。
  • 问题#19380:优化正则表达式的解析。
  • 问题#1519638:现在未匹配的组将在re.sub()和re.subn()中替换为空字符串。
  • Issue#18615:sndhdr.what / whathdr现在返回一个namedtuple。
  • 问题#22462:修复pyexpat创建的虚拟框架,使其出现在异常tracebacks中。
  • 问题#21965:向ssl模块添加对内存中SSL的支持。补丁由Geert Jansen。
  • 问题#21173:在使用迭代器调用.clear()时,在WeakKeyDictionary上修复len()。
  • 问题#11866:在计算新线程的名称时消除了竞争条件。
  • 问题#21905:在迭代时,当sys.modules被突变时,避免在pickle.whichmodule()中出现RuntimeError。补丁由Olivier Grisel。
  • 问题#11271:concurrent.futures.Executor.map()现在需要一个chunksize参数,以允许在子进程中批处理任务并提高ProcessPoolExecutor的性能。补丁由丹O'Reilly。
  • 问题#21883:os.path.join()和os.path.relpath()现在为不受支持或不匹配的参数类型引入TypeError,并提供更有帮助的错误消息。
  • 问题#22219:zip文件模块CLI现在在ZIP文件中添加目录(包括空目录)的条目。
  • 问题#22449:在ssl.SSLContext.load_default_certs中,请参阅Windows上的环境变量SSL_CERT_DIR和SSL_CERT_FILE。
  • 问题#22508:电子邮件.__ version__变量已删除;电子邮件代码不再单独从stdlib发货,并且__version__在几个版本中未更新。
  • 问题#20076:向区域设置别名表添加了非派生UTF-8别名。
  • 问题#20079:将glibc 2.18中支持的语言环境添加到语言环境别名表。
  • 问题#20218:为pathlib.Path对象添加了方便的方法read_text / write_text和read_bytes / write_bytes。
  • 问题#22396:在32位AIX平台上,不要公开os.posix_fadvise()或os.posix_fallocate(),因为它们的原型在系统头中错误。
  • 问题#22517:当io.BufferedRWPair对象被释放时,清除其weakrefs。
  • 问题#22437:正则表达式中的捕获组数不再受限于100。
  • 问题#17442:InteractiveInterpreter现在在其showtraceback方法中显示完全链接的跟踪,以匹配内置的交互式解释器。
  • 问题#23392:添加了与FILE *一起使用的C编组的API测试。
  • 问题#10510:distutils注册和上传方法现在使用符合HTML标准的CRLF行尾。
  • 问题#9850:修复了空的第一个组件的macpath.join()。补丁由Oleg Oshmyan。
  • 问题#5309:distutils'build和build_ext命令现在接受-j选项以启用扩展模块的并行构建。
  • 问题#22448:改进取消的计时器处理清除,以防止未绑定的内存使用。补丁由Joshua Moore-Oliva。
  • 问题#22427:当在生成器中的with语句中使用时,TemporaryDirectory不再尝试清除两次。
  • 问题#22362:禁止的模糊八进制转义超出正则表达式中的范围0-0o377。
  • 问题#20912:现在添加到ZIP文件的目录具有正确的Unix和MS-DOS目录属性。
  • 问题#21866:如果allowZip64为false,ZipFile.close()不再写入ZIP64中央目录记录。
  • 问题#22278:修复相对url的urljoin问题,提交issue22118的更改后观察到的回归。
  • 问题#22415:修复了re模块中GROUPREF_EXISTS操作码的调试输出。删除调试输出中的尾部空格。
  • 问题#22423:当sys.stderr为None时,线程中未处理的异常不再导致未处理的AttributeError。
  • 问题#21332:确保子过程中的bufsize=1 .Popen()选择行缓冲,而不是块缓冲。补丁由Akira李。
  • 问题#21091:修正API错误:email.message.EmailMessage.is_attachment现在是一种方法。
  • 问题#21079:修复email.message.EmailMessage.is_attachment以在标头具有参数和值时返回正确的结果。
  • 问题#22247:将NNTPError添加到nntplib .__ all__。
  • 问题#22366:urllib.request.urlopen将接受上下文对象(SSLContext)作为参数,然后将用于HTTPS连接。补丁由Alex Gaynor。
  • 问题#4180:当过滤器被修改时,警告注册表现在重置。
  • 问题#22419:将wsgiref服务器中传入的HTTP请求的长度限制为65536字节,并发送414错误代码以获得更长的长度。由德文·库克贡献的补丁。
  • http.cookies中的Lax cookie解析在与某些Web浏览器中的非标准cookie处理组合时可能是一个安全问题。报告由Sergey Bobrov。
  • 问题#20537:日志记录方法现在接受异常实例以及布尔值或异常元组。感谢Yury Selivanov的补丁。
  • 问题#22384:在使用pythonw.exe运行时,Tkinter回调中的异常不再导致程序崩溃。
  • 问题#22168:在OS X上使用非默认Canvas防止turtle AttributeError。
  • 问题#21147:sqlite3现在引发异常,如果请求包含空字符,而不是截断它。基于Victor Stinner的补丁。
  • 问题#13968:glob模块现在支持使用“**”模式在子目录中递归搜索。
  • 问题#21951:修复了当使用空字符串或元组参数调用Tcl命令时AIX上的Tkinter崩溃。
  • 问题#21951:如果内存分配失败,Tkinter现在很有可能引发MemoryError而不是crash。
  • 问题#22338:修复json模块中内存分配故障的崩溃。
  • 问题#12410:imaplib.IMAP4现在支持上下文管理协议。由TarekZiadé的原始补丁。
  • 问题#21270:我们现在覆盖mock.call对象中的元组方法,以便它们可以用作正常的调用属性。
  • 问题#16662:load_tests()现在无条件运行时,它存在于包的__init__.py中。TestLoader.loadTestsFromModule()仍然接受use_load_tests,但它已被弃用并被忽略。添加并记录了一个新的仅关键字属性pattern由罗伯特·柯林斯给予的补丁,由巴里华沙调整。
  • 问题#22226:第一个字母不再从Treeview.heading()的结果中的“状态”键中删除。
  • 问题#19524:修复了在收到无效响应时HTTP连接中的资源泄漏。马丁·帕特补丁。
  • 问题#20421:向SSL套接字添加.version()方法,暴露所使用的实际协议版本。
  • 问题#19546:configparser异常不再显示实施详细信息。链接的KeyErrors被删除,这导致更清晰的回溯。补丁由Claudiu波帕。
  • 问题#22051:turtledemo不再重新加载示例以重新运行它们。变量和gui设置的初始化应该在main()中完成,每次运行演示时调用,而不是在导入时调用。
  • 问题#21933:Turtledemo用户可以通过菜单选择或控制(命令)' - '或'+'或控制滑轮更改代码字体大小。原始补丁由Lita Cho。
  • 问题#21597:现在可以使用鼠标抓取并拖动turtledemo文本窗格和绘图画布之间的分隔符。代码文本窗格可以加宽,以便轻松查看或复制文本的整个宽度。画布可以在小屏幕上加宽。Jan Kanis和Lita Cho的原始补丁。
  • 问题#18132:当窗口收缩时,Turtledemo按钮不再消失。Jan Kanis和Lita Cho的原始补丁。
  • 问题#22043:time.monotonic()现在始终可用。threading.Lock.acquire()threading.RLock.acquire()和套接字操作现在使用单调时钟,而不是系统时钟。
  • 问题#21527:向ThreadPoolExecutor添加等于CPU数量5倍的默认工作程序数。补丁由Claudiu波帕。
  • 问题#22216:smtplib现在在退出后会更完全地重置其状态。先前行为的最明显的后果是在connect / starttls / quit / connect / starttls序列期间的STARTTLS故障。
  • 问题#22098:ctypes'BigEndianStructure和LittleEndianStructure现在定义一个空__slots__,以便子类不总是得到一个实例dict。补丁由Claudiu波帕。
  • 问题#22185:修复threading.Condition.wait()中偶尔出现的RuntimeError,这是由于没有持有锁的等待队列的突变引起的。补丁由Doug Zongker。
  • 问题#22287:在UNIX上,_PyTime_gettimeofday()现在使用clock_gettime(CLOCK_REALTIME)(如果可用)。作为副作用,Python现在依赖于Solaris和Linux上的Librt库(只有glibc比2.17更早)。
  • 问题#22182:在distutils.file_util.move_file中使用e.args正确拆分异常。补丁由Claudiu波帕。
  • webbrowser模块现在使用子进程的start_new_session = True,而不是潜在风险的preexec_fn = os.setsid调用。
  • 问题#22042:signal.set_wakeup_fd(fd)现在如果文件描述器处于阻塞模式,则引发异常。
  • 问题#16808:inspect.stack()现在返回一个命名的元组,而不是一个元组。补丁丹尼尔Shahaf。
  • 问题#22236:以NoDefaultRoot模式修复了Tkinter图像复制操作。
  • 问题#2527:为timeit函数添加全局参数,以覆盖执行时间代码的全局命名空间。补丁由本罗伯茨。
  • 问题#22118:切换urllib.parse以使用RFC 3986语义来解析相对URL,而不是RFC 1808和2396。补丁由Demian Brecht。
  • 问题#21549:向TarFile.list()添加了“members”参数。
  • 问题#19628:允许使用-r选项指定compileall递归深度。
  • 问题#15696:在Windows上为mmap对象添加__sizeof__实现。
  • 问题#22068:在Tkinter中使用变量和字体避免了引用循环。
  • 问题#22165:SimpleHTTPRequestHandler现在支持不可解码的文件名。
  • 问题#15381:在io.BytesIO中优化行读数。
  • 问题#8797:立即在失败的基本身份验证上引发HTTPError。Sam Bull的初始补丁。
  • 问题#20729:恢复在邮箱模块中使用延迟iterkeys()/ itervalues()/ iteritems()。
  • 问题#21448:更改FeedParser feed()以在解析长行时避免O(N ** 2)行为。原始补丁由Raymond Hettinger。
  • 问题#22184:当用户忘记所需的参数时,functools LRU缓存装饰器工厂现在提供了更早和更清晰的错误消息。
  • 问题#17923:以斜线结尾的glob()模式不再与AIX上的非dirs匹配。基于Delhallt的补丁。
  • 问题#21725:在smtpd中添加了对RFC 6531(SMTPUTF8)的支持。
  • 问题#22176:将ctypes模块的libffi更新为v3.1。此版本添加了对Linux AArch64和POWERPC ELF ABIv2小端架构的支持。
  • 问题#5411:在shutil模块中添加了对“xztar”格式的支持。
  • 问题#21121:不要强制使用-Werror = declaration-after-statement构建第三方C扩展。
  • 问题#21975:修复当使用未初始化的sqlite3.Row(特别是当取消pickling sqlite3.Row时)崩溃。sqlite3.Row现在在__new __()方法中初始化。
  • 问题#20170:将posixmodule转换为使用Argument Clinic。
  • 问题#21539:向Pathlib.mkdir()添加exists_ok参数以模仿mkdir -pos.makedirs()功能。如果为true,请忽略FileExistsErrors。Patchs by Berker Peksag。
  • 问题#22127:在套接字模块中(特别是对于数字IP),对纯ASCII主机名旁路IDNA。
  • 问题#21047:将HTMLParser的convert_charrefs参数的默认值设置为True。Patchs by Berker Peksag。
  • 将一个__all__添加到html.entities。
  • 问题#15114:已删除HTMLParser,HTMLParser.error和HTMLParserError异常的严格模式和参数。
  • 问题#22085:在Tkinter中丢失了对Tk 8.3的支持。
  • 问题#21580:现在Tkinter正确处理传递给Tk的字节参数。特别地,这允许从二进制数据初始化图像。
  • 问题#22003:从字节对象初始化时,io.BytesIO()现在推迟复制,直到变异,提高某些用例的性能和内存使用。补丁由David Wilson。
  • 问题#22018:在Windows上,signal.set_wakeup_fd()现在也支持套接字。一个副作用是Python依赖于WinSock库。
  • 问题#22054:添加os.get_blocking()和os.set_blocking()函数来获取和设置文件的阻塞模式描述器(如果设置了O_NONBLOCK标志,则为False,否则设置为True)。这些功能在Windows上不可用。
  • 问题#17172:使得turtledemo在OS X上启动时处于活动状态,即使使用子进程运行也是如此。补丁由Lita Cho。
  • 问题#21704:当信号量不可用时,修复_multiprocessing的构建错误。补丁by Arfrever Frehtes Taifersar Arahesis。
  • 问题#20173:将sha1,sha256,sha512和md5转换为ArgumentClinic。由Vajrasky Kok修补。
  • 在Windows 64位上修复repr(_socket.socket):在关闭的套接字上不要使用OverflowError失败。repr(socket.socket)已经工作正常。
  • 问题#22033:大多数Python实现的类的Reprs现在包含实际的类名,而不是硬编码的类。
  • 问题#21947:dis模块现在可以根据其gi_code属性反汇编生成器 - 迭代器对象。克莱门特Rouault的补丁。
  • 问题#16133:asynchat.async_chat.handle_read()方法现在忽略BlockingIOError异常。
  • 问题#22044:在call_tzinfo_method中修复了过早的DECREF。补丁由汤姆·弗拉纳根。
  • 问题#19884:readline:如果stdout不是终端,则禁用元修饰符键,不将ANSI序列"\033[1034h"写入stdout。此序列用于某些终端(例如:TERM = xterm-256color“)以支持8位字符。
  • 问题#4350:删除了许多过时且不工作很长时间的Tkinter方法。
  • 问题#6167:如果未指定参数,Scrollbar.activate()现在返回活动元素的名称。Scrollbar.set()现在总是只接受2个参数。
  • 问题#15275:清理并加快ntpath模块。
  • 问题#21888:如果指定了fmt参数,plistlib的load()和loads()现在可以正常工作。
  • 问题#22032:__qualname__而不是__name__现在总是用于格式化Python实现的类的完全限定类名。
  • 问题#22031:Reprs现在总是使用带有“0x”前缀的十六进制格式,当在“at 0x ...”形式包含id时。
  • 问题#22018:signal.set_wakeup_fd()现在在fstat()失败时引发OSError,而不是ValueError。
  • 问题#21044:tarfile.open()现在使用整数'name'属性处理fileobj。基于Antoine Pietri的补丁。
  • 问题#21966:在运行代码模块时执行Respect -q命令行选项。
  • 问题#19076:不要将冗余的“file”参数传递给self.error()。
  • 问题#16382:改善警告类别的warnings.warn()的异常消息。菲尔埃尔森的初始补丁。
  • 问题#21932:os.read()现在使用Py_ssize_t()类型而不是int来支持读取大于2 GB立刻。在Windows上,大小修改为INT_MAX。作为对os.read()的任何调用,OS可以读取比请求的字节数少的字节。
  • 问题#21942:修复了在Windows上以pydoc服务器模式查看的源文件。
  • 问题#11259:asynchat.async_chat()。set_terminator()现在如果接收到的字节数为负,则引发ValueError。
  • 问题#12523:asynchat.async_chat.push()现在引发TypeError,如果它没有获得字节字符串
  • 问题#21707:向ModuleFinder.replace_paths_in_code()添加缺少的kwonlyargcount参数。
  • 问题#20639:调用Path.with_suffix('')允许再次删除后缀。补丁由7月Tikhonov。
  • 问题#21714:禁止使用Path.with_name()构造无效路径。原来补丁由安东尼李。
  • 问题#15014:向smtplib添加了“auth”方法,以使实现身份验证机制更简单,并在登录方法中使用它。
  • 问题#21151:修正了当None作为REG_BINARY值传递给SetValueEx时winreg模块中的segfault。补丁由约翰·Ehresman。
  • 问题#21090:io.FileIO.readall()不再忽略I / O错误。之前,它忽略了I / O错误,如果至少第一个C调用read()成功。
  • 问题#5800:wsgiref.headers.Headers的headers参数现在是可选的。由Pablo Torres Navarrete和SilentGhost初始修补。
  • 问题#21781:ssl.RAND_add()现在支持长于2 GB的字符串。
  • 问题#21679:在open()期间阻止无关的fstat()调用。补丁Bohuslav Kabrda。
  • 问题#21863:cProfile现在显示C扩展功能的模块名称,以及自己的名称。
  • 问题#11453:asyncore:当未关闭的file_wrapper对象被销毁时,发出ResourceWarning。如果需要,析构函数现在关闭文件。close()方法现在可以调用两次:第二个调用什么都不做。
  • 问题#21858:更好地处理sqlite3模块中的Python异常。
  • 问题#21476:确保email.parser.BytesParser TextIOWrapper在解析后被丢弃,因此输入文件未意外关闭。
  • 问题#20295:imghdr现在可以识别OpenEXR格式的图片。
  • 问题#21729:在dbm.dumb模块中使用“with”语句以确保文件关闭。补丁由Claudiu波帕。
  • 问题#21491:socketserver:修正子进程获取中的竞争条件。
  • 问题#21719:在Windows上将st_file_attributes字段添加到os.stat_result。
  • 问题#21832:要求命名元组输入为精确字符串。
  • 问题#21722:上传失败时,distutils“upload”命令现在退出并返回非零返回码。马丁·登格勒补丁。
  • 问题#21723:asyncio.Queue:支持任何类型的数字(例如:float)以获取最大大小。由Vajrasky Kok撰写的补丁。
  • 问题#21711:现在已从网站模块中删除了对“site-python”目录的支持(在3.4中已弃用)。
  • 问题#17552:新的socket.sendfile()方法允许通过在UNIX上使用高性能os.sendfile()在套接字上发送文件。补丁由Giampaolo Rodola'。
  • 问题#18039:当标志具有值'n'时,dbm.dump.open()现在始终创建一个新数据库。补丁由Claudiu波帕。
  • 问题#21326:向asyncio.BaseEventLoop添加一个新的is_closed()方法。asyncio.BaseEventLoop的run_forever()和run_until_complete()方法现在在事件循环关闭时引发异常。
  • 问题#21766:在通过URL检查CGI脚本之前,通过URL阻止CGIHTTPServer中的安全漏洞。
  • 问题#21310:修复了在失败的open()中可能出现的资源泄漏。
  • 问题#21256:在模拟函数调用中,关键字args的打印输出应该按照确定性顺序。这将有助于写更好的教学。
  • 问题#21677:在io close()方法中修复了链接非规范化异常。
  • 问题#11709:修复当sys.stdin不是有效文件时pydoc.help函数不会失败。
  • 问题#21515:tempfile.TemporaryFile现在使用os.O_TMPFILE标志可用。
  • 问题#13223:修复pydoc.writedoc,以便在示例代码中使用“self”的方法的HTML文档正确生成。
  • 问题#21463:在urllib.request中,修复FTP缓存的修剪。
  • 问题#21618:子进程模块可能无法关闭由调用进程继承的已打开fds,并且已高于POSIX资源限制允许的值。在具有运行/ proc / self / fd或/ dev / fd接口的系统上,max现在被忽略,所有fds都关闭。
  • 问题#20383:介绍importlib.util.module_from_spec()作为创建新模块的首选方式。
  • 问题#21552:修复了64位平台上tkinter模块中可能的整数溢出太长的字符串长度。
  • 问题#14315:zipfile模块现在忽略中央目录中的太短,无法解析的额外字段,而不是让struct.unpack错误冒泡,因为这个“坏数据”出现在许多现实世界zip文件,并被其他zip工具忽略。
  • 问题#13742:向heapq.merge()添加了“key”和“reverse”参数。(Simon Sapin提供的补丁的第一稿)。
  • 问题#21402:tkinter.ttk现在在未设置默认根窗口时工作。
  • 问题#3015:_tkinter.create()现在创建tkapp对象与wantobject = 1默认情况下。
  • 问题#10203:sqlite3.现在真正支持序列协议。特别是它支持reverse()和负索引。原始补丁Claudiu Popa。
  • 问题#18807:如果为venv指定了复制(没有符号链接),则python解释器别名(python,python3)现在通过复制而不是符号链接创建。
  • 问题#20197:在imghdr模块中添加了对WebP图像类型的支持。补丁由Fabrice Aneche和Claudiu波帕。
  • 问题#21513:加速IP地址(IPv4Address,IPv6Address)的某些属性,例如.is_private或.is_multicast。
  • 问题#21137:通过显示“已锁定”或“已解锁”状态来改进threading.Lock()及其变体的repr。Patchs by Berker Peksag。
  • 问题#21538:当引用或偏移大小不是2的幂时,plistlib模块现在支持加载二进制plist文件。
  • 问题#21455:向socket.listen()添加默认积压。
  • 问题#21525:接受元组的大多数Tkinter方法现在也接受列表。
  • 问题#22166:在新的内部_codecs._forget_codec帮助功能的帮助下,test_codecs现在清除编码高速缓存,以避免出现引用泄漏
  • 问题#22236:Tkinter测试现在不会重用默认根窗口。为每个测试类创建新的根窗口。
  • 问题#10744:将PEP 3118格式字符串固定在具有非平凡形状的ctypes对象上。
  • 问题#20826:优化ipaddress.collapse_addresses()。
  • 问题#21487:优化ipaddress.summarize_address_range()和ipaddress。{IPv4Network,IPv6Network} .subnets()。
  • 问题#21486:优化ipaddress.IPv4Network和ipaddress.IPv6Network中网络掩码的解析。
  • 问题#13916:不允许非UTF- *编码的代理通过错误处理程序。
  • 问题#20998:修复了re.fullmatch()重复单个字符模式与忽略大小写。原始补丁Matthew Barnett。
  • 问题#21075:fileinput.FileInput现在从标准流中读取字节,如果指定了二进制模式。补丁由Sam Kimbrel。
  • 问题#19775:向pathlib Path对象添加samefile()方法。初步补丁Vajrasky Kok。
  • 问题#21226:在PyImport_ExecCodeModuleObject(和朋友)中正确设置模块。
  • 问题#21398:当文档包含不可编码到stdout编码的字符时,修复pydoc寻呼机中的unicode错误。
  • 问题#16531:ipaddress.IPv4Network和ipaddress.IPv6Network现在接受(address,netmask)tuple参数,以便从现有地址轻松构造网络对象。
  • 问题#21156:importlib.abc.InspectLoader.source_to_code()现在是一个静态方法。
  • 问题#21424:简化和优化heaqp.nlargest()和nmsmallest()以减少元组比较。
  • 问题#21396:修复TextIOWrapper(...,write_through = True),以不强制对底层二进制流执行flush()。补丁由akira。
  • 问题#18314:取消链接现在可以删除Windows上的连接。补丁由金格拉斯曼
  • 问题#21088:3.4.0中的curses.window.addch()回归修复程序。在移植到Argument Clinic时,前两个论点被扭转了。
  • 问题#21407:_decimal:模块现在支持函数签名。
  • 问题#10650:从Python版本的Decimal.quantize()方法中删除非标准的'watchexp'参数。它从来没有出现在C版本。
  • 问题#21469:通过检查以确保在can_fetch()中返回True之前已确认robots.txt已读取或不存在,从而降低了robotparser中的误报风险。
  • 问题#19414:将OrderedDict标记删除的链接为不可用。如果链接在迭代过程中被删除,这将导致早期故障。
  • 问题#21421:将__slots__添加到MappingViews ABC。补丁由Josh Rosenberg。
  • 问题#21101:消除容器.Counter()的C加速代码中的双重哈希。
  • 问题#21321:itertools.islice()现在在切片用尽时释放对源迭代器的引用。补丁由安东Afanasyev。
  • 问题#21057:TextIOWrapper现在允许基础二进制流的read()或read1()方法返回一个任意类似字节的对象(如内存视图)。由Nikolaus Rath修补。
  • 问题#20951:SSLSocket.send()现在在非阻塞套接字上引发SSLWantReadError或SSLWantWriteError,如果操作会阻塞。以前,它将返回0。由Nikolaus Rath修补。
  • 问题#13248:删除以前弃用的asyncore.dispatcher __getattr__廉价继承黑客。
  • 问题#9815:assertRaises现在尝试清除异常跟踪中对局部变量的引用。
  • 问题#19940:ssl.cert_time_to_seconds()现在解释UTC时区中的给定时间字符串(如RFC 5280中所指定),而不是本地时区。
  • 问题#13204:调用sys.flags .__ new__将崩溃解释器,现在它引发一个TypeError。
  • 问题#19385:对已关闭的dbm.dumb数据库执行操作始终引发相同的异常。
  • 问题#21207:检测os.urandom缓存的fd何时关闭或替换,并重新打开。
  • 问题#21291:子进程的Popen.wait()现在是线程安全的,因此多个线程可以同时调用Popen实例上的wait()或poll(),而不会丢失Popen.returncode值。
  • 问题#21127:现在可以从str子类实例(例如numpy.str_)实例化路径对象。
  • 问题#15002:urllib.response对象使用_TemporaryFileWrapper(和_TemporaryFileCloser)工具。提供更好的方式来处理文件描述器关闭。克里斯蒂安·塞纳贡献的补丁。
  • 问题#12220:mindom现在引入一个自定义ValueError,表明它不支持URI中的空格,而不是让一个'split'ValueError冒泡。
  • 问题#21068:ssl.PROTOCOL *常量现在是枚举成员。
  • 问题#21276:posixmodule:不要在KFreeBSD和Hurd上定义USE_XATTRS。
  • 问题#21262:Mock的新方法assert_not_called。它引发AssertionError如果模拟被调用。
  • 问题#21238:新关键字参数unsafe到Mock。它引发属性startswith assert或assret的AttributeError
  • 问题#20896:ssl.get_server_certificate()现在使用PROTOCOL_SSLv23,而不是PROTOCOL_SSLv3,以实现最大兼容性。
  • 问题#21239:当同一名称被多次修补时,patch.stopall()没有确定性地工作。
  • 问题#21203:更新了fileConfig和dictConfig以删除不一致。感谢Jure Koren的补丁。
  • 问题#21222:将名称关键字参数传递给mock.create_autospec现在可以正常工作。
  • 问题#21197:在64位非OS X POSIX上的venvs中添加lib64 - > lib符号链接。
  • 问题#17498:某些SMTP服务器在发生某些错误后断开连接,违反严格的RFC一致性。当发出后续RSET时,smtplib不会丢失错误代码,而是返回错误代码,并延迟提高SMTPServerDisconnected错误,直到发出下一个命令。
  • 问题#17826:在create_autospec创建的mock函数上设置可迭代side_effect现在可以工作。补丁由Kushal Das。
  • 问题#7776:修复Host:头和重新连接。由Nikolaus Rath修补。
  • 问题#20968:unittest.mock.MagicMock现在支持除法。补丁由Johannes Baiter。
  • 问题#21529(CVE-2014-4616):使用负的第二个参数修复JSONDecoder.raw_decode中的任意内存访问。Bug报告由Guido Vranken。
  • 问题#21169:getpass现在处理输入流编码无法使用替换错误处理程序重新编码的非ASCII字符。
  • 问题#21171:修复了rot13编解码器的未记录的过滤器API。Patchs by Berker Peksag。
  • 问题#20539:改进了大型正输入和大型负输入的更改的异常类型(OverflowError - > ValueError)的math.factorial错误消息。
  • Issue#21172:isinstance check relaxed from dict to容器.Mapping。
  • 问题#21155:asyncio.EventLoop.create_unix_server()现在引发一个ValueError,如果路径和sock同时指定。
  • 问题#21136:避免因电源和其他操作导致的不必要的正常化。补丁由Raymond Hettinger。
  • 问题#17621:介绍importlib.util.LazyLoader。
  • 问题#21076:信号模块常量变为枚举。补丁由Giampaolo Rodola'。
  • 问题#20636:改进了Tkinter小部件的repr。
  • 问题#19505:OrderedDict的项目,键和值视图现在支持使用reversed()的反向迭代。
  • 问题#21149:在解释器关闭期间提高日志记录清理中的线程安全性。感谢Devin Jeanpierre的补丁。
  • 问题#21058:修复tempfile.NamedTemporaryFile()中的文件描述器泄漏,关闭文件描述器if io.open()
  • 问题#21200:当缺少__spec__时,从pkgutil.get_loader()返回None。
  • 问题#21013:当用于服务器端套接字时,增强ssl.create_default_context()以默认提供更好的安全性。
  • 问题#20145assertRaisesRegexassertWarnsRegex现在引入TypeError,如果第二个参数不是字符串或编译的正则表达式。
  • 问题#20633:以绝对导入替换相对导入。
  • 问题#20980:使用ThreadPool时停止包装异常。
  • 问题#21082:在os.makedirs中,不要设置进程范围的umask。注意,当exists_ok = True时,makedirs的行为改变。
  • 问题#20990:修复pyflakes发现的多处理问题。
  • 问题#21015:SSL上下文现在将在OpenSSL 1.0.2和更高版本上自动为ECDH密钥交换选择椭圆曲线,否则默认为“prime256v1”。
  • 问题#21000:改进json.tool的命令行界面。
  • 问题#20995:增强ssl模块使用的默认密码,以实现更好的安全性和优先完美的前向保密性。
  • 问题#20884:不要假定__file__是在importlib .__ init__上定义的。
  • 问题#21499:在几个test_importlib.test_api测试中忽略__builtins__。
  • 问题#20627:xmlrpc.client.ServerProxy现在是一个上下文管理器。
  • 问题#19165:格式化程序模块现在引入DeprecationWarning,而不是PendingDeprecationWarning。
  • 问题#13936:删除在布尔上下文中被视为false的datetime.time实例的能力。
  • 问题#18931:selectors模块现在在Solaris上支持/ dev / poll。补丁由Giampaolo Rodola'。
  • Issue #19977: When the LC_TYPE locale is the POSIX locale (C locale), sys.stdin and sys.stdout are now using the surrogateescape error handler, instead of the strict error handler.
  • 问题#20574:为cp65001代码实施增量解码器(Windows代码页65001,Microsoft UTF-8)。
  • 问题#20879:延迟base64,base64模块中的ascii85和base85编解码器的编码和解码表的初始化,并将urllib.parse模块的unquote_to_bytes()表的初始化延迟到不如果不使用这些模块,则浪费内存。
  • 问题#19157:在ipaddress中的IPv6的可用主机中包含广播地址。
  • 问题#11599:当外部命令(例如,编译器)失败,如果环境变量DISTUTILS_DEBUG设置,distutils现在打印出整个命令行(而不是命令名)。
  • 问题#4931:distutils不应再产生无用的“错误:无”消息。distutils.util.grok_environment_error保留,但doc已过时。
  • 问题#20875:防止可能的gzip“'读取未定义”NameError。补丁由Claudiu波帕。
  • Issue #11558: email.message.Message.attach now returns a more useful error message if attach is called on a message for which is_multipart is False.
  • 问题#20283:RE模式方法现在接受文档中的字符串关键字参数。模式和源关键字参数将保留为已弃用的别名。
  • 问题#20778:修复modulefinder以使用仅字节码模块。
  • 问题#20791:当输入为字节对象时,copy.copy()现在不会复制。由彼得Otten的初始补丁。
  • 问题#19748:在AIX上,time.mktime()现在引发一个溢出错误年份超出范围[1902; 2037]。
  • 问题#19573:inspect.signature:对参数类型常数使用枚举。
  • 问题#20726:inspect.signature:使声明和参数可拾取。
  • 问题#17373:添加inspect.Signature.from_callable方法。
  • 问题#20378:改进inspect.Signature和inspect.Parameter的repr。
  • 问题#20816:修复inspect.getcallargs()以引用正确的TypeError(仅缺少关键字参数)。补丁通过Jeremiah Lowin。
  • 问题#20817:如果缺少超过3个参数,请修复inspect.getcallargs()失败。补丁通过Jeremiah Lowin。
  • 问题#6676:当尝试按照pyexpat xmlparser实例解析多个XML文档时,确保产生有意义的异常。(由Hirokazu Yamamoto和Amaury Forgeot d'Arc提供的原始修补程序,由David Gutteridge提出的建议措辞)
  • 问题#21117:修复inspect.signature以更好地支持functools.partial。由于functools.partial实现的细节,作为关键字参数传递的位置或关键字参数成为仅关键字。
  • 问题#20334:inspect.Signature和inspect.Parameter现在是哈希表。感谢Antony Lee的错误报告和建议。
  • 问题#15916:doctest.DocTestSuite返回一个空的unittest.TestSuite,而不是提高ValueError,如果没有找到测试
  • 问题#21209:修复asyncio.tasks.CoroWrapper,以解决在3.4版之前的CPythons中实现的yield-from的问题。
  • asyncio:向CoroWrapper(上游问题#163)添加gi_ {frame,running,code}属性。
  • 问题#21311:使用非标准编译器配置避免_osx_support中的异常。补丁由约翰·萨克梅斯特。
  • 问题#11571:确保在OS X上启动时龟龟窗口成为最顶层的窗口。
  • 问题#21801:验证__signature__为无或声明的实例。
  • 问题#21923:由于可能未初始化的_config_vars,阻止distutils.sysconfig.customize_compiler中的AttributeError。
  • 问题#21323:修复http.server以再次处理CGI子目录中的脚本,由安全性问题#19435的修复程序打破。补丁由Zach Byrne。
  • 问题#22733:在64位Windows上正确修复ffi_prep_args不是零扩展参数值。
  • 问题#23302:建立HTTP连接时,默认为TCP_NODELAY = 1。删除使用硬编码的MSS,因为它是Nagle被禁用后不再需要的优化。

IDLE

  • 问题#20577:FormatParagraph扩展的最大行长度的配置已从“闲置”首选项对话框的“常规”选项卡移动到“配置扩展”对话框的“FormatParagraph”选项卡。Patch由Tal Einat。
  • 问题#16893:更新空闲文档章以匹配当前空闲并添加新信息。
  • 问题#3068:将“空闲扩展配置”对话框添加到“选项”菜单。更改写入HOME / .idlerc / config-extensions.cfg。原始补丁Tal Einat。
  • 问题#16233:模块浏览器(文件:类浏览器,Alt + C)需要具有文件名的编辑器窗口。当请求类浏览器时,否则,从shell,输出窗口或“未命名”编辑器,Idle不再显示错误框。它现在弹出一个打开模块框(Alt + M)。如果输入有效的名称并打开模块,则还会打开相应的浏览器。
  • 问题#4832:另存为键入Python文件会自动将.py添加到您输入的名称(即使您的系统不显示它)。一些系统在类型为文本文件时自动添加.txt。
  • 问题#21986:代码对象通常不由pickle模块进行pickle。为了匹配这个,它们在Idle下运行时不再被pickle。
  • 问题#17390:调整编辑器窗口标题;删除'Python',移动版本到结束。
  • 问题#14105:插入或删除行时,空闲调试器断点不再消失。
  • 问题#17172:Turtledemo现在可以从空闲运行。当前,该条目在帮助菜单上,但它可能会移动到运行。补丁由Ramchandra Apt和Lita Cho。
  • 问题#21765:向HyperParser添加对非ASCII格式标识符的支持。
  • 问题#21940:为WidgetRedirector添加unittest。初始补丁由Saimadhav Heblikar。
  • 问题#18592:为SearchDialogBase添加unittest。补丁由菲尔韦伯斯特。
  • 问题#21694:为ParenMatch添加单元测试。补丁由Saimadhav Heblikar。
  • 问题#21686:为HyperParser添加unittest。原始补丁由Saimadhav Heblikar。
  • 问题#12387:为Idle添加缺少的Windows键绑定的上限(下限)版本,因此Caps Lock不会禁用它们。补丁由罗杰Serwy。
  • 问题#21695:在搜索仍在进行时关闭查找文件输出窗口不再关闭空闲。
  • 问题#18910:为textView添加unittest。补丁由菲尔韦伯斯特。
  • 问题#18292:为AutoExpand添加unittest。补丁由Saihadhav Heblikar。
  • 问题#18409:为自动完成添加unittest。补丁由菲尔韦伯斯特。
  • 问题#21477:htest.py - 改进框架,完整的测试集。补丁由Saimadhav Heblikar
  • 问题#18104:使用几个样本测试来添加idlelib / idle_test / htest.py,以开始合并和改进人工验证的Idle测试。根据需要更改其他文件以使用htest。将模块作为__main__运行所有测试。
  • 问题#21139:将默认段落宽度更改为72,即PEP 8建议。
  • 问题#21284:在用户更改格式宽度后,段落格式测试通过。
  • 问题#17654:确保在OS X上针对非框架构建和Tk的所有变体正确地定制IDLE菜单。
  • 问题#23180:将IDLE“Windows”菜单项重命名为“窗口”。补丁由Al Sweigart。

Build

  • 问题#15506:在配置脚本中使用标准PKG_PROG_PKG_CONFIG autoconf宏。
  • 问题#22935:如果openssl不支持SSL 3,则允许编译ssl模块。
  • 问题#22592:删除Borland C编译器对构建Python的支持。distutils模块仍然支持它来构建扩展。
  • 问题#22591:丢弃对MS-DOS的支持,特别是DJGPP编译器(GCC的MS-DOS端口)。
  • 问题#16537:检查setup.py中的self.extensions是否为空。补丁由乔纳森·霍斯默。
  • 问题#22359:删除递归make的不正确使用。补丁由Jonas Wagner。
  • 问题#21958:在使用Visual Studio 2013及更高版本构建时定义HAVE_ROUND。补丁由Zachary Turner。
  • 问题#18093:嵌入CPython运行时的程序现在位于单独的“Programs”目录中,而不是保存在Modules目录中。
  • 问题#15759:在文档中“使可疑”,“make linkcheck”和“make doctest”,当且仅当出现故障时才显示特殊消息。
  • 问题#21141:Windows构建过程不再尝试查找Perl,而是依赖于已配置的OpenSSL源并准备好构建。PCbuild\build_ssl.py脚本已重写并重命名为PCbuild\prepare_ssl.py,并负责为32位和64位配置OpenSSL源平台。从svn.python.org获取的OpenSSL源代码将始终预配置并准备好构建。
  • 问题#21037:添加构建选项以启用AddressSanitizer支持。
  • 问题#19962:Windows构建过程现在在源代码树的根目录中创建“python.bat”,它将所有参数传递到最近构建的解释器。
  • 问题#21285:重构和修复curses配置检查以始终在ncursesw目录中搜索。
  • 问题#15234:对于BerkelyDB和Sqlite,只添加找到的库和包含目录,如果他们还没有被搜索。这避免了显式的运行时库依赖。
  • 问题#17861:如果后者获得任何更改,则从Lib / opcode.py中自动重新生成Include / opcode.h的工具/ scripts / generate_opcode_h.py。
  • 问题#20644:对于3.4.1中的文档构建更改,OS X安装程序构建支持:假定外部提供的sphinx-build位于/ usr / bin中。
  • Issue #20022: Eliminate use of deprecated bundlebuilder in OS X builds.
  • 问题#15968:将Tcl,Tk和Tix合并到Windows构建解决方案中。
  • 问题#17095:修复模块/设置共享支持。
  • 问题#21811:支持OS X版本> 10.9的预期修订。
  • 问题#21166:在pybuilddir.txt构建目标中防止可能的segfault和python -generate-posix-vars的其他随机故障。
  • 问题#18096:修复python-config返回的库顺序。
  • 问题#17219:为Python扩展交叉构建添加库构建目录。
  • 问题#22919:Windows版本已更新,以支持VC 14.0(Visual Studio 2015),将用于正式发布。
  • 问题#21236:用cabinet.lib而不是fci.lib构建_msi.pyd
  • 问题#17128:使用专用版本的OpenSSL for OS X 10.5+安装程序。

C API

  • 问题#14203:在PyBuffer_FillInfo(),bytearray_getbuffer(),bytesiobuf_getbuffer()和array_buffer_getbuf()中删除视图== NULL的过时支持。所有函数现在引发BufferError在这种情况下。
  • 问题#22445:PyBuffer_IsContiguous()现在实现精确的邻接测试,与NumPy的NPY_RELAXED_STRIDES_CHECKING编译标志兼容。以前的函数报告了假阴性的角落情况。
  • 问题#22079:PyType_Ready()现在检查静态分配的类型没有动态分配的基址。
  • 问题#22453:删除了未记录的宏PyObject_REPR()。
  • 问题#18395:将_Py_char2wchar()重命名为Py_DecodeLocale(),将_Py_wchar2char()重命名为Py_EncodeLocale(),并记录这些函数。
  • 问题#21233:添加新的C函数:PyMem_RawCalloc(),PyMem_Calloc(),PyObject_Calloc(),_PyObject_GC_Calloc()。bytes(int)现在使用calloc()而不是malloc()用于大对象,这更快,使用更少的内存。
  • 问题#20942:PyImport_ImportFrozenModuleObject()不再设置__file__以匹配importlib所做的;这会影响_frozen_importlib以及使用imp.init_frozen()加载的任何模块。

Documentation

  • 问题#19548:更新编解码器模块文档,以更好地覆盖文本编码和其他编解码器之间的区别,以及其他说明。马丁·帕特补丁。
  • 问题#22394:Doc / Makefile现在支持make venv PYTHON = .. / python t1>创建用于生成文档的venv,例如make html PYTHON = venv / bin / python3
  • 问题#21514:json模块的文档现在引用了新的JSON RFC 7159,而不是过时的RFC 4627。
  • 问题#21777:字节和bytearray的二进制序列方法现在被明确记录,而不是假设用户将能够从相应的str方法的行为中导出预期的行为。
  • 问题#6916:undocument不推荐使用asynchat.fifo类。
  • 问题#17386:展开Doc/make.bat脚本的功能,使其更符合Doc/Makefile
  • 问题#21312:更新thread_foobar.h模板文件以包含较新的线程API。补丁由杰克McCracken。
  • 问题#21043:删除对特定CA组织的建议,并提及加载操作系统证书的能力。
  • 问题#20765:为PurePath.with_name()和PurePath.with_suffix()添加缺少的文档。
  • 问题#19407:基于Python Packaging Authority工具的新软件包安装和分发指南。现有的指南已经保留为distutils文档的旧链接,因为它们仍然包含一些工具开发人员所需的参考资料,这些资料不会记录在其他任何地方。
  • 问题#19697:__main __.__ spec__为无的文档案例。

Tests

  • 问题#18982:为日历模块的CLI添加测试。
  • 问题#19548:向test_codecs添加了一些其他检查,以确保更新文档中的语句保持准确。马丁·帕特补丁。
  • 问题#22838:所有test_re测试现在可与单元测试测试发现配合使用。
  • 问题#22173:更新lib2to3测试以使用单元测试测试发现。
  • 问题#16000:将test_curses转换为使用unittest。
  • 问题#21456:如果_ssl模块不存在,请跳过test_urllib2net.py中的两个测试。补丁由Remi Pointel。
  • 问题#20746:修复test_pdb以refleak模式(-R)运行。补丁由Xavier de Gaye。
  • 问题#22060:test_ctypes已经有些清理和简化;它现在使用单元测试发现来找到它的测试。
  • 问题#22104:regrtest.py不再持有对未定义test_main()的测试模块加载的测试套件的引用。
  • 问题#22111:在test_imaplib中进行了分类清除。补丁由米兰Oberkirch。
  • 问题#22002:向test.support添加了load_package_tests函数,并用它在test_asyncio,test_email,test_importlib,test_json和test_tools中实现/扩充测试发现。
  • 问题#21976:修正test_ssl以接受LibreSSL版本字符串。感谢William Orr。
  • 问题#21918:将test_tools从模块转换为包含每个测试脚本的单独测试文件的包。
  • 问题#9554:在test_argparse中使用现代单元测试功能。由丹佛Coneybeare和Radu Voicilas的初始补丁。
  • 问题#20155:在test_httpservers中的失败测试中更改了HTTP方法名称,以便包过滤软件(特别是Windows Base Filtering Engine)不会干扰测试所期望的事务语义。
  • 问题#19493:重构了ctypes测试包以明确跳过测试,而不是静默。
  • 问题#18492:当测试不由regrtest.py运行时,现在允许所有资源。
  • 问题#21634:修复pystone微基准:使用floor division而不是真正除法来基准整数而不是浮点数。将pystone版本设置为1.2。由Lennart Regebro编写的补丁。
  • 问题#21605:添加了Tkinter图像的测试。
  • 问题#21493:添加了对ntpath.expanduser()的测试。原始补丁Claudiu Popa。
  • 问题#19925:添加了spwd模块的测试。原始补丁Vajrasky Kok。
  • 问题#21522:为Listbox.itemconfigure(),PanedWindow.paneconfigure()和Menu.entryconfigure()添加了Tkinter测试。
  • 问题#17756:从安装位置运行时修复test_code测试。
  • 问题#17752:在从安装位置运行时修复distutils测试。
  • 问题#18604:GUI可用性的合并检查。所有平台现在至少检查当请求GUI资源时是否可以实例化Tk。
  • 问题#21275:在KFreeBSD上修复套接字测试。
  • 问题#21223:当某些扩展程序构建为内置程序时,传递test_site / test_startup_imports。
  • 问题#20635:添加了Tk几何管理器的测试。
  • 添加冻结测试用例。
  • 问题#20743:修复test_tcl中的引用泄漏。
  • 问题#21097:将test_namespace_pkgs移动到test_importlib。
  • 问题#21503:在test_importlib中始终使用test_both()。
  • 问题#20939:避免由于新的重定向http://www.python.org/https://www.python的各种网络测试失败。 org:改用http://www.example.com
  • 问题#20668:asyncio测试不再依赖tests.txt文件。(Vajrasky Kok的补丁)
  • 问题#21093:如果$ HOME / lib或/ usr / local / lib中存在libz的副本,则防止OS X上的ctypes test_macholib失败。
  • 问题#22770:在运行gui测试时防止OS X上的一些Tk段错误。
  • 问题#23211:在某些OS X 10.6系统上解决test_logging故障。
  • 问题#23345:使用大的OpenSSL补丁级别值(如0.9.8zc)防止test_ssl失败。

Tools/Demos

  • 问题#22314:当设置LINES环境变量时,pydoc现在可以正常工作。
  • 问题#22615:Argument Clinic现在支持int转换器的“type”参数。这允许使用带有枚举和typedef的int转换器。
  • 问题#20076:makelocalealias.py脚本不再忽略UTF-8映射。
  • 问题#20079:makelocalealias.py脚本现在可以从glibc源解析SUPPORTED文件,并支持源路径的命令行选项。
  • 问题#22201:zipfile模块的命令行界面现在可以使用目录条目正确提取ZIP文件。补丁由瑞恩·威尔逊。
  • 问题#22120:对于使用无符号整数返回转换器的函数,Argument Clinic现在会为生成的代码中的-1比较生成该类型的转换。(这将压制编译警告。)
  • 问题#18974:Tools / scripts / diff.py现在使用argparse而不是optparse。
  • 问题#21906:使工具/ scripts / md5sum.py在Python 3中工作。Patch by Zachary Ware。
  • 问题#21629:修复参数诊所的“转换器”功能。
  • 支持 添加到2to3。
  • 添加对PEP 465矩阵乘法操作符的支持2to3。
  • 问题#16047:在冻结中修复模块异常列表和__file__处理。补丁由Meador Inge。
  • 问题#11824:在冻结中考虑ABI标记。补丁由Meador Inge。
  • 问题#20535:PYTHONWARNING不再影响run_tests.py脚本。补丁by Arfrever Frehtes Taifersar Arahesis。

Windows

  • 问题#23260:更新Windows安装程序
  • Tcl / Tk的捆绑版本已更新为8.6.3。此更改最明显的结果是在Windows Vista或更高版本上运行时添加新的本机文件对话框。有关详细信息,请参阅Tcl / Tk的TIP 432。此外,此版本的Tcl / Tk包括对Windows 10的支持。
  • 问题#17896:Windows构建脚本现在预期外部库源位于PCbuild\..\externals,而不是PCbuild\..\..
  • 问题#17717:Windows构建脚本现在使用从svn.python.org提取的NASM副本来构建OpenSSL。
  • 问题#21907:改进了用于构建Python的批处理脚本。
  • 问题#22644:已将捆绑版本的OpenSSL更新为1.0.1j。
  • 问题#10747:在Windows开始菜单中使用版本标签。补丁由橄榄Kilburn。
  • 问题#22980:具有版本和平台标记的.pyd文件(例如,“.cp35-win32.pyd”)将优先于没有标记的文件。

Python 3.4.0

发布日期:2014-03-16

Documentation

  • 合并自分支后的所有文档更改3.4.0rc1。

Python 3.4.0 release candidate 3

发布日期:2014-03-09

Core and Builtins

  • 问题#20786:修正dict .__ delitem__和property .__ delete__内置命令的签名。

Library

  • 问题#20839:在模块上未设置__loader__时(也不直接调用pkgutil.find_loader()),不要在仍然支持的pkgutil.get_loader()API中触发DeprecationWarning。

Build

  • 问题#14512:在Windows上启动pydoc -b而不是pydocgui.pyw。
  • 问题#20748:卸载pip不会留在卸载程序的pyc。
  • 问题#20568:除了版本pip3pip3.4之前,Windows安装程序现在还安装未版本化的pip
  • 问题#20757:如果用户已将pip更新为与ensurepip捆绑在一起的其他版本,Windows卸载程序的ensurepip帮助程序现在将跳过卸载pip(而不是失败)。
  • 问题#20465:更新OS X和Windows安装程序构建以使用SQLite 3.8.3.1。

Python 3.4.0 release candidate 2

发布日期:2014-02-23

Core and Builtins

  • 问题#20625:__annotations__中的参数名称未正确标记。发现由Jonas Wielicki,补丁Yury Selivanov。
  • 问题#20261:在pickle中,查找对象类型上的__getnewargs__和__getnewargs_ex__。
  • 问题#20619:为AST关键字参数的AST节点提供列和行号。
  • 问题#20526:恢复导致回归的问题#19466的更改:在Python关闭期间不要清除Python线程的状态。

Library

  • 问题#20710:pydoc摘要行不再为绑定方法显示“self”参数。
  • 问题#20566:更改asyncio.as_completed()以使用队列,以避免O(N ** 2)行为。
  • 问题#20704:在asyncio中实现新的调试API。添加新方法BaseEventLoop.set_debug()和BaseEventLoop.get_debug()。添加对将'asyncio.tasks._DEBUG'变量设置为'PYTHONASYNCIODEBUG'环境变量的支持。
  • asyncio:重构和修复:BaseEventLoop.sock_connect()引发错误,如果地址未解决;在Handle和TimerHandle中使用__slots__; as_completed()和wait()引发TypeError如果未来的传递列表是单个Future; call_soon()和其他'call _ *()'函数引发TypeError如果传递的回调是协程函数; _ProactorBasePipeTransport使用_FlowControlMixin; WriteTransport.set_write_buffer_size()调用_maybe_pause_protocol()来考虑如果水印限制已经改变则暂停接收;修复_check_resolved_address()为IPv6地址;和其他小的改进,以及多个文档更新。
  • 问题#20684:修复inspect.getfullargspec()以不跟随__wrapped__链。使其行为与绑定方法第一个参数一致。补丁Nick Coghlan和Yury Selivanov。
  • 问题#20681:在asyncio中添加新的错误处理API。新的API:loop.set_exception_handler(),loop.default_exception_handler()和loop.call_exception_handler()。
  • 问题#20673:在asyncio中实现对UNIX域套接字的支持。新的API:loop.create_unix_connection(),loop.create_unix_server(),streams.open_unix_connection()和streams.start_unix_server()。
  • 问题#20616:向tracemalloc.Traceback添加format()方法。
  • 问题#19744:ensurepip安装步骤现在只是向stderr打印警告,而不是直接失败,如果SSL / TLS不可用。这允许本地安装POSIX构建而不需要SSL / TLS支持。
  • 问题#20594:避免名称与libc函数posix_close冲突。

Build

  • 问题#20641:使用NoImpersonate标志运行MSI自定义操作(pip安装,pyc编译),以支持提升执行(UAC)。
  • 问题#20221:在使用VS 2010或更高版本编译时删除了冲突(或循环)的虚假定义。由Tabrez Mohammed创建的初始修补程序。
  • 问题#20609:恢复在32位Windows上构建64位Windows二进制文件的能力,该问题因问题#19788中的更改而被打破。

Python 3.4.0 release candidate 1

发布日期:2014-02-10

Core and Builtins

  • 问题#19255:在清除其他模块之前,内置模块恢复为初始值。sys和内置模块最后清理。
  • 问题#20588:使Python-ast.c C89兼容。
  • 问题#20437:修正删除对象引用时的22个潜在错误。
  • 问题#20500:在解释器关闭时显示异常不再冒险在PyObject_Str中触发断言失败的风险。
  • 问题#20538:当输入在BASE64部分被截断时,UTF-7增量解码器产生不一致的字符串。
  • 问题#20404:io.TextIOWrapper(以及因此的open()内建)现在使用为问题#19619添加的内部编码器标记系统为已知非文本抛出LookupError编码在流构造时间。现有的输出类型检查仍然适用于处理未标记的第三方编解码器。
  • 问题#17162:添加PyType_GetSlot。
  • 问题#20162:修复siphash24()散列函数中的对齐问题,导致PowerPC 64位(ppc64)崩溃。

Library

  • 问题#20530:已更新插槽内置板的签名,以反映它们只接受只有位置的参数的事实。
  • 问题#20517:os模块中接受两个文件名的函数现在在失败时在异常中注册两个文件名。
  • 问题#20563:ipaddress模块​​API现在被认为是稳定的。
  • 问题#14983:email.generator现在总是在每个MIME边界标记之后添加一行,而不是仅在存在结尾时才这样做。这修复了RFC合规性错误,并解决了签名的MIME部分的问题。
  • 问题#20540:在通过TCP套接字分层多处理连接时修复性能回归(与Python 3.2)。对于小的有效载荷,Nagle的算法将在消息的整个传输之前引入空闲延迟。
  • 问题#16983:新的电子邮件标头解析代码现在将解码(不正确地)引号包围的编码字,并注册缺陷。
  • 问题#19772:当从8位降级到7位CTE时,email.generator不再变异消息对象。
  • 问题#20536:统计模块现在正确处理具有正指数的十进制实例
  • 问题#18805:ipaddress中的网络掩码/主机掩码解析现在可以更可靠地过滤掉非法值,并正确地允许任何有效的前缀长度。
  • 问题#20481:对于至少Python 3.4,统计模块将要求单个操作的所有输入都是单一一致类型,或者是int和另一个一致类型的混合。这避免了一些互操作性问题,这是由于以前的方法强迫到一个合适的共同类型。
  • 问题#20478:统计模块现在将像任何其他可迭代一样处理容器。计数器输入。
  • 问题#17369:如果文件名参数的RFC2231编码在某些方面被破坏,get_filename会引发异常。这是一个相对于python2的回归。
  • 问题#20013:如果当前邮箱已删除,某些imap服务器将断开连接,并且imaplib没有正常处理该情况。现在它正确处理“再见”。
  • 问题#20531:恢复#19063的修订的3.4版本,并应用3.3版本。也就是说,如果unicode被传递给email.message.Message.set_payload,那么do 不会引发错误。
  • 问题#20476:如果对任何电子邮件解析器使用非compat32策略,则EmailMessage现在用作工厂类。工厂阶级应该真的来自政策;这将固定在3.5。
  • 问题#19920:输出包含不可编码字符的列表时,TarFile.list()不再失败。基于Vajrasky Kok的补丁。
  • 问题#20515:修复问题#20368引入的空指针解引用。
  • 问题#19186:在pyexpat模块中恢复expat符号的命名空间。
  • 问题#20053:ensurepip(因此venv)不再受默认pip配置文件中的设置的影响。
  • 问题#20426:通过re.DEBUG标志时,无论编译缓存如何,re.compile()都会在每次调用时显示调试输出。
  • 问题#20368:空字符现在从Tcl正确传递到Python。改进了变量相关命令中的错误处理。
  • 问题#20435:修复_pyio.StringIO.getvalue()以考虑换行设置。
  • tracemalloc:修复切片跟踪并修复切片跟踪。
  • 问题#20354:修复64位平台上tracemalloc模块中的对齐问题。使用“make profile-opt”时在64位Linux上看到的错误。
  • 问题#17159:inspect.signature现在接受鸭类型的函数,这增加了对Cython函数的支持。由Stefan Behnel创建的初始补丁。
  • 问题#18801:修复inspect.classify_class_attrs以正确分类对象.__ new__和对象.__ init__。
  • 在其参数解析代码中修复了cmath.isinf的名称。
  • 问题#20311,#20452:poll和epoll现在在零和零之间舍入超时,而不是舍入到零,在选择和选择器模块:select.epoll.poll(),selectors.PollSelector.poll ()和selectors.EpollSelector.poll()。例如,一微秒(1e-6)的超时现在舍入到一毫秒(1e-3),而不是四舍五入为零。但是,粒度属性和asyncio的分辨率功能被再次删除。
  • asyncio:一些重构;各种修复;添加写流控制到unix管道; Future.set_exception()实例化异常参数,如果它是一个类;改进管道输送;支持wait_for(f,None);不记录断开/断开的管道;使用ValueError而不是assert for forbidden subprocess_ {shell,exec} arguments;增加了子流程管理的方便API;添加StreamReader.at_eof();正确处理重复的协程/ futures在gather(),wait(),as_completed();使用bytearray在StreamReader中缓冲;和更多。
  • 问题#20288:修复HTMLParser中无效数字字符引用的处理。
  • 问题#20424:io.StringIO的Python实现现在支持单独的代理。
  • 问题#20308:inspect.signature现在适用于没有用户定义的__init__或__new__方法的类。
  • 问题#20372:inspect.getfile(和一堆使用它的其他检查函数)不会在C中定义的类上出现意外的AttributeError而没有__module__。
  • 问题#20356:inspect.signature格式化使用'/'将位置参数与其他参数分离。
  • 问题#20223:inspect.signature现在支持使用functools.partialmethods定义的方法。
  • 问题#19456:当驱动器存在时,ntpath.join()现在正确连接相对路径。
  • 问题#19077:tempfile.TemporaryDirectory清除在关机期间调用时不再失败。在__del__中发出资源警告不再失败。原始补丁由安托万Pitrou。
  • 问题#20394:audioop模块中的Silence Coverity警告。
  • 问题#20367:修复concurrent.futures.as_completed()对重复参数的行为。补丁由Glenn Langford。
  • 问题#8260:当readline()或read(size)调用时,codecs.StreamReader的read(),readline()和readlines()方法返回不完整的数据。基于Amaury Forgeot d'Arc的补丁。
  • 问题#20105:编解码器异常链现在正确设置原始异常的追溯作为其__traceback__属性。
  • 问题#17481:inspect.getfullargspec()现在使用inspect.signature()API。
  • 问题#15304:concurrent.futures.wait()可以永远阻止,即使Futures已经完成。补丁由Glenn Langford。
  • 问题#14455:plistlib:修复在unsigned long long范围内的序列化整数,但在二进制plist文件的signed long long范围之外。

IDLE

  • 问题#20406:对空闲窗口标题栏使用Python应用程序图标。补丁主要由Serhiy Storchaka。
  • 将空闲类浏览器和pathbowser的python.gif图标从旧的青蛇更新为新的蓝色和黄色蛇。
  • 问题#17721:删除非功能配置对话框帮助按钮,直到我们点击它时提供一些帮助。补丁由GuilhermeSimões。

Tests

  • 问题#20532:现在使用_testcapi的测试仅标记为CPython。
  • 问题#19920:添加了TarFile.list()的测试。基于Vajrasky Kok的补丁。
  • 问题#19990:添加了imghdr模块的测试。基于补丁由Claudiu波帕。
  • 问题#20474:在OS X 10.7+上修复test_socket“意外成功”失败。

Tools/Demos

  • 问题#20530:参数诊所的声明格式已重新修订。新的语法是高度人类可读的,同时仍然防止误报。该语法还扩展了Python语法以表示“自”和位置唯一的参数,允许inspect.Signature对象完全准确的所有支持的内置在Python 3.4。
  • 问题#20456:Argument Clinic现在观察其解析的C文件的C预处理器条件编译语句。当Clinic块位于条件代码中时,它会调整其输出以匹配,包括自动生成空的methoddef宏。
  • 问题#20456:在Argument Clinic中的克隆函数现在为生成的代码中的文本字符串使用正确的名称,而不是它们克隆的函数的名称。
  • 问题#20456:固定参数诊所的测试套件和“-converters”功能。
  • 问题#20456:Argument Clinic现在允许在Python和C中为参数指定不同的名称,在参数行中使用“as”。
  • 问题#20326:Argument Clinic现在使用一个简单,唯一的声明来注释文档字符串中的文本签名,从而减少错误肯定。“self”参数也被明确标记,允许inspect.Signature()授权检测(和跳过)所述参数。
  • 问题#20326:Argument Clinic现在为块的输入和输出部分生成单独的校验和,允许外部工具验证输入未更改(因此输出不是过期的)。

Build

  • 问题#20465:将随OS X安装程序提供的SQLite更新到3.8.3。

C-API

  • 问题#20517:添加了允许OSError异常引用两个文件名而不是引用两个文件名的新函数:PyErr_SetFromErrnoWithFilenameObjects()和PyErr_SetExcFromWindowsErrWithFilenameObjects()。

Documentation

  • 问题#20488:更改措辞说importlib是导入的实现,而不是实现。
  • 问题#6386:在教程中澄清,指定要执行的符号链接意味着包含已执行脚本的目录,而不是将符号链接添加到sys.path。

Python 3.4.0 Beta 3

发布日期:2014-01-26

Core and Builtins

  • 问题#20189:已修改四个其他内置类型(PyTypeObject,PyMethodDescr_Type,_PyMethodWrapper_Type和PyWrapperDescr_Type)以提供内置函数的内省信息。
  • 问题#17825:光标“^”正确定位为SyntaxError和IndentationError。
  • 问题#2382:在多字节字符在行(在“^”之前)的大多数情况下,语法错误光标“^”现在写入正确的位置。对于宽泛的东亚字符,这仍然不能正确工作。
  • 问题#18960:当在第二行指定源代码时,Python脚本的第一行可以执行两次。现在,如果第一行包含注释之外的任何内容,则第二行上的源编码声明无效。'python -x'现在再次与具有源编码声明的文件一起工作,并且可以用于在Windows上创建Python批处理文件。

Library

  • asyncio:各种改进和小的更改不是所有的问题列出如下。例如。wait_for()现在取消内部任务,如果超时发生;调整导出符号集;重命名为Empty / Full to QueueEmpty / QueueFull; “with(yield from lock)”现在使用单独的上下文管理器; readexactly()如果​​没有读取足够的数据, PTY支持调整。
  • 问题#20311:asyncio:向BaseEventLoop添加粒度属性:BaseEventLoop.time()方法的分辨率与选择器的分辨率之间的最大值。在调度器中使用粒度来舍入时间和期限。
  • 问题#20311:选择器:向BaseSelector添加分辨率属性。
  • 问题#20189:unittest.mock现在不再假设任何可以获得inspect.Signature的对象都是使用Python编写的可调用对象。修复由福特福特。
  • 问题#20317:如果清理操作引发的异常已经正确设置其上下文(例如,通过@contextmanager装饰器),ExitStack .__ exit__可以创建自引用循环。这个引起的无限循环现在通过检查预期上下文是否已经设置,然后尝试修复它来避免。
  • 问题#20374:使用GNU readline> = 6.3修复build。
  • 问题#20262:当在ZIP文件中添加重复的名称或太长的ZIP文件注释被截断时,现在出现警告。
  • Issue#20165:如果通过了@expectedFailure,则unittest模块不再认为标记为@expectedFailure的测试成功。
  • 问题#18574:在来自http.server.BaseHTTPRequestHandler的100-Continue回复中添加了缺少的换行符。由Nikolaus Rath修补。
  • 问题#20270:urllib.urlparse现在支持空端口。
  • 问题#20243:在写入模式下打开时,TarFile不再引发ReadError。
  • 问题#20238:TarFile打开与外部fileobj和“w:gz”模式没有写完全输出关闭。
  • 问题#20245:tarfile模块中的打开函数现在可以正确处理空方式。
  • 问题#20242:修复了替代格式样式的basicConfig()格式字符串。感谢kespindler的错误报告和补丁。
  • 问题#20246:修复socket.recvfrom_into中的缓冲区溢出。
  • 问题#20206和#5803:修复email.quoprimime.encode中的边缘情况,其中截断的行以需要编码的字符结尾,但没有换行符,使用没有错误的更有效的算法。
  • 问题#19082:工作xmlrpc.server和xmlrpc.client示例。在模块和文档中。由Vajrasky Kok提供的初始补丁。
  • 问题#20138:当处理非ASCII URL时,wsgiref.application_uri()和wsgiref.request_uri()函数现在符合PEP 3333。
  • 问题#19097:当cgi.FieldStorage给定一个无效的fileobj时,引入正确的Exception。
  • 问题#20152:将Python / import.c移植到Argument Clinic。
  • 问题#13107:argparse和optparse不会在对COLUMNS太小的环境输出帮助时不再引发异常。基于Elazar Gershuni的补丁。
  • 问题#20207:除非明确要求PROTOCOL_SSLv2,否则始终禁用SSLv2。
  • 问题#18960:如果第一行包含注释以外的任何内容,则令牌化模块现在忽略第二行上的源编码声明。
  • 问题#20078:读取格式不正确的zip文件不再占用CPU 100%的CPU消耗。
  • 问题#20113:os.readv()和os.writev()现在引发错误上的OSError异常,而不是返回-1。
  • 问题#19719:使importlib.abc.MetaPathFinder.find_module(),PathEntryFinder.find_loader()和Loader.load_module()使用PEP 451 API来帮助向后兼容。
  • 问题#20144:inspect.Signature现在支持将简单符号常量解析为__text_signature__中的参数默认值。
  • 问题#20072:修复了tkinter中wantobjects的多个错误为False。
  • 问题#20229:避免在platform.mac_ver()中使用plistlib弃用警告。
  • 问题#14455:修复了plistlib中新的二进制plist支持的一些问题。

IDLE

  • Issue#17390:将Python版本添加到Idle编辑器窗口标题栏。爱德蒙·伯内特和肯特·约翰逊的原始补丁。
  • 问题#18960:如果第一行包含注释以外的任何内容,IDLE现在将忽略第二行上的源编码声明。

Tests

  • 问题#20358:对curses.window.overlay和curses.window.overwrite的测试不再指定min {row,col}> max {row,col}。
  • 问题#19804:如果ifconfig可执行文件不可用,则test_uuid中的test_find_mac测试现在将被跳过。
  • 问题#19886:对bigmem测试使用更好的估计内存需求。

Tools/Demos

  • 问题#20390:Argument Clinic的“文件”输出预设现在默认为“{dirname} / clinic / {basename} .h”。
  • 问题#20390:参数临床的“类”指令语法已扩展有两个新的必需参数:“typedef”和“type_object”。
  • 问题#20390:参数临床:如果__new__或__init__函数未使用kwargs(或args),则生成的PyArg_NoKeywords(或PyArg_NoPositional)调用仅在类型对象完全匹配时运行。
  • 问题#20390:如果在可选参数后面有必需的参数,参数临床现在会失败。
  • 问题#20390:Argument Clinic转换器现在有一个新模板,他们可以将代码注入:“modifiers”。代码放在那里在解析函数中运行参数解析后,但在调用impl之前。
  • 问题#20376:参数临床现在在docstrings中转义反斜杠。
  • 问题#20381:当指定c_default时,Argument Clinic现在正确性检查默认参数,为不允许的值提供一个很好的失败消息。
  • 问题#20189:Argument Clinic现在确保__new__的解析器函数始终为类型newfunc,tp_new槽的类型。类似地,__init__的解析器函数现在总是类型initproc,tp_init的类型。
  • 问题#20189:如果在输入中没有提供docstring,Argument Clinic现在会取消__new__和__init__函数的文档字符串。
  • 问题#20189:Argument Clinic现在抑制@staticmethod函数的impl中的“self”参数。
  • 问题#20294:Argument Clinic现在支持__new__和__init__函数的参数解析。
  • 问题#20299:Argument Clinic自定义转换器现在可以使用类成员更改c_default和py_default的默认值。
  • 问题#20287:参数临床的输出现在可以配置,允许延迟其输出或甚至将其重定向到单独的文件。
  • Issue#20226:Argument Clinic现在允许使用简单的表达式。“sys.maxsize - 1”)作为参数的默认值。
  • 问题#19936:向需要它们的Python脚本添加可执行位或shebang行。禁用测试和基准测试文件中的可执行位和shebang行,以防止使用随机系统python,以及在不提供命令行界面的模块的源文件中。修复了unittestgui和checkpip脚本中的shebang行。
  • 问题#20268:Argument Clinic现在支持克隆参数并返回现有函数的转换器。
  • 问题#20228:Argument Clinic现在特别支持类特殊方法。
  • 问题#20214:修正了Argument Clinic中的一些小问题和文档错误(有关详细信息,请参阅问题)。
  • 问题#20196:修复了一个错误,其中Argument Clinic没有为所有参数都是可选参数的位置参数的函数生成正确的解析代码。
  • 问题#18960:2to3和findnocoding.py脚本现在忽略第二行上的源编码声明,如果第一行包含注释以外的任何内容。
  • 问题#19723:Argument Clinic使用的标记注释已更改,以提高可读性。
  • 问题#20157:当Argument Clinic重命名参数,因为其名称与C关键字冲突时,它不再将该重命名暴露给PyArg_Parse。
  • Issue#20141:改进了Argument Clinic对PyArg_Parse“O!”格式单元的支持。
  • Issue#20144:Argument Clinic现在支持简单的符号常量作为参数默认值。
  • 问题#20143:在参数诊所错误中报告的行号现在更准确。
  • 问题#20142:现在使用默认值初始化Argument Clinic生成的Py_buffer变量。

Build

  • 问题#12837:在socketmodule.c中的Clang下的OS X上,停止重复比较警告。

Python 3.4.0 Beta 2

发布日期:2014-01-05

Core and Builtins

  • 问题#17432:从python3.def中的Unicode函数名称中删除UCS2。
  • 问题#19526:从稳定ABI中排除所有新API。如果需要被证明,可以做出例外。
  • 问题#19969:如果“%c”参数不在范围内,则PyBytes_FromFormatV()现在引发溢出错误[0; 255]。
  • 问题#19995:%c,%o,%x和%X现在对非整数输入发出DeprecationWarning; reworded docs来澄清整数类型应该同时定义__int__和__index__。
  • Issue#19787:PyThread_set_key_value()现在总是设置值。在Python 3.3中,如果键已经存在(如果当前值是非空指针),函数什么也不做。
  • 问题#14432:从帧结构中删除线程状态字段。修复在生成器被创建时在生成器仍在使用时被销毁的C线程中的崩溃。问题是生成器包含一个框架,框架保持对被破坏的C线程的Python状态的引用。设置跟踪功能时发生崩溃。
  • 问题#19576:PyGILState_Ensure()现在初始化线程。在启动时,Python没有具体的GIL。如果第一次从一个新线程调用PyGILState_Ensure(),并且尚未调用PyEval_InitThreads(),则需要创建一个GIL。
  • 问题#17576:当__int __()或__index __()返回非实例时,立即发出弃用警告。
  • 问题#19932:修复import.h中的拼写错误,缺少函数原型中的空格。
  • 问题#19736:添加为基于GNU / glibc的系统定义的模块级statvfs常量。
  • 问题#20097:在importlib的WindowsRegistryFinder中修复了“self”的错误使用。
  • 问题#19729:在str.format()中,修复格式规范中的递归扩展。
  • 问题#19638:修复_Py_dg_strtod中巨大(超过20亿个字符)输入字符串可能的崩溃/未定义行为。

Library

  • 问题#20154:asyncio.StreamReader.readexactly()中的死锁。
  • 问题#16113:再次删除sha3模块。
  • 问题#20111:pathlib.Path.with_suffix()现在正确性检查给定的后缀。
  • 修复由问题#11798引入的TestSuite.countTestCases()中的损坏。
  • 问题#20108:在inspect.getcallargs()中避免参数名称冲突。
  • 问题#19918:修复Windows下的PurePath.relative_to()。
  • 问题#19422:明确禁止ssl模块中的非SOCK_STREAM套接字,而不是静默地让它们发出明文数据。
  • 问题#20046:区域设置别名表不再包含可以计算的实体。广泛支持欧元修正。
  • 问题#20027:修复了devanagari语言环境的语言环境别名。
  • 问题#20067:当wantobjects为false时,Tkinter变量现在工作。
  • 问题#19020:Tkinter现在在configure方法中使用splitlist(),而不是split()。
  • 问题#19744:在没有SSL / TLS支持的情况下,ensurepip现在提供了更好的错误消息(pip目前需要运行支持,即使只使用本地轮文件)
  • 问题#19734:ensurepip现在忽略所有pip环境变量,以避免基于用户配置设置的奇怪行为
  • 在“setup.py upload -show-response”上修复TypeError。
  • 问题#20045:修复“setup.py register -list-classifiers”。
  • 问题#18879:当在临时文件中查找方法时,请避免在可能调用该方法之前关闭该文件。
  • 问题#20037:在解释器关机后打开文本文件时避免崩溃。
  • 问题#19967:感谢PEP 442,asyncio.Future现在使用析构函数记录未捕获的异常,而不是专用的_TracebackLogger类。
  • 向Asyncio添加了Task.current_task()类方法。
  • 问题#19850:在注册信号处理程序以限制EINTR出现时,在asyncio中设置SA_RESTART。
  • 在异步事件循环(Windows)中实现写流控制。
  • 更改写入缓冲区在asyncio使用,以避免O(N ** 2)行为。使write()/ sendto()接受bytearray / memoryview。
  • 问题#20034:使用makelocalealias.py更新了来自X.org发行版的最新locale.alias文件的别名映射。
  • 问题#5815:固定支持具有修饰符的语言环境。固定支持带连字符的区域设置编码。
  • 问题#20026:修正sqlite模块以正确处理无效的隔离级别(错误类型)。
  • 问题#18829:csv.Dialect()现在检查delimiter,escapechar和quotechar字段的类型。原始补丁Vajrasky Kok。
  • 问题#19855:Unix上的uuid.getnode()现在查找用于查找mac地址的可执行文件的路径,其中/ sbin和/ usr / sbin作为回退。
  • 问题#20007:HTTPResponse.read(0)不再过早关闭连接。由Simon Sapin的原始补丁。
  • 问题#19946:multiprocessing现在使用runpy在必要时初始化子进程中的__main__,允许它正确处理没有使用显式相对导入的后缀和子模块的脚本,或者依赖于在先前正确导入的父模块执行。
  • 问题#19921:当使用parents = True调用Path.mkdir()时,使用默认权限创建任何缺少的父对象,忽略模式参数(模仿POSIX“mkdir -p”命令)。
  • Issue#19887:改进Path.resolve()算法以支持某些符号链。
  • 问题#19912:修复了ntpath.splitunc()中的大量错误。
  • 问题#19911:ntpath.splitdrive()现在正确处理“İ”字符(U + 0130,拉丁字母I与上面的DOT)。
  • 问题#19532:python -m compileall没有文件名/目录参数现在尊重-f和-q标志,而不是忽略它们。
  • 问题#19623:修正了对aifc模块中的不可搜索文件的写入。
  • 问题#19946:multiprocessing.spawn现在引发无法导入要用作主模块的模块时的ImportError。
  • 问题#17919:select.poll.register()再次与AIX上的poll.POLLNVAL一起使用。在eventmask参数中的固定整数溢出。
  • 问题#19063:如果字符集的body_encoding设置为无,电子邮件包将生成一条消息,声称Content-Transfer-Encoding为7bit,并为内容产生垃圾输出。这现在工作。一些非ASCII的set_payload错误也是固定的。此外,调用带有字符串参数的set_payload,而不指定charset现在引发错误(这是3.4中的新错误)。
  • 问题#15475:为itertools对象添加__sizeof__实现。
  • 问题#19944:修复importlib.find_spec(),以便根据需要导入父节点,并将函数移动到importlib.util。
  • 问题#19880:在unittest.TestCase中修复引用泄漏。显式地中断帧之间的参考周期和_Outcome实例。
  • 问题#17429:platform.linux_distribution()现在使用surrogateescape错误处理程序解码来自UTF-8编码的文件,而不是以严格模式从区域设置编码解码。它修复了Fedora 19上的功能,这可能是第一个使用非ASCII名称的主要发行版本。由Toshio Kuratomi写的补丁。
  • 问题#19343:在资源模块中公开FreeBSD特定的API。原始补丁Koobs。
  • 问题#19929:在subprocess.Popen.communicate中调用os.read with 32768,而不是为了效率调用4096。一个微基准显示Linux和OS X都使用这种方式减少〜50%的cpu时间。
  • 问题#19506:使用内存视图,以避免在将数据管道传输到subprocess.Popen.communicate中的stdin时进行数据复制。少使用cpu 5-10%。
  • 问题#19876:如果FD关闭(只要已注册),selectors unregister()不再引发ValueError或OSError。
  • 问题#19908:当驱动器存在时,pathlib现在可以正确加入相关的Windows路径。原始补丁由安托万Pitrou。
  • 问题#19296:在dbm_open中停止编译器警告
  • 问题#6784:通过将Unpickler的encoding参数设置为“bytes”,现在可以将Python 2中的字符串解包为字节对象。Merlijn van Deen的初始补丁。
  • 问题#19839:修复bz2模块在EOF处理非bzip2数据时的回归,以及lzma模块中的类似错误。
  • 问题#19881:修复酸洗错误,其中cpickle将发出大字节字符串(即,大小大于2 ** 32-1)的错误pickle数据。
  • 问题#19138:doctest的IGNORE_EXCEPTION_DETAIL现在允许在没有异常详细信息时存在匹配(在异常名称后面没有冒号,或冒号后跟,但冒号后没有文本)。
  • 问题#19927:在importlib中向基于路径的装载器添加__eq__。
  • 问题#19827:在UNIX上,socket.socket的setblocking()和settimeout()方法现在可以避免第二个系统调用,如果可以使用ioctl()函数,套接字不变。
  • 问题#19785:smtplib现在支持TLS / SSL连接的SSLContext.check_hostname和服务器名称指示。
  • 问题#19784:poplib现在支持TLS / SSL连接的SSLContext.check_hostname和服务器名称指示。
  • 问题#19783:nntplib现在支持TLS / SSL连接的SSLContext.check_hostname和服务器名称指示。
  • 问题#19782:imaplib现在支持TLS / SSL连接的SSLContext.check_hostname和服务器名称指示。
  • 问题#20123:修复“二进制”模块的pydoc.synopsis()。
  • 问题#19834:支持取消由Python 2 pickled的异常。
  • 问题#19781:ftplib现在支持SSLContext.check_hostname和TLS / SSL连接的服务器名称指示。
  • 问题#19509:在握手时添加SSLContext.check_hostname以将对等体的证书与server_hostname匹配。
  • 问题#15798:如果文件描述器0,1或2关闭,则固定的子进程.Popen()不再失败。
  • 问题#17897:优化的unpickle预取。
  • 问题#3693:当array.array()构造函数给出一个str时,使错误消息更有帮助。将数组模块类型代码文档移动到构造函数的docstring。
  • 问题#19088:修复对象.__中减少__()和对象.__ reduce_ex __()中的copyreg模块的不正确缓存。
  • 问题#19698:从importlib.machinery.BuiltinImporter和ExtensionFileLoader中删除了exec_module()方法。
  • 问题#18864:为ModuleSpec.has_location添加了一个setter。
  • 修复_pickle.Unpickler在将空字符串作为持久标识加载时不会失败。
  • 问题#11480:修复了copy.copy以使用具有自定义元类的类。补丁由丹尼尔城。
  • 问题#6477:添加了对内建单例类型(即省略号,未实现,无)的选择支持。
  • 问题#19713:添加剩余的与PEP 451相关的弃用,并退出使用find_module / find_loaer / load_module。
  • 问题#19708:更新pkgutil以使用新的导入程序API。
  • 问题#19703:更新pydoc以使用新的导入程序API。
  • 问题#19851:修复了重新加载子模块的回归。
  • ssl.create_default_context()设置OP_NO_COMPRESSION以防止CRIME。
  • 问题#19802:添加socket.SO_PRIORITY。
  • 问题#11508:在具有虚拟接口的环境上修复了uuid.getnode()和uuid.uuid1()。原始补丁Kent Frazier。
  • 问题#11489:JSON解码器现在接受单独的代理。
  • 问题#19545:避免链接异常,同时将stray%传递给time.strptime()。初始补丁Claudiu Popa。

IDLE

  • 问题#20058:IDLE中的sys.stdin.readline()现在总是只返回一行。
  • 问题#19481:IDLE中的字符串子类实例的print()不再挂起。
  • 问题#18270:在没有初始shell窗口时,防止OS X上可能的IDLE AttributeError。

Tests

  • 问题#20055:修复了在拥有符号链接权限的Windows下的test_shutil。由Vajrasky Kok修补。
  • 问题#20070:在未启用网络资源时,请不要运行test_urllib2net。
  • 问题#19938:在test_dis中重新启用了test_bug_1333982,由于listcomp处理的更改,自3.0以来已禁用。
  • 问题#19320:当wantobjects为false时,test_tcl不再失败。
  • 问题#19919:修复易损SSL测试。connect_ex()有时在Windows上托管的Windows或VM上返回EWOULDBLOCK。
  • 问题#19912:添加了对ntpath.splitunc()的测试。
  • 问题#19828:当使用-S运行整个套件时,修复了test_site。
  • 问题#19928:对单元格对象的repr()执行测试。
  • 问题#19535:当使用-OO运行python时,修复了test_docxmlrpc,test_functools,test_inspect和test_statistics。
  • 问题#19926:从test_abstract_numbers中删除了不必要的test_main。由Vajrasky Kok修补。
  • 问题#19572:更多跳过的测试被明确标记为已跳过。
  • 问题#19595,#19987:在test_winsound中重新启用了长时间禁用的测试。
  • 问题#19588:修复了test_random中大多数时间静默跳过的测试。补丁由朱利安Gindi。

Build

  • 问题#19728:在Windows上默认启用pip安装。
  • 问题#16136:删除VMS支持
  • 问题#18215:添加脚本Tools / ssl / test_multiple_versions.py以使用多个版本的OpenSSL编译和运行Python的单元测试。
  • 问题#19922:在HP-UX中定义_INCLUDE__STDC_A1_SOURCE以包括mbrtowc()的mbstate_t。
  • 问题#19788:kill_python(_d).exe现在在pythoncore子项目上作为PreBuildEvent运行。这应该防止构建错误,由于以前的生成的python(_d).exe仍然运行。

Documentation

Tools/Demos

Python 3.4.0 Beta 1

发布日期:2013-11-24

Core and Builtins

  • 在导入的更多位置使用模块名称的repr,尤其是异常。
  • 问题#19619:str.encode,bytes.decode和bytearray.decode现在使用内部API为已知的非文本编码抛出LookupError,而不是尝试编码或解码操作,然后抛出一个TypeError用于意外的输出类型。(后一种机制仍然适用于第三方非文本编码)
  • 问题#19183:实施PEP 456'安全可互换的散列算法'。Python现在在所有主要平台上使用SipHash24。
  • 问题#12892:utf-16 *和utf-32 *编码器不再允许对代理码点(U + D800-U + DFFF)进行编码。utf-32 *解码器不再解码对应于代理码点的字节序列。代理通过错误处理程序现在可以与utf-16 *和utf-32 *编解码器一起使用。基于Victor Stinner和Kang-Hao(Kenny)Lu的补丁。
  • 问题#17806:为“tabsize”添加了关键字参数支持到str / bytes.expandtabs()。
  • 问题#17828:str.encode(),bytes.decode()和bytearray.decode()中的输出类型错误现在将用户直接引导到codecs.encode()或codecs.decode()。
  • 问题#17828:解释器现在尝试使用包含错误消息中的编解码器名称的相同类型的替换异常链接编解码器处理中发生的错误。它确保它仅在创建替换异常时不会丢失任何信息。
  • 问题#19466:在Python关闭期间清除守护线程的帧以便调用对象析构函数。因此,“unclosed file”资源警告现在正确地发出守护线程。
  • 问题#19514:重复删除一些_Py_IDENTIFIER声明。补丁安德烈多利安杜马。
  • 问题#17936:在添加或删除给定类型的许多子类时修复O(n ** 2)行为。
  • 问题#19428:zipimport现在可以在读取截断或无效的ZIP存档时处理错误。
  • 问题#18408:添加一个新的PyFrame_FastToLocalsWithError()函数,以便在将快速本地合并到帧的f_locals时处理异常。PyEval_GetLocals()现在引发异常并在失败时返回NULL。
  • 问题#19369:优化__length_hint __()的用法。
  • 问题#18603:确保PyOS_mystricmp和PyOS_mystrnicmp在Python可执行文件中,而不是由链接器的优化程序删除。
  • 问题#19306:向faulthandler模​​块的堆栈转储添加额外的提示,这些是“颠倒的”。

Library

  • Issue#3158:doctest现在可以在以C语言编写的函数和方法中找到doctest。
  • 问题#13477:向tarfile模块添加了命令行界面。由柏克Peksag原始补丁。
  • 问题#19674:inspect.signature()现在为某些内置程序生成正确的声明。
  • 问题#19722:添加了opcode.stack_effect(),它计算字节码指令的堆栈效果。
  • 问题#19735:在Python的stdlib模块中实现私有函数ssl._create_stdlib_context()以创建SSLContext对象。它提供单个配置点并使用SSLContext.load_default_certs()。
  • 问题#16203:添加re.fullmatch()函数和regex.fullmatch()方法,该方法将模式锚定在字符串的两端以匹配。原始补丁Matthew Barnett。
  • 问题#13592:改进了正则表达式模式对象的repr。基于Hugo Lopes Tavares的补丁。
  • 问题#19641:添加了audioop.byteswap()函数,将big-endian样本转换为little-endian,反之亦然。
  • 问题#15204:在类似文件的对象中取消了“U”模式。
  • 问题#17810:实施PEP 3154,pickle协议4。
  • 问题#19668:添加了对cp1125编码的支持。
  • 问题#19689:添加ssl.create_default_context()工厂函数。它使用安全的默认设置创建一个新的SSLContext对象。
  • 问题#19727:os.utime(...,无)现在在Windows下可能更精确。
  • 问题#17201:ZIP64扩展现已默认启用。补丁由威廉·马拉德。
  • 问题#19292:添加SSLContext.load_default_certs()以从默认商店或系统商店加载默认根CA证书。默认情况下,该方法加载CA证书以验证服务器证书。
  • 问题#19673:将pathlib添加到stdlib作为临时模块(PEP 428)。
  • 问题#16596:生成器中的pdb现在正确地跳过yield和yield,而不是从生成器跳出到其调用者。(这对于通过asyncio协程是必不可少的。)
  • 问题#17916:添加了dis.Bytecode.from_traceback()和dis.Bytecode.current_offset,以便在新的反汇编API(由Claudiu Popa修补)中轻松显示“当前指令”标记。
  • 问题#19552:venv现在支持引导到虚拟环境中
  • 问题#17134:完成与Windows的证书库的接口。Cert和CRL枚举现在有两个功能。enum_certificates()也返回用途标志作为OID集合。
  • 问题#19555:使用DeprecationWarning将人指向$ EXT_SUFFIX,恢复sysconfig.get_config_var('SO')(和distutils等效)。
  • 问题#8813:添加SSLContext.verify_flags以更改上下文的验证标志,以便启用证书吊销列表(CRL)检查或严格的X509规则。
  • 问题#18294:修复zlib模块,使其64位安全。
  • 问题#19682:修复问题#18379引入的旧版OpenSSL的兼容性问题。
  • 问题#14455:plistlib现在支持二进制列表并具有更新的API。
  • 问题#19633:修正在big-endian平台上不压缩16位和32位波形文件。
  • 问题#18379:SSLSocket.getpeercert()返回CA颁发者AIA字段,OCSP和CRL分发点。
  • 问题#18138:实现SSLContext.load_verify_location()的cadata参数,以从内存加载CA证书和CRL。它支持PEM和DER编码字符串。
  • 问题#18775:向HMAC对象添加名称和block_size属性。它们现在提供与非密钥加密散​​列函数相同的API元素。
  • 问题#17276:不推荐使用MD5作为HMAC的默认摘要模式。HMAC模块支持digestmod名称,例如hmac.HMAC('sha1')。
  • 问题#19449:在csv的作者中,在生成错误消息时,处理非字符串键,某些键不在“fieldnames”列表中。
  • 问题#13633:向HTMLParser添加了一个新的convert_charrefs关键字arg,当为True时,自动转换所有字符引用。
  • 问题#2927:向html模块添加了unescape()函数。
  • 问题#8402:向glob模块添加了escape()函数。
  • 问题#17618:向base64模块添加Base85和Ascii85编码/解码。
  • 问题#19634:time.strftime(“%y”)现在在AIX上引入ValueError,在1900年之前的一年。
  • 修复test.support.bind_port(),以便在Python在标题中定义了SO_REUSEPORT的系统上编译时不会导致错误,但在具有不支持合理的新套接字选项的操作系统内核的系统上运行。
  • 修复了针对arm的ctypes模块捆绑libffi的gcc下的编译错误。
  • 问题#19448:向SSL模块添加专用API,以按OID,NID,短名称和长名称查找ASN.1对象。
  • 问题#19282:dbm.open现在支持上下文管理协议。(初始补丁Claudiu Popa)
  • 问题#8311:增加了对在aifc,sunau和wave模块中编写任何字节状对象的支持。
  • 问题#5202:增加了对wave模块中不可搜索文件的支持。
  • 问题#19544问题#1180:恢复全局选项以忽略Distutils中的〜/ .pydistutils.cfg,意外在distutils2更改的回退中删除。
  • 问题#19523:关闭在设置延迟时发生的FileHandler泄漏。
  • 问题#19544问题#6516:将对-user和-group参数的支持恢复为sdist命令意外回滚作为distutils2回滚的一部分。
  • 问题#13674:防止time.strftime在Windows上崩溃,在1900年之前给出,格式为%y。
  • 问题#19406:ensurepip模块的实现(PEP 453的一部分)。Ponald by Donald Stufft和Nick Coghlan。
  • 问题#19544问题#6286:通过http恢复使用urllib允许对Distutils上传命令使用http_proxy,一个功能在distutils2的回滚中意外丢失。
  • 问题#19544问题#7457:将ret_pkg_file方法恢复为distutils.dist.DistributionMetadata意外在distutils2的撤消中删除。
  • 问题#16685:添加对audioop模块中任何字节对象的支持。删除了对字符串的支持。
  • 问题#7171:将inet_ntopinet_pton的Windows实现添加到套接字模块。补丁由Ishimoto。
  • 问题#19261:增加了对sunau模块中写入24位样本的支持。
  • 问题#1097797:增加了在德国和奥地利的IBM大型机上使用的CP273编码。Mapping由Michael Bierenfeld提供。
  • 问题#1575020:在big-endian平台上固定支持24位波形文件。
  • 问题#19378:修复了dis模块中的一些情况,其中新的“file”参数未被正确授权
  • 问题#19378:已删除“dis.Bytecode.show_info”方法
  • 问题#19378:将“dis.Bytecode.display_code”方法重命名为“dis.Bytecode.dis”,并将其转换为返回字符串而不是打印输出。
  • 问题#19378:新的“dis.get_instructions”API中的“line_offset”参数已重命名为“first_line”(默认值和用法也相应更改)。这应该减少混乱与更常见的使用“偏移”在dis docs参考字节码偏移。
  • 问题#18678:在spwd模块中更正的spwd结构成员名称:sp_nam-> sp_namp和sp_pwd-> sp_pwdp。旧名称保留为额外的structseq成员,以实现向后兼容性。
  • 问题#6157:已修复tkinter.Text.debug()。tkinter.Text.bbox()现在引发TypeError而不是TclError错误的参数数。原始补丁Guilherme Polo。
  • 问题#10197:返回subprocess.get [status]输出以使用子进程功能,从而在Windows上工作。补丁尼克Coghlan
  • 问题#6160:tkinter.Spinbox的bbox()方法现在返回整数的元组,而不是字符串。基于Guilherme Polo的补丁。
  • 问题#19403:contextlib.redirect_stdout现在可重入
  • 问题#19286package_data中的目录不再添加到文件列表中,从而防止故障单中列出的故障。
  • 问题#19480:HTMLParser现在接受HTML5标准定义的所有有效起始标记名称。
  • 问题#15114:当使用HTMLParser的strict参数或HTMLParser.error方法时,html.parser模块现在引用DeprecationWarning。
  • 问题#19410:取消对importlib.machinery.FileFinder的''的特殊外壳删除。
  • 问题#19424:修正警告模块以接受包含替代字符的文件名。
  • 问题#19435:修复CGIHttpRequestHandler上的目录遍历攻击。
  • 问题#19227:删除pthread_atfork()处理程序。处理程序被添加到解决#18747但已导致问题。
  • 问题#19420:修复_hashopenssl.c的模块初始化代码中的引用泄漏
  • 问题#19329:在正则表达式中优化编译字符集。
  • 问题#19227:尝试解决由重新种子导致的死锁,然后在fork()上使用OpenSSL伪随机数生成器。
  • 问题#16037:HTTPMessage.readheaders()在读取超过100个标头时引发HTTPException。改编自Jyrki Pulliainen的补丁。
  • 问题#16040:CVE-2013-1752:nntplib:将最大行长度限制为2048,以防止readline()调用消耗过多内存。补丁由Jyrki Pulliainen。
  • 问题#16041:CVE-2013-1752:poplib:将最大行长度限制为2048,以防止readline()调用消耗过多内存。补丁由Jyrki Pulliainen。
  • 问题#17997:出于安全原因,更改ssl.match_hostname()的行为遵循RFC 6125。它现在不匹配IDN片段中的多个通配符和通配符。
  • 问题#16039:CVE-2013-1752:将imaplib模块中的readline的使用更改为限制行长度。Patch由Emil林。
  • 问题#19330:不必要的包装器函数已从新的contextlib.redirect_stdout和contextlib.suppress上下文管理器的实现中删除,这也确保它们在实例上提供合理的help()输出
  • 问题#19393:修复symtable.symtable函数,以避免在名为“top”的函数或类时混淆。
  • 问题#18685:将性能恢复为PEP 393级别。
  • 问题#19339:telnetlib模块现在正在使用time.monotonic()(如果可用)来计算超时。
  • 问题#19399:修复sporadic test_subprocess故障。
  • 问题#13234:修复os.listdir以在Windows上使用扩展路径。补丁由Santoso Wijaya。
  • 问题#19375:如果网站模块向sys.path中添加了“site-python”目录(如果存在),现在已被弃用。
  • 问题#19379:在warnings模块中Lazily导入linecache,以便更快地启动警告,直到打印警告。
  • 问题#19288:修复了dbm.gnu数据库的“in”操作符合字符串参数。原始补丁由Arfrever Frehtes Taifersar Arahesis。
  • 问题#19287:修复了dbm.ndbm数据库的“in”操作符合字符串参数。原始补丁由Arfrever Frehtes Taifersar Arahesis。
  • 问题#19327:修正了过大字符集的正则表达式的工作。
  • 问题#17400:ipaddress的新'is_global'属性,用于判断IANA是否为全球或专用网络分配了地址。
  • 问题#19350:增加macurl2path的测试覆盖率。补丁由科林·威廉姆斯。
  • 问题#19365:优化了re.sub *()函数中长替换字符串的解析。
  • 问题#19352:修复单元测试发现,当模块可以通过几个路径到达。在Debian / Ubuntu下使用virtualenv)。
  • 问题#15207:修正mimetypes从Windows注册表的正确部分读取原始补丁由Dave Chambers
  • 问题#16595:将prlimit()添加到资源模块。
  • 问题#19324:在资源模块中公开Linux特定的常量。
  • 在hashlib中加载SSL的错误字符串。
  • 问题#18527:将zlib的内部副本升级到1.2.8。
  • 问题#19274:向PyZipFile.writepy添加一个filterfunc参数。
  • 问题#8964:修复platform._sys_version以处理IronPython 2.6+。补丁马丁Matusiak。
  • 问题#19413:恢复重新查找模块的3.3之前的reload()语义。
  • 问题#18958:在传递以UTF-8 BOM开头的字符串时改进json.load的错误消息。
  • 问题#19307:改进json.load(s)的错误消息,同时传递错误类型的对象。
  • 问题#16038:CVE-2013-1752:ftplib:通过限制对readline()的调用来限制读取的数据量。由MichałJastrzębski和Giampaolo Rodola提供的原始补丁。
  • 问题#17087:改进了正则表达式匹配对象的repr。

Tests

  • 问题#19664:test_userdict的repr测试不再依赖于dict元素的顺序。
  • 问题#19440:通过删除不必要的__future__导入,从test_main转换为unittest.main并将_testcapi模块测试作为unittest TestCase方法的子测试运行来清理test_capi。
  • 问题#19378:主要dis模块测试现在运行stdout重定向传递显式文件参数
  • 问题#19378:从bytecode_helper中删除了不实际有用的assertInstructionMatches和assertBytecodeExactlyMatches帮助程序
  • 问题#18702:所有跳过的测试现在报告为已跳过。
  • 问题#19439:解释器嵌入测试现在在Windows上执行(Patch by Zachary Ware)
  • 问题#19085:添加了所有tkinter小部件选项的基本测试。
  • 问题#19384:修复root用户的test_py_compile,由Claudiu Popa修补。

Documentation

  • 问题#18326:澄清list.sort的参数是仅限关键字的。此外,尝试减少词汇表中的混淆,不要说有不同的“类型”的参数和参数。

Build

  • 问题#19358:“make clinic”现在在所有CPython源文件上运行Argument Clinic预处理器。
  • 在Windows上将SQLite更新为3.8.1,xz到5.0.5,以及将Tcl / Tk更新为8.6.1。
  • 问题#16632:在Windows上启用DEP和ASLR。
  • 问题#17791:从PC / pyconfig.h中删除PREFIX和EXEC_PREFIX定义
  • 添加VS 2010 nmake清理问题的解决方法。VS 2010没有为nmake.exe正确设置PATH。
  • 问题#19550:实施PEP 453(ensurepip)的Windows安装程序更改。
  • 问题#19520:修复32位Windows上_sha3模块中的编译器警告。
  • 问题#19356:避免使用名为“_self”的C变量,它在某些C编译器中是保留字。
  • 问题#15792:在Win64上更正构建选项。Jeremy Kloth的补丁。
  • 问题#19373:将上游更改应用于Tk 8.5.15修复OS X安装程序生成的OS X 10.9屏幕刷新问题。
  • 问题#19649:在OS X上,现在所有配置的bin目录中都安装了相同的文件名:非框架vs框架和单一arch与通用版本。pythonx.y-32现在总是安装为64位/ 32位通用版本。已过时和未记录的pythonw *符号链接不再安装在任何地方。
  • 问题#19553:PEP 453 - “make install”和“make altinstall”现在使用新的ensurepip模块提供的绑定pip安装或升级pip。新的配置选项-with-ensurepip [= upgrade | install | no]可用于覆盖缺省的ensurepip“-upgrade”选项。该选项也可以通过“make [alt] install ENSUREPIP = [upgrade | install | no]”来设置。
  • 问题#19551:PEP 453 - OS X安装程序现在默认安装pip。
  • 更新OS X安装程序的第三方库:xz 5.0.3 - > 5.0.5,SQLite 3.7.13 - > 3.8.1
  • 问题#15663:恢复OS X安装程序内建对3.4.0b1的Tcl / Tk支持。一些第三方项目,如Matplotlib和PIL / Pillow,依赖于能够在/库/框架中使用Tcl和Tk框架构建。

Tools/Demos

  • 问题#19730:Argument Clinic现在支持所有现有的PyArg“格式单位”作为旧版转换器,以及两个新功能:“自转换器”和“版本”指令。
  • 问题#19552:pyvenv现在bootstraps pip到虚拟环境默认情况下(pass -without-pip请求旧的行为)
  • 问题#19390:参数诊所不再接受格式不正确的Python和CID。

Python 3.4.0 Alpha 4

发布日期:2013-10-20

Core and Builtins

  • 问题#19301:提供明确标记为全局的类和函数全局属性。
  • 问题#19279:UTF-7解码器不再产生非法字符串。
  • 问题#16612:添加“Argument Clinic”,一个用于生成参数解析代码的C文件的编译时预处理器。(见PEP 436)
  • 问题#18810:在importlib.machinery.FileFinder中移动stat调用,因此代码是乐观的,如果某个目录的名称与正在搜索的可能的程序包完全一样,那么它实际上是一个目录。
  • 问题#18416:importlib.machinery.PathFinder现在将''作为cwd和importlib.machinery.FileFinder处理,不再是特殊情况''到'。'。这导致从cwd导入的模块现在拥有__file__的绝对文件路径(这不会影响CLI上的路径指定的模块,但它会影响-m / runpy)。它还允许FileFinder通过不具有边缘情况更一致。
  • 问题#4555:所有导出的C符号现在带有“Py”或“_Py”前缀。
  • 问题#19219:加快marshal.loads(),并使pyc文件略小(5%至10%)更小。
  • 问题#19221:将Unicode数据库升级到版本6.3.0。
  • 问题#16742:C回调PyOS_ReadlineFunctionPointer的结果现在必须是由PyMem_RawMalloc()或PyMem_RawRealloc()分配的字符串(如果发生错误,则为NULL),而不是由PyMem_Malloc或PyMem_Realloc()。
  • 问题#19199:删除PyThreadState.tick_counter字段
  • 修复_PyErr_OCCURRED()的宏扩展,并确保至少在一个位置使用它,以避免回归。
  • 问题#19087:改进bytearray分配为了允许在前面便宜地弹出数据(切片删除)。
  • 问题#19014:现在允许在零长度视图上使用memoryview.cast()。
  • 问题#18690:memoryview现在自动注册容器.abc.Sequence
  • 问题#19078:memoryview现在正确支持反转内置函数(由Claudiu Popa修补)

Library

  • 问题#17457:单元测试测试发现现在可与命名空间包一起使用。补丁由Claudiu波帕。
  • 问题#18235:修复AIX下的sysconfig变量LDSHARED和BLDSHARED。补丁由David Edelsohn。
  • 问题#18606:添加新的“统计”模块(PEP 450)。供稿人:Steven D'Aprano。
  • 问题#12866:audioop模块现在支持24位采样。
  • 问题#19254:提供pbkdf2_hmac的优化Python实现。
  • 问题#19201,问题#19222问题#19223:在打开文件中将“x”模式(独占创建)添加到bz2,gzip和lzma模块。补丁由Tim Heaney和Vajrasky Kok。
  • 修复_sre中的引用计数泄漏。
  • 问题#19262:首次签入“asyncio”包(a.k.a.郁金香PEP 3156)。还没有文档,并且PEP稍微过时的代码。此模块在Python 3.4中将具有临时状态。
  • 问题#19276:修复了64位大端平台上的波形模块。
  • 问题#19266:将3.4版本的contextlib.ignore上下文管理器重命名为contextlib.suppress,以便与现有描述的操作在语言和标准库文档(零比利时的补丁)。
  • 问题#18891:通过添加新类EmailMessage,MIMEPart和ContentManager完成了新的电子邮件包(临时)API添加。
  • 问题#18281:从tarfile中删除未使用的统计常数。
  • 问题#18999:多处理现在支持使用与模块相同的API的“上下文”,但绑定到指定的开始方法。
  • 问题#18468:re.split,re.findall和re.sub函数以及match对象的group()和groups()方法现在总是返回一个字符串或一个字节对象。
  • 问题#18725:textwrap模块现在支持截断多行文本。
  • 问题#18776:atexit回调现在在引发异常时显示它们的完全追踪。
  • 问题#17827:添加codecs.encodecodecs.decode缺少的文档。
  • 问题#19218:将容器.abc重命名为_collections_abc,以加速解释器启动。
  • 问题#18582:将'pbkdf2_hmac'添加到hashlib模块。它使用HMAC作为伪随机函数实现基于PKCS#5基于密码的密钥导出函数。
  • 问题#19131:aifc模块现在可以正确读取和写入压缩流的sampwidth。
  • 问题#19209:从os模块中删除copyreg的导入,以加速解释器启动。stat_result和statvfs_result现在硬编码为驻留在os模块中。
  • 问题#19205:不要在站点和sysconfig模块中导入“re”模块以加速解释器启动。
  • 问题#9548:添加由_io模块而不是完整区域设置模块导入的最小“_bootlocale”模块。
  • 问题#18764:删除PDB'p'命令的'print'别名,以使其不再影响打印功能。
  • 问题#19158:BoundedSemaphore中罕见的种族可能允许.release()太频繁。
  • 问题#15805:添加contextlib.redirect_stdout()。
  • 问题#18716:弃用格式化程序模块。
  • 问题#10712:2to3有一个新的“asserts”修复软件,取代了过时的单元测试方法名称。failUnlessEqual - > assertEqual)。
  • 问题#18037:2to3现在在原生字符串中转义'\u''\U'
  • 问题#17839:base64.decodebytes和base64.encodebytes现在接受导出一个1维字节数组的任何对象(这意味着对于base64_codec也是一样)
  • 问题#19132:pprint模块现在支持压缩模式。
  • 问题#19137:pprint模块现在可以正确地格式化set和frozenset子类的实例。
  • 问题#10042:functools.total_ordering现在正确处理由底层比较函数返回的NotImplemented(Katie Miller的Patch)
  • 问题#19092:contextlib.ExitStack现在从内部上下文管理器的__exit__回调中正确地重写异常(Patch by HrvojeNikšić)
  • 问题#12641:避免将“-mno-cygwin”传递给mingw32编译器,除非必要。补丁由奥斯卡本杰明。
  • 问题#5845:在site.py中,只有在尚未读取历史记录时才从〜/ .python_history加载读取历史记录。这避免了在关闭时对历史文件的双重写入。
  • 在分配后正确初始化SSL对象的所有字段。
  • 问题#19095:SSLSocket.getpeercert()现在引发ValueError当SSL握手没有完成。
  • 问题#4366:在使用-enable-shared时修复所有平台上的构建扩展。
  • 问题#19030:修复inspect.getmembersinspect.classify_class_attrs以尝试激活描述器,然后再回到__dict__搜索故障描述器。inspect.classify_class_attrs不再返回其归类类为无的属性。

C API

  • 问题#1772673char*参数的类型现在改为const char * t3 >。
  • 问题#16129:添加了一个Py_SetStandardStreamEncoding预初始化API,允许嵌入像Blender这样的应用程序强制标准IO流的特定编码和错误处理程序(由Bastien Montagne )

Tests

Documentation

Build

  • 问题#19130:正确的PCbuild / readme.txt,Python 3.3和3.4需要VS 2010。

  • 问题#15663:更新OS X 10.6+安装程序以使用Tcl / Tk 8.5.15。

  • 问题#14499:修复了OS X通用版本支持的几个问题:
    1. 扩展模块构建的ppc arch检测用Xcode 5打破
    2. 配置中的ppc arch检测在OS X 10.4上不起作用
    3. -sysroot和-arch标志不必要的重复
    4. 没有明显的方法来配置intel-32唯一的构建。
  • 问题#19019:将OS X安装程序生成脚本更改为对特殊构建选项使用CFLAGS而不是OPT。通过设置OPT,某些特定于编译器的选项(如-fwrapv)被覆盖,因此不被使用,这在使用clang构建时可能导致破译。

Python 3.4.0 Alpha 3

发布日期:2013-09-29

Core and Builtins

  • 问题#18818:PYTHONIOENCODING的“encodingname”部分现在是可选的。
  • 问题#19098:当递归限制设置为荒谬的高时,防止编译器溢出。

Library

  • 问题#18929inspect.classify_class_attrs()现在可以正确地查找位于元类中的dir()返回的类属性。
  • 问题#18950:修正sunau模块中的其他错误。Au_read.readframes()现在更新当前文件位置,并从多通道流读取正确的帧数。Au_write.writeframesraw()现在可以正确更新当前文件位置。Au_read.getnframes()现在返回一个整数(如Python 2)。Au_read和Au_write现在可以正确地使用文件对象,如果开始文件位置不是零。
  • 问题#18594:由于过度限制类型检查,容器.Counter()的快速路径从未被采用。
  • 问题#19053:具有非零参数的ZipExtFile.read1()不再返回空字节,直到数据结束。
  • logging:添加对Unix域套接字到SocketHandler和DatagramHandler的支持。
  • 问题#18996:TestCase.assertEqual()现在更聪明地缩短错误报告中的不同字符串。
  • 问题#19034:repr()for tkinter.Tcl_Obj现在暴露字符串reperesentation。
  • 问题#18978urllib.request.Request现在允许在类上指示方法,并且不再在__init__中将其设置为无。
  • 问题#18626:inspect模块现在提供了一个基本的命令行自检界面(由Claudiu Popa提供的初始补丁)
  • 问题#3015:修复了wantobject = False的tkinter。任何Tcl命令调用返回空字符串。
  • 问题#19037:邮箱模块现在在将其移动到位之前对maildir文件进行所有更改,以避免可能正在访问maildir目录的其他程序的竞争条件。
  • 问题#14984:在POSIX系统上,当没有文件名参数(因此正在读取用户的$ HOME / .netrc文件)调用netrc时,它现在强制执行与典型ftp客户端相同的安全规则: .netrc文件必须由拥有该进程的用户拥有,且不得由任何其他用户读取。
  • 问题#18873:tokenize模块现在仅在注释行中检测Python源代码编码。
  • 问题#17764:启用http.server以绑定到用户指定的网络接口。由Malte Swart贡献的补丁。
  • 问题#18937:向unittest.TestCase添加assertLogs()上下文管理器,以确保代码块使用日志记录模块发出消息。
  • 问题#17324:修正http.server在尾部'/'的请求处理大小写。由Vajrasky Kok贡献的补丁。
  • 问题#19018:heapq.merge()函数不再抑制基础iterables中的IndexError。
  • 问题#18784:如果已在libuuid中找到所有必需的函数,uuid模块将不再尝试通过ctypes.CDLL加载libc。补丁由Evgeny Sologubov。
  • PYTHONFAULTHANDLER环境变量现在仅在变量非空时启用faulthandler模​​块。与其他变量(例如 PYTHONDONTWRITEBYTECODE)相同的行为。
  • 问题#1565525:新功能traceback.clear_frames将清除traceback对象引用的所有堆栈帧的局部变量。

Tests

  • 问题#18952:在将test.support转换为包时引入的支持数据下载中修复回归。回忆注意到Zachary Ware。

IDLE

  • 问题#18873:IDLE现在只在注释行中检测Python源代码编码。
  • 问题#18988:当某个字词已经自动完成时,“Tab”键现在可以使用。

Documentation

  • 问题#17003:使用常规做法统一io模块中的大小参数名称。

Build

  • 问题#18596:通过在小对象分配器中适当标记已知的错误警报,支持在clang和GCC的最新版本中使用地址合理性检查。补丁由Dhiru Kholia贡献。

Tools/Demos

  • 问题#18873:2to3和findnocoding.py脚本现在仅在注释行中检测Python源代码编码。

Python 3.4.0 Alpha 2

发布日期:2013-09-09

Core and Builtins

  • 问题#18942:sys._debugmallocstats()输出在Windows上损坏。
  • 问题#18571:PEP 446的实现:文件描述器和文件句柄现在创建为不可继承;添加函数os.get / set_inheritable(),os.get / set_handle_inheritable()和socket.socket.get / set_inheritable()。
  • 问题#11619:解析器和导入机制不再在Windows上编码Unicode文件名。
  • 问题#18808:当子解释器关闭时,非守护线程现在会自动加入(以前转储一个致命错误)。
  • 在没有getcwd()的系统上删除对编译的支持。
  • 问题#18774:删除GNU PTH线程代码和thread_pth.h的最后一个位。
  • 问题#18771:添加优化以设置对象查找,以降低哈希冲突的成本。核心思想是检查每个被检索的缓存行的第二个键/散列对。
  • 问题#16105:当信号处理程序无法写入注册到signal.set_wakeup_fd()的文件描述器时,报告异常而不是忽略错误。
  • 问题#18722:删除在C代码中使用“register”关键字。
  • 问题#18667:将缺少的“HAVE_FCHOWNAT”符号添加到posix._have_functions。
  • 问题#16499:为隔离模式添加命令行选项。
  • 问题#15301:在modules / posixmodule.c中解析内置函数的fd,uid和gid参数现在更加健壮。
  • 问题#18368:当realloc()失败时,PyOS_StdioReadline()不再泄漏内存。
  • 问题#17934:为框架对象添加一个clear()方法,以帮助清理昂贵的细节(局部变量)和中断引用循环。
  • 问题#18780:%格式化代码%d,%i和%u现在将int子类视为int(显示int子类的值而不是str(int子类))。

Library

  • 问题#18808:Thread.join()现在在返回之前等待底层线程状态被销毁。这防止了一些非守护线程仍在运行时Py_EndInterpreter()中不可预测的中止。
  • 问题#18458:防止使用较新版本的libedit崩溃。其readline仿真已从基于0的索引更改为基于1的类似gnu readline。
  • 问题#18852:处理site.py中新的阅读行激活代码中readline.__doc__None
  • 问题#18672:在_sre模块中调试输出中的Py_ssize_t的固定格式说明符。
  • 问题#18830:inspect.getclasstree()不再产生重复条目,即使输入列表包含重复项。
  • 问题#18878:sunau.open现在支持上下文管理协议。基于Claudiu Popa和R. David Murray的补丁。
  • 问题#18909:在Windows 64位上修复_tkinter.tkapp.interpaddr(),不要将64位指针转换为长(32位)。
  • 问题#18876:FileIO.mode属性现在可以更好地反映打开文件的实际模式。Piece by Erik Bray。
  • 问题#16853:添加新的选择器模块。
  • 问题#18882:添加threading.main_thread()函数。
  • 问题#18901:sunau getparams方法现在返回一个namedtuple而不是一个简单的元组。补丁由Claudiu波帕。
  • 问题#17487:波getparams方法的结果现在可再次pickleable。补丁由Claudiu波帕。
  • 问题#18756:os.urandom()现在使用一个延迟打开的持久性文件描述器,以避免在从多个线程并行运行时使用许多文件描述器。
  • 问题#18418:在fork()之后,重新启动所有线程状态,而不仅仅是活动状态。补丁由杰西Jiryu戴维斯。
  • 问题#17974:将unittest从使用getopt切换到使用argparse。
  • 问题#11798:TestSuite现在在执行后删除对自己的测试的引用。
  • 问题#16611:http.cookie现在可以正确解析“secure”和“httponly”cookie标记。
  • 问题#11973:修正kevent中的问题。flags和fflags字段现在可以正确地处理为unsigned。
  • 问题#18807pyvenv现在使用-copies参数,允许副本而不是符号链接,即使符号链接可用和默认。
  • 问题#18538python -m dis现在使用argparse进行参数处理。由MicheleOrrù修补。
  • 问题#18394:关闭cgi.FieldStorage的可选文件。
  • 问题#17702:出现错误时,os.environb现在在使用原始键升高新的KeyError时会禁止异常上下文。
  • 问题#16809:修复了与Tcl / Tk 8.6的一些tkinter不兼容。
  • 问题#16809:Tkinter的splitlist()和split()方法现在接受Tcl_Obj参数。
  • 问题#18324:set_payload现在可以正确处理二进制输入。这也取代了先前对#14360,#1717和#16564的修复。
  • 问题#18794:向select.devpoll对象添加fileno()方法和closed属性。
  • 问题#17119:在tkinter模块中处理大字符串和元组时,固定的整数溢出。
  • 问题#18747:在fork后重新生成OpenSSL的伪随机数生成器。pthread_atfork()父处理程序用于使用pid,时间和一些堆栈数据为PRNG种子。
  • 问题#8865:同时调用select.poll.poll()现在引发一个RuntimeError异常。补丁由Christian Schubert。
  • 问题#18777:ssl模块现在使用OpenSSL 1.0.0+的新CRYPTO_THREADID API,而不是过时的CRYPTO id回调函数。
  • 问题#18768:更正RAND_edg()的文档字符串。由Vajrasky Kok修补。
  • 问题#18178:在BSD上修复ctypes。dlmalloc.c被编译两次,打破malloc弱符号。
  • 问题#18709:修复CVE-2013-4238。SSL模块现在正确处理subjectAltName内的NULL字节。以前,模块使用OpenSSL的GENERAL_NAME_print()函数来获取rfc822Name(电子邮件),dNSName(DNS)和uniformResourceIdentifier
  • 问题#18701:删除对旧CPython版本的支持(
  • 问题#18756:当失败是由于/ dev / urandom不存在时(例如,耗尽文件描述器限制),改进os.urandom()中的错误报告。
  • 问题#18673:将O_TMPFILE添加到os模块。O_TMPFILE需要Linux内核3.11或更高版本。它只定义在具有3.11 uapi标头的系统上。
  • 问题#18532:按照hashlib的文档所述,将内置哈希算法的名称更改为小写名称。
  • 问题#8713:添加新的spwan和forkserver启动方法,以及新函数get_all_start_methods,get_start_method和set_start_method,以进行多处理。
  • 问题#18405:改善crypt.mksalt()的熵。
  • 问题#12015:tempfile模块现在使用8个随机字符的后缀,而不是6,以减少文件名冲突的风险。当从用于生成随机字符的字符集中删除大写字母时,熵减少。
  • 问题#18585:添加textwrap.shorten()以折叠和截断一段文本到给定长度。
  • 问题#18598:当缺少关键参数时,调整importlib.import_module()的异常消息以包含模块名称。
  • 问题#19151:修复docstring并使用_get_supported_file_loaders()来反映2元组。
  • 问题#19152:添加ExtensionFileLoader.get_filename()。
  • 问题#18676:在queue.py put和get docstrings和ValueError消息中将'positive'更改为'non-negative'。补丁由中岳罗
  • 修复在tkinter中的扩展类型的引用计数问题。
  • 问题#8112:xlmrpc.server的DocXMLRPCServer服务器不再引发错误,如果方法有注解;它现在正确显示注释。
  • 问题#18600:向email.message.Message.as_string添加了策略参数,为Message添加了as_bytes和__bytes__方法。
  • 问题#18671:当日志记录异常发生时输出更多信息。
  • 问题#18621:防止网站模块的修补内置程序保存太多引用太久。
  • 问题#4885:向mmap对象添加weakref支持。补丁由瓦莱丽·兰伯特。
  • 问题#8860:在timedelta构造函数中固定取整。
  • 问题#18849:修复了Windows特定的临时文件错误,其中与现有目录的冲突导致mkstemp和相关的API失败,而不是重试。报告和修复由Vlad Shcherbina。
  • 问题#18920:argparse的版本操作(-v,-version)的默认目标也已更改为stdout,以匹配Python可执行文件。

Tests

  • 问题#18623:将_SuppressCoreFiles上下文管理器导出为test.support。补丁由瓦莱丽·兰伯特。
  • 问题#12037:修复桌面Windows的test_email。
  • 问题#15507:如果测试运行器在进程继承了SIGINT的忽略设置的环境中运行,test_subprocess的test_send_signal可能会失败。将SIGINT处理程序还原到期望的KeyboardInterrupt,在该测试期间提升一个。
  • 问题#16799:在regrtest的参数解析中从getopt切换到argparse样式。添加了更多的测试regrtest的参数解析。
  • 问题#18792:尽可能使用“127.0.0.1”或“:: 1”而不是“localhost”,因为“localhost”在最近的Windows版本下通过DNS查找。

IDLE

  • 问题#18489:为SearchEngine添加测试。原始补丁由菲尔韦伯斯特。

Documentation

  • 问题#18743:修复对不存在的“StringIO”模块的引用。
  • 问题#18783:在docstrings,错误消息和注释中删除了Python long类型的现有提示。

Build

  • 问题#1584:在构建_tkinter时,提供配置选项以覆盖Tcl和Tk的默认搜索路径。
  • 问题#15663:Tcl / Tk 8.5.14现在包含在OS X 10.6+ 64- / 32位安装程序中。不再需要安装第三方版本的Tcl / Tk 8.5来解决在OS X 10.6和更高版本中提供的Apple提供的Tcl / Tk 8.5中的问题。

Tools/Demos

  • 问题#18922:现在Lib / smtpd.py和Tools / i18n / msgfmt.py脚本将其版本字符串写入stdout,而不是sderr。

Python 3.4.0 Alpha 1

发布日期:2013-08-03

Core and Builtins

  • 问题#16741:在int()中修复错误报告。
  • 问题#17899:修复稀有文件描述器在os.listdir()中泄漏。
  • 问题#10241:在解释器关机时清除扩展模块dict副本。贴片Neil Schemenauer,最小修改。
  • 问题#9035:ismount现在可识别安装在Windows驱动器根目录下的卷。由Istsimoto的原始补丁。
  • 问题#18214:改进Python模块的最终化,以避免在大多数情况下将全局变量设置为无。
  • 问题#18112:PEP 442实施(安全对象最终化)。
  • 问题#18552:检查obj2ast_object()中PyArena_AddPyObject()的返回值。
  • 问题#18560:修复sum()中的潜在空指针解引用。
  • 问题#18520:添加一个新的PyStructSequence_InitType2()函数,与PyStructSequence_InitType()相同,只是它有一个返回值(成功时为0,错误为-1)。
  • 问题#15905:如果操作系统不服从MAXPATHLEN,则修复sys.argv [0],prefix和exec_prefix的处理中的理论缓冲区溢出。
  • 问题#18408:修复代码处理错误中的许多各种错误,尤其是内存分配失败(MemoryError)。
  • 问题#18344:修复_bufferedreader_read_all()中的潜在反馈泄漏。
  • Issue #18342: Use the repr of a module name when an import fails when using from ... import ....
  • 问题#17872:当输入流返回比请求的字节数更多时,在marshal.load()中修复segfault。
  • 问题#18338python - 版本现在将版本字符串打印到stdout,而不是stderr。补丁由Berker Peksag和迈克尔·狄更斯。
  • 问题#18426:当PyModule_GetDef()返回错误时,在C扩展导入中修复NULL指针解引用。
  • 问题#17206:在Windows上,将堆栈大小从2 MB增加到4.2 MB,以修复marshal模块中的堆栈溢出(修复test_marshal中的崩溃)。由Jeremy Kloth编写的补丁。
  • 问题#3329:实施PEP 445:添加新的API以自定义Python内存分配器。
  • 问题#18328:在PyThreadState_Delete *()函数中重新排序ops。现在tstate首先从TLS中删除,然后释放。
  • 问题#13483:在Windows上在obmalloc中使用VirtualAlloc。
  • 问题#18184:当%c格式的参数超出范围时,PyUnicode_FromFormat()和PyUnicode_FromFormatV()现在引发OverflowError。
  • 问题#18111:min()和max()函数现在支持要返回的默认参数,而不是在空序列上引发ValueError。(由Julian Berman提供)
  • 问题#18137:在float .__格式__()和复杂.__格式__()中检测整数溢出。
  • 问题#18183:在具有大的unicode代码点的字符串上修复各种unicode操作。
  • 问题#18180:修复_PyImport_GetDynLoadWindows()中的ref泄漏。
  • 问题#18038:在使用非法编码的编译源期间引发的SyntaxError现在总是包含编码名称。
  • 问题#17931:解决Windows和进程句柄之间的混淆。
  • 当字节码文件中的幻数或大小值被截断时,调整异常消息。
  • 问题#17932:修复了在64位迭代器中的整数溢出问题:将seqiterobject.it_index的C类型从long更改为Py_ssize_t。
  • 问题#18065:不要将__path__设置为冻结软件包的软件包名称。
  • 问题#18088:重新加载模块时,无条件地重置模块上的所有相关属性。__name__,__loader__,__package__,__file__,__cached__)。
  • 问题#17937:在关机时尝试更多地收集循环垃圾。
  • 问题#12370:防止类别主体干扰__class__闭包。
  • 问题#17644:当在方括号中使用花括号时,修复str.format中的崩溃。
  • 问题#17237:修复m68k上ASCII解码器中的崩溃。
  • 问题#17927:如果已将对象复制到单元格中,即使单元格已清除,框架对象仍保持其参数。
  • 问题#1545463:在关机时,延迟编解码器模块的最终化,以使stderr保持可用。
  • 问题#7330:实现PyUnicode_FromFormat()函数的格式字符串的宽度和精度(例如:“%5.3s”),由Ysj Ray编写的原始补丁。
  • 问题#1545463:在参考周期中捕获的全局变量现在在关闭时进行垃圾回收。
  • 问题#17094:在fork()之后清除过时的线程状态。注意,这是一个潜在的破坏性变化,因为它可能释放一些系统资源,否则这些资源将永远存在。数据库连接保存在线程本地存储中)。
  • 问题#17408:当解释器关闭然后再次启动时,避免使用copyreg模块的过时实例。
  • 问题#5845:默认情况下,在交互式解释器中启用制表符完成,感谢一个新的sys .__ interactivehook__。
  • 问题#17115,17116:模块初始化现在包括将__package__和__loader__属性设置为无。
  • 问题#17853:确保影子自由变量的类的局部变量总是胜过闭包。
  • 问题#17863:在交互式控制台中,如果无法从stdin获取编码,请不要永远循环。
  • 问题#17867:如果在__builtins__中找不到__import__,则引发ImportError。
  • 问题#18698:确保importlib.reload()将模块从sys.modules中返回。
  • 问题#17857:使用3.5版本的sqlite3防止编译失败,例如Centos 5和Mac OS X 10.4。
  • 问题#17413:sys.settrace回调被传递一个字符串而不是一个异常实例为arg tuple的'value'元素,如果异常源于C代码;现在一个例外总是提供。
  • 问题#17782:修复struct timespec的“tv_nsec”成员不是C的平台上的未定义行为长。
  • 问题#17722:查找__round__时,解决描述器。
  • 问题#16061:加快str.replace()以替换1个字符的字符串。
  • 问题#17715:修复__trunc__方法中引发异常的分段错误。
  • 问题#17643:将__callback__属性添加到weakref.ref。
  • 问题#16447:修复类上设置__name__时的潜在分段错误。
  • 问题#17669:修复涉及使用yield from完成生成器的崩溃。
  • 问题#14439:Python现在会在启动时打印关于runpy故障的追溯。
  • 问题#17469:在valgrind上运行时,修复_Py_GetAllocatedBlocks()和sys.getallocatedblocks()。
  • 问题#17619:在Windows上正确输入()检查Ctrl-C。
  • 问题#17357:添加在importlib转换期间丢失的-v / -vv的缺少冗长消息。
  • 问题#17610:不要依赖C qsort()函数的非标准行为。
  • 问题#17323:调试版本打印的“[X引用,Y块]”已默认禁用。可以使用-X showrefcount选项重新启用。
  • 问题#17328:修正dict.setdefault中可能的refleak。
  • 问题#17275:在BufferedWriter和BufferedRandom的C版本的init错误消息中更正的类名。
  • 问题#7963:修正了在无参数调用对象时发出的误导性错误消息。
  • 问题#8745:在Windows上小速加快zipimport。补丁由Catalin Iacob。
  • 问题#5308:在编组太大的对象(大小> = 2 ** 31的序列)时引发ValueError,而不是生成非法的元数据。
  • 问题#12983:带有无效\x的字节字面值现在引发一个SyntaxError和包括行号的完整追溯。
  • 问题#16967:在函数定义中,计算位置默认为仅限关键字默认值。
  • 问题#17173:删除使用与区域设置相关的C函数(isalpha()等)在解释器。
  • 问题#17137:调整Unicode字符串大小时,内部宽字符串(wstr)格式现已清除。
  • 问题#17043:unicode内部解码器不再读取超过输入缓冲区的末尾。
  • 问题#17098:即使所有模块预先存在importlib的引导,它们也会设置__loader__。
  • 问题#16979:修复unicode-escape-decoding解码器中的错误处理错误。
  • 问题#16772:int构造函数的基本参数不再接受带有__int__方法的浮点数或其他非整数对象。带有__index__方法的对象现在被接受。
  • 问题#10156:在解释器的初始化阶段,unicode全局变量现在根据需要动态初始化。
  • 问题#16980:修复unicode-escape-decoding解码器中转义的非ASCII字节的处理。
  • 问题#16975:修复escape-decode字节解码器中的错误处理错误。
  • 问题#14850:现在charmap解码器将U + FFFE视为任何映射中的“未定义映射”,而不仅仅是字符串。
  • 问题#16613:向collections.Chainmap.new_child添加m参数,以允许明确指定新的子映射。
  • 问题#16730:importlib.machinery.FileFinder现在没有longers当试图填充其缓存时引发异常,并发现该目录不可读或已变成一个文件。由David Pritchard报告和诊断。
  • 问题#16906:修正阻止大多数静态字符串被清除的逻辑错误。
  • 问题#11461:修复增量UTF-16解码器。原始补丁由Amaury Forgeot d'Arc。
  • 问题#16856:修复一个分段错误,调用repr()在一个dict的密钥,其repr引发一个异常。
  • 问题#16367:在Windows上修复大于2 GB的文件的FileIO.readall()。
  • 问题#16761:只调用带有基本参数的int()引发TypeError。
  • 问题#16759:在检索REG_DWORD值时,支持Reg2Py中的完整DWORD(无符号长整型)范围。这修正了可能已经返回截断值的函数,如winreg.QueryValueEx。
  • 问题#14420:在传递REG_DWORD值时,支持Py2Reg中的完整DWORD(无符号长整型)范围。修复winreg.SetValueEx中的OverflowError。
  • 问题#11939:设置stat_result的st_dev属性以允许Windows利用其他平台使用的os.path.samefile / sameopenfile / samestat实现。
  • 问题#16772:int()构造函数的第二个参数(base)不再接受非整数值。与Python 2中的行为一致。
  • 问题#14470:根据PEP 11删除w9xpopen支持。
  • 问题#9856:通过在对象.__ format__中提高TypeError来替换弃用警告。由Florent Xicluna修补。
  • 问题#16597:在缓冲和文本IO中,如果调用flush()失败,请调用底层流上的close()。
  • 问题#16722:在bytes()构造函数中,尝试在__index__之前的参数上调用__bytes__。
  • 问题#16421:从一个共享对象加载多个模块现在可以正确处理(以前,从该文件加载的第一个模块默认返回)。Patch byVáclavŠmilauer。
  • 问题#16602:当弱引用的目标是长释放链的一部分时,对象可以通过其弱引用保持可达,即使其引用计数已降至零。
  • 问题#16495:从bytes_decode()中删除无关的NULL编码检查。
  • 问题#16619:创建NameConstant AST类以表示无,真和假字面值。因此,这些常量永远不会在运行时从内置程序加载。
  • 问题#16455:在FreeBSD和Solaris上,如果区域设置为C,则现在使用ASCII /代理转码编解码器(而不是区域设置编码)来解码命令行参数。此更改修复了与os.fsencode()和os.fsdecode()的不一致,因为这些操作系统宣布一个ASCII语言环境编码,但在实践中实际使用ISO-8859-1编码。
  • 问题#16562:优化字典相等测试。补丁由Serhiy Storchaka。
  • 问题#16588:在Python / thread_pthread中静默未使用的but-set警告
  • 问题#16592:stringlib_bytes_join没有引发分配失败时的MemoryError。
  • 问题#16546:修正:ast.YieldFrom参数现在是必需的。
  • 问题#16514:修复当sys.path [0]为无(实际上,任何非字符串或非字节类型)时导致回溯的回归。
  • 问题#16306:当传递给解释器的未知命令行参数时,修复多个错误消息。补丁由Hieu Nguyen。
  • 问题#16215:在str.replace()中修复潜在的双内存释放。补丁由Serhiy Storchaka。
  • 问题#16290:在complex()构造函数中不再接受__complex__特殊方法的float返回值。
  • 问题#16416:在Mac OS X上,操作系统数据现在总是编码/解码到/从UTF-8 / surrogateescape,而不是区域设置编码(如果没有区域设置环境变量set),以避免与已经使用UTF-8 / surrogateescape的os.fsencode()和os.fsdecode()函数不一致。
  • 问题#16453:修复死的weakref对象的等同性测试。
  • 问题#9535:修复已收到但尚未由Python处理的待处理信号在子进程中os.fork()后不保留。
  • 问题#14794:修复slice.indices以返回大值的正确结果,而不是提高OverflowError。
  • 问题#15001:在“del sys.modules ['__ main__']”上修复segfault。补丁由维克多·斯坦特。
  • 问题#8271:当与无效utf-8序列上的'replace'错误处理程序一起使用时,utf-8解码器现在输出正确数量的U + FFFD字符。补丁由Serhiy Storchaka,测试由Ezio Melotti。
  • 问题#5765:在编译器中应用硬递归限制,而不是吹堆栈和segfaulting。由安德烈·格里菲尼的初始补丁。
  • 问题#16402:切片范围时,修复__index__中的异常阴影。
  • 问题#16336:修复surrogatepass错误处理程序中的输入检查。补丁由Serhiy Storchaka。
  • 问题#8401:将int分配给bytearray切片(例如,b [3:4] = 5)现在引发一个错误。
  • 问题#7317:在异步发生时显示完整的追踪。补丁由Alon Horev与更新由Alexey Kachayev。
  • 问题#16309:使PYTHONPATH =“”行为与PYTHONPATH未设置相同。
  • 问题#10189:改进与全局和非局部语句相关的SyntaxErrors的错误报告。
  • 修复在内置类型上设置__qualname__的segfaults,并尝试在任何类型上删除它。
  • 问题#14625:重写UTF-32解码器。它现在是3x到4倍更快。由Serhiy Storchaka写的补丁。
  • Issue #16345: Fix an infinite loop when fromkeys on a dict subclass received a nonempty dict from the constructor.
  • 问题#16271:修复一个类的__dict__和类型中出现的__qualname__引起的奇怪错误。
  • 问题#12805:当分隔符为空时,使bytes.join和bytearray.join更快。补丁由Serhiy Storchaka。
  • 问题#6074:确保缓存的字节码文件始终可以由创建它们的用户更新,即使源文件是只读的。
  • 问题#15958:bytes.join和bytearray.join现在接受任意缓冲区对象。
  • 问题#14783:改进int()docstring并切换str(),range()和slice()的docstrings以使用多行签名。
  • 问题#16160:子类支持现在适用于types.SimpleNamespace。
  • 问题#16148:实现PEP 424,添加操作符.length_hint和PyObject_LengthHint。
  • 将Unicode数据(UCD)升级到6.2版。
  • 问题#15379:修正为charmap解码器传递非BMP字符作为整数(已经作为unicode字符串工作)。补丁由Serhiy Storchaka。
  • 问题#15144:通过使用Py_uintptr_t而不是size_t,将指针处理为整数值时,修复可能的整数溢出。补丁由Serhiy Storchaka。
  • 问题#15965:将AT_FDCWD显式转换为(int)。在Solaris 10(将​​AT_FDCWD定义为0xffd19553)上是必需的,在其他平台上无害。
  • 问题#15839:将super()中的系统错误转换为RuntimeErrors。
  • 问题#15448:缓冲IO现在在关闭时释放缓冲区,而不是在释放时释放缓冲区。
  • 问题#15846:修复在语法错误的代码上的异常处理程序中使用ast.parse()时发生的SystemError。
  • 问题#15897:zipimport.c不检查fseek()的返回值。补丁Felipe克鲁兹。
  • 问题#15801:确保传递给“%”格式的映射实际上是可下标的。
  • 问题#15111:当作为使用fromlist触发的模块的副作用引发时,__import__应传播ImportError。
  • 问题#15022:向types.SimpleNamespace添加pickle和比较支持。

Library

  • 问题#4331:添加functools.partialmethod(由Alon Horev提供的初始修补程序)
  • 问题#13461:在64位平台上修复TextIOWrapper.tell方法中的崩溃。补丁由Yogesh Chaudhari。
  • 问题#18681:在importlib.reload()中修正NameError(Weizhao Li注意到)。
  • 问题#14323:展开RGB-YIQ转换的系数中的位数,以使它们与FCC NTSC版本匹配。
  • 问题#17998:修正正则表达式引擎中的内部错误。
  • 问题#17557:修复os.getgroups()以使用OS X 10.8上的getgroups(2)的修改行为。原始补丁由Mateusz Lenik。
  • 问题#18608:避免保持对_io模块内的语言环境模块的强引用。
  • 问题#18619:修复从子解释器注册的atexit泄漏回调,并使其具有GC感知功能。
  • 问题#15699:readline模块现在使用PEP 3121样式的模块初始化,以便在关闭时回收已分配的资源(Python回调)。原始补丁由Robin Schreiber。
  • 问题#17616:wave.open现在支持上下文管理协议。
  • 问题#18599:修正_sha1.sha1()对象的名称属性。它现在返回'SHA1'而不是'SHA'。
  • 问题#13266:添加inspect.unwrap以轻松解开__wrapped__链(由Daniel Urban和Aaron Iles创建的初始补丁)
  • 问题#18561:如果名称为NULL,则跳过ctypes'_build_callargs()中的名称。
  • 问题#18559:在_pickle模块中修复NULL指针解引用错误
  • 问题#18556:检查ctype的U_set()中的PyUnicode_AsWideChar()的返回类型。
  • 问题#17818:aifc.getparams现在返回一个namedtuple。
  • 问题#18549:消除socket_ntohl()中的死代码,
  • 问题#18530:从posixpath.ismount中删除附加的stat调用。补丁由Alex Gaynor。
  • 问题#18514:在PyCData_FromBaseObj()中修复无法访问的Py_DECREF()
  • 问题#9177:现在调用read()或write()在关闭的SSL套接字上引发ValueError(而不是AttributeError)。补丁由Senko Rasic。
  • 问题#18513:修复cmath.rect w.r.t.的行为。在OS X 10.8 + gcc上签名的零。
  • 问题#18479:更改venv Activate.ps1以停用某个功能,并删除Deactivate.ps1。
  • 问题#18480:将缺少的调用添加到_elementtree扩展中的PyType_Ready。
  • 问题#17778:修复test_multiprocessing的测试发现。(Patch by Zachary Ware。)
  • 问题#18393:已删除专用模块_gestalt和专用函数platform._mac_ver_gestalt,platform._mac_ver_lookup和platform._bcd2str。这不影响平台模块的公共接口。
  • 问题#17482:functools.update_wrapper(和functools.wraps)现在正确设置__wrapped__属性,即使底层函数设置了__wrapped__属性。
  • 问题#18431:新的电子邮件标头解析器现在解码结构化标头中的RFC2047编码字。
  • 问题#18432:sched模块的队列方法不正确地返回了一个迭代器,而不是一个列表。
  • 问题#18044:新电子邮件标头解析器错误解析编码字,其中编码字符紧跟在CTE字符后面的'?'后面,导致解码失败。它们现在被正确解码。
  • 问题#18101:Tcl.split()现在处理嵌套在元组中的字符串,因为它与字节字符串一样。
  • 问题#18116:getpass在测试/ dev / tty时总是出错,因此总是回退到stdin,然后如果不能使用stdin,则会引发异常(如/ dev /空值)。它也泄露了一个打开的文件。所有这些问题现在都已修复。
  • 问题#17198:在dbm模块中修复NameError。补丁由Valentina Mukhamedzhanova。
  • 问题#18013:修复cgi.FieldStorage以解析W3C样本表单。
  • 问题#18020:将html.escape速度提高一个数量级。补丁由马特·布莱恩特。
  • 问题#18347:ElementTree的html序列化程序现在保留关闭标记的情况。
  • 问题#17261:确保多处理代理使用正确的地址。
  • 问题#18343:当函数被调用两次时,faulthandler.register()现在保留上一个信号处理程序,因此faulthandler.unregister()正确恢复原始信号处理程序。
  • 问题#17097:使多处理忽略EINTR。
  • 问题#18339:unpickler.memo dict中的否定ints键不会再在_pickle C扩展名中引起段错误。
  • 问题#18240:HMAC模块不再限制为字节,并且接受任何类似字节的对象,例如。内存视图。原始补丁由JonasBorgström。
  • 问题#18224:从创建的venv中删除pydoc脚本,因为它导致Windows上的问题,并且在python -m pydoc ...上没有添加任何值
  • 问题#18155:csv模块现在正确地处理使用在正则表达式中具有特殊含义的定界符字符的csv文件,而不是抛出异常。
  • 问题#14360:encode_quopri现在可以在构造MIMEApplication对象时成功地用作编码器。
  • 问题#11390:向doctest CLI添加-o和-f命令行选项以指定doctest选项(并将其转换为使用argparse)。
  • 问题#18135:ssl.SSLSocket.write()现在引发一个OverflowError如果输入字符串超过2千兆字节,并且ssl.SSLContext.load_cert_chain()引发一个ValueError如果密码长于2千兆字节。ssl模块不支持部分写入。
  • 问题#11016:将stat模块的C实现添加为_stat。
  • 问题#18248:在AIX上修复libffi build。
  • 问题#18259:在socketmodule.c中为AIX声明sethostname
  • 问题#18147:将诊断功能添加到ssl.SSLContext()。get_ca_list()列出所有加载的CA证书,cert_store_stats()返回加载的X.509证书,X.509 CA证书和CRL的数量。
  • 问题#18167:当\r\n出现在65535个字节的末尾,没有其他换行符时,cgi.FieldStorage不再无法处理multipart / form-data。
  • 问题#18076:介绍importlib.util.decode_source()。
  • 问题#18357:添加对于视频集差异的测试。补丁由Fraser Tweedale。
  • importlib.abc.SourceLoader.get_source()不再将SyntaxError或UnicodeDecodeError更改为ImportError。
  • 问题#18058,18057:使命名空间包装载器满足importlib.abc.InspectLoader ABC,允许命名空间包与runpy一起使用。
  • 问题#17177:imp模块处于待定弃用状态。
  • subprocess:当子流程exec遇到错误时,防止父管道fds可能的双重关闭。当stdin,stdout和stderr中的任何一个设置为DEVNULL时,防止/ dev / null fd的常规多关闭。
  • 问题#18194:在将imp中的等效函数记录为不推荐时,引入importlib.util.cache_from_source()和source_from_cache()。
  • 问题#17907:将imp.new_module()文档弃用,以支持types.ModuleType。
  • 问题#18192:介绍importlib.util.MAGIC_NUMBER,并将文档视为已弃用的imp.get_magic()。
  • 问题#18149:添加filecmp.clear_cache()以手动清除filecmp缓存。马克·莱维特补丁
  • 问题#18193:添加importlib.reload()。
  • 问题#18157:停止在pydoc中使用imp.load_module()。
  • 问题#16102:让uuid._netbios_getnode()在Python 3上再次工作。
  • 问题#17134:添加ssl.enum_cert_store()作为Windows的cert存储的接口。
  • 问题#18143:实施ssl.get_default_verify_paths()以调试cafile和capath的默认位置。
  • 问题#17314:将multiprocessing.forking移到importlib。
  • 问题#11959:SMTPServer和SMTPChannel现在采用可选映射,其使用避免影响全局状态。
  • 问题#18109:os.uname()现在解码来自语言环境编码的字段,socket.gethostname()现在从语言环境编码解码主机名,而不是在严格模式下使用UTF-8编码。
  • 问题#18089:实现importlib.abc.InspectLoader.load_module。
  • 问题#18088:介绍importlib.abc.Loader.init_module_attrs以设置模块属性。导致正在废弃的importlib.util.module_for_loader。
  • 问题#17403:urllib.parse.robotparser在添加到ruleline之前规范化网址。这有助于以保守的方式处理某些类型的无效网址。补丁由Mher Movsisyan贡献。
  • 问题#18070:无条件地设置importlib.util.module_for_loader()设置属性,以正确支持重新加载。
  • 添加importlib.util.module_to_load以返回上下文管理器以提供要加载的正确模块对象。
  • 问题#18025:当原始流的read()返回比请求的字节数更多时,修复io.BufferedIOBase.readinto()中的segfault。
  • 问题#18011:如原来的意图,base64.b32decode()现在引发一个binascii.Error,如果输入字符串中存在非b32字母字符,而不是TypeError。
  • 问题#18072:实现importlib.abc.InspectLoader.get_code()和importlib.abc.ExecutionLoader.get_code()。
  • 问题#8240:在SSL套接字上设置SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER标志。
  • 问题#17269:在MacOS X上使用端口None或“0”和标志AI_NUMERICSERV时,socket.getaddrinfo的解决方法。
  • 问题#16986:当内部XML编码不是UTF-8或US-ASCII时,ElementTree现在正确地处理字符串输入。
  • 问题#17996:套接字模块现在在BSD和OSX上公开AF_LINK常量。
  • 问题#17900:允许对递归OrderedDicts进行pickling。减少酸洗的尺寸和酸洗时间。
  • 问题#17914:添加os.cpu_count()。补丁由Yogesh Chaudhari,基于由Trent纳尔逊的初始补丁。
  • 问题#17812:固定的base64.b32encode()的二次复杂性。优化base64.b32encode()和base64.b32decode()(加速到3x)。
  • 问题#17980:使用具有许多通配符的证书(CVE-2013-2099)修复了可能滥用ssl.match_hostname()以拒绝服务。
  • 问题#15758:修复FileIO.readall(),使其不再具有O(n ** 2)复杂性。
  • Issue #14596: The struct.Struct() objects now use a more compact implementation.
  • 问题#17981:logging的SysLogHandler现在在捕获套接字OSErrors时关闭套接字。
  • 问题#17964:修复os.sysconf():C sysconf()函数的返回类型是long,而不是int。
  • 修复多处理模块中的拼写错误。
  • 问题#17754:使ctypes.util.find_library()独立于区域设置。
  • 问题#17968:修复os.listxattr()中的内存泄漏。
  • 问题#17606:固定支持XMLGenerator字符()和ignorableWhitespace()方法中的编码字节字符串。原始补丁Sebastian Ortiz Vasquez。
  • 问题#17732:如果虚拟环境处于活动状态,请忽略与安装路径相关的distutils.cfg选项。
  • 问题#17915:修复xml.sax与codecs.open()返回的文件对象的互操作性。
  • 问题#16601:在tarfile上重新启动迭代确实重新启动,而不是从停止的地方继续。补丁由Michael Birtwell。
  • 问题#17289:readline模块现在更适合使用外部模块或应用程序更改rl_completer_word_break_characters全局变量。初始补丁Bradley Froehle。
  • 问题#12181:select module:在OpenBSD 64位平台上修复struct kevent定义。补丁Federico Schwindt。
  • 问题#11816:dis模块的多项改进:get_instructions生成器,将输出重定向到文件,字节码和指令抽象的能力。补丁由Nick Coghlan,Ryan Kelly和Thomas Kluyver。
  • 问题#13831:当池任务引发异常时,在本地traceback中嵌入远程跟踪的字符串化。
  • 问题#15528:添加weakref.finalize以支持使用weakref回调的finalization。
  • 问题#14173:在解码器关闭期间读取信号处理程序时避免崩溃。
  • 问题#15902:在加载扩展模块时,修复imp.load_module()接受None作为文件。
  • 问题#13721:SSLSocket.getpeercert()和SSLSocket.do_handshake()现在引发一个OSError与ENOTCONN,而不是属性错误,当SSLSocket未连接。
  • 问题#14679:向html.parser添加__all__(仅包含HTMLParser)。
  • 问题#17802:在html.parser中修复UnboundLocalError。Thomas Barlow的初步测试。
  • 问题#17358:由imp.load_source()和load_compiled()加载的模块(和扩展名load_module())现在有更好的机会在重新加载时工作。
  • 问题#17804:新功能struct.iter_unpack允许流式结构拆分。
  • 问题#17830:当keyword.py用于更新关键字文件时,它现在保留原始文件的行尾。
  • 问题#17272:使urllib.request的Request.full_url成为描述器。修复分配给full_url的错误。补丁由Demian Brecht。
  • 问题#17353:Plistlib发出带有深层嵌套数据结构的空数据标签
  • 问题#11714:使用“with”语句确保Semaphore释放条件变量。原始补丁由Thomas Rachel。
  • 问题#16624subprocess.check_output现在接受input参数,允许子过程的stdin作为(字节)字符串提供。补丁由Zack Weinberg。
  • 问题#17795:使用Unix域套接字还原了SysLogHandler中向后不兼容的更改。
  • 问题#16694:添加操作符模块的纯Python实现。Patch by Zachary Ware。
  • 问题#11182:删除未使用和未记录的pydoc.Scanner类。马丁·莫里森的补丁。
  • 问题#17741:添加ElementTree.XMLPullParser,一个用于非阻塞应用程序的事件驱动解析器。
  • 问题#17555:修复ForkAwareThreadLock,使得后叉注册表的大小不随进程生成而呈指数增长。
  • 问题#17707:修复multiprocessing.Queue的get()方法中的回归,在该方法中,它没有阻塞短暂的超时。
  • 问题#17720:修正pickle.Unpickler的Python实现,以便在非列表对象上使用时正确处理APPENDS操作码。
  • 问题#17012:如果指定了空路径参数,shutil.which()不再返回到PATH环境变量。补丁由Serhiy Storchaka。
  • 问题#17710:修正pickle在bogus输入上引发SystemError。
  • 问题#17341:在有关无效组名称的错误消息中包含无效名称。
  • 问题#17702:os.environ现在引发KeyError与原始环境变量名称(UNIX上的str),而不是使用编码的名称(UNIX上的字节)。
  • 问题#16163:使基于importlib的pkgutil.iter_importers版本适用于子模块。由Berker Peksag提供的初始补丁。
  • 问题#16804:修复“网站”模块中的一个错误,导致运行“python -S -m site”错误地抛出异常。
  • 问题#15480:从marshal中删除已弃用和未使用的TYPE_INT64代码。由丹尼尔Riti初始补丁。
  • 问题#2118:SMTPException现在是OSError的子类。
  • 问题#17016:在re模块中去除可能的指针回绕和整数溢出。补丁by Nickolai Zeldovich。
  • 问题#16658:将缺少的返回添加到HTTPConnection.send()。补丁由Jeff Knupp。
  • 问题#9556:日志包现在允许指定TimedRotatingFileHandler旋转的时间。
  • 问题#14971:当一个函数具有与TestCase类字典中的名称不同的__name__时,单元测试测试发现不再困惑。
  • 问题#17487:wave getparams方法现在返回一个namedtuple而不是一个简单的元组。
  • 问题#17675:socket repr()提供本地和远程地址(如果有)。补丁由Giampaolo Rodola'
  • 问题#17093:使importlib.abc中的ABCs为其方法提供默认值或引发合理的异常,以使它们更适合于super()调用。
  • 问题#17566:使importlib.abc.Loader.module_repr()可选,而不是抽象方法;现在它引发NotImplementedError,以便默认被忽略。
  • 问题#17678:通过将对get_origin_req_host()的调用更改为origin_req_host,在http / cookiejar.py中删除使用已弃用的方法。
  • 问题#17666:修正读取带有额外字段的gzip文件。
  • 问题#16475:支持对象实例化,递归和实体化的字符串
  • 问题#17502:在返回迭代器的mock side_effect中处理DEFAULT值。
  • 问题#16795:在ast.arguments对象上,将vararg与varargannotation和kwarg和kwargannotation进行合并。将ast.Attribute的列偏移更改为属性名称。
  • 问题#17434:在未来导入之间出现字符串时适当引入SyntaxError。
  • 问题#17117:导入和@ importlib.util.set_loader现在设置__loader__当它的值为None或属性不存在。
  • 问题#17032:“全局”在“NameError:全局名称'x'未定义”错误消息已删除。补丁由Ram Rachum。
  • 问题#18080:在OS X上构建C扩展模块时,如果编译器被CC环境变量覆盖,则如果LDSHARED未被覆盖,请使用新编译器作为默认链接。这将恢复3.2.3中引入的Distutils行为,并在3.3.0中无意中删除。
  • 问题#18113:修复了curses.panel模块的set_userptr()方法中的引用计数泄漏。报告的石山。
  • 实现PEP 443“单调度通用功能”。
  • 实现PEP 435“向Python标准库添加枚举类型”。
  • 问题#15596:更快地处理unicode字符串。
  • 问题#17572:在将错误的指令传递给time.strptime()时避免链接异常。初始补丁Claudiu Popa。
  • 问题#17435:threading.Timer的__init__方法不再为args和kwargs参数使用可变默认值。
  • 问题#17526:修复了将无文件名的代码传递给inspect.findsource()时引发的IndexError。初始补丁由Tyler Doyle。
  • 问题#17540:通过dict将日志格式化配置添加了样式参数。
  • 问题#16692:ssl模块现在支持TLS 1.1和TLS 1.2。由MicheleOrrù初始补丁。
  • 问题#17025:multiprocessing:减少队列和SimpleQueue争用。
  • 问题#17536:添加到浏览器的浏览器列表:www-browser,x-www-browser,iceweasel,iceape。
  • 问题#17150:pprint现在使用行连续括起长字符串字面值。
  • 问题#17488:将subprocess.Popen bufsize参数默认值从无缓冲(0)更改为缓冲(-1),以匹配现有代码期望并匹配Python 2中的子进程模块的行为避免引入困难跟踪错误。
  • 问题#17521:在对fileConfig()的两次调用后更正了未启用记录器。
  • 问题#17508:在dictConfig()中更正了记录MemoryHandler配置,其中未首先配置目标处理程序。
  • 问题#17209:curses.window.get_wch()现在可以正确处理KeyboardInterrupt(CTRL + c)。
  • 问题#5713:smtplib通过关闭套接字发送邮件时会处理421(关闭连接)错误代码,并通过适用于接收到错误响应的命令的异常报告421错误代码。
  • 问题#16997:unittest.TestCase现在提供了一个subTest()上下文管理器,以便以简单的方式生成小型测试实例。
  • 问题#17485:如果数据属性被删除,还要删除请求内容长度头。(按照问题#16464)。
  • 问题#15927:当使用引用关闭解析时,CVS现在可以正确解析转义的换行符和运输。
  • 问题#17467:在unittest.mock中为mock_open添加readline和readlines支持。
  • 问题#13248:删除已弃用和未记录的difflib.isbjunk,isbpopular。
  • 问题#17192:将ctypes模块的libffi更新为v3.0.13。这特别解决了x86上的堆栈不对齐问题和一些更近的​​平台上的问题。
  • 问题#8862:当getkey被信号插入时修复curses清理。
  • 问题#17443:imaplib.IMAP4_stream正在子流程中使用默认的未缓冲的IO,但是imap代码假定缓冲的IO。在Python2这意外工作。IMAP4_stream现在明确使用缓冲IO。
  • 问题#17476:在无记录的pydoc'allmethods'中修复了相对于Python2的回归;它缺少类上的未绑定的方法。
  • 问题#17474:删除Request类的已弃用方法。
  • 问题#16709:unittest发现顺序不再具有特定的文件系统。补丁由Jeff Ramnani。
  • 使用HTTPS PyPI url进行上传,覆盖pypirc中的任何纯HTTP URL。
  • 问题#5024:sndhdr.whichhdr现在返回WAV文件的帧计数,而不是-1。
  • 问题#17460:删除HTTPConnection的strict参数,并删除3.2以后发出的DeprecationWarning。
  • 问题#16880:不要假定在imp模块中定义了_imp.load_dynamic()。
  • 问题#16389:在编译的正则表达式的缓存中修复了相对于Python 3.1的性能回归。
  • 将缺少FeedParser和BytesFeedParser添加到email.parser .__ all__。
  • 问题#17431:修正了在email.parser中缺少的BytesFeedParser导入。
  • 问题#12921:http.server的send_error使用explain参数发送更多信息作为响应。卡尔贡献的补丁。
  • 问题#17414:将timeit,repeat和default_timer添加到timeit .__ all__。
  • 问题#1285086:摆脱引用计数的黑客并加快urllib.parse.unquote()和urllib.parse.unquote_to_bytes()。
  • 问题#17099:有importlib.find_loader()引发当__loader__未设置时的ValueError,与当属性设置为None时发生的情况一致。
  • 在os模块中公开O_PATH常量(如果可用)。
  • 问题#17368:修正Python JSON解码器中的逐一错误,导致在指定object_pairs_hook时解码空对象字面值时失败。
  • 问题#17385:修复threading.Condition中的二次行为。FIFO队列现在使用deque而不是列表。
  • 问题#15806:添加contextlib.ignore()。这将创建一个上下文管理器来忽略指定的异常,替换“except SomeException:pass”成语。
  • 问题#14645:电子邮件生成器类现在使用指定的lineep产生输出。以前,如果prolog,epilog或主体用不同的lineep存储,则使用该lineep。此修订通过smtplib.send_message更正了RFC不合规问题。
  • 问题#17278:在同时调整列表大小时,修复heapq.heappush()和heapq.heappop()中的崩溃。
  • 问题#16962:在Linux上的子流程模块中使用getdents64而不是过时的getdents syscall。
  • 问题#16935:如果引入SkipTest,unittest现在将模块计数为跳过,而不是将其计为错误。Patch by Zachary Ware。
  • 问题#17018:如果os.waitpid()与EINTR失败,请使Process.join()重试。
  • 问题#17223:array模块:当将包含无效字符的数组(外部范围[U + 0000; U + 10ffff])转换为Unicode时,修复一个crasher:repr(array),str array.tounicode()。由Manuel Jacob写的补丁。
  • 问题#17197:profile / cProfile模块重构,因此run()和runctx()实用程序函数的代码在两个模块中不重复。
  • 问题#14720:sqlite3:正确转换datetime微秒。Patch by Lowe Thiderman。
  • 问题#15132:允许unittest.TestProgram的defaultTest参数的列表。补丁由Jyrki Pulliainen。
  • 问题#17225:JSON解码器现在计算从1开始的第一行中的列,如在其他行中。
  • 问题#6623:为ftplib.netrc添加了明确的DeprecationWarning,它已被弃用,并且长期未记录。
  • 问题#13700:当指定了authobject时,修复imaplib身份验证中的字节/字符串处理。
  • 问题#13153:当字符串参数包含非BMP字符时,Tkinter函数现在引用TclError而不是ValueError。
  • 问题#9669:在非贪婪重复中保护零宽度匹配上的无限循环。补丁由Matthew Barnett。
  • 问题#13169:正则表达式中的最大重复数已从65534增加到2147483647(在32位平台上)或4294967294(在64位上)。
  • 问题#17143:修复跟踪模块中缺少的导入。由Berker Peksag提供的初始补丁。
  • 问题#15220:email.feedparser的线分割算法现在更简单更快。
  • 问题#16743:在32位Windows上修复mmap溢出检查。
  • 问题#16996:webbrowser模块现在使用shutil.which()在可执行文件搜索路径上找到Web浏览器。
  • 问题#16800:当磁盘已满时,tempfile.gettempdir()不再留下临时文件。原始补丁Amir Szekely。
  • 问题#17192:导入libffi-3.0.12。
  • 问题#16564:在使用二进制数据时,在操作email.encoders.encode_7or8bit时修复了相对于Python2的回归。
  • 问题#17052:单元测试发现应使用self.testLoader。
  • 问题#4591:现在支持大于2 ** 31的Uid和gid值。
  • 问题#17141:random.vonmisesvariate()不再挂起大型kappa。
  • 问题#17149:修复random.vonmisesvariate以始终在[0,2 * math.pi]中返回结果。
  • 问题#1470548:XMLGenerator现在可以与二进制输出流一起使用。
  • 问题#6975:os.path.realpath()现在可以正确解析POSIX平台上的多个嵌套的符号链接。
  • 问题#13773:sqlite3.connect()获取一个新的uri参数,将文件名作为URI传递,允许传递自定义选项。
  • 问题#16564:在使用二进制数据时,在email.encoders.encode_noop的操作中修复了相对于Python2的回归。
  • 问题#10355:即使尚未翻转,SpooledTemporaryFile对象的模式,名称,编码和换行符属性现在也可以工作。过时方法xreadline(从来没有在Python 3中工作)已被删除。
  • 问题#16686:修复了audioop模块中的很多错误。修复avgpp(),maxpp()和ratecv()中的崩溃。修复了add(),bias()和ratecv()中的整数溢出。reverse(),lin2lin()和ratecv()不再丢失32位样本的精度。max()和rms()不再返回否定结果,并且各种其他函数现在可以与32位样本-0x80000000正常工作。
  • 问题#17073:修复sqlite3模块中的一些整数溢出。
  • 问题#16723:当连接自动关闭时,httplib.HTTPResponse不再标记为关闭。
  • 问题#15359:向插座模块添加CAN_BCM协议支持。补丁由Brian Thorne。
  • 问题#16948:修复电子邮件包中非latin1字符集的带引号的可打印正文编码。
  • 问题#16811:修复在临时电子邮件策略中没有值的标题的折叠。
  • 问题#17132:更新“yield from”语法更改的符号。
  • 问题#17076:复制xattrs更容忍缺少FS支持。补丁由Thomas Wouters。
  • 问题#17089:当内部XML编码不是UTF-8或US-ASCII时,Expat解析器现在正确地处理字符串输入。它现在还接受大于2 GiB的字节和字符串。
  • 问题#6083:修复PyArg_ParseTuple解析嵌套的突变序列时发生的多个分段错误。
  • 问题#5289:在Solaris上修复ctypes.util.find_library。
  • 问题#17106:当底层流或解码器产生非预期类型的​​数据时,修复io.TextIOWrapper中的分段错误。当io.TextIOWrapper用文本流初始化或使用字节到字节编解码器)。
  • 问题#17015:当它有一个spec,Mock对象现在检查它的声明匹配调用时,所以参数可以匹配位置或名称。
  • 问题#15633:当服务器发送的内容长度小于通告的Content-Length时,httplib.HTTPResponse现在标记为关闭。
  • 问题#12268:当其写入系统调用中断(EINTR)时,io模块文件对象写入方法不再提前中止。
  • 问题#6972:在提取恶意zip文件时,zipfile模块不再覆盖目标路径以外的文件。
  • 问题#4844:ZipFile现在引发BadZipFile时打开具有不完整的“中央目录结束”记录的ZIP文件。原始补丁Guilherme Polo和艾伦McIntyre。
  • 问题#17071:声明.bind()现在在关键字参数之一命名为self时起作用。
  • 问题#12004:在写入无效的Python文件时修复PyZipFile中的内部错误。本·摩根的补丁。
  • 让py_compile尽可能地使用importlib以避免代码重复。现在代码引发FileExistsError如果用于字节编译的文件的文件路径是符号链接或非常规文件作为警告,如果导入将不保留文件路径类型,如果它写入该路径。
  • 问题#16972:site.addpackage()考虑已知的路径,即使没有明确传入。Bug报告和修复由Kirill。
  • 问题#1602133:在Mac OS X上,共享库构建(--enable-shared)现在正确填充os.environ变量。
  • 问题#15505unittest.installHandler不再假设SIGINT处理程序设置为可调用对象。
  • 问题#13454:在删除由itertools.tee()创建的迭代器时修复崩溃,如果所有其他迭代器之前都非常高级。
  • 问题#12411:修复cgi.parse_multipart以正确使用字节边界和字节数据。补丁由Jonas Wagner。
  • 问题#16957:shutil.which()不再在Unix上搜索当前目录中的裸文件名,而是不再搜索PATH目录中目录部分的相对文件路径。补丁由Thomas Kluyver。
  • 问题#1159051:当读取带有截断的页眉或页脚的损坏文件时,GzipFile现在引发EOFError。
  • 问题#16993:shutil.which()现在保留Windows上的路径和扩展名的大小写。
  • 问题#16992:在Windows上,在signal.set_wakeup_fd中,验证文件描述器参数。
  • 问题#16422:为了与Python版本兼容,十进制的C版本现在使用字符串而不是整数用于舍入模式常量。
  • 问题#15861:tkinter现在可正确使用包含带空格,反斜杠或不平衡大括号的字符串的列表和元组。
  • 问题#9720:zipfile现在为大于4 GiB的文件写入正确的本地标题。
  • 问题#16955:修复Windows上多处理套接字连接的poll()方法。
  • SSLContext.load_dh_params()现在正确关闭输入文件。
  • 问题#15031:重构一些.pyc管理代码,以减少代码重复。感谢Ronan Lamy的报告,并对这个问题的初步刺。
  • 问题#16398:优化deque.rotate(),以便它只移动指针,不会使用incrementfs和decrefs触及底层数据。
  • 问题#16900:在ssl套接字未关闭时发出ResourceWarning。
  • 问题#13899\A\Z\B现在正确匹配A,Z和B字面值在字符类中使用时(例如'[\A]')。补丁由Matthew Barnett。
  • 问题#15545:在sqlite3的iterdump方法中修复回归,如果连接使用产生不可排序对象的行工厂(例如sqlite3.Row),它会失败。(回归通过修正引入9750)。
  • fcntl:添加F_DUPFD_CLOEXEC常量,在Linux 2.6.24+上可用。
  • 问题#15972:当os函数需要文件名或文件时修复错误消息描述器接收不正确的类型。
  • 问题#8109:由于SSLContext.set_servername_callback()方法,ssl模块现在支持服务器端SNI。补丁由丹尼尔·布莱克。
  • 问题#16860:在tempfile中,使用O_CLOEXEC(如果可用)以原子方式设置关闭执行标志。
  • 问题#16674:random.getrandbits()现在比小整数快20-40%。
  • 问题#16009:JSON错误消息现在提供更多信息。
  • 问题#16828:修复bz2.compress(b“)和bz2.BZ2Compressor.compress(b”)错误引发的错误。Martin Packman的初步补丁。
  • 问题#16833:在http.client.HTTPConnection中,当有效内容超过16 KB时,不要连接请求标头和正文,因为它可能消耗更多内存而无益处。Patch by Benno Leslie。
  • 问题#16541:tk_setPalette()现在可以使用关键字参数。
  • 问题#16820:在configparser中,parser.popitem()不再引入ValueError。这使得parser.clean()正常工作。
  • 问题#16820:在configparser中,parser ['section'] = {} t1 >现在保留解析器中的节顺序。这使得parser.update()也保留段顺序。
  • 问题#16820:在configparser中,解析器['DEFAULT'] = {} t1 >现在可以正确清除存储在默认部分中的以前的值。同样适用于parser.update({'DEFAULT': {}})
  • 问题#9586:在MacOSX上重新定义SEM_FAILED以保持编译器的快乐。
  • 问题#16787:增加异步和异步默认输出缓冲区大小,以减少CPU使用率和增加吞吐量。
  • 问题#10527:使多处理使用poll(),而不是select()(如果可用)。
  • 问题#16688:现在,正则表达式包含的反向引用正确使用非ASCII字符串。补丁由Matthew Barnett。
  • 问题#16486:使aifc文件充当上下文管理器。
  • 问题#16485:如果文件头修补在关闭aifc文件失败,现在文件描述器被关闭。
  • 问题#16640:在sched模块中的锁下运行较少的代码。
  • 问题#16165:sched.scheduler.run()不再阻塞其他线程的调度程序。
  • 问题#16641:sched.scheduler.enter()的默认值不再可修改。
  • 问题#16618:使glob.glob在关于引导点的字符串和字节之间保持一致。补丁由Serhiy Storchaka。
  • 问题#16788:将samestat添加到Lib / ntpath.py
  • 问题#16713:使用urlparse解析“tel”网址从路径中分离参数。
  • 问题#16443:将docstrings添加到正则表达式匹配对象。补丁安东Kasyanov。
  • 问题#15701:修复HTTPError info方法调用以返回头信息。
  • 问题#16752:向modulefinder添加缺少的导入。Patchs by Berker Peksag。
  • 问题#16646:ftplib.FTP.makeport()可能会丢失套接字错误详细信息。(补丁Serhiy Storchaka)
  • 问题#16626:当模式在驱动器或UNC路径中包含通配符时,修复Windows上glob.glob()中的无限递归。补丁由Serhiy Storchaka。
  • 问题#15783:除了数字方法,C版本的decimal现在支持在decimal.py中存在的所有无默认值。这些值大部分没有记录。
  • 问题#11175:argparse.FileType现在接受编码和错误参数。Patch by Lucas Maystre。
  • 问题#16488:epoll()对象现在支持with语句。补丁由Serhiy Storchaka。
  • 问题#16298:在HTTPResponse.read()中,当没有Content-Length并且传入流完成时关闭套接字。补丁由Eran Rundstein。
  • 问题#16049:添加abc.ABC类以启用使用继承创建ABCs,而不是更繁琐的元类= ABCMeta。补丁由布鲁诺Dupuis。
  • 在套接字中提供TCP_FASTOPEN和MSG_FASTOPEN标志。
  • 问题#15701:将.headers属性添加到urllib.error.HTTPError。由Berker Peksag贡献的补丁。
  • 问题#15872:修复了基于新的基于fd的shutil.rmtree引入的3.3回归,它导致在忽略ignore_errors时忽略某些错误。补丁由Alessandro Moura和Serhiy Storchaka。
  • 问题#16248:当-E标志传递给Python时,通过tkinter禁止用户主目录中的代码执行。Patch by Zachary Ware。
  • 问题#13390:新功能sys.getallocatedblocks()返回当前分配的内存块数。
  • 问题#16628:修复ctypes.resize()中的内存泄漏。
  • 问题#13614:在说明中修复setup.py注册失败,无效的rst。补丁由Julien Courteau和皮埃尔保罗Lefebvre。
  • 问题#13512:安全地创建〜/ .pypirc(CVE-2011-4944)。由Philip Jenvey提供的初始补丁,由Mageia和Debian测试。
  • 问题#7719:使distutils忽略.nfs*文件,而不是稍后阻塞。由SilentGhost和Jeff Ramnani进行的初始修补程序。
  • 问题#13120:允许从线程调用pdb.set_trace()。补丁由伊利亚·桑德勒。
  • 问题#16585:使CJK编码器支持每个PEP 383返回字节的错误处理程序。
  • 问题#10182:re模块不再将索引截断到32位。补丁由Serhiy Storchaka。
  • 问题#16333:在指定indent时,在json中使用(“,”,“:”)作为默认分隔符,以避免尾部空格。补丁由Serhiy Storchaka。
  • 问题#16573:在2to3中,像一个消费调用一样处理枚举(),所以多余的list()调用不会添加到filter(),map()和zip枚举()。
  • 问题#16464:当urllib请求与新数据重用时,重置Content-Length头。
  • 问题#12848:纯Python pickle实现现在将对象长度视为无符号32位整数,类似于C实现。补丁由Serhiy Storchaka。
  • 问题#16423:urllib.request现在支持data: URL。由MathiasPanzenböck修补。
  • 问题#4473:在支持的服务器上添加POP3.stls()将明文POP3会话切换到加密的POP3会话。补丁由Lorenzo Catucci。
  • 问题#4473:添加一个POP3.capa()方法来查询POP3服务器发布的功能。补丁由Lorenzo Catucci。
  • 问题#4473:确保套接字在POP3.close()中完全关闭。补丁由Lorenzo Catucci。
  • 问题#16522:为doctest添加了FAIL_FAST标志。
  • 问题#15627:添加importlib.abc.InspectLoader.source_to_code()方法。
  • 问题#16408:修复zip文件模块中错误情况下未关闭的文件描述器。补丁由Serhiy Storchaka。
  • 问题#14631:添加新的weakref.WeakMethod以模拟绑定方法的弱引用。
  • 问题#16469:修复float - > Fraction和Decimal - > Fraction转换的特殊值的异常与float - > int和Decimal - > int一致。补丁通过Alexey Kachayev。
  • 问题#16481:multiprocessing不再泄漏Windows上的进程句柄。
  • 问题#12428:添加functools.partial()的纯Python实现。补丁由Brian Thorne。
  • 问题#16140:子进程模块不再双关闭其子进程.PIPE父文件描述器对exec()之前的子进程错误。
  • 从子进程模块中删除一个裸打印到stdout,如果子进程将垃圾写入其pre-exec错误管道,则可能发生这种情况。
  • 子进程模块现在引发自己的SubprocessError,而不是在通常不会发生的各种错误情况下的RuntimeError。
  • 问题#16327:当fork()失败时,子进程模块不再泄漏文件描述用于stdin / stdout / stderr管道的管道。
  • 问题#14396:处理奇怪的罕见情况下waitpid返回0,当不希望在subprocess.Popen.wait()。
  • 问题#16411:修复了一个错误,zlib.decompressobj()。flush()可能会尝试访问以前释放的内存。补丁由Serhiy Storchaka。
  • 问题#16357:在通过SSLContext.wrap_socket()创建的SSLSocket上修复调用accept()。原始补丁由Jeff McNeil。
  • 问题#16409:由旧的urllib.request.urlretrieve API生成的reporthook回调现在正确地提供了一个常量非零block_size,就像在Python 3.2和2.7中一样。这与urllib.request.URLopener.retrieve的行为相匹配。
  • 问题#16431:在从小数参数构造小数子类型时使用类型信息。
  • 问题#15641:从importlib清理已弃用的类。Patch by Taras Lyapun。
  • 问题#16350:zlib.decompressobj()。decompress()现在在unused_data中累积来自EOF之后的连续调用的数据,而不是仅将参数保存到最后调用。decompressobj()。flush()现在正确设置unused_data和unconsumed_tail。设置unconsumed_tail属性时处理MemoryError的错误也已修复。补丁由Serhiy Storchaka。
  • 问题#12759:sre_parse现在,当组名称缺失时引发正确的错误。由Serhiy Storchaka创建的初始补丁。
  • 问题#16152:修复tokenize,以在没有找到换行符时忽略代码末尾的空格。补丁由Ned Batchelder。
  • 问题#16284:防止对concurrent.futures ThreadPoolExecutor中的工作程序函数进行不必要的引用。
  • 问题#16230:在其中一个列表在迭代时更改大小时,修复select.select()中的崩溃。补丁由Serhiy Storchaka。
  • 问题#16228:修复json模块中的崩溃,其中列表在编码时更改大小。补丁由Serhiy Storchaka。
  • 问题#16351:新函数gc.get_stats()返回每代容器统计信息。
  • 问题#14897:增强struct.pack和struct.pack_into的错误消息。补丁马蒂Mäki。
  • 问题#16316:mimetypes现在可以识别.xz和.txz(.tar.xz)扩展名。补丁由Serhiy Storchaka。
  • Issue #12890: cgitb no longer prints spurious

    tags in text mode when the logdir option is specified.

  • 问题#16307:修复multiprocessing.Pool.map_async不调用其回调。补丁由Janne Karila。
  • 问题#16305:修复中断math.factorial时发生的分段故障。
  • 问题#16116:在venvs中构建C扩展时,修正include和库路径是否正确。
  • 问题#16245:修正html.entities.html5中几个实体的值。
  • 问题#16301:为file://网址修复urllib / request.py中的localhost验证。
  • 问题#16250:修复URLError的调用,它对异常放置了文件名属性。
  • 问题#10836:修复在urlretrieve中找不到文件时引发的异常Ezio Melotti的初始修补程序。
  • 问题#14398:修复bz2模块中的大小截断和溢出错误。
  • 问题#12692:在与不包含连接的HTTP服务器通信时修复urllib.request中的资源泄露 关闭。
  • 问题#12034:修复结果的bogus缓存在check_GetFinalPathNameByHandle。补丁由Ishimoto。
  • 提高lzma.LZMAFile的性能(另请参阅问题#16034)。
  • 问题#16220:wsgiref现在总是在可迭代响应上调用close()。补丁by Brent Tubbs。
  • 问题#16270:当通过使用上下文管理器通过FTP检索文件时,urllib可能会挂起。补丁由Giampaolo Rodola'。
  • 问题#16461:Wave库应该能够处理4GB wav文件,采样率为44100 Hz。
  • 问题#16176:通过platform.platform()正确地标识Windows 8
  • 问题#16088:BaseHTTPRequestHandler的send_error方法现在在其响应中包含一个Content-Length头。补丁由安托万Pitrou。
  • 问题#16114:当cwd或executable关键字参数指定了不存在的路径时,子进程模块不再提供误导的错误消息,声明args [0]不存在。
  • 问题#16169:修复ctypes.WinError()在errno和winerror之间的混淆。
  • 问题#16110:logging.fileConfig现在接受预初始化的ConfigParser实例。
  • 问题#1492704:shutil.copyfile()如果源和目标是相同的文件,现在引入一个不同的SameFileError。补丁由Ishimoto。
  • 问题#13896:使用“with”作为上下文管理器使用shelf实例。原始补丁由FilipGruszczyński。
  • 问题#15417:在venv激活脚本中添加对csh和fish的支持。
  • 问题#14377:ElementTree.write和一些模块级函数有一个新参数 - short_empty_elements它控制如何发射没有内容的元素。
  • 问题#16089:允许ElementTree.TreeBuilder再次使用非元素element_factory(修复SimpleTAL中的回归)。
  • 问题#9650:列出time.strftime和time.strptime docsttings中常用的格式代码。原始补丁由Mike Hoy。
  • 问题#15452:日志配置套接字侦听器现在有一个验证选项,允许应用程序在对接收的配置数据执行操作之前应用验证功能。
  • 问题#16034:修复新的bz2.BZ2File实施中的性能回归。由Serhiy Storchaka创建的初始补丁。
  • pty.spawn()现在返回os.waitpid()返回的子进程状态。
  • 问题#15756subprocess.poll()现在正确处理errno.ECHILD,以便在子项已退出或无法返回时返回0等待。
  • 问题#15323:改善Mock.assert_called_once_with()的失败消息。
  • 问题#16064unittest -m声明可执行文件是“python”,而不是“python3”。
  • 问题#12376:传递TextTestResult.__init__()超级调用中的参数。
  • 问题#15222:在mbox邮箱中的每封邮件后面插入空行。
  • 问题#16013:修正csv.Reader解析结束引号字符的问题。补丁由Serhiy Storchaka。
  • 问题#15421:在datetime.MAXYEAR之后,在Calendar.itermonthdates()中修正溢出错误。贴图CédricKrier。
  • 问题#16112:platform.architecture没有正确转义参数到/ usr / bin / file。补丁由David Benjamin。
  • 问题#15970xml.etree.ElementTree现在可以正确地序列化空的HTML元素“meta”和“param”。
  • 问题#15842:当类似文件的对象关闭时,SocketIO.{readable,writable,seekable}方法引发ValueError。补丁由Alessandro Moura。
  • 问题#15876:在curses模块:window.encoding中修复refleak。
  • 问题#15881:在multiprocessing中修复atexit原始补丁由克里斯·麦克唐纳。
  • 问题#15841io.BytesIOio.StringIO对象的可读(),writable()和seekable当对象已经关闭时。补丁由Alessandro Moura。
  • 问题#15447:在webbrowser中使用subprocess.DEVNULL,而不是明确打开os.devnull并保持打开。
  • %action替换产生空字符串时,问题#15509webbrowser.UnixBrowser不再传递空参数给Popen。
  • 问题#12776问题#11839:调用argparse类型函数(由add_argument指定)仅一次。之前,在指定默认值并且给出参数的情况下,类型函数调用了两次。这对于FileType类型尤其有问题,因为默认文件将始终被打开,即使在命令行上指定了文件参数。
  • Issue #15906: Fix a regression in argparse caused by the preceding change, when action='append', type='str' and default=[].
  • 问题#16113:添加基于Keccak参考实现3.2的sha3模块。hashlib模块有四个额外的哈希算法:sha3_224sha3_256sha3_384sha3_512作为补丁的一部分,一些常见的代码从_hashopenssl.c移动到hashlib.h。
  • ctypes.call_commethod被删除,因为它的唯一用法是在defunct samples目录中。
  • 问题#16692:为ssl模块添加了TLSv1.1和TLSv1.2支持。
  • 问题#16832:添加abc.get_cache_token()以暴露ABCMeta中的缓存有效性检查支持。

IDLE

  • 问题#18429:格式/格式段落现在在选择注释块时有效。与文本块一样,当选择只包括完整行时,这最有效。
  • 问题#18226:为FormatParagraph.py添加文档字符串和单元测试。Todd Rovito和Phil Webster的原始补丁。
  • 问题#18279:格式 - 当未更改文件时,将其拖尾空格不再标记为已更改。这个修复后,添加了一个最初由Phil Webster编写的测试文件(该问题的主要目标)。
  • 问题#7136:在空闲文件菜单中,“新窗口”重命名为“新文件”。补丁由Tal Einat,Roget Serwy和Todd Rovito。
  • 删除imp的进口。
  • 问题#18196:避免显示假的SystemExit跟踪。
  • 问题#5492:避免在退出由竞态条件引起的空闲时的回溯。
  • 问题#17511:单击“查找下一个”后,保持IDLE查找对话框打开。原贴片由Sarah K.
  • 问题#18055:将IDLE从imp和on移动到importlib。
  • 问题#15392:为IDLE创建一个unittest框架。Rajagopalasarma Jayakrishnan的初始补丁。有关如何运行空闲测试,请参阅Lib / idlelib / idle_test / README.txt。
  • 问题#14146:在Windows上调试时突出显示源代码行。
  • 问题#17838:允许重新分配sys.stdin。
  • 问题#13495:避免在IDLE中加载颜色委派器两次。
  • 问题#17798:在命令行中指定时允许IDLE编辑新文件。
  • 问题#14735:更新IDLE文档以省略“Windows上的Control-z”。
  • 问题#17532:始终在OS X上包含IDLE的选项菜单。GuilhermeSimões的补丁。
  • 问题#17585:固定IDLE回归。现在关闭时使用exit()或退出()。
  • 问题#17657:在IDLE的对话框中显示完整的Tk版本。补丁由Todd Rovito。
  • 问题#17613:在IDLE中删除语法颜色化时,防止回溯。
  • 问题#1207589:IDLE中用于右键单击菜单的向后兼容性修补程序。
  • 问题#16887:IDLE现在在tabify / untabify对话框中接受“取消”。
  • 问题#17625:在IDLE中,在使用后关闭替换对话框。
  • 问题#14254:IDLE现在在shell重新启动时正确处理readline。
  • 问题#17614:快速关闭文件时,IDLE不再引发异常。
  • 问题#6698:当配置为IDLE时,IDLE现在只打开一个编辑器窗口。
  • 问题#8900:使用IDLE中的键盘快捷键打开文件不再引发异常。
  • 问题#6649:修复了IDLE中缺少的退出状态。贴纸Guilherme Polo。
  • 问题#17114:IDLE现在使用非严格的配置解析器。
  • 问题#9290:在IDLE中,sys.std *流现在实现io.TextIOBase接口并支持所有必需的方法和属性。
  • 问题#5066:更新IDLE文件。补丁由Todd Rovito。
  • 问题#16829:如果文件路径中有空格或其他特殊字符,IDLE打印不再失败。
  • 问题#16491:IDLE现在打印链接的异常跟踪。
  • 问题#16819:IDLE方法完成现在正确地工作字节字面值。
  • 问题#16504:IDLE现在捕获由tokenizer引发的SyntaxErrors。补丁由罗杰Serwy。
  • 问题#16511:如果config param无效,请使用默认IDLE宽度和高度。修补程序Serhiy Storchaka。
  • 问题#1207589:将项目剪切/复制/粘贴到IDLE上,右键单击上下文菜单。补丁由Todd Rovito。
  • 问题#16123:IDLE - 弃用在没有子过程的情况下运行。补丁由罗杰Serwy。

Tests

  • 问题#1666318:添加一个测试shutil.copytree()保留目录权限。补丁由凯瑟琳Devlin。
  • 问题#18273:将Lib / test / json_tests中的测试移动到Lib / test / test_json,并使它们可以通过unittest发现。Patch by Zachary Ware。
  • 修复fcntl测试用例在KFreeBSD,Debian#708653(Petr Salinger)。
  • 问题#18396:在启用faulthandler时在Windows上的test_signal中修复伪测试失败(由Jeremy Kloth修补)
  • 问题#17046:修复test_subprocess中损坏的test_executable_without_cwd。
  • 问题#15415:将新的temp_dir()和change_cwd()上下文管理器添加到test.support,并重构temp_cwd()以使用它们。补丁由克里斯Jerdonek。
  • 问题#15494:test.support现在是一个包而不是一个模块(Indra Talip的初始补丁)
  • 问题#17944:test_zipfile现在可以被发现,并使用子类化为不同的压缩类型生成测试。修正了一个错误,跳过一些测试,由于使用穷尽的迭代器。
  • 问题#18266:test_largefile现在可用于单元测试测试发现,并且仅支持仅运行所选测试。Patch by Zachary Ware。
  • 问题#17767:test_locale现在可用于单元测试测试发现。原始补丁由Zachary Ware。
  • 问题#18375:假设 - 当使用-randseed运行测试套件时进行随机化。
  • 问题#11185:在AIX下修复test_wait4。由SébastienSablé修补。
  • 问题#18207:修复了在ASN1_TIME字段中忽略秒数的某些版本的OpenSSL的test_ssl。
  • 问题#18094:test_uuid不再报告跳过的测试已通过。
  • 问题#17992:向异步和异步测试添加超时,以便它们不会意外挂起。
  • 问题#17833:修复在glibc的调试符号可用的计算机上看到的test_gdb故障(在PPC64 Linux上可见)。
  • 问题#7855:为IronPython中发现的问题添加ctypes / winreg的测试。Dino Viehland的初始补丁。
  • 问题#11078:test___all__现在检查__all__中的重复项。由David Murray提供的初始补丁。
  • 问题#17712:在Ubuntu 13.04上修复test_gdb故障。
  • 问题#17835:在默认操作系统管道缓冲区大小大于100万字节时修复test_io。
  • 问题#17065:对于winreg测试使用进程唯一键,以避免失败,如果测试并行运行多次(例如:在buildbot主机上)。
  • 问题#12820:为xml.dom.minicompat模块添加测试。补丁由John Chandler和菲尔康奈尔。
  • 问题#17691:test_univnewlines现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17790:test_set现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17789:test_random现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17779:test_osx_env现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17766:test_iterlen现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17690:test_time现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17692:test_sqlite现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#11995:test_pydoc不再导入所有sys.path模块。
  • 问题#17448:如果没有可用的XML解析器而不是提高ImportError,则test_sax现在跳过。
  • 问题#11420:使测试套件通过-B / DONTWRITEBYTECODE设置。初始补丁由Thomas Wouters。
  • 问题#10652:在__all__测试后运行tcl / tk测试,由Zachary Ware补丁。
  • 问题#11963:从test_parser和test_subprocess中删除人员验证。
  • 问题#11732:向test.support添加一个新的suppress_crash_popup()上下文管理器,以禁用Windows上的崩溃弹出窗口,并在test_faulthandler和test_capi中使用它。
  • 问题#13898:test_ssl不再在Ubuntu上打印虚假的堆栈跟踪。
  • 问题#17283:在Lib/test中的__main__.pyregrtest.py之间共享代码。
  • 问题#17249:将test_capi中的测试转换为使用unittest和收集线程。
  • 问题#17107:由于ssl模块中的新服务器端SNI支持,在urllib.request中测试客户端SNI支持。由丹尼尔·布莱的初始补丁。
  • 问题#17041:当Python配置为-without-doc-strings时修复测试。
  • 问题#16923:在test_ssl中修复ResourceWarnings。
  • 问题#15539 ​​:为工具/ scripts / pindent.py添加了回归测试。
  • 问题#17479:test_io现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17066:test_robotparser现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17334:test_index现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17333:test_imaplib现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17082:test_dbm *现在可与单元测试测试发现配合使用。Patch by Zachary Ware。
  • 问题#17079:test_ctypes现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17304:test_hash现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#17303:test_future *现在可以使用单元测试测试发现。Patch by Zachary Ware。
  • 问题#17163:test_file现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16925:test_configparser现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16918:test_codecs现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16919:test_crypt现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16910:test_bytes,test_unicode和test_userstring现在可以使用单元测试测试发现。Patch by Zachary Ware。
  • 问题#16905:test_warnings现在可用于单元测试测试发现。由Berker Peksag提供的初始补丁。
  • 问题#16898:test_bufio现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16888:test_array现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16896:test_asyncore现在可用于单元测试测试发现。Patch by Zachary Ware。
  • 问题#16897:test_bisect现在可用于单元测试测试发现。由Zachary Ware初始补丁。
  • 问题#16852:test_genericpath,test_posixpath,test_ntpath和test_macpath现在可以使用单元测试测试发现。Patch by Zachary Ware。
  • 问题#16748:test_heapq现在可用于单元测试测试发现。
  • 问题#10646:为os.samefile / samestat重新排列的测试不仅检查符号链接,还检查硬链接。
  • 问题#15302:将regrtest从使用getopt切换到使用argparse。
  • 问题#15324:修复-fromfile,-match和-randomize选项的regrtest解析。
  • 问题#16702:test_urllib2_localnet测试现在正确地忽略了localhost测试的代理。
  • 问题#16664:为glob的行为添加关于以“。”开头的条目的回归测试。Patch by Sebastian Kreft。
  • 问题#13390:regrtest的-R选项现在还使用sys.getallocatedblocks()检查内存分配泄漏。
  • 问题#16559:为json模块添加更多测试,包括来自json.org的官方测试套件的一些测试。补丁由Serhiy Storchaka。
  • 问题#16661 t>:修正os.getgrouplist()测试,不要假定它给出与id -G相同的输出。
  • 问题#16115:为subprocess.Popen()的可执行参数添加一些测试。初始补丁由Kushal Das。
  • 问题#16126:_testcapimodule.c中的PyErr_Format格式不匹配。补丁由Serhiy Storchaka。
  • 问题#15304:当os.chdir()test.support.temp_cwd()中失败时修复警告消息。补丁由克里斯Jerdonek。
  • 问题#15802:修复TestMaildir.test_create_tmp()中的测试逻辑。补丁由Serhiy Storchaka。
  • 问题#15557:感谢Anton Barkovsky为webbrowser模块添加了一个测试套件。
  • 问题#16698:在使用10.6之前的OS X部署目标构建时,跳过posix test_getgroups。

Build

  • 问题#16067:在MSI文件中添加描述以替换安装程序的临时名称。
  • 问题#18257:在python-config中修复readlink的使用。在Darwin上再次安装python版本。
  • 问题#18481:使用gcov和lcov添加C coverage报告。新的make目标“coverage-report”创建一个检测的Python构建,运行单元测试并创建一个HTML。可以使用“make coverage-lcov”更新报告。
  • 问题#17845:澄清在某些模块未构建时打印的消息。
  • 问题#18256:最新AIX版本的编译修复。补丁由David Edelsohn。
  • 问题#17547:在configure中,显式地通过-Wformat获取GCC 4.8的好处。
  • 问题#15172:将文档NASM 2.10+作为在Windows上构建OpenSSL 1.0.1的要求。
  • 问题#17591:在包含Windows标头文件时使用小写文件名。修补由Roumen彼得罗夫。
  • 问题#17550:修复-enable-profiling配置开关。
  • 问题#17425:在Windows上使用openssl 1.0.1d构建。
  • 问题#16754:修复linux上错误的共享库扩展。引入两个makefile宏SHLIB_SUFFIX和EXT_SUFFIX。SO现在再次具有SHLIB_SUFFIX的值(如在2.x和3.1中)。在3.4中去除了SO宏。
  • 问题#5033:当SQLite库版本具有“beta”时修复sqlite3扩展模块的构建。补丁由Andreas Pelme。
  • 问题#17228:修正没有pymalloc的建筑物。
  • 问题#3718:使用AC_ARG_VAR在configure.ac中设置MACHDEP。
  • 问题#16235:将python-config实现为shell脚本。
  • 问题#16769:删除过期的Visual Studio项目。
  • 问题#17031:在交叉构建中修复运行中的重新生成。
  • 问题#3754:在pthread AC_CACHE_VAL中修复错误。
  • 问题#15484:修正_PYTHON_PROJECT_BASE for srcdir!= builddir builds;请在distutils / sysconfig.py中使用_PYTHON_PROJECT_BASE。
  • 删除对Windows 2000的支持(更改集e52df05b496a)。
  • 问题#17029:让h2py搜索多国系统的include目录。
  • 问题#16953:在具有HAVE_BROKEN_POLL的平台上修复套接字模块编译。补丁由Jeffrey阿姆斯特朗。
  • 问题#16320:删除字符串和字节的冗余Makefile依赖关系。
  • 交叉编译需要主机和构建设置。当缺少-build时,configure不再创建损坏的PYTHON_FOR_BUILD变量。
  • 修复setup.py中的交叉编译问题,确保lib_dirs和inc_dirs也是在交叉编译模式下定义的。
  • 问题#16836:即使在构建主机上禁用IPv6也启用IPv6支持。
  • 问题#16593:有BSD'make -s'做正确的事情,感谢丹尼尔Shahaf
  • 问题#16262:如果未安装mercurial,则修复src-tree外部构建。
  • 问题#15298:确保_sysconfigdata在构建目录而不是源目录中生成。
  • 问题#15833:修复3.3中的回归,如果importlib无法写入字节编译的文件,则会导致异常。这影响了从只读源目录中构建Python树的尝试。
  • 问题#15923:修复asdl_c.py中的错误,导致在2801bf875a24之后出现TypeError(请参阅#15801)。
  • 问题#16135:删除OS / 2支持。
  • 问题#15819:确保我们可以从只读源目录构建Python树。(与问题#9860有关。)
  • 问题#15587:在使用Retina显示器的Mac上启用Tk高分辨率文本呈现。适用于Tkinter应用程序,如IDLE,在OS X框架构建与Cocoa Tk 8.5链接。
  • 问题#17161:make install now现在也安装了一个python3手册页。

C-API

  • 问题#18351:修复importlib中提供的函数中的各种问题,以帮助PyImport_ExecCodeModuleWithPathnames()(因此扩展名为PyImport_ExecCodeModule()和PyImport_ExecCodeModuleEx())。
  • 问题#9369:PyObject_CallFunction()和PyObject_CallMethod()的char*参数的类型现在改为const char *基于JörgMüller和Lars Buitinck的补丁。
  • 问题#17206:Py_CLEAR(),Py_DECREF(),Py_XINCREF()和Py_XDECREF()现在展开它们的参数一次,而不是多次。由Illia Polosukhin编写的补丁。
  • 问题#17522:添加PyGILState_Check()API。
  • 问题#17327:添加PyDict_SetDefault。
  • 问题#16881:修复GCC的Py_ARRAY_LENGTH宏
  • 问题#16505:删除未使用的Py_TPFLAGS_INT_SUBCLASS。
  • 问题#16086:PyTypeObject.tp_flags和PyType_Spec.flags现在是无符号(unsigned long和unsigned int),以避免使用Py_TPFLAGS_TYPE_SUBCLASS((1PyType_GetFlags()结果类型现在也是unsigned long(unsigned long,而不是long)。
  • 问题#16166:添加PY_LITTLE_ENDIAN和PY_BIG_ENDIAN宏以及统一的端点检测和处理。

Documentation

  • 问题#23006:改进dict .__ missing__的文档和索引。在语言数据模型特殊方法部分中添加条目。修改和索引它的讨论在stdtypes mapping / dict部分。
  • 问题#17701:改进strftime文档。
  • 问题#18440:澄清hash()可以截断从对象的自定义__hash__()方法返回的值。
  • 问题#17844:向字节到字节编解码器的编码器和解码器添加链接。
  • 问题#14097:改进教程的“简介”页面。
  • 问题#17977:urllib.request.urlopen()中cadefault参数的默认值的文档是固定的,以匹配代码。
  • 问题#6696:为配置文件对象添加文档,并改进配置文件/ cProfile文档。补丁由汤姆·布克尼。
  • 问题#15940:指定区域设置对时间函数的影响。
  • 问题#17538:记录XML漏洞
  • 问题#16642:sched.scheduler timefunc初始默认值为time.monotonic。补丁由Ramchandra Apte
  • 问题#17047:删除由Serhiy Storchaka和Matthew Barnett报告的文档和文档字符串中的双重字词。
  • 问题#15465:在C API文档中记录版本控制宏,而不是标准库文档。补丁由Kushal Das。
  • 问题#16406:合并上传和注册到PyPI的页面。
  • 问题#16403:记录distutils如何使用PKG-INFO中的维护者字段。补丁由Jyrki Pulliainen。
  • 问题#16695:记录glob如何处理以点开头的文件名。由Jyrki Pulliainen初始补丁。
  • 问题#8890:停止宣传不安全的做法,在文档中用更好的替代方法替换/ tmp目录的使用。补丁由Geoff Wilson。
  • 问题#17203:向unittest发现文档添加长选项名称。
  • 问题#13094:添加“为什么lambdas在不同值的循环中定义都会返回相同的结果?
  • 问题#14901:更新Windows常见问题的部分。补丁由Ashish Nitin Patil。
  • 问题#16267:更好地记录将@abstractmethod与@staticmethod,@classmethod和@property组合的3.3+方法
  • 问题#15209:说明例外模块文档中的异常链接描述
  • 问题#15990:改进参数/参数文档。
  • 问题#16209:将str内建函数的文档移动到“文本序列类型”部分中的新str类条目。
  • 问题#13538:改进str()和object .__ str __()文档。
  • 问题#16489:清楚地表明importlib.find_loader()需要显式导入父包。
  • 问题#16400:更新PyPI显示的给定包的哪些版本的描述。
  • 问题#15677:说明zlib和gzip接受的压缩级别为0表示“无压缩”。补丁由布赖恩巴西。
  • 问题#16197:更新winreg docstrings和文档以匹配代码。Patch by Zachary Ware。
  • 问题#8040:在文档中添加了版本切换器。由Yury Selivanov补丁。
  • 问题#16241:文档-X faulthandler命令行选项。由MarekŠuppa修补。
  • 在concurrent.futures URL检索示例中的其他注释和一些样式更改
  • 问题#16115:改进关于args,shell和可执行参数的subprocess.Popen()文档。
  • 问题#13498:澄清os.makedirs()的exists_ok参数的文档。完成了从大卫·穆雷的伟大的母语发音帮助。
  • 问题#15533:澄清文档并为subprocess.Popen()的cwd参数添加测试。
  • 问题#15979:改进timeit文档。
  • 问题#16036:改进内建int()的声明和参数的文档。
  • 问题#15935:澄清argparse docs,re:add_argument()类型和默认参数。由克里斯·杰多尼克贡献的补丁。
  • 问题#11964:将v3.2中的更改记录到json编码操作的缩进参数的行为。
  • 问题#15116:删除对appscript的引用,因为它不再受支持。

Tools/Demos

  • 问题#18817:在Lib / aifc.py演示中修复资源警告。由Vajrasky Kok修补。
  • 问题#18439:在Windows上为ACKS,NEWS进行修补程序检查。
  • 问题#18448:在Tools / demo / eiffel.py中修复拼写错误。
  • 问题#18457:修复了在Tools / demo / ss1.py中保存公式和复数的问题。
  • Issue#18449:使Tools / demo / ss1.py在Python 3上再次工作。PéterbyFévryThibault。
  • 问题#12990:OSX上的“Python Launcher”无法启动包含宽字符路径的python脚本。
  • 问题#15239:使mkstringprep.py在Python 3上再次工作。
  • 问题#17028:允许的Python参数提供给Windows启动器。
  • 问题#17156:pygettext.py现在检测源文件的编码,并正确地写入和转义非ascii字符。
  • 问题#15539 ​​:修复Tools / scripts / pindent.py中的一些错误。现在pindent.py使用一个“with”语句。pindent.py不再产生不正确的缩进。pindent.py现在可以使用“class”或“def”关键字后面的连续行,并在行的开头使用连续。
  • 问题#11797:添加将reload()映射到imp.reload()的2to3修订器。
  • 问题#10966:删除意外跳过的测试的概念。
  • 问题#9893:删除了Misc / Vim目录。
  • 删除了Misc / TextMate目录。
  • 问题#16245:添加Tools / scripts / parse_html5_entities.py脚本来解析HTML5实体列表,并更新html.entities.html5字典。
  • 问题#15378:修复工具/ unicode / comparecodecs.py。补丁由Serhiy Storchaka。
  • 问题#16549:使json.tool再次对Python 3工作并添加测试。由Berker Peksag和Serhiy Storchaka创建的初始补丁。
  • 问题#13301:在tools / i18n / msgfmt.py中使用ast.literal_eval()而不是eval()。补丁由Serhiy Storchaka。

Windows

  • 问题#18569:当注册扩展时,安装程​​序现在将.py添加到PATHEXT变量。补丁由保罗·摩尔。

(有关旧版本的信息,请参阅HISTORY文件。)