Skip to content

Commit 294c00e

Browse files
InterdisciplinaryPhysicsTeampitmonticoneClaudMor
committed
Remove abstracttransparentgraphwrapper.jl and update docstrings
Co-Authored-By: Pietro Monticone <[email protected]> Co-Authored-By: Claudio Moroni <[email protected]>
1 parent b73eafe commit 294c00e

File tree

4 files changed

+26
-178
lines changed

4 files changed

+26
-178
lines changed

docs/src/API.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,8 @@ is_directed(::Type{S}) where {T,U,G,S <: AbstractSubGraph{T,U,G}}
6262
adjacency_matrix(subgraph::AbstractSubGraph)
6363
weights(subgraph::S) where {T,U,S<:AbstractSubGraph{T,U}}
6464
name(subgraph::AbstractSubGraph)
65-
Layer{T <: Integer, U <: Real, G <: AbstractGraph{T}} <: AbstractLayer{T,U,G}
65+
Layer{T <: Integer, U <: Real, G <: AbstractGraph{T}}
66+
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}}
6667
```
6768

6869
### Multilayer-specific methods
@@ -147,6 +148,7 @@ has_edge(subgraph::S, s::MultilayerVertex, d::MultilayerVertex) where { T, S <:
147148
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}}
148149
rem_edge!(subgraph::S, src::T, dst::T) where {T, S<:AbstractSubGraph{T}}
149150
AbstractLayer
151+
Layer(descriptor::LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
150152
```
151153

152154
### Traits

src/MultilayerGraphs.jl

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ export
2626
Node,
2727
# abstractvertex.jl
2828
AbstractVertex,
29-
# abstractmultilayervertex.jl
30-
AbstractMultilayerVertex,
3129
# multilayervertex.jl
30+
AbstractMultilayerVertex,
3231
MultilayerVertex,
3332
MV,
3433
node,

src/abstracttransparentgraphwrapper.jl

Lines changed: 0 additions & 160 deletions
This file was deleted.

src/subgraphs/layer.jl

Lines changed: 22 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,16 +25,6 @@ Represents a layer in a `Multilayer(Di)Graph`.
2525
- `graph::G`: underlying graph of the layer;
2626
- `forbidden_vertices::Vector{MultilayerVertex}`: nodes of the MultilayerGraph that are not part of this Layer (they will be formally present in the Layer but it will be checked that they aren't adjacent to any other node);
2727
- `forbidden_edges`::Vector{NTuple{2, MultilayerVertex}}: edges that are required not to exist in this Layer.
28-
29-
# CONSTRUCTORS
30-
31-
Layer(name::Symbol, graph::G, forbidden_vertices::Tuple{Vararg{T}}, forbidden_edges::Tuple{Vararg{NTuple{2, T}}}; U::Union{Type{ <: Real}, Nothing} = nothing ) where {T,G <: AbstractGraph{T}}
32-
33-
Overridden inner constructor. Return an `Layer` whose underlying graph is `graph`. All `Layer`s and `Layer`s of a `Multilayer(Di)Graph` need to formally have the same nodes, but in real applications it may be that some vertices are excluded from some layers. Such vertices should be specified in `forbidden_vertices`. Similarly for `forbidden_edges`. This constructor (to which all the other eventually fall back to) will check that `forbidden_vertices` have no neighbors in `graph`, and that `forbidden_edges` actually correspond to zero entries in the adjacency matrix of `graph`.
34-
35-
Layer{T <: Integer, U <: Real, G <: AbstractGraph{T}} <: AbstractLayer{T,U,G}
36-
37-
Incomplete initialization, used to write type-stable functions
3828
"""
3929
mutable struct Layer{T<:Integer,U<:Real,G<:AbstractGraph{T}} <: AbstractLayer{T,U,G}
4030
descriptor::LayerDescriptor{T,U,G}
@@ -64,7 +54,18 @@ end
6454
"""
6555
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}}
6656
67-
...
57+
Constructor for `Layer`.
58+
59+
# ARGUMENTS
60+
61+
- `name::Symbol`: The name of the Layer;
62+
- `vertices::Vector{ <: MultilayerVertex}`: The `MultilayerVertex`s of the Layer;
63+
- `edge_list::Vector{ <: MultilayerEdge}`: The list of `MultilayerEdge`s;
64+
- `null_graph::G`: the Layer's underlying graph type, which must be passed as a null graph. If it is not, an error will be thrown;
65+
- `weighttype::Type{U}`: The type of the `MultilayerEdge` weights (evem when the underlying Layer's graph is unweighted, we need to specify a weight type since the `MultilayerGraph`s will always be weighted)
66+
67+
# KWARGS
68+
6869
"""
6970
function 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}}
7071
descriptor = LayerDescriptor(name, null_graph, weighttype, default_vertex_metadata = default_vertex_metadata, default_edge_weight = default_edge_weight, default_edge_metadata = default_edge_metadata)
@@ -73,11 +74,17 @@ function Layer(name::Symbol, vertices::Vector{<: MultilayerVertex}, edge_list::V
7374
end
7475

7576
"""
76-
Layer(descriptor::LayerDescriptor{T,U,G}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer, U <: Real, G <: AbstractGraph{T}}
77+
Layer(descriptor::LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
78+
79+
Constructor for `Layer`.
80+
81+
# ARGUMENTS
7782
78-
...
83+
- `descriptor::LayerDescriptor{T}`;
84+
- `vertices::Vector{<: MultilayerVertex}`;
85+
- `edge_list::Vector{<:MultilayerEdge}`;
7986
"""
80-
function Layer(descriptor::LayerDescriptor{T,U,G}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer, U <: Real, G <: AbstractGraph{T}}
87+
function Layer(descriptor::LayerDescriptor{T}, vertices::Vector{<: MultilayerVertex}, edge_list::Vector{<:MultilayerEdge}) where {T <: Integer}
8188

8289
if hasproperty(eltype(vertices), :parameters)
8390
par = eltype(vertices).parameters[1]
@@ -104,7 +111,7 @@ end
104111
105112
Return a random `Layer`.
106113
107-
# ARGS
114+
# ARGUMENTS
108115
109116
- `name::Symbol`: The name of the Layer
110117
- `vertices::Vector{ <: MultilayerVertex}`: The `MultilayerVertex`s of the Layer

0 commit comments

Comments
 (0)