Show HN: Chonky – a neural approach for text semantic chunkinga year agohttps://github.com/mirth/chonkyChonky 是一个基于Transformer模型的Python语义文本分割库。它在RAG(检索增强生成)系统中非常实用。通过pip即可轻松安装:`pip install chonky`。使用时需初始化`TextSplitter`,将文本处理为有意义的片段。首次运行时会自动下载Transformer模型。示例展示了如何将样本文本按'--'分隔符分割成片段。
Whenever – typed and DST-safe datetimes for Pythona year agohttps://github.com/ariebovenberg/whenever介绍'whenever'——一个用于类型安全和夏令时安全的Python日期时间库,提供Rust和纯Python两种实现解决Python datetime常见问题,如混合使用朴素和时区感知时间、夏令时处理等提供夏令时安全计算、类型安全API以防止常见错误,修复了Arrow和Pendulum未解决的问题特性包括:针对不同使用场景的显式类型、夏令时安全计算、比较与相等判断、舍入与截断、常见格式的格式化与解析性能优异,比其他第三方库更快,通常也优于标准库支持日期运算、纳秒级精度,并实验性支持最新GIL相关改进未来路线图包括:稳定API、可定制化解析与格式化、时间间隔、范围、重复时间以及闰秒解析当前限制包括:仅支持公元1-9999年的公历、整秒时区偏移、不支持闰秒采用MIT许可证,Rust依赖项也使用类似宽松许可受其他项目启发并借鉴相关概念,使用Python的zoneinfo模块处理时区数据
Tariff: A Python package that imposes tariffs on Python importsa year agohttps://pypi.org/project/tariff/TARIFF是一个恶搞Python包,它通过对导入模块施加关税百分比来人为降低其运行速度。通过pip安装:`pip install tariff`。可设置模块关税税率(例如对numpy征50%税,对pandas征200%税)。当导入被征税模块时,会显示关税信息并实际延迟加载速度。示例输出:'刚刚对numpy征收了50%关税!原导入耗时45000微秒,现耗时67500微秒。'创作动机:用幽默方式演绎'美国优先'政策——通过让'进口模块变贵'来实现。许可证声明:恶搞软件包,使用风险自负。项目详情包含源代码和构建版本的下载链接、文件大小及哈希值。
FastMCP: The fast, Pythonic way to build MCP servers and clientsa year agohttps://github.com/jlowin/fastmcpFastMCP 是一个用于构建和交互 MCP(模型上下文协议)服务器的 Python 接口。MCP 服务器以安全、标准化的方式向 LLM 应用暴露数据和功能。FastMCP 通过装饰器简化 MCP 服务器创建,处理协议细节和服务器管理。核心功能包括工具(用于操作)、资源(用于数据)和提示(用于交互模式)。FastMCP 2.0 引入了代理、组合服务器和从 OpenAPI 规范生成等高级功能。Context 对象在工具和资源中提供日志记录、进度报告和资源访问功能。FastMCP 支持多种传输协议,包括 SSE、stdio 和 WebSockets。采样功能允许服务器在保持安全性的同时向客户端 LLM 请求补全。FastMCP 可安装在 Claude Desktop 中或作为独立服务器运行。欢迎贡献代码,项目提供了开发和测试指南。
Interesting Python features that I've come across in my careera year agohttps://blog.edward-li.com/tech/advanced-python-features/Python虽然被广泛采用,但由于其简洁性常遭误解。本文探讨了14个Python高级特性,包括:类型重载、仅关键字参数与仅位置参数、未来注解、泛型、协议类、上下文管理器、结构模式匹配、__slots__优化、Python冷知识、高级f-string格式化、缓存装饰器、并发编程Future、代理属性和元类。类型重载允许为同一函数定义多个签名,增强类型安全性。仅关键字参数和仅位置参数可精确控制函数传参方式。未来注解通过延迟注解求值来完善Python类型系统。泛型编程通过类型参数实现灵活可复用的代码结构。协议类支持结构化子类型,关注对象能力而非继承关系。上下文管理器通过with语句简化资源管理流程。Python 3.10引入的结构模式匹配为条件逻辑提供强大替代方案。__slots__通过固定属性集显著提升属性访问性能。Python冷知识包含for-else语句、海象运算符、短路求值、运算符链式调用等技巧。高级f-string格式化提供更强大的字符串插值与格式控制。cache/lru_cache装饰器可加速递归函数与复杂计算。Future对象实现类似Promise的并发控制模式。代理属性使属性兼具方法与特性双重功能。元类可深度定制类创建过程,但日常开发中鲜少需要直接使用。
Show HN: I made Python project template so you don't need to spend hours on ita year agohttps://github.com/akopdev/template-python-package基于Cookiecutter的Python包快速生成项目模板遵循现代开发规范并兼容最新PEP标准包含功能代码片段、pytest测试示例及Makefile包管理工具支持单命令完成代码检查/测试/构建/部署全流程提供CLI应用脚手架和GitHub Actions持续集成配置安装方式:`pip install uv cookiecutter`后通过`cookiecutter`生成项目自动生成包含`src`源码目录、`tests`测试及配置文件的完整包结构
Using Python's .__dict__ to Work with Attributes – Real Pythona year agohttps://realpython.com/python-dict-attribute/Python的.__dict__是类和实例中的一个特殊属性,它将属性名映射到对应的值。.__dict__允许动态检查、修改、添加或删除属性,这使得它在元编程和调试中非常有用。vars()和.__dict__都可以检查对象的属性,其中.__dict__提供了对对象命名空间的直接访问。.__dict__的常见用例包括动态属性管理、内省、序列化和调试。.__dict__是Python数据模型的基础,解释器在内部使用它来实现动态属性访问。类和实例有独立的.__dict__属性,实例的.__dict__仅包含实例特有的属性。函数也有.__dict__属性,可以用来附加元数据或用于缓存目的。内置函数和数据类型可能没有.__dict__属性,因为它们是用C语言实现的以提高效率。.__dict__可用于记忆化、将对象序列化为JSON,以及通过__getattribute__和__setattr__等特殊方法自定义属性访问。描述符可以利用.__dict__来避免在实现__get__和__set__方法时出现递归问题。
Bauplan – Git-for-data pipelines on object storagea year agohttps://docs.bauplanlabs.com/en/latest/Bauplan是一个面向大规模数据管道的Python化数据平台,在S3数据湖上实现类Git的数据版本管理无需管理基础设施即可运行机器学习工作流、AI应用和数据转换管道由ML和数据工程师构建,旨在简化云基础设施管理简单性:直接编写Python函数构建管道,无需容器化或Spark鲁棒性:具备Git式数据版本控制(Refs),确保可复现性和审计追踪能力原生Python支持:无需领域特定语言、YAML配置或SparkS3表操作:将Parquet/CSV转换为支持ACID事务的Iceberg表数据Git化:创建零拷贝分支实现安全协作无服务器管道:在云端运行无状态Python函数全场景SQL支持:跨分支和S3表执行查询数据CI/CD:自动化管道的测试和部署流程Refs版本控制系统:追踪管道运行记录,保障可复现性与审计合规
MCP Run Pythona year agohttps://github.com/pydantic/pydantic-ai/tree/main/mcp-run-pythonModel Context Protocol (MCP) 服务器使用 Deno 中的 Pyodide 在沙箱环境中运行 Python 代码。出于安全考虑,代码执行与操作系统完全隔离。可通过 Deno 使用特定命令启动服务器,支持三种传输模式:stdio、SSE 或 warmup。运行需要网络访问权限及对 node_modules 的读写权限,以确保 Pyodide 正常工作。结合 PydanticAI 的示例展示了如何通过 MCP 服务器运行代理执行 Python 代码并获取结果。该示例使用代理计算了两个日期之间的天数差。
Stop Writing `__init__` Methodsa year agohttps://blog.glyph.im/2025/04/stop-writing-init-methods.htmlPython 3.7引入数据类(dataclasses)以简化类定义,特别适用于数据结构场景在数据类出现前,使用`__init__`方法定义类很常见,但会引发可变默认值等问题通过`__init__`构造对象会将对象创建与副作用耦合,增加测试难度并降低灵活性本文推荐使用`@dataclass`装饰器、类方法工厂和精确类型(如NewType)作为最佳实践类方法工厂提供可发现且灵活的实例化方式,支持包括异步构造在内的多种场景NewType能对基础类型施加约束,确保对象有效性新实践要求将类声明为数据类,保持默认`__init__`,并通过类方法工厂处理实例化这种方案能保证对象有效性、适应未来需求变化,并显著简化测试流程
A New ASN.1 API for Pythona year agohttps://blog.trailofbits.com/2025/04/18/sneak-peek-a-new-asn.1-api-for-python/ASN.1是密码学、PKI方案和Python底层网络中的关键组件PyCA密码学库正在开发新的ASN.1 API,以解决性能、差异缩减和现代化问题新API将采用纯Rust编写的ASN.1解析器以获得更好的性能和集成度该接口将采用声明式数据类风格设计并支持类型提示ASN.1是一种接口描述语言(IDL),用于以与语言无关的方式描述数据结构DER(可辨别编码规则)是与ASN.1配套使用的规范化、紧凑且自描述的编码格式Python开发者经常需要在标准格式之外进行ASN.1编解码,例如Sigstore生态系统新库旨在提升性能、减少解析差异并实现API现代化初期开发将聚焦基础类型和修饰符,后续计划集成到PyCA密码学库中
15,000 lines of verified cryptography now in Pythona year agohttps://jonathan.protzenko.fr/2025/04/18/python.htmlPython现在包含了来自HACL*的15,000行经过验证的加密代码。对于用户来说,向HACL*的过渡是无缝的,没有功能损失。HACL*实现了新功能以满足Python的需求,包括额外的Blake2模式和新的SHA3 API。该项目耗时2.5年,并有多位开发者的贡献。加密中的流式API很复杂,是验证工作的关键重点。经过验证的代码处理各种加密算法的独特需求,例如块处理和状态管理。构建问题,如AVX2兼容性,通过重构和抽象结构模式得到解决。内存分配失败现在在验证代码中得到了正确传播。此次集成展示了经过验证的加密代码在实际应用中的成熟度。
How to Run Python in Productiona year agohttps://ashishb.net/programming/python-in-production-2/Python在数据分析和机器学习生产环境中占据主导地位推荐的包管理工具:poetry和uv(uv速度快但尚未稳定)使用autoflake、flake8、ruff、isort和pylint等linter工具检测动态类型Python代码的错误通过gitguardian、gitleaks或noseyparker等工具防止密钥泄露使用pre-commit钩子强制执行代码质量规范对于Web服务,FastAPI + gunicorn的吞吐量是Flask + gunicorn的3倍使用数据类或pydantic处理数据,辅助类实现纯函数因GIL限制避免使用Python的async和多线程,改用多进程方案使用pip-audit和deptry进行依赖项管理与清理通过licensecheck确保法律合规性,避免有问题的库许可证部署时使用Docker,但避免基于Alpine的镜像(glibc与musl兼容问题)非GPU部署场景使用仅CPU版本的PyTorch以减小体积在Docker构建阶段编译代码以加快启动速度构建时下载外部依赖以避免延迟并确保密闭构建以非root用户身份运行Docker容器来减少攻击面
Show HN: Parqv – Interactive TUI Parquet Visualizera year agohttps://github.com/sanspareilsmyn/parqvparqv 是一个基于Python的交互式TUI工具,用于在终端中探索Parquet文件。提供统一的界面查看元数据、模式、数据预览、列统计和行组详细信息。支持键盘和鼠标交互操作,可滚动视图和展开模式结构。通过丰富展示、快速统计和行组深度分析增强数据探索能力。功能包括元数据面板、模式浏览器、数据表格查看器和行组检查器。运行环境要求:Python 3.10+ 和 pip。安装方式:`pip install parqv`。运行命令:`parqv /路径/到/文件.parquet`。导航按键包括方向键、Tab、Enter及视图切换键(m, s, d, t, g)。采用Apache License 2.0版本授权。
Frankenstein's `__init__`a year agohttps://ohadravid.github.io/posts/2025-04-19-frank/一个Python服务测试间歇性失败,原因是出现了与'should_exit'相关的意外AttributeError。调查发现FooBarWidget类在独立线程中初始化其父类的__init__方法,导致了竞态条件。该设计原本旨在避免ZeroMQ套接字操作阻塞主线程,但却引发了不可预测的行为。虽然解决方案有效,但因其复杂性及可能使开发人员困惑而受到批评。
Demystifying Decorators • They Don't Need to Be Cryptica year agohttps://www.thepythoncodingstack.com/p/demystifying-python-decoratorsPython中的装饰器是为函数添加可复用功能的强大工具,无需定义新函数。理解闭包对掌握装饰器至关重要,它允许函数访问外层作用域的变量。装饰器是一个接受函数作为参数并返回装饰后版本的函数。本文采用循序渐进的方式讲解构建装饰器,从闭包开始逐步增加复杂度。通过使用*args和**kwargs处理任意数量的位置参数和关键字参数,可使装饰器更灵活。文章预告后续将涵盖@语法、装饰器参数和类装饰器等高级主题。
Python's new t-stringsa year agohttps://davepeck.org/2025/04/11/pythons-new-t-strings/模板字符串(t-strings)已正式被Python 3.14采纳,将于2025年底发布。相比f-strings,t-strings提供了更安全、更灵活的字符串处理方式。尽管f-strings很受欢迎,但可能被误用于不安全操作,如使用用户输入进行SQL或HTML格式化。t-strings会求值为Template类型而非字符串,使用前需要进一步处理。模板允许对动态内容进行安全转义,防止SQL注入或XSS等漏洞。t-strings类似于JavaScript的标签模板,提供了符合Python风格的字符串处理。模板实例提供.strings和.values属性,用于在最终字符串组装前访问各组件。开发者可为模板编写自定义处理函数,例如将文本转换为猪拉丁语。t-strings支持直接实例化,并能详细访问插值组件。预计未来工具(如Black、Ruff、VSCode)将支持t-strings以提升可用性。
Haskelling My Pythona year agohttps://unnamed.website/posts/haskelling-my-python/介绍受Haskell技术启发使用Python无限生成器的方法演示如何递归定义正整数无限生成器讲解利用无限生成器实现泰勒级数积分魔术技巧:将指数函数定义为其自身的积分对比自定义指数函数与Python标准库的实现效果扩展到三角函数:通过积分定义正弦和余弦使用记忆化技术提升Python生成器性能额外技巧:运用Python的fractions模块实现精确计算
Show HN: Advanced-Alchemy – A framework agnostic library for SQLAlchemya year agohttps://github.com/litestar-org/advanced-alchemyAdvanced Alchemy 是一个 SQLAlchemy 的伴生库,提供包含 CRUD 和批量操作的同步/异步仓储模式支持与主流 Web 框架集成,包括 Litestar、Starlette、FastAPI 和 Sanic内置定制化的 Alembic 配置、CLI 工具及包含审计字段和主键的实用基类提供优化的 JSON 类型支持、UUID6/UUID7 和 Nano ID(可选扩展)功能已通过 SQLite、Postgres、MySQL、Oracle 等多种数据库后端测试提供预配置的基类、同步/异步仓储模式和服务类以简化数据处理包含 Litestar、Flask、FastAPI、Starlette 和 Sanic 的集成示例欢迎社区贡献,贡献指南中提供了详细规范
Show HN: Cleverb.ee – open-source agent that writes a cited research reporta year agohttps://github.com/SureScaleAI/cleverbeeCleverBee是一个基于Python的研究代理,使用Claude和Gemini等大型语言模型(LLMs)。功能包括通过Chainlit实现的交互式Web界面,以及支持外部工具集成的MCP工具。支持多LLM研究,可为不同任务配置独立的LLMs。使用Playwright实现自动化网页浏览和内容提取。内容处理包括在摘要前将HTML清理为Markdown格式。集成了令牌跟踪功能,用于监控LLM调用的使用情况和估算成本。通过config.yaml高度可配置,并为不同提供商提供模块化LLM客户端。包含NormalizingCache的LLM缓存,以提高性能并降低成本。支持macOS(Intel和Apple Silicon)、Linux(针对NVIDIA GPU优化)和Windows(通过WSL)。安装步骤包括克隆存储库、运行setup.sh脚本,并使用run.sh启动应用程序。采用GNU AGPLv3许可证,贡献需遵循相同许可证和CLA(贡献者许可协议)。