Skip to content

Commit 1b698aa

Browse files
2 parents 3db35f8 + a12d81b commit 1b698aa

File tree

5 files changed

+130
-79
lines changed

5 files changed

+130
-79
lines changed

docs/src/API.md

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,21 @@ weights(subgraph::S) where {T,U,S<:AbstractSubGraph{T,U}}
6464
name(subgraph::AbstractSubGraph)
6565
Layer{T <: Integer, U <: Real, G <: AbstractGraph{T}}
6666
Layer(name::Symbol, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{ <: MultilayerEdge}, null_graph::G, weighttype::Type{U}; default_vertex_metadata::Function = mv -> NamedTuple(), default_edge_weight::Function = (src, dst) -> one(U), default_edge_metadata::Function = (src, dst) -> NamedTuple()) where {T <: Integer, U <: Real, G <: AbstractGraph{T}}
67+
Layer(nv::Int64, name::Symbol, graph_type::Type{G}, ne::Int64; U::Union{Type{ <: Real},Nothing} = nothing) where {T <: Union{ <: Integer, AbstractVertex}, G <: AbstractGraph{T}}
68+
has_node(layer::Layer, n::Node)
69+
rem_vertex!(layer::Layer, mv::MultilayerVertex)
70+
rem_vertex!(layer::Layer, n::Node)
71+
Interlayer{T<:Integer,U<:Real,G<:AbstractGraph{T}}Interlayer(layer_1::Layer{T,U}, layer_2::Layer{T,U}, ne::Int64, null_graph::G; default_edge_weight::Function = (x,y) -> nothing, default_edge_metadata::Function = (x,y) -> NamedTuple(), name::Symbol = Symbol("interlayer_$(layer_1.name)_$(layer_2.name)"), transfer_vertex_metadata::Bool = false) where {T<:Integer, U <: Union{Nothing, <: Real}, G<:AbstractGraph{T}}
72+
73+
multiplex_interlayer(
74+
layer_1::Layer{T,U},
75+
layer_2::Layer{T,U},
76+
null_graph::G;
77+
default_edge_weight::Function = (x,y) -> nothing,
78+
default_edge_metadata::Function = (x,y) -> NamedTuple(),
79+
transfer_vertex_metadata::Bool = false,
80+
name::Symbol = Symbol("interlayer_$(layer_1.name)_$(layer_2.name)")
81+
) where {T<:Integer, U <: Real, G<:AbstractGraph{T}} = _multiplex_interlayer(collect(mv_vertices(layer_1)), collect(mv_vertices(layer_2)), null_graph, U; default_edge_weight = default_edge_weight, default_edge_metadata = default_edge_metadata, transfer_vertex_metadata = transfer_vertex_metadata , name = name)
6782
```
6883

6984
### Multilayer-specific methods
@@ -96,7 +111,9 @@ is_directed(mg::AbstractMultilayerUGraph)
96111
is_directed(m::M) where { M <: Type{ <: AbstractMultilayerUGraph}}
97112
is_directed(mg::AbstractMultilayerDiGraph)
98113
is_directed(m::M) where { M <: Type{ <: AbstractMultilayerDiGraph}}
99-
114+
has_node(mg::AbstractMultilayerGraph, n::Node)
115+
rem_vertex!(mg::AbstractMultilayerUGraph, V::MultilayerVertex)
116+
rem_vertex!(mg::AbstractMultilayerDiGraph, V::MultilayerVertex)
100117
```
101118

102119
----------------------------------------------------
@@ -148,7 +165,9 @@ has_edge(subgraph::S, s::MultilayerVertex, d::MultilayerVertex) where { T, S <:
148165
add_edge!(subgraph::S, src::T, dst::T; weight::W = nothing, metadata::Union{Tuple, NamedTuple}= NamedTuple()) where {T, U<: Real, W<:Union{ U, Nothing},G<:AbstractGraph{T},S<:AbstractSubGraph{T,U,G}}
149166
rem_edge!(subgraph::S, src::T, dst::T) where {T, S<:AbstractSubGraph{T}}
150167
AbstractLayer
151-
Layer(descriptor::LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
168+
Layer(descriptor::MultilayerGraphs.LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
169+
rem_vertex!(layer::L, v::T) where {T, L <: Layer{T}}
170+
AbstractInterlayer
152171
```
153172

154173
### Traits

src/abstractmultilayerdigraph.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ function Graphs.add_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: Abstra
3737
end
3838

3939
"""
40-
rem_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: AbstractMultilayerDiGraph{T,U}}
40+
rem_vertex!(mg::AbstractMultilayerDiGraph, V::MultilayerVertex)
4141
4242
Remove [MultilayerVertex](@ref) `mv` from `mg`. Return true if succeeds, false otherwise.
4343
"""
44-
function Graphs.rem_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: AbstractMultilayerDiGraph{T,U}}
44+
function Graphs.rem_vertex!(mg::AbstractMultilayerDiGraph, V::MultilayerVertex)
4545
# Check that the node exists and then that the vertex exists
4646
has_node(mg, V.node) || return false
4747
has_vertex(mg, V) || return false

src/abstractmultilayergraph.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,11 @@ Return the number of nodes in `mg`.
4747
nn(mg::M) where {M<:AbstractMultilayerGraph} = length(nodes(mg))
4848

4949
"""
50-
has_node(mg::M, n::Node) where {T,U, M <: AbstractMultilayerGraph{T,U}}
50+
has_node(mg::AbstractMultilayerGraph, n::Node)
5151
5252
Return true if `n` is a node of `mg`.
5353
"""
54-
has_node(mg::M, n::Node) where {T,U, M <: AbstractMultilayerGraph{T,U}} = n in image(mg.idx_N_associations)
54+
has_node(mg::AbstractMultilayerGraph, n::Node) = n in image(mg.idx_N_associations)
5555

5656
"""
5757
add_node!(mg::M, n::Node) where {T,U, M <: AbstractMultilayerGraph{T,U}}

src/abstractmultilayerugraph.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,11 @@ function Graphs.add_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: Abstra
3636
end
3737

3838
"""
39-
rem_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: AbstractMultilayerUGraph{T,U}}
39+
rem_vertex!(mg::AbstractMultilayerUGraph, V::MultilayerVertex)
4040
4141
Remove [MultilayerVertex](@ref) `mv` from `mg`. Return true if succeeds, false otherwise.
4242
"""
43-
function Graphs.rem_vertex!(mg::M, V::MultilayerVertex) where {T, U, M <: AbstractMultilayerUGraph{T,U}}
43+
function Graphs.rem_vertex!(mg::AbstractMultilayerUGraph, V::MultilayerVertex)
4444
# Check that the node exists and then that the vertex exists
4545
has_node(mg, V.node) || return false
4646
has_vertex(mg, V) || return false

0 commit comments

Comments
 (0)