“使用”期间Julia警告是否被选择性禁用?

“使用”期间Julia警告是否被选择性禁用?

问题描述:

Julia v0.6.2 BloomFilters早已安装。“使用”期间Julia警告是否被选择性禁用?

julia> using BloomFilters 
WARNING: Array(::Type{T}, m::Int) where T is deprecated, use Array{T}(m) instead. 
Stacktrace: 
[1] depwarn(::String, ::Symbol) at ./deprecated.jl:70 
[2] Array(::Type{Any}, ::Int64) at ./deprecated.jl:57 
[3] include_from_node1(::String) at ./loading.jl:576 
.... 
[14] (::Base.REPL.##1#2{Base.REPL.REPLBackend})() at ./event.jl:73 
while loading /Users//.julia/v0.6/BloomFilters/src/probabilities.jl, in expression starting on line 5 

这似乎工作正常,否则,在某些时候,BloomFilters的维护者可能会处理弃用。同时,是否有可能有选择地关闭特定包装的警告?我不想关闭其他软件包(即全球范围)的警告(甚至与此相同)。

+0

注意,在V0.7朱莉娅/ V1.0记录的方式,这可以作为语言标准的一部分被翻修,虽然此特定功能WASN尚未添加,但计划在1.x. –

+0

@ChrisRackauckas是v0.7可用且稳定? – ShpielMeister

+1

还没有。 v0.7是开发者版本的Julia v1.0。功能冻结应该会在任何一周内完成,然后将会有一个长期的测试阶段来摆脱这些错误。所以基本上,v1.0应该会在几个月后出现,并标记每个警告来自哪里,所以至少如果它没有实现,那么您可以在几分钟内将自己的信息放在一起。 –

你可以尝试Suppressor.jl

using Suppressor: @suppress_err 

@suppress_err using BloomFilters 
+1

抑制器很好地工作。已经在REPL和IJulia笔记本上进行了测试 – ShpielMeister

如果您正在命令行REPL中运行此操作,则可以使用--depwarn=no标志启动Julia,该标志将删除所有弃用警告。

如果您希望在IJulia中执行此操作(例如在笔记本中),则需要将此标志添加到Julia内核初始化脚本中。应该有一个kernel.json文件,必须更新。

或者,您可以暂时将所有stdoutstderr重定向为交互式“禁用”警告。

编辑:我应该更仔细地阅读这个问题。这将禁用所有包的所有警告。查看Suppressor.jl。

+0

感谢您的信息。然而,所述的问题是**选择性**仅关闭**特定包**的警告。 – ShpielMeister

+0

你说得对,我会编辑我的答案。重定向'stdout'和'stderr'是一个选项,这是我相信Suppressor.jl所做的。 – kdheepak