关于DLA的基本知识:一篇文章回答你关于NVIDIA DLA的所有疑问 NVIDIA的DLA硬件是专门用于深度学习操作的固定功能加速器引擎。...NVIDIA的Jetson Orin SoC最多支持2个第二代DLA(第二代DLA在功耗效率方面表现最佳),而Xavier SoC最多支持2个第一代DLA。...为什么在Orin上使用DLA是必要的? DLA的峰值性能对Orin的总深度学习(DL)性能贡献在38%至74%之间(取决于电源模式,详见下表)。...DLA平均比GPU功耗效率高3倍至5倍(取决于电源模式和工作负载),下表显示了在JetPack 5.1.1下,根据不同的电源模式,基于Jetson AGX Orin 64GB的DLA相对于GPU的性能与功耗比率...注意: Jetson AGX Orin 64GB在30W和50W功率模式下的DLA TOPs与用于汽车领域的DRIVE Orin平台的最大时钟频率相当。
到了今天的云计算时代,笔者已经不再建议大家在云主机上使用ftp来做文件传输,原因如下: 配置困难: FTP文件传输有两种模式,PORT(主动)模式和PASSIVE(被动)模式,PORT(主动)模式在创建数据传输连接时...PASSIVE(被动)模式是如今使用最广泛的,可是即使是PASSIVE(被动)模式,传输过程中需要使用“命令连接”和“数据连接”配合才能完成一个文件传输,因此FTP服务器在配置时,常常需要在服务器端配置...在腾讯云的CVM论坛中,大量用户就被阻截在这个端口放行上,出现FTP用户登录成功,但是远程目录无法打开的情况。 参考 FTP的主动模式和被动模式,你应该用那种?...,传输速度有100%的提升。...它的缺点是只能在Linux系统上使用,当然Windows上也有ssh/sftp的服务端,但那就需要额外安装软件了。
一般来说我们会使用 coverage.py + pytest 或者是 pytest-cov + pytest 的组合。这篇文章将以最近我写的一个考核项目为例并贯穿全文。...这个项目是一个基于 FastAPI + SQLAlchemy 的后端服务,并在 tests 文件夹中存放了所有的测试实例第一次测试理论上,我们的测试已经涵盖了所有的 API 接口,按理说我们理应得到...100% 覆盖率并非所有的测试都能覆盖代码中的每一处角落,比如入口函数和部分异常处理就无法被覆盖,而你也不想再在这些地方浪费时间撰写测试,所以我们可以在代码覆盖率计算中屏蔽它们一般来说我们通常使用 omit...代码覆盖率的成就结语在这篇博客中,我尝试使用第二人称进行写作。...实际上,当我在面对同样的问题时,我尝试和我的 ChatGPT 和 Gemini 朋友交流,但他们并不能给我一个满意的答案,所以我把目光投向了网络搜索引擎和在线论坛,结合文档,我才终于找到问题产生的原因和解决方式
前置阅读推荐:如果你还不了解Claude Code子代理的基础概念,强烈建议先阅读我的上一篇文章《Claude Code子代理完全指南:从0到1构建你的AI编程军团》,它会帮你理解子代理的核心机制和配置方法...一、为什么Python开发需要专属子代理?...专精Django/FastAPI Web开发、数据处理和自动化。在Python项目和性能优化时主动使用。...实现>90%的测试覆盖率 - 性能基准测试和内存分析 - 使用bandit和safety进行安全扫描 - 使用black和isort自动格式化代码 - 使用ruff进行代码检查,mypy进行类型检查 -...PEP 8 = Python Enhancement Proposal 8 就是Python的"交通规则": - 缩进用4个空格 - 函数名用小写+下划线 - 类名用大驼峰 - 一行不超过79字符 #
前言 还是比较简单的,直接写代码啦 FastAPI 的单元测试:https://www.cnblogs.com/poloyy/p/15354901.html 直接上代码 #!...import FastAPI from fastapi.testclient import TestClient from fastapi.websockets import WebSocket app...= FastAPI() testClient = TestClient(app) @app.websocket("/ws") async def connect(websocket: WebSocket...text"):将给定的数据发送到应用程序,使用 mode="binary" 通过二进制数据帧发送 JSON 接收数据的三种方法 .receive_text():等待应用程序发送的传入文本并返回它 .receive_bytes...():等待应用程序发送的传入字节串并返回它 .receive_json(mode="text"):等待应用程序发送的传入 json 数据并返回它,使用 mode="binary" 通过二进制数据帧发送
前言 我们之前分享分享使用FastAPI 学习之路(三十八)Static Files,这次我们分享的是开发接口的测试。 正文 对于开发好的接口需要进行测试之后次才能发布。...当我们在开发的时候,没有提测前,我们也要对我们自己的接口进行测试,那么FastAPI 自身也带了针对开发的接口的测试的。我们看下FastAPI官方给我们了什么样的支持呢。...可是我们简单的写的,运行后只是没有报错而已。证明执行成功,但是在实际中,我们做还是不够的,我们想要看着是否执行通过。如何实现呢。...改造后的测试文件 from main import app import unittest from fastapi.testclient import TestClient class FastApiTest...在开发过程中的接口测试,很简单,我们也不用启动服务端。
FastAPI 的单元测试 对于服务端来说,通常会对功能进行单元测试,也称白盒测试 FastAPI 集成了第三方库,让我们可以快捷的编写单元测试 FastAPI 的单元测试是基于 Pytest + Request...import FastAPI from fastapi.testclient import TestClient app = FastAPI() @app.get("/") async def...name__ == '__main__': uvicorn.run(app="37_pytest:app", reload=True, host="127.0.0.1", port=8080) 在该文件夹下的命令行敲...pytest 37_pytest.py 运行结果 TestClient 的源码解析 继承了 requests 库的 Session 所以可以像使用 requests 库一样使用 TestClient...import FastAPI from fastapi.testclient import TestClient app = FastAPI() @app.get("/") async def
今天的文章分享如下在 FastAPI 框架下,使用 pytest 来自动化测试数据库相关的接口,文章的最后给出全部代码。...最近越来越喜欢使用 FastAPI 来写后端服务了,因为它是 Python 领域性能最好的 Web 框架,它专注于提供高性能的 Web API,其他方面并不限制你的手脚,可以随意使用你喜欢的三方库,这点类似于...需要说明的是,后端服务基本是离不开关系型数据库的,我之前是使用 Django,Django 的 ORM 太优秀了,以至于我从 Django 转 FastAPI 有点很不适应。...,我们会使用 pytest 进行自动化单元测试,根据数据库的记录数来断言,但是,每测试一次,数据库中的记录就保存了下来,你下次测试时如果不手动清理,那测试仍然可能失败。...至于为什么放在 conftest.py中,请查阅 pytest 文档,这里不展开, 接下来,利用这些 fixture,编写单元测试用例,一个示例如下: from fastapi.testclient
可以使用和 Pydantic Model 的所有相同验证功能和工具,例如不同的数据类型和使用 Field() #!...,Pydantic 将以不区分大小写的方式读取环境变量 因此,仍会为属性 app_name 读取为大写变量 APP_NAME 接下来它将转换和验证数据 因此,当使用该 settings 对象时,将拥有声明的类型的数据...前言 在某些情况下,提供依赖项的 Settings 会有用,而不是让全局对象拥有可随处使用的 Settings 在测试期间会有用,因为使用自定义 Settings 覆盖依赖项非常容易 config.py...开头的文件是类 Unix 系统(如 Linux 和 macOS)中的隐藏文件 但是 dotenv 文件实际上不必具有那个确切的文件名 Pydantic 支持使用外部库读取这类型的文件 安装第三方库 pip...() 是 functools 的一部分,它是 Python 标准库的一部分 使用 @lru_cache() 可以避免为每个请求一次又一次地读取 .env 文件,同时可以在测试期间覆盖它的值 有参数的函数的栗子
在我们进行接口测试前需要安装pytest和coverage,可能还需要pytest-cov插件,因为pytest-cov可以更方便地与pytest集成。...不过,Coverage.py本身也可以单独使用,但用pytest-cov会更方便。具体的操作步骤可以参考以下方案。...skip_covered = true # 隐藏已覆盖的文件fail_under = 80 # 覆盖率低于80%时报错六、运行测试并收集覆盖率# 方式1:直接使用pytest-cov插件pytest...使用omit过滤无需统计的文件(如初始化文件)。Mock隔离依赖:使用unittest.mock模拟数据库,避免真实依赖对覆盖率的影响。...九、常见问题Q1:为什么覆盖率报告中某些行未统计?A1:检查.coveragerc中的source和omit配置,确保目标文件在统计范围内。Q2:如何仅统计接口测试覆盖率?
能够在测试中使用异步函数可能很有用 例如,当异步查询数据库时,假设想要测试向 FastAPI 应用程序发送请求,然后验证后端是否成功在数据库中写入了正确的数据,同时使用异步数据库 FastAPI 代码...应用程序使用普通 def 函数而不是 async def,它仍然是一个异步应用程序 TestClient 在内部使用标准 pytest 在正常 def 测试函数中调用异步 FastAPI 应用程序做了一些魔术...但是当在异步函数中使用调用异步 FastAPI 应用程序时,这种魔法就不再起作用了 通过异步运行测试用例,不能再在测试函数中使用 TestClient,此时有一个不错的替代方案,称为 HTTPX HTTPX...是 Python 3 的 HTTP 客户端,它允许像使用 TestClient 一样查询 FastAPI 应用程序 HTTPX 的 API 和 requests 库几乎相同 重要的区别:用 HTTPX...不仅限于同步,还可以发出异步请求 @pytest.mark.anyio 告诉 pytest 这个测试函数应该异步调用 AsyncClient 通过使用 FastAPI app 创建一个 AsyncClient
所以,你有的其他的 Starlette 代码也能正常工作。FastAPI 实际上是 Starlette的一个子类。所以,如果你已经知道或者使用 Starlette,大部分的功能会以相同的方式工作。...通过 FastAPI 你可以获得所有 Starlette 的特性 ( FastAPI 就像加强版的 Starlette ): 令人惊叹的性能。...100% 测试覆盖率。 代码库 100% 类型注释。 Pydantic 特性 FastAPI 和 Pydantic 完全兼容(并基于)。所以,你有的其他的 Pydantic 代码也能正常工作。...可扩展: Pydantic 允许定义自定义数据类型或者你可以用验证器装饰器对被装饰的模型上的方法扩展验证。 100% 测试覆盖率。...为什么要学FastAPI 最重要就是python香啊,用python能做很多数据处理,然后python的web框架也很多,但是像FastAPI这样灵活简洁的还是极少的。
前言 上一篇我们分享了FastAPI 学习之路(四十七)WebSockets(四)接口测试,我们进行了接口测试,最后发现有问题,其实当时的改动呢,是针对代码的改造,但是仔细研究下。...其实那个地方写的没有问题,但是在测试中发现了问题。...我们执行正常是没有报错的 我们想要看下代码的覆盖率,应该如何看呢。我是用的coverage。...然后看index.html 因为我的main.py还有其他的方法,我们还需要点进去看我们对应方法的覆盖率。 我们可以看到,我们的关键代码还差了一行没有覆盖到。...就是不带token的访问,我们在增加下一条case去覆盖下。
并不是实际上抛出的异常,不能使用自定义异常的方法和属性,一般只检查str(error) setup.cfg里的一些配置 [tool:pytest] python_paths = ....;好在根目录下运行py.test的时候扫描到需要测试的包 norecursedirs = .git .tox venv* requirements*; 不扫描的目录 python_files = test...*.py ;测试代码 filterwarnings = ignore::DeprecationWarning ;在输出中过滤掉特定的警告信息 配合pytest-cov库进行代码覆盖率检查 安装pytest-cov...库(依赖于coverage库)后可以很方便地进行代码覆盖率的配置。...py.test --cov=app --cov-report=xml --cov-report=html 网页版的代码覆盖率报告在htmlcov目录下。
测试 APIFastAPI 还提供了一个内置的测试客户端,用于测试您的应用程序。您可以使用 TestClient 来模拟 HTTP 请求,并使用 unittest 断言来检查响应是否正确。...下面是一个测试客户端的示例:from fastapi.testclient import TestClientfrom main import appclient = TestClient(app)def...我们还使用 unittest 的 assertEqual 断言来检查响应状态码和 JSON 数据是否正确。...结论FastAPI 提供了许多有用的功能,使得设计、实现、测试和文档化 API 变得更加容易和高效。...无论您是在构建小型 Web 服务还是大型 Web 应用程序,FastAPI 都可以帮助您快速开发和部署高性能 API。
) 2.1、安装 2.2、参数 2.3、示例 2.4、禁用随机 2.5、禁用插件 1、pytest-cov(单元测试覆盖率) 在做单元测试时,一般都会参考代码覆盖率来衡量代码的质量。...pytest-cov 插件可用来统计单元测试覆盖率。...1.1、安装 在命令行中运行以下命令进行安装: pip install pytest-cov 或者(使用国内的豆瓣源,数据会定期同步国外官网,速度快。)...文件代码覆盖率为24%,其余代码覆盖率为100%。...4、使用参数 --random-order-seed 在使用随机执行时,如果想按照上次随机执行用例的顺序,可以使用此参数。
前言 我们在做测试的时候,经常遇到领导的灵魂拷问:你的测试用例覆盖率是多少,达到100%了么?你如何保证你的测试质量?...测试用例的覆盖率如何统计呢,如何知道开发的代码,我们都测到了,不会存在漏测的情况。...pytest-cov 先命令行安装 pytest-cov 2.10.1版本 pip install pytest-cov==2.10.1 环境要求: 1.python3.6.6 版本 备注:其它版本没试过...31%,其它文件都是100%覆盖,这就说明我们单元测试代码测试覆盖率是31% 还有一个指标是测试用例的执行率,测试用例在test_pay.py文件,执行率是100%,说明用例全部执行了。...生成html的报告 pytest —cov —cov-report=html 执行完成,在项目根目录会生成 htmlcov 目录 ? 运行 index.html 文件查看代码覆盖率 ?
(代码风格统一、类型检测、测试覆盖率高、自动检测) 在本文中,我将介绍如何建立一个可以做到这些点的项目。您可以按照步骤操作,也可以直接跳到 使用 cookiecutter 生成项目 部分(老手)。...Pipenv 很好地解决了使用相同的库,版本不同的这一问题,Pipenv 在过去的一段时间里获得了广泛的关注和认可,你可以放心使用。...用 pytest 和 pytest-cov 进行测试 使用 pytest[8] 编写测试非常容易,消除编写测试的阻力意味着可以快速的编写更多的测试!...pipenv run pytest --cov --cov-fail-under=100 --cov-fail-under=100 是设定项目的测试覆盖率如果小于 100% 那将认定为失败。...[13] 在文件保存上运行 pytest 欢迎热爱技术和开源的小伙伴加入 HG 推出的译文亦舞系列的翻译中来,可添加微信号:HelloGitHub(备注:翻译)。
使用密码和 Bearer 的简单 OAuth2 4. 使用(哈希)密码和 JWT Bearer 令牌的 OAuth2 5. 多个应用文件 5.1 APIRouter 6....它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准 安装 python-jose 以在 Python 中生成和校验 JWT 令牌 pip install python-jose[cryptography...多个应用文件 __init__.py 可以使得目录下的包可以被其他目录导入,该文件可以为空 5.1 APIRouter # dependencies.py # 我们了解到我们将需要一些在应用程序的好几个地方所使用的依赖项...APIRouter, # 而不会影响使用admin.router的任何其他代码 ) # 也可以在另一个 APIRouter 中包含一个 APIRouter # router.include_router...测试 from fastapi import FastAPI from fastapi.testclient import TestClient app = FastAPI() @app.get("
常见响应状态码: 100以上,信息;很少直接使用; 200以上,成功;200是OK,201是Created,204是No Content; 300以上,重定向;304是Not Modified...HTTPException异常时,FastAPI有很多默认的handler,比如RequestValidationError,可以使用此方法重写默认的handler: from fastapi import...在FastAPI里面,你可以在路径操作函数中添加依赖的声明,然后FastAPI会自动加载这些依赖。...通过openssl生成: openssl rand -hex 32 中间件 FastAPI这里的中间件,指的是一个函数,它在请求处理前被调用,在响应返回前调用。...单元测试 使用pytest和TestClient: from fastapi import FastAPI from fastapi.testclient import TestClient app