历史

v18.1.2

  • 固定的 #1377 通过 PR #1785 :还原本机无wsgi HTTP服务器支持。

  • PR #1769 :降低win32.py中非错误事件的日志级别

v18.1.1

v18.1.0

  • #1758 通过 PR #1759 :在总线中,等待状态更改时,仅在状态更改后发布。

v18.0.1

  • #1738 通过 PR #1736 :恢复对响应头中“bytes”的支持。

  • 大量删除了python 2兼容性代码。

v18.0.0

  • #1730 :删除对python 2.7的支持。CherryPy17仍然是一个LTS版本,用于漏洞和安全修复。

  • 放弃对python 3.4的支持。

v17.4.2

  • 固定的 #1377 通过反向端口 PR #1785 通过 PR #1786 :还原本机无wsgi HTTP服务器支持。

v17.4.1

  • #1738 通过 PR #1755 :恢复对响应头中“字节”的支持(从v18.0.1返回)。

v17.4.0

  • a95e619f :设置响应主体时,拒绝unicode值,使python 2上的行为与python 3上的行为相同。

  • 其他无关紧要的重构。

v17.3.0

  • #1193 通过 PR #1729 :依赖zc.lockfile进行会话并发支持。

v17.2.0

  • #1690 通过 PR #1692 :防止缓存304响应中的孤立事件对象。

v17.1.0

  • #1694 通过 PR #1695 :根据RFC 5987添加接受非ASCII文件名上载文件的支持。

v17.0.0

  • #1673 :cherrypy现在允许命名空间包作为其依赖项。无法处理命名空间包(如py2exe)的环境将需要向旧的cherrypy版本添加此类支持或pin。

v16.0.3

  • #1722 :固定 tempora 与版本1.13的依赖关系,以避免拉入命名空间包。

v16.0.2

  • #1716 通过 PR #1717 :修复了摘要式身份验证处理中对URL编码参数的处理,更正了v14.2.0中的回归。

  • #1719 通过 1d41828 :Digest身份验证工具现在将为指示“Digest”以外的方案返回状态代码401。

v16.0.0

  • #1688 通过 38ad1da 移除 basic_authdigest_auth 工具和 httpauth 模块,在V14.0.0中已正式弃用。

  • 已删除不推荐使用的属性::

    - ``cherrypy._cpreqbody.Entity.type`` deprecated in favor of
    

    cherrypy._cpreqbody.Entity.content_type

    • cherrypy._cprequest.Request.body_params deprecated in favor of py:attr:cherrypy._cprequest.RequestBody.params

  • #1377 :在本地服务器中,设置 req.status 使用字节(固定在 PR #1712

  • #1697 通过 841f795 :修复了在使用autoreloader时python 3.7上的错误 __file__None .

  • #1713 通过 15aa80d :修复测试运行期间发出的警告。

  • #1370 通过 38f199c :对于无效的头,HTTP 400失败。

v15.0.0

  • #1708 :从WebTest中删除了在Cheroot 6.1.0的cheroot.test.WebTest重构中删除的组件。

v14.2.0

  • #1680 通过 PR #1683 :现在支持基本身份验证和摘要式身份验证工具 RFC 7617 尽可能使用拉丁语1作为回退,进行UTF-8字符集解码。

v14.1.0

  • Cheroot PR #37 :添加对Unix域套接字上的对等凭据查找的支持。这使应用程序能够自动识别“谁在电线的另一端”。

    这是您启用它的方式:

    server.peercreds: True
    server.peercreds_resolve: True
    

    第一个选项将把远程数字数据放入wsgi env vars:app的pid、用户的id和group。

    第二个选项将把它解析为用户名和组名。

    为了防止昂贵的系统调用,数据是基于每个连接缓存的。

v14.0.1

  • #1700 :通过条件附加程序改进Windows Pywin32依赖项声明。

v14.0.0

  • #1688 :正式否决 basic_authdigest_auth 工具和 httpauth 模块,在使用时触发折旧警告。应用程序应该改为使用最近的 auth_basicauth_digest 工具。此不推荐使用的功能将很快在后续版本中删除。

  • 远离的 DeprecatedTool 长期弃用和残废 tidynsgmls 工具。参见 the rationale 为了这个改变。

v13.1.0

  • #1231 通过 PR #1654 :caseinsensitivedict现在重新使用 jaraco.collections 为一个不敏感的案例和校长提供一个更完整的界面。

    鼓励用户使用 jaraco.collections 除了处理Cherrypy中的头文件。

v13.0.1

  • PR #1671 :恢复对将CherryPy安装到对名称空间包有敌意的环境的支持,这是自11.1.0版本以来中断的。

v13.0.0

  • #1666 :删除对python 3.3的支持。

