diff --git a/Cargo.lock b/Cargo.lock index 1969fecd..73f2c014 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3616,7 +3616,7 @@ dependencies = [ [[package]] name = "zenoh" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "ahash", "arc-swap", @@ -3668,7 +3668,7 @@ dependencies = [ [[package]] name = "zenoh-buffers" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "zenoh-collections", ] @@ -3676,7 +3676,7 @@ dependencies = [ [[package]] name = "zenoh-codec" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "tracing", "uhlc", @@ -3688,7 +3688,7 @@ dependencies = [ [[package]] name = "zenoh-collections" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "ahash", ] @@ -3696,7 +3696,7 @@ dependencies = [ [[package]] name = "zenoh-config" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "json5", "nonempty-collections", @@ -3720,7 +3720,7 @@ dependencies = [ [[package]] name = "zenoh-core" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "lazy_static", "tokio", @@ -3731,7 +3731,7 @@ dependencies = [ [[package]] name = "zenoh-crypto" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "aes", "hmac", @@ -3744,7 +3744,7 @@ dependencies = [ [[package]] name = "zenoh-ext" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "bincode", @@ -3763,7 +3763,7 @@ dependencies = [ [[package]] name = "zenoh-keyexpr" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "getrandom 0.2.16", "hashbrown 0.16.1", @@ -3778,7 +3778,7 @@ dependencies = [ [[package]] name = "zenoh-link" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "zenoh-config", "zenoh-link-commons", @@ -3796,7 +3796,7 @@ dependencies = [ [[package]] name = "zenoh-link-commons" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "base64", @@ -3829,7 +3829,7 @@ dependencies = [ [[package]] name = "zenoh-link-quic" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "base64", @@ -3854,7 +3854,7 @@ dependencies = [ [[package]] name = "zenoh-link-quic_datagram" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "quinn", @@ -3874,7 +3874,7 @@ dependencies = [ [[package]] name = "zenoh-link-tcp" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "socket2 0.5.10", @@ -3891,7 +3891,7 @@ dependencies = [ [[package]] name = "zenoh-link-tls" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "base64", @@ -3920,7 +3920,7 @@ dependencies = [ [[package]] name = "zenoh-link-udp" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "libc", @@ -3941,7 +3941,7 @@ dependencies = [ [[package]] name = "zenoh-link-unixsock_stream" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "nix", @@ -3959,7 +3959,7 @@ dependencies = [ [[package]] name = "zenoh-link-ws" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "futures-util", @@ -3979,7 +3979,7 @@ dependencies = [ [[package]] name = "zenoh-macros" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "proc-macro2", "quote", @@ -3990,7 +3990,7 @@ dependencies = [ [[package]] name = "zenoh-plugin-trait" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "git-version", "libloading", @@ -4007,7 +4007,7 @@ dependencies = [ [[package]] name = "zenoh-protocol" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "const_format", "rand 0.8.5", @@ -4031,7 +4031,7 @@ dependencies = [ [[package]] name = "zenoh-result" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "anyhow", ] @@ -4039,7 +4039,7 @@ dependencies = [ [[package]] name = "zenoh-runtime" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "lazy_static", "ron", @@ -4053,7 +4053,7 @@ dependencies = [ [[package]] name = "zenoh-shm" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "advisory-lock", "async-trait", @@ -4082,7 +4082,7 @@ dependencies = [ [[package]] name = "zenoh-sync" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "arc-swap", "event-listener", @@ -4096,7 +4096,7 @@ dependencies = [ [[package]] name = "zenoh-task" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "futures", "tokio", @@ -4109,7 +4109,7 @@ dependencies = [ [[package]] name = "zenoh-transport" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "crossbeam-utils", @@ -4144,7 +4144,7 @@ dependencies = [ [[package]] name = "zenoh-util" version = "1.6.2" -source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#94904b46096987d432ecacda678a468f8df8ec23" +source = "git+https://github.com/eclipse-zenoh/zenoh.git?branch=main#1332d4e66820aae05b444bcc74f6dd7eee6e050c" dependencies = [ "async-trait", "const_format", diff --git a/src/query.rs b/src/query.rs index 1da364f3..8f429357 100644 --- a/src/query.rs +++ b/src/query.rs @@ -190,6 +190,11 @@ impl Query { wait(py, build) } + #[getter] + fn source_info(&self) -> PyResult> { + Ok(self.get_ref()?.source_info().cloned().map_into()) + } + fn drop(&mut self) { Python::with_gil(|gil| gil.allow_threads(|| drop(self.0.take()))); } diff --git a/src/sample.rs b/src/sample.rs index f3f50602..dce32cf6 100644 --- a/src/sample.rs +++ b/src/sample.rs @@ -91,8 +91,8 @@ impl Sample { } #[getter] - fn source_info(&self) -> SourceInfo { - self.0.source_info().clone().into() + fn source_info(&self) -> Option { + self.0.source_info().cloned().map_into() } fn __repr__(&self) -> String { @@ -105,20 +105,17 @@ wrapper!(zenoh::sample::SourceInfo: Clone); #[pymethods] impl SourceInfo { #[new] - fn new(source_id: Option, source_sn: Option) -> Self { - Self(zenoh::sample::SourceInfo::new( - source_id.map_into(), - source_sn, - )) + fn new(source_id: EntityGlobalId, source_sn: SourceSn) -> Self { + Self(zenoh::sample::SourceInfo::new(source_id.into(), source_sn)) } #[getter] - fn source_id(&self) -> Option { - self.0.source_id().cloned().map_into() + fn source_id(&self) -> EntityGlobalId { + (*self.0.source_id()).into() } #[getter] - fn source_sn(&self) -> Option { + fn source_sn(&self) -> SourceSn { self.0.source_sn() } } diff --git a/zenoh/__init__.pyi b/zenoh/__init__.pyi index 588d2625..bbe43c08 100644 --- a/zenoh/__init__.pyi +++ b/zenoh/__init__.pyi @@ -833,6 +833,11 @@ class Query: See the class documentation for important details about which key expression to use for replies. """ + @_unstable + @property + def source_info(self) -> SourceInfo | None: + """Gets info on the source of this Query.""" + def drop(self): """Drop the instance of a query. The query will only be finalized when all query instances (one per queryable @@ -1174,7 +1179,7 @@ class Sample: @_unstable @property - def source_info(self) -> SourceInfo: + def source_info(self) -> SourceInfo | None: """Gets info on the source of this Sample.""" @final @@ -1635,15 +1640,13 @@ class SourceInfo: global identifier and sequence number. """ - def __new__( - cls, source_id: EntityGlobalId | None = None, source_sn: SourceSn | None = None - ) -> Self: ... + def __new__(cls, source_id: EntityGlobalId, source_sn: SourceSn) -> Self: ... @property - def source_id(self) -> EntityGlobalId | None: + def source_id(self) -> EntityGlobalId: """The EntityGlobalId of the zenoh entity that published the Sample in question.""" @property - def source_sn(self) -> SourceSn | None: + def source_sn(self) -> SourceSn: """The sequence number of the Sample from the source.""" SourceSn = int