如何将 Pydantic BaseModel 解压到 kwargs 中?
How can I unpack a Pydantic BaseModel into kwargs?
我正在尝试创建一个函数,将 pydantic BaseModel
作为另一个函数的 运行 的输入。我需要将 BaseModel 解压到 kwargs 中。我试过这样做:
def run_routing_from_job(job):
return run_routing(
job.inputs.input_file,
**job.inputs.config.dict()
)
其中 job
的格式为
class Job(BaseModel):
client_info: ClientInfo # Another BaseModel
inputs: RoutingJobInputs # Another BaseModel
uid: UUID = Field(default_factory=uuid4)
status: str = "job_queued"
result: int = None
但是,.dict()
会递归地将所有项目解析为字典格式。我想将 client_info
和 inputs
保留为 BaseModel class,而不是将其转换为字典。
我可以找到一种方法来做到这一点,但我找不到一种干净的方法来做到这一点。
我算出来了,把.dict()
换成__dict__
就行了
def run_routing_from_job(job):
return run_routing(
job.inputs.input_file,
**job.inputs.config.__dict__
)
我正在尝试创建一个函数,将 pydantic BaseModel
作为另一个函数的 运行 的输入。我需要将 BaseModel 解压到 kwargs 中。我试过这样做:
def run_routing_from_job(job):
return run_routing(
job.inputs.input_file,
**job.inputs.config.dict()
)
其中 job
的格式为
class Job(BaseModel):
client_info: ClientInfo # Another BaseModel
inputs: RoutingJobInputs # Another BaseModel
uid: UUID = Field(default_factory=uuid4)
status: str = "job_queued"
result: int = None
但是,.dict()
会递归地将所有项目解析为字典格式。我想将 client_info
和 inputs
保留为 BaseModel class,而不是将其转换为字典。
我可以找到一种方法来做到这一点,但我找不到一种干净的方法来做到这一点。
我算出来了,把.dict()
换成__dict__
def run_routing_from_job(job):
return run_routing(
job.inputs.input_file,
**job.inputs.config.__dict__
)