Skip to content

Commit b81d5cd

Browse files
committed
update reticula and add new traits
1 parent 6b43923 commit b81d5cd

3 files changed

Lines changed: 42 additions & 2 deletions

File tree

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ include(FetchContent)
99
FetchContent_Declare(
1010
reticula
1111
GIT_REPOSITORY https://github.com/reticula-network/reticula.git
12-
GIT_TAG 5152713c036c9801c8e309d784cf19dadb589b98)
12+
GIT_TAG fe2e8bc357d4b5c7ce6ff082a607835b55700168)
1313

1414
FetchContent_Declare(
1515
fmt

src/common_edge_properties.hpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
#include <reticula/type_traits.hpp>
21
#include <reticula/network_concepts.hpp>
32

43
#include "bind_core.hpp"
@@ -119,9 +118,28 @@ nb::class_<EdgeT> define_basic_edge_concept(nb::module_& m) {
119118
m.def(fmt::format("is_undirected_{}",
120119
python_type_str<EdgeT>()).c_str(),
121120
[]{ return reticula::is_undirected_v<EdgeT>; });
121+
m.def(fmt::format("is_directed_{}",
122+
python_type_str<EdgeT>()).c_str(),
123+
[]{ return reticula::is_directed_v<EdgeT>; });
122124
m.def(fmt::format("is_dyadic_{}",
123125
python_type_str<EdgeT>()).c_str(),
124126
[]{ return reticula::is_dyadic_v<EdgeT>; });
125127

128+
129+
m.def("is_network_edge",
130+
[](const EdgeT&){ return reticula::network_edge<EdgeT>; });
131+
m.def("is_static_edge",
132+
[](const EdgeT&){ return reticula::static_network_edge<EdgeT>; });
133+
m.def("is_temporal_edge",
134+
[](const EdgeT&){ return reticula::temporal_network_edge<EdgeT>; });
135+
m.def("is_instantaneous",
136+
[](const EdgeT&){ return reticula::is_instantaneous_v<EdgeT>; });
137+
m.def("is_undirected",
138+
[](const EdgeT&){ return reticula::is_undirected_v<EdgeT>; });
139+
m.def("is_directed",
140+
[](const EdgeT&){ return reticula::is_directed_v<EdgeT>; });
141+
m.def("is_dyadic",
142+
[](const EdgeT&){ return reticula::is_dyadic_v<EdgeT>; });
143+
126144
return cls;
127145
}

src/networks.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,28 @@ struct declare_network_class {
109109
}).def_static("vertex_type", []() {
110110
return types::handle_for<typename Net::VertexType>();
111111
});
112+
113+
m.def(fmt::format("is_instantaneous_{}",
114+
python_type_str<Net>()).c_str(),
115+
[]{ return reticula::is_instantaneous_v<Net>; });
116+
m.def(fmt::format("is_undirected_{}",
117+
python_type_str<Net>()).c_str(),
118+
[]{ return reticula::is_undirected_v<Net>; });
119+
m.def(fmt::format("is_directed_{}",
120+
python_type_str<Net>()).c_str(),
121+
[]{ return reticula::is_directed_v<Net>; });
122+
m.def(fmt::format("is_dyadic_{}",
123+
python_type_str<Net>()).c_str(),
124+
[]{ return reticula::is_dyadic_v<Net>; });
125+
126+
m.def("is_instantaneous",
127+
[](const Net&){ return reticula::is_instantaneous_v<Net>; });
128+
m.def("is_undirected",
129+
[](const Net&){ return reticula::is_undirected_v<Net>; });
130+
m.def("is_directed",
131+
[](const Net&){ return reticula::is_directed_v<Net>; });
132+
m.def("is_dyadic",
133+
[](const Net&){ return reticula::is_dyadic_v<Net>; });
112134
}
113135
};
114136

0 commit comments

Comments
 (0)