历史¶
v18.6.1¶
v18.6.0¶
2020年4月17日
#1776 通过 PR #1851 :在中添加对UTF-8编码附件文件名的支持
Content-Disposition
标题通过 RFC 6266#appendix-D .
v18.5.0¶
2019年11月27日
#1827 :修复了字节值在
HeaderMap
将被转换为字符串。PR #1826 :依赖 jaraco.collections 因为它支持不区分大小写的字典。
v18.4.0¶
2019年11月3日
v18.3.0¶
2019年10月2日
v18.2.0¶
2019年9月3日
v18.1.2¶
2019年6月23日
v18.1.1¶
2019年3月27日
v18.1.0¶
2018年12月9日
v18.0.1¶
2018年9月9日
v18.0.0¶
2018年9月1日
#1730 :删除对python 2.7的支持。CherryPy17仍然是一个LTS版本,用于漏洞和安全修复。
放弃对python 3.4的支持。
v17.4.2¶
2019年6月23日
v17.4.1¶
2018年11月23日
v17.4.0¶
2018年8月19日
a95e619f :设置响应主体时,拒绝unicode值,使python 2上的行为与python 3上的行为相同。
其他无关紧要的重构。
v17.3.0¶
2018年8月16日
v17.2.0¶
2018年8月14日
v17.1.0¶
2018年8月14日
v17.0.0¶
2018年7月10日
#1673 :cherrypy现在允许命名空间包作为其依赖项。无法处理命名空间包(如py2exe)的环境将需要向旧的cherrypy版本添加此类支持或pin。
v16.0.3¶
2018年7月10日
#1722 :固定
tempora
与版本1.13的依赖关系,以避免拉入命名空间包。
v16.0.2¶
2018年6月18日
v16.0.0¶
2018年6月16日
#1688 通过 38ad1da 移除
basic_auth
和digest_auth
工具和httpauth
模块,在V14.0.0中已正式弃用。已删除不推荐的属性:
cherrypy._cpreqbody.Entity.type
deprecated in favor ofcherrypy._cpreqbody.Entity.content_type
cherrypy._cprequest.Request.body_params
deprecated in favor ofcherrypy._cprequest.RequestBody.params
#1697 通过 841f795 :修复了在使用autoreloader时python 3.7上的错误
__file__
是None
.
v15.0.0¶
2018年5月11日
#1708 :从WebTest中删除了在Cheroot 6.1.0的cheroot.test.WebTest重构中删除的组件。
v14.2.0¶
2018年4月22日
v14.1.0¶
2018年4月19日
Cheroot PR #37 :添加对Unix域套接字上的对等凭据查找的支持。这使应用程序能够自动识别“谁在电线的另一端”。
这是您启用它的方式:
server.peercreds: True server.peercreds_resolve: True
第一个选项将把远程数字数据放入wsgi env vars:app的pid、用户的id和group。
第二个选项将把它解析为用户名和组名。
为了防止昂贵的系统调用,数据是基于每个连接缓存的。
v14.0.1¶
2018年3月22日
#1700 :通过条件附加程序改进Windows Pywin32依赖项声明。
v14.0.0¶
2018年2月4日
#1688 :正式否决
basic_auth
和digest_auth
工具和httpauth
模块,在使用时触发弃用警告。应用程序应该改为使用最近的auth_basic
和auth_digest
工具。此不推荐使用的功能将很快在后续版本中删除。远离的
DeprecatedTool
长期弃用和残废tidy
和nsgmls
工具。参见 the rationale 为了这个改变。
v13.1.0¶
2017年12月17日
#1231 通过 PR #1654 :caseinsensitivedict现在重新使用
jaraco.collections
为一个不敏感的案例和校长提供一个更完整的界面。鼓励用户使用 jaraco.collections 除了处理Cherrypy中的头文件。
v13.0.1¶
2017年12月17日
PR #1671 :恢复对将CherryPy安装到对名称空间包有敌意的环境的支持,这是自11.1.0版本以来中断的。
v13.0.0¶
2017年12月4日
#1666 :删除对python 3.3的支持。
v12.0.2¶
2017年12月3日
#1665 :在请求处理中,当接收到无效的cookie时,呈现报告的实际错误消息,而不是猜测(有时不正确)发生了什么错误。
v12.0.1¶
2017年11月20日
固定问题导入
cherrypy.test.webtest
(通过创建模块并从中导入类cheroot
)并添加了相应的DeprecationWarning
.
v12.0.0¶
2017年11月17日
放弃对python 3.1和3.2的支持。
#1625 :删除了响应超时和超时监视器以及相关异常,因为无法中断请求。建议提前退出请求的服务器进行监视
response.time
并提出例外或采取相应行动。以前通过调用来禁用超时的服务器
cherrypy.engine.timeout_monitor.unsubscribe()
现在将崩溃。为了在旧版本的CherryPy上向前兼容此版本,请使用config选项禁用超时:'engine.timeout_monitor.on': False,
或测试是否存在超时监视器属性:
with contextlib2.suppress(AttributeError): cherrypy.engine.timeout_monitor.unsubscribe()
另外,
TimeoutError
异常已被删除,因为它不再在任何地方调用。如果您的应用程序从这个异常中受益,请在描述用例的链接通知单中进行注释,我们将帮助您设计解决方案或将异常返回。
v11.3.0¶
撞到Cheroot 5.9.0。
cherrypy.test.webtest
模块现在与cheroot.test.webtest
模块。Cherrypy的名字暂时保留下来以保持兼容性,最终将被删除。
v11.2.0¶
2017年11月13日
cherrypy.engine.subscribe
现在可以在没有回调的情况下调用,在这种情况下,它返回一个期望回调的修饰符。PR #1656 :图像现在使用无损压缩进行压缩,并且占用的空间更少。
v11.1.0¶
2017年10月28日
PR #1611 :将重定向的默认状态逻辑公开为
HTTPRedirect.default_status
.PR #1615 :
HTTPRedirect.status
现在是实例属性并从中的值派生args
.尽管以前可以在实例上设置属性,并且这种更改防止了这种可能性,但Cherrypy从不依赖于这种行为,我们假定没有应用程序依赖于该接口。#1627 :修复了代理工具中出现多个端口的问题。
request.base
因此在cherrypy.url
.PR #1645 :添加了新的日志格式标记:
i
保留每个请求的UUID 4z
以RFC3339格式输出UTC时间cherrypy._cprequest.Request.unique_id.uuid4
现在有了懒散的不可调用的Uuid4
#1646 :改进HTTP状态转换帮助程序。
PR #1638 :在staticdir中处理路径时,始终使用反斜杠作为路径分隔符。
#1190 :修复gzip、缓存和staticdir工具集成。使gzip内容的缓存有效。
需要Cheroot 5.8.3或更高版本。
此外,围绕持续集成和代码质量检查进行了许多改进。
此版本包含对名称空间包(如pex、celery和py2exe)有敌意的环境中的无意回归。参见 PR #1671 有关详细信息。
v11.0.0¶
2017年7月8日
#1607 :放弃了对python 2.6的支持。
v10.2.2¶
2017年5月17日
#1595 :修复了cherrypy.url中路径的过度规范化。
v10.2.1¶
2017年3月13日
删除对的意外依赖
graphviz
在python 2.6中。
v10.2.0¶
2017年3月12日
PR #1580 :
CPWSGIServer.version
现在报告为CherryPy/x.y.z Cheroot/x.y.z
.撞到Cheroot 5.2.0。代码库现在 PEP 8 投诉,薄片8过梁 enabled in TravisCI by default .
对于薄片8过梁,最大线限制现在设置为120。
PEP 257 在Travis CI中,Linter作为单独的允许故障作业运行。
一些与未声明变量相关的错误已经修复。
pre-commit
由于启用了缓存,测试速度更快。
v10.1.1¶
2017年2月18日
#1342 :关闭时修复断言错误。
v10.1.0¶
2017年2月7日
撞到Cheroot 5.1.0。
#794 :首选设置会话cookie过期的最大期限,将msie hack移动到一个记录其用途的函数中。
v10.0.0¶
2017年1月20日
#1332 :Cherrypy现在使用 portend 用于检查和等待端口的启动和拆卸检查。下列名称不再存在:
cherrypy._cpserver.client_host
cherrypy._cpserver.check_port
cherrypy._cpserver.wait_for_free_port
cherrypy._cpserver.wait_for_occupied_port
cherrypy.process.servers.check_port
cherrypy.process.servers.wait_for_free_port
cherrypy.process.servers.wait_for_occupied_port
直接从portend包使用此功能。
v9.0.0¶
2017年1月19日
#1481 :将功能从cherrypy.wsgiserver移动到 cheroot 5.0 项目。
v8.9.1¶
2017年1月16日
#1537 :还原对pywin32 for python 3.6的依赖。
v8.9.0¶
2017年1月13日
PR #1547 :已替换
cherryd
带有设置工具控制台入口点的distuils脚本。在守护进程模式下运行cherrypy时,复刻进程不再将目录更改为
/
.如果该行为是您的应用程序所依赖和应该依赖的,请向项目提交一张罚单。
v8.8.0¶
2017年1月9日
PR #1528 :允许服务器超时0。
v8.7.0¶
2016年12月31日
#645 :将绑定端口设置为0将绑定到临时端口。
v8.6.0¶
2016年12月27日
#1538 和 #1090 :已从安装脚本中删除cruft,而依赖于 include_package_data 确保包中包含相关文件。注意,此更改会导致license.md不再包含在已安装的包中。
v8.5.0¶
2016年12月26日
v8.4.0¶
2016年12月26日
#1532 :同时释放python 2的轮子,启用离线安装。
v8.3.1¶
2016年12月25日
#1537 :禁用对pypiwin32在python 3.6上的依赖,直到可以在该python版本上生成pypiwin32。
v8.3.0¶
2016年12月24日
整合了一些文档,并在包的详细描述中包含更简洁的自述文件,如pypi上所示。
v8.2.0¶
2016年12月23日
#1463 :cherrypy测试现在在pytest下运行,并使用tox调用。
v8.1.3¶
2016年12月16日
#1530 :修复修饰处理程序吞食类型错误的问题。
v8.1.2¶
2016年9月28日
v8.1.1¶
2016年9月27日
v8.1.0¶
2016年9月4日
v8.0.1¶
2016年9月3日
v8.0.0¶
2016年9月2日
#1483 :删除不推荐使用的构造:
cherrypy.lib.http
模块。unrepr
,modules
和attributes
在里面cherrypy.lib
.
PR #1476 :删除对python memcached<1.58的支持
#1401 :处理nosslerors。
#1489 在
wsgiserver.WSGIGateway.respond
应用程序现在必须生成字节而不是文本,这是规范所要求的。如果收到文本,它现在将引发ValueError,而不是使用ISO-8859-1进行静默编码。已从包中删除Unicode文件名,正在解决 pypa/pip#3894 和 pypa/setuptools#704 .
v7.1.0¶
2016年7月25日
PR #1458 :基于无休止的计算机支持的工作,为Cherrypy服务器实现SystemD的套接字激活机制。
Socket激活允许用户设置一个系统,这样SystemD就可以在一个端口上“按需”启动服务(有点像inetd和xinetd以前那样)。
v7.0.0¶
2016年7月24日
删除了引擎中旧配置键长期以来弃用的向后兼容性。请改用命名空间插件的配置:
autoreload_on->autoreload.on
自动加载频率->自动加载频率
autoreload_match->autoreload.match
重新加载文件->autoreload.files
死锁轮询频率->超时监视器频率
v6.2.1¶
2016年7月24日
#1460 :在配置中设置信号处理程序时,修复bus.publish中的keyError。
v6.2.0¶
2016年7月18日
#1441 :添加了根据类型注释(主要在python 3中)自动转换请求参数的工具。例如::
@cherrypy.tools.params() def resource(self, limit: int): assert isinstance(limit, int)
v6.1.1¶
2016年7月16日
问题 #1411 :修复当启动CherryPy的主机解释器时自动加载失败的问题,使用
python -m
.
v6.1.0¶
2016年7月14日
将wsgiserver2和wsgiserver3模块组合成一个模块,
cherrypy.wsgiserver
.
v6.0.2¶
2016年6月23日
问题 PR #1445 :更正其他拼写错误。
v6.0.1¶
2016年6月6日
问题 #1444 :更正输入错误
@cherrypy.expose
装饰工。
v6.0.0¶
2016年6月5日
v5.6.0¶
2016年6月5日
@cherrypy.expose
现在还将设置类的exposed属性。重新编写所有教程和内部用法,以更喜欢使用
expose
而不是显式设置属性。从教程中删除了特定于测试的代码。
v5.5.0¶
2016年6月5日
v5.4.0¶
2016年5月10日
v5.3.0¶
2016年4月30日
#1202 :使用内置的SSL支持为SSL提供服务时,添加对指定证书颁发机构的支持。
使用ssl.create_-default_-context(如果可用)。
#1392 :在OS X上捕获平台特定的套接字错误。
#1386 :修复对包含的URI的分析
://
在路径部分。
v5.2.0¶
2016年4月30日
#1410 :已将宿主移动到GitHub (cherrypy/cherrypy )
v5.1.0¶
错误修复问题 #1315 对于
test_HTTP11_pipelining
在python 3.5中测试错误修复问题 #1382 关于配置文件上对python 3的关键字参数支持。
错误修复问题 #1406 对于
test_2_KeyboardInterrupt
在python 3.5中进行测试。通过猴子修补httpRequest,在cpython上给出了一个影响testsuite的bug(https://bugs.python.org/issue23377)。添加附加参数
raise_subcls
测试助手openURL
和CPWebCase.getPage
更好地控制哪些异常可以引发。在通话中添加对直接关键字的支持(例如
foo=bar
)在python 3下的配置文件上。添加其他验证以确定进程是否作为上的守护程序运行
cherrypy.process.plugins.SignalHandler
允许在CI工具下执行测试套件。
v5.0.1¶
以下名称错误的错误修复 #94 .
v5.0.0¶
已删除的不推荐支持
ssl_certificate
和ssl_private_key
python 2 wsgi服务器上的ssl适配器的属性和隐式构造。python 2上的缺省ssl适配器是内置的ssl适配器,与python 3的行为匹配。
拉取请求 #94 :在代理工具中,如果没有提供基,则将主机头用于解析基。
v4.0.0¶
放弃对python 2.5及更早版本的支持。
默认情况下不再生成Windows安装程序。
v3.8.2¶
拉取请求 #116 :在静态文件路径中为空字节时更正InternalServerError。现在用404代替。
v3.8.0¶
拉取请求 #96 :通过
exc_info
以关键字的形式记录,而不是格式化错误并将其插入消息中。
v3.7.0¶
现在可以用调用cherrypy守护进程
python -m cherrypy
除了cherryd
脚本。问题 #1298 :使用内置的SSL模块和pyopenssl 0.14修复cpython 2.7上的SSL处理。这一变化将使派比暂时崩溃。
几个文档修复。
v3.6.0¶
v3.5.0¶
问题 #1301 :当传入队列已满时,现在拒绝其他连接。该功能已添加到CherryPy3.0中,但在3.1中无意中丢失。
v3.4.0¶
其他质量改进。
v3.3.0¶
Cherrypy采用Semver。