Changelog

版本20.9

特征

  • #1887 在websockets中传递子协议(包括sanic服务器和ASGI)

  • #1894 自动设置 test_mode 应用实例上的标志

  • #1903 添加更新应用程序值的新统一方法

  • #1906, #1909 添加WEBSOCKET_PING_TIMEOUT和WEBSOCKET_PING_间隔配置值

  • #1935 更新了httpx版本依赖项,在v20.12中将其作为依赖项删除

  • #1937 添加了auto、text和json回退错误处理程序(在v21.3中,默认值将从html改为auto)

错误修正

  • #1897 解决流中未读字节的异常

折旧和清除

  • #1903 配置来自, 从_pyfile配置,和config.from_对象已弃用并设置为在v21.3中删除

开发人员基础设施

  • #1890, #1891 更新isort调用以与新API兼容

  • #1893 从中删除版本节设置.cfg

  • #1924 添加--pytest的严格标记

改进的文档

  • #1922 向自述文件添加显式ASGI法规遵从性

版本20.6.3

错误修正

  • #1884 恢复到多处理模式

版本20.6.2

特征

  • #1641 为IPv6和UNIX套接字正确地实现了套接字绑定

版本20.6.1

特征

  • #1760 向websocket路由添加版本参数

  • #1866 添加 sanic 作为入口点命令

  • #1880 为url_添加websockets的处理程序名称以供使用

错误修正

  • #1776 修复列表中主机参数问题的错误

  • #1842 修复静态处理程序酸洗错误

  • #1827 修复OSX py38和Windows上的重新加载程序

  • #1848 反向命名的_response_middlware执行顺序,以匹配正常响应中间件的执行顺序

  • #1853 修复尝试pickle包含websocket路由的应用程序时的pickle错误

折旧和清除

  • #1739 弃用body_字节以合并到body中

开发人员基础设施

  • #1852 修复Python nightlies上CI测试环境的命名

  • #1857 将websockets版本调整为设置.py

  • #1869 在可选[]中包装run()的“protocol”类型注释

改进的文档

  • #1846 更新文档以澄清响应中间件的执行顺序

  • #1865 正在修复隐藏文档的rst格式问题

版本20.6.0

Released, but unintentionally ommitting PR #1880, so was replaced by 20.6.1

版本20.3.0

特征

  • #1762 Add srv.start_serving() and srv.serve_forever() to AsyncioServer

  • #1767 Make Sanic usable on hypercorn -k trio myweb.app

  • #1768 正常错误和更漂亮的错误页面没有回溯

  • #1769 文件响应中的代码清理

  • #1793#1819 升级 str.format() 到f串

  • #1798 使用python3.8允许在MacOS上使用多个worker

  • #1820 不要在异常中设置内容类型和内容长度标头

错误修正

  • #1748 删除中的循环参数 asyncio.Event 在python3.8中

  • #1764 允许路线装饰器再次堆叠

  • #1789 Fix tests using hosts yielding incorrect url_for

  • #1808

    修复Windows上的Ctrl+C和测试

折旧和清除

  • #1800 Begin deprecation in way of first-class streaming, removal of body_init, body_push, and body_finish

  • #1801 完全弃用 #1666 字典上下文的 request 物体。

  • #1807 删除可直接从应用程序读取的服务器配置参数

  • #1818 Complete deprecation of app.remove_route and request.raw_args

依赖关系

  • #1794 碰撞 httpx 至0.11.1

  • #1806 进口 ASGIDispatch 从顶层 httpx (来自第三方折旧)

开发人员基础设施

  • #1833 解决文档构建的损坏

改进的文档

  • #1755 Usage of response.empty()

  • #1778 更新自述文件

  • #1783 修正打字错误

  • #1784 已更正将MD移到RST的文档的更改日志 (#1691

  • #1803 更新配置文档以匹配默认配置

  • #1814 更新获取_开始.rst

  • #1821 更新到部署

  • #1822 使用20.3中的更改更新文档

  • #1834 听众顺序

版本19.12.0

