Skip to content

Commit 3b74a74

Browse files
committed
leave full buildSubgraphFromLabels! in deprecated, as its not compatable
In stead of @deprecate buildSubgraphFromLabels! ...
1 parent c12d78a commit 3b74a74

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

src/Deprecated.jl

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,51 @@ include("../attic/GraphsDFG/GraphsDFG.jl")
1414

1515
@deprecate loadDFG(source::String, iifModule::Module, dest::AbstractDFG) loadDFG!(dest, source)
1616

17-
@deprecate buildSubgraphFromLabels!(dfg::AbstractDFG, varList::Vector{Symbol}) buildSubgraph(dfg, varList, 1)
17+
18+
# leave a bit longer
19+
#NOTE buildSubgraphFromLabels! does not have a 1-1 replacement in DFG
20+
# if you have a set of variables and factors use copyGraph
21+
# if you want neighbors automaticallyinclued use buildSubgraph
22+
# if you want a clique subgraph use buildCliqueSubgraph! from IIF
23+
function buildSubgraphFromLabels!(dfg::AbstractDFG,
24+
syms::Vector{Symbol};
25+
subfg::AbstractDFG=LightDFG(params=getSolverParams(dfg)),
26+
solvable::Int=0,
27+
allowedFactors::Union{Nothing, Vector{Symbol}}=nothing )
28+
#
29+
Base.depwarn("buildSubgraphFromLabels! is deprecated use copyGraph, buildSubgraph or buildCliqueSubgraph!(IIF)", :buildSubgraphFromLabels!)
30+
# add a little too many variables (since we need the factors)
31+
for sym in syms
32+
if solvable <= getSolvable(dfg, sym)
33+
getSubgraphAroundNode(dfg, getVariable(dfg, sym), 2, false, subfg, solvable=solvable)
34+
end
35+
end
36+
37+
# remove excessive variables that were copied by neighbors distance 2
38+
currVars = listVariables(subfg)
39+
toDelVars = setdiff(currVars, syms)
40+
for dv in toDelVars
41+
# delete any neighboring factors first
42+
for fc in lsf(subfg, dv)
43+
deleteFactor!(subfg, fc)
44+
end
45+
46+
# and the variable itself
47+
deleteVariable!(subfg, dv)
48+
end
49+
50+
# delete any factors not in the allowed list
51+
if allowedFactors != nothing
52+
delFcts = setdiff(lsf(subfg), allowedFactors)
53+
for dfct in delFcts
54+
deleteFactor!(subfg, dfct)
55+
end
56+
end
57+
58+
# orphaned variables are allowed, but not orphaned factors
59+
60+
return subfg
61+
end
1862

1963

2064
## TODO: I think these are handy, so move to Factor and Variable

0 commit comments

Comments
 (0)