我真的非常喜欢 FastAPI 的 Depends 功能,但我想在不引入一整个框架的情况下实现该开发体验。
你在函数签名中声明依赖项,加上一个装饰器,然后它就能工作了。
from typing import Annotated
from injekta import Needs, inject
def get_db() -> Database:
return PostgresDB(...)
@inject
def create_user(db: Annotated[Database, Needs(get_db)], name: str):
return db.create_user(name)
我非常希望能够获得关于这个想法的反馈,并且确定它是否解决了一个真实的问题,还是只是解决了我的自己的需求。
https://github.com/autoscrape-labs/injekta
评论 (0)