Skip to content

Commit 2b88549

Browse files
authored
Use NamedGraphs edge arrangement (#44)
1 parent 5bf3608 commit 2b88549

File tree

5 files changed

+22
-111
lines changed

5 files changed

+22
-111
lines changed

Project.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "DataGraphs"
22
uuid = "b5a273c3-7e6c-41f6-98bd-8d7f1525a36a"
33
authors = ["Matthew Fishman <mfishman@flatironinstitute.org> and contributors"]
4-
version = "0.2.7"
4+
version = "0.2.8"
55

66
[deps]
77
Dictionaries = "85a47980-9c8c-11e8-2b9f-f7ca1fa99fb4"
@@ -19,7 +19,7 @@ DataGraphsGraphsFlowsExt = "GraphsFlows"
1919
Dictionaries = "0.4"
2020
Graphs = "1"
2121
GraphsFlows = "0.1.1"
22-
NamedGraphs = "0.6.0"
22+
NamedGraphs = "0.6.9"
2323
SimpleTraits = "0.9"
2424
julia = "1.7"
2525

src/DataGraphs.jl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ module DataGraphs
33
include("utils.jl")
44
include("traits/isunderlyinggraph.jl")
55
include("abstractdatagraph.jl")
6-
include("arrange.jl")
76
include("datagraph.jl")
87
# TODO: Turn into a weak dependency once `GraphsExtensions`
98
# is split off from `NamedGraphs`.

src/abstractdatagraph.jl

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ using Graphs:
1111
nv,
1212
steiner_tree,
1313
vertices
14-
using NamedGraphs.GraphsExtensions: GraphsExtensions, incident_edges, vertextype
14+
using NamedGraphs.GraphsExtensions:
15+
GraphsExtensions, arrange_edge, incident_edges, is_edge_arranged, vertextype
1516
using NamedGraphs.SimilarType: similar_type
1617
using SimpleTraits: SimpleTraits, Not, @traitfn
1718

@@ -157,6 +158,11 @@ end
157158

158159
@traitfn GraphsExtensions.directed_graph(graph::AbstractDataGraph::IsDirected) = graph
159160

161+
reverse_data_direction(graph::AbstractDataGraph, data) = data
162+
function reverse_data_direction(graph::AbstractDataGraph, edge::AbstractEdge, data)
163+
return is_edge_arranged(graph, edge) ? data : reverse_data_direction(graph, data)
164+
end
165+
160166
@traitfn function GraphsExtensions.directed_graph(graph::AbstractDataGraph::(!IsDirected))
161167
digraph = directed_graph(typeof(graph))(directed_graph(underlying_graph(graph)))
162168
for v in vertices(graph)
@@ -335,9 +341,8 @@ function Base.get!(graph::AbstractDataGraph, vertex, default)
335341
end
336342

337343
function Base.getindex(graph::AbstractDataGraph, edge::AbstractEdge)
338-
is_edge_arranged_ = is_edge_arranged(graph, edge)
339-
data = edge_data(graph)[arrange(is_edge_arranged_, edge)]
340-
return reverse_data_direction(is_edge_arranged_, graph, data)
344+
data = edge_data(graph)[arrange_edge(graph, edge)]
345+
return reverse_data_direction(graph, edge, data)
341346
end
342347

343348
# Support syntax `g[v1 => v2]`
@@ -346,19 +351,17 @@ function Base.getindex(graph::AbstractDataGraph, edge::Pair)
346351
end
347352

348353
function Base.get(graph::AbstractDataGraph, edge::AbstractEdge, default)
349-
is_edge_arranged_ = is_edge_arranged(graph, edge)
350-
data = get(edge_data(graph), arrange(is_edge_arranged_, edge), default)
351-
return reverse_data_direction(is_edge_arranged_, graph, data)
354+
data = get(edge_data(graph), arrange_edge(graph, edge), default)
355+
return reverse_data_direction(graph, edge, data)
352356
end
353357

354358
function Base.get(graph::AbstractDataGraph, edge::Pair, default)
355359
return get(graph, edgetype(graph)(edge), default)
356360
end
357361

358362
function Base.get!(graph::AbstractDataGraph, edge::AbstractEdge, default)
359-
is_edge_arranged_ = is_edge_arranged(graph, edge)
360-
data = get!(edge_data(graph), arrange(is_edge_arranged_, edge), default)
361-
return reverse_data_direction(is_edge_arranged_, graph, data)
363+
data = get!(edge_data(graph), arrange_edge(graph, edge), default)
364+
return reverse_data_direction(graph, edge, data)
362365
end
363366

364367
function Base.get!(graph::AbstractDataGraph, edge::Pair, default)
@@ -374,12 +377,12 @@ function Base.isassigned(graph::AbstractDataGraph, vertex)
374377
return isassigned(vertex_data(graph), vertex)
375378
end
376379

377-
function Base.isassigned(graph::AbstractDataGraph, vertex::AbstractEdge)
378-
return isassigned(edge_data(graph), arrange(graph, vertex))
380+
function Base.isassigned(graph::AbstractDataGraph, edge::AbstractEdge)
381+
return isassigned(edge_data(graph), arrange_edge(graph, edge))
379382
end
380383

381-
function Base.isassigned(graph::AbstractDataGraph, vertex::Pair)
382-
return isassigned(graph, edgetype(graph)(vertex))
384+
function Base.isassigned(graph::AbstractDataGraph, edge::Pair)
385+
return isassigned(graph, edgetype(graph)(edge))
383386
end
384387

385388
function Base.setindex!(graph::AbstractDataGraph, data, vertex)
@@ -388,9 +391,8 @@ function Base.setindex!(graph::AbstractDataGraph, data, vertex)
388391
end
389392

390393
function Base.setindex!(graph::AbstractDataGraph, data, edge::AbstractEdge)
391-
is_edge_arranged_ = is_edge_arranged(graph, edge)
392-
arranged_edge = arrange(is_edge_arranged_, edge)
393-
arranged_data = reverse_data_direction(is_edge_arranged_, graph, data)
394+
arranged_edge = arrange_edge(graph, edge)
395+
arranged_data = reverse_data_direction(graph, edge, data)
394396
set!(edge_data(graph), arranged_edge, arranged_data)
395397
return graph
396398
end

src/arrange.jl

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

test/test_basics.jl

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,5 @@
11
using DataGraphs:
2-
DataGraphs,
3-
DataGraph,
4-
edge_data,
5-
edge_data_eltype,
6-
is_arranged,
7-
vertex_data,
8-
vertex_data_eltype
2+
DataGraphs, DataGraph, edge_data, edge_data_eltype, vertex_data, vertex_data_eltype
93
using Dictionaries: AbstractIndices, Dictionary, Indices, dictionary
104
using Graphs:
115
add_edge!,
@@ -37,8 +31,6 @@ using NamedGraphs.NamedGraphGenerators: named_grid, named_path_graph
3731
using NamedGraphs.OrdinalIndexing: nd, st, rd, th
3832
using Test: @test, @test_broken, @testset
3933

40-
using DataGraphs: is_arranged
41-
4234
@testset "DataGraphs.jl" begin
4335
@eval module $(gensym())
4436
using DataGraphs: DataGraphs
@@ -54,25 +46,6 @@ using DataGraphs: is_arranged
5446
end
5547
end
5648

57-
@testset "is_arranged" begin
58-
for (a, b) in [
59-
(1, 2),
60-
([1], [2]),
61-
([1, 2], [2, 1]),
62-
([1, 2], [2]),
63-
([2], [2, 1]),
64-
((1,), (2,)),
65-
((1, 2), (2, 1)),
66-
((1, 2), (2,)),
67-
((2,), (2, 1)),
68-
("X", 1),
69-
(("X",), (1, 2)),
70-
]
71-
@test is_arranged(a, b)
72-
@test !is_arranged(b, a)
73-
end
74-
end
75-
7649
@testset "Basics" begin
7750
g = grid((4,))
7851
dg = DataGraph(g; vertex_data_eltype=String, edge_data_eltype=Symbol)

0 commit comments

Comments
 (0)