v12.0.2

  • #1665 :在请求处理中,当接收到无效的cookie时,呈现报告的实际错误消息,而不是猜测(有时不正确)发生了什么错误。

v12.0.1

v12.0.0

  • 放弃对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

  • cherrypy.engine.subscribe 现在可以在没有回调的情况下调用,在这种情况下,它返回一个期望回调的修饰符。

  • PR #1656 :图像现在使用无损压缩进行压缩,并且占用的空间更少。

v11.1.0

  • PR #1611 :将重定向的默认状态逻辑公开为 HTTPRedirect.default_status .

  • PR #1615HTTPRedirect.status 现在是实例属性并从中的值派生 args .尽管以前可以在实例上设置属性,并且这种更改防止了这种可能性,但Cherrypy从不依赖于这种行为,我们假定没有应用程序依赖于该接口。

  • #1627 :修复了代理工具中出现多个端口的问题。 request.base 因此在 cherrypy.url .

  • PR #1645 :添加了新的日志格式标记:

    • i 保留每个请求的UUID 4

    • z 以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

  • #1607 :放弃了对python 2.6的支持。

v10.2.2

  • #1595 :修复了cherrypy.url中路径的过度规范化。

v10.2.1

  • 删除对的意外依赖 graphviz 在python 2.6中。

v10.2.0

  • PR #1580CPWSGIServer.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

  • #1342 :关闭时修复断言错误。

v10.1.0

  • 撞到Cheroot 5.1.0。

  • #794 :首选设置会话cookie过期的最大期限,将msie hack移动到一个记录其用途的函数中。

v10.0.0

  • #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

v8.9.1

  • #1537 :还原对pywin32 for python 3.6的依赖。

v8.9.0

  • PR #1547 :已替换 cherryd 带有设置工具控制台入口点的distuils脚本。

    在守护进程模式下运行cherrypy时,分叉进程不再将目录更改为 / .如果该行为是您的应用程序所依赖和应该依赖的,请向项目提交一张罚单。

v8.8.0

v8.7.0

  • #645 :将绑定端口设置为0将绑定到临时端口。

v8.6.0

  • #1538#1090 :已从安装脚本中删除cruft,而依赖于 include_package_data 确保包中包含相关文件。注意,此更改会导致license.md不再包含在已安装的包中。

v8.5.0

  • pyopenssl支持现在包含在python 3构建中,消除了cherrypy包中python 2和python3之间最后的差异。这一变化是考虑到 #1399 .此更改还修复了RPM构建,如中所报告的 #1149 .

v8.4.0

  • #1532 :同时释放python 2的轮子,启用离线安装。

v8.3.1

  • #1537 :禁用对pypiwin32在python 3.6上的依赖,直到可以在该python版本上生成pypiwin32。

v8.3.0

  • 整合了一些文档,并在包的详细描述中包含更简洁的自述文件,如pypi上所示。

v8.2.0

  • #1463 :cherrypy测试现在在pytest下运行,并使用tox调用。

v8.1.3

  • #1530 :修复修饰处理程序吞食类型错误的问题。

v8.1.2

v8.1.1

  • #1497 :处理由引发的错误 ssl_module: 'builtin' 当客户端使用HTTP打开到HTTPS端口的连接时。

  • #1350 :修正V6.1.0中引入的回归,其中wsgigateway_0的环境构造传递的是一个参数而不是两个参数。

  • 其他杂项修复。

v8.1.0

  • #1473HTTPError 现在还可以作为上下文管理器工作。

  • #1487 :会话工具现在接受 storage_class 参数,取代新的已弃用的 storage_type storage_class 应该是要使用的实际会话子类。

  • 现在使用的版本 setuptools_scm 跟踪发布版本。因此,只需在repo中标记提交,就可以减少发布。版本号现在只存储在一个地方。

v8.0.1

  • #1489 通过 PR #1493 :另外,拒绝任何非字节的内容。

  • #1492 :SystemD插座激活。

v8.0.0

  • #1483 :删除不推荐使用的构造:

    • cherrypy.lib.http 模块。

    • unreprmodulesattributes 在里面 cherrypy.lib .

  • PR #1476 :删除对python memcached<1.58的支持

  • #1401 :处理nosslerors。

  • #1489wsgiserver.WSGIGateway.respond 应用程序现在必须生成字节而不是文本,这是规范所要求的。如果收到文本,它现在将引发ValueError,而不是使用ISO-8859-1进行静默编码。

  • 已从包中删除Unicode文件名,正在解决 pypa/pip#3894pypa/setuptools#704 .

