Flask中能否更改current_app的Type

我在写一个基于Flask的框架(目前尚未开源)Djask,其中给Flask类添加了一个属性叫blueprint_objects
当我做调试demo的时候写了这么一段代码

# ...
from flask import current_app

app = Djask(__name__)

@app.before_first_request
def before():
    print(current_app.blueprint_objects)

PyCharm提出warning说current_app没有blueprint_objects属性,虽然跑起来没有error,但是让使用pycharm的用户看到warning总归是不太好的。

因此我在想有没有办法来改掉current_app的类型注解。
我大概看了一下flask.globals的源码,里面有大量_开头的类、方法和变量,理论上好像不应该引入_开头的对象。而引入这些对象又是重写current_app所必须的。

问下大家有没有什么办法

1 Like

@greyli 能不能删掉这篇?
我自己后来实现了

不用删,分享下解决方法?

着实有点暴力了

from flask import current_app, g, request, session

from . import Djask

current_app: Djask = current_app  # type: ignore