pub mod network;
#[cfg(feature = "python_bindings")]
use crate::bindings::python::network::client::o3_agent::PyRelayRLAgent;
#[cfg(feature = "python_bindings")]
use crate::bindings::python::network::server::o3_training_server::PyTrainingServer;
#[cfg(any(
feature = "networks",
feature = "grpc_network",
feature = "zmq_network",
feature = "python_bindings"
))]
use crate::bindings::python::o3_action::PyRelayRLAction;
#[cfg(feature = "python_bindings")]
use crate::bindings::python::o3_config_loader::PyConfigLoader;
#[cfg(any(
feature = "networks",
feature = "grpc_network",
feature = "zmq_network",
feature = "python_bindings"
))]
use crate::bindings::python::o3_trajectory::PyRelayRLTrajectory;
#[cfg(feature = "python_bindings")]
use pyo3::prelude::*;
#[cfg(feature = "python_bindings")]
use pyo3::{Bound, PyResult, pymodule};
#[cfg(feature = "grpc_network")]
mod proto {
tonic::include_proto!("relayrl_grpc");
}
pub(crate) mod sys_utils {
pub mod config_loader;
pub(crate) mod misc_utils;
#[cfg(any(
feature = "networks",
feature = "grpc_network",
feature = "zmq_network"
))]
pub(crate) mod resolve_server_config;
pub(crate) mod tokio_utils;
#[cfg(feature = "grpc_network")]
pub(crate) mod grpc_utils;
}
#[cfg(feature = "data_types")]
pub mod types {
pub mod action;
pub mod trajectory;
}
pub mod bindings {
pub mod python {
#[cfg(any(
feature = "networks",
feature = "grpc_network",
feature = "zmq_network",
feature = "python_bindings"
))]
#[cfg_attr(bench, visibility = "pub")]
pub mod o3_action;
#[cfg(feature = "python_bindings")]
#[cfg_attr(bench, visibility = "pub")]
pub mod o3_config_loader;
#[cfg(any(
feature = "networks",
feature = "grpc_network",
feature = "zmq_network",
feature = "python_bindings"
))]
#[cfg_attr(bench, visibility = "pub")]
pub mod o3_trajectory;
#[cfg(feature = "python_bindings")]
pub mod network {
pub mod client {
pub mod o3_agent;
}
pub mod server {
pub mod o3_training_server;
}
}
}
}
#[cfg(feature = "python_bindings")]
#[pymodule(name = "relayrl_framework")]
fn relayrl_framework(_py: Python, m: &Bound<'_, PyModule>) -> PyResult<()> {
m.add_class::<PyConfigLoader>()?;
m.add_class::<PyTrainingServer>()?;
m.add_class::<PyRelayRLAgent>()?;
m.add_class::<PyRelayRLTrajectory>()?;
m.add_class::<PyRelayRLAction>()?;
m.add(
"__all__",
vec![
"ConfigLoader",
"TrainingServer",
"RelayRLAgent",
"RelayRLTrajectory",
"RelayRLAction",
],
)?;
Ok(())
}