Planet Python 中文 笔记

Planet Python 中文

Planet Python 网站是一个星球网站,它聚合了来自各种来源的 Python 相关内容,包括博客、新闻网站和其他在线出版物。 该网站为个人提供了一个了解 Python 编程世界最新发展的集中点。网站上的内容包括教程、新闻、项目公告和关于各种 Python 相关主题的讨论。 用户可以访问该网站,以了解 Python 社区、新的发布、会议和使用 Python 编程语言的最佳实践。网站的目的是帮助推广和传播 Python 相关内容,从而促进 Python 社区的增长和发展。

笔记线程

作者提出了一种利用人工智能进行文档测试的新方法。在更新项目的教程和 Markdown 格式文档后,作者考虑使用 AI 来检验其有效性。作者指示 ChatGPT 创建一个隔离的聊天环境,在该环境中读取文档并尝试使用所述工具。AI 表示同意,生成了新聊天的详细提示词,并监控其进展。随后,AI 反馈了其在文档中发现的缺陷。例如,它指出文档缺乏关于该工具预期在 Linux 环境下使用的明确声明,尽管提供了 Linux 和 WSL 的设置细节。这导致 AI 尝试在 Windows 环境中运行该工具,从而凸显了作者隐含的假设,需要进一步澄清。作者赞赏这种方法,即让 AI 扮演新用户,主动尝试完成任务并报告遇到的问题。这超越了单纯的措辞审查,提供了对文档可遵循性的实际测试。虽然 AI 可能会提出无效的观点,但人类判断在决定实施哪些更改方面仍然至关重要。作者强调,文档必须同时服务于人类读者和 AI 助手。随着越来越多的用户可能使用 AI 进行项目交互,文档需要清晰到足以供人类直接使用,并能让 AI 有效地辅助用户。这意味着需要考虑文档在支持 AI 交互方面的效果,而不仅仅是专门为 AI 撰写。最终,作者提出应像测试代码一样测试文档,即评估用户(无论是人类还是 AI)是否能够成功遵循文档以完成任务。这种创新的测试方法为提升未来项目中文档的有效性提供了新的视角。
CdXz5zHNQW_Tocx7RtYip.png
本文介绍了 Gnomon,一种解决软件开发中沟通断裂的解决方案。在软件开发的语境下,不同利益相关者对系统描述往往产生不同的解读。作者凭借多元化的从业经验指出,诸如“修复”一词在“我们正在构建一个代理来修复发票”这类表述中,会导致理解分歧并引发项目失败。大型语言模型(LLMs)的兴起进一步加剧了这一现象,其生成的架构设计图虽看似合理,却可能存在不准确之处。Gnomon 通过提供一种小型语言 gnomocode 以及一个编译器来解决上述问题。该编译器将语句与本体(ontology)进行验证。LLM 将自然语言翻译为 gnomocode,编译器检查其有效性,输出结果可被可视化、查询或转换回文本。该编译器采用 Python 编写,使用了 Lark、rdflib 和 pySHACL 等工具。Gnomon 的动机在于弥合口语与可执行图之间的鸿沟,确保一致性与可问责性。其目标支持双向运作:从对话到模型,以及从代码/图到可读文本。本文主要聚焦于从对话到模型的前向方向。Gnomon 的关键需求包括:术语无歧义、原生支持现代架构元素(LLMs、记忆、工具)、对人类和模型均具备可读性、从单一模型生成多种视图、版本控制,以及表达不确定性的能力。该方法论的演进源于尝试更简单的方法(如直接询问 LLM 或使用结构化对象),但这些方法未能解决架构图的复杂性及信息缺失问题。现有的表示法(如 UML 或 C4)也被发现不足,原因在于其符号固定、缺乏“可能”类陈述,且语义检查能力有限。采用带编译器的自定义语言被证明是最可行的解决方案。编译器能够提供本地化错误反馈,指导 LLM 进行修正。Gnomon 的核心在于其本体,该本体构建于现有的 RDF 词汇表(如 SKOS、PROV-O 和 DPV)之上。由 57 个术语和十二个模块构成的内核定义了关系与规则,确保一致性。该本体规定了词汇表、编译器错误消息、文本生成以及图视图。gnomocode 本身旨在兼顾可读性与精确性,其语法借鉴了 Markdown、Python 和图查询语言。它支持声明、属性赋值、动作和流等概念。一个关键特性是能够表达事实的置信度水平,使系统能够识别需要进一步确认的信息。该编译器采用 Python 编写,使用 Lark 进行解析。其语法直接由本体生成,这意味着扩展语言涉及修改数据而非代码。这种模块化设计允许在不改变核心解析规则的前提下灵活扩展词汇。
CdXz5zHNQW_IUf3kDkWHC.png
biwak.info 开发了一款面向移动设备的阿尔卑斯山小屋地图,并整合了 33,437 个具名山峰的详细信息,数据源自 OpenStreetMap 和 Wikidata。为优化在连接受限的移动设备上的加载性能,需对庞大的 15.4 MB 山峰数据进行高效加载。解决方案是将数据分割为基于瓦片的较小 JSON 文件,并沿用 Leaflet 现有的滑移地图瓦片网格。这使得浏览器仅能获取用户当前地图视图中可见的相关山峰数据。数据网格选定固定的缩放级别 10,以在请求数量与每个下载文件的大小之间取得平衡。在此级别下,一个阿尔卑斯瓦片尺寸约为 27x27 公里,而典型手机在缩放级别 12 时最多触及六个瓦片,中位瓦片大小为 13 KB(压缩后为 3.6 KB)。一个 Python 脚本用于生成这些瓦片文件,并附带非空瓦片的清单,确保仅请求必要的文件。每个瓦片的 JSON 数据经过紧凑化处理,采用整数坐标和字段头来最小化文件大小。山峰按显著性或孤立度进行排序,以控制不同地图缩放级别下的可见性,仅在较低缩放级别显示更为显著的山峰。客户端 JavaScript 利用 Leaflet 的 'moveend' 事件来确定需要哪些瓦片,并以最多四个并行请求进行获取,以防止在较慢连接上造成过载。一个包含 64 个瓦片的 LRU 缓存管理已下载数据,若瓦片不在当前视图中则淘汰最近最少使用的瓦片。山峰数据渲染在单个画布上,而非使用独立的 Leaflet 标记,从而提升了性能。点击地图执行已加载瓦片内的最近邻搜索,以识别附近的山峰。基于瓦片的网格天然支持深层链接,允许为特定山峰提供稳定的 URL。未来的改进包括添加更多类别的数据(如山口和观景点),并可能迁移至矢量瓦片(MVT)以与 MapLibre 等地图库集成。该系统无需服务器或数据库即可有效处理大型数据集,展示了简单文件网格的强大能力。
CdXz5zHNQW_7Oo4LQLM3G.webp
CdXz5zHNQW_jwz7YqFtlb.png
本期 PyCoder's Weekly 涵盖了广泛的 Python 主题。教程深入探讨了 Django ORM 和迁移,详细讲解了如何构建、破坏及修复它们,并针对 Django 6.1 中的性能问题提供了解决方案。文章解释了 Python 中的函数式编程,讨论其范式与实际应用。PropelAuth 因其安全特性而受到关注,特别是在 AI 代理集成方面。Python Web 应用中的模型 - 视图 - 控制器(MVC)模式通过 Flask 示例进行了探索。Python 3.16.0 Alpha 1 现已发布,Python Bytes 播客迎来了第 500 期。PyPy v8.0.1 版本也已发布。一门关于 Claude Code 的课程教授如何在不过度依赖 ChatGPT 的情况下构建 Python 命令行应用。OpenTeams 回顾了其在 2026 年对 PyTorch 的贡献,指出 AI 代理的使用量有所增加。文章演示了使用 scikit-learn 进行超参数搜索的贝叶斯优化。Pendulum 日期时间库中独特的"+"运算符得到了考察。PyPI 更新了其电子邮件声誉计算方式,重新允许使用 Outlook 地址。利用 Polars、DuckDB 和 PyArrow 解释了 Parquet 在数据工程中的优势。通过 Python 代码展示了 Gemini 4 Argon 的能力。文章讨论了 Python 的项目结构,提供了在扁平结构和 src/布局之间做出选择的指导。对 Docling 和 LlamaParse 在 PDF 表格提取方面的性能进行了比较。基础 Python 概念,如字符串、数据类型和入门步骤,均在教程中有所涵盖。最后,提供了一份即将举行的 Python 活动列表。
CdXz5zHNQW_wpqLkNZyB4.png
CdXz5zHNQW_5t7QXRxkX2.png
本期节目包含与 Brian 的讨论、额外内容以及一个笑话。Nick 探讨了 Jev,这是一种“系统 1"决策模型,能够在不生成 token 的情况下提供快速且成本效益高的分类,将其定位在生成式大语言模型与传统机器学习模型之间。Brett 宣布首届 Python 打包委员会(PPC)当选,该委员会依据 PEP 772 成立,目前正在界定其范围与运作细节。Calvin 展示了 Daniel Lemire 对 fastsimdjson 在 Python 中的基准测试结果,证明其解析 JSON 数据的速度可达数十 GB/秒,尤其在多线程和惰性解析模式下表现突出。Michael 讨论了 Miguel Grinberg 的年度 Python 基准测试,结果显示 Python 3.15 的实验性 JIT 构建版本速度显著提升,尽管在单线程测试中,PyPy 和 Rust 仍优于 CPython。Carol 介绍了 Satyrn AI,这是一个由社区驱动的倡议,致力于为 Python 开发者提供透明且可信的 AI 工具。Michael 还强调了 ArtCraft 基于 Rust 并由 AI 构建的开源替代方案,这些方案可替代 Adobe Creative Suite,突显了软件开发格局的演变以及可持续性挑战。Calvin 分享了 llmfit.org 的链接,用于检查模型兼容性,并指出 uv 0.13.0 现已默认使用 Python 3.15。Nick 推广了 Black Python Devs 的学生大使计划,Brett 则宣布 Python 3.15.0 的最终版本发布。最后,一个关于“异常”的 Python 开发者的笑话——该开发者引发了大量异常——为本期节目画上句号。