Files
GridFire/src/python/policy/trampoline/py_policy.cpp
Emily Boudreaux 11a596b75b feat(python): Python Bindings
Python Bindings are working again
2025-12-20 16:02:52 -05:00

158 lines
4.1 KiB
C++

#include "py_policy.h"
#include "pybind11/pybind11.h"
#include "pybind11/stl.h"
#include "fourdst/atomic/atomicSpecies.h"
#include "gridfire/reaction/reaction.h"
#include "gridfire/engine/engine.h"
#include "gridfire/policy/policy.h"
#include <string>
#include <set>
namespace py = pybind11;
std::string PyNetworkPolicy::name() const {
PYBIND11_OVERRIDE_PURE(
std::string,
gridfire::policy::NetworkPolicy,
name
);
}
const std::set<fourdst::atomic::Species>& PyNetworkPolicy::get_seed_species() const {
PYBIND11_OVERRIDE_PURE(
const std::set<fourdst::atomic::Species>&,
gridfire::policy::NetworkPolicy,
get_seed_species
);
}
const gridfire::reaction::ReactionSet& PyNetworkPolicy::get_seed_reactions() const {
PYBIND11_OVERRIDE_PURE(
const gridfire::reaction::ReactionSet&,
gridfire::policy::NetworkPolicy,
get_seed_reactions
);
}
gridfire::policy::ConstructionResults PyNetworkPolicy::construct() {
PYBIND11_OVERRIDE_PURE(
gridfire::policy::ConstructionResults,
gridfire::policy::NetworkPolicy,
construct
);
}
gridfire::policy::NetworkPolicyStatus PyNetworkPolicy::get_status() const {
PYBIND11_OVERRIDE_PURE(
gridfire::policy::NetworkPolicyStatus,
gridfire::policy::NetworkPolicy,
getStatus
);
}
const std::vector<std::unique_ptr<gridfire::engine::DynamicEngine>> &PyNetworkPolicy::get_engine_stack() const {
PYBIND11_OVERRIDE_PURE(
const std::vector<std::unique_ptr<gridfire::engine::DynamicEngine>> &,
gridfire::policy::NetworkPolicy,
get_engine_stack
);
}
std::vector<gridfire::engine::EngineTypes> PyNetworkPolicy::get_engine_types_stack() const {
PYBIND11_OVERRIDE_PURE(
std::vector<gridfire::engine::EngineTypes>,
gridfire::policy::NetworkPolicy,
get_engine_types_stack
);
}
const std::unique_ptr<gridfire::partition::PartitionFunction>& PyNetworkPolicy::get_partition_function() const {
PYBIND11_OVERRIDE_PURE(
const std::unique_ptr<gridfire::partition::PartitionFunction>&,
gridfire::policy::NetworkPolicy,
get_partition_function
);
}
std::unique_ptr<gridfire::engine::scratch::StateBlob> PyNetworkPolicy::get_stack_scratch_blob() const {
PYBIND11_OVERRIDE_PURE(
std::unique_ptr<gridfire::engine::scratch::StateBlob>,
gridfire::policy::NetworkPolicy,
get_stack_scratch_blob
);
}
const gridfire::reaction::ReactionSet &PyReactionChainPolicy::get_reactions() const {
PYBIND11_OVERRIDE_PURE(
const gridfire::reaction::ReactionSet &,
gridfire::policy::ReactionChainPolicy,
get_reactions
);
}
bool PyReactionChainPolicy::contains(const std::string &id) const {
PYBIND11_OVERRIDE_PURE(
bool,
gridfire::policy::ReactionChainPolicy,
contains,
id
);
}
bool PyReactionChainPolicy::contains(const gridfire::reaction::Reaction &reaction) const {
PYBIND11_OVERRIDE_PURE(
bool,
gridfire::policy::ReactionChainPolicy,
contains,
reaction
);
}
std::unique_ptr<gridfire::policy::ReactionChainPolicy> PyReactionChainPolicy::clone() const {
PYBIND11_OVERRIDE_PURE(
std::unique_ptr<gridfire::policy::ReactionChainPolicy>,
gridfire::policy::ReactionChainPolicy,
clone
);
}
std::string PyReactionChainPolicy::name() const {
PYBIND11_OVERRIDE_PURE(
std::string,
gridfire::policy::ReactionChainPolicy,
name
);
}
uint64_t PyReactionChainPolicy::hash(uint64_t seed) const {
PYBIND11_OVERRIDE_PURE(
uint64_t,
gridfire::policy::ReactionChainPolicy,
hash,
seed
);
}
bool PyReactionChainPolicy::operator==(const ReactionChainPolicy &other) const {
PYBIND11_OVERRIDE_PURE(
bool,
gridfire::policy::ReactionChainPolicy,
operator==,
other
);
}
bool PyReactionChainPolicy::operator!=(const ReactionChainPolicy &other) const {
PYBIND11_OVERRIDE_PURE(
bool,
gridfire::policy::ReactionChainPolicy,
operator!=,
other
);
}