GraiaProject / Ariadne

一个优雅且完备的 Python QQ 自动化框架,基于 Mirai API HTTP v2。 Powered by Graia Project.
https://graia.cn/ariadne
GNU Affero General Public License v3.0
751 stars 45 forks source link

fix(creart): solve circular import #186

Closed ProgramRipper closed 2 years ago

ProgramRipper commented 2 years ago

更改说明 推迟 import creart

向后兼容性 更改不会造成过去行为的改变.

ProgramRipper commented 2 years ago

TL;DR:建议改变 creart 行为


现在的 creart 的 env_scan 行为,极易造成隐式的循环引用,如:AriadneAlconna-Graia 就是一个由 creart 造成的循环引用。

在不改变 creart 的行为,也不推迟 creart 的 import 的情况下,用户可以通过在 import 任何其他 GraiaProject 项目前 import creart 以避免循环引用。但是,这样仍有因 creart 造成循环引用的风险。所以,我不认为这是一个好的解决措施。

如果能较短时间内改变 creart 行为,则可以关闭此 pr。如不能,则建议合并此 pr 作为临时措施。

ProgramRipper commented 2 years ago

image