错误修正

  • 修复蓝图中间件应用程序

    目前,注册的任何blueprint中间件,无论使用哪个blueprint,都将应用于 @app@blueprint 一模一样。

    作为此更改的一部分,基于蓝图的中间件应用程序是基于它们注册的位置来实施的。

    • 如果您通过 @blueprint.middleware 然后它将只应用于蓝图定义的路由。

    • 如果您通过 @blueprint_group.middleware 然后它将应用于组中所有基于蓝图的路由。

    • 如果通过 @app.middleware 然后它将应用于所有可用的路由 (#37 ()

  • 固定 url_for 缺少服务器名的行为

    如果 SERVER_NAME was missing in the app.config entity, the url_for on the request and app were failing due to an AttributeError. This fix makes the availability of SERVER_NAME on our app.config an optional behavior. (#1707

改进的文档

  • 将文档从MD移动到RST

    将所有文档从标记移动到重新构造的文本,与其他文档一样,以统一方案并使将来更容易更新文档。 (#1691 ()

  • 修复文档 getgetlistrequest.args

    添加其他示例以显示 getlist and fix the documentation string for request.args behavior (#1704

版本19.6.3

特征

  • 启用镇民支持

    作为这个功能的一部分, towncrier is being introduced as a mechanism to partially automate the process of generating and managing change logs as part of each of pull requests. (#1631

改进的文档

  • 记录基础结构更改

    • 使有一个共同点 CHANGELOG GitHub页面和文档的文件

    • 修复Sphinix弃用警告

    • 修复由于无效导致的文档警告 rst 缩进

    • 通过 CONTRIBUTING.rst (#1631

版本19.6.2

特征

  • #1562 Remove aiohttp dependency and create new SanicTestClient based upon requests-async

  • #1475 增加了ASGI支持(Beta版)

  • #1436 从对象字符串添加配置支持

错误修正

  • #1587 为Expect头添加缺少的句柄。

  • #1560 允许禁用传输编码:分块。

  • #1558 修复正常关机。

  • #1594 严格的斜线行为修复

折旧和清除

  • #1544 删除对distutil的依赖

  • #1562 放弃对Python3.5的支持

  • #1568 不赞成删除路由。

警告

Sanic将不支持19.6版及以后的Python3.5。然而,版本18.12LTS的支持期将延长到2020年12月,因此通过了Python的官方支持版本3.5,该版本将于2020年9月到期。

版本19.3

特征

  • #1497 为多部分/表单数据请求添加对零长度和RFC 5987编码文件名的支持。

  • #1484 的类型 expires 属性 sanic.cookies.Cookie 现在强制为类型 datetime .

  • #1482 为添加支持 stream 参数 sanic.Sanic.add_route() 提供给 sanic.Blueprint.add_route() .

  • #1481 接受类型为的路由参数的负值 intnumber .

  • #1476 已弃用 sanic.request.Request.raw_args -它的一个基本缺陷是删除重复的查询字符串参数。补充 sanic.request.Request.query_args 作为原始用例的替代。

  • #1472 Remove an unwanted None check in Request class repr implementation. This changes the default repr of a Request from <Request> to <Request: None />

  • #1470 添加了2个新参数 sanic.app.Sanic.create_server :

    • return_asyncio_server -是否返回asyncio.Server。

    • asyncio_server_kwargs -传递给 loop.create_server 用于sanic正在使用的事件循环。

    这是一个突破性的变化。

  • #1499 添加了一组测试用例来测试和基准路由解析。

  • #1457 类型 "max-age" 价值 sanic.cookies.Cookie 现在被强制为整数。非整数值替换为 0 .

  • #1445 增加了 endpoint 属性到传入 request ,包含处理程序函数的名称。

  • #1423 改进的请求流。 request.stream 现在是一个有界大小的缓冲区,而不是一个无界队列。呼叫者现在必须呼叫 await request.stream.read() 而不是 await request.stream.get() 阅读身体的每一部分。

    这是一个突破性的变化。

错误修正

  • #1502 Sanic was prefetching time.time() and updating it once per second to avoid excessive time.time() calls. The implementation was observed to cause memory leaks in some cases. The benefit of the prefetch appeared to negligible, so this has been removed. Fixes #1500

  • #1501 修复当进程作为模块启动时自动重新加载程序中的错误。 python -m init0.mod1 sanic服务器的启动位置 init0/mod1.py 具有 debug 启用并导入中的另一个模块 init0 .

  • #1376 Allow sanic test client to bind to a random port by specifying port=None when constructing a SanicTestClient

  • #1399 添加了在蓝图组上指定中间件的功能,以便组中蓝图生成的所有路由都应用了中间件。

  • #1442 允许使用 SANIC_ACCESS_LOG 在未显式传递给时启用/禁用访问日志的环境变量 app.run() . 这允许禁用访问日志,例如在通过gunicorn运行时。

开发人员基础设施

  • #1529 更新项目PyPI凭据

  • #1515 修复导致travis生成失败的linter问题(修复1514)

  • #1490 在文档构建中修复python版本

  • #1478 升级setuptools版本并在doc build中使用本机docutils

  • #1464 升级pytest,并修复caplog单元测试

改进的文档

  • #1516 修复异常文档中的拼写错误

  • #1510 修复异步示例中的输入错误

  • #1486 文件打字错误

  • #1477 修复README.md中的语法

  • #1489 在扩展列表中添加了“数据库”

  • #1483 将sanic zipkin添加到扩展列表

  • #1487 从扩展列表中删除了指向已删除repo Sanic OAuth的链接

  • #1460 18.12变更日志

  • #1449 添加修改请求对象的示例

  • #1446 更新自述文件

  • #1444 更新自述文件

  • #1443 更新自述文件,包括新徽标

  • #1440 修复次要类型和pip安装指令不匹配

  • #1424 文档增强功能

注:出于包装目的跳过了19.3.0,未在PYPI上发布。

版本18.12

18.12.0

  • 变化:

    • 代码库测试覆盖率从81%提高到91%。

    • 在静态文件文档中添加了流文件和主机示例

    • 根据要求添加附加和完成正文内容的方法(1379)

    • 与.appveyor.yml集成以支持Windows CI

    • 添加了有关af-inet6和af-unix套接字使用的文档

    • 代码样式采用黑色/isort

    • 连接丢失时取消任务

    • 简化请求IP和端口检索逻辑

    • 在加载配置文件中处理配置错误。

    • 与用于CI的codecov集成

    • 为配置部分添加丢失的文档。

    • 取消预测handler.log

    • 版本0.0.10的固定httptools要求+

  • 修正:

    • 固定 remove_entity_headers 辅助函数(#1415)

    • 修复使用Blueprint.group()将Blueprint与默认的url前缀分组时的TypeError,使用os.path.normpath避免无效的url前缀,如api//v1 f8a6af1重命名 http 模块到 helpers 防止与内置Python http库发生冲突(fixes#1323)

    • 在Windows上修复单元测试

    • 固定SANIC记录器的名称间距

    • 修复decorator示例中缺少的引号

    • 修复带引用参数的重定向

    • 最新蓝图代码的修复文档

    • 修复与降价列表相关的 Latex 文档的构建

    • 在 app.py 中修复循环异常处理

    • 修复Windows和其他平台中的内容长度不匹配

    • 修复静态文件的范围头处理(1402)

    • 修复记录器并使其工作(1397)

    • fix-type pikcle->pickle-in-multiprocessing测试

    • 修复pickle blueprints更改在blueprint中name的“name”部分中传递的字符串,以匹配blueprint模块属性名的名称。这允许对蓝图进行pickle和unpickle,而不会出现错误,这是在Windows中以多处理模式运行SANIC的要求。添加了一个关于酸洗和解压蓝图的测试,添加了一个关于酸洗和解压SANIC本身的测试,添加了一个关于在带有蓝图的应用程序上启用多处理的测试(只有在Windows上运行测试时才有助于捕获此错误)。

    • 修复用于日志记录的文档

版本0.8

0.8.3

  • 变化:

    • 所有权变为组织“巨大成功”

0.8.0

  • 变化:

    • 添加服务器发送的事件扩展(innokenty lebedev)

    • 请求处理程序任务取消的优雅处理(Ashley Sommer)

    • 重定向前清理URL(aveao)

    • 向请求添加url_字节(johndoe46)

    • PY37支持Travisci(云斯坦福)

    • OSX(Garyo)的自动重新加载支持

    • 添加UUID路由支持(Volodymyr Maksymiv)

    • 添加可暂停的响应流(Ashley Sommer)

    • 将weakref添加到请求槽(vopankov)

    • 将Ubuntu 12.04从测试夹具中移除(Yunsford)

    • 允许在附加路由(Kinware)中使用流处理程序

    • 使用Travis_retry治疗毒性(Raphael认为)

    • 为测试客户端(yunsford)更新aiohttp版本

    • 为清晰起见添加重定向导入(yingshaoxo)

    • 更新HTTP实体头(arnulfo sol_s)

    • 添加寄存器侦听器方法(Stephan Fitzpatrick)

    • 删除Windows的uvloop/ujson依赖项(abuckenheimer)

    • 204/304响应上的内容长度标题(Arnulfo Sol_s)

    • 扩展WebSocketProtocol参数并添加文档(Bob Olde Hampsink,Yunsford)

    • 将开发状态从pre-alpha更新为beta(maksim anisenkov)

    • keepalive timout日志级别更改为debug(arnulfo sol_s)

    • 由于Pytest dev/Pytest 3170(Maksim Aniskenov),将Pytest固定到3.3.2

    • 将python 3.5和3.6安装在docker容器上进行测试(shahin azad)

    • 添加对蓝图组和嵌套的支持(elias tarhini)

    • 删除Windows安装程序的uvloop(aleksandr kurlov)

    • 自动重新加载(Yaser Amari)

    • 文档更新/修复(多个贡献者)

  • 修正:

    • 修复:在Linux中自动重新加载(Ashley Sommer)

    • 修复:aiohtp>3.3.0(ashley-sommer)的中断测试

    • 修复:在Windows上默认禁用自动重新加载(abuckenheimer)

    • 修复(1143):使用gunicorn(hqy)关闭访问日志

    • 修复(1268):支持文件响应的状态代码(Cosmo Borsky)

    • 修复(1266):将content_-type标志添加到sanic.static(cosmo borsky)

    • 修复:添加websocket路由(ciscorn)中缺少子协议参数

    • fix(1242):CI头响应(云斯坦福)

    • fix(1237):为websockets添加版本约束(yunsford)

    • 修复(1231):内存泄漏-始终释放资源(Phillip Xu)

    • 修正(1221):如果存在运输,提出请求真实(拉斐尔认为)

    • 修复aiohttp>=3.1.0(ashley sommer)的失败测试

    • 修复“尝试一切”示例(pymaniacgr,kot83)

    • 修复(1158):默认为在调试模式下自动重新加载(Raphael认为)

    • 修复(1136):errorhandler.response handler调用太严格(Julien Castiaux)

    • 修复:raw需要像object(cloudship)这样的字节

    • 修复(1120):将列表传递给路由装饰器的主机arg(timothy ebiuwhe)

    • 修复:多部分/表单数据分析器(dirkguijt)中的错误

    • 修复:值为空时缺少参数的异常(nyankiyoshi)

    • Fix:参数检查(Howie Hu)

    • Fix(1089):带有命名参数和不同方法的路由问题(Yunsford)

    • Fix(1085):多工模式下的信号处理(云斯坦福)

    • 修复:readme.rst(cosven)中的单引号

    • 修正:方法错误(dmitry dygalo)

    • 修正:记录IP和端口的响应正确输出(wibowo arindrarto)

    • 修复(1042):异常处理(Raphael认为)

    • 修复:中文uris(howie hu)

    • 修正(1079):self.transport为none时的超时错误(Raphael认为)

    • 修正(1074):修正路线有斜线时的严格斜线(拉斐尔认为)

    • 修复(1050):将Samesite cookie添加到cookie键中(Raphael认为)

    • 修复(1065):允许在服务器启动后添加任务(Raphael认为)

    • 修正(1061):未经授权的例外中的双引号(拉斐尔认为)

    • 修复(1062):在添加任务方法中注入应用程序(Raphael认为)

    • 修复:更新environment.yml以读取docs(eli uriegas)

    • 修正:触发响应超时时取消请求任务(jeong yunwon)

    • 修正(1052):不允许对符合RFC7231的方法作出响应(Raphael认为)

    • 修正:ipv6地址和套接字数据格式(dan palmer)

注意:变更日志在0.1和0.7之间未维护

版本0.1

0.1.7

  • 颠倒静态URL和目录参数以满足规范

0.1.6

  • 静态文件

  • 延迟加载cookie

0.1.5

  • Cookies

  • 蓝图侦听器和排序

  • 快速路由器

  • 修复:中等大小的日志请求的文件读取不完整

  • 打破:在开始后和停止前,现在把 sanic 作为他们的第一个参数。

0.1.4

  • 多重处理

0.1.3

  • 蓝图支持

  • 更快的响应处理

0.1.1-0.1.2

  • 努力通过CI更新pypi

0.1.0

  • 向公众发布