diff --git a/Cargo.lock b/Cargo.lock index 4a1829b5..d1db0872 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3572,7 +3572,7 @@ dependencies = [ [[package]] name = "zenoh" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "ahash", "arc-swap", @@ -3623,7 +3623,7 @@ dependencies = [ [[package]] name = "zenoh-buffers" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "zenoh-collections", ] @@ -3631,7 +3631,7 @@ dependencies = [ [[package]] name = "zenoh-codec" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "tracing", "uhlc", @@ -3643,7 +3643,7 @@ dependencies = [ [[package]] name = "zenoh-collections" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "ahash", ] @@ -3651,7 +3651,7 @@ dependencies = [ [[package]] name = "zenoh-config" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "json5", "nonempty-collections", @@ -3675,7 +3675,7 @@ dependencies = [ [[package]] name = "zenoh-core" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "lazy_static", "tokio", @@ -3686,7 +3686,7 @@ dependencies = [ [[package]] name = "zenoh-crypto" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "aes", "hmac", @@ -3699,7 +3699,7 @@ dependencies = [ [[package]] name = "zenoh-ext" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "bincode", @@ -3718,7 +3718,7 @@ dependencies = [ [[package]] name = "zenoh-keyexpr" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "getrandom 0.2.15", "hashbrown 0.16.0", @@ -3733,7 +3733,7 @@ dependencies = [ [[package]] name = "zenoh-link" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "zenoh-config", "zenoh-link-commons", @@ -3751,7 +3751,7 @@ dependencies = [ [[package]] name = "zenoh-link-commons" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "base64", @@ -3784,7 +3784,7 @@ dependencies = [ [[package]] name = "zenoh-link-quic" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "base64", @@ -3809,7 +3809,7 @@ dependencies = [ [[package]] name = "zenoh-link-quic_datagram" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "quinn", @@ -3829,7 +3829,7 @@ dependencies = [ [[package]] name = "zenoh-link-tcp" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "socket2 0.5.7", @@ -3846,7 +3846,7 @@ dependencies = [ [[package]] name = "zenoh-link-tls" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "base64", @@ -3875,7 +3875,7 @@ dependencies = [ [[package]] name = "zenoh-link-udp" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "libc", @@ -3896,7 +3896,7 @@ dependencies = [ [[package]] name = "zenoh-link-unixsock_stream" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "nix", @@ -3914,7 +3914,7 @@ dependencies = [ [[package]] name = "zenoh-link-ws" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "futures-util", @@ -3934,7 +3934,7 @@ dependencies = [ [[package]] name = "zenoh-macros" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "proc-macro2", "quote", @@ -3945,7 +3945,7 @@ dependencies = [ [[package]] name = "zenoh-plugin-trait" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "git-version", "libloading", @@ -3962,7 +3962,7 @@ dependencies = [ [[package]] name = "zenoh-protocol" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "const_format", "rand", @@ -3986,7 +3986,7 @@ dependencies = [ [[package]] name = "zenoh-result" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "anyhow", ] @@ -3994,7 +3994,7 @@ dependencies = [ [[package]] name = "zenoh-runtime" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "lazy_static", "ron", @@ -4008,7 +4008,7 @@ dependencies = [ [[package]] name = "zenoh-shm" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "advisory-lock", "async-trait", @@ -4037,7 +4037,7 @@ dependencies = [ [[package]] name = "zenoh-sync" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "arc-swap", "event-listener", @@ -4051,7 +4051,7 @@ dependencies = [ [[package]] name = "zenoh-task" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "futures", "tokio", @@ -4064,7 +4064,7 @@ dependencies = [ [[package]] name = "zenoh-transport" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "crossbeam-utils", @@ -4099,7 +4099,7 @@ dependencies = [ [[package]] name = "zenoh-util" version = "1.5.1" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#277ccaf70bb50789fd967cf062b9085ea3715191" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#23e9229e332f7ca1c06390f419b99340dec28295" dependencies = [ "async-trait", "const_format", diff --git a/src/ext.rs b/src/ext.rs index c3e772a5..6728b8af 100644 --- a/src/ext.rs +++ b/src/ext.rs @@ -467,6 +467,11 @@ impl AdvancedPublisher { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) @@ -545,6 +550,11 @@ impl AdvancedSubscriber { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) diff --git a/src/pubsub.rs b/src/pubsub.rs index 91d6b024..0c0f8f77 100644 --- a/src/pubsub.rs +++ b/src/pubsub.rs @@ -25,6 +25,7 @@ use crate::{ matching::{MatchingListener, MatchingStatus}, qos::{CongestionControl, Priority, Reliability}, sample::{Sample, SourceInfo}, + session::EntityGlobalId, time::Timestamp, utils::{generic, wait}, }; @@ -48,6 +49,11 @@ impl Publisher { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) @@ -161,6 +167,11 @@ impl Subscriber { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) diff --git a/src/query.rs b/src/query.rs index d982b1e2..bcf775ca 100644 --- a/src/query.rs +++ b/src/query.rs @@ -286,6 +286,11 @@ impl Queryable { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) @@ -341,6 +346,11 @@ impl Querier { Ok(py.None()) } + #[getter] + fn id(&self) -> PyResult { + Ok(self.get_ref()?.id().into()) + } + #[getter] fn key_expr(&self) -> PyResult { Ok(self.get_ref()?.key_expr().clone().into()) diff --git a/src/session.rs b/src/session.rs index b99486bf..9272d1aa 100644 --- a/src/session.rs +++ b/src/session.rs @@ -54,6 +54,11 @@ impl Session { Ok(py.None()) } + #[getter] + fn id(&self) -> EntityGlobalId { + self.0.id().into() + } + fn zid(&self) -> PyResult { Ok(self.0.zid().into()) } diff --git a/zenoh/__init__.pyi b/zenoh/__init__.pyi index 55a2c8df..9ccfe919 100644 --- a/zenoh/__init__.pyi +++ b/zenoh/__init__.pyi @@ -492,6 +492,9 @@ class Publisher: def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property @@ -620,6 +623,9 @@ class Queryable(Generic[_H]): def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property @@ -645,6 +651,9 @@ class Querier: def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property @@ -880,6 +889,9 @@ class Session: def __exit__(self, *_args, **_kwargs): ... @property def info(self) -> SessionInfo: ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... def zid(self) -> ZenohId: """Returns the identifier of the current session. zid() is a convenient shortcut.""" @@ -1171,6 +1183,9 @@ class Subscriber(Generic[_H]): def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property diff --git a/zenoh/ext.pyi b/zenoh/ext.pyi index 6ae4ebc6..bce3b701 100644 --- a/zenoh/ext.pyi +++ b/zenoh/ext.pyi @@ -117,6 +117,9 @@ def z_deserialize(tp: type[_T], zbytes: ZBytes) -> _T: class AdvancedPublisher: def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property @@ -146,6 +149,9 @@ class AdvancedPublisher: class AdvancedSubscriber(Generic[_H]): def __enter__(self) -> Self: ... def __exit__(self, *_args, **_kwargs): ... + @_unstable + @property + def id(self) -> EntityGlobalId: ... @property def key_expr(self) -> KeyExpr: ... @property