Skip to content

Feature: 放宽 nonebot.compat.model_dumpinclude / exclude 类型 #3897

@shoucandanghehe

Description

@shoucandanghehe

希望能解决的问题

nonebot.compat.model_dump 目前将 include / exclude 注解为:

nonebot2/nonebot/compat.py

Lines 231 to 239 in 6090870

def model_dump(
model: BaseModel,
include: set[str] | None = None,
exclude: set[str] | None = None,
by_alias: bool = False,
exclude_unset: bool = False,
exclude_defaults: bool = False,
exclude_none: bool = False,
) -> dict[str, Any]:

但声明支持的 Pydantic 范围是:

"pydantic >=1.10.0, <3.0.0, !=2.5.0, !=2.5.1, !=2.10.0, !=2.10.1",

在这个范围内,Pydantic v1 / v2 实际支持的 include / exclude 类型都明显宽于 set[str] | None,因此当前 compat 层的类型注解过窄。

描述所需要的功能

nonebot.compat.model_dumpinclude / exclude 类型放宽到覆盖 NoneBot 支持的 Pydantic 版本实际接受的参数范围,至少不要只限于 set[str] | None

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions