捕捉FutureWarning的来源(进口)

时间:2019-01-18 14:05:36

标签: python-3.x warnings

我最近注意到我的一个程序产生了FutureWarning,在我从SciPy环顾四周后发现我正在导入(signal_arraytools),并且可以通过升级SciPy轻松解决。

但是,这让我想知道是否有办法按其起源来捕获FutureWarnings。具体来说,我想将由导入引起的类似警告通过管道传递到日志文件A,而其他警告则传递到日志文件B。我可以想象下面的伪代码可以做到这一点,但是扩展性不好,也不容易维护。 / p>

import A # External (e.g. SciPy)
import B # Custom

foo = X
try:
    Y = A(X)
except FutureWarning:
    logger_A("Update external package")
try:
    Z = B(Y)
except FutureWarning:
    logger_B("Fix your own stuff")

我希望以下几方面的事情是可能的:

import A # External (e.g. SciPy)
import B # Custom

foo = X
try:
    Y = A(X)
    Z = B(Y)
except FutureWarning:
    # Magically determine which package threw the warning and put message
    # in correct log file

我想象可以在警告跟踪中使用软件包名称来确定哪个导入(如果有)引起警告,但是我不确定是否可能。因此,问题在于这是否可能,或者是否存在捕获此类警告的标准软件包或方法。

0 个答案:

没有答案