在不使用`--depwarn = no`或包

时间:2018-02-12 21:29:11

标签: julia

我正在Julia编写一个工具,需要一个包含不推荐功能的包。

我的脚本是从命令行调用的,并且需要很多参数,因此我希望避免使用--depwarn=no来抑制弃用警告。

相反,我想嵌入这个--depwarn=no或以某种方式将此信号发送到我的脚本中,这样用户就不必输入它,或者在运行脚本时担心它。

有没有人知道如何只使用Base Julia而不安装Suppressor.jl之类的其他软件包?

1 个答案:

答案 0 :(得分:2)

我最初写过Suppressor,据我所知,目前还没有别的办法,which is why I started Suppressor

您可以随时将所需的suppress*宏复制粘贴到您的代码中(但我建议只是诚实地使用Suppressor,如果有更新),所有的Suppressor宏都是自包含的,只需要{ {1}}(如果您使用的是0.6.x,则此宏不需要Base)。

Compat

如果您只想删除弃用警告,那么""" @suppress_err expr Suppress the STDERR stream for the given expression. """ macro suppress_err(block) quote if ccall(:jl_generating_output, Cint, ()) == 0 ORIGINAL_STDERR = STDERR err_rd, err_wr = redirect_stderr() err_reader = @async read(err_rd, String) end value = $(esc(block)) if ccall(:jl_generating_output, Cint, ()) == 0 redirect_stderr(ORIGINAL_STDERR) close(err_wr) end value end end 就是您所需要的。最近有关于日志记录的当前Julia master分支已经有所改进,但我还没有检查过那些。