v7.1.0

  • PR #1458 :基于无休止的计算机支持的工作,为Cherrypy服务器实现SystemD的套接字激活机制。

    Socket激活允许用户设置一个系统,这样SystemD就可以在一个端口上“按需”启动服务(有点像inetd和xinetd以前那样)。

v7.0.0

删除了引擎中旧配置键长期以来弃用的向后兼容性。请改用命名空间插件的配置:

  • autoreload_on->autoreload.on

  • 自动加载频率->自动加载频率

  • autoreload_match->autoreload.match

  • 重新加载文件->autoreload.files

  • 死锁轮询频率->超时监视器频率

v6.2.1

  • #1460 :在配置中设置信号处理程序时,修复bus.publish中的keyError。

v6.2.0

  • #1441 :添加了根据类型注释(主要在python 3中)自动转换请求参数的工具。例如::

    @cherrypy.tools.params()
    def resource(self, limit: int):
        assert isinstance(limit, int)
    

v6.1.1

  • 问题 #1411 :修复当启动CherryPy的主机解释器时自动加载失败的问题,使用 python -m .

v6.1.0

  • 将wsgiserver2和wsgiserver3模块组合成一个模块, cherrypy.wsgiserver .

v6.0.2

  • 问题 PR #1445 :更正其他拼写错误。

v6.0.1

  • 问题 #1444 :更正输入错误 @cherrypy.expose 装饰工。

v6.0.0

  • 现在需要安装工具来构建Cherrypy。不再支持纯distutils安装。这种变化允许Cherrypy依赖于其他包和它们的重用代码。在没有安装工具的情况下,仍然可以使用PIP安装预构建的Cherrypy软件包(车轮)。

  • six 现在是一个需求,随后的需求将在项目元数据中声明。

  • #1440 :退出更改 PR #1432 试图用unicode URL修复重定向,因为它还具有导致“location”成为 bytes 在Python 3上。

  • cherrypy.expose 现在上课。

  • cherrypy.config 现在在代码内部使用decorator。

v5.6.0

  • @cherrypy.expose 现在还将设置类的exposed属性。

  • 重新编写所有教程和内部用法,以更喜欢使用 expose 而不是显式设置属性。

  • 从教程中删除了特定于测试的代码。

v5.5.0

  • #1397 :修复在文件头中找到的文件名中带有分号和引号字符的文件名。

  • #1311 :添加了用于注册工具的装饰器。

  • #1194 :对cherrypy树中的script_name和path_info环境变量使用更简单的编码规则,允许非拉丁字符即使在 wsgi.version 不是 u.0 .

  • #1352 :确保即使缓存在文件中,也对多部分字段进行解码。

v5.4.0

  • cherrypy.test.webtest.WebCase 现在使用“webtest_interactive”环境变量禁用交互式测试(默认情况下仍然启用)。设置为“0”、“false”或“false”以禁用交互式测试。

  • #1408 :修复使用 next 属性。

  • #748 移除 cherrypy.lib.sessions.PostgresqlSession .

  • PR #1432 :修复重定向到Unicode URL的错误。

v5.3.0

  • #1202 :使用内置的SSL支持为SSL提供服务时,添加对指定证书颁发机构的支持。

  • 使用ssl.create_-default_-context(如果可用)。

  • #1392 :在OS X上捕获平台特定的套接字错误。

  • #1386 :修复对包含的URI的分析 :// 在路径部分。

v5.2.0

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 测试助手 openURLCPWebCase.getPage 更好地控制哪些异常可以引发。

  • 在通话中添加对直接关键字的支持(例如 foo=bar )在python 3下的配置文件上。

  • 添加其他验证以确定进程是否作为上的守护程序运行 cherrypy.process.plugins.SignalHandler 允许在CI工具下执行测试套件。

v5.0.1

  • 以下名称错误的错误修复 #94 .

v5.0.0

  • 已删除的不推荐支持 ssl_certificatessl_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

  • 固定的HTTP范围头长度为负值,大于内容大小。

  • 禁用了通用轮生成,因为wsgiserver具有python对偶性。

  • 拉取请求 #42 :更正中的类型错误 check_auth 使用加密时。

  • 拉取请求 #59 :handlerwrappertool的正确签名。

  • 拉取请求 #60 :修复sessionauth中错误使用登录屏幕的错误。

  • 问题 #1077 :仅支持调度器(python 3)中的关键字参数。

  • 问题 #1019 :允许在访问日志中记录主机名。

  • 拉取请求 #50 :修复了会话清理中的争用条件。

v3.5.0

  • 问题 #1301 :当传入队列已满时,现在拒绝其他连接。该功能已添加到CherryPy3.0中,但在3.1中无意中丢失。

v3.4.0

  • 其他质量改进。

v3.3.0

Cherrypy采用Semver。