From 401c853bc8dcc9ce0cb060cf540065bcbe8e80f6 Mon Sep 17 00:00:00 2001
From: Jeremy Leibs
Date: Tue, 14 May 2024 18:32:33 +0200
Subject: [PATCH 01/40] Increase timeout for test_multiprocessing_gc failure
(#6318)
### What
Seeing intermittent test failures such as:
https://github.com/rerun-io/rerun/actions/runs/9079263975/job/24949470254
1s seems like it should have been plenty, but maybe this is a system
load timeout issue? We only hit this timeout if the test is failing so
increasing it some shouldn't hurt anything.
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6318?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6318?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6318)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
rerun_py/tests/unit/test_multiprocessing_gc.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/rerun_py/tests/unit/test_multiprocessing_gc.py b/rerun_py/tests/unit/test_multiprocessing_gc.py
index d4aeda1d7bcd2..7c78eabeccc6b 100644
--- a/rerun_py/tests/unit/test_multiprocessing_gc.py
+++ b/rerun_py/tests/unit/test_multiprocessing_gc.py
@@ -27,7 +27,7 @@ def test_multiprocessing_gc() -> None:
target=task,
)
proc.start()
- proc.join(1)
+ proc.join(5)
if proc.is_alive():
# Terminate so our test doesn't get stuck
proc.terminate()
From 178ef607ce1f0d8bb543a629c93be929b243b639 Mon Sep 17 00:00:00 2001
From: Jeremy Leibs
Date: Tue, 14 May 2024 19:27:50 +0200
Subject: [PATCH 02/40] Transmit url analytics correctly for rerun.io domains
(#6322)
### What
Resolves:
- https://github.com/rerun-io/rerun/issues/6274
- https://github.com/rerun-io/rerun/issues/6288
I added the processing at the last stage of the analytics output so we
don't depend on every code path possibily populating the analytics event
to do its own domain evaluation and/or hashing.
Validated events look correct in posthog:
![image](https://github.com/rerun-io/rerun/assets/3312232/17ddf585-5135-4ad1-8132-f64661b9e730)
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6322?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6322?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6322)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
Cargo.lock | 1 +
crates/re_analytics/Cargo.toml | 1 +
crates/re_analytics/src/event.rs | 81 ++++++++++++++++++++++++++++++--
lychee.toml | 1 +
4 files changed, 80 insertions(+), 4 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 957b7f4116a50..1dc04a6d3b949 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4122,6 +4122,7 @@ dependencies = [
"sha2",
"thiserror",
"time",
+ "url",
"uuid",
"web-sys",
]
diff --git a/crates/re_analytics/Cargo.toml b/crates/re_analytics/Cargo.toml
index d92962b0b66a8..a14d1bf21844a 100644
--- a/crates/re_analytics/Cargo.toml
+++ b/crates/re_analytics/Cargo.toml
@@ -32,6 +32,7 @@ serde_json.workspace = true
sha2.workspace = true
thiserror.workspace = true
time = { workspace = true, features = ["serde", "formatting", "parsing"] }
+url = { workspace = true }
uuid = { workspace = true, features = ["serde", "v4", "js"] }
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
diff --git a/crates/re_analytics/src/event.rs b/crates/re_analytics/src/event.rs
index ed8a525990270..bc7545bab8070 100644
--- a/crates/re_analytics/src/event.rs
+++ b/crates/re_analytics/src/event.rs
@@ -48,7 +48,8 @@ pub struct Identify {
pub struct ViewerStarted {
/// The URL on which the web viewer is running.
///
- /// We _only_ collect this on `rerun.io` domains.
+ /// This will be used to populate `hashed_root_domain` property for all urls.
+ /// This will also populate `rerun_url` property if the url root domain is `rerun.io`.
pub url: Option,
/// The environment in which the viewer is running.
@@ -61,7 +62,8 @@ pub struct ViewerStarted {
pub struct OpenRecording {
/// The URL on which the web viewer is running.
///
- /// We _only_ collect this on `rerun.io` domains.
+ /// This will be used to populate `hashed_root_domain` property for all urls.
+ /// This will also populate `rerun_url` property if the url root domain is `rerun.io`.
pub url: Option,
/// The environment in which the viewer is running.
@@ -125,6 +127,7 @@ impl Properties for ServeWasm {
use std::collections::HashMap;
use re_build_info::BuildInfo;
+use url::Url;
use crate::{AnalyticsEvent, Event, EventKind, Properties, Property};
@@ -167,12 +170,40 @@ impl Event for ViewerStarted {
const NAME: &'static str = "viewer_started";
}
+const RERUN_DOMAINS: [&str; 1] = ["rerun.io"];
+
+/// Given a URL, extract the root domain.
+fn extract_root_domain(url: &str) -> Option {
+ let parsed = Url::parse(url).ok()?;
+ let domain = parsed.domain()?;
+ let parts = domain.split('.').collect::>();
+ if parts.len() >= 2 {
+ Some(parts[parts.len() - 2..].join("."))
+ } else {
+ None
+ }
+}
+
+fn add_sanitized_url_properties(event: &mut AnalyticsEvent, url: Option) {
+ let Some(root_domain) = url.as_ref().and_then(|url| extract_root_domain(url)) else {
+ return;
+ };
+
+ if RERUN_DOMAINS.contains(&root_domain.as_str()) {
+ event.insert_opt("rerun_url", url);
+ }
+
+ let hashed = Property::from(root_domain).hashed();
+ event.insert("hashed_root_domain", hashed);
+}
+
impl Properties for ViewerStarted {
fn serialize(self, event: &mut AnalyticsEvent) {
let Self { url, app_env } = self;
event.insert("app_env", app_env);
- event.insert_opt("url", url);
+
+ add_sanitized_url_properties(event, url);
}
}
@@ -189,7 +220,8 @@ impl Properties for OpenRecording {
data_source,
} = self;
- event.insert_opt("url", url);
+ add_sanitized_url_properties(event, url);
+
event.insert("app_env", app_env);
if let Some(store_info) = store_info {
@@ -255,3 +287,44 @@ impl Properties for CrashSignal {
event.insert("callstack", callstack.clone());
}
}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+
+ #[test]
+ fn test_root_domain() {
+ // Valid urls
+ assert_eq!(
+ extract_root_domain("https://rerun.io"),
+ Some("rerun.io".to_owned())
+ );
+ assert_eq!(
+ extract_root_domain("https://ReRun.io"),
+ Some("rerun.io".to_owned())
+ );
+ assert_eq!(
+ extract_root_domain("http://app.rerun.io"),
+ Some("rerun.io".to_owned())
+ );
+ assert_eq!(
+ extract_root_domain("https://www.rerun.io/viewer?url=https://app.rerun.io/version/0.15.1/examples/detect_and_track_objects.rrd"),
+ Some("rerun.io".to_owned())
+ );
+
+ // Local domains
+ assert_eq!(
+ extract_root_domain("http://localhost:9090/?url=ws://localhost:9877"),
+ None
+ );
+ assert_eq!(
+ extract_root_domain("http://127.0.0.1:9090/?url=ws://localhost:9877"),
+ None
+ );
+
+ // Invalid urls
+ assert_eq!(extract_root_domain("rerun.io"), None);
+ assert_eq!(extract_root_domain("https:/rerun"), None);
+ assert_eq!(extract_root_domain("https://rerun"), None);
+ }
+}
diff --git a/lychee.toml b/lychee.toml
index 5f889c05035f9..222bf3ff2316a 100644
--- a/lychee.toml
+++ b/lychee.toml
@@ -50,6 +50,7 @@ exclude_path = [
"venv",
# Actually ignored files beyond .gitignore
+ "crates/re_analytics/src/event.rs", # Contains test with malformed urls
"scripts/lint.py", # Contains url-matching regexes that aren't actual urls
"scripts/screenshot_compare/assets/templates/",
]
From c19a08f71c12a060b3c01f7d89948b2c61832808 Mon Sep 17 00:00:00 2001
From: Clement Rey
Date: Tue, 14 May 2024 20:15:53 +0200
Subject: [PATCH 03/40] Keep track of the RRD protocol version and display it
where relevant (#6324)
This augments `StoreInfo` with an in-memory only (!) `store_version`
field.
Our `Decoder` and `StreamDecoder` have been patched to fill out this
field using the RRD version present in the stream's header.
This version is now visible in the UI, using the CLI, and in the
analytics.
Viewer:
![image](https://github.com/rerun-io/rerun/assets/2910679/c7b7f211-1a16-41d4-b43a-d8c661819122)
CLI:
![image](https://github.com/rerun-io/rerun/assets/2910679/df15efa9-e2a0-42b8-b17a-b2c10dc7a46d)
Analytics:
![image](https://github.com/rerun-io/rerun/assets/2910679/b9cf5745-2eb1-4f8a-8a4c-2db9cb874c0b)
- Fixes https://github.com/rerun-io/rerun/issues/6280
---
Cargo.lock | 7 ++
crates/re_analytics/src/event.rs | 32 ++++++---
crates/re_build_info/Cargo.toml | 13 ++++
crates/re_build_info/src/crate_version.rs | 6 ++
crates/re_data_loader/Cargo.toml | 1 +
crates/re_data_loader/src/load_file.rs | 9 ++-
crates/re_data_ui/src/entity_db.rs | 9 +++
crates/re_data_ui/src/log_msg.rs | 9 +++
crates/re_entity_db/Cargo.toml | 1 +
crates/re_entity_db/examples/memory_usage.rs | 9 ++-
crates/re_entity_db/src/store_bundle.rs | 1 +
.../benches/msg_encode_benchmark.rs | 8 ++-
crates/re_log_encoding/src/decoder/mod.rs | 38 +++++++---
crates/re_log_encoding/src/decoder/stream.rs | 24 ++++++-
crates/re_log_encoding/src/encoder.rs | 19 +++--
crates/re_log_encoding/src/file_sink.rs | 12 +++-
crates/re_log_types/Cargo.toml | 2 +
crates/re_log_types/src/lib.rs | 9 +++
crates/re_sdk/src/binary_stream_sink.rs | 7 +-
crates/re_sdk/src/lib.rs | 1 +
crates/re_sdk/src/log_sink.rs | 14 ++--
crates/re_sdk/src/recording_stream.rs | 1 +
crates/re_sdk_comms/Cargo.toml | 1 +
crates/re_sdk_comms/src/buffered_client.rs | 5 +-
crates/re_viewer/src/app.rs | 39 ++++++++--
crates/re_viewer/src/saving.rs | 3 +-
.../re_viewer/src/viewer_analytics/event.rs | 71 +++++++++++--------
crates/rerun/src/run.rs | 7 +-
28 files changed, 280 insertions(+), 78 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 1dc04a6d3b949..9bb3d19215bc7 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -4153,6 +4153,9 @@ dependencies = [
[[package]]
name = "re_build_info"
version = "0.16.0-alpha.4"
+dependencies = [
+ "serde",
+]
[[package]]
name = "re_build_tools"
@@ -4189,6 +4192,7 @@ dependencies = [
"once_cell",
"parking_lot",
"rayon",
+ "re_build_info",
"re_build_tools",
"re_log",
"re_log_encoding",
@@ -4318,6 +4322,7 @@ dependencies = [
"nohash-hasher",
"parking_lot",
"rand",
+ "re_build_info",
"re_data_store",
"re_format",
"re_int_histogram",
@@ -4429,6 +4434,7 @@ dependencies = [
"num-derive",
"num-traits",
"re_arrow2",
+ "re_build_info",
"re_format",
"re_format_arrow",
"re_log",
@@ -4614,6 +4620,7 @@ dependencies = [
"crossbeam",
"document-features",
"rand",
+ "re_build_info",
"re_log",
"re_log_encoding",
"re_log_types",
diff --git a/crates/re_analytics/src/event.rs b/crates/re_analytics/src/event.rs
index bc7545bab8070..e04f4d466ee23 100644
--- a/crates/re_analytics/src/event.rs
+++ b/crates/re_analytics/src/event.rs
@@ -90,6 +90,9 @@ pub struct StoreInfo {
/// Where data is being logged.
pub store_source: String,
+ /// The Rerun version that was used to encode the RRD data.
+ pub store_version: String,
+
// Various versions of the host environment.
pub rust_version: Option,
pub llvm_version: Option,
@@ -225,16 +228,29 @@ impl Properties for OpenRecording {
event.insert("app_env", app_env);
if let Some(store_info) = store_info {
- event.insert("application_id", store_info.application_id);
- event.insert("recording_id", store_info.recording_id);
- event.insert("store_source", store_info.store_source);
- event.insert_opt("rust_version", store_info.rust_version);
- event.insert_opt("llvm_version", store_info.llvm_version);
- event.insert_opt("python_version", store_info.python_version);
- event.insert("is_official_example", store_info.is_official_example);
+ let StoreInfo {
+ application_id,
+ recording_id,
+ store_source,
+ store_version,
+ rust_version,
+ llvm_version,
+ python_version,
+ is_official_example,
+ app_id_starts_with_rerun_example,
+ } = store_info;
+
+ event.insert("application_id", application_id);
+ event.insert("recording_id", recording_id);
+ event.insert("store_source", store_source);
+ event.insert("store_version", store_version);
+ event.insert_opt("rust_version", rust_version);
+ event.insert_opt("llvm_version", llvm_version);
+ event.insert_opt("python_version", python_version);
+ event.insert("is_official_example", is_official_example);
event.insert(
"app_id_starts_with_rerun_example",
- store_info.app_id_starts_with_rerun_example,
+ app_id_starts_with_rerun_example,
);
}
diff --git a/crates/re_build_info/Cargo.toml b/crates/re_build_info/Cargo.toml
index 2bc3a0f19228b..a37d63ef9c54b 100644
--- a/crates/re_build_info/Cargo.toml
+++ b/crates/re_build_info/Cargo.toml
@@ -17,3 +17,16 @@ workspace = true
[package.metadata.docs.rs]
all-features = true
+
+
+[features]
+default = []
+
+## Enable (de)serialization using serde.
+serde = ["dep:serde"]
+
+
+[dependencies]
+
+# Optional dependencies:
+serde = { workspace = true, optional = true, features = ["derive", "rc"] }
diff --git a/crates/re_build_info/src/crate_version.rs b/crates/re_build_info/src/crate_version.rs
index eaac871671fd6..4a576a704cb0d 100644
--- a/crates/re_build_info/src/crate_version.rs
+++ b/crates/re_build_info/src/crate_version.rs
@@ -41,6 +41,7 @@ mod meta {
/// - `01NNNNNN` -> `-rc.N`
/// - `00000000` -> none of the above
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub struct CrateVersion {
pub major: u8,
pub minor: u8,
@@ -48,7 +49,12 @@ pub struct CrateVersion {
pub meta: Option ,
}
+impl CrateVersion {
+ pub const LOCAL: Self = Self::parse(env!("CARGO_PKG_VERSION"));
+}
+
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
+#[cfg_attr(feature = "serde", derive(serde::Deserialize, serde::Serialize))]
pub enum Meta {
Rc(u8),
Alpha(u8),
diff --git a/crates/re_data_loader/Cargo.toml b/crates/re_data_loader/Cargo.toml
index c8e0301c87123..e82b460db4558 100644
--- a/crates/re_data_loader/Cargo.toml
+++ b/crates/re_data_loader/Cargo.toml
@@ -24,6 +24,7 @@ default = []
[dependencies]
+re_build_info.workspace = true
re_log_encoding = { workspace = true, features = ["decoder"] }
re_log_types.workspace = true
re_log.workspace = true
diff --git a/crates/re_data_loader/src/load_file.rs b/crates/re_data_loader/src/load_file.rs
index 267eefff37c06..26f678b9ef104 100644
--- a/crates/re_data_loader/src/load_file.rs
+++ b/crates/re_data_loader/src/load_file.rs
@@ -101,7 +101,8 @@ pub(crate) fn prepare_store_info(
let app_id = re_log_types::ApplicationId(path.display().to_string());
let store_source = re_log_types::StoreSource::File { file_source };
- let is_rrd = crate::SUPPORTED_RERUN_EXTENSIONS.contains(&extension(path).as_str());
+ let ext = extension(path);
+ let is_rrd = crate::SUPPORTED_RERUN_EXTENSIONS.contains(&ext.as_str());
(!is_rrd).then(|| {
LogMsg::SetStoreInfo(SetStoreInfo {
@@ -113,6 +114,12 @@ pub(crate) fn prepare_store_info(
is_official_example: false,
started: re_log_types::Time::now(),
store_source,
+ // NOTE: If this is a natively supported file, it will go through one of the
+ // builtin dataloaders, i.e. the local version.
+ // Otherwise, it will go through an arbitrary external loader, at which point we
+ // have no certainty what the version is.
+ store_version: crate::is_supported_file_extension(ext.as_str())
+ .then_some(re_build_info::CrateVersion::LOCAL),
},
})
})
diff --git a/crates/re_data_ui/src/entity_db.rs b/crates/re_data_ui/src/entity_db.rs
index 5fc24e022a675..36258a5dfb98e 100644
--- a/crates/re_data_ui/src/entity_db.rs
+++ b/crates/re_data_ui/src/entity_db.rs
@@ -44,6 +44,7 @@ impl crate::DataUi for EntityDb {
is_official_example: _,
started,
store_source,
+ store_version,
} = store_info;
if let Some(cloned_from) = cloned_from {
@@ -60,6 +61,14 @@ impl crate::DataUi for EntityDb {
ui.label(store_source.to_string());
ui.end_row();
+ if let Some(store_version) = store_version {
+ re_ui.grid_left_hand_label(ui, "Source RRD version");
+ ui.label(store_version.to_string());
+ ui.end_row();
+ } else {
+ re_log::debug_once!("store version is undefined for this recording, this is a bug");
+ }
+
re_ui.grid_left_hand_label(ui, "Kind");
ui.label(store_id.kind.to_string());
ui.end_row();
diff --git a/crates/re_data_ui/src/log_msg.rs b/crates/re_data_ui/src/log_msg.rs
index 9a2c8a3d90d42..5a3ad7ef61488 100644
--- a/crates/re_data_ui/src/log_msg.rs
+++ b/crates/re_data_ui/src/log_msg.rs
@@ -48,6 +48,7 @@ impl DataUi for SetStoreInfo {
started,
store_source,
is_official_example,
+ store_version,
} = info;
let re_ui = &ctx.re_ui;
@@ -77,6 +78,14 @@ impl DataUi for SetStoreInfo {
ui.label(format!("{store_source}"));
ui.end_row();
+ if let Some(store_version) = store_version {
+ re_ui.grid_left_hand_label(ui, "store_version:");
+ ui.label(format!("{store_version}"));
+ ui.end_row();
+ } else {
+ re_log::debug_once!("store version is undefined for this recording, this is a bug");
+ }
+
re_ui.grid_left_hand_label(ui, "is_official_example:");
ui.label(format!("{is_official_example}"));
ui.end_row();
diff --git a/crates/re_entity_db/Cargo.toml b/crates/re_entity_db/Cargo.toml
index d5ed52af6722f..5ed1e98294080 100644
--- a/crates/re_entity_db/Cargo.toml
+++ b/crates/re_entity_db/Cargo.toml
@@ -27,6 +27,7 @@ serde = ["dep:serde", "dep:rmp-serde", "re_log_types/serde"]
[dependencies]
+re_build_info.workspace = true
re_data_store.workspace = true
re_format.workspace = true
re_int_histogram.workspace = true
diff --git a/crates/re_entity_db/examples/memory_usage.rs b/crates/re_entity_db/examples/memory_usage.rs
index 3d1e4626bb80e..2effe5505b2cf 100644
--- a/crates/re_entity_db/examples/memory_usage.rs
+++ b/crates/re_entity_db/examples/memory_usage.rs
@@ -63,8 +63,13 @@ fn log_messages() {
fn encode_log_msg(log_msg: &LogMsg) -> Vec {
let mut bytes = vec![];
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
- re_log_encoding::encoder::encode(encoding_options, std::iter::once(log_msg), &mut bytes)
- .unwrap();
+ re_log_encoding::encoder::encode(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ std::iter::once(log_msg),
+ &mut bytes,
+ )
+ .unwrap();
bytes
}
diff --git a/crates/re_entity_db/src/store_bundle.rs b/crates/re_entity_db/src/store_bundle.rs
index 1cf0c21e6e4c2..fd25eee34650a 100644
--- a/crates/re_entity_db/src/store_bundle.rs
+++ b/crates/re_entity_db/src/store_bundle.rs
@@ -107,6 +107,7 @@ impl StoreBundle {
is_official_example: false,
started: re_log_types::Time::now(),
store_source: re_log_types::StoreSource::Other("viewer".to_owned()),
+ store_version: Some(re_build_info::CrateVersion::LOCAL),
},
});
diff --git a/crates/re_log_encoding/benches/msg_encode_benchmark.rs b/crates/re_log_encoding/benches/msg_encode_benchmark.rs
index 5e609657ed7da..68c3784088986 100644
--- a/crates/re_log_encoding/benches/msg_encode_benchmark.rs
+++ b/crates/re_log_encoding/benches/msg_encode_benchmark.rs
@@ -30,7 +30,13 @@ criterion_main!(benches);
fn encode_log_msgs(messages: &[LogMsg]) -> Vec {
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
let mut bytes = vec![];
- re_log_encoding::encoder::encode(encoding_options, messages.iter(), &mut bytes).unwrap();
+ re_log_encoding::encoder::encode(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ messages.iter(),
+ &mut bytes,
+ )
+ .unwrap();
assert!(bytes.len() > messages.len());
bytes
}
diff --git a/crates/re_log_encoding/src/decoder/mod.rs b/crates/re_log_encoding/src/decoder/mod.rs
index a1ea2fdc16968..8178f8c3e6f65 100644
--- a/crates/re_log_encoding/src/decoder/mod.rs
+++ b/crates/re_log_encoding/src/decoder/mod.rs
@@ -37,23 +37,22 @@ fn warn_on_version_mismatch(
CrateVersion::from_bytes(encoded_version)
};
- const LOCAL_VERSION: CrateVersion = CrateVersion::parse(env!("CARGO_PKG_VERSION"));
-
- if encoded_version.is_compatible_with(LOCAL_VERSION) {
+ if encoded_version.is_compatible_with(CrateVersion::LOCAL) {
Ok(())
} else {
match version_policy {
VersionPolicy::Warn => {
re_log::warn_once!(
"Found log stream with Rerun version {encoded_version}, \
- which is incompatible with the local Rerun version {LOCAL_VERSION}. \
- Loading will try to continue, but might fail in subtle ways."
+ which is incompatible with the local Rerun version {}. \
+ Loading will try to continue, but might fail in subtle ways.",
+ CrateVersion::LOCAL,
);
Ok(())
}
VersionPolicy::Error => Err(DecodeError::IncompatibleRerunVersion {
file: encoded_version,
- local: LOCAL_VERSION,
+ local: CrateVersion::LOCAL,
}),
}
}
@@ -109,7 +108,7 @@ pub fn decode_bytes(
pub fn read_options(
version_policy: VersionPolicy,
bytes: &[u8],
-) -> Result {
+) -> Result<(CrateVersion, EncodingOptions), DecodeError> {
let mut read = std::io::Cursor::new(bytes);
let FileHeader {
@@ -130,10 +129,11 @@ pub fn read_options(
Serializer::MsgPack => {}
}
- Ok(options)
+ Ok((CrateVersion::from_bytes(version), options))
}
pub struct Decoder {
+ version: CrateVersion,
compression: Compression,
read: R,
uncompressed: Vec, // scratch space
@@ -146,15 +146,24 @@ impl Decoder {
let mut data = [0_u8; FileHeader::SIZE];
read.read_exact(&mut data).map_err(DecodeError::Read)?;
- let compression = read_options(version_policy, &data)?.compression;
+
+ let (version, options) = read_options(version_policy, &data)?;
+ let compression = options.compression;
Ok(Self {
+ version,
compression,
read,
uncompressed: vec![],
compressed: vec![],
})
}
+
+ /// Returns the Rerun version that was used to encode the data in the first place.
+ #[inline]
+ pub fn version(&self) -> CrateVersion {
+ self.version
+ }
}
impl Iterator for Decoder {
@@ -211,6 +220,12 @@ impl Iterator for Decoder {
re_tracing::profile_scope!("MsgPack deser");
match rmp_serde::from_slice(&self.uncompressed[..uncompressed_len]) {
+ Ok(re_log_types::LogMsg::SetStoreInfo(mut msg)) => {
+ // Propagate the protocol version from the header into the `StoreInfo` so that all
+ // parts of the app can easily access it.
+ msg.info.store_version = Some(self.version());
+ Some(Ok(re_log_types::LogMsg::SetStoreInfo(msg)))
+ }
Ok(msg) => Some(Ok(msg)),
Err(err) => Some(Err(err.into())),
}
@@ -227,6 +242,8 @@ fn test_encode_decode() {
Time,
};
+ let rrd_version = CrateVersion::LOCAL;
+
let messages = vec![LogMsg::SetStoreInfo(SetStoreInfo {
row_id: RowId::new(),
info: StoreInfo {
@@ -239,6 +256,7 @@ fn test_encode_decode() {
rustc_version: String::new(),
llvm_version: String::new(),
},
+ store_version: Some(rrd_version),
},
})];
@@ -255,7 +273,7 @@ fn test_encode_decode() {
for options in options {
let mut file = vec![];
- crate::encoder::encode(options, messages.iter(), &mut file).unwrap();
+ crate::encoder::encode(rrd_version, options, messages.iter(), &mut file).unwrap();
let decoded_messages = Decoder::new(VersionPolicy::Error, &mut file.as_slice())
.unwrap()
diff --git a/crates/re_log_encoding/src/decoder/stream.rs b/crates/re_log_encoding/src/decoder/stream.rs
index 3d2d27b86ccc2..dfc8b82970061 100644
--- a/crates/re_log_encoding/src/decoder/stream.rs
+++ b/crates/re_log_encoding/src/decoder/stream.rs
@@ -2,6 +2,7 @@ use std::collections::VecDeque;
use std::io::Cursor;
use std::io::Read;
+use re_build_info::CrateVersion;
use re_log_types::LogMsg;
use crate::decoder::read_options;
@@ -17,6 +18,11 @@ use super::{DecodeError, VersionPolicy};
/// Chunks are given to the stream via `StreamDecoder::push_chunk`,
/// and messages are read back via `StreamDecoder::try_read`.
pub struct StreamDecoder {
+ /// The Rerun version used to encode the RRD data.
+ ///
+ /// `None` until a Rerun header has been processed.
+ version: Option,
+
/// How to handle version mismatches
version_policy: VersionPolicy,
@@ -72,6 +78,7 @@ enum State {
impl StreamDecoder {
pub fn new(version_policy: VersionPolicy) -> Self {
Self {
+ version: None,
version_policy,
compression: Compression::Off,
chunks: ChunkBuffer::new(),
@@ -89,7 +96,9 @@ impl StreamDecoder {
State::StreamHeader => {
if let Some(header) = self.chunks.try_read(FileHeader::SIZE) {
// header contains version and compression options
- self.compression = read_options(self.version_policy, header)?.compression;
+ let (version, options) = read_options(self.version_policy, header)?;
+ self.version = Some(version);
+ self.compression = options.compression;
// we might have data left in the current chunk,
// immediately try to read length of the next message
@@ -123,7 +132,15 @@ impl StreamDecoder {
let message = rmp_serde::from_slice(bytes).map_err(DecodeError::MsgPack)?;
self.state = State::MessageHeader;
- return Ok(Some(message));
+
+ return if let re_log_types::LogMsg::SetStoreInfo(mut msg) = message {
+ // Propagate the protocol version from the header into the `StoreInfo` so that all
+ // parts of the app can easily access it.
+ msg.info.store_version = self.version;
+ Ok(Some(re_log_types::LogMsg::SetStoreInfo(msg)))
+ } else {
+ Ok(Some(message))
+ };
}
}
}
@@ -239,6 +256,7 @@ mod tests {
is_official_example: false,
started: Time::from_ns_since_epoch(0),
store_source: StoreSource::Unknown,
+ store_version: Some(CrateVersion::LOCAL),
},
})
}
@@ -247,7 +265,7 @@ mod tests {
let messages: Vec<_> = (0..n).map(|_| fake_log_msg()).collect();
let mut buffer = Vec::new();
- let mut encoder = Encoder::new(options, &mut buffer).unwrap();
+ let mut encoder = Encoder::new(CrateVersion::LOCAL, options, &mut buffer).unwrap();
for message in &messages {
encoder.append(message).unwrap();
}
diff --git a/crates/re_log_encoding/src/encoder.rs b/crates/re_log_encoding/src/encoder.rs
index fa00f120493d2..f7ac2567f6171 100644
--- a/crates/re_log_encoding/src/encoder.rs
+++ b/crates/re_log_encoding/src/encoder.rs
@@ -28,12 +28,13 @@ pub enum EncodeError {
// ----------------------------------------------------------------------------
pub fn encode_to_bytes<'a>(
+ version: CrateVersion,
options: EncodingOptions,
msgs: impl IntoIterator- ,
) -> Result
, EncodeError> {
let mut bytes: Vec = vec![];
{
- let mut encoder = Encoder::new(options, std::io::Cursor::new(&mut bytes))?;
+ let mut encoder = Encoder::new(version, options, std::io::Cursor::new(&mut bytes))?;
for msg in msgs {
encoder.append(msg)?;
}
@@ -52,12 +53,14 @@ pub struct Encoder {
}
impl Encoder {
- pub fn new(options: EncodingOptions, mut write: W) -> Result {
- const RERUN_VERSION: CrateVersion = CrateVersion::parse(env!("CARGO_PKG_VERSION"));
-
+ pub fn new(
+ version: CrateVersion,
+ options: EncodingOptions,
+ mut write: W,
+ ) -> Result {
FileHeader {
magic: *crate::RRD_HEADER,
- version: RERUN_VERSION.to_bytes(),
+ version: version.to_bytes(),
options,
}
.encode(&mut write)?;
@@ -117,12 +120,13 @@ impl Encoder {
}
pub fn encode<'a>(
+ version: CrateVersion,
options: EncodingOptions,
messages: impl Iterator- ,
write: &mut impl std::io::Write,
) -> Result<(), EncodeError> {
re_tracing::profile_function!();
- let mut encoder = Encoder::new(options, write)?;
+ let mut encoder = Encoder::new(version, options, write)?;
for message in messages {
encoder.append(message)?;
}
@@ -130,12 +134,13 @@ pub fn encode<'a>(
}
pub fn encode_as_bytes<'a>(
+ version: CrateVersion,
options: EncodingOptions,
messages: impl Iterator
- ,
) -> Result
, EncodeError> {
re_tracing::profile_function!();
let mut bytes: Vec = vec![];
- let mut encoder = Encoder::new(options, &mut bytes)?;
+ let mut encoder = Encoder::new(version, options, &mut bytes)?;
for message in messages {
encoder.append(message)?;
}
diff --git a/crates/re_log_encoding/src/file_sink.rs b/crates/re_log_encoding/src/file_sink.rs
index 38bc0b8020649..7bebfd9e3f15f 100644
--- a/crates/re_log_encoding/src/file_sink.rs
+++ b/crates/re_log_encoding/src/file_sink.rs
@@ -75,7 +75,11 @@ impl FileSink {
let file = std::fs::File::create(&path)
.map_err(|err| FileSinkError::CreateFile(path.clone(), err))?;
- let encoder = crate::encoder::Encoder::new(encoding_options, file)?;
+ let encoder = crate::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ file,
+ )?;
let join_handle = spawn_and_stream(Some(&path), encoder, rx)?;
Ok(Self {
@@ -93,7 +97,11 @@ impl FileSink {
re_log::debug!("Writing to stdoutβ¦");
- let encoder = crate::encoder::Encoder::new(encoding_options, std::io::stdout())?;
+ let encoder = crate::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ std::io::stdout(),
+ )?;
let join_handle = spawn_and_stream(None, encoder, rx)?;
Ok(Self {
diff --git a/crates/re_log_types/Cargo.toml b/crates/re_log_types/Cargo.toml
index 1813ad2547725..31bc52880f187 100644
--- a/crates/re_log_types/Cargo.toml
+++ b/crates/re_log_types/Cargo.toml
@@ -32,6 +32,7 @@ default = []
serde = [
"dep:serde",
"dep:serde_bytes",
+ "re_build_info/serde",
"re_string_interner/serde",
"re_tuid/serde",
"re_types_core/serde",
@@ -40,6 +41,7 @@ serde = [
[dependencies]
# Rerun
+re_build_info.workspace = true
re_format.workspace = true
re_format_arrow.workspace = true
re_log.workspace = true
diff --git a/crates/re_log_types/src/lib.rs b/crates/re_log_types/src/lib.rs
index 5c0b7ec4dfe0d..8013a1741d178 100644
--- a/crates/re_log_types/src/lib.rs
+++ b/crates/re_log_types/src/lib.rs
@@ -37,6 +37,8 @@ mod data_table_batcher;
use std::sync::Arc;
+use re_build_info::CrateVersion;
+
pub use self::arrow_msg::{ArrowChunkReleaseCallback, ArrowMsg};
pub use self::data_cell::{DataCell, DataCellError, DataCellInner, DataCellResult};
pub use self::data_row::{
@@ -361,6 +363,13 @@ pub struct StoreInfo {
pub started: Time,
pub store_source: StoreSource,
+
+ /// The Rerun version used to encoded the RRD data.
+ ///
+ // NOTE: The version comes directly from the decoded RRD stream's header, duplicating it here
+ // would probably only lead to more issues down the line.
+ #[serde(skip)]
+ pub store_version: Option,
}
impl StoreInfo {
diff --git a/crates/re_sdk/src/binary_stream_sink.rs b/crates/re_sdk/src/binary_stream_sink.rs
index f6ee5127264bd..6a74c869ece54 100644
--- a/crates/re_sdk/src/binary_stream_sink.rs
+++ b/crates/re_sdk/src/binary_stream_sink.rs
@@ -133,8 +133,11 @@ impl BinaryStreamSink {
let (tx, rx) = std::sync::mpsc::channel();
- let encoder =
- re_log_encoding::encoder::Encoder::new(encoding_options, storage.inner.clone())?;
+ let encoder = re_log_encoding::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ storage.inner.clone(),
+ )?;
let join_handle = spawn_and_stream(encoder, rx)?;
diff --git a/crates/re_sdk/src/lib.rs b/crates/re_sdk/src/lib.rs
index 18a9af9baa22f..697e08ecb52c6 100644
--- a/crates/re_sdk/src/lib.rs
+++ b/crates/re_sdk/src/lib.rs
@@ -183,6 +183,7 @@ pub fn new_store_info(
rustc_version: env!("RE_BUILD_RUSTC_VERSION").into(),
llvm_version: env!("RE_BUILD_LLVM_VERSION").into(),
},
+ store_version: Some(re_build_info::CrateVersion::LOCAL),
}
}
diff --git a/crates/re_sdk/src/log_sink.rs b/crates/re_sdk/src/log_sink.rs
index a67b649fe1941..58bab041fcc06 100644
--- a/crates/re_sdk/src/log_sink.rs
+++ b/crates/re_sdk/src/log_sink.rs
@@ -255,8 +255,11 @@ impl MemorySinkStorage {
{
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
- let mut encoder =
- re_log_encoding::encoder::Encoder::new(encoding_options, &mut buffer)?;
+ let mut encoder = re_log_encoding::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ &mut buffer,
+ )?;
for sink in sinks {
// NOTE: It's fine, this is an in-memory sink so by definition there's no I/O involved
// in this flush; it's just a matter of making the table batcher tick early.
@@ -285,8 +288,11 @@ impl MemorySinkStorage {
{
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
- let mut encoder =
- re_log_encoding::encoder::Encoder::new(encoding_options, &mut buffer)?;
+ let mut encoder = re_log_encoding::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ &mut buffer,
+ )?;
let mut inner = self.inner.lock();
inner.has_been_used = true;
diff --git a/crates/re_sdk/src/recording_stream.rs b/crates/re_sdk/src/recording_stream.rs
index 4bb800106378c..6d9f0162d80c8 100644
--- a/crates/re_sdk/src/recording_stream.rs
+++ b/crates/re_sdk/src/recording_stream.rs
@@ -555,6 +555,7 @@ impl RecordingStreamBuilder {
is_official_example,
started: Time::now(),
store_source,
+ store_version: Some(re_build_info::CrateVersion::LOCAL),
};
let batcher_config =
diff --git a/crates/re_sdk_comms/Cargo.toml b/crates/re_sdk_comms/Cargo.toml
index 9ce91ab96dca3..01e9069304073 100644
--- a/crates/re_sdk_comms/Cargo.toml
+++ b/crates/re_sdk_comms/Cargo.toml
@@ -28,6 +28,7 @@ server = ["rand", "re_log_encoding/decoder"]
[dependencies]
+re_build_info.workspace = true
re_log_encoding.workspace = true
re_log_types = { workspace = true, features = ["serde"] }
re_log.workspace = true
diff --git a/crates/re_sdk_comms/src/buffered_client.rs b/crates/re_sdk_comms/src/buffered_client.rs
index fcc24e7badbb6..6a48e553bd4b8 100644
--- a/crates/re_sdk_comms/src/buffered_client.rs
+++ b/crates/re_sdk_comms/src/buffered_client.rs
@@ -177,7 +177,10 @@ fn msg_encode(
let packet_msg = match &msg_msg {
MsgMsg::LogMsg(log_msg) => {
- match re_log_encoding::encoder::encode_to_bytes(encoding_options, std::iter::once(log_msg)) {
+ match re_log_encoding::encoder::encode_to_bytes(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options, std::iter::once(log_msg),
+ ) {
Ok(packet) => {
re_log::trace!("Encoded message of size {}", packet.len());
Some(PacketMsg::Packet(packet))
diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs
index 222c958afb714..5ebad59d3403c 100644
--- a/crates/re_viewer/src/app.rs
+++ b/crates/re_viewer/src/app.rs
@@ -1,3 +1,4 @@
+use re_build_info::CrateVersion;
use re_data_source::{DataSource, FileContents};
use re_entity_db::entity_db::EntityDb;
use re_log_types::{ApplicationId, FileSource, LogMsg, StoreKind};
@@ -1326,10 +1327,14 @@ fn blueprint_loader() -> BlueprintPersistence {
let blueprint_path = crate::saving::default_blueprint_path(app_id)?;
let messages = blueprint.to_messages(None)?;
+ let rrd_version = blueprint
+ .store_info()
+ .and_then(|info| info.store_version)
+ .unwrap_or(re_build_info::CrateVersion::LOCAL);
// TODO(jleibs): Should we push this into a background thread? Blueprints should generally
// be small & fast to save, but maybe not once we start adding big pieces of user data?
- crate::saving::encode_to_file(&blueprint_path, messages.iter())?;
+ crate::saving::encode_to_file(rrd_version, &blueprint_path, messages.iter())?;
re_log::debug!("Saved blueprint for {app_id} to {blueprint_path:?}");
@@ -1730,6 +1735,11 @@ fn save_recording(
anyhow::bail!("No recording data to save");
};
+ let rrd_version = entity_db
+ .store_info()
+ .and_then(|info| info.store_version)
+ .unwrap_or(re_build_info::CrateVersion::LOCAL);
+
let file_name = "data.rrd";
let title = if loop_selection.is_some() {
@@ -1738,9 +1748,13 @@ fn save_recording(
"Save recording"
};
- save_entity_db(app, file_name.to_owned(), title.to_owned(), || {
- entity_db.to_messages(loop_selection)
- })
+ save_entity_db(
+ app,
+ rrd_version,
+ file_name.to_owned(),
+ title.to_owned(),
+ || entity_db.to_messages(loop_selection),
+ )
}
fn save_blueprint(app: &mut App, store_context: Option<&StoreContext<'_>>) -> anyhow::Result<()> {
@@ -1750,6 +1764,12 @@ fn save_blueprint(app: &mut App, store_context: Option<&StoreContext<'_>>) -> an
re_tracing::profile_function!();
+ let rrd_version = store_context
+ .blueprint
+ .store_info()
+ .and_then(|info| info.store_version)
+ .unwrap_or(re_build_info::CrateVersion::LOCAL);
+
// We change the recording id to a new random one,
// otherwise when saving and loading a blueprint file, we can end up
// in a situation where the store_id we're loading is the same as the currently active one,
@@ -1767,12 +1787,15 @@ fn save_blueprint(app: &mut App, store_context: Option<&StoreContext<'_>>) -> an
);
let title = "Save blueprint";
- save_entity_db(app, file_name, title.to_owned(), || Ok(messages))
+ save_entity_db(app, rrd_version, file_name, title.to_owned(), || {
+ Ok(messages)
+ })
}
#[allow(clippy::needless_pass_by_ref_mut)] // `app` is only used on native
fn save_entity_db(
#[allow(unused_variables)] app: &mut App, // only used on native
+ rrd_version: CrateVersion,
file_name: String,
title: String,
to_log_messages: impl FnOnce() -> re_log_types::DataTableResult>,
@@ -1785,7 +1808,7 @@ fn save_entity_db(
let messages = to_log_messages()?;
wasm_bindgen_futures::spawn_local(async move {
- if let Err(err) = async_save_dialog(&file_name, &title, &messages).await {
+ if let Err(err) = async_save_dialog(rrd_version, &file_name, &title, &messages).await {
re_log::error!("File saving failed: {err}");
}
});
@@ -1804,7 +1827,7 @@ fn save_entity_db(
if let Some(path) = path {
let messages = to_log_messages()?;
app.background_tasks.spawn_file_saver(move || {
- crate::saving::encode_to_file(&path, messages.iter())?;
+ crate::saving::encode_to_file(rrd_version, &path, messages.iter())?;
Ok(path)
})?;
}
@@ -1815,6 +1838,7 @@ fn save_entity_db(
#[cfg(target_arch = "wasm32")]
async fn async_save_dialog(
+ rrd_version: CrateVersion,
file_name: &str,
title: &str,
messages: &[LogMsg],
@@ -1832,6 +1856,7 @@ async fn async_save_dialog(
};
let bytes = re_log_encoding::encoder::encode_as_bytes(
+ rrd_version,
re_log_encoding::EncodingOptions::COMPRESSED,
messages.iter(),
)?;
diff --git a/crates/re_viewer/src/saving.rs b/crates/re_viewer/src/saving.rs
index 1cd59e2dfeb41..4d2e5f7e08be7 100644
--- a/crates/re_viewer/src/saving.rs
+++ b/crates/re_viewer/src/saving.rs
@@ -61,6 +61,7 @@ pub fn default_blueprint_path(app_id: &ApplicationId) -> anyhow::Result(
+ version: re_build_info::CrateVersion,
path: &std::path::Path,
messages: impl Iterator- ,
) -> anyhow::Result<()> {
@@ -71,6 +72,6 @@ pub fn encode_to_file<'a>(
.with_context(|| format!("Failed to create file at {path:?}"))?;
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
- re_log_encoding::encoder::encode(encoding_options, messages, &mut file)
+ re_log_encoding::encoder::encode(version, encoding_options, messages, &mut file)
.context("Message encode")
}
diff --git a/crates/re_viewer/src/viewer_analytics/event.rs b/crates/re_viewer/src/viewer_analytics/event.rs
index 128903c9aa5d9..cc5104b844c62 100644
--- a/crates/re_viewer/src/viewer_analytics/event.rs
+++ b/crates/re_viewer/src/viewer_analytics/event.rs
@@ -44,20 +44,31 @@ pub fn open_recording(
entity_db: &re_entity_db::EntityDb,
) -> OpenRecording {
let store_info = entity_db.store_info().map(|store_info| {
- let application_id = if store_info.is_official_example {
- Id::Official(store_info.application_id.0.clone())
+ let re_log_types::StoreInfo {
+ application_id,
+ store_id,
+ is_official_example,
+ store_source,
+ store_version,
+
+ cloned_from: _,
+ started: _,
+ } = store_info;
+
+ let application_id_preprocessed = if *is_official_example {
+ Id::Official(application_id.0.clone())
} else {
- Id::Hashed(Property::from(store_info.application_id.0.clone()).hashed())
+ Id::Hashed(Property::from(application_id.0.clone()).hashed())
};
- let recording_id = if store_info.is_official_example {
- Id::Official(store_info.store_id.to_string())
+ let recording_id_preprocessed = if *is_official_example {
+ Id::Official(store_id.to_string())
} else {
- Id::Hashed(Property::from(store_info.store_id.to_string()).hashed())
+ Id::Hashed(Property::from(store_id.to_string()).hashed())
};
use re_log_types::StoreSource as S;
- let store_source = match &store_info.store_source {
+ let store_source_preprocessed = match &store_source {
S::Unknown => "unknown".to_owned(),
S::CSdk => "c_sdk".to_owned(),
S::PythonSdk(_version) => "python_sdk".to_owned(),
@@ -72,43 +83,47 @@ pub fn open_recording(
S::Other(other) => other.clone(),
};
+ let store_version_preprocessed = if let Some(store_version) = store_version {
+ store_version.to_string()
+ } else {
+ re_log::debug_once!("store version is undefined for this recording, this is a bug");
+ "undefined".to_owned()
+ };
+
// `rust+llvm` and `python` versions are mutually exclusive
- let mut rust_version = None;
- let mut llvm_version = None;
- let mut python_version = None;
- match &store_info.store_source {
+ let mut rust_version_preprocessed = None;
+ let mut llvm_version_preprocessed = None;
+ let mut python_version_preprocessed = None;
+ match &store_source {
S::File { .. } => {
- rust_version = Some(env!("RE_BUILD_RUSTC_VERSION").to_owned());
- llvm_version = Some(env!("RE_BUILD_LLVM_VERSION").to_owned());
+ rust_version_preprocessed = Some(env!("RE_BUILD_RUSTC_VERSION").to_owned());
+ llvm_version_preprocessed = Some(env!("RE_BUILD_LLVM_VERSION").to_owned());
}
S::RustSdk {
rustc_version: rustc,
llvm_version: llvm,
} => {
- rust_version = Some(rustc.to_string());
- llvm_version = Some(llvm.to_string());
+ rust_version_preprocessed = Some(rustc.to_string());
+ llvm_version_preprocessed = Some(llvm.to_string());
}
S::PythonSdk(version) => {
- python_version = Some(version.to_string());
+ python_version_preprocessed = Some(version.to_string());
}
// TODO(andreas): Send C SDK version and set it.
S::CSdk | S::Unknown | S::Viewer | S::Other(_) => {}
}
- let is_official_example = store_info.is_official_example;
- let app_id_starts_with_rerun_example = store_info
- .application_id
- .as_str()
- .starts_with("rerun_example");
+ let app_id_starts_with_rerun_example = application_id.as_str().starts_with("rerun_example");
StoreInfo {
- application_id,
- recording_id,
- store_source,
- rust_version,
- llvm_version,
- python_version,
- is_official_example,
+ application_id: application_id_preprocessed,
+ recording_id: recording_id_preprocessed,
+ store_source: store_source_preprocessed,
+ store_version: store_version_preprocessed,
+ rust_version: rust_version_preprocessed,
+ llvm_version: llvm_version_preprocessed,
+ python_version: python_version_preprocessed,
+ is_official_example: app_id_starts_with_rerun_example,
app_id_starts_with_rerun_example,
}
});
diff --git a/crates/rerun/src/run.rs b/crates/rerun/src/run.rs
index 1a67a912895c7..19062d0c7dbd0 100644
--- a/crates/rerun/src/run.rs
+++ b/crates/rerun/src/run.rs
@@ -527,6 +527,7 @@ impl PrintCommand {
let rrd_file = std::fs::File::open(rrd_path)?;
let version_policy = re_log_encoding::decoder::VersionPolicy::Warn;
let decoder = re_log_encoding::decoder::Decoder::new(version_policy, rrd_file)?;
+ println!("Decoded RRD stream v{}\n---", decoder.version());
for msg in decoder {
let msg = msg.context("decode rrd message")?;
match msg {
@@ -869,7 +870,11 @@ fn stream_to_rrd_on_disk(
let encoding_options = re_log_encoding::EncodingOptions::COMPRESSED;
let file =
std::fs::File::create(path).map_err(|err| FileSinkError::CreateFile(path.clone(), err))?;
- let mut encoder = re_log_encoding::encoder::Encoder::new(encoding_options, file)?;
+ let mut encoder = re_log_encoding::encoder::Encoder::new(
+ re_build_info::CrateVersion::LOCAL,
+ encoding_options,
+ file,
+ )?;
loop {
match rx.recv() {
From 6dd77cc3a9b5b603be4eb1b719be81556281be6d Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Tue, 14 May 2024 21:28:50 +0200
Subject: [PATCH 04/40] Readme fixes (#6308)
### What
* Fix accidental h1 heading on CONTRIBUTING.md
* Various small updates to README.md
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6308?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6308?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6308)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
ARCHITECTURE.md | 16 +-
BUILD.md | 22 +-
CHANGELOG.md | 145 ++++++-------
CONTRIBUTING.md | 9 +-
README.md | 20 +-
RELEASES.md | 4 +-
crates/re_dev_tools/README.md | 2 +-
crates/re_renderer/README.md | 2 +-
crates/re_tuid/README.md | 2 +-
.../rerun/datatypes/class_description.fbs | 2 +-
.../rerun/datatypes/quaternion.fbs | 2 +-
.../src/datatypes/class_description.rs | 2 +-
crates/re_types/src/datatypes/quaternion.rs | 2 +-
crates/re_viewer/README.md | 2 +-
.../data/quick_start_guides/cpp_connect.md | 4 +-
.../data/quick_start_guides/cpp_spawn.md | 2 +-
.../data/quick_start_guides/python_spawn.md | 2 +-
.../data/quick_start_guides/rust_spawn.md | 4 +-
crates/re_viewer_context/README.md | 2 +-
design/batching.md | 34 +--
design/blueprint_store.md | 14 +-
design/component_datatypes.md | 2 +-
design/space_views.md | 4 +-
docs/README.md | 2 +-
docs/content/concepts/annotation-context.md | 2 +-
docs/content/concepts/apps-and-recordings.md | 4 +-
docs/content/concepts/batches.md | 2 +-
docs/content/concepts/blueprint.md | 24 +--
docs/content/concepts/entity-component.md | 10 +-
docs/content/concepts/entity-path.md | 2 +-
.../getting-started/configure-the-viewer.md | 6 +-
.../configure-the-viewer/interactively.md | 8 +-
.../configure-the-viewer/save-and-load.md | 4 +-
.../through-code-tutorial.md | 6 +-
docs/content/getting-started/data-in/cpp.md | 8 +-
.../content/getting-started/data-in/python.md | 16 +-
docs/content/getting-started/data-in/rust.md | 18 +-
.../getting-started/installing-viewer.md | 4 +-
.../getting-started/navigating-the-viewer.md | 12 +-
docs/content/getting-started/quick-start.md | 2 +-
.../getting-started/quick-start/cpp.md | 4 +-
.../getting-started/quick-start/python.md | 6 +-
.../getting-started/quick-start/rust.md | 4 +-
docs/content/getting-started/what-is-rerun.md | 2 +-
docs/content/howto.md | 2 +-
.../howto/configure-viewer-through-code.md | 20 +-
docs/content/howto/embed-rerun-viewer.md | 8 +-
docs/content/howto/extend/extend-ui.md | 2 +-
docs/content/howto/limit-ram.md | 2 +-
docs/content/howto/notebook.md | 10 +-
docs/content/howto/ros2-nav-turtlebot.md | 18 +-
docs/content/howto/short-lived-entities.md | 2 +-
docs/content/reference/about.md | 4 +-
.../reference/data-loaders/overview.md | 2 +-
docs/content/reference/entity-queries.md | 2 +-
.../reference/migration/migration-0-13.md | 2 +-
docs/content/reference/roadmap.md | 4 +-
docs/content/reference/sdk-operating-modes.md | 10 +-
.../types/datatypes/class_description.md | 2 +-
.../reference/types/datatypes/quaternion.md | 2 +-
docs/content/reference/viewer/overview.md | 6 +-
docs/content/reference/viewer/viewport.md | 2 +-
examples/c/spawn_viewer/README.md | 2 +-
examples/cpp/spawn_viewer/README.md | 2 +-
examples/python/README.md | 8 +-
examples/python/_empty_rerun_sdk/README.md | 2 +-
examples/python/all_examples/README.md | 8 +-
examples/python/arkit_scenes/README.md | 9 -
examples/python/clock/README.md | 7 +-
examples/python/controlnet/README.md | 1 -
.../depth_guided_stable_diffusion/README.md | 1 -
.../python/detect_and_track_objects/README.md | 3 +-
examples/python/dicom_mri/README.md | 3 +-
examples/python/face_tracking/README.md | 1 -
examples/python/gesture_detection/README.md | 7 +-
examples/python/human_pose_tracking/README.md | 1 -
examples/python/lidar/README.md | 1 -
.../live_camera_edge_detection/README.md | 1 -
examples/python/live_depth_sensor/README.md | 1 -
examples/python/live_scrolling_plot/README.md | 2 +-
examples/python/llm_embedding_ner/README.md | 1 -
examples/python/mcc/README.md | 2 +-
examples/python/minimal/README.md | 7 +-
.../python/multiprocess_logging/README.md | 13 +-
examples/python/multithreading/README.md | 7 +-
examples/python/notebook/README.md | 6 +-
examples/python/nuscenes_dataset/README.md | 1 -
examples/python/objectron/README.md | 3 +-
.../open_photogrammetry_format/README.md | 3 +-
examples/python/plots/README.md | 15 +-
examples/python/raw_mesh/README.md | 1 -
examples/python/rgbd/README.md | 15 +-
examples/python/ros_node/README.md | 15 +-
examples/python/rrt_star/README.md | 35 ++--
.../python/segment_anything_model/README.md | 17 +-
.../python/signed_distance_fields/README.md | 17 +-
.../python/structure_from_motion/README.md | 21 +-
examples/python/template/README.md | 2 +-
examples/python/tfrecord_loader/README.md | 4 +-
examples/python/urdf_loader/README.md | 4 +-
examples/rust/README.md | 4 +-
examples/rust/extend_viewer_ui/README.md | 2 +-
examples/rust/revy/README.md | 2 +-
examples/rust/spawn_viewer/README.md | 2 +-
examples/rust/template/README.md | 2 +-
hooks/README.md | 2 +-
rerun_cpp/arrow_cpp_install.md | 12 +-
rerun_cpp/cmake_setup_in_detail.md | 4 +-
.../src/rerun/datatypes/class_description.hpp | 2 +-
rerun_cpp/src/rerun/datatypes/quaternion.hpp | 2 +-
rerun_js/web-viewer-react/README.md | 6 +-
rerun_js/web-viewer/README.md | 6 +-
rerun_py/ARCHITECTURE.md | 8 +-
rerun_py/README.md | 8 +-
rerun_py/docs/writing_docs.md | 2 +-
.../rerun/datatypes/class_description.py | 2 +-
.../rerun_sdk/rerun/datatypes/quaternion.py | 2 +-
scripts/lint.py | 197 +++++++++++++-----
tests/README.md | 2 +-
119 files changed, 552 insertions(+), 510 deletions(-)
diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md
index 03d94919a561f..37df6cfd38b6b 100644
--- a/ARCHITECTURE.md
+++ b/ARCHITECTURE.md
@@ -18,14 +18,14 @@ The logging SDK:s encodes the data using Apache Arrow (see more below).
The logging data can be written to disk as `.rrd` files, or transmitted over TCP to either a Rerun Viewer or a Rerun Server.
-### Rerun viewer
+### Rerun Viewer
The Rerun Viewer is where log data is visualized. It is usually run as a native app, but can also be compiled to WebAssembly (Wasm) and run in a browser.
-#### Native viewer
-The easiest way to launch the viewer is directly from the logging API with `rr.init("rerun_example_app", spawn=True)`. However, the standalone viewer can also be run from the command line, for example to view an `.rrd` file: `rerun mydata.rrd`.
+#### Native Viewer
+The easiest way to launch the Viewer is directly from the logging API with `rr.init("rerun_example_app", spawn=True)`. However, the standalone Viewer can also be run from the command line, for example to view an `.rrd` file: `rerun mydata.rrd`.
#### Web viewer
-You can try running the viewer in a browser using `rr.serve()` in python, or using `rerun --web-viewer mydata.rrd`.
+You can try running the Viewer in a browser using `rr.serve()` in python, or using `rerun --web-viewer mydata.rrd`.
The web viewer consists of just a few small files - a thin `.html`, a `.wasm` blob, and an auto-generated `.js` bridge for the wasm. These files are served using the [`re_web_viewer_server`](https://github.com/rerun-io/rerun/tree/latest/crates/re_web_viewer_server) crate.
@@ -113,7 +113,7 @@ Update instructions:
| Crate | Description |
|-----------|--------------------------------------|
| rerun-cli | Rerun native CLI binary crate |
-| rerun | Rerun Rust SDK and viewer shim crate |
+| Rerun | Rerun Rust SDK and Viewer shim crate |
| rerun_c | Rerun C SDK |
| rerun_py | Rerun Python SDK |
| re_sdk | Rerun logging SDK |
@@ -126,11 +126,11 @@ Update instructions:
| Crate | Description |
|-----------------------------|----------------------------------------------------------------------------------------|
-| re_viewer | The Rerun viewer |
+| re_viewer | The Rerun Viewer |
| re_viewport | The central viewport panel of the Rerun viewer. |
| re_time_panel | The time panel of the Rerun Viewer, allowing to control the displayed timeline & time. |
| re_data_ui | Provides ui elements for Rerun component data for the Rerun Viewer. |
-| re_viewer_context | Rerun viewer state that is shared with the viewer's code components. |
+| re_viewer_context | Rerun Viewer state that is shared with the viewer's code components. |
| re_ui | Rerun GUI theme and helpers, built around egui |
| re_renderer | A wgpu-based renderer for all your visualization needs. |
| re_space_view | Types & utilities for defining Space View classes and communicating with the Viewport. |
@@ -170,7 +170,7 @@ Update instructions:
|----------------------|--------------------------------------------------------------------------------------------------------|
| re_sdk_comms | TCP communication between Rerun SDK and Rerun Server |
| re_web_viewer_server | Serves the Rerun web viewer (Wasm and HTML) over HTTP |
-| re_ws_comms | WebSocket communication library (encoding, decoding, client, server) between a Rerun server and viewer |
+| re_ws_comms | WebSocket communication library (encoding, decoding, client, server) between a Rerun server and Viewer |
| re_data_loader | Handles loading of Rerun data from file using data loader plugins |
| re_data_source | Handles loading of Rerun data from different sources |
diff --git a/BUILD.md b/BUILD.md
index ced1a85830982..ed3e5141807a6 100644
--- a/BUILD.md
+++ b/BUILD.md
@@ -31,7 +31,7 @@ If you are using an Apple-silicon Mac (M1, M2), make sure `rustc -vV` outputs `h
rustup set default-host aarch64-apple-darwin && rustup install 1.76.0
```
-## Building and running the viewer
+## Building and running the Viewer
Use this command for building and running the viewer:
@@ -57,12 +57,12 @@ Rerun is available as a package on PyPi and can be installed with `pip install r
Additionally, nightly dev wheels from head of `main` are available at .
-If you want to build from source, you can do so easily in the pixi environment:
-* Run `pixi run py-build --release` to build SDK & viewer for python (or `pixi run py-build` for a debug build)
-* Then you can run examples from the repository, either by making the pixi shell active with `pixi shell` and then running python or by using `pixi run`, e.g. `pixi run python examples/python/minimal/minimal.py`
+If you want to build from source, you can do so easily in the Pixi environment:
+* Run `pixi run py-build --release` to build SDK & Viewer for Python (or `pixi run py-build` for a debug build)
+* Then you can run examples from the repository, either by making the Pixi shell active with `pixi shell` and then running Python or by using `pixi run`, e.g. `pixi run Python examples/python/minimal/minimal.py`
-### Tests & Tooling
+### Tests & tooling
```sh
# Run the unit tests
@@ -75,12 +75,12 @@ pixi run py-lint
pixi run py-fmt
```
-### Building an installable Python Wheel
+### Building an installable Python wheel
The `py-wheel` command builds a whl file:
```sh
pixi run py-wheel --release
```
-Which you can then install in your own python environment:
+Which you can then install in your own Python environment:
```sh
pip install ./target/wheels/*.whl
```
@@ -100,16 +100,16 @@ pixi run cpp-build-all
## Building the docs
-High-level documentation for rerun can be found at [http://rerun.io/docs](http://rerun.io/docs). It is built from the separate repository [rerun-docs](https://github.com/rerun-io/rerun-docs).
+High-level documentation for Rerun can be found at [http://rerun.io/docs](http://rerun.io/docs). It is built from the separate repository [rerun-docs](https://github.com/rerun-io/rerun-docs).
- π [C++ API docs](https://ref.rerun.io/docs/cpp) are built with `doxygen` and hosted on GitHub. Use `pixi run cpp-docs` to build them locally. For details on the C++ doc-system, see [Writing Docs](rerun_cpp/docs/writing_docs.md).
-- π [Python API docs](https://ref.rerun.io/docs/python) are built via `mkdocs` and hosted on GitHub. For details on the python doc-system, see [Writing Docs](rerun_py/docs/writing_docs.md).
+- π [Python API docs](https://ref.rerun.io/docs/python) are built via `mkdocs` and hosted on GitHub. For details on the Python doc-system, see [Writing Docs](rerun_py/docs/writing_docs.md).
- π¦ [Rust API docs](https://docs.rs/rerun/) are hosted on . You can build them locally with: `cargo doc --all-features --no-deps --open`.
## Building for the web
-If you want to build a standalone rerun executable that contains the web-viewer and a websocket server,
-you need to install the `wasm32-unknown-unknown` rust target and ensure the `web_viewer` feature flag is set when building rerun.
+If you want to build a standalone Rerun executable that contains the web-viewer and a websocket server,
+you need to install the `wasm32-unknown-unknown` Rust target and ensure the `web_viewer` feature flag is set when building rerun.
This is automatically done by this shortcut which builds & runs the web viewer:
```
pixi run rerun-web
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d4f22e223c612..35e7e1073acfe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -30,7 +30,7 @@ blueprint = rrb.Blueprint(
)
```
-The blueprint can then be sent to the viewer with
+The blueprint can then be sent to the Viewer with
```py
rr.send_blueprint(blueprint)
```
@@ -76,7 +76,7 @@ Blueprints are currently only supported in the Python API, with C++ and Rust sup
- Customizable data loaders [#5327](https://github.com/rerun-io/rerun/pull/5327) [#5328](https://github.com/rerun-io/rerun/pull/5328) [#5330](https://github.com/rerun-io/rerun/pull/5330) [#5337](https://github.com/rerun-io/rerun/pull/5337) [#5351](https://github.com/rerun-io/rerun/pull/5351) [#5355](https://github.com/rerun-io/rerun/pull/5355) [#5379](https://github.com/rerun-io/rerun/pull/5379) [#5361](https://github.com/rerun-io/rerun/pull/5361) [#5388](https://github.com/rerun-io/rerun/pull/5388)
#### π C++ API
-- Fix arrow libraries from download & build not being found in some cases [#5366](https://github.com/rerun-io/rerun/pull/5366)
+- Fix Arrow libraries from download & build not being found in some cases [#5366](https://github.com/rerun-io/rerun/pull/5366)
- CMake: Add `RERUN_INSTALL_RERUN_C` option to disable installation of `rerun_c` library [#5374](https://github.com/rerun-io/rerun/pull/5374) (thanks [@traversaro](https://github.com/traversaro)!)
- CMake: Fix `install` not finding external `arrow` for dynamic linking [#5375](https://github.com/rerun-io/rerun/pull/5375) (thanks [@traversaro](https://github.com/traversaro)!)
- Make `pinhole.hpp` robust against `min/max` preprocessor macros (typically from `windows.h`) [#5432](https://github.com/rerun-io/rerun/pull/5432)
@@ -85,7 +85,7 @@ Blueprints are currently only supported in the Python API, with C++ and Rust sup
- Fix `RERUN_C_BUILD_ARTIFACT` path value if `CARGO_BUILD_TARGET` env variable is set [#5547](https://github.com/rerun-io/rerun/pull/5547) (thanks [@traversaro](https://github.com/traversaro)!)
#### π Python API
-- All python components that wrap a `bool` now implement `__bool__` [#5400](https://github.com/rerun-io/rerun/pull/5400)
+- All Python components that wrap a `bool` now implement `__bool__` [#5400](https://github.com/rerun-io/rerun/pull/5400)
- Add the remaining space views and name them consistently [#5498](https://github.com/rerun-io/rerun/pull/5498)
- Add option to include blueprint in an `.rrd` when calling `.save(β¦)` [#5572](https://github.com/rerun-io/rerun/pull/5572)
- Allow naming space view containers [#5626](https://github.com/rerun-io/rerun/pull/5626)
@@ -102,7 +102,7 @@ Blueprints are currently only supported in the Python API, with C++ and Rust sup
- Be consistent in how items are removed from selection [#5643](https://github.com/rerun-io/rerun/pull/5643)
- Fix layout issue on welcome screen for narrow window, triggering debug assertion [#5650](https://github.com/rerun-io/rerun/pull/5650)
- Fix broken 2D space view heuristics in Python Notebooks [#5674](https://github.com/rerun-io/rerun/pull/5674)
-- Avoid a hang on linux by always create the renderer, even when we have no store_view [#5724](https://github.com/rerun-io/rerun/pull/5724)
+- Avoid a hang on Linux by always create the renderer, even when we have no store_view [#5724](https://github.com/rerun-io/rerun/pull/5724)
- Fix crash/freeze when zooming out too far in a plot [#5737](https://github.com/rerun-io/rerun/pull/5737)
- Fix `draw_order` not working [#5794](https://github.com/rerun-io/rerun/pull/5794)
@@ -217,7 +217,6 @@ This release is identical to 0.14.0 and merely fixes an issue in the build artif
## [0.14.0](https://github.com/rerun-io/rerun/compare/0.13.0...0.14.0) - "Unlimited" point clouds & lines, quality of life improvements, bugfixes - 2024-02-28
-### β¨ Overview & highlights
### β¨ Overview & highlights
Originally, we planned to do only a bugfix release, but we got an unexpected amount of goodies amassed already.
@@ -236,21 +235,21 @@ We're still ramping up for programmable blueprints (soon!), but meanwhile enjoy
#### πͺ΅ Log API
- Add helpers for perspective cameras [#5238](https://github.com/rerun-io/rerun/pull/5238)
-- Fix `spawn` starting the viewer even if logging is disabled [#5284](https://github.com/rerun-io/rerun/pull/5284)
+- Fix `spawn` starting the Viewer even if logging is disabled [#5284](https://github.com/rerun-io/rerun/pull/5284)
#### π Python API
-- Add missing python docs for `disable_timeline` & `reset_time` [#5269](https://github.com/rerun-io/rerun/pull/5269)
-- Fix missing error message when passing `from_parent` + rerun transform type to `rerun.Transform3D` [#5270](https://github.com/rerun-io/rerun/pull/5270)
+- Add missing Python docs for `disable_timeline` & `reset_time` [#5269](https://github.com/rerun-io/rerun/pull/5269)
+- Fix missing error message when passing `from_parent` + Rerun transform type to `rerun.Transform3D` [#5270](https://github.com/rerun-io/rerun/pull/5270)
#### π¦ Rust API
- Fix using `rerun` crate as a dependency on CI [#5170](https://github.com/rerun-io/rerun/pull/5170)
#### πͺ³ Bug fixes
- Enforce the rule: heuristics should never add a new view that would be completely covered by an existing view [#5164](https://github.com/rerun-io/rerun/pull/5164)
-- Remove log spam when quickly resizing the viewer [#5189](https://github.com/rerun-io/rerun/pull/5189)
-- Fix incorrect minimum supported rust version mentioned in docs and examples [#5195](https://github.com/rerun-io/rerun/pull/5195)
+- Remove log spam when quickly resizing the Viewer [#5189](https://github.com/rerun-io/rerun/pull/5189)
+- Fix incorrect minimum supported Rust version mentioned in docs and examples [#5195](https://github.com/rerun-io/rerun/pull/5195)
- Less restrictive visualizability constraints of 2D entities, improved space view generation heuristics [#5188](https://github.com/rerun-io/rerun/pull/5188)
-- Fix ugly UI for some arrow data [#5235](https://github.com/rerun-io/rerun/pull/5235)
+- Fix ugly UI for some Arrow data [#5235](https://github.com/rerun-io/rerun/pull/5235)
- Fix missing redraw upon resetting blueprint [#5262](https://github.com/rerun-io/rerun/pull/5262)
- Fix non-deterministic redundancy check for space view spawning heuristic [#5266](https://github.com/rerun-io/rerun/pull/5266)
- Fix resetting vertical axis when using non-uniform zoom on Time Series [#5287](https://github.com/rerun-io/rerun/pull/5287)
@@ -299,7 +298,6 @@ We're still ramping up for programmable blueprints (soon!), but meanwhile enjoy
## [0.13.0](https://github.com/rerun-io/rerun/compare/0.12.1...0.13.0) - Fast time series, improved layout editing & UI overrides - 2024-02-12
-### β¨ Overview & highlights
### β¨ Overview & highlights
This release focuses on scalar time series -- both from a performance and UI perspectives.
@@ -328,7 +326,7 @@ Check out our [associated blog post](https://www.rerun.io/blog/fast-plots) for m
- The Space View's origin can now be edited in the Selection Panel.
- The container hierarchy can now be cleaned up with the new `Simplify Hierarchy` button in the Selection Panel for containers.
-- π¦ The rust SDK now exposes an optional integration with the `mint` crate
+- π¦ The Rust SDK now exposes an optional integration with the `mint` crate
- πΈοΈ The web UI SDK now supports loading multiple `.rrd` URLs
- πΊ The web viewer now renders using WebGPU by default (when available), leading to lower memory usage on Chrome.
You can override this behavior using `?renderer=webgl`/`?renderer=webgpu` url parameter, or restart with WebGL/WebGPU respectively from the options menu.
@@ -346,7 +344,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
#### π C++ API
- Document that in C++ PinholeProjection::from_mat3x3 is column major [#4843](https://github.com/rerun-io/rerun/pull/4843)
- Include LICENSE files into C++ SDK Assets [#4870](https://github.com/rerun-io/rerun/pull/4870) (thanks [@rgolovanov](https://github.com/rgolovanov)!)
-- Fix C++ arrow build flag forwarding [#4921](https://github.com/rerun-io/rerun/pull/4921) (thanks [@rgolovanov](https://github.com/rgolovanov)!)
+- Fix C++ Arrow build flag forwarding [#4921](https://github.com/rerun-io/rerun/pull/4921) (thanks [@rgolovanov](https://github.com/rgolovanov)!)
#### π¦ Rust API
- Add integration with the `mint` crate [#4753](https://github.com/rerun-io/rerun/pull/4753)
@@ -410,7 +408,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
#### π Docs
- Improve documentation of the `Clear` archetype [#4760](https://github.com/rerun-io/rerun/pull/4760)
- `DisconnectedSpace` now only applies to spatial space views [#4935](https://github.com/rerun-io/rerun/pull/4935)
-- Fill gaps in image encoding documentation, fix how python documents union variants [#4988](https://github.com/rerun-io/rerun/pull/4988)
+- Fill gaps in image encoding documentation, fix how Python documents union variants [#4988](https://github.com/rerun-io/rerun/pull/4988)
#### πΌ UI improvements
- Improve timeseries Space Views:
@@ -544,7 +542,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
- Fix heuristic object properties being broken in some cases / fix DepthMeter being ignored sometimes [#4679](https://github.com/rerun-io/rerun/pull/4679)
#### π Viewer improvements
-- Make viewer contexts's render context reference non-mutable [#4430](https://github.com/rerun-io/rerun/pull/4430)
+- Make Viewer contexts's render context reference non-mutable [#4430](https://github.com/rerun-io/rerun/pull/4430)
- The Rerun Viewer can now consume from stdin:
- Standard input/output support 1: stream RRD data from stdin [#4511](https://github.com/rerun-io/rerun/pull/4511)
- Standard input/output support 2: Rust SDK stdout impl/examples/docs [#4512](https://github.com/rerun-io/rerun/pull/4512)
@@ -560,7 +558,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
- `DataLoader`s 6: first-class support for `Incompatible` [#4565](https://github.com/rerun-io/rerun/pull/4565)
- `DataLoader`s 7: support for custom `DataLoader`s [#4566](https://github.com/rerun-io/rerun/pull/4566)
- 3D->2D & 2D->3D selection visualizations stick now around on selection [#4587](https://github.com/rerun-io/rerun/pull/4587)
-- The viewer now supports segmentation images logged natively as floats [#4585](https://github.com/rerun-io/rerun/pull/4585)
+- The Viewer now supports segmentation images logged natively as floats [#4585](https://github.com/rerun-io/rerun/pull/4585)
- Fix incorrect bounding box calculation for camera view parts [#4640](https://github.com/rerun-io/rerun/pull/4640)
#### π Performance improvements
@@ -594,7 +592,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
- Show e2e latency in metric ui in top panel [#4502](https://github.com/rerun-io/rerun/pull/4502)
- Show leading slash when formatting entity paths [#4537](https://github.com/rerun-io/rerun/pull/4537)
- Improve entity size stats: include whole subtree [#4542](https://github.com/rerun-io/rerun/pull/4542)
-- Add support for modal windows to `re_ui` and use it for the Space View entity picker [#4577](https://github.com/rerun-io/rerun/pull/4577)
+- Add support for modal Windows to `re_ui` and use it for the Space View entity picker [#4577](https://github.com/rerun-io/rerun/pull/4577)
- Show entity path parts (entity "folder" names) unescaped in UI [#4603](https://github.com/rerun-io/rerun/pull/4603)
- Improve Rerun Menu with link to Rerun Discord [#4661](https://github.com/rerun-io/rerun/pull/4661)
- Introduce container icons and update space views and UI icons [#4663](https://github.com/rerun-io/rerun/pull/4663)
@@ -647,7 +645,6 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
## [0.11.0](https://github.com/rerun-io/rerun/compare/0.10.1...0.11.0) - C++ improvements & better Visible History - 2023-11-28
-### β¨ Overview & highlights
### β¨ Overview & highlights
- π C++ SDK improvements
@@ -659,7 +656,7 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
- π Visual History -> Visual Time Range
- Time series plots can now limit its query to a range
- Much more powerful UI, allowing query ranges relative to time cursor
-- πΈοΈ The viewer can now be easily embedded in your web apps via our [npm package](https://www.npmjs.com/package/@rerun-io/web-viewer)
+- πΈοΈ The Viewer can now be easily embedded in your web apps via our [npm package](https://www.npmjs.com/package/@rerun-io/web-viewer)
- π β οΈ Legacy Python API now removed, check the [migration guide](https://github.com/rerun-io/rerun/issues/723) if you're not using `rr.log` yet
- π¦ The new `StoreSubscriber` trait allows to be notified of all changes in the datastore. This can be used to build custom indices and trigger systems, and serves as a foundation for upcoming performance improvements. Check out [our example](examples/rust/custom_store_subscriber/README.md) for more information.
@@ -669,7 +666,6 @@ Check out our [migration guide](https://www.rerun.io/docs/reference/migration/mi
Special thanks to @dvad & @dangush for contributing!
-### π Details
### π Details
#### π C++ SDK
@@ -682,13 +678,13 @@ Special thanks to @dvad & @dangush for contributing!
- Doxygen documentation & many doc improvements [#4191](https://github.com/rerun-io/rerun/pull/4191)
- Rename `rerun::ComponentBatch` to `rerun::Collection` (and related constructs) [#4236](https://github.com/rerun-io/rerun/pull/4236)
- Use `rerun::Collection` almost everywhere we'd use `std::vector` before [#4247](https://github.com/rerun-io/rerun/pull/4247)
-- Significantly improve C++ logging performance by using C FFI instead of arrow IPC [#4273](https://github.com/rerun-io/rerun/pull/4273)
+- Significantly improve C++ logging performance by using C FFI instead of Arrow IPC [#4273](https://github.com/rerun-io/rerun/pull/4273)
- Further improve C++ logging for many individual log calls by introducing a component type registry [#4296](https://github.com/rerun-io/rerun/pull/4296)
- All C++ datatypes & components now implement a new Loggable trait [#4305](https://github.com/rerun-io/rerun/pull/4305)
- Add C++ Custom Component example [#4309](https://github.com/rerun-io/rerun/pull/4309)
- Expose Rerun source/include dir in CMakeLists.txt (`RERUN_CPP_SOURCE_DIR`) [#4313](https://github.com/rerun-io/rerun/pull/4313)
- Support cmake install [#4326](https://github.com/rerun-io/rerun/pull/4326)
-- Export TensorBuffer & TensorDimension to rerun namespace [#4331](https://github.com/rerun-io/rerun/pull/4331)
+- Export TensorBuffer & TensorDimension to Rerun namespace [#4331](https://github.com/rerun-io/rerun/pull/4331)
- C++ SDK sanity checks now header/source version against rerun_c binary version [#4330](https://github.com/rerun-io/rerun/pull/4330)
- Allow creating Image/Tensor/DepthImage/SegmentationImage directly from shape & pointer [#4345](https://github.com/rerun-io/rerun/pull/4345)
@@ -722,9 +718,9 @@ Special thanks to @dvad & @dangush for contributing!
#### π§βπ» Dev-experience
- Simple logging benchmarks for C++ & Rust [#4181](https://github.com/rerun-io/rerun/pull/4181)
- New debug option to show the blueprint in the streams view [#4189](https://github.com/rerun-io/rerun/pull/4189)
-- Use pixi over setup scripts on CI + local dev [#4302](https://github.com/rerun-io/rerun/pull/4302)
+- Use Pixi over setup scripts on CI + local dev [#4302](https://github.com/rerun-io/rerun/pull/4302)
- Run deploy docs jobs serially [#4232](https://github.com/rerun-io/rerun/pull/4232)
-- fix windows test config on main [#4242](https://github.com/rerun-io/rerun/pull/4242)
+- fix Windows test config on main [#4242](https://github.com/rerun-io/rerun/pull/4242)
#### π£ Refactors
- `StoreView` -> `StoreSubscriber` [#4234](https://github.com/rerun-io/rerun/pull/4234)
@@ -734,12 +730,11 @@ Special thanks to @dvad & @dangush for contributing!
## [0.10.1](https://github.com/rerun-io/rerun/compare/0.10.0...0.10.1) - 2023-11-02
-### β¨ Overview & highlights
### β¨ Overview & highlights
This is a small release primarily to tie up some loose ends for our C++ SDK.
#### π C++ SDK
-- Avoid possible link/symbol errors but defaulting all OSes to static linking of arrow [#4101](https://github.com/rerun-io/rerun/pull/4101)
+- Avoid possible link/symbol errors but defaulting all OSes to static linking of Arrow [#4101](https://github.com/rerun-io/rerun/pull/4101)
- Fix compilation errors with C++20 [#4098](https://github.com/rerun-io/rerun/pull/4098)
- Improve C++ SDK perf 5x by respecting CMAKE_BUILD_TYPE and enabling mimalloc [#4094](https://github.com/rerun-io/rerun/pull/4094)
- Reduce amount of cmake log from building & downloading libArrow [#4103](https://github.com/rerun-io/rerun/pull/4103)
@@ -759,7 +754,6 @@ This is a small release primarily to tie up some loose ends for our C++ SDK.
Release blog post:
-### β¨ Overview & highlights
### β¨ Overview & highlights
* The C++ SDK is finally here!
```cpp
@@ -773,7 +767,7 @@ Release blog post:
}
```
-* Add an integrated getting-started guide into the viewer splash screen
+* Add an integrated getting-started guide into the Viewer splash screen
* Add a new and improved `spawn` method in the Rust SDK
* Add support for NV12-encoded images [#3541](https://github.com/rerun-io/rerun/pull/3541) (thanks [@zrezke](https://github.com/zrezke)!)
* We now publish pre-built binaries for each release at
@@ -790,7 +784,7 @@ Release blog post:
- Python: remove unconditional sleep on `spawn` [#4010](https://github.com/rerun-io/rerun/pull/4010)
- Support `pathlib.Path` for `rr.save` [#4036](https://github.com/rerun-io/rerun/pull/4036)
- Add `disable_timeline` function [#4068](https://github.com/rerun-io/rerun/pull/4068)
-- Support fast install of the rerun viewer with `cargo binstall rerun-cli` thanks to [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall)
+- Support fast install of the Rerun Viewer with `cargo binstall rerun-cli` thanks to [`cargo binstall`](https://github.com/cargo-bins/cargo-binstall)
#### π¦ Rust SDK
- Introduce `re_types_core` [#3878](https://github.com/rerun-io/rerun/pull/3878)
@@ -802,7 +796,7 @@ Release blog post:
#### πͺ³ Bug fixes
- Fix grayscale images being too dark [#3999](https://github.com/rerun-io/rerun/pull/3999)
-- Prevent badly sized tensors from crashing the viewer [#4005](https://github.com/rerun-io/rerun/pull/4005)
+- Prevent badly sized tensors from crashing the Viewer [#4005](https://github.com/rerun-io/rerun/pull/4005)
- Fix selection history right-click menu not working [#3819](https://github.com/rerun-io/rerun/pull/3819)
#### π Viewer improvements
@@ -835,7 +829,7 @@ Release blog post:
- CI: Rerun CLI as a release asset [#3959](https://github.com/rerun-io/rerun/pull/3959)
- Add script to generate RRD vs. screenshots comparisons [#3946](https://github.com/rerun-io/rerun/pull/3946)
- Add a new build Environment option for CondaBuild to improve conda-built artifacts [#4015](https://github.com/rerun-io/rerun/pull/4015)
-- Lock python in CI to 3.11 [#4033](https://github.com/rerun-io/rerun/pull/4033)
+- Lock Python in CI to 3.11 [#4033](https://github.com/rerun-io/rerun/pull/4033)
- Changed `spawn()` and the `rerun` script to call into `rerun_bindings` (12x startup time improvement) [#4053](https://github.com/rerun-io/rerun/pull/4053)
@@ -847,7 +841,6 @@ Release blog post:
* Rust: `cargo add rerun` and `cargo install rerun-cli`
* Online demo:
-### β¨ Overview & highlights
### β¨ Overview & highlights
- A bunch of bug fixes
- Fix big performance regression when hovering images
@@ -910,7 +903,6 @@ Release blog post:
* Online demo:
-### β¨ Overview & highlights
### β¨ Overview & highlights
Rerun 0.9.0 is a big release, that introduces a brand new logging API.
This API is code-generated from a common definition, meaning the Python and Rust SDKs are very similar now.
@@ -939,7 +931,7 @@ Other highlights:
### Some select details
#### π Python SDK
-- Handle older numpy versions / py 3.8 in `VecND` extensions [#2896](https://github.com/rerun-io/rerun/pull/2896)
+- Handle older Numpy versions / py 3.8 in `VecND` extensions [#2896](https://github.com/rerun-io/rerun/pull/2896)
- Add default value for `info` argument of `ClassDescription` [#3017](https://github.com/rerun-io/rerun/pull/3017)
- Run all Python doc examples in CI [#3172](https://github.com/rerun-io/rerun/pull/3172)
- Create objects for delegating components [#3303](https://github.com/rerun-io/rerun/pull/3303)
@@ -965,7 +957,7 @@ Other highlights:
- Fix post-GC purging of streams view time histogram [#3364](https://github.com/rerun-io/rerun/pull/3364)
- Fix color grayscale colormap not being even [#3391](https://github.com/rerun-io/rerun/pull/3391)
- Fix depth point cloud not taking transformation at its path into account [#3514](https://github.com/rerun-io/rerun/pull/3514)
-- Fix infinite recursion when putting a container inside a viewer tab [#3534](https://github.com/rerun-io/rerun/pull/3534)
+- Fix infinite recursion when putting a container inside a Viewer tab [#3534](https://github.com/rerun-io/rerun/pull/3534)
- Fix failing to preview small images [#3520](https://github.com/rerun-io/rerun/pull/3520)
#### π Viewer improvements
@@ -978,7 +970,7 @@ Other highlights:
- Click `recording://entity/path` links in markdown [#3442](https://github.com/rerun-io/rerun/pull/3442)
- Allow showing image shaped tensors in the tensor view [#3583](https://github.com/rerun-io/rerun/pull/3583)
- Add option to display timestamps in the local system timezone [#3530](https://github.com/rerun-io/rerun/pull/3530) (thanks [@jparismorgan](https://github.com/jparismorgan)!)
-- Add obj mesh support to viewer [#3670](https://github.com/rerun-io/rerun/pull/3670)
+- Add obj mesh support to Viewer [#3670](https://github.com/rerun-io/rerun/pull/3670)
#### π Performance improvements
- Pass through strings using arrow2::Buffers [#2931](https://github.com/rerun-io/rerun/pull/2931)
@@ -993,7 +985,7 @@ Other highlights:
- Add "rerun_example_" prefix to all our user-visible app-ids [#3112](https://github.com/rerun-io/rerun/pull/3112)
- Add paper visualizations to examples [#3020](https://github.com/rerun-io/rerun/pull/3020) (thanks [@roym899](https://github.com/roym899)!)
- API examples overhaul & roundtrip tests [#3204](https://github.com/rerun-io/rerun/pull/3204)
-- Generate manifest for examples page in viewer [#3332](https://github.com/rerun-io/rerun/pull/3332)
+- Generate manifest for examples page in Viewer [#3332](https://github.com/rerun-io/rerun/pull/3332)
- Fix `transform3d_simple` and reenable roundtrip test [#3401](https://github.com/rerun-io/rerun/pull/3401)
- Update import path for HuggingFace's `randn_tensor` [#3506](https://github.com/rerun-io/rerun/pull/3506) (thanks [@hu-po](https://github.com/hu-po)!)
- Add ControlNet example [#3568](https://github.com/rerun-io/rerun/pull/3568) (thanks [@roym899](https://github.com/roym899)!)
@@ -1004,7 +996,7 @@ Other highlights:
- Support `\example` in codegen [#3378](https://github.com/rerun-io/rerun/pull/3378)
- Docs codegen [#3445](https://github.com/rerun-io/rerun/pull/3445)
- Generate component/datatype docs [#3535](https://github.com/rerun-io/rerun/pull/3535)
-- Update the python API docs site for the new APIs [#3565](https://github.com/rerun-io/rerun/pull/3565)
+- Update the Python API docs site for the new APIs [#3565](https://github.com/rerun-io/rerun/pull/3565)
- Add a how-to guide for using Rerun with custom data [#3634](https://github.com/rerun-io/rerun/pull/3634)
#### πΌ UI improvements
@@ -1039,7 +1031,7 @@ Other highlights:
- Add Examples page to the Welcome Screen [#3191](https://github.com/rerun-io/rerun/pull/3191)
- `Welcome Page` refresh [#3219](https://github.com/rerun-io/rerun/pull/3219)
- Show currently loading recordings in Recordings menu [#3307](https://github.com/rerun-io/rerun/pull/3307)
-- Update to latest egui + use new Image api [#3311](https://github.com/rerun-io/rerun/pull/3311)
+- Update to latest egui + use new Image API [#3311](https://github.com/rerun-io/rerun/pull/3311)
- Hide stream view and selection view in welcome app [#3333](https://github.com/rerun-io/rerun/pull/3333)
- Tighter UI for Pinhole and when hovering images [#3579](https://github.com/rerun-io/rerun/pull/3579)
- Improve viewport tile behavior [#3295](https://github.com/rerun-io/rerun/pull/3295)
@@ -1115,7 +1107,7 @@ Other highlights:
## [0.8.1](https://github.com/rerun-io/rerun/compare/0.8.0...0.8.1) - Bug fixes - 2023-08-17
#### π Python SDK
-- Add a warning category and stacklevel to rerun warnings.warn calls [#2985](https://github.com/rerun-io/rerun/pull/2985)
+- Add a warning category and stacklevel to Rerun warnings.warn calls [#2985](https://github.com/rerun-io/rerun/pull/2985)
#### πͺ³ Bug fixes
- Fix always redrawing in the presence of a 3D space view [#2900](https://github.com/rerun-io/rerun/pull/2900)
@@ -1141,7 +1133,6 @@ Other highlights:
* Online demo:
-### β¨ Overview & highlights
### β¨ Overview & highlights
- `log_pinhole` is now easier to use in simple cases and supports non-RDF camera coordinates. [#2614](https://github.com/rerun-io/rerun/pull/2614)
- You only need to set focal length and optional principal point instead of setting the full 3x3 matrix.
@@ -1280,7 +1271,7 @@ for use-cases like real-time video feeds. [#2220](https://github.com/rerun-io/re
- Run clippy on public API too [#2596](https://github.com/rerun-io/rerun/pull/2596)
- Bump all `py-lint`-related package versions [#2600](https://github.com/rerun-io/rerun/pull/2600)
- Crates publishing script [#2604](https://github.com/rerun-io/rerun/pull/2604)
-- Fix rust docs deploy [#2615](https://github.com/rerun-io/rerun/pull/2615)
+- Fix Rust docs deploy [#2615](https://github.com/rerun-io/rerun/pull/2615)
- Add support for .gitignore to scripts/lint.py [#2666](https://github.com/rerun-io/rerun/pull/2666)
#### π£ Refactors
@@ -1353,9 +1344,9 @@ for use-cases like real-time video feeds. [#2220](https://github.com/rerun-io/re
- Fix out-of-sync codegen hash [#2567](https://github.com/rerun-io/rerun/pull/2567)
- Python backport: add `log_any()` [#2581](https://github.com/rerun-io/rerun/pull/2581)
- Integrate unit examples into codegen stack [#2590](https://github.com/rerun-io/rerun/pull/2590)
-- Disable codegen on windows [#2592](https://github.com/rerun-io/rerun/pull/2592)
+- Disable codegen on Windows [#2592](https://github.com/rerun-io/rerun/pull/2592)
- Python codegen: big cleaning and paving the way towards transforms [#2603](https://github.com/rerun-io/rerun/pull/2603)
-- Automatically assume arrow transparency for components [#2608](https://github.com/rerun-io/rerun/pull/2608)
+- Automatically assume Arrow transparency for components [#2608](https://github.com/rerun-io/rerun/pull/2608)
- Fix wrong path being `rerun_if_changed()` in `compute_dir_hash` [#2612](https://github.com/rerun-io/rerun/pull/2612)
- Support transparency at the semantic layer [#2611](https://github.com/rerun-io/rerun/pull/2611)
- Don't use builtin `required` anymore, introduce `nullable` instead [#2619](https://github.com/rerun-io/rerun/pull/2619)
@@ -1368,10 +1359,10 @@ for use-cases like real-time video feeds. [#2220](https://github.com/rerun-io/re
- Seed of C and C++ SDKs [#2594](https://github.com/rerun-io/rerun/pull/2594)
- Move C++ SDK to own folder [#2624](https://github.com/rerun-io/rerun/pull/2624)
- C++ codegen [#2678](https://github.com/rerun-io/rerun/pull/2678)
-- C++ codegen for reporting arrow data type for structs [#2756](https://github.com/rerun-io/rerun/pull/2756)
+- C++ codegen for reporting Arrow data type for structs [#2756](https://github.com/rerun-io/rerun/pull/2756)
- Don't inline recursive datatypes in C++ backend [#2765](https://github.com/rerun-io/rerun/pull/2765)
- C++ codegen to_arrow_data_type for unions [#2766](https://github.com/rerun-io/rerun/pull/2766)
-- C++ codegen arrow serialize non-union components/datatypes without nested rerun types [#2820](https://github.com/rerun-io/rerun/pull/2820)
+- C++ codegen Arrow serialize non-union components/datatypes without nested Rerun types [#2820](https://github.com/rerun-io/rerun/pull/2820)
- C++ codegen of structs and unions [#2707](https://github.com/rerun-io/rerun/pull/2707)
- Fix cpp formatter differences [#2773](https://github.com/rerun-io/rerun/pull/2773)
@@ -1380,13 +1371,12 @@ for use-cases like real-time video feeds. [#2220](https://github.com/rerun-io/re
- test_api: set different app_id based on what test is run [#2599](https://github.com/rerun-io/rerun/pull/2599)
- Introduce `rerun compare` to check whether 2 rrd files are functionally equivalent [#2597](https://github.com/rerun-io/rerun/pull/2597)
- Remove `files.exclude` in vscode settings [#2621](https://github.com/rerun-io/rerun/pull/2621)
-- Support feature-gated rust attributes [#2813](https://github.com/rerun-io/rerun/pull/2813)
+- Support feature-gated Rust attributes [#2813](https://github.com/rerun-io/rerun/pull/2813)
## [0.7.0](https://github.com/rerun-io/rerun/compare/0.6.0...0.7.0) - improved transforms, better color mapping, bug & doc fixes - 2023-06-16
-### β¨ Overview & highlights
### β¨ Overview & highlights
While we're working on significant updates around interfaces and customizability,
@@ -1394,7 +1384,7 @@ here's a smaller release packed with useful improvements π
* Much more powerful transformation logging
* any affine transforms works now!
- * supports many more formats and shows them in the viewer as-is
+ * supports many more formats and shows them in the Viewer as-is
* Better color mapping range detection for images and tensors
* Many small improvements to samples & documentation
@@ -1444,13 +1434,13 @@ here's a smaller release packed with useful improvements π
- Add `site_url` to `mkdocs.yml` [#2326](https://github.com/rerun-io/rerun/pull/2326)
- Add `log_cleared` to the common index [#2400](https://github.com/rerun-io/rerun/pull/2400)
- Use forked `mkdocs-redirects` [#2404](https://github.com/rerun-io/rerun/pull/2404)
-- Add support for classes to generated python common API index [#2401](https://github.com/rerun-io/rerun/pull/2401)
+- Add support for classes to generated Python common API index [#2401](https://github.com/rerun-io/rerun/pull/2401)
- Added support for creating multi-resolution stacks with upload_image.py [#2411](https://github.com/rerun-io/rerun/pull/2411)
- Document annotation context in manual [#2453](https://github.com/rerun-io/rerun/pull/2453)
#### πΈοΈ Web
- Update `wasm-bindgen` to 0.2.87 [#2406](https://github.com/rerun-io/rerun/pull/2406)
-- When loading on web, match style and show a progress indicator while wasm is loading [#2421](https://github.com/rerun-io/rerun/pull/2421)
+- When loading on web, match style and show a progress indicator while Wasm is loading [#2421](https://github.com/rerun-io/rerun/pull/2421)
#### π Analytics
- Add crash retriever script [#2168](https://github.com/rerun-io/rerun/pull/2168)
@@ -1462,7 +1452,7 @@ here's a smaller release packed with useful improvements π
- Add instructions on how to fix weird `gsutil` crash [#2278](https://github.com/rerun-io/rerun/pull/2278)
- Link to preview of latest commit in PR body [#2287](https://github.com/rerun-io/rerun/pull/2287)
- CI: Retry `linkinator` [#2299](https://github.com/rerun-io/rerun/pull/2299)
-- Remove long dead code python unit test [#2356](https://github.com/rerun-io/rerun/pull/2356)
+- Remove long dead code Python unit test [#2356](https://github.com/rerun-io/rerun/pull/2356)
- Added gcloud project name to `upload_image.py` [#2381](https://github.com/rerun-io/rerun/pull/2381)
- Fix typo in `run_all.py` [#2441](https://github.com/rerun-io/rerun/pull/2441)
- Small changelog improvements [#2442](https://github.com/rerun-io/rerun/pull/2442)
@@ -1479,7 +1469,6 @@ here's a smaller release packed with useful improvements π
## [0.6.0](https://github.com/rerun-io/rerun/compare/v0.5.1...0.6.0) - 3D in 2D and SDK batching - 2023-05-26
-### β¨ Overview & highlights
### β¨ Overview & highlights
- You can now show 3D objects in 2D views connected by Pinhole transforms [#2008](https://github.com/rerun-io/rerun/pull/2008)
@@ -1518,7 +1507,7 @@ here's a smaller release packed with useful improvements π
#### π Viewer improvements
- Support projecting 3D entities in 2D views [#2008](https://github.com/rerun-io/rerun/pull/2008)
-- Set Rerun viewer native app icon using eframe [#1976](https://github.com/rerun-io/rerun/pull/1976)
+- Set Rerun Viewer native app icon using eframe [#1976](https://github.com/rerun-io/rerun/pull/1976)
- Use `alt` key again for rolling camera in 3D views [#2066](https://github.com/rerun-io/rerun/pull/2066)
- Show tensors shaped [H, W, 1, 1] as images (and more!) [#2075](https://github.com/rerun-io/rerun/pull/2075)
- Show meshes and images with `rerun foo.obj bar.png` [#2060](https://github.com/rerun-io/rerun/pull/2060)
@@ -1531,8 +1520,8 @@ here's a smaller release packed with useful improvements π
- Fix incorrect memory usage stats for destroyed on-creation-mapped buffers [#1963](https://github.com/rerun-io/rerun/pull/1963)
- Fix: don't starve web-socket decoding task [#1977](https://github.com/rerun-io/rerun/pull/1977)
- When hovering a 3D view in the presence of images, fix previously incorrect depth shown in 2D view [#2009](https://github.com/rerun-io/rerun/pull/2009)
-- Fix: use the mac icon on mac [#2023](https://github.com/rerun-io/rerun/pull/2023)
-- SDK batching/revamp 2.2: homegrown arrow size estimation routines [#2002](https://github.com/rerun-io/rerun/pull/2002)
+- Fix: use the Mac icon on Mac [#2023](https://github.com/rerun-io/rerun/pull/2023)
+- SDK batching/revamp 2.2: homegrown Arrow size estimation routines [#2002](https://github.com/rerun-io/rerun/pull/2002)
- Fix twice as wide alpha-to-coverage edge on circles, leading to artifacts [#2053](https://github.com/rerun-io/rerun/pull/2053)
- Bugfix: allow hovered items to be clicked to set selection [#2057](https://github.com/rerun-io/rerun/pull/2057)
- Detect, warn and gracefully handle corrupt cells in `lookup_arrow` [#2055](https://github.com/rerun-io/rerun/pull/2055)
@@ -1565,7 +1554,7 @@ here's a smaller release packed with useful improvements π
#### π§βπ« Examples
- Join threads at end of multi-threading example [#1934](https://github.com/rerun-io/rerun/pull/1934)
- Add argument parsing to the rerun_demo [#1925](https://github.com/rerun-io/rerun/pull/1925)
-- Use zipfile python library instead of `unzip` command in arkitscene [#1936](https://github.com/rerun-io/rerun/pull/1936)
+- Use zipfile Python library instead of `unzip` command in arkitscene [#1936](https://github.com/rerun-io/rerun/pull/1936)
- Fix backslashes in arkitscene rigid transformation path [#1938](https://github.com/rerun-io/rerun/pull/1938)
- Fix mp_pose example 2D points having incorrectly interpreted depth [#2034](https://github.com/rerun-io/rerun/pull/2034)
- SDK batching/revamp 2.1: `clock` example for Rust [#2000](https://github.com/rerun-io/rerun/pull/2000)
@@ -1626,10 +1615,10 @@ here's a smaller release packed with useful improvements π
- If there's a `{{ pr-build-summary }}` in the PR description, update it. [#1971](https://github.com/rerun-io/rerun/pull/1971)
- Run the cube notebook on PR [#1972](https://github.com/rerun-io/rerun/pull/1972)
- Add ability to manually run a web build to upload to an adhoc name [#1966](https://github.com/rerun-io/rerun/pull/1966)
-- Limit ipython to 8.12 in the jupyter example [#2001](https://github.com/rerun-io/rerun/pull/2001)
+- Limit ipython to 8.12 in the Jupyter example [#2001](https://github.com/rerun-io/rerun/pull/2001)
- New manual job to publish a release based on pre-built wheels [#2025](https://github.com/rerun-io/rerun/pull/2025)
-- Use the correct rust analyzer settings [#2028](https://github.com/rerun-io/rerun/pull/2028)
-- New helper for sticking Serde-encodable data into arrow [#2004](https://github.com/rerun-io/rerun/pull/2004)
+- Use the correct Rust analyzer settings [#2028](https://github.com/rerun-io/rerun/pull/2028)
+- New helper for sticking Serde-encodable data into Arrow [#2004](https://github.com/rerun-io/rerun/pull/2004)
- Fix `taplo-cli` failing to install [#2068](https://github.com/rerun-io/rerun/pull/2068)
- `run_all.py`: add `--fast`, `--separate`, and `--close` [#2054](https://github.com/rerun-io/rerun/pull/2054)
- Remove `Clipboard::set_text` [#2078](https://github.com/rerun-io/rerun/pull/2078)
@@ -1678,7 +1667,6 @@ here's a smaller release packed with useful improvements π
## [0.5.1](https://github.com/rerun-io/rerun/compare/v0.5.1...v0.5.0) - Patch Release - 2023-05-01
-### β¨ Overview & highlights
### β¨ Overview & highlights
This Release fixes a few small bugs on top of the v0.5.0 release.
@@ -1692,7 +1680,6 @@ This Release fixes a few small bugs on top of the v0.5.0 release.
## [0.5.0](https://github.com/rerun-io/rerun/compare/v0.4.0...v0.5.0) - Jupyter MVP, GPU-based picking & colormapping, new datastore! - 2023-04-20
-### β¨ Overview & highlights
### β¨ Overview & highlights
This new release adds MVP support for embedding Rerun in Jupyter notebooks, and brings significant performance improvements across all layers of the stack.
@@ -1736,7 +1723,7 @@ This new release adds MVP support for embedding Rerun in Jupyter notebooks, and
- Allow re-use of `RowId`s if no conflict is possible [#1832](https://github.com/rerun-io/rerun/pull/1832)
- Reduce memory used by staging belts on Web [#1836](https://github.com/rerun-io/rerun/pull/1836)
- Test and handle all tensor dtypes as images [#1840](https://github.com/rerun-io/rerun/pull/1840)
-- Fix the python build when running without `web_viewer` enabled [#1856](https://github.com/rerun-io/rerun/pull/1856)
+- Fix the Python build when running without `web_viewer` enabled [#1856](https://github.com/rerun-io/rerun/pull/1856)
- Error instead of `expect` inside `msg_encode` [#1857](https://github.com/rerun-io/rerun/pull/1857)
- Fix shutdown race condition in `re_sdk_comms` client [#1861](https://github.com/rerun-io/rerun/pull/1861)
- Fix broken instance picking in presence of images [#1876](https://github.com/rerun-io/rerun/pull/1876)
@@ -1746,7 +1733,7 @@ This new release adds MVP support for embedding Rerun in Jupyter notebooks, and
- Fix picking entities with image + another object (or label) twice [#1908](https://github.com/rerun-io/rerun/pull/1908)
- Fix double clicking camera no longer focusing on said camera [#1911](https://github.com/rerun-io/rerun/pull/1911)
- Fix annotation images sometimes drawn in the background [#1933](https://github.com/rerun-io/rerun/pull/1933)
-- Use `zipfile` python library instead of `unzip` command in `arkitscene` demo [#1936](https://github.com/rerun-io/rerun/pull/1936)
+- Use `zipfile` Python library instead of `unzip` command in `arkitscene` demo [#1936](https://github.com/rerun-io/rerun/pull/1936)
- Fix backslashes in `arkitscene` rigid transformation path [#1938](https://github.com/rerun-io/rerun/pull/1938)
- Fix hover/select highlights when picking single points in a scene with multiple point clouds [#1942](https://github.com/rerun-io/rerun/pull/1942)
- Fix hovering depth clouds [#1943](https://github.com/rerun-io/rerun/pull/1943)
@@ -1841,9 +1828,9 @@ This new release adds MVP support for embedding Rerun in Jupyter notebooks, and
- Refactor: Add new helper crate `re_log_encoding` [#1772](https://github.com/rerun-io/rerun/pull/1772)
- `setup_web.sh` supports pacman package manager [#1797](https://github.com/rerun-io/rerun/pull/1797) (thanks [@urholaukkarinen](https://github.com/urholaukkarinen)!)
- Add `rerun --strict`: crash if any warning or error is logged [#1812](https://github.com/rerun-io/rerun/pull/1812)
-- End-to-end testing of python logging -> store ingestion [#1817](https://github.com/rerun-io/rerun/pull/1817)
+- End-to-end testing of Python logging -> store ingestion [#1817](https://github.com/rerun-io/rerun/pull/1817)
- Fix e2e test on CI: Don't try to re-build `rerun-sdk` [#1821](https://github.com/rerun-io/rerun/pull/1821)
-- Install the rerun-sdk in CI using `--no-index` and split out linux wheel build to run first [#1838](https://github.com/rerun-io/rerun/pull/1838)
+- Install the rerun-sdk in CI using `--no-index` and split out Linux wheel build to run first [#1838](https://github.com/rerun-io/rerun/pull/1838)
- Remove more unused dependencies [#1863](https://github.com/rerun-io/rerun/pull/1863)
- Improve end-to-end testing slightly [#1862](https://github.com/rerun-io/rerun/pull/1862)
- Turn off benchmarks comment in each PR [#1872](https://github.com/rerun-io/rerun/pull/1872)
@@ -1866,7 +1853,6 @@ This new release adds MVP support for embedding Rerun in Jupyter notebooks, and
https://user-images.githubusercontent.com/1220815/228241887-03b311e2-80e9-4541-9281-6d334a15ab04.mp4
-### β¨ Overview & highlights
### β¨ Overview & highlights
* Add support for mesh vertex colors [#1671](https://github.com/rerun-io/rerun/pull/1671)
* Lower memory use [#1535](https://github.com/rerun-io/rerun/pull/1535)
@@ -1898,7 +1884,7 @@ We now host an experimental and unpolished web-viewer at
#### πͺ³ Bug fixes
- datastore: disable compaction (fixes 2x memory issue) [#1535](https://github.com/rerun-io/rerun/pull/1535)
- Fix garbage collection [#1560](https://github.com/rerun-io/rerun/pull/1560)
-- Avoid using undefined extern "C" on windows [#1577](https://github.com/rerun-io/rerun/pull/1577)
+- Avoid using undefined extern "C" on Windows [#1577](https://github.com/rerun-io/rerun/pull/1577)
- Fix crash on decoding old .rrd files [#1579](https://github.com/rerun-io/rerun/pull/1579)
- datastore: stabilize dataframe sorts [#1549](https://github.com/rerun-io/rerun/pull/1549)
- Stop using infinities in wgsl shaders [#1594](https://github.com/rerun-io/rerun/pull/1594)
@@ -1910,7 +1896,7 @@ We now host an experimental and unpolished web-viewer at
- Handle ctrl+c to gracefully shutdown the server(s) [#1613](https://github.com/rerun-io/rerun/pull/1613)
- Fix crash on serve exit, second attempt [#1633](https://github.com/rerun-io/rerun/pull/1633)
- Fix wrong remove-tooltip for entities and groups [#1637](https://github.com/rerun-io/rerun/pull/1637)
-- Fix requiring focus for shutdown via ctrl+c when starting viewer from command line [#1646](https://github.com/rerun-io/rerun/pull/1646)
+- Fix requiring focus for shutdown via ctrl+c when starting Viewer from command line [#1646](https://github.com/rerun-io/rerun/pull/1646)
- Fix eye spin after eye reset [#1652](https://github.com/rerun-io/rerun/pull/1652)
- Fix crash on negative radii by instead warning [#1654](https://github.com/rerun-io/rerun/pull/1654)
- Fix crash when trying to listen on a taken TCP port [#1650](https://github.com/rerun-io/rerun/pull/1650)
@@ -1972,7 +1958,7 @@ We now host an experimental and unpolished web-viewer at
- Implement outlines for line renderer & use them for select & hover of "line-like" primitives in Viewer [#1553](https://github.com/rerun-io/rerun/pull/1553)
- Load .rrd file over HTTP [#1600](https://github.com/rerun-io/rerun/pull/1600)
- Revert "Handle ctrl+c to gracefully shutdown the server(s)" [#1632](https://github.com/rerun-io/rerun/pull/1632)
-- More eager GC, and remove `--fast-math` optimization for wasm [#1656](https://github.com/rerun-io/rerun/pull/1656)
+- More eager GC, and remove `--fast-math` optimization for Wasm [#1656](https://github.com/rerun-io/rerun/pull/1656)
- Detect failure to install GUI log callback [#1655](https://github.com/rerun-io/rerun/pull/1655)
- Warn when most of the RAM has been used up by Rerun [#1651](https://github.com/rerun-io/rerun/pull/1651)
- Apply color maps to all types of depth tensors [#1686](https://github.com/rerun-io/rerun/pull/1686)
@@ -2029,7 +2015,7 @@ We now host an experimental and unpolished web-viewer at
- Run clippy for wasm, with own clippy.toml config file [#1628](https://github.com/rerun-io/rerun/pull/1628)
- Update tokio v1.24.1 -> v1.26.0 [#1635](https://github.com/rerun-io/rerun/pull/1635)
- Add a workflow input for running benchmarks manually [#1698](https://github.com/rerun-io/rerun/pull/1698)
-- Add missing } to fix rust workflow [#1700](https://github.com/rerun-io/rerun/pull/1700)
+- Add missing } to fix Rust workflow [#1700](https://github.com/rerun-io/rerun/pull/1700)
- Fix `lint.py` [#1719](https://github.com/rerun-io/rerun/pull/1719)
- Add a script that generates a changelog from recent PRs and their labels [#1718](https://github.com/rerun-io/rerun/pull/1718)
@@ -2041,12 +2027,11 @@ We now host an experimental and unpolished web-viewer at
## [0.3.1](https://github.com/rerun-io/rerun/compare/v0.3.0...v0.3.1) - Remove potentially sensitive analytics - 2023-03-13
-Remove potentially sensitive analytics, including path to rerun source code on panics, and rerun branch name when building from source [#1563](https://github.com/rerun-io/rerun/pull/1563)
+Remove potentially sensitive analytics, including path to Rerun source code on panics, and Rerun branch name when building from source [#1563](https://github.com/rerun-io/rerun/pull/1563)
## [0.3.0](https://github.com/rerun-io/rerun/compare/v0.2.0...v0.3.0) - 2023-03-07
### β¨ Overview & highlights
-### β¨ Overview & highlights
After a successful launch a couple of weeks ago, we're back with our second release!
With a few exceptions this release focuses on internal refactors & improving our processes.
@@ -2066,7 +2051,7 @@ Other highlights:
* Improved formatting of date-times in plots [#1356](https://github.com/rerun-io/rerun/pull/1356)
* Labels for 3D objects have now a color can now be selected & hovered [#1438](https://github.com/rerun-io/rerun/pull/1438)
* Scale factor is saved across sessions and more persistent between screens [#1448](https://github.com/rerun-io/rerun/pull/1448)
- * Showing tensors in the viewer is now faster
+ * Showing tensors in the Viewer is now faster
* SDK
* Python packages now work with Ubuntu-20.04 [#1334](https://github.com/rerun-io/rerun/pull/1334)
* u8 segmentation stay u8 now (they converted to u16 before) [#1376](https://github.com/rerun-io/rerun/pull/1376)
@@ -2124,7 +2109,7 @@ Meanwhile, we did a bunch of improvements to our manual. If you had trouble runn
* Fix crash due to always expecting Rgba8Unorm backbuffer on Web & Bgra8Unorm on native [#1413](https://github.com/rerun-io/rerun/pull/1413)
* Allow controlling the graphics backend & power preference through standard wgpu env vars [#1332](https://github.com/rerun-io/rerun/pull/1332)
* Heuristic for camera frustum length is now based on scene size [#1433](https://github.com/rerun-io/rerun/pull/1433)
-* Fix python type signature for tensor names [#1443](https://github.com/rerun-io/rerun/pull/1443)
+* Fix Python type signature for tensor names [#1443](https://github.com/rerun-io/rerun/pull/1443)
* Don't convert u8 segmentation images to u16 [#1376](https://github.com/rerun-io/rerun/pull/1376)
* Docs (excluding the manual)
* Improve the docs of `connect` and `serve` [#1450](https://github.com/rerun-io/rerun/pull/1450)
@@ -2143,7 +2128,7 @@ Meanwhile, we did a bunch of improvements to our manual. If you had trouble runn
* register SDK language and data source [#1371](https://github.com/rerun-io/rerun/pull/1371)
* Refactor analytics [#1368](https://github.com/rerun-io/rerun/pull/1368)
* Versioned log streams [#1420](https://github.com/rerun-io/rerun/pull/1420)
-* Fix path issues when running debug viewer within workspace [#1341](https://github.com/rerun-io/rerun/pull/1341)
+* Fix path issues when running debug Viewer within workspace [#1341](https://github.com/rerun-io/rerun/pull/1341)
* Detailed errors for re_renderer `include_file!` [#1339](https://github.com/rerun-io/rerun/pull/1339)
* Limit logging in web-viewer to `warn` in order to workaround a crash issue (and reduce log spam) [1514](https://github.com/rerun-io/rerun/pull/1514)
* Fix disabling API through `init` not working [#1517](https://github.com/rerun-io/rerun/pull/1517)
@@ -2156,14 +2141,14 @@ Meanwhile, we did a bunch of improvements to our manual. If you had trouble runn
* Replace `reqwest` with `ureq` [#1407](https://github.com/rerun-io/rerun/pull/1407)
* Remove derive_more dependency [#1406](https://github.com/rerun-io/rerun/pull/1406)
* Use different artifact names for wasm/js in debug builds [#1428](https://github.com/rerun-io/rerun/pull/1428)
-* Separate mac wheels & trigger wheel build from ui [#1499](https://github.com/rerun-io/rerun/pull/1499)
+* Separate Mac wheels & trigger wheel build from ui [#1499](https://github.com/rerun-io/rerun/pull/1499)
* Add spell checking to CI [#1492](https://github.com/rerun-io/rerun/pull/1492)
* Repo size
* Always create new orphaned branch for gh-pages [#1490](https://github.com/rerun-io/rerun/pull/1490)
* GitHub Action to prevent large files [#1478](https://github.com/rerun-io/rerun/pull/1478)
* Python
- * Remove the python job path filters [#1452](https://github.com/rerun-io/rerun/pull/1452)
- * Use ruff for our python lints [#1378](https://github.com/rerun-io/rerun/pull/1378)
+ * Remove the Python job path filters [#1452](https://github.com/rerun-io/rerun/pull/1452)
+ * Use ruff for our Python lints [#1378](https://github.com/rerun-io/rerun/pull/1378)
* Use python3 in the jobs that weren't tested in PR [#1348](https://github.com/rerun-io/rerun/pull/1348)
* Testing
* Add a test of memory use when logging a lot of big images [#1372](https://github.com/rerun-io/rerun/pull/1372)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index a5c17e6645e8a..5577d31e1cc7a 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -114,10 +114,9 @@ cargo run -p rerun -- --help
## Tools
We use the [`pixi`](https://prefix.dev/) for managing dev-tool versioning, download and task running. To see available tasks, use `pixi task list`.
-# TODO(andreas): This doesn't list tasks from the different environments. Asked [here](https://discord.com/channels/1082332781146800168/1227563080934756475/1227563080934756475) if there's a way to do that.
-
-We use [cargo deny](https://github.com/EmbarkStudios/cargo-deny) to check our dependency tree for copy-left licenses, duplicate dependencies and [rustsec advisories](https://rustsec.org/advisories). You can configure it in `deny.toml`. Usage: `cargo deny check`.
+TODO(andreas): This doesn't list tasks from all Pixi environments. There's no way to this so far, see also [here](https://discord.com/channels/1082332781146800168/1227563080934756475/1227563080934756475).
+We use [cargo deny](https://github.com/EmbarkStudios/cargo-deny) to check our dependency tree for copy-left licenses, duplicate dependencies and [rustsec advisories](https://rustsec.org/advisories). You can configure it in `deny.toml`. Usage: `cargo deny check`
Configure your editor to run `cargo fmt` on save. Also configure it to strip trailing whitespace, and to end each file with a newline. Settings for VSCode can be found in the `.vscode` folder and should be applied automatically. If you are using another editor, consider adding good setting to this repository!
Depending on the changes you made run `cargo test --all-targets --all-features`, `pixi run py-test` and `pixi run cpp-test` locally.
@@ -127,7 +126,7 @@ Prior to pushing changes to a PR, at a minimum, you should always run `pixi run
in a few seconds and should catch the more trivial issues to avoid wasting CI time.
### Hooks
-We recommend adding the rerun pre-push hook to your local checkout, which among other-things will run
+We recommend adding the Rerun pre-push hook to your local checkout, which among other-things will run
`pixi run fast-lint` for you.
To install the hooks, simply copy them into the `.git/hooks` directory of your local checkout.
@@ -141,7 +140,7 @@ git config core.hooksPath hooks
```
### Optional
-You can use [bacon](https://github.com/Canop/bacon) to automatically check your code on each save. For instance, running just `bacon` will re-run `cargo clippy` each time you change a rust file. See [`bacon.toml`](bacon.toml) for more.
+You can use [bacon](https://github.com/Canop/bacon) to automatically check your code on each save. For instance, running just `bacon` will re-run `cargo clippy` each time you change a Rust file. See [`bacon.toml`](bacon.toml) for more.
You can set up [`sccache`](https://github.com/mozilla/sccache) to speed up re-compilation (e.g. when switching branches). You can control the size of the cache with `export SCCACHE_CACHE_SIZE="256G"`.
diff --git a/README.md b/README.md
index 85f2879e051d6..a1037aafbce72 100644
--- a/README.md
+++ b/README.md
@@ -30,7 +30,7 @@ rr.connect() # Connect to a remote viewer
# rr.save("recording.rrd") # Stream all logs to disk
# Associate subsequent data with 42 on the βframeβ timeline
-rr.set_time_sequence("frame", 42))
+rr.set_time_sequence("frame", 42)
# Log colored 3D points to the entity at `path/to/points`
rr.log("path/to/points", rr.Points3D(positions, colors=colors))
@@ -48,14 +48,14 @@ rr.log("path/to/points", rr.Points3D(positions, colors=colors))
## Getting started
-* **C++**: [Guide](https://www.rerun.io/docs/getting-started/quick-start/cpp)
-* **Python**: `pip install rerun-sdk` or on [`conda`](https://github.com/conda-forge/rerun-sdk-feedstock)
-* **Rust**: `cargo add rerun`
-
-### Rerun Viewer binary
-Both the Python and Rust library can start the Rerun Viewer, but to stream log data over the network or load our `.rrd` data files you also need the `rerun` binary.
+* [**C++**](https://www.rerun.io/docs/getting-started/quick-start/cpp)
+* [**Python**](https://www.rerun.io/docs/getting-started/quick-start/python): `pip install rerun-sdk` or on [`conda`](https://github.com/conda-forge/rerun-sdk-feedstock)
+* [**Rust**](https://www.rerun.io/docs/getting-started/quick-start/rust): `cargo add rerun`
+### Installing the Rerun Viewer binary
+To stream log data over the network or load our `.rrd` data files you also need the `rerun` binary.
It can be installed with `pip install rerun-sdk` or with `cargo install rerun-cli`.
+Note that only the Python SDK comes bundled with the Viewer whereas C++ & Rust always rely on a separate install.
You should now be able to run `rerun --help` in any terminal.
@@ -147,12 +147,12 @@ facilitates the tool's discovery by other researchers.
# Development
* [`ARCHITECTURE.md`](ARCHITECTURE.md)
-* [`BUILD.md`](BUILD.md)
-* [`rerun_py/README.md`](rerun_py/README.md) - build instructions for Python SDK
* [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md)
* [`CODE_STYLE.md`](CODE_STYLE.md)
* [`CONTRIBUTING.md`](CONTRIBUTING.md)
-* [`RELEASES.md`](RELEASES.md)
+* [`BUILD.md`](BUILD.md)
+* [`rerun_py/README.md`](rerun_py/README.md) - instructions for Python SDK
+* [`rerun_cpp/README.md`](rerun_cpp/README.md) - instructions for C++ SDK
## Installing a pre-release Python SDK
diff --git a/RELEASES.md b/RELEASES.md
index 749582aefec7c..92b9a5cfee636 100644
--- a/RELEASES.md
+++ b/RELEASES.md
@@ -16,7 +16,7 @@ New Rerun versions are released approximately once every month. Sometimes we do
## Library versioning and release cadence
Each release include new versions of:
-* All rust crates
+* All Rust crates
* The Python SDK
* The Rust SDK
* The C++ SDK
@@ -39,7 +39,7 @@ Our Minimum Supported Rust Version (MSRV) is always _at least_ one minor release
## Data and communication versioning
We have not yet committed to any backwards or forwards compatibility.
-We tag all data files (`.rrd` files) and communication protocols with the rerun version number. If there is a version mismatch, a warning is logged, but an attempt is still made to load the older or newer data.
+We tag all data files (`.rrd` files) and communication protocols with the Rerun version number. If there is a version mismatch, a warning is logged, but an attempt is still made to load the older or newer data.
## Releases
diff --git a/crates/re_dev_tools/README.md b/crates/re_dev_tools/README.md
index 5fc1e45446957..1a4c549218516 100644
--- a/crates/re_dev_tools/README.md
+++ b/crates/re_dev_tools/README.md
@@ -2,7 +2,7 @@
Crate that combines several development utilities.
To get an overview over all tools run `pixi run dev-tools --help`.
-We keep all smaller rust "scripts" in this single crate so we don't needlessly
+We keep all smaller Rust "scripts" in this single crate so we don't needlessly
increase the number of such utility crates and to make it easy to get
an overview over all build tooling written in Rust.
diff --git a/crates/re_renderer/README.md b/crates/re_renderer/README.md
index c523011183875..a3adadb3d911b 100644
--- a/crates/re_renderer/README.md
+++ b/crates/re_renderer/README.md
@@ -23,7 +23,7 @@ Goals & philosophy:
* Automatic resource re-use & caching
* Lazy loading whenever possible for best startup performance
* Run great both on the desktop and web
-* No dependencies on `re_viewer` or rerun data store libraries
+* No dependencies on `re_viewer` or Rerun data store libraries
## Debugging
diff --git a/crates/re_tuid/README.md b/crates/re_tuid/README.md
index d75c7961c2fc4..0a2feb0c0b258 100644
--- a/crates/re_tuid/README.md
+++ b/crates/re_tuid/README.md
@@ -1,4 +1,4 @@
-# TUID: Time-based Unique Identifier
+# TUID: time-based unique identifier
Part of the [`rerun`](https://github.com/rerun-io/rerun) family of crates.
diff --git a/crates/re_types/definitions/rerun/datatypes/class_description.fbs b/crates/re_types/definitions/rerun/datatypes/class_description.fbs
index 7196dd0085dd4..0024aedbdfe5d 100644
--- a/crates/re_types/definitions/rerun/datatypes/class_description.fbs
+++ b/crates/re_types/definitions/rerun/datatypes/class_description.fbs
@@ -9,7 +9,7 @@ namespace rerun.datatypes;
/// The description of a semantic Class.
///
-/// If an entity is annotated with a corresponding `ClassId`, rerun will use
+/// If an entity is annotated with a corresponding `ClassId`, Rerun will use
/// the attached `AnnotationInfo` to derive labels and colors.
///
/// Keypoints within an annotation class can similarly be annotated with a
diff --git a/crates/re_types/definitions/rerun/datatypes/quaternion.fbs b/crates/re_types/definitions/rerun/datatypes/quaternion.fbs
index c3908e9bd2ef1..4cd2235e3cecc 100644
--- a/crates/re_types/definitions/rerun/datatypes/quaternion.fbs
+++ b/crates/re_types/definitions/rerun/datatypes/quaternion.fbs
@@ -9,7 +9,7 @@ namespace rerun.datatypes;
/// A Quaternion represented by 4 real numbers.
///
/// Note: although the x,y,z,w components of the quaternion will be passed through to the
-/// datastore as provided, when used in the viewer Quaternions will always be normalized.
+/// datastore as provided, when used in the Viewer Quaternions will always be normalized.
//
// Expectations:
struct Quaternion (
diff --git a/crates/re_types/src/datatypes/class_description.rs b/crates/re_types/src/datatypes/class_description.rs
index 31e19ea8ec6d2..9ddf1fa785f3d 100644
--- a/crates/re_types/src/datatypes/class_description.rs
+++ b/crates/re_types/src/datatypes/class_description.rs
@@ -24,7 +24,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// **Datatype**: The description of a semantic Class.
///
-/// If an entity is annotated with a corresponding `ClassId`, rerun will use
+/// If an entity is annotated with a corresponding `ClassId`, Rerun will use
/// the attached `AnnotationInfo` to derive labels and colors.
///
/// Keypoints within an annotation class can similarly be annotated with a
diff --git a/crates/re_types/src/datatypes/quaternion.rs b/crates/re_types/src/datatypes/quaternion.rs
index 60a457f09cb3d..2471257a4b07b 100644
--- a/crates/re_types/src/datatypes/quaternion.rs
+++ b/crates/re_types/src/datatypes/quaternion.rs
@@ -25,7 +25,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// **Datatype**: A Quaternion represented by 4 real numbers.
///
/// Note: although the x,y,z,w components of the quaternion will be passed through to the
-/// datastore as provided, when used in the viewer Quaternions will always be normalized.
+/// datastore as provided, when used in the Viewer Quaternions will always be normalized.
#[derive(Clone, Debug, Copy, PartialEq, PartialOrd)]
pub struct Quaternion(pub [f32; 4usize]);
diff --git a/crates/re_viewer/README.md b/crates/re_viewer/README.md
index 1f0c3a088d8f6..13dfb89fe4042 100644
--- a/crates/re_viewer/README.md
+++ b/crates/re_viewer/README.md
@@ -1,4 +1,4 @@
-# The Rerun viewer
+# The Rerun Viewer
Part of the [`rerun`](https://github.com/rerun-io/rerun) family of crates.
diff --git a/crates/re_viewer/data/quick_start_guides/cpp_connect.md b/crates/re_viewer/data/quick_start_guides/cpp_connect.md
index 43eef06297b56..6fe268cf12469 100644
--- a/crates/re_viewer/data/quick_start_guides/cpp_connect.md
+++ b/crates/re_viewer/data/quick_start_guides/cpp_connect.md
@@ -1,6 +1,6 @@
# C++ quick start
-## Installing the Rerun viewer
+## Installing the Rerun Viewer
The Rerun C++ SDK works by connecting to an awaiting Rerun Viewer over TCP.
If you need to install the viewer, follow the [installation guide](https://www.rerun.io/docs/getting-started/installing-viewer). Two of the more common ways to install the Rerun are:
@@ -35,7 +35,7 @@ Put the following code to your `main.cpp`:
${EXAMPLE_CODE_CPP_CONNECT}
```
-Start the rerun viewer (`rerun`) and then build and run your C++ program.
+Start the Rerun Viewer (`rerun`) and then build and run your C++ program.
You should see the points in this viewer:
diff --git a/crates/re_viewer/data/quick_start_guides/cpp_spawn.md b/crates/re_viewer/data/quick_start_guides/cpp_spawn.md
index 7063ffe05cb57..748e416f40b34 100644
--- a/crates/re_viewer/data/quick_start_guides/cpp_spawn.md
+++ b/crates/re_viewer/data/quick_start_guides/cpp_spawn.md
@@ -1,6 +1,6 @@
# C++ quick start
-## Installing the Rerun viewer
+## Installing the Rerun Viewer
The Rerun C++ SDK works by connecting to an awaiting Rerun Viewer over TCP.
If you need to install the viewer, follow the [installation guide](https://www.rerun.io/docs/getting-started/installing-viewer). Two of the more common ways to install the Rerun are:
diff --git a/crates/re_viewer/data/quick_start_guides/python_spawn.md b/crates/re_viewer/data/quick_start_guides/python_spawn.md
index a4dbbc67a909e..9e608cb9be125 100644
--- a/crates/re_viewer/data/quick_start_guides/python_spawn.md
+++ b/crates/re_viewer/data/quick_start_guides/python_spawn.md
@@ -18,7 +18,7 @@ Copy and paste the following snippet in a new Python file and execute it to crea
${EXAMPLE_CODE_PYTHON_SPAWN}
```
-This will spawn a new viewer and open a new recording that looks like this:
+This will spawn a new Viewer and open a new recording that looks like this:
![Demo recording](https://static.rerun.io/quickstart2_simple_cube/632a8f1c79f70a2355fad294fe085291fcf3a8ae/768w.png)
diff --git a/crates/re_viewer/data/quick_start_guides/rust_spawn.md b/crates/re_viewer/data/quick_start_guides/rust_spawn.md
index a59fb322c5d03..fc9cfc1c6edd3 100644
--- a/crates/re_viewer/data/quick_start_guides/rust_spawn.md
+++ b/crates/re_viewer/data/quick_start_guides/rust_spawn.md
@@ -2,7 +2,7 @@
## Installing Rerun
-After you have [installed the viewer](https://www.rerun.io/docs/getting-started/installing-viewer) you can simply add [the rerun crate](https://crates.io/crates/rerun) to your project with `cargo add rerun`.
+After you have [installed the viewer](https://www.rerun.io/docs/getting-started/installing-viewer) you can simply add [the Rerun crate](https://crates.io/crates/rerun) to your project with `cargo add rerun`.
Let's try it out in a brand-new Rust project:
@@ -26,7 +26,7 @@ You can now run your application:
cargo run
```
-Once everything finishes compiling, a new viewer will start displaying these points:
+Once everything finishes compiling, a new Viewer will start displaying these points:
![Demo recording](https://static.rerun.io/intro_rust_result/cc780eb9bf014d8b1a68fac174b654931f92e14f/768w.png)
diff --git a/crates/re_viewer_context/README.md b/crates/re_viewer_context/README.md
index e78ca9c9268b6..26832a576ebe7 100644
--- a/crates/re_viewer_context/README.md
+++ b/crates/re_viewer_context/README.md
@@ -9,4 +9,4 @@ Part of the [`rerun`](https://github.com/rerun-io/rerun) family of crates.
Basic building blocks for the different modules of the Rerun viewer.
-Most prominently, contains a context object that the viewer uses to share global data with each module.
+Most prominently, contains a context object that the Viewer uses to share global data with each module.
diff --git a/design/batching.md b/design/batching.md
index 7b5d844b560d8..ee33fd1a95c14 100644
--- a/design/batching.md
+++ b/design/batching.md
@@ -353,7 +353,7 @@ For example, if you need to iterate through 100k values, you would need to run 1
The current garbage collection mechanism was put together as a quick fix for the `MsgId`-mismatch issue, and it is largely unreliable.
-The algorithm works as follows: it finds the oldest component bucket based on the insertion order from the datastore, which doesn't make much semantic sense, and drops it. Then, it drops all component buckets that roughly cover the same time range. Finally, it returns all the `MsgId`s to the viewer so that it can in turn clear its own data structures.
+The algorithm works as follows: it finds the oldest component bucket based on the insertion order from the datastore, which doesn't make much semantic sense, and drops it. Then, it drops all component buckets that roughly cover the same time range. Finally, it returns all the `MsgId`s to the Viewer so that it can in turn clear its own data structures.
This process is repeated in a loop until a sufficient amount of data has been dropped.
Beyond these hacks, the logic in and of itself is fundamentally broken right now. Consider the following log calls:
@@ -400,7 +400,7 @@ The current terms `ComponentBundle` and `MsgBundle` are vague, so let's use more
* `DataRow`: an event, a list of cells associated with an event ID, entity path, timepoint, and number of instances. Corresponds to a single SDK log call.
* `DataTable`: a batch; a list of rows associated with a batch ID.
-Juggling between native and arrow data interchangeably can be a cumbersome task in our current implementation. While we have some helper functions to facilitate this, the process is not as smooth as it could be.
+Juggling between native and Arrow data interchangeably can be a cumbersome task in our current implementation. While we have some helper functions to facilitate this, the process is not as smooth as it could be.
This is partly due to limitations in `arrow2-convert`, but also because some of our APIs are simply not optimized for this use case (yet).
So, considering all the reasons above, here are all the new types involved.
@@ -559,7 +559,7 @@ Only when a `DataTable` gets transformed into a `ArrowMsg` does serialization ac
### Transport
-`ArrowMsg` stays roughly the same in spirit: it's the fully serialized arrow representation of a `DataTable`:
+`ArrowMsg` stays roughly the same in spirit: it's the fully serialized Arrow representation of a `DataTable`:
```rust
pub struct ArrowMsg {
/// Auto-generated [`TUID`], uniquely identifying this batch of data and keeping track of the
@@ -687,12 +687,12 @@ We already have `zstd` in place for that.
### Storage
-One of the major change storage-wise is the complete removal of component tables: index tables now reference the arrow data directly.
-With the new design, the arrow buffers now store multiple rows of data. To reference a specific row, each index row must point to _a unit-length slice_ in a shared batch of arrow data.
+One of the major change storage-wise is the complete removal of component tables: index tables now reference the Arrow data directly.
+With the new design, the Arrow buffers now store multiple rows of data. To reference a specific row, each index row must point to _a unit-length slice_ in a shared batch of Arrow data.
That is the reason why sorting the batch on the client's end improves performance: it improves data locality in the store by making the shared batches follow the layout of the final buckets more closely.
-Assuming the following syntax for arrow slices: `ArrowSlice()`, indices should now look roughly like the following, sorted by the timeline (`frame_nr`):
+Assuming the following syntax for Arrow slices: `ArrowSlice()`, indices should now look roughly like the following, sorted by the timeline (`frame_nr`):
```
IndexTable {
timeline: frame_nr
@@ -741,7 +741,7 @@ IndexTable {
Worth noticing:
- `event_id` and `num_instances` are deserialized and stored natively, as they play a crucial role in many storage and query features.
-- In this example, `rerun.instance_key` consistently references the same slice of arrow data. This is because they are auto-generated in this case.
+- In this example, `rerun.instance_key` consistently references the same slice of Arrow data. This is because they are auto-generated in this case.
In addition to storing the indices themselves, we also require a bunch of auxiliary datastructures.
@@ -758,10 +758,10 @@ Overall this is a much simpler design, and while it still isn't optimal for time
### Write path
-For each row in the batch, we create a bunch of unit-length arrow slices that point to the right place in the shared buffer, and then it's all pretty much the same as before.
+For each row in the batch, we create a bunch of unit-length Arrow slices that point to the right place in the shared buffer, and then it's all pretty much the same as before.
-The major difference is we now directly store arrow buffers (which are really arrow slices under the hood) rather than indices into component tables.
-Everything else is the same: get (or create) the appropriate index (`EntityPath` + `Timeline`), find the right bucket using a binsearch, and insert those arrow slices
+The major difference is we now directly store Arrow buffers (which are really Arrow slices under the hood) rather than indices into component tables.
+Everything else is the same: get (or create) the appropriate index (`EntityPath` + `Timeline`), find the right bucket using a binsearch, and insert those Arrow slices
We also actually deserialize the `event_id` and `num_instances` columns into native types as we're going to need those for the store to function:
- `event_id`s are needed to maintain our auxiliary datastructures (GC, save-to-file)
@@ -769,7 +769,7 @@ We also actually deserialize the `event_id` and `num_instances` columns into nat
### Read path
-The major difference is we now directly return arrow buffers (which are really arrow slices under the hood), which means `get` queries are gone⦠which means latest-at queries should get a bit faster and range queries should get much faster.
+The major difference is we now directly return Arrow buffers (which are really Arrow slices under the hood), which means `get` queries are gone⦠which means latest-at queries should get a bit faster and range queries should get much faster.
Everything else is the same: grab the right index (`EntityPath` + `Timeline`), binsearch for the right bucket, walk backwards if you need to, and you're done.
@@ -791,8 +791,8 @@ We want to garbage collect in `event_id` order (reminder: `EventId` is a `TUID`,
- We iterate over all `EventId`s in their natural order
- For every one of them:
- - Find all index rows that match this `event_id` and replace the arrow slice with a tombstone, this has 2 effects:
- 1. This decrements the internal refcount of the overall arrow buffer, which might deallocate it if this happens to be the last one standing
+ - Find all index rows that match this `event_id` and replace the Arrow slice with a tombstone, this has 2 effects:
+ 1. This decrements the internal refcount of the overall Arrow buffer, which might deallocate it if this happens to be the last one standing
2. This lets the read path knows it should ignore this row (and maybe not look any further?)
- Check if the bucket now only contains tombstones, and drop it entirely if that's the case
- Remove the freshly dropped `event_id` from all our auxiliary datastructures
@@ -835,7 +835,7 @@ We should already be 95% of the way there at this point.
No actual batching features nor any kind of behavior changes of any sort: just define the new types and use them everywhere.
1. Pass entity path as a column rather than as metadata
-Replace the current entity_path that is passed in the metadata map with an actual column instead. This will also requires us to make `EntityPath` a proper arrow datatype (..datatype, not component!!).
+Replace the current entity_path that is passed in the metadata map with an actual column instead. This will also requires us to make `EntityPath` a proper Arrow datatype (..datatype, not component!!).
1. Implement explicit number of instances
Introduce a new column for `num_instances`, integrate it in the store index and expose it in the store APIs.
@@ -867,7 +867,7 @@ Reminder: the timeline widget keeps track of timepoints directly, not events.
1. Rebatch aggressively while dumping to disk
-1. Use arrow extension types to carry around component names
+1. Use Arrow extension types to carry around component names
1. Drop `log_time`
We currently store the logging time twice: once in the `MsgId` (soon `EventId`) and once injected by the SDK (and they don't even match!).
@@ -961,7 +961,7 @@ I.e. a GC request of the form `DropAfter(("frame_nr", 41))`, rather than the oth
### The DataStore is its own server
-The datastore won't run as part of the viewer forever.
+The datastore won't run as part of the Viewer forever.
### Data might be a reference to an external storage system
@@ -1012,7 +1012,7 @@ timepoint: Vec,
entity_path: Vec,
num_instances: Vec,
```
-None of these are components however, they are merely arrow datatypes.
+None of these are components however, they are merely Arrow datatypes.
Everything else is just a component, and as such is passed as a `DataCell`.
diff --git a/design/blueprint_store.md b/design/blueprint_store.md
index 077b24aa045ae..fd954676a8ef1 100644
--- a/design/blueprint_store.md
+++ b/design/blueprint_store.md
@@ -28,13 +28,13 @@ give users explicit control over the details of how data is displayed in the vie
## Proposal
### Blueprint lifecycle
-In order to simplify many edge cases, custom blueprints will only be able to be sent to the viewer in their entirety as
-part of viewer startup. This limits blueprint control to: `rr.spawn()` (launch a native app), `rr.serve()` (launch a
-hosted web-app), and `rr.show()` (embed a viewer in a notebook). Additionally a blueprint file will be able to be
-provided to the viewer via the CLI at launch, or opened via the file-menu.
+In order to simplify many edge cases, custom blueprints will only be able to be sent to the Viewer in their entirety as
+part of Viewer startup. This limits blueprint control to: `rr.spawn()` (launch a native app), `rr.serve()` (launch a
+hosted web-app), and `rr.show()` (embed a Viewer in a notebook). Additionally a blueprint file will be able to be
+provided to the Viewer via the CLI at launch, or opened via the file-menu.
Blueprints will not otherwise be able to be sent via `rr.connect()`, which is reserved for only transmitting log-data to
-an existing live viewer instance, where a relevant blueprint is assumed to be loaded.
+an existing live Viewer instance, where a relevant blueprint is assumed to be loaded.
### Blueprint APIs
@@ -63,7 +63,7 @@ App:
β¦
```
-A theoretical python API might look like:
+A theoretical Python API might look like:
```python
blueprint = rrb.App(
expand_panels=False,
@@ -219,7 +219,7 @@ is simply stored at an "anonymous" entity path within the blueprint store and wi
The blueprint store has exactly one timeline: `ui_time` which is the local time of the application. This can then be used for undo and redo.
## Viewer
-Any configurable viewer state will be driven by the blueprint store and the data store. Each frame we will
+Any configurable Viewer state will be driven by the blueprint store and the data store. Each frame we will
query the blueprint store about the current state of the blueprint, which will then drive the layout of the UI.
In turn any user-interactions that modify the layout will be saved back to the blueprint store and queried again
on the next frame.
diff --git a/design/component_datatypes.md b/design/component_datatypes.md
index 32b935d4b5ca1..3b7fb1bfdac93 100644
--- a/design/component_datatypes.md
+++ b/design/component_datatypes.md
@@ -1,4 +1,4 @@
-# 2023-03-15 Component type conversions
+# 2023-03-15 component type conversions
Status: pre-proposal (not ready to be implemented)
## Summary
diff --git a/design/space_views.md b/design/space_views.md
index 1cfe8252cbcc4..58271b5367396 100644
--- a/design/space_views.md
+++ b/design/space_views.md
@@ -92,8 +92,8 @@ First of all 3D data is only viewable in 2D if combined with a suitable projecti
Second, the expectations around how to navigate a 2D visualization are quite different from how I expect to navigate a 3D visualization.
### Registering
-Registration happens on startup in the viewer owned `SpaceViewClassRegistry`.
-The viewer registers all builtin Space View Classes and users may add new types at any point in time.
+Registration happens on startup in the Viewer owned `SpaceViewClassRegistry`.
+The Viewer registers all builtin Space View Classes and users may add new types at any point in time.
### Systems
diff --git a/docs/README.md b/docs/README.md
index 5a2bd6173fa39..ff63007da85a5 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,4 +1,4 @@
-This is the high-level documentation for rerun that is hosted at https://www.rerun.io/docs
+This is the high-level documentation for Rerun that is hosted at https://www.rerun.io/docs
## Other documentation
API-level documentation is built from source-code. Python lives at [rerun_py](https://github.com/rerun-io/rerun/tree/main/rerun_py) and Rust in the individual [crates](https://github.com/rerun-io/rerun/tree/main/crates).
diff --git a/docs/content/concepts/annotation-context.md b/docs/content/concepts/annotation-context.md
index 1f53c7a79a504..cd89d4cee311c 100644
--- a/docs/content/concepts/annotation-context.md
+++ b/docs/content/concepts/annotation-context.md
@@ -33,7 +33,7 @@ In that case, the entire detected pose/skeleton is assigned a Class ID and each
To help you more with this (and similar) use-case(s), you can also define connections between keypoints
as part of your annotation class description.
-The viewer will draw the connecting lines for all connected keypoints whenever that class is used.
+The Viewer will draw the connecting lines for all connected keypoints whenever that class is used.
Just as with labels and colors this allows you to use the same connection information on any instance that class in your scene.
Keypoints are currently only applicable to 2D and 3D points.
diff --git a/docs/content/concepts/apps-and-recordings.md b/docs/content/concepts/apps-and-recordings.md
index a336b8788e28c..4cc5115f0aca1 100644
--- a/docs/content/concepts/apps-and-recordings.md
+++ b/docs/content/concepts/apps-and-recordings.md
@@ -4,10 +4,10 @@ order: 500
---
## Application ID
-When you initialize rerun with [`rr.init`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.init) you need to set an Application ID.
+When you initialize Rerun with [`rr.init`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.init) you need to set an Application ID.
Your Rerun Viewer will store the Blueprint based on this Application ID.
-This means that you can run your app and set up the viewer to your liking,
+This means that you can run your app and set up the Viewer to your liking,
and then when you run the app again the Rerun Viewer will remember how you set up your Space Views etc.
## Recording ID
diff --git a/docs/content/concepts/batches.md b/docs/content/concepts/batches.md
index 8348c8a3563c8..ecca02d3b3c31 100644
--- a/docs/content/concepts/batches.md
+++ b/docs/content/concepts/batches.md
@@ -37,7 +37,7 @@ When using batched entities there are a few restrictions:
Rerun lets you choose which components in an entity you want to log at any point in time. If you don't log to a
component, then in general it is not updated. For example, if you log a point cloud with positions and colors and then
-later log just new positions, when the viewer displays that point cloud it will still look up the *last* colors that
+later log just new positions, when the Viewer displays that point cloud it will still look up the *last* colors that
were logged (we refer to this as the *latest at* semantics).
This can be quite convenient since updating different components at different times puts far fewer restrictions on the
diff --git a/docs/content/concepts/blueprint.md b/docs/content/concepts/blueprint.md
index 6b8668facefe2..5dd6d40c3fb3e 100644
--- a/docs/content/concepts/blueprint.md
+++ b/docs/content/concepts/blueprint.md
@@ -17,9 +17,9 @@ combine to produce what you see: the "recording" and the "blueprint."
Both of these pieces are crucial -- without the recording there is nothing to
show, and without the blueprint there is no way to show it. Even if you have
-used Rerun before without explicitly loading a blueprint, the viewer was
+used Rerun before without explicitly loading a blueprint, the Viewer was
actually creating one for you. Without a blueprint, there is literally nothing
-for the viewer to display.
+for the Viewer to display.
## Loose coupling
@@ -35,7 +35,7 @@ data in different ways.
## What the blueprint controls
-Every aspect of what the viewer displays is controlled by the blueprint. This
+Every aspect of what the Viewer displays is controlled by the blueprint. This
includes the type and content of the different views, the organization and
layout of the different containers, and the configuration and styling properties
of the individual data visualizers.
@@ -52,7 +52,7 @@ all state to the blueprint.)
Blueprints may originate from multiple sources.
-- The "current blueprint" for a given application ID is the one that is used by the viewer to display data at any given time. It is updated for each change made to the visualization within the viewer, and may be saved to a blueprint file at any time.
+- The "current blueprint" for a given application ID is the one that is used by the Viewer to display data at any given time. It is updated for each change made to the visualization within the viewer, and may be saved to a blueprint file at any time.
- The "default blueprint" is a snapshot that is set or updated when a blueprint is received from code or loaded from a file. The current blueprint may be reset to default blueprint at any time by using the "reset" button in the blueprint panel's header.
- The "heuristic blueprint" is an automatically-produced blueprint based on the recording data. When no default blueprint is available, the heuristic blueprint is used when resetting the current blueprint. It is also possible to reset to the heuristic blueprint in the selection panel after selecting an application.
@@ -69,18 +69,18 @@ Although the Rerun APIs for working with blueprint may look different from the
regular logging APIs, they are really just syntactic sugar for logging a
collection of blueprint-specific archetypes to a separate blueprint stream.
-Furthermore, when you make any change to the viewer in the UI, what is actually
-happening is the viewer is creating a new blueprint event and adding it to the
+Furthermore, when you make any change to the Viewer in the UI, what is actually
+happening is the Viewer is creating a new blueprint event and adding it to the
end of the blueprint timeline in the blueprint store.
## Viewer operation
Outside of caching that exists primarily for performance reasons, the viewer
persists very little state frame-to-frame. The goal is for the output of the
-viewer to be a deterministic function of the blueprint and the recording.
+Viewer to be a deterministic function of the blueprint and the recording.
-Every frame, the viewer starts with a minimal context of an "active" blueprint,
-and an "active" recording. The viewer then uses the current revision on the
+Every frame, the Viewer starts with a minimal context of an "active" blueprint,
+and an "active" recording. The Viewer then uses the current revision on the
blueprint timeline to query the container and space-view archetypes from the
blueprint store. The space-view archetypes, in turn, specify the paths types
that need to be queried from the recording store in order to render the views.
@@ -91,12 +91,12 @@ the blueprint using the next revision on the blueprint timeline.
## Blueprint architecture motivation
Although this architecture adds some complexity and indirection, the fact that
-the viewer stores all of its meaningful frame-to-frame state in a structured
+the Viewer stores all of its meaningful frame-to-frame state in a structured
blueprint data-store has several advantages:
-- Anything you modify in the viewer can be saved and shared as a blueprint.
+- Anything you modify in the Viewer can be saved and shared as a blueprint.
- A blueprint can be produced programmatically using just the Rerun SDK without
- a dependency on the viewer libraries.
+ a dependency on the Viewer libraries.
- The blueprint is capable of representing any data that a recording can
represent. This means in the future, blueprint-sourced data overrides will
be just as expressive as any logged data.
diff --git a/docs/content/concepts/entity-component.md b/docs/content/concepts/entity-component.md
index 00681be14c342..16554660a7c18 100644
--- a/docs/content/concepts/entity-component.md
+++ b/docs/content/concepts/entity-component.md
@@ -22,7 +22,7 @@ Additionally, the Rerun SDKs expose two additional concepts:
### Logging and viewing data
-All the data that you log within rerun is mapped to the concepts of entities and components.
+All the data that you log within Rerun is mapped to the concepts of entities and components.
For example, consider the case of logging a point:
```python
@@ -35,15 +35,15 @@ Internally, this archetype builds a set of, in this case, two components: [`Posi
Later, the Space View for spatial types queries the data store for all the entities that have a `Position2D` component.
In this case it would find the "my_point" entity. This query additionally returns the `Color` component because that
-component is associated with the same entity. These two components are recognized as corresponding to the `Points2D` archetype, which informs the viewer on how to display the corresponding entity.
+component is associated with the same entity. These two components are recognized as corresponding to the `Points2D` archetype, which informs the Viewer on how to display the corresponding entity.
See the [Types](../reference/types.md) reference for a list of archetypes, components, and datatypes.
### Adding custom data
Although both the SDKs' archetype objects and the space view are based on the same archetype definition (and are actually implemented using code that is automatically generated based on that definition), they both operate on arbitrary collection
-of components. Neither the SDKs nor the viewer enforce or require that an entity should contain a *specific* set of component.
-The Rerun viewer will display any data in a generic form, but its space views will only work on sets of components it can
+of components. Neither the SDKs nor the Viewer enforce or require that an entity should contain a *specific* set of component.
+The Rerun Viewer will display any data in a generic form, but its space views will only work on sets of components it can
make sense of.
Your entity could have any number of additional components as well. This isn't a problem. Any components that
@@ -71,4 +71,4 @@ of one or more components associated with that entity.
## ECS systems
There is a third concept we haven't touched on: *systems* are processes which operate on the entities based on the components they possess.
-Rerun is still settling on the exact form of formalized systems and outside of Rust viewer code it is not yet possible to write your own systems. However, space views work under the hood using a variety of systems. For more information see the [Extend the Viewer in Rust](../howto/extend/extend-ui.md) section.
+Rerun is still settling on the exact form of formalized systems and outside of Rust Viewer code it is not yet possible to write your own systems. However, space views work under the hood using a variety of systems. For more information see the [Extend the Viewer in Rust](../howto/extend/extend-ui.md) section.
diff --git a/docs/content/concepts/entity-path.md b/docs/content/concepts/entity-path.md
index b80c9cf013364..7de4f37414c4c 100644
--- a/docs/content/concepts/entity-path.md
+++ b/docs/content/concepts/entity-path.md
@@ -8,7 +8,7 @@ As mentioned in the [Entity Component](entity-component.md) overview, all entiti
The first argument to the `log()` function is this path. Each time you log to a specific entity path you will update the entity, i.e. log a new instance of it along the timeline.
-It is possible to log multiple types of archetypes on the same entity path, but you should generally avoid mixing different kinds of geometric primitive. For example, logging a [`Points3D`](../reference/types/archetypes/points3d.md) point cloud on an entity path where a [`Mesh3D`](../reference/types/archetypes/mesh3d.md) was previously logged would overwrite the mesh's [`Position3D`](../reference/types/components/position3d.md) component with the point cloud's, but would leave the `triangle_indices` component untouched. The Rerun viewer would likely be unable to display the result. See the [Entity Component](entity-component.md) section for more information.
+It is possible to log multiple types of archetypes on the same entity path, but you should generally avoid mixing different kinds of geometric primitive. For example, logging a [`Points3D`](../reference/types/archetypes/points3d.md) point cloud on an entity path where a [`Mesh3D`](../reference/types/archetypes/mesh3d.md) was previously logged would overwrite the mesh's [`Position3D`](../reference/types/components/position3d.md) component with the point cloud's, but would leave the `triangle_indices` component untouched. The Rerun Viewer would likely be unable to display the result. See the [Entity Component](entity-component.md) section for more information.
There _are_ valid reasons to logs different kinds of archetypes to the same entity path, though. For example, it's common to log a [`Transform3D`](../reference/types/archetypes/transform3d.md) along with some geometry it relates to (see the [Spaces and Transforms](spaces-and-transforms.md) for more info).
diff --git a/docs/content/getting-started/configure-the-viewer.md b/docs/content/getting-started/configure-the-viewer.md
index 28425ffba7cec..5c8ea41b716af 100644
--- a/docs/content/getting-started/configure-the-viewer.md
+++ b/docs/content/getting-started/configure-the-viewer.md
@@ -3,13 +3,13 @@ title: Configure the viewer
order: 600
---
-By default, the Rerun viewer uses heuristics to automatically determine an appropriate
+By default, the Rerun Viewer uses heuristics to automatically determine an appropriate
layout given the data that you provide. However, there will always be situations
where the heuristic results don't match the needs of a particular use-case.
-Fortunately, almost all aspects of the viewer can be configured via the [Blueprint](../reference/viewer/blueprint.md).
+Fortunately, almost all aspects of the Viewer can be configured via the [Blueprint](../reference/viewer/blueprint.md).
-The viewer Blueprint completely determines:
+The Viewer Blueprint completely determines:
- What contents are included in each view
- The type of view used to visualize the data
diff --git a/docs/content/getting-started/configure-the-viewer/interactively.md b/docs/content/getting-started/configure-the-viewer/interactively.md
index ae8ea12049ed9..9dba5de2562d4 100644
--- a/docs/content/getting-started/configure-the-viewer/interactively.md
+++ b/docs/content/getting-started/configure-the-viewer/interactively.md
@@ -1,5 +1,5 @@
---
-title: Configure the viewer interactively
+title: Configure the Viewer interactively
order: 1
---
@@ -18,15 +18,15 @@ The Rerun Viewer is configurable directly through the UI itself.
The central part is known as the viewport and contains the various views displaying the data.
-The left panel of the viewer is the "Blueprint Panel". It shows a visual tree view representing
+The left panel of the Viewer is the "Blueprint Panel". It shows a visual tree view representing
the contents of the current blueprint.
-The right panel of the viewer is the "Selection Panel" this panel allows you to configure
+The right panel of the Viewer is the "Selection Panel" this panel allows you to configure
specific blueprint properties of the currently selected element.
The blueprint defines the structure, the type of views, and their content in the viewport. Changing the content of the viewport is done by editing the blueprint.
-After editing the viewer you may want to [save or share the blueprint](./save-and-load.md).
+After editing the Viewer you may want to [save or share the blueprint](./save-and-load.md).
## Configuring the view hierarchy
diff --git a/docs/content/getting-started/configure-the-viewer/save-and-load.md b/docs/content/getting-started/configure-the-viewer/save-and-load.md
index 8f57af96fff09..2a37826fc90aa 100644
--- a/docs/content/getting-started/configure-the-viewer/save-and-load.md
+++ b/docs/content/getting-started/configure-the-viewer/save-and-load.md
@@ -1,9 +1,9 @@
---
-title: Save and load viewer configuration files
+title: Save and load Viewer configuration files
order: 2
---
-If you have made changes to the viewer and you would like to save or share them,
+If you have made changes to the Viewer and you would like to save or share them,
you can do so by saving your blueprint to an `.rbl` file.
## Saving a blueprint
diff --git a/docs/content/getting-started/configure-the-viewer/through-code-tutorial.md b/docs/content/getting-started/configure-the-viewer/through-code-tutorial.md
index dcd6ce83518f5..be972848a8cb7 100644
--- a/docs/content/getting-started/configure-the-viewer/through-code-tutorial.md
+++ b/docs/content/getting-started/configure-the-viewer/through-code-tutorial.md
@@ -1,5 +1,5 @@
---
-title: Configure the viewer through code
+title: Configure the Viewer through code
order: 3
---
@@ -29,7 +29,7 @@ we will completely change the way the data is presented.
We start by creating a new virtual environment and installing the Rerun SDK along with the dependencies
we will use in this example.
-On linux or mac:
+On Linux or mac:
```bash
mkdir stocks_example
@@ -356,7 +356,7 @@ When you run the script you will see that the data from the peaks subtree is no
### Programmatic layouts
-Since these layouts are created by executing python code, they can also be generated programmatically.
+Since these layouts are created by executing Python code, they can also be generated programmatically.
For example, we can create a create a separate view for every piece of data we were interested in.
Setting this up by hand would be extremely tedious.
diff --git a/docs/content/getting-started/data-in/cpp.md b/docs/content/getting-started/data-in/cpp.md
index 127f8a4a6ea79..7ece1ef081a3e 100644
--- a/docs/content/getting-started/data-in/cpp.md
+++ b/docs/content/getting-started/data-in/cpp.md
@@ -29,7 +29,7 @@ And then to run it on Linux/Mac:
./build/example_dna
```
-and windows respectively:
+and Windows respectively:
```
build\Debug\example_dna.exe
@@ -92,7 +92,7 @@ To get going we want to create a [`RecordingStream`](https://github.com/rerun-io
When creating the `RecordingStream` we also need to specify the name of the application we're working on
by setting it's `ApplicationId`.
-We then use the stream to spawn a new rerun viewer via [`spawn`](https://github.com/rerun-io/rerun/blob/d962b34b07775bbacf14883d683cca6746852b6a/rerun_cpp/src/rerun/recording_stream.hpp#L151).
+We then use the stream to spawn a new Rerun Viewer via [`spawn`](https://github.com/rerun-io/rerun/blob/d962b34b07775bbacf14883d683cca6746852b6a/rerun_cpp/src/rerun/recording_stream.hpp#L151).
Add our initial `main` to `main.cpp`:
@@ -117,7 +117,7 @@ cmake --build build -j
./build/example_dna
```
-When everything finishes compiling, an empty Rerun viewer should be spawned:
+When everything finishes compiling, an empty Rerun Viewer should be spawned:
@@ -184,7 +184,7 @@ Under the hood, the Rerun C++ SDK logs individual _components_ like positions, c
and radii. Archetypes are just one high-level, convenient way of building such collections of components. For advanced use
cases, it's possible to add custom components to archetypes, or even log entirely custom sets of components, bypassing
archetypes altogether.
-For more information on how the rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
+For more information on how the Rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
Notably, the [`RecordingStream::log`](https://github.com/rerun-io/rerun/blob/d962b34b07775bbacf14883d683cca6746852b6a/rerun_cpp/src/rerun/recording_stream.hpp#L236) method
will handle any data type that implements the [`AsComponents`](https://github.com/rerun-io/rerun/blob/latest/rerun_cpp/src/rerun/as_components.hpp) trait, making it easy to add your own data.
diff --git a/docs/content/getting-started/data-in/python.md b/docs/content/getting-started/data-in/python.md
index a1c537128b185..6387b5f918ade 100644
--- a/docs/content/getting-started/data-in/python.md
+++ b/docs/content/getting-started/data-in/python.md
@@ -44,7 +44,7 @@ Among other things, a stable [`ApplicationId`](https://ref.rerun.io/docs/python/
Check out the reference to learn more about how Rerun deals with [applications and recordings](../../concepts/apps-and-recordings.md).
-## Starting the viewer
+## Starting the Viewer
Next up, we want to spawn the [Rerun Viewer](../../reference/viewer/overview.md) itself.
@@ -54,7 +54,7 @@ To do this, you can add the line:
rr.spawn()
```
-Now you can run your application just as you would any other python script:
+Now you can run your application just as you would any other Python script:
```
(venv) $ python dna_example.py
@@ -70,8 +70,8 @@ And with that, we're ready to start sending out data:
-By default, the SDK will start a viewer in another process and automatically pipe the data through.
-There are other means of sending data to a viewer as we'll see at the end of this section, but for now this default will work great as we experiment.
+By default, the SDK will start a Viewer in another process and automatically pipe the data through.
+There are other means of sending data to a Viewer as we'll see at the end of this section, but for now this default will work great as we experiment.
## Logging our first points
@@ -81,7 +81,7 @@ Add the following to your file:
```python
NUM_POINTS = 100
-# points and colors are both np.array((NUM_POINTS, 3))
+# Points and colors are both np.array((NUM_POINTS, 3))
points1, colors1 = build_color_spiral(NUM_POINTS)
points2, colors2 = build_color_spiral(NUM_POINTS, angular_offset=tau*0.5)
@@ -90,7 +90,7 @@ rr.log("dna/structure/right", rr.Points3D(points2, colors=colors2, radii=0.08))
```
Run your script once again and you should now see this scene in the viewer.
-Note that if the viewer was still running, Rerun will simply connect to this existing session and replace the data with this new [_recording_](../../concepts/apps-and-recordings.md).
+Note that if the Viewer was still running, Rerun will simply connect to this existing session and replace the data with this new [_recording_](../../concepts/apps-and-recordings.md).
@@ -119,7 +119,7 @@ and radii. Archetypes are just one high-level, convenient way of building such c
cases, it's possible to add custom components to archetypes, or even log entirely custom sets of components, bypassing
archetypes altogether.
-For more information on how the rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
+For more information on how the Rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
Our [Python SDK](https://ref.rerun.io/docs/python) integrates with the rest of the Python ecosystem: the points and colors returned by [`build_color_spiral`](https://ref.rerun.io/docs/python/stable/common/demo_utilities/#rerun.utilities.data.build_color_spiral) in this example are vanilla `numpy` arrays.
Rerun takes care of mapping those arrays to actual Rerun components depending on the context (e.g. we're calling [`rr.Points3D`](https://ref.rerun.io/docs/python/stable/common/archetypes/#rerun.archetypes.Points3D) in this case).
@@ -286,7 +286,7 @@ Rerun offers several solutions for such use cases.
### Logging data over the network
-At any time, you can start a Rerun Viewer by running `rerun`. This viewer is in fact a server that's ready to accept data over TCP (it's listening on `0.0.0.0:9876` by default).
+At any time, you can start a Rerun Viewer by running `rerun`. This Viewer is in fact a server that's ready to accept data over TCP (it's listening on `0.0.0.0:9876` by default).
On the logger side, simply use [`rr.connect`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.connect) instead of [`rr.spawn`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.spawn) to start sending the data over to any TCP address.
diff --git a/docs/content/getting-started/data-in/rust.md b/docs/content/getting-started/data-in/rust.md
index 222e5183bbc4d..dce8946990b0a 100644
--- a/docs/content/getting-started/data-in/rust.md
+++ b/docs/content/getting-started/data-in/rust.md
@@ -43,9 +43,9 @@ use rerun::{
};
```
-## Starting the viewer
+## Starting the Viewer
-Just run `rerun` to start the [Rerun Viewer](../../reference/viewer/overview.md). It will wait for your application to log some data to it. This viewer is in fact a server that's ready to accept data over TCP (it's listening on `0.0.0.0:9876` by default).
+Just run `rerun` to start the [Rerun Viewer](../../reference/viewer/overview.md). It will wait for your application to log some data to it. This Viewer is in fact a server that's ready to accept data over TCP (it's listening on `0.0.0.0:9876` by default).
Checkout `rerun --help` for more options.
@@ -61,7 +61,7 @@ Checkout `rerun --help` for more options.
To get going we want to create a [`RecordingStream`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html):
We can do all of this with the [`rerun::RecordingStreamBuilder::new`](https://docs.rs/rerun/latest/rerun/struct.RecordingStreamBuilder.html#method.new) function which allows us to name the dataset we're working on by setting its [`ApplicationId`](https://docs.rs/rerun/latest/rerun/struct.ApplicationId.html).
-We then connect it to the already running viewer via [`connect`](https://docs.rs/rerun/latest/rerun/struct.RecordingStreamBuilder.html#method.connect), returning the `RecordingStream` upon success.
+We then connect it to the already running Viewer via [`connect`](https://docs.rs/rerun/latest/rerun/struct.RecordingStreamBuilder.html#method.connect), returning the `RecordingStream` upon success.
```rust
fn main() -> Result<(), Box> {
@@ -131,7 +131,7 @@ Under the hood, the Rerun [Rust SDK](https://ref.rerun.io/docs/rust) logs indivi
and radii. Archetypes are just one high-level, convenient way of building such collections of components. For advanced use
cases, it's possible to add custom components to archetypes, or even log entirely custom sets of components, bypassing
archetypes altogether.
-For more information on how the rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
+For more information on how the Rerun data model works, refer to our section on [Entities and Components](../../concepts/entity-component.md).
Notably, the [`RecordingStream::log`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html#method.log) method
@@ -341,10 +341,10 @@ You can also save a recording (or a portion of it) as you're visualizing it, dir
β οΈ [RRD files don't yet handle versioning!](https://github.com/rerun-io/rerun/issues/873) β οΈ
-### Spawning the viewer from your process
+### Spawning the Viewer from your process
-If the Rerun Viewer is [installed](../installing-viewer.md) and available in your `PATH`, you can use [`RecordingStream::spawn`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html#method.spawn) to automatically start a viewer in a new process and connect to it over TCP.
-If an external viewer was already running, `spawn` will connect to that one instead of spawning a new one.
+If the Rerun Viewer is [installed](../installing-viewer.md) and available in your `PATH`, you can use [`RecordingStream::spawn`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html#method.spawn) to automatically start a Viewer in a new process and connect to it over TCP.
+If an external Viewer was already running, `spawn` will connect to that one instead of spawning a new one.
```rust
fn main() -> Result<(), Box> {
@@ -357,7 +357,7 @@ fn main() -> Result<(), Box> {
}
```
-Alternatively, you can use [`rerun::native_viewer::show`](https://docs.rs/rerun/latest/rerun/native_viewer/fn.show.html) to start a viewer on the main thread (for platform-compatibility reasons) and feed it data from memory.
+Alternatively, you can use [`rerun::native_viewer::show`](https://docs.rs/rerun/latest/rerun/native_viewer/fn.show.html) to start a Viewer on the main thread (for platform-compatibility reasons) and feed it data from memory.
This requires the `native_viewer` feature to be enabled in `Cargo.toml`:
```toml
@@ -376,7 +376,7 @@ let (rec, storage) = rerun::RecordingStreamBuilder::new("rerun_example_dna_abacu
rerun::native_viewer::show(storage.take())?;
```
-The viewer will block the main thread until it is closed.
+The Viewer will block the main thread until it is closed.
### Closing
diff --git a/docs/content/getting-started/installing-viewer.md b/docs/content/getting-started/installing-viewer.md
index f224ae489cd7d..985e7320b54ec 100644
--- a/docs/content/getting-started/installing-viewer.md
+++ b/docs/content/getting-started/installing-viewer.md
@@ -24,13 +24,13 @@ You'll additionally need to install the Viewer, see [below](#installing-the-view
- `pip install rerun-sdk` via pip
- `conda install -c conda-forge rerun-sdk` via Conda
-Either way this includes both the SDK & the viewer and you're ready to go!
+Either way this includes both the SDK & the Viewer and you're ready to go!
### Rust
Add the [Rerun crate](https://crates.io/crates/rerun) using `cargo add rerun`. You'll additionally need to install the Viewer, see [below](#installing-the-viewer).
-## Installing the viewer
+## Installing the Viewer
The [Viewer](../reference/viewer/overview.md) can be installed independent of the library language you're using.
Make sure that your library version matches the version of the Viewer you're using.
diff --git a/docs/content/getting-started/navigating-the-viewer.md b/docs/content/getting-started/navigating-the-viewer.md
index 080e41865d464..b0953330ebef0 100644
--- a/docs/content/getting-started/navigating-the-viewer.md
+++ b/docs/content/getting-started/navigating-the-viewer.md
@@ -6,10 +6,10 @@ order: 500
This guide will familiarize you with the basics of using the Rerun Viewer with an example dataset. By the end you should
be comfortable with the following topics:
-- [Launching the demo](#launching-the-demo)
-- [The viewer panels](#the-viewer-panels)
-- [Exploring data](#exploring-data)
-- [Navigating the timeline](#navigating-the-timeline)
+* [Launching the demo](#launching-the-demo)
+* [The Viewer panels](#the-viewer-panels)
+* [Exploring data](#exploring-data)
+* [Navigating the timeline](#navigating-the-timeline)
Here is a preview of the dataset that we will be working with:
@@ -75,7 +75,7 @@ Click on the "View Examples" button, and then chose the "Structure from Motion"
Depending on your display size, the panels may have a different arrangements. This does not yet look like the initial
preview, but the remainder of this guide will walk you through how to configure the Viewer to meet your needs.
-## The viewer panels
+## The Viewer panels
There are 4 main parts to this window:
@@ -197,7 +197,7 @@ playback the Rerun data as you might with a video file.
Try out the following:
-- Use the arrow buttons (or arrow keys on your keyboard) to step forward and backwards by a single frame
+- Use the arrow buttons (or Arrow keys on your keyboard) to step forward and backwards by a single frame
- Click play to watch the data update on its own
- Hit space bar to stop and start the playback
- Hold shift and drag in the timeline to select a region
diff --git a/docs/content/getting-started/quick-start.md b/docs/content/getting-started/quick-start.md
index ee1083987d328..7dc9f45ebdf5d 100644
--- a/docs/content/getting-started/quick-start.md
+++ b/docs/content/getting-started/quick-start.md
@@ -6,7 +6,7 @@ order: 200
Rerun is an SDK and engine for visualizing and interacting with multimodal data
streams.
-The primary way to get data into the Rerun viewer is to write code in
+The primary way to get data into the Rerun Viewer is to write code in
one of the supported languages. To learn more about installing Rerun and
the basics of getting started, choose your language:
diff --git a/docs/content/getting-started/quick-start/cpp.md b/docs/content/getting-started/quick-start/cpp.md
index ca6a580ec582b..baafcbc5ad7d0 100644
--- a/docs/content/getting-started/quick-start/cpp.md
+++ b/docs/content/getting-started/quick-start/cpp.md
@@ -105,7 +105,7 @@ cmake --build build -j
./build/example_minimal
```
-Once everything finishes compiling, the application will spawn the rerun viewer and send the data to it:
+Once everything finishes compiling, the application will spawn the Rerun Viewer and send the data to it:
@@ -115,7 +115,7 @@ Once everything finishes compiling, the application will spawn the rerun viewer
-## Using the viewer
+## Using the Viewer
Try out the following to interact with the viewer:
diff --git a/docs/content/getting-started/quick-start/python.md b/docs/content/getting-started/quick-start/python.md
index 0c051713e2094..c70a6d999e5f1 100644
--- a/docs/content/getting-started/quick-start/python.md
+++ b/docs/content/getting-started/quick-start/python.md
@@ -15,7 +15,7 @@ $ pip3 install rerun-sdk
You are now ready to start logging and visualizing data.
-## Trying out the viewer
+## Trying out the Viewer
Rerun comes packaged with integrated examples to make it easy to explore the viewer. Launch it with:
@@ -55,7 +55,7 @@ would like._
- [open an issue](https://github.com/rerun-io/rerun/issues/new/choose).
- Or [join the Discord server](https://discord.gg/PXtCgFBSmH).
-## Using the viewer
+## Using the Viewer
Try out the following to interact with the viewer:
@@ -75,7 +75,7 @@ more detail later in the [Viewer Walkthrough](../navigating-the-viewer.md)
After exploring a built-in example, let's create some data ourselves. We will start with an
extremely simplified version of this dataset that just logs 1 dimension of points instead of 3.
-Create a new python script with the following code:
+Create a new Python script with the following code:
```python
import rerun as rr # NOTE: `rerun`, not `rerun-sdk`!
diff --git a/docs/content/getting-started/quick-start/rust.md b/docs/content/getting-started/quick-start/rust.md
index 217ae3674c344..45d1beb1a86a5 100644
--- a/docs/content/getting-started/quick-start/rust.md
+++ b/docs/content/getting-started/quick-start/rust.md
@@ -7,7 +7,7 @@ order: 3
The Rerun SDK for Rust requires a working installation of Rust 1.76+.
-After you have [installed the viewer](../installing-viewer.md#installing-the-viewer) you can simply add [the rerun crate](https://crates.io/crates/rerun) to your project with `cargo add rerun`.
+After you have [installed the viewer](../installing-viewer.md#installing-the-viewer) you can simply add [the Rerun crate](https://crates.io/crates/rerun) to your project with `cargo add rerun`.
Let's try it out in a brand new Rust project:
@@ -57,7 +57,7 @@ Once everything finishes compiling, you will see the points in the Rerun Viewer:
-## Using the viewer
+## Using the Viewer
Try out the following to interact with the viewer:
diff --git a/docs/content/getting-started/what-is-rerun.md b/docs/content/getting-started/what-is-rerun.md
index bf6eac4e8aa50..949480a4af516 100644
--- a/docs/content/getting-started/what-is-rerun.md
+++ b/docs/content/getting-started/what-is-rerun.md
@@ -3,7 +3,7 @@ title: What is Rerun?
order: 0
---
-Rerun is an SDK and viewer for visualizing and interacting with multimodal data streams.
+Rerun is an SDK and Viewer for visualizing and interacting with multimodal data streams.
The SDK lets you send data from anywhere, and the viewer,
which consists of an in-memory database and a visualization engine,
collects the data and aligns it so that you can scroll back and forth in time to understand what happened.
diff --git a/docs/content/howto.md b/docs/content/howto.md
index 30450315f36bd..b20aa50baa96f 100644
--- a/docs/content/howto.md
+++ b/docs/content/howto.md
@@ -4,7 +4,7 @@ order: 1
---
Guides for using Rerun in more advanced ways.
- - [Configure the viewer through code](howto/configure-viewer-through-code.md)
+ - [Configure the Viewer through code](howto/configure-viewer-through-code.md)
- [Create a fixed-window plot](howto/fixed-window-plot.md)
- [Limit memory usage](howto/limit-ram.md)
- [Share recordings across multiple processes](howto/shared-recordings.md)
diff --git a/docs/content/howto/configure-viewer-through-code.md b/docs/content/howto/configure-viewer-through-code.md
index 8664db4a3bd9f..624937df54f42 100644
--- a/docs/content/howto/configure-viewer-through-code.md
+++ b/docs/content/howto/configure-viewer-through-code.md
@@ -1,5 +1,5 @@
---
-title: Configure the viewer through code
+title: Configure the Viewer through code
order: 100
---
@@ -11,16 +11,16 @@ Future releases will add support for the full scope of blueprint. See issues: [#
## Blueprint API overview
-All blueprint APIs are in the [`rerun.blueprint`](https://ref.rerun.io/docs/python/stable/common/blueprint_apis/) namespace. In our python examples, we typically import this using the `rrb` alias:
+All blueprint APIs are in the [`rerun.blueprint`](https://ref.rerun.io/docs/python/stable/common/blueprint_apis/) namespace. In our Python examples, we typically import this using the `rrb` alias:
```python
import rerun.blueprint as rrb
```
-The python blueprint API is declarative and object-centric. There are 3 main types of blueprint objects you will
+The Python blueprint API is declarative and object-centric. There are 3 main types of blueprint objects you will
encounter:
-- `Blueprint`: The root object that represents the entire viewer layout.
+- `Blueprint`: The root object that represents the entire Viewer layout.
- `Container`: A layout object that contains other containers or views.
- `SpaceView`: A view object that represents a single view of the data.
@@ -30,7 +30,7 @@ Both containers and spaceviews should be used via typed subclasses instead.:
- `SpaceView` has subclasses: `BarChartView`, `Spatial2DView`, `Spatial3DView`, `TensorView`,
`TextDocumentView`, `TextLogView`, and `TimeSeriesView`.
-These paths can be combined hierarchically to create a complex viewer layout.
+These paths can be combined hierarchically to create a complex Viewer layout.
For example:
@@ -46,7 +46,7 @@ my_blueprint = rrb.Blueprint(
)
```
-## Sending the blueprint to the viewer
+## Sending the blueprint to the Viewer
To provide a blueprint, simply pass it to either `init` or `connect` using the `default_blueprint`
parameter.
@@ -73,7 +73,7 @@ rr.connect(default_blueprint=my_blueprint)
## Activating the default blueprint
-Just like the viewer can store many different recordings internally, it can also
+Just like the Viewer can store many different recordings internally, it can also
store many different blueprints. For each `application_id` in the viewer, are two
particularly important blueprints: the "default blueprint" and the "active blueprint".
@@ -253,12 +253,12 @@ rrb.Blueprint(
The blueprint has two additional parameters that influence the behavior of the viewer:
-- `auto_space_views` controls whether the viewer will automatically create space views for entities that are not explicitly included in the blueprint.
-- `auto_layout` controls whether the viewer should automatically layout the containers when introducing new space-views.
+- `auto_space_views` controls whether the Viewer will automatically create space views for entities that are not explicitly included in the blueprint.
+- `auto_layout` controls whether the Viewer should automatically layout the containers when introducing new space-views.
If you pass in your own `SpaceView` or `Container` objects, these will both default to `False` so that the Blueprint
you get is exactly what you specify. Otherwise they will default to `True` so that you will still get content (this
-matches the default behavior of the viewer if no blueprint is provided).
+matches the default behavior of the Viewer if no blueprint is provided).
This means that:
diff --git a/docs/content/howto/embed-rerun-viewer.md b/docs/content/howto/embed-rerun-viewer.md
index 428af8305a713..3d8c461c5fe50 100644
--- a/docs/content/howto/embed-rerun-viewer.md
+++ b/docs/content/howto/embed-rerun-viewer.md
@@ -23,9 +23,9 @@ For instance:
```
-## Using the JavaScript Package
+## Using the JavaScript package
-We offer JavaScript bindings to the Rerun Viewer via NPM. This method provides control over the viewer but requires a JavaScript web application setup with a bundler.
+We offer JavaScript bindings to the Rerun Viewer via NPM. This method provides control over the Viewer but requires a JavaScript web application setup with a bundler.
Various packages are available:
- [@rerun-io/web-viewer](https://www.npmjs.com/package/@rerun-io/web-viewer): Suitable for JS apps without a framework or frameworks without dedicated packages.
@@ -33,7 +33,7 @@ Various packages are available:
> βΉοΈ Note: The stability of the `rrd` format is still evolving, so the package version corresponds to the supported Rerun SDK version. Therefore, `@rerun-io/web-viewer@0.10.0` can only connect to a data source (`.rrd` file, WebSocket connection, etc.) originating from a Rerun SDK with version `0.10.0`!
-### Basic Example
+### Basic example
To begin, install the package ([@rerun-io/web-viewer](https://www.npmjs.com/package/@rerun-io/web-viewer)) from NPM:
@@ -55,7 +55,7 @@ const viewer = new WebViewer();
await viewer.start(rrdUrl, parentElement);
```
-The viewer creates a `` on the provided `parentElement` and executes within it.
+The Viewer creates a `` on the provided `parentElement` and executes within it.
The first argument for `start` determines the recordings to open in the viewer. It can be:
- `null` for an initially empty viewer
diff --git a/docs/content/howto/extend/extend-ui.md b/docs/content/howto/extend/extend-ui.md
index 5b3cae728e338..5e7272c3028ac 100644
--- a/docs/content/howto/extend/extend-ui.md
+++ b/docs/content/howto/extend/extend-ui.md
@@ -4,7 +4,7 @@ order: 2
description: How to extend the Rerun Viewer UI using Rust and egui
---
-## Custom UI embedding the viewer
+## Embedding custom UI in the Viewer
![The Rerun Viewer, extended with a custom panel to the right](https://github.com/rerun-io/rerun/assets/1148717/cbbad63e-9b18-4e54-bafe-b6ffd723f63e)
diff --git a/docs/content/howto/limit-ram.md b/docs/content/howto/limit-ram.md
index 52d49df008a97..c6c80264618f0 100644
--- a/docs/content/howto/limit-ram.md
+++ b/docs/content/howto/limit-ram.md
@@ -1,7 +1,7 @@
---
title: Limit memory usage
order: 200
-description: How to limit the memory used by the Rerun viewer so that it doesn't run out of RAM.
+description: How to limit the memory used by the Rerun Viewer so that it doesn't run out of RAM.
---
### --memory-limit
diff --git a/docs/content/howto/notebook.md b/docs/content/howto/notebook.md
index dc320b32047d7..321cf4f94dd6e 100644
--- a/docs/content/howto/notebook.md
+++ b/docs/content/howto/notebook.md
@@ -4,7 +4,7 @@ order: 600
description: How to embed Rerun in notebooks like Jupyter or Colab
---
-Starting with version 0.15.1, Rerun has improved support for embedding the Rerun viewer directly within IPython-style
+Starting with version 0.15.1, Rerun has improved support for embedding the Rerun Viewer directly within IPython-style
notebooks. This makes it easy to iterate on API calls as well as to share data with others.
Rerun has been tested with:
@@ -20,7 +20,7 @@ When using the Rerun logging APIs, by default, the logged messages are buffered
you send them to a sink such as via `rr.connect()` or `rr.save()`. When using Rerun in a notebook,
rather than using the other sinks, you have the option to use a helper method: [`rr.notebook_show()`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.notebook_show).
This method takes any buffered messages and converts them into an HTML snipped including
-the inlined data along with an instance of the viewer in an iframe.
+the inlined data along with an instance of the Viewer in an iframe.
## The APIs
@@ -59,7 +59,7 @@ this memory buffer as the sink for future logging calls.
Note that the output cell is essentially a fixed snapshot of the
current state of the recording at the time that `notebook_show()` is called. Rerun does not yet
-support live incremental streaming from the jupyter kernel into the embedded viewer.
+support live incremental streaming from the Jupyter kernel into the embedded viewer.
Messages will continue to be buffered incrementally, and each call to `notebook_show()` will
display all messages that have been logged since the last call to `rr.init()`.
@@ -72,7 +72,7 @@ The `notebook_show()` method also takes optional arguments for specifying the wi
rr.notebook_show(width=400, height=400)
```
-## Working with Blueprints
+## Working with blueprints
[Blueprints](./configure-viewer-through-code.md) can also be used with `notebook_show()` by providing a `blueprint`
parameter.
@@ -148,7 +148,7 @@ After running this cell you will need to restart the Runtime for the Rerun packa
## Sharing your notebook
-Because the Rerun viewer in the notebook is just an embedded HTML snippet it also works with
+Because the Rerun Viewer in the notebook is just an embedded HTML snippet it also works with
tools like nbconvert.
You can convert the notebook to HTML using the following command:
diff --git a/docs/content/howto/ros2-nav-turtlebot.md b/docs/content/howto/ros2-nav-turtlebot.md
index 9e33bb160ecb9..dd585c39565df 100644
--- a/docs/content/howto/ros2-nav-turtlebot.md
+++ b/docs/content/howto/ros2-nav-turtlebot.md
@@ -2,11 +2,11 @@
title: Use Rerun with ROS 2
order: 500
ogImageUrl: /docs-media/og-howto-ros.jpg
-description: Rerun does not yet have native ROS support, but many of the concepts in ROS and Rerun line up fairly well. In this guide, you will learn how to write a simple ROS 2 python node that subscribes to some common ROS topics and logs them to Rerun.
+description: Rerun does not yet have native ROS support, but many of the concepts in ROS and Rerun line up fairly well. In this guide, you will learn how to write a simple ROS 2 Python node that subscribes to some common ROS topics and logs them to Rerun.
---
Rerun does not yet have native ROS support, but many of the concepts in ROS and Rerun
-line up fairly well. In this guide, you will learn how to write a simple ROS 2 python node
+line up fairly well. In this guide, you will learn how to write a simple ROS 2 Python node
that subscribes to some common ROS topics and logs them to Rerun.
For information on future plans to enable more native ROS support
@@ -60,7 +60,7 @@ running in the background for the remainder of the guide.
### Additional dependencies
-The code for this guide is in the `rerun` repository. If you do not already have rerun cloned,
+The code for this guide is in the `rerun` repository. If you do not already have Rerun cloned,
you should do so now:
```bash
@@ -102,7 +102,7 @@ You should see a window similar to:
-Use rviz to send a new navigation goal and confirm that rerun updates with new data as turtlebot drives around
+Use rviz to send a new navigation goal and confirm that Rerun updates with new data as turtlebot drives around
the environment.
### Overview
@@ -287,15 +287,15 @@ def image_callback(self, img: Image) -> None:
The ROS [PointCloud2](https://github.com/ros2/common_interfaces/blob/humble/sensor_msgs/msg/PointCloud2.msg) message
is stored as a binary blob that needs to be reinterpreted using the details about its fields. Each field is
a named collection of offsets into the data buffer, and datatypes. The `sensor_msgs_py` package includes a `point_cloud2`
-reader, which can be used to convert to a Rerun-compatible numpy array.
+reader, which can be used to convert to a Rerun-compatible Numpy array.
-These fields are initially returned as numpy structured arrays, whereas Rerun currently expects an unstructured
+These fields are initially returned as Numpy structured arrays, whereas Rerun currently expects an unstructured
array of Nx3 floats.
Color is extracted in a similar way, although the realsense gazebo driver does not provide the correct offsets for
the r,g,b channels, requiring us to patch the field values.
-After extracting the positions and colors as numpy arrays, the entire cloud can be logged as a batch with `rr.Points3D`
+After extracting the positions and colors as Numpy arrays, the entire cloud can be logged as a batch with `rr.Points3D`
```python
def points_callback(self, points: PointCloud2) -> None:
@@ -341,7 +341,7 @@ the sake of this demo, we wanted to instead log a laser scan as a bunch of lines
in a similar fashion to how it is depicted in gazebo.
We generate a second matching set of points for each ray projected out 0.3m from
-the origin and then interlace the two sets of points using numpy hstack and reshape.
+the origin and then interlace the two sets of points using Numpy hstack and reshape.
This results in a set of alternating points defining rays from the origin to each
laser scan result, which is the format expected by `rr.LineStrips3D`:
@@ -403,7 +403,7 @@ its scale applied to it. This seems like a bug in either `yourdfpy` or `pycollad
not respecting the scale hint. To accommodate this, we manually re-scale the
camera link.
-Once we have correctly re-scaled the camera component, we can send the whole scene to rerun with
+Once we have correctly re-scaled the camera component, we can send the whole scene to Rerun with
`rerun_urdf.log_scene`.
```python
diff --git a/docs/content/howto/short-lived-entities.md b/docs/content/howto/short-lived-entities.md
index b7fbe47dc5203..42177d77c480b 100644
--- a/docs/content/howto/short-lived-entities.md
+++ b/docs/content/howto/short-lived-entities.md
@@ -44,7 +44,7 @@ for frame in sensors.read():
# same frequency as the input data and thus look strange
rr.log("input/detections", rr.Rect2D(detection.bounds))
```
-You could fix this example by logging `rr.Clear`, but in this case it makes more sense to change what you log to better express what is happening. Re-logging the image to another namespace on only the frames where the detection runs makes it explicit which frame was used as the input to the detector. This will create a second view in the viewer that always allows you to see the frame that was used for the current detection input.
+You could fix this example by logging `rr.Clear`, but in this case it makes more sense to change what you log to better express what is happening. Re-logging the image to another namespace on only the frames where the detection runs makes it explicit which frame was used as the input to the detector. This will create a second view in the Viewer that always allows you to see the frame that was used for the current detection input.
Here is an example fix:
```python
diff --git a/docs/content/reference/about.md b/docs/content/reference/about.md
index 96e6c76192178..7b48f5d688e51 100644
--- a/docs/content/reference/about.md
+++ b/docs/content/reference/about.md
@@ -20,8 +20,8 @@ We depend on a number of third party libraries, most notably:
* [Apache Arrow](https://arrow.apache.org/) for our data store
* [wgpu](https://wgpu.rs/) for rendering
* [egui](https://github.com/emilk/egui) for UI
-* [PyO3](https://github.com/PyO3/pyo3) for python bindings
+* [PyO3](https://github.com/PyO3/pyo3) for Python bindings
-If you want to learn more about the different parts of the SDK & viewer and how they work, check out
+If you want to learn more about the different parts of the SDK & Viewer and how they work, check out
[this architecture overview](https://github.com/rerun-io/rerun/blob/latest/ARCHITECTURE.md)
for an introduction.
diff --git a/docs/content/reference/data-loaders/overview.md b/docs/content/reference/data-loaders/overview.md
index 0426c523f1324..d5db0c03a997e 100644
--- a/docs/content/reference/data-loaders/overview.md
+++ b/docs/content/reference/data-loaders/overview.md
@@ -37,7 +37,7 @@ The Rerun Viewer/SDK will then automatically load the data streamed to the exter
Like any other `DataLoader`, an external loader will be notified of all file openings, unconditionally.
To indicate that it does not support a given file, the loader has to exit with a [dedicated status code](https://docs.rs/rerun/latest/rerun/constant.EXTERNAL_DATA_LOADER_INCOMPATIBLE_EXIT_CODE.html).
-When the viewer and/or SDK executes an external loader, it will pass to it a set of recommended settings in the form of CLI parameters (in addition to the file path to be loaded, which is passed as the one and only positional argument):
+When the Viewer and/or SDK executes an external loader, it will pass to it a set of recommended settings in the form of CLI parameters (in addition to the file path to be loaded, which is passed as the one and only positional argument):
* `--application-id `
diff --git a/docs/content/reference/entity-queries.md b/docs/content/reference/entity-queries.md
index 4a86288f256e3..958858d845426 100644
--- a/docs/content/reference/entity-queries.md
+++ b/docs/content/reference/entity-queries.md
@@ -44,7 +44,7 @@ Consider the following example:
- The last rule matching `/world` is `- /world`, so it is excluded.
- The last rule matching `/world/house` is `+ /world/**`, so it is included.
-## In the viewer
+## In the Viewer
In the viewer, an entity query is typically displayed as a multi-line
edit box, with each query expression shown on its own line. You can find the
diff --git a/docs/content/reference/migration/migration-0-13.md b/docs/content/reference/migration/migration-0-13.md
index bc1f9ac2b619c..1f62440f0286a 100644
--- a/docs/content/reference/migration/migration-0-13.md
+++ b/docs/content/reference/migration/migration-0-13.md
@@ -16,7 +16,7 @@ line series via [SeriesLine](../types/archetypes/series_line.md).
## Changes in space view creation heuristics
-The overhaul of automatic Space View creation makes the viewer faster and
+The overhaul of automatic Space View creation makes the Viewer faster and
more predictable but comes with a few changes on how paths are expected to be structured:
* When working with images of different resolutions, the image entities will end up defining the root of the created spaces.
diff --git a/docs/content/reference/roadmap.md b/docs/content/reference/roadmap.md
index 24547d74dcb52..d676b33245726 100644
--- a/docs/content/reference/roadmap.md
+++ b/docs/content/reference/roadmap.md
@@ -16,12 +16,12 @@ This page is meant to give an high level overview of ongoing and planned work.
## Roadmap of major feature areas
-### Early April 2024: Release 0.15
+### Early April 2024: release 0.15
- Layout and viewport content from code (blueprint part 1)
- Data-loader plugins callable from the SDK
- Linux ARM64 support in pre-built artifacts
-### Near term: Now - end of Q2 2024
+### Near term: now - end of Q2 2024
- Property overrides from code (blueprint part 2)
- Includes setting visible time range from code
- Broader coverage of robotics and spatial computing data types
diff --git a/docs/content/reference/sdk-operating-modes.md b/docs/content/reference/sdk-operating-modes.md
index 45d048a61e831..72ebf64199470 100644
--- a/docs/content/reference/sdk-operating-modes.md
+++ b/docs/content/reference/sdk-operating-modes.md
@@ -3,7 +3,7 @@ title: SDK Operating Modes
order: 800
---
-There are many different ways of sending data to the Rerun Viewer depending on what you're trying to achieve and whether the viewer is running in the same process as your code, in another process, or even as a separate web application.
+There are many different ways of sending data to the Rerun Viewer depending on what you're trying to achieve and whether the Viewer is running in the same process as your code, in another process, or even as a separate web application.
In the [official examples](/examples), these different modes of operation are exposed via a standardized set of flags that we'll cover below.
We will also demonstrate how you can achieve the same behavior in your own code.
@@ -19,20 +19,20 @@ All four of them are optional: when none of these modes are active, the client w
This is the default behavior you get when running all of our C++/Python/Rust examples, and is generally the most convenient when you're experimenting.
#### C++
-`RecordingStream::spawn` spawns a new Rerun Viewer process using an executable available in your PATH, then streams all the data to it via TCP. If an external viewer was already running, `spawn` will connect to that one instead of spawning a new one.
+`RecordingStream::spawn` spawns a new Rerun Viewer process using an executable available in your PATH, then streams all the data to it via TCP. If an external Viewer was already running, `spawn` will connect to that one instead of spawning a new one.
#### Python
-Call [`rr.spawn`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.spawn) once at the start of your program to start a Rerun Viewer in an external process and stream all the data to it via TCP. If an external viewer was already running, `spawn` will connect to that one instead of spawning a new one.
+Call [`rr.spawn`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.spawn) once at the start of your program to start a Rerun Viewer in an external process and stream all the data to it via TCP. If an external Viewer was already running, `spawn` will connect to that one instead of spawning a new one.
#### Rust
-[`RecordingStream::spawn`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html#method.spawn) spawns a new Rerun Viewer process using an executable available in your PATH, then streams all the data to it via TCP. If an external viewer was already running, `spawn` will connect to that one instead of spawning a new one.
+[`RecordingStream::spawn`](https://docs.rs/rerun/latest/rerun/struct.RecordingStream.html#method.spawn) spawns a new Rerun Viewer process using an executable available in your PATH, then streams all the data to it via TCP. If an external Viewer was already running, `spawn` will connect to that one instead of spawning a new one.
## Connect
Connects to a remote Rerun Viewer and streams all the data via TCP.
-You will need to start a stand-alone viewer first by typing `rerun` in your terminal.
+You will need to start a stand-alone Viewer first by typing `rerun` in your terminal.
#### C++
`RecordingStream::connect`
diff --git a/docs/content/reference/types/datatypes/class_description.md b/docs/content/reference/types/datatypes/class_description.md
index e256dc09b6f97..9c34c8c2e856c 100644
--- a/docs/content/reference/types/datatypes/class_description.md
+++ b/docs/content/reference/types/datatypes/class_description.md
@@ -4,7 +4,7 @@ title: "ClassDescription"
The description of a semantic Class.
-If an entity is annotated with a corresponding `ClassId`, rerun will use
+If an entity is annotated with a corresponding `ClassId`, Rerun will use
the attached `AnnotationInfo` to derive labels and colors.
Keypoints within an annotation class can similarly be annotated with a
diff --git a/docs/content/reference/types/datatypes/quaternion.md b/docs/content/reference/types/datatypes/quaternion.md
index 768313a04eaf0..d3d0c42376dab 100644
--- a/docs/content/reference/types/datatypes/quaternion.md
+++ b/docs/content/reference/types/datatypes/quaternion.md
@@ -5,7 +5,7 @@ title: "Quaternion"
A Quaternion represented by 4 real numbers.
Note: although the x,y,z,w components of the quaternion will be passed through to the
-datastore as provided, when used in the viewer Quaternions will always be normalized.
+datastore as provided, when used in the Viewer Quaternions will always be normalized.
## Fields
diff --git a/docs/content/reference/viewer/overview.md b/docs/content/reference/viewer/overview.md
index 2bc57a519ac0b..48a960996d081 100644
--- a/docs/content/reference/viewer/overview.md
+++ b/docs/content/reference/viewer/overview.md
@@ -4,15 +4,15 @@ order: 0
---
The following sections give an overview of the basic ui concepts and where to find which functionality.
-Generally, the viewer tries to be as self-explaining as possible - most items in the ui show a tooltip upon hovering which should give additional information.
+Generally, the Viewer tries to be as self-explaining as possible - most items in the ui show a tooltip upon hovering which should give additional information.
If you are missing a piece of information, don't hesitate to [file an issue](https://github.com/rerun-io/rerun/issues/new/choose)!
Overview
--------------------------
-![screenshot of the viewer with different parts annotated](https://static.rerun.io/a5e708e4bbd2c0b182f7f9103ab42c85e55f8982_viewer-overview.png)
+![screenshot of the Viewer with different parts annotated](https://static.rerun.io/a5e708e4bbd2c0b182f7f9103ab42c85e55f8982_viewer-overview.png)
### [Blueprint](blueprint.md)
-The Blueprint view is where you see and edit the Blueprint for the whole viewer, i.e. what is shown in the viewer (and how it is shown).
+The Blueprint view is where you see and edit the Blueprint for the whole viewer, i.e. what is shown in the Viewer (and how it is shown).
### [Selection](selection.md)
The Selection view let's you see details and edit configurations of the current selection(s).
diff --git a/docs/content/reference/viewer/viewport.md b/docs/content/reference/viewer/viewport.md
index d10517cf3944b..891d3f2f2e852 100644
--- a/docs/content/reference/viewer/viewport.md
+++ b/docs/content/reference/viewer/viewport.md
@@ -45,4 +45,4 @@ Rerun distinguishes various Space Views classes:
Which class is used is determined upon creation of a Space View.
The Space View class determines which Entities it can display, how it displays them and the way they can be interacted with.
-To learn more about the _internals_ of how Space View classes work, check the [guide on viewer extensions](../../howto/extend.md).
+To learn more about the _internals_ of how Space View classes work, check the [guide on Viewer extensions](../../howto/extend.md).
diff --git a/examples/c/spawn_viewer/README.md b/examples/c/spawn_viewer/README.md
index 348e018aee117..3c2f034e6a401 100644
--- a/examples/c/spawn_viewer/README.md
+++ b/examples/c/spawn_viewer/README.md
@@ -1,5 +1,5 @@
diff --git a/examples/cpp/spawn_viewer/README.md b/examples/cpp/spawn_viewer/README.md
index 585ee37133a7f..03f8047861b32 100644
--- a/examples/cpp/spawn_viewer/README.md
+++ b/examples/cpp/spawn_viewer/README.md
@@ -1,5 +1,5 @@
diff --git a/examples/python/README.md b/examples/python/README.md
index f563175b4501e..e0302b57c2b0a 100644
--- a/examples/python/README.md
+++ b/examples/python/README.md
@@ -21,7 +21,7 @@ pip install -e examples/python/minimal
**Note**: it is import to install example in editable mode, which is done using the `-e` flag (short for `--editable`).
-Once installed, the example can be run as a regular python module:
+Once installed, the example can be run as a regular Python module:
```shell
python -m minimal
@@ -43,11 +43,11 @@ For most examples you can instead save the log data to an `.rrd` file using `plo
NOTE: `.rrd` files do not yet guarantee any backwards or forwards compatibility. One version of Rerun will likely not be able to open an `.rrd` file generated by another Rerun version.
-## Running examples with pixi
+## Running examples with Pixi
-The Rerun project makes extensive use of [pixi](https://pixi.sh/latest/) for various developer tasks, and pixi can be used to run examples as well. For this, you need to install pixi as per the installation instructions on their website.
+The Rerun project makes extensive use of [pixi](https://pixi.sh/latest/) for various developer tasks, and Pixi can be used to run examples as well. For this, you need to install Pixi as per the installation instructions on their website.
-Then, install a suitable version of the Rerun SDK in the pixi environment. For the Rerun examples, the `examples` environment must be used, which is why the following commands all include `-e examples`.
+Then, install a suitable version of the Rerun SDK in the Pixi environment. For the Rerun examples, the `examples` environment must be used, which is why the following commands all include `-e examples`.
For the released version of the SDK, use:
```shell
diff --git a/examples/python/_empty_rerun_sdk/README.md b/examples/python/_empty_rerun_sdk/README.md
index 213f2d0c31914..92c4bb6428ead 100644
--- a/examples/python/_empty_rerun_sdk/README.md
+++ b/examples/python/_empty_rerun_sdk/README.md
@@ -2,4 +2,4 @@
This is fake, empty `rerun-sdk` package used as a (default) dependency in our `pixi.toml`.
-TODO(ab): cleanup when pixi fixes https://github.com/prefix-dev/pixi/issues/1233
+TODO(ab): cleanup when Pixi fixes https://github.com/prefix-dev/pixi/issues/1233
diff --git a/examples/python/all_examples/README.md b/examples/python/all_examples/README.md
index 1c7caa2d72b19..01ff9d01625db 100644
--- a/examples/python/all_examples/README.md
+++ b/examples/python/all_examples/README.md
@@ -1,8 +1,8 @@
-# Example meta-project
+## Example meta-project
TODO(ab): this is largely WIP with unclear path to actual usefulness.
-## Dynamically depend on all examples
+### Dynamically depend on all examples
This project dynamically depend on all examples.
@@ -24,11 +24,11 @@ uv pip install -e path/to/rerun/examples/python/all_examples # ok??
The dynamic dependency list is achieved in `hatch_build.py`, which is registered as a hook. This hook adds [environment marker](https://packaging.python.org/en/latest/specifications/dependency-specifiers/#environment-markers) to mark Python version or platform restrictions.
-## List examples
+### List examples
Running `python -m all_examples list` prints a list of all examples, suitable for copy-pasting to the `pixi.toml` file.
-## Configuration
+### Configuration
`all_examples` can be configured via the `[tool.rerun-example]` table from the `pyproject.toml` file. It currently supports the following parameters:
diff --git a/examples/python/arkit_scenes/README.md b/examples/python/arkit_scenes/README.md
index 3a1764f9d35dc..767a12e66310f 100644
--- a/examples/python/arkit_scenes/README.md
+++ b/examples/python/arkit_scenes/README.md
@@ -73,14 +73,6 @@ for i, label_info in enumerate(annotation["data"]):
timeless=True,
)
```
-
-
### Setting up the default blueprint
@@ -121,7 +113,6 @@ In particular, we want to reproject 3D annotations onto the 2D camera views. To
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/clock/README.md b/examples/python/clock/README.md
index d1d318efb23fd..9e9fa236144c8 100644
--- a/examples/python/clock/README.md
+++ b/examples/python/clock/README.md
@@ -16,11 +16,11 @@ thumbnail_dimensions = [480, 480]
An example visualizing an analog clock with hour, minute and seconds hands using Rerun Arrow3D primitives.
-# Used Rerun types
+## Used Rerun types
[`Boxes3D`](https://www.rerun.io/docs/reference/types/archetypes/boxes3d), [`Points3D`](https://www.rerun.io/docs/reference/types/archetypes/points3d), [`Arrows3D`](https://www.rerun.io/docs/reference/types/archetypes/arrows3d)
-# Logging and visualizing with Rerun
+## Logging and visualizing with Rerun
The visualizations in this example were created with the following Rerun code:
@@ -54,10 +54,9 @@ for step in range(steps):
rr.log("world/hours_hand", rr.Arrows3D(vectors=point_h, colors=color_h, radii=WIDTH_H))
```
-# Run the code
+## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/controlnet/README.md b/examples/python/controlnet/README.md
index b579d47b79ab1..a330765676ccc 100644
--- a/examples/python/controlnet/README.md
+++ b/examples/python/controlnet/README.md
@@ -68,7 +68,6 @@ Finally we log the output image generated by ControlNet.
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/depth_guided_stable_diffusion/README.md b/examples/python/depth_guided_stable_diffusion/README.md
index 1fb459e2d510c..ec1f6651a9431 100644
--- a/examples/python/depth_guided_stable_diffusion/README.md
+++ b/examples/python/depth_guided_stable_diffusion/README.md
@@ -83,7 +83,6 @@ rr.log("image/diffused", rr.Image(image_8))
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/detect_and_track_objects/README.md b/examples/python/detect_and_track_objects/README.md
index 79dfffe86c899..bbb2acf76b935 100644
--- a/examples/python/detect_and_track_objects/README.md
+++ b/examples/python/detect_and_track_objects/README.md
@@ -146,12 +146,11 @@ def main() -> None:
setup_logging() # setup logging
track_objects(video_path, max_frame_count=args.max_frame) # start tracking
```
-In the viewer you can adjust the filter level and look at the messages time-synchronized with respect to other logged data.
+In the Viewer you can adjust the filter level and look at the messages time-synchronized with respect to other logged data.
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/dicom_mri/README.md b/examples/python/dicom_mri/README.md
index ccd191240180d..81e61a3f832c5 100644
--- a/examples/python/dicom_mri/README.md
+++ b/examples/python/dicom_mri/README.md
@@ -32,7 +32,7 @@ rr.log("tensor", rr.Tensor(voxels_volume_u16, dim_names=["right", "back", "up"])
A `numpy.array` named `voxels_volume_u16` representing volumetric MRI intensities with a shape of `(512, 512, 512)`.
To visualize this data effectively in Rerun, we can log the `numpy.array` as [`Tensor`](https://www.rerun.io/docs/reference/types/archetypes/tensor) to the `tensor` entity.
-In the Rerun viewer you can also inspect the data in detail. The `dim_names` provided in the above call to `rr.log` help to
+In the Rerun Viewer you can also inspect the data in detail. The `dim_names` provided in the above call to `rr.log` help to
give semantic meaning to each axis. After selecting the tensor view, you can adjust various settings in the Blueprint
settings on the right-hand side. For example, you can adjust the color map, the brightness, which dimensions to show as
an image and which to select from, and more.
@@ -40,7 +40,6 @@ an image and which to select from, and more.
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/face_tracking/README.md b/examples/python/face_tracking/README.md
index 9380de046fd8c..8b173a8bfd187 100644
--- a/examples/python/face_tracking/README.md
+++ b/examples/python/face_tracking/README.md
@@ -172,7 +172,6 @@ for blendshape in blendshapes:
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/gesture_detection/README.md b/examples/python/gesture_detection/README.md
index 61a5203bf0231..aab44d7cc1c66 100644
--- a/examples/python/gesture_detection/README.md
+++ b/examples/python/gesture_detection/README.md
@@ -16,7 +16,7 @@ track hands and recognize gestures in images, video, and camera stream.
-## Used rerun types
+## Used Rerun types
[`Image`](https://www.rerun.io/docs/reference/types/archetypes/image), [`Points2D`](https://www.rerun.io/docs/reference/types/archetypes/points2d), [`Points3D`](https://www.rerun.io/docs/reference/types/archetypes/points3d), [`LineStrips2D`](https://www.rerun.io/docs/reference/types/archetypes/line_strips2d), [`ClassDescription`](https://www.rerun.io/docs/reference/types/datatypes/class_description), [`AnnotationContext`](https://www.rerun.io/docs/reference/types/archetypes/annotation_context), [`TextDocument`](https://www.rerun.io/docs/reference/types/archetypes/text_document)
## Background
@@ -80,14 +80,14 @@ rr.log("Hand3D", rr.ViewCoordinates.LEFT_HAND_Y_DOWN, static=True)
#### 2D points
```python
-# Log points to the image and Hand Entity
+# Log points to the image and Hand entity
for log_key in ["Media/Points", "Hand/Points"]:
rr.log(
log_key,
rr.Points2D(points, radii=10, colors=[255, 0, 0])
)
-# Log connections to the image and Hand Entity [128, 128, 128]
+# Log connections to the image and Hand entity [128, 128, 128]
for log_key in ["Media/Connections", "Hand/Connections"]:
rr.log(
log_key,
@@ -124,7 +124,6 @@ rr.log(
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/human_pose_tracking/README.md b/examples/python/human_pose_tracking/README.md
index 57c4f56275642..0578cb7a7c63b 100644
--- a/examples/python/human_pose_tracking/README.md
+++ b/examples/python/human_pose_tracking/README.md
@@ -129,7 +129,6 @@ rr.log(
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/lidar/README.md b/examples/python/lidar/README.md
index b7097a6eaa5ac..7fee9d82c5617 100644
--- a/examples/python/lidar/README.md
+++ b/examples/python/lidar/README.md
@@ -41,7 +41,6 @@ In the following code, we first establish the desired time frame and then procee
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/live_camera_edge_detection/README.md b/examples/python/live_camera_edge_detection/README.md
index 3fc0b64d5635c..98e8259dff47e 100644
--- a/examples/python/live_camera_edge_detection/README.md
+++ b/examples/python/live_camera_edge_detection/README.md
@@ -57,7 +57,6 @@ rr.log("image/canny", rr.Image(canny))
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/live_depth_sensor/README.md b/examples/python/live_depth_sensor/README.md
index 5833128ec7ade..515fdb380685e 100644
--- a/examples/python/live_depth_sensor/README.md
+++ b/examples/python/live_depth_sensor/README.md
@@ -94,7 +94,6 @@ rr.log("realsense/depth/image", rr.DepthImage(depth_image, meter=1.0 / depth_uni
## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/live_scrolling_plot/README.md b/examples/python/live_scrolling_plot/README.md
index 277455419ed79..d6e2f80c861e8 100644
--- a/examples/python/live_scrolling_plot/README.md
+++ b/examples/python/live_scrolling_plot/README.md
@@ -1,5 +1,5 @@
-Demonstrates how rerun can work with the python `multiprocessing` library.
+Demonstrates how Rerun can work with the Python `multiprocessing` library.
@@ -15,10 +15,10 @@ Demonstrates how rerun can work with the python `multiprocessing` library.
-# Used Rerun types
+## Used Rerun types
[`Boxes2D`](https://www.rerun.io/docs/reference/types/archetypes/boxes2d), [`TextLog`](https://www.rerun.io/docs/reference/types/archetypes/text_log)
-# Logging and visualizing with Rerun
+## Logging and visualizing with Rerun
This example demonstrates how to use the Rerun SDK with `multiprocessing` to log data from multiple processes to the same Rerun viewer.
It starts with the definition of the function for logging, the `task`, followed by typical usage of Python's `multiprocessing` library.
@@ -51,7 +51,7 @@ def task(child_index: int) -> None:
)
```
-The main function initializes rerun with a specific application ID and manages the multiprocessing processes for logging data to the Rerun viewer.
+The main function initializes Rerun with a specific application ID and manages the multiprocessing processes for logging data to the Rerun viewer.
> Caution: Ensure that the `recording id` specified in the main function matches the one used in the logging functions
```python
@@ -59,7 +59,7 @@ def main() -> None:
# β¦ existing code β¦
rr.init("rerun_example_multiprocessing")
- rr.spawn(connect=False) # this is the viewer that each child process will connect to
+ rr.spawn(connect=False) # this is the Viewer that each child process will connect to
task(0)
@@ -69,10 +69,9 @@ def main() -> None:
p.join()
```
-# Run the code
+## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/multithreading/README.md b/examples/python/multithreading/README.md
index bc6142c282a21..223abd17507c9 100644
--- a/examples/python/multithreading/README.md
+++ b/examples/python/multithreading/README.md
@@ -15,10 +15,10 @@ Demonstration of logging to Rerun from multiple threads.
-# Used Rerun types
+## Used Rerun types
[`Boxes2D`](https://www.rerun.io/docs/reference/types/archetypes/boxes2d)
-# Logging and visualizing with Rerun
+## Logging and visualizing with Rerun
This example showcases logging from multiple threads, starting with the definition of the function for logging, the `rect_logger`, followed by typical usage of Python's `threading` module in the main function.
```python
@@ -48,10 +48,9 @@ def main() -> None:
# β¦ existing code β¦
```
-# Run the code
+## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/notebook/README.md b/examples/python/notebook/README.md
index 039e2ece8f668..42e6a3dd84282 100644
--- a/examples/python/notebook/README.md
+++ b/examples/python/notebook/README.md
@@ -1,10 +1,10 @@
-# Overview
+## Overview
Rerun has limited support for direct embedding within a [Jupyter](https://jupyter.org/) notebook.
Many additional environments beyond Jupyter are supported such as [Google Colab](https://colab.research.google.com/)
or [VSCode](https://code.visualstudio.com/blogs/2021/08/05/notebooks).
-In order to show a rerun viewer inline within the notebook, you can call:
+In order to show a Rerun Viewer inline within the notebook, you can call:
```python
rr.init("rerun_example_notebook")
@@ -28,7 +28,7 @@ rec.log(...)
rr.notebook_show(recording=rec)
```
-# Running in Jupyter
+## Running in Jupyter
The easiest way to get a feel for working with notebooks is to use it:
diff --git a/examples/python/nuscenes_dataset/README.md b/examples/python/nuscenes_dataset/README.md
index dc2c20bea7f81..cd1b5899e310e 100644
--- a/examples/python/nuscenes_dataset/README.md
+++ b/examples/python/nuscenes_dataset/README.md
@@ -135,7 +135,6 @@ We programmatically create one view per sensor and arrange them in a grid layout
## Run the code
To run this example, make sure you have Python version at least 3.9, the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/objectron/README.md b/examples/python/objectron/README.md
index fa2d86ba56456..38492e1b80300 100644
--- a/examples/python/objectron/README.md
+++ b/examples/python/objectron/README.md
@@ -3,7 +3,7 @@ title = "Objectron"
tags = ["2D", "3D", "Object detection", "Pinhole camera", "Blueprint"]
thumbnail = "https://static.rerun.io/objectron/b645ef3c8eff33fbeaefa6d37e0f9711be15b202/480w.png"
thumbnail_dimensions = [480, 480]
-# channel = "release" - Disabled because it sometimes have bad first-frame heuristics
+# Channel = "release" - disabled because it sometimes have bad first-frame heuristics
build_args = ["--frames=150"]
-->
@@ -109,7 +109,6 @@ In particular, we want to reproject the points and the 3D annotation box in the
## Run the code
To run this example, make sure you have Python version at least 3.9, the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/open_photogrammetry_format/README.md b/examples/python/open_photogrammetry_format/README.md
index 7fc6b4dca9bc6..88a174f7810d7 100644
--- a/examples/python/open_photogrammetry_format/README.md
+++ b/examples/python/open_photogrammetry_format/README.md
@@ -1,5 +1,5 @@
-A minimal example of creating a ROS node that subscribes to topics and converts the messages to rerun log calls.
+A minimal example of creating a ROS node that subscribes to topics and converts the messages to Rerun log calls.
The solution here is mostly a toy example to show how ROS concepts can be mapped to Rerun.
@@ -17,23 +17,23 @@ The solution here is mostly a toy example to show how ROS concepts can be mapped
-# Used Rerun types
+## Used Rerun types
[`Image`](https://www.rerun.io/docs/reference/types/archetypes/image), [`Pinhole`](https://www.rerun.io/docs/reference/types/archetypes/pinhole), [`Transform3D`](https://www.rerun.io/docs/reference/types/archetypes/transform3d), [`Boxes3D`](https://www.rerun.io/docs/reference/types/archetypes/boxes3d), [`Points3D`](https://www.rerun.io/docs/reference/types/archetypes/points3d), [`LineStrips3D`](https://www.rerun.io/docs/reference/types/archetypes/line_strips3d), [`Scalar`](https://www.rerun.io/docs/reference/types/archetypes/scalar)
-# Background
+## Background
The [Robot Operating System (ROS)](https://www.ros.org) helps build robot applications through software libraries and tools.
Although Rerun doesn't have native ROS support, you can easily create a basic ROS 2 Python node to subscribe to common ROS topics and log them to Rerun.
In this example, Rerun visualizes simulation data, including robot pose, images, camera position, laser scans, point clouds, and velocities, as the [Turtlebot](http://wiki.ros.org/turtlebot3) navigates the environment.
-# Logging and visualizing with Rerun
+## Logging and visualizing with Rerun
Find the detailed code walkthrough and explanation for visualizing this example here: [Using Rerun with ROS 2](https://www.rerun.io/docs/howto/ros2-nav-turtlebot).
For more information on future improved ROS support, see tracking issue: [#1527](https://github.com/rerun-io/rerun/issues/1537)
-# Run the code
+## Run the code
-## Dependencies
+### Dependencies
> NOTE: Unlike many of the other examples, this example requires a system installation of ROS
in addition to the packages from requirements.txt.
@@ -48,7 +48,6 @@ sudo apt install ros-humble-desktop gazebo ros-humble-navigation2 ros-humble-tur
Make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
@@ -66,7 +65,7 @@ source venv/bin/active
source /opt/ros/humble/setup.bash
```
-## Run the code
+### Run the code
First, in one terminal launch the nav2 turtlebot demo:
```
diff --git a/examples/python/rrt_star/README.md b/examples/python/rrt_star/README.md
index 7744880ffa2ee..6dd5a8f7ec8ec 100644
--- a/examples/python/rrt_star/README.md
+++ b/examples/python/rrt_star/README.md
@@ -16,10 +16,10 @@ This example visualizes the path finding algorithm RRT\* in a simple environment
-# Used Rerun types
+## Used Rerun types
[`LineStrips2D`](https://www.rerun.io/docs/reference/types/archetypes/line_strips2d), [`Points2D`](https://www.rerun.io/docs/reference/types/archetypes/points2d), [`TextDocument`](https://www.rerun.io/docs/reference/types/archetypes/text_document)
-# Background
+## Background
The algorithm finds a path between two points by randomly expanding a tree from the start point.
After it has added a random edge to the tree it looks at nearby nodes to check if it's faster to reach them through this new edge instead,
and if so it changes the parent of these nodes. This ensures that the algorithm will converge to the optimal path given enough time.
@@ -29,77 +29,76 @@ Karaman, S. Frazzoli, S. 2011. "Sampling-based algorithms for optimal motion pla
or in [this medium article](https://theclassytim.medium.com/robotic-path-planning-rrt-and-rrt-212319121378)
-# Logging and visualizing with Rerun
+## Logging and visualizing with Rerun
All points are logged using the [`Points2D`](https://www.rerun.io/docs/reference/types/archetypes/points2d) archetype, while the lines are logged using the LineStrips2D [`LineStrips2D`](https://www.rerun.io/docs/reference/types/archetypes/line_strips2d).
The visualizations in this example were created with the following Rerun code:
-## Map
+### Map
-### Starting point
+#### Starting point
```python
rr.log("map/start", rr.Points2D([start_point], radii=0.02, colors=[[255, 255, 255, 255]]))
```
-### Destination point
+#### Destination point
```python
rr.log("map/destination", rr.Points2D([end_point], radii=0.02, colors=[[255, 255, 0, 255]]))
```
-### Obstacles
+#### Obstacles
```python
rr.log("map/obstacles", rr.LineStrips2D(self.obstacles))
```
-## RRT tree
+### RRT tree
-### Edges
+#### Edges
```python
rr.log("map/tree/edges", rr.LineStrips2D(tree.segments(), radii=0.0005, colors=[0, 0, 255, 128]))
```
-### New edges
+#### New edges
```python
rr.log("map/new/new_edge", rr.LineStrips2D([(closest_node.pos, new_point)], colors=[color], radii=0.001))
```
-### Vertices
+#### Vertices
```python
rr.log("map/tree/vertices", rr.Points2D([node.pos for node in tree], radii=0.002), rr.AnyValues(cost=[float(node.cost) for node in tree]))
```
-### Close nodes
+#### Close nodes
```python
rr.log("map/new/close_nodes", rr.Points2D([node.pos for node in close_nodes]))
```
-### Closest node
+#### Closest node
```python
rr.log("map/new/closest_node", rr.Points2D([closest_node.pos], radii=0.008))
```
-### Random points
+#### Random points
```python
rr.log("map/new/random_point", rr.Points2D([random_point], radii=0.008))
```
-### New points
+#### New points
```python
rr.log("map/new/new_point", rr.Points2D([new_point], radii=0.008))
```
-### Path
+#### Path
```python
rr.log("map/path", rr.LineStrips2D(segments, radii=0.002, colors=[0, 255, 255, 255]))
```
-# Run the code
+## Run the code
To run this example, make sure you have the Rerun repository checked out and the latest SDK installed:
```bash
-# Setup
pip install --upgrade rerun-sdk # install the latest Rerun SDK
git clone git@github.com:rerun-io/rerun.git # Clone the repository
cd rerun
diff --git a/examples/python/segment_anything_model/README.md b/examples/python/segment_anything_model/README.md
index b5ad77a617c12..28cc8c365b6cd 100644
--- a/examples/python/segment_anything_model/README.md
+++ b/examples/python/segment_anything_model/README.md
@@ -1,5 +1,5 @@
This is an example template. It is not a real example. You can duplicate the directory and use it as a starting point for writing a real example.
diff --git a/examples/python/tfrecord_loader/README.md b/examples/python/tfrecord_loader/README.md
index 8d7ffe487943f..3b5e9ab9c1488 100644
--- a/examples/python/tfrecord_loader/README.md
+++ b/examples/python/tfrecord_loader/README.md
@@ -17,7 +17,7 @@ thumbnail_dimensions = [480, 480]
## Overview
-This is an example data-loader plugin that lets you view a TFRecord of Events (i.e., Tensorboard log files). It uses the [external data loader mechanism](https://www.rerun.io/docs/reference/data-loaders/overview#external-dataloaders) to add this capability to the Rerun viewer without modifying the viewer itself.
+This is an example data-loader plugin that lets you view a TFRecord of Events (i.e., Tensorboard log files). It uses the [external data loader mechanism](https://www.rerun.io/docs/reference/data-loaders/overview#external-dataloaders) to add this capability to the Rerun Viewer without modifying the Viewer itself.
This example is written in Python, and uses [TensorFlow](https://www.tensorflow.org/) to read the files. The events are then logged to Rerun.
@@ -42,7 +42,7 @@ To try the plug-in, first download an example `xxx.tfevents.xxx` file:
curl -OL https://github.com/rerun-io/rerun-loader-python-example-tfrecord/raw/main/events.tfevents.example
```
-Then you can open the viewer and open the file using drag-and-drop or the open dialog, or you can open it directly from the terminal:
+Then you can open the Viewer and open the file using drag-and-drop or the open dialog, or you can open it directly from the terminal:
```bash
rerun events.tfevents.example
diff --git a/examples/python/urdf_loader/README.md b/examples/python/urdf_loader/README.md
index 49f48b2112319..7d619f1518124 100644
--- a/examples/python/urdf_loader/README.md
+++ b/examples/python/urdf_loader/README.md
@@ -17,7 +17,7 @@ thumbnail_dimensions = [480, 480]
## Overview
-This is an example data-loader plugin that lets you view [URDF](https://wiki.ros.org/urdf) files. It uses the [external data loader mechanism](https://www.rerun.io/docs/reference/data-loaders/overview#external-dataloaders) to add this capability to the Rerun viewer without modifying the viewer itself.
+This is an example data-loader plugin that lets you view [URDF](https://wiki.ros.org/urdf) files. It uses the [external data loader mechanism](https://www.rerun.io/docs/reference/data-loaders/overview#external-dataloaders) to add this capability to the Rerun Viewer without modifying the Viewer itself.
This example is written in Python, and uses [urdf_parser_py](https://github.com/ros/urdf_parser_py/tree/ros2) to read the files. ROS package-relative paths support both ROS 1 and ROS 2-based resolving.
@@ -39,7 +39,7 @@ To try the plug-in, first download the provided example URDF:
curl -OL https://github.com/rerun-io/rerun-loader-python-example-urdf/raw/main/example.urdf
```
-Then you can open the viewer and open the file using drag-and-drop or the open dialog, or you can open it directly from the terminal:
+Then you can open the Viewer and open the file using drag-and-drop or the open dialog, or you can open it directly from the terminal:
```bash
rerun example.urdf
diff --git a/examples/rust/README.md b/examples/rust/README.md
index 2d1e54cbc2f8a..78a5550007012 100644
--- a/examples/rust/README.md
+++ b/examples/rust/README.md
@@ -18,7 +18,7 @@ Most examples come with a set of predefined Rerun flags and optionally a number
Use e.g. `cargo run -p objectron -- --help` for a detailed listing.
The predefined Rerun flags go as follow and are all mutually exclusive:
-- `--spawn`: start a viewer and feed it data in real-time (default behavior)
+- `--spawn`: start a Viewer and feed it data in real-time (default behavior)
- `--save `: saves the data to an rrd file rather than visualizing it immediately
- `--connect [IP:PORT]`: connects and sends the logged data to a remote Rerun viewer
- `--serve`: connects and sends the data to a web-based Rerun viewer.
@@ -26,7 +26,7 @@ The predefined Rerun flags go as follow and are all mutually exclusive:
## Datasets
Some examples require small datasets to be downloaded before they run.
-These datasets can be downloaded by running the homonymous python examples (each example that requires it will tell you how to).
+These datasets can be downloaded by running the homonymous Python examples (each example that requires it will tell you how to).
The datasets will be added to a subdir called `dataset`, which is in the repo-wide `.gitignore`.
diff --git a/examples/rust/extend_viewer_ui/README.md b/examples/rust/extend_viewer_ui/README.md
index 4b83ead99fcd5..ca90fed23b5a3 100644
--- a/examples/rust/extend_viewer_ui/README.md
+++ b/examples/rust/extend_viewer_ui/README.md
@@ -1,5 +1,5 @@
diff --git a/examples/rust/revy/README.md b/examples/rust/revy/README.md
index d9d79c5ec3eca..bb883399ba391 100644
--- a/examples/rust/revy/README.md
+++ b/examples/rust/revy/README.md
@@ -75,7 +75,7 @@ For more information, check out the [Revy repository](https://github.com/rerun-i
2. Add `revy` to your dependencies:
```toml
- revy = "0.15" # always matches the rerun version
+ revy = "0.15" # always matches the Rerun version
```
3. Initialize the `rerun` plugin:
diff --git a/examples/rust/spawn_viewer/README.md b/examples/rust/spawn_viewer/README.md
index a6f3bef980c71..d3a07e8d64e43 100644
--- a/examples/rust/spawn_viewer/README.md
+++ b/examples/rust/spawn_viewer/README.md
@@ -1,5 +1,5 @@
diff --git a/examples/rust/template/README.md b/examples/rust/template/README.md
index 27bd60d1854de..f062f32d8297b 100644
--- a/examples/rust/template/README.md
+++ b/examples/rust/template/README.md
@@ -3,7 +3,7 @@ title = "Template"
tags = ["Human case", "Comma", "Separated", "ACRONYM", "Respect brand names", "Hugging Face", "Coca-Cola"]
thumbnail = "https://static.rerun.io/template/f53a939567970272cf7c740f1efe5c72f20de7ab/480w.png"
thumbnail_dimensions = [480, 359]
-# channel = "main" # uncomment if this example can be run fast an easily
+# Channel = "main" # uncomment if this example can be run fast an easily
-->
This is an example template. It is not a real example. You can duplicate the directory and use it as a starting point for writing a real example.
diff --git a/hooks/README.md b/hooks/README.md
index ccb565c425c0d..bd8ff4a8eeabf 100644
--- a/hooks/README.md
+++ b/hooks/README.md
@@ -1,5 +1,5 @@
## Hooks
-This folder contains the official rerun githooks.
+This folder contains the official Rerun githooks.
Each hook is designed to call through to a corresponding hook in the scripts directory.
- `pre-push` -> `scripts/pre-push.sh`
diff --git a/rerun_cpp/arrow_cpp_install.md b/rerun_cpp/arrow_cpp_install.md
index bf483342fc34c..f522e5a4ac56e 100644
--- a/rerun_cpp/arrow_cpp_install.md
+++ b/rerun_cpp/arrow_cpp_install.md
@@ -2,7 +2,7 @@
\tableofcontents
-## Automatically download & build arrow from source (default)
+## Automatically download & build Arrow from source (default)
By default, the Rerun C++ SDK's CMake script (which is part of the SDK's zip artifact that can be fetched via `FetchContent`)
will download a known compatible version of Arrow from GitHub and add it to the build.
@@ -21,7 +21,7 @@ fact, Rerun uses it for our own internal development dependency management, and
of our external examples.
Make sure to use `-DRERUN_DOWNLOAD_AND_BUILD_ARROW=OFF` when building, otherwise Rerun's CMake script
-will download & build arrow instead, ignoring your Pixi install.
+will download & build Arrow instead, ignoring your Pixi install.
The advantage of using Pixi is that you can rely on pre-built artifacts rather than adding Arrows build to your own.
Also, Pixi is of course also useful for managing other dependencies like Eigen or OpenCV,
as well as fr pinning the version of your build tooling.
@@ -49,7 +49,7 @@ If you want to use `pixi` to manage dependencies in your own project, you can si
project folder. This will create a `pixi.toml` file that manages the project. After that you can run
`pixi add arrow-cpp==10.0.1` to add arrow-cpp as a dependency to your project.
-Now, any pixi tasks added to your project will have access to the `arrow-cpp` library.
+Now, any Pixi tasks added to your project will have access to the `arrow-cpp` library.
Even without tasks, you can run `pixi shell` to create a shell environment where all your project dependencies
(including `arrow-cpp`) will be available. You can use this `pixi shell` to run you project's build commands.
@@ -61,7 +61,7 @@ Check out the [pixi docs](https://prefix.dev/docs/pixi/basic_usage) for more inf
The rerun-cpp example: ships with a `pixi.toml` file to manage
its dependencies, as well as a set of tasks to simplify running it.
-If you have pixi installed, all you need to do to run the example is:
+If you have Pixi installed, all you need to do to run the example is:
```
git clone https://github.com/rerun-io/cpp-example-opencv-eigen
cd cpp-example-opencv-eigen
@@ -71,9 +71,9 @@ pixi run example
### Known issues
β οΈ [#4050](https://github.com/rerun-io/rerun/issues/4050) `arrow-cpp` needs to be held back to 10.0.1 to avoid conflicts
-with the `rerun-sdk` package when installed in the same pixi environment.
+with the `rerun-sdk` package when installed in the same Pixi environment.
-β οΈ On Windows pixi only downloads release binaries which are **not** compatible with debug builds, causing runtime crashes.
+β οΈ On Windows Pixi only downloads release binaries which are **not** compatible with debug builds, causing runtime crashes.
For debug builds you have to build Arrow yourself, see [Building Arrow C++](https://arrow.apache.org/docs/developers/cpp/building.html)
or stick with `RERUN_DOWNLOAD_AND_BUILD_ARROW=ON`.
diff --git a/rerun_cpp/cmake_setup_in_detail.md b/rerun_cpp/cmake_setup_in_detail.md
index 030acaee1ae15..73732e1fa5a0c 100644
--- a/rerun_cpp/cmake_setup_in_detail.md
+++ b/rerun_cpp/cmake_setup_in_detail.md
@@ -72,7 +72,7 @@ This is generally only recommended for more advanced CMake setups.
As mentioned previously, by default Rerun's CMake script will download and build Arrow during its build.
Unless configured otherwise (see below) the resulting libraries are part of the `rerun_sdk` install.
-β οΈ This does currently not work for dynamic arrow libraries, i.e. if either one of
+β οΈ This does currently not work for dynamic Arrow libraries, i.e. if either one of
`RERUN_DOWNLOAD_AND_BUILD_ARROW=OFF` or `RERUN_ARROW_LINK_SHARED=ON` is set,
the install will use `find_package(Arrow)` to locate the Arrow library on your system.
@@ -114,7 +114,7 @@ is expected to be found in the Rerun C++ SDK distribution zip.
## RERUN_CPP_SOURCE_DIR
Path to the Rerun include and source directory, i.e. the directory that contains `rerun.hpp`.
-Note that rerun does not have separate folders for header (\*.hpp) and source (\*.cpp) files,
+Note that Rerun does not have separate folders for header (\*.hpp) and source (\*.cpp) files,
both are found inside `RERUN_CPP_SOURCE_DIR`.
By default is set to an absolute path that is determined by the location of Rerun's `CMakeLists.txt` itself.
diff --git a/rerun_cpp/src/rerun/datatypes/class_description.hpp b/rerun_cpp/src/rerun/datatypes/class_description.hpp
index 8d6db97d26668..1c63fc2b510c5 100644
--- a/rerun_cpp/src/rerun/datatypes/class_description.hpp
+++ b/rerun_cpp/src/rerun/datatypes/class_description.hpp
@@ -20,7 +20,7 @@ namespace arrow {
namespace rerun::datatypes {
/// **Datatype**: The description of a semantic Class.
///
- /// If an entity is annotated with a corresponding `ClassId`, rerun will use
+ /// If an entity is annotated with a corresponding `ClassId`, Rerun will use
/// the attached `AnnotationInfo` to derive labels and colors.
///
/// Keypoints within an annotation class can similarly be annotated with a
diff --git a/rerun_cpp/src/rerun/datatypes/quaternion.hpp b/rerun_cpp/src/rerun/datatypes/quaternion.hpp
index 6aee78a89490d..f5e9f65438da0 100644
--- a/rerun_cpp/src/rerun/datatypes/quaternion.hpp
+++ b/rerun_cpp/src/rerun/datatypes/quaternion.hpp
@@ -20,7 +20,7 @@ namespace rerun::datatypes {
/// **Datatype**: A Quaternion represented by 4 real numbers.
///
/// Note: although the x,y,z,w components of the quaternion will be passed through to the
- /// datastore as provided, when used in the viewer Quaternions will always be normalized.
+ /// datastore as provided, when used in the Viewer Quaternions will always be normalized.
struct Quaternion {
std::array xyzw;
diff --git a/rerun_js/web-viewer-react/README.md b/rerun_js/web-viewer-react/README.md
index e889006674b72..e28c27662670f 100644
--- a/rerun_js/web-viewer-react/README.md
+++ b/rerun_js/web-viewer-react/README.md
@@ -21,8 +21,8 @@ $ npm i @rerun-io/web-viewer-react
```
βΉοΈ Note:
-The package version is equal to the supported rerun SDK version.
-This means that `@rerun-io/web-viewer-react@0.10.0` can only connect to a data source (`.rrd` file, websocket connection, etc.) that originates from a rerun SDK with version `0.10.0`!
+The package version is equal to the supported Rerun SDK version.
+This means that `@rerun-io/web-viewer-react@0.10.0` can only connect to a data source (`.rrd` file, websocket connection, etc.) that originates from a Rerun SDK with version `0.10.0`!
## Usage
@@ -38,7 +38,7 @@ The `rrd` in the snippet above should be a URL pointing to either:
- A hosted `.rrd` file, such as
- A WebSocket connection to the SDK opened via the [`serve`](https://www.rerun.io/docs/reference/sdk-operating-modes#serve) API
-If `rrd` is not set, the viewer will display the same welcome screen as .
+If `rrd` is not set, the Viewer will display the same welcome screen as .
βΉοΈ Note:
This package only targets recent versions of browsers.
diff --git a/rerun_js/web-viewer/README.md b/rerun_js/web-viewer/README.md
index 0cd3162908920..579b5e6fffb1c 100644
--- a/rerun_js/web-viewer/README.md
+++ b/rerun_js/web-viewer/README.md
@@ -21,8 +21,8 @@ $ npm i @rerun-io/web-viewer
```
βΉοΈ Note:
-The package version is equal to the supported rerun SDK version.
-This means that `@rerun-io/web-viewer@0.10.0` can only connect to a data source (`.rrd` file, websocket connection, etc.) that originates from a rerun SDK with version `0.10.0`!
+The package version is equal to the supported Rerun SDK version.
+This means that `@rerun-io/web-viewer@0.10.0` can only connect to a data source (`.rrd` file, websocket connection, etc.) that originates from a Rerun SDK with version `0.10.0`!
## Usage
@@ -44,7 +44,7 @@ The `rrd` in the snippet above should be a URL pointing to either:
- A hosted `.rrd` file, such as
- A WebSocket connection to the SDK opened via the [`serve`](https://www.rerun.io/docs/reference/sdk-operating-modes#serve) API
-If `rrd` is not set, the viewer will display the same welcome screen as .
+If `rrd` is not set, the Viewer will display the same welcome screen as .
For a full example, see https://github.com/rerun-io/web-viewer-example.
You can open the example via CodeSandbox: https://codesandbox.io/s/github/rerun-io/web-viewer-example
diff --git a/rerun_py/ARCHITECTURE.md b/rerun_py/ARCHITECTURE.md
index 294f36c6e6a73..c09279db9d968 100644
--- a/rerun_py/ARCHITECTURE.md
+++ b/rerun_py/ARCHITECTURE.md
@@ -49,11 +49,11 @@ TODO(ab)
## Code generation
-Keeping the various SDKs in sync with the Rerun viewer requires automation to be tractable. The Python SDK is no exception, and large parts of its implementation is generated using the `re_types` and `re_types_builder` crates, based on the object definitions found in `crates/re_types/definitions` and the generation code found in `crates/re_types_builder/src/codegen/python.rs`.
+Keeping the various SDKs in sync with the Rerun Viewer requires automation to be tractable. The Python SDK is no exception, and large parts of its implementation is generated using the `re_types` and `re_types_builder` crates, based on the object definitions found in `crates/re_types/definitions` and the generation code found in `crates/re_types_builder/src/codegen/python.rs`.
#### Archetype
-In terms of code generation, archetypes are the simplest object. They consist of a native object whose fields are the various components that make up the archetype. The components are stored in their Arrow extension array form, such that they are ready to be sent to the Rerun viewer or saved to a `.rrd` file. The fields always use the respective component's extension array `from_similar()` method as converter.
+In terms of code generation, archetypes are the simplest object. They consist of a native object whose fields are the various components that make up the archetype. The components are stored in their Arrow extension array form, such that they are ready to be sent to the Rerun Viewer or saved to a `.rrd` file. The fields always use the respective component's extension array `from_similar()` method as converter.
The archetype native objects are the primary user-facing API of the Rerun SDK.
@@ -120,10 +120,10 @@ See `components/color_ext.py` for an example.
#### Native object Numpy conversion method (`__array__()`)
-If an object can be natively converted to a numpy array it should implement the `__array__()` method, which in turn
+If an object can be natively converted to a Numpy array it should implement the `__array__()` method, which in turn
allows Numpy to automatically ingest instances of that class in a controlled way.
-By default, this will be generated automatically for types which only contain a single field which is a numpy array. However,
+By default, this will be generated automatically for types which only contain a single field which is a Numpy array. However,
other types can still implement this method on the extension class directly, in which case the default implementation will
be skipped.
diff --git a/rerun_py/README.md b/rerun_py/README.md
index 0601a0a4b36d1..34a9172f2808a 100644
--- a/rerun_py/README.md
+++ b/rerun_py/README.md
@@ -40,9 +40,9 @@ rr.log("points3d", rr.Points3D(positions, colors=colors))
## Logging and viewing in different processes
-You can run the viewer and logger in different processes.
+You can run the Viewer and logger in different processes.
-In one terminal, start up a viewer with a server that the SDK can connect to:
+In one terminal, start up a Viewer with a server that the SDK can connect to:
```sh
python3 -m rerun
```
@@ -61,9 +61,9 @@ We use the [`pixi`](https://prefix.dev/) for managing dev-tool versioning, downl
```sh
pixi run py-build --release
```
-To build SDK & viewer for python (or `pixi run py-build` for a debug build) and install it in the pixi environment.
+To build SDK & Viewer for Python (or `pixi run py-build` for a debug build) and install it in the Pixi environment.
-You can then run examples from the repository, either by making the pixi shell active with `pixi shell` and then running python or by using `pixi run`, e.g. `pixi run python examples/python/minimal/minimal.py`.
+You can then run examples from the repository, either by making the Pixi shell active with `pixi shell` and then running Python or by using `pixi run`, e.g. `pixi run python examples/python/minimal/minimal.py`.
Respectively, to build a wheel instead for manual install use:
```sh
diff --git a/rerun_py/docs/writing_docs.md b/rerun_py/docs/writing_docs.md
index 59e78e0f757d4..fcc6029a6b840 100644
--- a/rerun_py/docs/writing_docs.md
+++ b/rerun_py/docs/writing_docs.md
@@ -1,6 +1,6 @@
# Python docs
-A high-level overview of writing and previewing the Rerun python documentation.
+A high-level overview of writing and previewing the Rerun Python documentation.
## Getting started with docs
diff --git a/rerun_py/rerun_sdk/rerun/datatypes/class_description.py b/rerun_py/rerun_sdk/rerun/datatypes/class_description.py
index bb366ff0e3ee5..adf45829ed73b 100644
--- a/rerun_py/rerun_sdk/rerun/datatypes/class_description.py
+++ b/rerun_py/rerun_sdk/rerun/datatypes/class_description.py
@@ -28,7 +28,7 @@ class ClassDescription(ClassDescriptionExt):
"""
**Datatype**: The description of a semantic Class.
- If an entity is annotated with a corresponding `ClassId`, rerun will use
+ If an entity is annotated with a corresponding `ClassId`, Rerun will use
the attached `AnnotationInfo` to derive labels and colors.
Keypoints within an annotation class can similarly be annotated with a
diff --git a/rerun_py/rerun_sdk/rerun/datatypes/quaternion.py b/rerun_py/rerun_sdk/rerun/datatypes/quaternion.py
index 83b3b72998f43..b489b61e4b816 100644
--- a/rerun_py/rerun_sdk/rerun/datatypes/quaternion.py
+++ b/rerun_py/rerun_sdk/rerun/datatypes/quaternion.py
@@ -27,7 +27,7 @@ class Quaternion(QuaternionExt):
**Datatype**: A Quaternion represented by 4 real numbers.
Note: although the x,y,z,w components of the quaternion will be passed through to the
- datastore as provided, when used in the viewer Quaternions will always be normalized.
+ datastore as provided, when used in the Viewer Quaternions will always be normalized.
"""
# __init__ can be found in quaternion_ext.py
diff --git a/scripts/lint.py b/scripts/lint.py
index cdf8f82456a13..6e764a7036ea6 100755
--- a/scripts/lint.py
+++ b/scripts/lint.py
@@ -661,45 +661,115 @@ def lint_workspace_lints(cargo_file_content: str) -> str | None:
# -----------------------------------------------------------------------------
+force_capitalized = [
+ "2D",
+ "3D",
+ "Apache",
+ "API",
+ "APIs",
+ "April",
+ "Bevy",
+ "C",
+ "C++",
+ "C++17,", # easier than coding up a special case
+ "C++17",
+ "Colab",
+ "Google",
+ "Jupyter",
+ "Linux",
+ "Mac",
+ "Numpy",
+ "nuScenes",
+ "Pixi",
+ "Python",
+ "Q1",
+ "Q2",
+ "Q3",
+ "Q4",
+ "Rerun",
+ "Rust",
+ "SAM",
+ "Wasm",
+ # "Arrow", # Would be nice to capitalize in the right context, but it's a too common word.
+ # "Windows", # Consider "multiple plot windows"
+]
+
+allow_capitalized = [
+ "Viewer", # Referring to the Rerun Viewer as just "the Viewer" is fine, but not all mentions of "viewer" are capitalized.
+ "Arrow", # Referring to the Apache Arrow project as just "Arrow" is fine, but not all mentions of "arrow" are capitalized.
+]
+
+force_capitalized_as_lower = [word.lower() for word in force_capitalized]
+allow_capitalized_as_lower = [word.lower() for word in allow_capitalized]
-def fix_header_casing(s: str) -> str:
- allowed_title_words = [
- "Apache",
- "APIs",
- "Arrow",
- "C",
- "C++",
- "Colab",
- "Google",
- "Jupyter",
- "Linux",
- "Numpy",
- "Pixi",
- "Python",
- "Rerun",
- "Rust",
- "Wasm",
- "Windows",
- ]
+def fix_header_casing(s: str) -> str:
def is_acronym_or_pascal_case(s: str) -> bool:
return sum(1 for c in s if c.isupper()) > 1
- new_words = []
+ new_words: list[str] = []
+ last_punctuation = None
+ inline_code_block = False
+
+ words = s.strip().split(" ")
- for i, word in enumerate(s.strip().split(" ")):
+ for i, word in enumerate(words):
if word == "":
continue
- if word.lower() in ("2d", "3d"):
- word = word.upper()
- elif is_acronym_or_pascal_case(word) or any(c in ("_", "(", ".") for c in word):
- pass # acroym, PascalCase, code, β¦
- elif i == 0:
- # First word:
+
+ if word.startswith("`"):
+ inline_code_block = True
+ if word.endswith("`"):
+ inline_code_block = False
+
+ if last_punctuation:
word = word.capitalize()
- else:
- if word not in allowed_title_words:
+ last_punctuation = None
+ elif not inline_code_block and not word.startswith("`") and not word.startswith('"'):
+ try:
+ idx = force_capitalized_as_lower.index(word.lower())
+ except ValueError:
+ idx = None
+
+ if word.endswith("?") or word.endswith("!") or word.endswith("."):
+ last_punctuation = word[-1]
+ word = word[:-1]
+ elif idx is not None:
+ word = force_capitalized[idx]
+ elif is_acronym_or_pascal_case(word) or any(c in ("_", "(", ".") for c in word):
+ pass # acroym, PascalCase, code, β¦
+ elif word.lower() in allow_capitalized_as_lower:
+ pass
+ elif i == 0:
+ # First word:
+ word = word.capitalize()
+ else:
word = word.lower()
+
+ new_words.append((word + last_punctuation) if last_punctuation else word)
+
+ return " ".join(new_words)
+
+
+def fix_enforced_upper_case(s: str) -> str:
+ new_words: list[str] = []
+ inline_code_block = False
+
+ for i, word in enumerate(s.split(" ")):
+ if word.startswith("`"):
+ inline_code_block = True
+ if word.endswith("`"):
+ inline_code_block = False
+
+ if word.strip() != "" and not inline_code_block and not word.startswith("`"):
+ try:
+ idx = force_capitalized_as_lower.index(word.lower())
+ except ValueError:
+ idx = None
+
+ if idx is not None:
+ word = force_capitalized[idx]
+
new_words.append(word)
return " ".join(new_words)
@@ -711,14 +781,23 @@ def lint_markdown(filepath: str, lines_in: list[str]) -> tuple[list[str], list[s
errors = []
lines_out = []
- in_example_readme = "/examples/python/" in filepath and filepath.endswith("README.md")
+ in_example_readme = (
+ "/examples/python/" in filepath
+ and filepath.endswith("README.md")
+ and not filepath.endswith("/examples/python/README.md")
+ )
+ in_changelog = filepath.endswith("CHANGELOG.md")
+ in_code_of_conduct = filepath.endswith("CODE_OF_CONDUCT.md")
+
+ if in_code_of_conduct:
+ return errors, lines_in
in_code_block = False
in_frontmatter = False
for line_nr, line in enumerate(lines_in):
line_nr = line_nr + 1
- if line.startswith("```"):
+ if line.strip().startswith("```"):
in_code_block = not in_code_block
if line.startswith(""):
in_frontmatter = False
- # Check the casing on markdown headers
- if m := re.match(r"(\#+ )(.*)", line):
- new_header = fix_header_casing(m.group(2))
- if new_header != m.group(2):
- errors.append(f"{line_nr}: Markdown headers should NOT be title cased. This should be '{new_header}'.")
- line = m.group(1) + new_header + "\n"
-
- # Check the casing on `title = "β¦"` frontmatter
- if m := re.match(r'title\s*\=\s*"(.*)"', line):
- new_title = fix_header_casing(m.group(1))
- if new_title != m.group(1):
- errors.append(f"{line_nr}: Titles should NOT be title cased. This should be '{new_title}'.")
- line = f'title = "{new_title}"\n'
-
- if in_example_readme and not in_code_block and not in_frontmatter:
- # Check that is not used in example READMEs
- if line.startswith("#") and not line.startswith("##"):
- errors.append(
- f"{line_nr}: Do not use top-level headers in example READMEs, they are reserved for page title."
- )
+ if not in_code_block:
+ # Check the casing on markdown headers
+ if not in_changelog and (m := re.match(r"(\#+ )(.*)", line)):
+ new_header = fix_header_casing(m.group(2))
+ if new_header != m.group(2):
+ errors.append(
+ f"{line_nr}: Markdown headers should NOT be title cased, except certain words which are always capitalized. This should be '{new_header}'."
+ )
+ line = m.group(1) + new_header + "\n"
+
+ # Check the casing on `title = "β¦"` frontmatter
+ elif m := re.match(r'title\s*\=\s*"(.*)"', line):
+ new_title = fix_header_casing(m.group(1))
+ if new_title != m.group(1):
+ errors.append(
+ f"{line_nr}: Titles should NOT be title cased, except certain words which are always capitalized. This should be '{new_title}'."
+ )
+ line = f'title = "{new_title}"\n'
+
+ # Enforce capitalization on certain words in the main text.
+ else:
+ new_line = fix_enforced_upper_case(line)
+ if new_line != line:
+ errors.append(f"{line_nr}: Certain words should be capitalized. This should be '{new_line}'.")
+ line = new_line
+
+ if in_example_readme and not in_frontmatter:
+ # Check that is not used in example READMEs
+ if line.startswith("#") and not line.startswith("##"):
+ errors.append(
+ f"{line_nr}: Do not use top-level headers in example READMEs, they are reserved for page title."
+ )
lines_out.append(line)
@@ -936,7 +1027,7 @@ def lint_file(filepath: str, args: Any) -> int:
if args.fix:
source.rewrite(lines_out)
- if filepath.endswith(".md") and args.extra:
+ if filepath.endswith(".md"):
errors, lines_out = lint_markdown(filepath, source.lines)
for error in errors:
@@ -1063,6 +1154,7 @@ def main() -> None:
exclude_paths = (
"./.github/workflows/reusable_checks.yml", # zombie TODO hunting job
+ "./.pytest_cache",
"./CODE_STYLE.md",
"./crates/re_types_builder/src/reflection.rs", # auto-generated
"./examples/assets",
@@ -1073,6 +1165,7 @@ def main() -> None:
"./rerun_cpp/docs/html",
"./rerun_cpp/src/rerun/c/arrow_c_data_interface.h", # Not our code
"./rerun_cpp/src/rerun/third_party/cxxopts.hpp", # vendored
+ "./rerun_py/.pytest_cache/",
"./rerun_py/site/", # is in `.gitignore` which this script doesn't fully respect
"./run_wasm/README.md", # Has a "2d" lowercase example in a code snippet
"./scripts/lint.py", # we contain all the patterns we are linting against
diff --git a/tests/README.md b/tests/README.md
index a91d9cb52420c..3e09d34504c81 100644
--- a/tests/README.md
+++ b/tests/README.md
@@ -1 +1 @@
-Uses of the rerun SDK designed to test different things.
+Uses of the Rerun SDK designed to test different things.
From 74998a4594c6531f9f9fe3dd14e968cbbd94df33 Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Tue, 14 May 2024 21:29:08 +0200
Subject: [PATCH 05/40] Documentation for archetype and views references each
other (#6319)
### What
* Fixes: #6082
* Based on: #6304
---
* Archetype link now to view that they show up in
* Views now link to archetypes that they support
* View page now lists properties with argument name and argument
documentation instead of type docs
* I also tried linking to the type's reference page but it got too much!
* changed name of 'link' section
Note to reviewer: Mind `Large diffs are not rendered by default.`!
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6319?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6319?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6319)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
.github/workflows/reusable_checks.yml | 2 +-
.../re_types/definitions/docs/attributes.fbs | 10 +
.../rerun/archetypes/annotation_context.fbs | 3 +-
.../definitions/rerun/archetypes/arrows2d.fbs | 3 +-
.../definitions/rerun/archetypes/arrows3d.fbs | 3 +-
.../definitions/rerun/archetypes/asset3d.fbs | 3 +-
.../rerun/archetypes/bar_chart.fbs | 3 +-
.../definitions/rerun/archetypes/boxes2d.fbs | 3 +-
.../definitions/rerun/archetypes/boxes3d.fbs | 3 +-
.../definitions/rerun/archetypes/clear.fbs | 3 +-
.../rerun/archetypes/depth_image.fbs | 3 +-
.../rerun/archetypes/disconnected_space.fbs | 3 +-
.../definitions/rerun/archetypes/image.fbs | 3 +-
.../rerun/archetypes/line_strips2d.fbs | 3 +-
.../rerun/archetypes/line_strips3d.fbs | 3 +-
.../definitions/rerun/archetypes/mesh3d.fbs | 3 +-
.../definitions/rerun/archetypes/pinhole.fbs | 3 +-
.../definitions/rerun/archetypes/points2d.fbs | 3 +-
.../definitions/rerun/archetypes/points3d.fbs | 3 +-
.../definitions/rerun/archetypes/scalar.fbs | 3 +-
.../rerun/archetypes/segmentation_image.fbs | 3 +-
.../rerun/archetypes/series_line.fbs | 3 +-
.../rerun/archetypes/series_point.fbs | 3 +-
.../definitions/rerun/archetypes/tensor.fbs | 3 +-
.../rerun/archetypes/text_document.fbs | 3 +-
.../definitions/rerun/archetypes/text_log.fbs | 3 +-
.../rerun/archetypes/transform3d.fbs | 3 +-
.../rerun/archetypes/view_coordinates.fbs | 3 +-
.../blueprint/archetypes/plot_legend.fbs | 1 +
.../blueprint/archetypes/scalar_axis.fbs | 1 +
.../archetypes/visible_time_ranges.fbs | 1 +
.../blueprint/archetypes/visual_bounds.fbs | 1 +
.../rerun/blueprint/views/bar_chart.fbs | 1 +
.../rerun/blueprint/views/spatial2d.fbs | 3 +-
.../rerun/blueprint/views/spatial3d.fbs | 3 +-
.../rerun/blueprint/views/tensor.fbs | 1 +
.../rerun/blueprint/views/text_document.fbs | 1 +
.../rerun/blueprint/views/text_log.fbs | 1 +
.../rerun/blueprint/views/time_series.fbs | 1 +
.../definitions/rerun/components/range1d.fbs | 1 +
.../definitions/rerun/components/range2d.fbs | 1 +
.../rerun/components/triangle_indices.fbs | 1 +
.../definitions/rerun/datatypes/range1d.fbs | 1 +
.../definitions/rerun/datatypes/range2d.fbs | 1 +
.../rerun/datatypes/visible_time_range.fbs | 3 +
.../src/blueprint/views/spatial2d_view.rs | 2 +-
.../src/blueprint/views/spatial3d_view.rs | 2 +-
.../re_types_builder/src/codegen/docs/mod.rs | 337 ++++++++++++------
crates/re_types_builder/src/lib.rs | 1 +
docs/content/howto/ros2-nav-turtlebot.md | 4 +-
docs/content/reference/types/archetypes.md | 3 +-
.../types/archetypes/annotation_context.md | 7 +-
.../reference/types/archetypes/arrows2d.md | 7 +-
.../reference/types/archetypes/arrows3d.md | 7 +-
.../reference/types/archetypes/asset3d.md | 7 +-
.../reference/types/archetypes/bar_chart.md | 6 +-
.../reference/types/archetypes/boxes2d.md | 7 +-
.../reference/types/archetypes/boxes3d.md | 7 +-
.../reference/types/archetypes/clear.md | 8 +-
.../reference/types/archetypes/depth_image.md | 7 +-
.../types/archetypes/disconnected_space.md | 7 +-
.../reference/types/archetypes/image.md | 7 +-
.../types/archetypes/line_strips2d.md | 7 +-
.../types/archetypes/line_strips3d.md | 7 +-
.../reference/types/archetypes/mesh3d.md | 7 +-
.../reference/types/archetypes/pinhole.md | 7 +-
.../reference/types/archetypes/points2d.md | 7 +-
.../reference/types/archetypes/points3d.md | 7 +-
.../reference/types/archetypes/scalar.md | 6 +-
.../types/archetypes/segmentation_image.md | 7 +-
.../reference/types/archetypes/series_line.md | 6 +-
.../types/archetypes/series_point.md | 6 +-
.../reference/types/archetypes/tensor.md | 7 +-
.../types/archetypes/text_document.md | 6 +-
.../reference/types/archetypes/text_log.md | 6 +-
.../reference/types/archetypes/transform3d.md | 7 +-
.../types/archetypes/view_coordinates.md | 6 +-
docs/content/reference/types/components.md | 1 -
.../types/components/annotation_context.md | 3 +-
.../reference/types/components/blob.md | 3 +-
.../reference/types/components/class_id.md | 3 +-
.../types/components/clear_is_recursive.md | 3 +-
.../reference/types/components/color.md | 3 +-
.../reference/types/components/depth_meter.md | 3 +-
.../types/components/disconnected_space.md | 3 +-
.../reference/types/components/draw_order.md | 3 +-
.../types/components/half_sizes2d.md | 3 +-
.../types/components/half_sizes3d.md | 3 +-
.../reference/types/components/keypoint_id.md | 3 +-
.../types/components/line_strip2d.md | 3 +-
.../types/components/line_strip3d.md | 3 +-
.../types/components/marker_shape.md | 3 +-
.../reference/types/components/marker_size.md | 3 +-
.../reference/types/components/material.md | 3 +-
.../reference/types/components/media_type.md | 3 +-
.../reference/types/components/name.md | 3 +-
.../components/out_of_tree_transform3d.md | 3 +-
.../types/components/pinhole_projection.md | 3 +-
.../reference/types/components/position2d.md | 3 +-
.../reference/types/components/position3d.md | 3 +-
.../reference/types/components/radius.md | 3 +-
.../reference/types/components/range1d.md | 9 +-
.../reference/types/components/range2d.md | 9 +-
.../reference/types/components/resolution.md | 3 +-
.../reference/types/components/rotation3d.md | 3 +-
.../reference/types/components/scalar.md | 3 +-
.../types/components/scalar_scattering.md | 3 +-
.../types/components/stroke_width.md | 3 +-
.../reference/types/components/tensor_data.md | 3 +-
.../reference/types/components/texcoord2d.md | 3 +-
.../reference/types/components/text.md | 3 +-
.../types/components/text_log_level.md | 3 +-
.../reference/types/components/transform3d.md | 3 +-
.../types/components/triangle_indices.md | 9 +-
.../reference/types/components/vector2d.md | 3 +-
.../reference/types/components/vector3d.md | 3 +-
.../types/components/view_coordinates.md | 3 +-
.../types/components/visualizer_overrides.md | 3 +-
docs/content/reference/types/datatypes.md | 1 -
.../reference/types/datatypes/angle.md | 3 +-
.../types/datatypes/annotation_info.md | 3 +-
.../content/reference/types/datatypes/bool.md | 3 +-
.../types/datatypes/class_description.md | 3 +-
.../datatypes/class_description_map_elem.md | 3 +-
.../reference/types/datatypes/class_id.md | 3 +-
.../reference/types/datatypes/entity_path.md | 3 +-
.../reference/types/datatypes/float32.md | 3 +-
.../reference/types/datatypes/keypoint_id.md | 3 +-
.../types/datatypes/keypoint_pair.md | 3 +-
.../reference/types/datatypes/mat3x3.md | 3 +-
.../reference/types/datatypes/mat4x4.md | 3 +-
.../reference/types/datatypes/material.md | 3 +-
.../reference/types/datatypes/quaternion.md | 3 +-
.../reference/types/datatypes/range1d.md | 13 +-
.../reference/types/datatypes/range2d.md | 11 +-
.../reference/types/datatypes/rgba32.md | 3 +-
.../reference/types/datatypes/rotation3d.md | 3 +-
.../types/datatypes/rotation_axis_angle.md | 3 +-
.../reference/types/datatypes/scale3d.md | 3 +-
.../types/datatypes/tensor_buffer.md | 3 +-
.../reference/types/datatypes/tensor_data.md | 3 +-
.../types/datatypes/tensor_dimension.md | 3 +-
.../reference/types/datatypes/time_int.md | 5 +-
.../reference/types/datatypes/time_range.md | 11 +-
.../types/datatypes/time_range_boundary.md | 11 +-
.../reference/types/datatypes/transform3d.md | 3 +-
.../types/datatypes/translation_and_mat3x3.md | 3 +-
.../datatypes/translation_rotation_scale3d.md | 3 +-
.../reference/types/datatypes/uint32.md | 3 +-
.../reference/types/datatypes/uint64.md | 3 +-
.../content/reference/types/datatypes/utf8.md | 5 +-
.../content/reference/types/datatypes/uuid.md | 3 +-
.../reference/types/datatypes/uvec2d.md | 3 +-
.../reference/types/datatypes/uvec3d.md | 5 +-
.../reference/types/datatypes/uvec4d.md | 3 +-
.../reference/types/datatypes/vec2d.md | 3 +-
.../reference/types/datatypes/vec3d.md | 3 +-
.../reference/types/datatypes/vec4d.md | 3 +-
.../types/datatypes/visible_time_range.md | 9 +-
docs/content/reference/types/views.md | 1 -
.../reference/types/views/bar_chart_view.md | 11 +-
.../reference/types/views/spatial2d_view.md | 58 +--
.../reference/types/views/spatial3d_view.md | 50 ++-
.../reference/types/views/tensor_view.md | 10 +-
.../types/views/text_document_view.md | 10 +-
.../reference/types/views/text_log_view.md | 10 +-
.../reference/types/views/time_series_view.md | 44 +--
examples/python/face_tracking/README.md | 2 +-
examples/python/gesture_detection/README.md | 2 +-
examples/python/ros_node/README.md | 2 +-
.../rerun/blueprint/views/spatial2d_view.py | 2 +-
.../rerun/blueprint/views/spatial3d_view.py | 2 +-
172 files changed, 790 insertions(+), 358 deletions(-)
diff --git a/.github/workflows/reusable_checks.yml b/.github/workflows/reusable_checks.yml
index 905f17d07cf51..316c2e440d820 100644
--- a/.github/workflows/reusable_checks.yml
+++ b/.github/workflows/reusable_checks.yml
@@ -203,4 +203,4 @@ jobs:
# When given a directory, lychee checks only markdown, html and text files, everything else we have to glob in manually.
# Pass --verbose, so that all considered links are printed, making it easier to debug.
args: |
- --verbose --base . "**/*.rs" "**/*.toml" "**/*.hpp" "**/*.cpp" "**/CMakeLists.txt" "**/*.py" "**/*.yml"
+ --verbose --base . "**/*.md" "**/*.rs" "**/*.toml" "**/*.hpp" "**/*.cpp" "**/CMakeLists.txt" "**/*.py" "**/*.yml"
diff --git a/crates/re_types/definitions/docs/attributes.fbs b/crates/re_types/definitions/docs/attributes.fbs
index 60dd49b482ee9..850005c0a2808 100644
--- a/crates/re_types/definitions/docs/attributes.fbs
+++ b/crates/re_types/definitions/docs/attributes.fbs
@@ -9,3 +9,13 @@ attribute "attr.docs.unreleased";
/// Apply to an archetype to set its category used in the docs.
attribute "attr.docs.category";
+
+/// Apply to an archetype to document which viewer support showing it.
+///
+/// This is expected to be a comma separated list of viewer types names.
+/// If additional information about the circumstances under which a viewer supports the archetype is needed,
+/// add it after a colon.
+///
+/// E.g.:
+/// "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
+attribute "attr.docs.view_types";
diff --git a/crates/re_types/definitions/rerun/archetypes/annotation_context.fbs b/crates/re_types/definitions/rerun/archetypes/annotation_context.fbs
index 33e672494679c..bf557da5adb03 100644
--- a/crates/re_types/definitions/rerun/archetypes/annotation_context.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/annotation_context.fbs
@@ -21,7 +21,8 @@ namespace rerun.archetypes;
/// \example archetypes/annotation_context_segmentation title="Segmentation" image="https://static.rerun.io/annotation_context_segmentation/0e21c0a04e456fec41d16b0deaa12c00cddf2d9b/1200w.png"
/// \example archetypes/annotation_context_connections !api title="Connections" image="https://static.rerun.io/annotation_context_connections/4a8422bc154699c5334f574ff01b55c5cd1748e3/1200w.png"
table AnnotationContext (
- "attr.rust.derive": "Eq, PartialEq"
+ "attr.rust.derive": "Eq, PartialEq",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView"
) {
/// List of class descriptions, mapping class indices to class names, colors etc.
context: rerun.components.AnnotationContext ("attr.rerun.component_required", order: 1000);
diff --git a/crates/re_types/definitions/rerun/archetypes/arrows2d.fbs b/crates/re_types/definitions/rerun/archetypes/arrows2d.fbs
index 4a0406a20392c..ffb73ee73de72 100644
--- a/crates/re_types/definitions/rerun/archetypes/arrows2d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/arrows2d.fbs
@@ -16,7 +16,8 @@ table Arrows2D (
"attr.rust.derive": "PartialEq",
"attr.rust.new_pub_crate",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Spatial 2D"
+ "attr.docs.category": "Spatial 2D",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/arrows3d.fbs b/crates/re_types/definitions/rerun/archetypes/arrows3d.fbs
index 08440745f651d..6168e0497e69d 100644
--- a/crates/re_types/definitions/rerun/archetypes/arrows3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/arrows3d.fbs
@@ -16,7 +16,8 @@ table Arrows3D (
"attr.rust.derive": "PartialEq",
"attr.rust.new_pub_crate",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/asset3d.fbs b/crates/re_types/definitions/rerun/archetypes/asset3d.fbs
index cf399cb3bf63d..b660bd04a8106 100644
--- a/crates/re_types/definitions/rerun/archetypes/asset3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/asset3d.fbs
@@ -16,7 +16,8 @@ namespace rerun.archetypes;
/// \example archetypes/asset3d_out_of_tree !api title="3D asset with out-of-tree transform"
table Asset3D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/bar_chart.fbs b/crates/re_types/definitions/rerun/archetypes/bar_chart.fbs
index 6a73aa9364029..7df87e0dc91f7 100644
--- a/crates/re_types/definitions/rerun/archetypes/bar_chart.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/bar_chart.fbs
@@ -13,7 +13,8 @@ namespace rerun.archetypes;
/// \example archetypes/bar_chart title="Simple bar chart" image="https://static.rerun.io/barchart_simple/cf6014b18265edfcaa562c06526c0716b296b193/1200w.png"
table BarChart (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Plotting"
+ "attr.docs.category": "Plotting",
+ "attr.docs.view_types": "BarChartView"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/boxes2d.fbs b/crates/re_types/definitions/rerun/archetypes/boxes2d.fbs
index d1437506c4530..2f5fe36574e45 100644
--- a/crates/re_types/definitions/rerun/archetypes/boxes2d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/boxes2d.fbs
@@ -16,7 +16,8 @@ table Boxes2D (
"attr.rust.derive": "PartialEq",
"attr.rust.new_pub_crate",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Spatial 2D"
+ "attr.docs.category": "Spatial 2D",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/boxes3d.fbs b/crates/re_types/definitions/rerun/archetypes/boxes3d.fbs
index bd0a904049129..a7f6141c5ad62 100644
--- a/crates/re_types/definitions/rerun/archetypes/boxes3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/boxes3d.fbs
@@ -17,7 +17,8 @@ table Boxes3D (
"attr.rust.derive": "PartialEq",
"attr.rust.new_pub_crate",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/clear.fbs b/crates/re_types/definitions/rerun/archetypes/clear.fbs
index 076808f0cc2c0..d01938216e96f 100644
--- a/crates/re_types/definitions/rerun/archetypes/clear.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/clear.fbs
@@ -23,7 +23,8 @@ namespace rerun.archetypes;
/// \example archetypes/clear_recursive !api "Recursive"
table Clear (
"attr.rust.derive": "PartialEq, Eq",
- "attr.rust.override_crate": "re_types_core"
+ "attr.rust.override_crate": "re_types_core",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView, TimeSeriesView"
) {
is_recursive: rerun.components.ClearIsRecursive ("attr.rerun.component_required", order: 100);
}
diff --git a/crates/re_types/definitions/rerun/archetypes/depth_image.fbs b/crates/re_types/definitions/rerun/archetypes/depth_image.fbs
index aa93255941086..4737428d30463 100644
--- a/crates/re_types/definitions/rerun/archetypes/depth_image.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/depth_image.fbs
@@ -20,7 +20,8 @@ namespace rerun.archetypes;
table DepthImage (
"attr.rust.derive": "PartialEq",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Image & tensor"
+ "attr.docs.category": "Image & tensor",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/disconnected_space.fbs b/crates/re_types/definitions/rerun/archetypes/disconnected_space.fbs
index 2b55aca049d68..a80e382a67837 100644
--- a/crates/re_types/definitions/rerun/archetypes/disconnected_space.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/disconnected_space.fbs
@@ -14,7 +14,8 @@ namespace rerun.archetypes;
///
/// \example archetypes/disconnected_space title="Disconnected space" image="https://static.rerun.io/disconnected_space/b8f95b0e32359de625a765247c84935146c1fba9/1200w.png"
table DisconnectedSpace (
- "attr.rust.derive": "Copy, PartialEq, Eq"
+ "attr.rust.derive": "Copy, PartialEq, Eq",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView"
) {
/// Whether the entity path at which this is logged is disconnected from its parent.
disconnected_space: rerun.components.DisconnectedSpace ("attr.rerun.component_required", order: 1000);
diff --git a/crates/re_types/definitions/rerun/archetypes/image.fbs b/crates/re_types/definitions/rerun/archetypes/image.fbs
index d41f699dcd7f1..9ff65cec7d84d 100644
--- a/crates/re_types/definitions/rerun/archetypes/image.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/image.fbs
@@ -35,7 +35,8 @@ namespace rerun.archetypes;
table Image (
"attr.rust.derive": "PartialEq",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Image & tensor"
+ "attr.docs.category": "Image & tensor",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/line_strips2d.fbs b/crates/re_types/definitions/rerun/archetypes/line_strips2d.fbs
index 1566c801a2a71..74f340e838a26 100644
--- a/crates/re_types/definitions/rerun/archetypes/line_strips2d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/line_strips2d.fbs
@@ -14,7 +14,8 @@ namespace rerun.archetypes;
/// \example archetypes/line_strip2d_batch image="https://static.rerun.io/line_strip2d_batch/d8aae7ca3d6c3b0e3b636de60b8067fa2f0b6db9/1200w.png"
table LineStrips2D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 2D"
+ "attr.docs.category": "Spatial 2D",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/line_strips3d.fbs b/crates/re_types/definitions/rerun/archetypes/line_strips3d.fbs
index 68240203cbf40..f3beb59956723 100644
--- a/crates/re_types/definitions/rerun/archetypes/line_strips3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/line_strips3d.fbs
@@ -14,7 +14,8 @@ namespace rerun.archetypes;
/// \example archetypes/line_strip3d_batch title="Many strips" image="https://static.rerun.io/line_strip3d_batch/102e5ec5271475657fbc76b469267e4ec8e84337/1200w.png"
table LineStrips3D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/mesh3d.fbs b/crates/re_types/definitions/rerun/archetypes/mesh3d.fbs
index 14810ef5ff0c2..eec6ce93c5dd1 100644
--- a/crates/re_types/definitions/rerun/archetypes/mesh3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/mesh3d.fbs
@@ -16,7 +16,8 @@ namespace rerun.archetypes;
/// \example archetypes/mesh3d_partial_updates !api title="3D mesh with partial updates" image="https://static.rerun.io/mesh3d_partial_updates/a11e4accb0257dcd9531867b7e1d6fd5e3bee5c3/1200w.png"
table Mesh3D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 2D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/pinhole.fbs b/crates/re_types/definitions/rerun/archetypes/pinhole.fbs
index 942b69afe735a..4bceb23156178 100644
--- a/crates/re_types/definitions/rerun/archetypes/pinhole.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/pinhole.fbs
@@ -12,7 +12,8 @@ namespace rerun.archetypes;
/// \example archetypes/pinhole_perspective title="Perspective pinhole camera" image="https://static.rerun.io/pinhole_perspective/d0bd02a0cf354a5c8eafb79a84fe8674335cab98/1200w.png"
table Pinhole (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial2DView, Spatial2DView"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/points2d.fbs b/crates/re_types/definitions/rerun/archetypes/points2d.fbs
index 5dff7facde008..b42087b5fa548 100644
--- a/crates/re_types/definitions/rerun/archetypes/points2d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/points2d.fbs
@@ -15,7 +15,8 @@ namespace rerun.archetypes;
/// \example archetypes/point2d_random title="Randomly distributed 2D points with varying color and radius" image="https://static.rerun.io/point2d_random/8e8ac75373677bd72bd3f56a15e44fcab309a168/1200w.png"
table Points2D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 2D"
+ "attr.docs.category": "Spatial 2D",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/points3d.fbs b/crates/re_types/definitions/rerun/archetypes/points3d.fbs
index 91219710405fb..f7034145be4eb 100644
--- a/crates/re_types/definitions/rerun/archetypes/points3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/points3d.fbs
@@ -13,7 +13,8 @@ namespace rerun.archetypes;
/// \example archetypes/point3d_random title="Randomly distributed 3D points with varying color and radius" image="https://static.rerun.io/point3d_random/7e94e1806d2c381943748abbb3bedb68d564de24/1200w.png"
table Points3D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/scalar.fbs b/crates/re_types/definitions/rerun/archetypes/scalar.fbs
index 4997fcd5c996d..e6b6831b499bd 100644
--- a/crates/re_types/definitions/rerun/archetypes/scalar.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/scalar.fbs
@@ -25,7 +25,8 @@ namespace rerun.archetypes;
/// \example archetypes/scalar_multiple_plots !api title="Multiple time series plots" image="https://static.rerun.io/scalar_multiple/15845c2a348f875248fbd694e03eabd922741c4c/1200w.png"
table Scalar (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Plotting"
+ "attr.docs.category": "Plotting",
+ "attr.docs.view_types": "TimeSeriesView"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/segmentation_image.fbs b/crates/re_types/definitions/rerun/archetypes/segmentation_image.fbs
index 6386fa6734156..7018f8c206a2b 100644
--- a/crates/re_types/definitions/rerun/archetypes/segmentation_image.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/segmentation_image.fbs
@@ -28,7 +28,8 @@ namespace rerun.archetypes;
table SegmentationImage (
"attr.rust.derive": "PartialEq",
"attr.cpp.no_field_ctors",
- "attr.docs.category": "Image & tensor"
+ "attr.docs.category": "Image & tensor",
+ "attr.docs.view_types": "Spatial2DView, Spatial3DView: if logged under a projection"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/series_line.fbs b/crates/re_types/definitions/rerun/archetypes/series_line.fbs
index bb5cc846a2569..ca2ca96525623 100644
--- a/crates/re_types/definitions/rerun/archetypes/series_line.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/series_line.fbs
@@ -19,7 +19,8 @@ namespace rerun.archetypes;
///
/// \example archetypes/series_line_style title="Line series" image="https://static.rerun.io/series_line_style/d2616d98b1e46bdb85849b8669154fdf058e3453/1200w.png"
table SeriesLine (
- "attr.docs.category": "Plotting"
+ "attr.docs.category": "Plotting",
+ "attr.docs.view_types": "TimeSeriesView"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/series_point.fbs b/crates/re_types/definitions/rerun/archetypes/series_point.fbs
index 736c25d9cc208..b40d982adec21 100644
--- a/crates/re_types/definitions/rerun/archetypes/series_point.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/series_point.fbs
@@ -19,7 +19,8 @@ namespace rerun.archetypes;
///
/// \example archetypes/series_point_style title="Point series" image="https://static.rerun.io/series_point_style/82207a705da6c086b28ce161db1db9e8b12258b7/1200w.png"
table SeriesPoint (
- "attr.docs.category": "Plotting"
+ "attr.docs.category": "Plotting",
+ "attr.docs.view_types": "TimeSeriesView"
) {
// --- Required ---
diff --git a/crates/re_types/definitions/rerun/archetypes/tensor.fbs b/crates/re_types/definitions/rerun/archetypes/tensor.fbs
index aebf81ac56690..94ddff21d2658 100644
--- a/crates/re_types/definitions/rerun/archetypes/tensor.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/tensor.fbs
@@ -15,7 +15,8 @@ namespace rerun.archetypes;
/// \example archetypes/tensor_simple title="Simple tensor" image="https://static.rerun.io/tensor_simple/baacb07712f7b706e3c80e696f70616c6c20b367/1200w.png"
table Tensor (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Image & tensor"
+ "attr.docs.category": "Image & tensor",
+ "attr.docs.view_types": "TensorView, BarChartView: for 1D tensors"
) {
/// The tensor data
data: rerun.components.TensorData ("attr.rerun.component_required", order: 1000);
diff --git a/crates/re_types/definitions/rerun/archetypes/text_document.fbs b/crates/re_types/definitions/rerun/archetypes/text_document.fbs
index b80c001d09e63..6bdade3db2ce7 100644
--- a/crates/re_types/definitions/rerun/archetypes/text_document.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/text_document.fbs
@@ -14,7 +14,8 @@ namespace rerun.archetypes;
/// \example archetypes/text_document title="Markdown text document" image="https://static.rerun.io/textdocument/babda19558ee32ed8d730495b595aee7a5e2c174/1200w.png"
table TextDocument (
"attr.rust.derive": "PartialEq, Eq",
- "attr.docs.category": "Text"
+ "attr.docs.category": "Text",
+ "attr.docs.view_types": "TextDocumentView"
) {
/// Contents of the text document.
text: rerun.components.Text ("attr.rerun.component_required", order: 100);
diff --git a/crates/re_types/definitions/rerun/archetypes/text_log.fbs b/crates/re_types/definitions/rerun/archetypes/text_log.fbs
index 53f87d5b0907c..85faebb7fdceb 100644
--- a/crates/re_types/definitions/rerun/archetypes/text_log.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/text_log.fbs
@@ -12,7 +12,8 @@ namespace rerun.archetypes;
/// \example archetypes/text_log_integration text="Logging text directly or via a logger" image="https://static.rerun.io/text_log_integration/9737d0c986325802a9885499d6fcc773b1736488/1200w.png"
table TextLog (
"attr.rust.derive": "PartialEq, Eq",
- "attr.docs.category": "Text"
+ "attr.docs.category": "Text",
+ "attr.docs.view_types": "TextLogView"
) {
/// The body of the message.
text: rerun.components.Text ("attr.rerun.component_required", order: 100);
diff --git a/crates/re_types/definitions/rerun/archetypes/transform3d.fbs b/crates/re_types/definitions/rerun/archetypes/transform3d.fbs
index 25d81d275e0b0..9df36ae4dd87a 100644
--- a/crates/re_types/definitions/rerun/archetypes/transform3d.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/transform3d.fbs
@@ -11,7 +11,8 @@ namespace rerun.archetypes;
/// \example archetypes/transform3d_simple title="Variety of 3D transforms" image="https://static.rerun.io/transform3d_simple/141368b07360ce3fcb1553079258ae3f42bdb9ac/1200w.png"
table Transform3D (
"attr.rust.derive": "PartialEq",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView, Spatial2DView: if logged above active projection"
) {
/// The transform
transform: rerun.components.Transform3D ("attr.rerun.component_required", order: 1000);
diff --git a/crates/re_types/definitions/rerun/archetypes/view_coordinates.fbs b/crates/re_types/definitions/rerun/archetypes/view_coordinates.fbs
index 3d6932800b51c..7c9ebaf85d38a 100644
--- a/crates/re_types/definitions/rerun/archetypes/view_coordinates.fbs
+++ b/crates/re_types/definitions/rerun/archetypes/view_coordinates.fbs
@@ -19,7 +19,8 @@ namespace rerun.archetypes;
table ViewCoordinates (
"attr.rust.derive": "Copy, PartialEq, Eq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "transparent",
- "attr.docs.category": "Spatial 3D"
+ "attr.docs.category": "Spatial 3D",
+ "attr.docs.view_types": "Spatial3DView"
) {
/// The directions of the [x, y, z] axes.
xyz: rerun.components.ViewCoordinates ("attr.rerun.component_required", required, order: 1000);
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/plot_legend.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/plot_legend.fbs
index 0ddfb7164c67b..e3c0f01c77a02 100644
--- a/crates/re_types/definitions/rerun/blueprint/archetypes/plot_legend.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/archetypes/plot_legend.fbs
@@ -12,6 +12,7 @@ namespace rerun.blueprint.archetypes;
/// Configuration for the legend of a plot.
table PlotLegend (
+ "attr.docs.unreleased",
"attr.rerun.scope": "blueprint",
"attr.rust.derive": "Default",
"attr.python.aliases": "blueprint_components.Corner2D"
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/scalar_axis.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/scalar_axis.fbs
index a6585d0bf8aaf..0ed7fedfa4c2c 100644
--- a/crates/re_types/definitions/rerun/blueprint/archetypes/scalar_axis.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/archetypes/scalar_axis.fbs
@@ -12,6 +12,7 @@ namespace rerun.blueprint.archetypes;
/// Configuration for the scalar axis of a plot.
table ScalarAxis (
+ "attr.docs.unreleased",
"attr.rerun.scope": "blueprint",
"attr.rust.derive": "Default"
) {
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/visible_time_ranges.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/visible_time_ranges.fbs
index 8f8b44cdd6d61..b20d0723c467c 100644
--- a/crates/re_types/definitions/rerun/blueprint/archetypes/visible_time_ranges.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/archetypes/visible_time_ranges.fbs
@@ -19,6 +19,7 @@ namespace rerun.blueprint.archetypes;
/// - For time series views, the default is to show the entire timeline.
/// - For any other view, the default is to apply latest-at semantics.
table VisibleTimeRanges (
+ "attr.docs.unreleased",
"attr.rerun.scope": "blueprint",
"attr.rust.derive": "Default",
"attr.python.aliases": "datatypes.VisibleTimeRangeLike, Sequence[datatypes.VisibleTimeRangeLike]"
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
index bf25d96411886..ce68bde907491 100644
--- a/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
@@ -10,6 +10,7 @@ namespace rerun.blueprint.archetypes;
/// Controls the visual bounds of a 2D space view.
table VisualBounds (
+ "attr.docs.unreleased",
"attr.rerun.scope": "blueprint",
"attr.rust.derive": "Copy"
) {
diff --git a/crates/re_types/definitions/rerun/blueprint/views/bar_chart.fbs b/crates/re_types/definitions/rerun/blueprint/views/bar_chart.fbs
index b32ae55bcfc7a..30ad9f824a1c7 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/bar_chart.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/bar_chart.fbs
@@ -6,6 +6,7 @@ namespace rerun.blueprint.views;
///
/// \example views/bar_chart title="Use a blueprint to create a BarChartView." image="https://static.rerun.io/bar_chart_view/74fa45af3c7310b51cd283c37439ed8f8ca9356d/1200w.png"
table BarChartView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "BarChart"
) {
}
diff --git a/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs b/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
index 315d2a232738b..dde4566c65646 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
@@ -6,9 +6,10 @@ namespace rerun.blueprint.views;
///
/// \example views/spatial2d title="Use a blueprint to customize a Spatial2DView." image="https://static.rerun.io/spatial2d/074c0822870325d6502c9f51c165c1181a20e83f/1200w.png"
table Spatial2DView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "2D"
) {
- /// Configuration for the background of the space view.
+ /// Configuration for the background of the view.
background: rerun.blueprint.archetypes.Background (order: 1000);
/// The visible parts of the scene, in the coordinate space of the scene.
diff --git a/crates/re_types/definitions/rerun/blueprint/views/spatial3d.fbs b/crates/re_types/definitions/rerun/blueprint/views/spatial3d.fbs
index e7aad9f55e44a..78e83aaf31665 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/spatial3d.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/spatial3d.fbs
@@ -6,9 +6,10 @@ namespace rerun.blueprint.views;
///
/// \example views/spatial3d title="Use a blueprint to customize a Spatial3DView." image="https://static.rerun.io/spatial3d/4816694fc4176cc284ff30d9c8f06c936a625ac9/1200w.png"
table Spatial3DView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "3D"
) {
- /// Configuration for the background of the space view.
+ /// Configuration for the background of the view.
background: rerun.blueprint.archetypes.Background (order: 1000);
/// Configures which range on each timeline is shown by this view (unless specified differently per entity).
diff --git a/crates/re_types/definitions/rerun/blueprint/views/tensor.fbs b/crates/re_types/definitions/rerun/blueprint/views/tensor.fbs
index 1abe8f13820ad..d65274632d5d4 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/tensor.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/tensor.fbs
@@ -6,6 +6,7 @@ namespace rerun.blueprint.views;
///
/// \example views/tensor title="Use a blueprint to create a TensorView." image="https://static.rerun.io/tensor_view/3b452ace3cdb29ada1a613eae8e8e8e165a1d396/1200w.png"
table TensorView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "Tensor"
) {
}
diff --git a/crates/re_types/definitions/rerun/blueprint/views/text_document.fbs b/crates/re_types/definitions/rerun/blueprint/views/text_document.fbs
index ebfeac2fc3e48..1a405fe3f49fe 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/text_document.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/text_document.fbs
@@ -6,6 +6,7 @@ namespace rerun.blueprint.views;
///
/// \example views/text_document title="Use a blueprint to show a text document." image="https://static.rerun.io/text_log/27f15235fe9639ff42b6ea0d2f0ce580685c021c/1200w.png"
table TextDocumentView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "TextDocument"
) {
}
diff --git a/crates/re_types/definitions/rerun/blueprint/views/text_log.fbs b/crates/re_types/definitions/rerun/blueprint/views/text_log.fbs
index baba4b31efc9e..fbf1e7a6db1da 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/text_log.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/text_log.fbs
@@ -6,6 +6,7 @@ namespace rerun.blueprint.views;
///
/// \example views/text_log title="Use a blueprint to show a TextLogView." image="https://static.rerun.io/text_log/457ab91ec42a481bacae4146c0fc01eee397bb86/1200w.png"
table TextLogView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "TextLog"
) {
}
diff --git a/crates/re_types/definitions/rerun/blueprint/views/time_series.fbs b/crates/re_types/definitions/rerun/blueprint/views/time_series.fbs
index f34ac48b9fa81..c253d14c3970c 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/time_series.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/time_series.fbs
@@ -6,6 +6,7 @@ namespace rerun.blueprint.views;
///
/// \example views/timeseries title="Use a blueprint to customize a TimeSeriesView." image="https://static.rerun.io/timeseries_view/c87150647feb413627fdb8563afe33b39d7dbf57/1200w.png"
table TimeSeriesView (
+ "attr.docs.unreleased",
"attr.rerun.view_identifier": "TimeSeries"
) {
/// Configures the vertical axis of the plot.
diff --git a/crates/re_types/definitions/rerun/components/range1d.fbs b/crates/re_types/definitions/rerun/components/range1d.fbs
index dff9586fbb51e..abd8f8dac53cb 100644
--- a/crates/re_types/definitions/rerun/components/range1d.fbs
+++ b/crates/re_types/definitions/rerun/components/range1d.fbs
@@ -11,6 +11,7 @@ namespace rerun.components;
/// A 1D range, specifying a lower and upper bound.
struct Range1D (
+ "attr.docs.unreleased",
"attr.rust.derive": "Copy, PartialEq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "transparent"
) {
diff --git a/crates/re_types/definitions/rerun/components/range2d.fbs b/crates/re_types/definitions/rerun/components/range2d.fbs
index 83f8f33741fd4..4a02119f5f5dc 100644
--- a/crates/re_types/definitions/rerun/components/range2d.fbs
+++ b/crates/re_types/definitions/rerun/components/range2d.fbs
@@ -11,6 +11,7 @@ namespace rerun.components;
/// An Axis-Aligned Bounding Box in 2D space.
struct Range2D (
+ "attr.docs.unreleased",
"attr.rust.derive": "Copy, PartialEq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "transparent"
) {
diff --git a/crates/re_types/definitions/rerun/components/triangle_indices.fbs b/crates/re_types/definitions/rerun/components/triangle_indices.fbs
index 9aec0cc423dee..bf6fe972af981 100644
--- a/crates/re_types/definitions/rerun/components/triangle_indices.fbs
+++ b/crates/re_types/definitions/rerun/components/triangle_indices.fbs
@@ -11,6 +11,7 @@ namespace rerun.components;
/// The three indices of a triangle mesh.
struct TriangleIndices (
+ "attr.docs.unreleased",
"attr.rust.derive": "Copy, PartialEq, Eq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "transparent"
) {
diff --git a/crates/re_types/definitions/rerun/datatypes/range1d.fbs b/crates/re_types/definitions/rerun/datatypes/range1d.fbs
index 451fd24527fe3..ecd8a7c96d3af 100644
--- a/crates/re_types/definitions/rerun/datatypes/range1d.fbs
+++ b/crates/re_types/definitions/rerun/datatypes/range1d.fbs
@@ -11,6 +11,7 @@ namespace rerun.datatypes;
/// A 1D range, specifying a lower and upper bound.
struct Range1D (
+ "attr.docs.unreleased",
"attr.arrow.transparent",
"attr.python.aliases": "npt.NDArray[Any], npt.ArrayLike, Sequence[float], slice",
"attr.python.array_aliases": "npt.NDArray[Any], npt.ArrayLike, Sequence[Sequence[float]], Sequence[float]",
diff --git a/crates/re_types/definitions/rerun/datatypes/range2d.fbs b/crates/re_types/definitions/rerun/datatypes/range2d.fbs
index afc340d21d644..df8fbbbea0f68 100644
--- a/crates/re_types/definitions/rerun/datatypes/range2d.fbs
+++ b/crates/re_types/definitions/rerun/datatypes/range2d.fbs
@@ -12,6 +12,7 @@ namespace rerun.datatypes;
/// An Axis-Aligned Bounding Box in 2D space, implemented as the minimum and maximum corners.
struct Range2D (
+ "attr.docs.unreleased",
"attr.rust.derive": "Default, Copy, PartialEq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "C"
) {
diff --git a/crates/re_types/definitions/rerun/datatypes/visible_time_range.fbs b/crates/re_types/definitions/rerun/datatypes/visible_time_range.fbs
index 8ce18d1f93d51..2cdb3789b576e 100644
--- a/crates/re_types/definitions/rerun/datatypes/visible_time_range.fbs
+++ b/crates/re_types/definitions/rerun/datatypes/visible_time_range.fbs
@@ -12,6 +12,7 @@ namespace rerun.datatypes;
/// Left or right boundary of a time range.
union TimeRangeBoundary (
+ "attr.docs.unreleased",
"attr.rust.derive": "Copy, PartialEq, Eq",
"attr.rust.override_crate": "re_types_core"
) {
@@ -28,6 +29,7 @@ union TimeRangeBoundary (
/// Visible time range bounds for a specific timeline.
// Has to be a table because flatbuffer doesn't support strings in structs.
table TimeRange (
+ "attr.docs.unreleased",
"attr.rust.derive": "PartialEq, Eq",
"attr.rust.override_crate": "re_types_core"
) {
@@ -42,6 +44,7 @@ table TimeRange (
/// Visible time range bounds for a specific timeline.
// Has to be a table because flatbuffer doesn't support strings in structs.
table VisibleTimeRange (
+ "attr.docs.unreleased",
"attr.rust.derive": "PartialEq, Eq",
"attr.rust.override_crate": "re_types_core"
) {
diff --git a/crates/re_types/src/blueprint/views/spatial2d_view.rs b/crates/re_types/src/blueprint/views/spatial2d_view.rs
index 3d7be20b0cc2a..06fdae7b4bbfe 100644
--- a/crates/re_types/src/blueprint/views/spatial2d_view.rs
+++ b/crates/re_types/src/blueprint/views/spatial2d_view.rs
@@ -25,7 +25,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// **View**: A Spatial 2D view.
#[derive(Clone, Debug)]
pub struct Spatial2DView {
- /// Configuration for the background of the space view.
+ /// Configuration for the background of the view.
pub background: crate::blueprint::archetypes::Background,
/// The visible parts of the scene, in the coordinate space of the scene.
diff --git a/crates/re_types/src/blueprint/views/spatial3d_view.rs b/crates/re_types/src/blueprint/views/spatial3d_view.rs
index cbc039e986b63..4aff252cfe276 100644
--- a/crates/re_types/src/blueprint/views/spatial3d_view.rs
+++ b/crates/re_types/src/blueprint/views/spatial3d_view.rs
@@ -25,7 +25,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// **View**: A Spatial 3D view.
#[derive(Clone, Debug)]
pub struct Spatial3DView {
- /// Configuration for the background of the space view.
+ /// Configuration for the background of the view.
pub background: crate::blueprint::archetypes::Background,
/// Configures which range on each timeline is shown by this view (unless specified differently per entity).
diff --git a/crates/re_types_builder/src/codegen/docs/mod.rs b/crates/re_types_builder/src/codegen/docs/mod.rs
index 18a7341184f43..397992e89a755 100644
--- a/crates/re_types_builder/src/codegen/docs/mod.rs
+++ b/crates/re_types_builder/src/codegen/docs/mod.rs
@@ -1,4 +1,4 @@
-use std::fmt::Write;
+use std::{collections::BTreeMap, fmt::Write};
use camino::Utf8PathBuf;
use itertools::Itertools;
@@ -6,10 +6,11 @@ use itertools::Itertools;
use crate::{
codegen::{autogen_warning, common::ExampleInfo},
objects::FieldKind,
- CodeGenerator, GeneratedFiles, Object, ObjectKind, Objects, Reporter, Type,
+ CodeGenerator, GeneratedFiles, Object, ObjectField, ObjectKind, Objects, Reporter, Type,
+ ATTR_DOCS_VIEW_TYPES,
};
-type ObjectMap = std::collections::BTreeMap;
+type ObjectMap = BTreeMap;
macro_rules! putln {
($o:ident) => ( writeln!($o).ok() );
@@ -28,6 +29,14 @@ impl DocsCodeGenerator {
}
}
+struct ViewReference {
+ /// Typename of the view. Not a fully qualified name, just the name as specified on the attribute.
+ view_name: String,
+ explanation: Option,
+}
+
+type ViewsPerArchetype = BTreeMap>;
+
impl CodeGenerator for DocsCodeGenerator {
fn generate(
&mut self,
@@ -39,6 +48,9 @@ impl CodeGenerator for DocsCodeGenerator {
let mut files_to_write = GeneratedFiles::default();
+ // Gather view type mapping per object.
+ let views_per_archetype = collect_view_types_per_archetype(objects);
+
let (mut archetypes, mut components, mut datatypes, mut views) =
(Vec::new(), Vec::new(), Vec::new(), Vec::new());
let object_map = &objects.objects;
@@ -60,7 +72,7 @@ impl CodeGenerator for DocsCodeGenerator {
ObjectKind::View => views.push(object),
}
- let page = object_page(reporter, object, object_map);
+ let page = object_page(reporter, object, object_map, &views_per_archetype);
let path = self.docs_dir.join(format!(
"{}/{}.md",
object.kind.plural_snake_case(),
@@ -112,14 +124,36 @@ on [Entities and Components](../../concepts/entity-component.md).",
}
}
+fn collect_view_types_per_archetype(objects: &Objects) -> ViewsPerArchetype {
+ let mut view_types_per_object = ViewsPerArchetype::new();
+ for object in objects.objects.values() {
+ let Some(view_types) = object.try_get_attr::(ATTR_DOCS_VIEW_TYPES) else {
+ continue;
+ };
+
+ let view_types = view_types
+ .split(',')
+ .map(|view_type| {
+ let mut parts = view_type.splitn(2, ':');
+ let view_name = parts.next().unwrap().trim().to_owned();
+ let explanation = parts.next().map(|s| s.trim().to_owned());
+ ViewReference {
+ view_name,
+ explanation,
+ }
+ })
+ .collect();
+ view_types_per_object.insert(object.fqname.clone(), view_types);
+ }
+
+ view_types_per_object
+}
+
fn index_page(kind: ObjectKind, order: u64, prelude: &str, objects: &[&Object]) -> String {
let mut page = String::new();
write_frontmatter(&mut page, kind.plural_name(), Some(order));
putln!(page);
- // Can't put the autogen warning before the frontmatter, stuff breaks down then.
- putln!(page, "", autogen_warning!());
- putln!(page);
putln!(page, "{prelude}");
putln!(page);
@@ -174,7 +208,12 @@ fn index_page(kind: ObjectKind, order: u64, prelude: &str, objects: &[&Object])
page
}
-fn object_page(reporter: &Reporter, object: &Object, object_map: &ObjectMap) -> String {
+fn object_page(
+ reporter: &Reporter,
+ object: &Object,
+ object_map: &ObjectMap,
+ views_per_archetype: &ViewsPerArchetype,
+) -> String {
let is_unreleased = object.is_attr_set(crate::ATTR_DOCS_UNRELEASED);
let top_level_docs = object.docs.untagged();
@@ -218,79 +257,17 @@ fn object_page(reporter: &Reporter, object: &Object, object_map: &ObjectMap) ->
ObjectKind::Datatype | ObjectKind::Component => {
write_fields(&mut page, object, object_map);
}
- ObjectKind::Archetype => write_archetype_fields(&mut page, object, object_map),
+ ObjectKind::Archetype => {
+ write_archetype_fields(&mut page, object, object_map, views_per_archetype);
+ }
ObjectKind::View => {
- // TODO(#6082): Views should include the archetypes they know how to show
write_view_properties(reporter, &mut page, object, object_map);
}
}
- {
- let speculative_marker = if is_unreleased {
- "?speculative-link"
- } else {
- ""
- };
-
- putln!(page);
- putln!(page, "## Links");
-
- if object.kind == ObjectKind::View {
- // More complicated link due to scope
- putln!(
- page,
- " * π [Python API docs for `{}`](https://ref.rerun.io/docs/python/stable/common/{}_{}{}#rerun.{}.{}.{})",
- object.name,
- object.scope().unwrap_or_default(),
- object.kind.plural_snake_case(),
- speculative_marker,
- object.scope().unwrap_or_default(),
- object.kind.plural_snake_case(),
- object.name
- );
- } else {
- let cpp_link = if object.is_enum() {
- // Can't link to enums directly π€·
- format!(
- "https://ref.rerun.io/docs/cpp/stable/namespacererun_1_1{}.html",
- object.kind.plural_snake_case()
- )
- } else {
- // `_1` is doxygen's replacement for ':'
- // https://github.com/doxygen/doxygen/blob/Release_1_9_8/src/util.cpp#L3532
- format!(
- "https://ref.rerun.io/docs/cpp/stable/structrerun_1_1{}_1_1{}.html",
- object.kind.plural_snake_case(),
- object.name
- )
- };
-
- // In alphabetical order by language.
- putln!(
- page,
- " * π [C++ API docs for `{}`]({cpp_link}{speculative_marker})",
- object.name,
- );
- putln!(
- page,
- " * π [Python API docs for `{}`](https://ref.rerun.io/docs/python/stable/common/{}{}#rerun.{}.{})",
- object.name,
- object.kind.plural_snake_case(),
- speculative_marker,
- object.kind.plural_snake_case(),
- object.name
- );
-
- putln!(
- page,
- " * π¦ [Rust API docs for `{}`](https://docs.rs/rerun/latest/rerun/{}/{}.{}.html{speculative_marker})",
- object.name,
- object.kind.plural_snake_case(),
- if object.is_struct() { "struct" } else { "enum" },
- object.name,
- );
- }
- }
+ putln!(page);
+ putln!(page, "## Api reference links");
+ list_links(is_unreleased, &mut page, object);
putln!(page);
write_example_list(&mut page, &examples);
@@ -314,13 +291,85 @@ fn object_page(reporter: &Reporter, object: &Object, object_map: &ObjectMap) ->
}
}
ObjectKind::View => {
- // TODO(#6082): Implement view docs generation.
+ putln!(page);
+ write_visualized_archetypes(
+ reporter,
+ &mut page,
+ object,
+ object_map,
+ views_per_archetype,
+ );
}
}
page
}
+fn list_links(is_unreleased: bool, page: &mut String, object: &Object) {
+ let speculative_marker = if is_unreleased {
+ "?speculative-link"
+ } else {
+ ""
+ };
+
+ if object.kind == ObjectKind::View {
+ // More complicated link due to scope
+ putln!(
+ page,
+ " * π [Python API docs for `{}`](https://ref.rerun.io/docs/python/stable/common/{}_{}{}#rerun.{}.{}.{})",
+ object.name,
+ object.scope().unwrap_or_default(),
+ object.kind.plural_snake_case(),
+ speculative_marker,
+ object.scope().unwrap_or_default(),
+ object.kind.plural_snake_case(),
+ object.name
+ );
+ } else {
+ let cpp_link = if object.is_enum() {
+ // Can't link to enums directly π€·
+ format!(
+ "https://ref.rerun.io/docs/cpp/stable/namespacererun_1_1{}.html",
+ object.kind.plural_snake_case()
+ )
+ } else {
+ // `_1` is doxygen's replacement for ':'
+ // https://github.com/doxygen/doxygen/blob/Release_1_9_8/src/util.cpp#L3532
+ format!(
+ "https://ref.rerun.io/docs/cpp/stable/structrerun_1_1{}_1_1{}.html",
+ object.kind.plural_snake_case(),
+ object.name
+ )
+ };
+
+ // In alphabetical order by language.
+ putln!(
+ page,
+ " * π [C++ API docs for `{}`]({cpp_link}{speculative_marker})",
+ object.name,
+ );
+
+ putln!(
+ page,
+ " * π [Python API docs for `{}`](https://ref.rerun.io/docs/python/stable/common/{}{}#rerun.{}.{})",
+ object.name,
+ object.module_name().replace('/', "_"), // E.g. `blueprint_archetypes`
+ speculative_marker,
+ object.module_name().replace('/', "."), // E.g. `blueprint.archetypes`
+ object.name
+ );
+
+ putln!(
+ page,
+ " * π¦ [Rust API docs for `{}`](https://docs.rs/rerun/latest/rerun/{}/{}.{}.html{speculative_marker})",
+ object.name,
+ object.kind.plural_snake_case(),
+ if object.is_struct() { "struct" } else { "enum" },
+ object.name,
+ );
+ }
+}
+
fn write_frontmatter(o: &mut String, title: &str, order: Option) {
putln!(o, "---");
putln!(o, "title: {title:?}");
@@ -329,6 +378,8 @@ fn write_frontmatter(o: &mut String, title: &str, order: Option) {
putln!(o, "order: {order}");
}
putln!(o, "---");
+ // Can't put the autogen warning before the frontmatter, stuff breaks down then.
+ putln!(o, "", autogen_warning!());
}
fn write_fields(o: &mut String, object: &Object, object_map: &ObjectMap) {
@@ -453,7 +504,12 @@ fn write_used_by(o: &mut String, reporter: &Reporter, object: &Object, object_ma
}
}
-fn write_archetype_fields(o: &mut String, object: &Object, object_map: &ObjectMap) {
+fn write_archetype_fields(
+ page: &mut String,
+ object: &Object,
+ object_map: &ObjectMap,
+ view_per_archetype: &ViewsPerArchetype,
+) {
if object.fields.is_empty() {
return;
}
@@ -485,87 +541,146 @@ fn write_archetype_fields(o: &mut String, object: &Object, object_map: &ObjectMa
return;
}
- putln!(o, "## Components");
+ putln!(page, "## Components");
if !required.is_empty() {
- putln!(o);
- putln!(o, "**Required**: {}", required.join(", "));
+ putln!(page);
+ putln!(page, "**Required**: {}", required.join(", "));
}
if !recommended.is_empty() {
- putln!(o);
- putln!(o, "**Recommended**: {}", recommended.join(", "));
+ putln!(page);
+ putln!(page, "**Recommended**: {}", recommended.join(", "));
}
if !optional.is_empty() {
- putln!(o);
- putln!(o, "**Optional**: {}", optional.join(", "));
+ putln!(page);
+ putln!(page, "**Optional**: {}", optional.join(", "));
+ }
+
+ if let Some(view_types) = view_per_archetype.get(&object.fqname) {
+ putln!(page);
+ putln!(page, "## Shown in");
+ for ViewReference {
+ view_name,
+ explanation,
+ } in view_types
+ {
+ page.push_str(&format!(
+ "* [{view_name}](../views/{}.md)",
+ crate::to_snake_case(view_name)
+ ));
+ if let Some(explanation) = explanation {
+ page.push_str(&format!(" ({explanation})"));
+ }
+ putln!(page);
+ }
}
}
+fn write_visualized_archetypes(
+ reporter: &Reporter,
+ page: &mut String,
+ view: &Object,
+ object_map: &ObjectMap,
+ views_per_archetype: &ViewsPerArchetype,
+) {
+ let mut archetype_fqnames = Vec::new();
+ for (fqname, reference) in views_per_archetype {
+ for ViewReference {
+ view_name,
+ explanation,
+ } in reference
+ {
+ if view_name == &view.name {
+ archetype_fqnames.push((fqname.clone(), explanation));
+ }
+ }
+ }
+
+ if archetype_fqnames.is_empty() {
+ reporter.error(&view.virtpath, &view.fqname, "No archetypes use this view.");
+ return;
+ }
+
+ // Put the archetypes in alphabetical order but put the ones with extra explanation last.
+ archetype_fqnames.sort_by_key(|(fqname, explanation)| (explanation.is_some(), fqname.clone()));
+
+ putln!(page, "## Visualized archetypes");
+ putln!(page);
+ for (fqname, explanation) in archetype_fqnames {
+ let object = &object_map[&fqname];
+ page.push_str(&format!(
+ "* [`{}`](../{}/{}.md)",
+ object.name,
+ object.kind.plural_snake_case(),
+ object.snake_case_name()
+ ));
+ if let Some(explanation) = explanation {
+ page.push_str(&format!(" ({explanation})"));
+ }
+ putln!(page);
+ }
+ putln!(page);
+}
+
fn write_view_properties(
reporter: &Reporter,
- o: &mut String,
- object: &Object,
+ page: &mut String,
+ view: &Object,
object_map: &ObjectMap,
) {
- if object.fields.is_empty() {
+ if view.fields.is_empty() {
return;
}
- putln!(o, "## Properties");
- putln!(o);
+ putln!(page, "## Properties");
+ putln!(page);
// Each field in a view should be a property
- for field in &object.fields {
- let Some(fqname) = field.typ.fqname() else {
- continue;
- };
- let Some(ty) = object_map.get(fqname) else {
- continue;
- };
- write_view_property(reporter, o, ty, object_map);
+ for field in &view.fields {
+ write_view_property(reporter, page, field, object_map);
}
}
fn write_view_property(
reporter: &Reporter,
o: &mut String,
- object: &Object,
- _object_map: &ObjectMap,
+ field: &ObjectField,
+ object_map: &ObjectMap,
) {
- putln!(o, "### `{}`", object.name);
+ putln!(o, "### `{}`", field.name);
- let top_level_docs = object.docs.untagged();
+ let top_level_docs = field.docs.untagged();
if top_level_docs.is_empty() {
- reporter.error(
- &object.virtpath,
- &object.fqname,
- "Undocumented view property",
- );
+ reporter.error(&field.virtpath, &field.fqname, "Undocumented view property");
}
for line in top_level_docs {
putln!(o, "{line}");
}
- if object.fields.is_empty() {
+ // If there's more than one fields on this type, list them:
+ let Some(field_fqname) = field.typ.fqname() else {
return;
- }
+ };
+ let object = &object_map[field_fqname];
let mut fields = Vec::new();
for field in &object.fields {
fields.push(format!(
- "* {}: {}",
+ "* `{}`: {}",
field.name,
field.docs.first_line().unwrap_or_default()
));
}
- if !fields.is_empty() {
+ if fields.len() > 1 {
putln!(o);
for field in fields {
putln!(o, "{field}");
}
}
+
+ // Note that we don't list links to reference docs for this type since this causes a lot of clutter.
}
fn write_example_list(o: &mut String, examples: &[ExampleInfo<'_>]) {
diff --git a/crates/re_types_builder/src/lib.rs b/crates/re_types_builder/src/lib.rs
index 8bd05dfa86ef9..0c20ccc1a199b 100644
--- a/crates/re_types_builder/src/lib.rs
+++ b/crates/re_types_builder/src/lib.rs
@@ -196,6 +196,7 @@ pub const ATTR_CPP_NO_FIELD_CTORS: &str = "attr.cpp.no_field_ctors";
pub const ATTR_DOCS_UNRELEASED: &str = "attr.docs.unreleased";
pub const ATTR_DOCS_CATEGORY: &str = "attr.docs.category";
+pub const ATTR_DOCS_VIEW_TYPES: &str = "attr.docs.view_types";
// --- Entrypoints ---
diff --git a/docs/content/howto/ros2-nav-turtlebot.md b/docs/content/howto/ros2-nav-turtlebot.md
index dd585c39565df..a70ec8f2f77e2 100644
--- a/docs/content/howto/ros2-nav-turtlebot.md
+++ b/docs/content/howto/ros2-nav-turtlebot.md
@@ -36,7 +36,7 @@ Other relevant tutorials:
### ROS 2 & navigation
You will need to have installed [ROS 2 Humble Hawksbill](https://docs.ros.org/en/humble/index.html)
-and the [turtlebot3 navigation getting-started example](https://navigation.ros.org/getting_started/index.html).
+and the [turtlebot3 navigation getting-started example](https://docs.nav2.org/getting_started/index.html).
Installing ROS is outside the scope of this guide, but you will need the equivalent of the following packages:
@@ -46,7 +46,7 @@ $ sudo apt install ros-humble-desktop gazebo ros-humble-navigation2 ros-humble-t
If you don't already have ROS installed, we recommend trying [RoboStack](https://robostack.github.io/) for setting up your installation.
-Before proceeding, you should follow the [navigation example](https://navigation.ros.org/getting_started/index.html)
+Before proceeding, you should follow the [navigation example](https://docs.nav2.org/getting_started/index.html)
and confirm that you can successfully run:
```bash
diff --git a/docs/content/reference/types/archetypes.md b/docs/content/reference/types/archetypes.md
index f6d6a75eb7f6c..01feee9e34556 100644
--- a/docs/content/reference/types/archetypes.md
+++ b/docs/content/reference/types/archetypes.md
@@ -2,7 +2,6 @@
title: "Archetypes"
order: 1
---
-
Archetypes are bundles of components. This page lists all built-in components.
@@ -26,7 +25,6 @@ Archetypes are bundles of components. This page lists all built-in components.
* [`Arrows2D`](archetypes/arrows2d.md): 2D arrows with optional colors, radii, labels, etc.
* [`Boxes2D`](archetypes/boxes2d.md): 2D boxes with half-extents and optional center, rotations, rotations, colors etc.
* [`LineStrips2D`](archetypes/line_strips2d.md): 2D line strips with positions and optional colors, radii, labels, etc.
-* [`Mesh3D`](archetypes/mesh3d.md): A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
* [`Points2D`](archetypes/points2d.md): A 2D point cloud with positions and optional colors, radii, labels, etc.
## Spatial 3D
@@ -35,6 +33,7 @@ Archetypes are bundles of components. This page lists all built-in components.
* [`Asset3D`](archetypes/asset3d.md): A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
* [`Boxes3D`](archetypes/boxes3d.md): 3D boxes with half-extents and optional center, rotations, rotations, colors etc.
* [`LineStrips3D`](archetypes/line_strips3d.md): 3D line strips with positions and optional colors, radii, labels, etc.
+* [`Mesh3D`](archetypes/mesh3d.md): A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
* [`Pinhole`](archetypes/pinhole.md): Camera perspective projection (a.k.a. intrinsics).
* [`Points3D`](archetypes/points3d.md): A 3D point cloud with positions and optional colors, radii, labels, etc.
* [`Transform3D`](archetypes/transform3d.md): A 3D transform.
diff --git a/docs/content/reference/types/archetypes/annotation_context.md b/docs/content/reference/types/archetypes/annotation_context.md
index eb5531b169d55..0c609de38af62 100644
--- a/docs/content/reference/types/archetypes/annotation_context.md
+++ b/docs/content/reference/types/archetypes/annotation_context.md
@@ -1,6 +1,7 @@
---
title: "AnnotationContext"
---
+
The `AnnotationContext` provides additional information on how to display entities.
@@ -14,7 +15,11 @@ path.
**Required**: [`AnnotationContext`](../components/annotation_context.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md)
+
+## Api reference links
* π [C++ API docs for `AnnotationContext`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1AnnotationContext.html)
* π [Python API docs for `AnnotationContext`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.AnnotationContext)
* π¦ [Rust API docs for `AnnotationContext`](https://docs.rs/rerun/latest/rerun/archetypes/struct.AnnotationContext.html)
diff --git a/docs/content/reference/types/archetypes/arrows2d.md b/docs/content/reference/types/archetypes/arrows2d.md
index ffb2c804e478c..13512e8e11a5e 100644
--- a/docs/content/reference/types/archetypes/arrows2d.md
+++ b/docs/content/reference/types/archetypes/arrows2d.md
@@ -1,6 +1,7 @@
---
title: "Arrows2D"
---
+
2D arrows with optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ title: "Arrows2D"
**Optional**: [`Radius`](../components/radius.md), [`Color`](../components/color.md), [`Text`](../components/text.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `Arrows2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Arrows2D.html)
* π [Python API docs for `Arrows2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Arrows2D)
* π¦ [Rust API docs for `Arrows2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Arrows2D.html)
diff --git a/docs/content/reference/types/archetypes/arrows3d.md b/docs/content/reference/types/archetypes/arrows3d.md
index 12b5905fbce93..0ed60ffd48a09 100644
--- a/docs/content/reference/types/archetypes/arrows3d.md
+++ b/docs/content/reference/types/archetypes/arrows3d.md
@@ -1,6 +1,7 @@
---
title: "Arrows3D"
---
+
3D arrows with optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ title: "Arrows3D"
**Optional**: [`Radius`](../components/radius.md), [`Color`](../components/color.md), [`Text`](../components/text.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Arrows3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Arrows3D.html)
* π [Python API docs for `Arrows3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Arrows3D)
* π¦ [Rust API docs for `Arrows3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Arrows3D.html)
diff --git a/docs/content/reference/types/archetypes/asset3d.md b/docs/content/reference/types/archetypes/asset3d.md
index 4f3d70dd212ad..fab6f7f0cfcbb 100644
--- a/docs/content/reference/types/archetypes/asset3d.md
+++ b/docs/content/reference/types/archetypes/asset3d.md
@@ -1,6 +1,7 @@
---
title: "Asset3D"
---
+
A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
@@ -12,7 +13,11 @@ A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
**Optional**: [`OutOfTreeTransform3D`](../components/out_of_tree_transform3d.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Asset3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Asset3D.html)
* π [Python API docs for `Asset3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Asset3D)
* π¦ [Rust API docs for `Asset3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Asset3D.html)
diff --git a/docs/content/reference/types/archetypes/bar_chart.md b/docs/content/reference/types/archetypes/bar_chart.md
index 4f53af5f0e1b8..cb25d9ec68fc1 100644
--- a/docs/content/reference/types/archetypes/bar_chart.md
+++ b/docs/content/reference/types/archetypes/bar_chart.md
@@ -1,6 +1,7 @@
---
title: "BarChart"
---
+
A bar chart.
@@ -12,7 +13,10 @@ The x values will be the indices of the array, and the bar heights will be the p
**Optional**: [`Color`](../components/color.md)
-## Links
+## Shown in
+* [BarChartView](../views/bar_chart_view.md)
+
+## Api reference links
* π [C++ API docs for `BarChart`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1BarChart.html)
* π [Python API docs for `BarChart`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.BarChart)
* π¦ [Rust API docs for `BarChart`](https://docs.rs/rerun/latest/rerun/archetypes/struct.BarChart.html)
diff --git a/docs/content/reference/types/archetypes/boxes2d.md b/docs/content/reference/types/archetypes/boxes2d.md
index 31653dc1749e5..d200524839411 100644
--- a/docs/content/reference/types/archetypes/boxes2d.md
+++ b/docs/content/reference/types/archetypes/boxes2d.md
@@ -1,6 +1,7 @@
---
title: "Boxes2D"
---
+
2D boxes with half-extents and optional center, rotations, rotations, colors etc.
@@ -12,7 +13,11 @@ title: "Boxes2D"
**Optional**: [`Radius`](../components/radius.md), [`Text`](../components/text.md), [`DrawOrder`](../components/draw_order.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `Boxes2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Boxes2D.html)
* π [Python API docs for `Boxes2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Boxes2D)
* π¦ [Rust API docs for `Boxes2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Boxes2D.html)
diff --git a/docs/content/reference/types/archetypes/boxes3d.md b/docs/content/reference/types/archetypes/boxes3d.md
index c8cad6e987f36..0f4fac3ee5182 100644
--- a/docs/content/reference/types/archetypes/boxes3d.md
+++ b/docs/content/reference/types/archetypes/boxes3d.md
@@ -1,6 +1,7 @@
---
title: "Boxes3D"
---
+
3D boxes with half-extents and optional center, rotations, rotations, colors etc.
@@ -12,7 +13,11 @@ title: "Boxes3D"
**Optional**: [`Radius`](../components/radius.md), [`Text`](../components/text.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Boxes3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Boxes3D.html)
* π [Python API docs for `Boxes3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Boxes3D)
* π¦ [Rust API docs for `Boxes3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Boxes3D.html)
diff --git a/docs/content/reference/types/archetypes/clear.md b/docs/content/reference/types/archetypes/clear.md
index 60ec5ca659f6e..17aab4e71e0d3 100644
--- a/docs/content/reference/types/archetypes/clear.md
+++ b/docs/content/reference/types/archetypes/clear.md
@@ -1,6 +1,7 @@
---
title: "Clear"
---
+
Empties all the components of an entity.
@@ -18,7 +19,12 @@ data (i.e. discontinuous lines).
**Required**: [`ClearIsRecursive`](../components/clear_is_recursive.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md)
+* [TimeSeriesView](../views/time_series_view.md)
+
+## Api reference links
* π [C++ API docs for `Clear`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Clear.html)
* π [Python API docs for `Clear`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Clear)
* π¦ [Rust API docs for `Clear`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Clear.html)
diff --git a/docs/content/reference/types/archetypes/depth_image.md b/docs/content/reference/types/archetypes/depth_image.md
index 3685387641bbf..32d31e5bcd8c0 100644
--- a/docs/content/reference/types/archetypes/depth_image.md
+++ b/docs/content/reference/types/archetypes/depth_image.md
@@ -1,6 +1,7 @@
---
title: "DepthImage"
---
+
A depth image.
@@ -13,7 +14,11 @@ Each pixel corresponds to a depth value in units specified by `meter`.
**Optional**: [`DepthMeter`](../components/depth_meter.md), [`DrawOrder`](../components/draw_order.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `DepthImage`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1DepthImage.html)
* π [Python API docs for `DepthImage`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.DepthImage)
* π¦ [Rust API docs for `DepthImage`](https://docs.rs/rerun/latest/rerun/archetypes/struct.DepthImage.html)
diff --git a/docs/content/reference/types/archetypes/disconnected_space.md b/docs/content/reference/types/archetypes/disconnected_space.md
index 2cf5e111409bc..2ba2f259fd835 100644
--- a/docs/content/reference/types/archetypes/disconnected_space.md
+++ b/docs/content/reference/types/archetypes/disconnected_space.md
@@ -1,6 +1,7 @@
---
title: "DisconnectedSpace"
---
+
Spatially disconnect this entity from its parent.
@@ -13,7 +14,11 @@ This is useful for specifying that a subgraph is independent of the rest of the
**Required**: [`DisconnectedSpace`](../components/disconnected_space.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md)
+
+## Api reference links
* π [C++ API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1DisconnectedSpace.html)
* π [Python API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.DisconnectedSpace)
* π¦ [Rust API docs for `DisconnectedSpace`](https://docs.rs/rerun/latest/rerun/archetypes/struct.DisconnectedSpace.html)
diff --git a/docs/content/reference/types/archetypes/image.md b/docs/content/reference/types/archetypes/image.md
index 9f423f5193604..0dab4e5689bef 100644
--- a/docs/content/reference/types/archetypes/image.md
+++ b/docs/content/reference/types/archetypes/image.md
@@ -1,6 +1,7 @@
---
title: "Image"
---
+
A monochrome or color image.
@@ -25,7 +26,11 @@ Using these formats can save a lot of bandwidth and memory.
**Optional**: [`DrawOrder`](../components/draw_order.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `Image`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Image.html)
* π [Python API docs for `Image`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Image)
* π¦ [Rust API docs for `Image`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Image.html)
diff --git a/docs/content/reference/types/archetypes/line_strips2d.md b/docs/content/reference/types/archetypes/line_strips2d.md
index 316997686dda6..5e53f6eab5d9a 100644
--- a/docs/content/reference/types/archetypes/line_strips2d.md
+++ b/docs/content/reference/types/archetypes/line_strips2d.md
@@ -1,6 +1,7 @@
---
title: "LineStrips2D"
---
+
2D line strips with positions and optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ title: "LineStrips2D"
**Optional**: [`Text`](../components/text.md), [`DrawOrder`](../components/draw_order.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `LineStrips2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1LineStrips2D.html)
* π [Python API docs for `LineStrips2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.LineStrips2D)
* π¦ [Rust API docs for `LineStrips2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.LineStrips2D.html)
diff --git a/docs/content/reference/types/archetypes/line_strips3d.md b/docs/content/reference/types/archetypes/line_strips3d.md
index eefa9fa457a6c..63484e839d1e9 100644
--- a/docs/content/reference/types/archetypes/line_strips3d.md
+++ b/docs/content/reference/types/archetypes/line_strips3d.md
@@ -1,6 +1,7 @@
---
title: "LineStrips3D"
---
+
3D line strips with positions and optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ title: "LineStrips3D"
**Optional**: [`Text`](../components/text.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `LineStrips3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1LineStrips3D.html)
* π [Python API docs for `LineStrips3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.LineStrips3D)
* π¦ [Rust API docs for `LineStrips3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.LineStrips3D.html)
diff --git a/docs/content/reference/types/archetypes/mesh3d.md b/docs/content/reference/types/archetypes/mesh3d.md
index 8c30fe65f691d..6ff8b88a96018 100644
--- a/docs/content/reference/types/archetypes/mesh3d.md
+++ b/docs/content/reference/types/archetypes/mesh3d.md
@@ -1,6 +1,7 @@
---
title: "Mesh3D"
---
+
A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
@@ -12,7 +13,11 @@ A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
**Optional**: [`Color`](../components/color.md), [`Texcoord2D`](../components/texcoord2d.md), [`Material`](../components/material.md), [`TensorData`](../components/tensor_data.md), [`ClassId`](../components/class_id.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Mesh3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Mesh3D.html)
* π [Python API docs for `Mesh3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Mesh3D)
* π¦ [Rust API docs for `Mesh3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Mesh3D.html)
diff --git a/docs/content/reference/types/archetypes/pinhole.md b/docs/content/reference/types/archetypes/pinhole.md
index 6a4babbeeef99..847a1ca89da15 100644
--- a/docs/content/reference/types/archetypes/pinhole.md
+++ b/docs/content/reference/types/archetypes/pinhole.md
@@ -1,6 +1,7 @@
---
title: "Pinhole"
---
+
Camera perspective projection (a.k.a. intrinsics).
@@ -12,7 +13,11 @@ Camera perspective projection (a.k.a. intrinsics).
**Optional**: [`ViewCoordinates`](../components/view_coordinates.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md)
+
+## Api reference links
* π [C++ API docs for `Pinhole`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Pinhole.html)
* π [Python API docs for `Pinhole`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Pinhole)
* π¦ [Rust API docs for `Pinhole`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Pinhole.html)
diff --git a/docs/content/reference/types/archetypes/points2d.md b/docs/content/reference/types/archetypes/points2d.md
index 6230a50e53a11..a4a43a3cb8ef2 100644
--- a/docs/content/reference/types/archetypes/points2d.md
+++ b/docs/content/reference/types/archetypes/points2d.md
@@ -1,6 +1,7 @@
---
title: "Points2D"
---
+
A 2D point cloud with positions and optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ A 2D point cloud with positions and optional colors, radii, labels, etc.
**Optional**: [`Text`](../components/text.md), [`DrawOrder`](../components/draw_order.md), [`ClassId`](../components/class_id.md), [`KeypointId`](../components/keypoint_id.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `Points2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Points2D.html)
* π [Python API docs for `Points2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Points2D)
* π¦ [Rust API docs for `Points2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Points2D.html)
diff --git a/docs/content/reference/types/archetypes/points3d.md b/docs/content/reference/types/archetypes/points3d.md
index 9f0b1e59d4aa1..b234aa64d0801 100644
--- a/docs/content/reference/types/archetypes/points3d.md
+++ b/docs/content/reference/types/archetypes/points3d.md
@@ -1,6 +1,7 @@
---
title: "Points3D"
---
+
A 3D point cloud with positions and optional colors, radii, labels, etc.
@@ -12,7 +13,11 @@ A 3D point cloud with positions and optional colors, radii, labels, etc.
**Optional**: [`Text`](../components/text.md), [`ClassId`](../components/class_id.md), [`KeypointId`](../components/keypoint_id.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Points3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Points3D.html)
* π [Python API docs for `Points3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Points3D)
* π¦ [Rust API docs for `Points3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Points3D.html)
diff --git a/docs/content/reference/types/archetypes/scalar.md b/docs/content/reference/types/archetypes/scalar.md
index 4b4e5314de58c..d8a68ad256807 100644
--- a/docs/content/reference/types/archetypes/scalar.md
+++ b/docs/content/reference/types/archetypes/scalar.md
@@ -1,6 +1,7 @@
---
title: "Scalar"
---
+
Log a double-precision scalar.
@@ -16,7 +17,10 @@ the plot-specific archetypes through the blueprint.
**Required**: [`Scalar`](../components/scalar.md)
-## Links
+## Shown in
+* [TimeSeriesView](../views/time_series_view.md)
+
+## Api reference links
* π [C++ API docs for `Scalar`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Scalar.html)
* π [Python API docs for `Scalar`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Scalar)
* π¦ [Rust API docs for `Scalar`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Scalar.html)
diff --git a/docs/content/reference/types/archetypes/segmentation_image.md b/docs/content/reference/types/archetypes/segmentation_image.md
index ac92838c8963a..831aa70f783ea 100644
--- a/docs/content/reference/types/archetypes/segmentation_image.md
+++ b/docs/content/reference/types/archetypes/segmentation_image.md
@@ -1,6 +1,7 @@
---
title: "SegmentationImage"
---
+
An image made up of integer class-ids.
@@ -19,7 +20,11 @@ Leading and trailing unit-dimensions are ignored, so that
**Optional**: [`DrawOrder`](../components/draw_order.md)
-## Links
+## Shown in
+* [Spatial2DView](../views/spatial2d_view.md)
+* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
+
+## Api reference links
* π [C++ API docs for `SegmentationImage`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SegmentationImage.html)
* π [Python API docs for `SegmentationImage`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SegmentationImage)
* π¦ [Rust API docs for `SegmentationImage`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SegmentationImage.html)
diff --git a/docs/content/reference/types/archetypes/series_line.md b/docs/content/reference/types/archetypes/series_line.md
index f2a7278dc8c72..1de8c454fb938 100644
--- a/docs/content/reference/types/archetypes/series_line.md
+++ b/docs/content/reference/types/archetypes/series_line.md
@@ -1,6 +1,7 @@
---
title: "SeriesLine"
---
+
Define the style properties for a line series in a chart.
@@ -12,7 +13,10 @@ the `Scalar` archetype.
**Optional**: [`Color`](../components/color.md), [`StrokeWidth`](../components/stroke_width.md), [`Name`](../components/name.md)
-## Links
+## Shown in
+* [TimeSeriesView](../views/time_series_view.md)
+
+## Api reference links
* π [C++ API docs for `SeriesLine`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SeriesLine.html)
* π [Python API docs for `SeriesLine`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SeriesLine)
* π¦ [Rust API docs for `SeriesLine`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SeriesLine.html)
diff --git a/docs/content/reference/types/archetypes/series_point.md b/docs/content/reference/types/archetypes/series_point.md
index 6b5e35961f93e..feb0af8844c88 100644
--- a/docs/content/reference/types/archetypes/series_point.md
+++ b/docs/content/reference/types/archetypes/series_point.md
@@ -1,6 +1,7 @@
---
title: "SeriesPoint"
---
+
Define the style properties for a point series in a chart.
@@ -12,7 +13,10 @@ the `Scalar` archetype.
**Optional**: [`Color`](../components/color.md), [`MarkerShape`](../components/marker_shape.md), [`Name`](../components/name.md), [`MarkerSize`](../components/marker_size.md)
-## Links
+## Shown in
+* [TimeSeriesView](../views/time_series_view.md)
+
+## Api reference links
* π [C++ API docs for `SeriesPoint`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SeriesPoint.html)
* π [Python API docs for `SeriesPoint`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SeriesPoint)
* π¦ [Rust API docs for `SeriesPoint`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SeriesPoint.html)
diff --git a/docs/content/reference/types/archetypes/tensor.md b/docs/content/reference/types/archetypes/tensor.md
index a72a338fefa61..320ebd7b3e904 100644
--- a/docs/content/reference/types/archetypes/tensor.md
+++ b/docs/content/reference/types/archetypes/tensor.md
@@ -1,6 +1,7 @@
---
title: "Tensor"
---
+
A generic n-dimensional Tensor.
@@ -8,7 +9,11 @@ A generic n-dimensional Tensor.
**Required**: [`TensorData`](../components/tensor_data.md)
-## Links
+## Shown in
+* [TensorView](../views/tensor_view.md)
+* [BarChartView](../views/bar_chart_view.md) (for 1D tensors)
+
+## Api reference links
* π [C++ API docs for `Tensor`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Tensor.html)
* π [Python API docs for `Tensor`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Tensor)
* π¦ [Rust API docs for `Tensor`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Tensor.html)
diff --git a/docs/content/reference/types/archetypes/text_document.md b/docs/content/reference/types/archetypes/text_document.md
index 01b2b81de2263..d13bb5825a06b 100644
--- a/docs/content/reference/types/archetypes/text_document.md
+++ b/docs/content/reference/types/archetypes/text_document.md
@@ -1,6 +1,7 @@
---
title: "TextDocument"
---
+
A text element intended to be displayed in its own text-box.
@@ -12,7 +13,10 @@ Supports raw text and markdown.
**Optional**: [`MediaType`](../components/media_type.md)
-## Links
+## Shown in
+* [TextDocumentView](../views/text_document_view.md)
+
+## Api reference links
* π [C++ API docs for `TextDocument`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1TextDocument.html)
* π [Python API docs for `TextDocument`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.TextDocument)
* π¦ [Rust API docs for `TextDocument`](https://docs.rs/rerun/latest/rerun/archetypes/struct.TextDocument.html)
diff --git a/docs/content/reference/types/archetypes/text_log.md b/docs/content/reference/types/archetypes/text_log.md
index 485860603c171..7e4deb88ce2a8 100644
--- a/docs/content/reference/types/archetypes/text_log.md
+++ b/docs/content/reference/types/archetypes/text_log.md
@@ -1,6 +1,7 @@
---
title: "TextLog"
---
+
A log entry in a text log, comprised of a text body and its log level.
@@ -12,7 +13,10 @@ A log entry in a text log, comprised of a text body and its log level.
**Optional**: [`Color`](../components/color.md)
-## Links
+## Shown in
+* [TextLogView](../views/text_log_view.md)
+
+## Api reference links
* π [C++ API docs for `TextLog`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1TextLog.html)
* π [Python API docs for `TextLog`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.TextLog)
* π¦ [Rust API docs for `TextLog`](https://docs.rs/rerun/latest/rerun/archetypes/struct.TextLog.html)
diff --git a/docs/content/reference/types/archetypes/transform3d.md b/docs/content/reference/types/archetypes/transform3d.md
index 37419a44a4a50..dce2c974b2c53 100644
--- a/docs/content/reference/types/archetypes/transform3d.md
+++ b/docs/content/reference/types/archetypes/transform3d.md
@@ -1,6 +1,7 @@
---
title: "Transform3D"
---
+
A 3D transform.
@@ -8,7 +9,11 @@ A 3D transform.
**Required**: [`Transform3D`](../components/transform3d.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
+
+## Api reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Transform3D.html)
diff --git a/docs/content/reference/types/archetypes/view_coordinates.md b/docs/content/reference/types/archetypes/view_coordinates.md
index 51c0ae3aea859..c42fdcb0ce640 100644
--- a/docs/content/reference/types/archetypes/view_coordinates.md
+++ b/docs/content/reference/types/archetypes/view_coordinates.md
@@ -1,6 +1,7 @@
---
title: "ViewCoordinates"
---
+
How we interpret the coordinate system of an entity/space.
@@ -15,7 +16,10 @@ down, and the Z axis points forward.
**Required**: [`ViewCoordinates`](../components/view_coordinates.md)
-## Links
+## Shown in
+* [Spatial3DView](../views/spatial3d_view.md)
+
+## Api reference links
* π [C++ API docs for `ViewCoordinates`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1ViewCoordinates.html)
* π [Python API docs for `ViewCoordinates`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.ViewCoordinates)
* π¦ [Rust API docs for `ViewCoordinates`](https://docs.rs/rerun/latest/rerun/archetypes/struct.ViewCoordinates.html)
diff --git a/docs/content/reference/types/components.md b/docs/content/reference/types/components.md
index 3320739bcb602..278637b827fab 100644
--- a/docs/content/reference/types/components.md
+++ b/docs/content/reference/types/components.md
@@ -2,7 +2,6 @@
title: "Components"
order: 2
---
-
Components are the fundamental unit of logging in Rerun. This page lists all built-in components.
diff --git a/docs/content/reference/types/components/annotation_context.md b/docs/content/reference/types/components/annotation_context.md
index cf55f4b54ae96..89546b32cfe67 100644
--- a/docs/content/reference/types/components/annotation_context.md
+++ b/docs/content/reference/types/components/annotation_context.md
@@ -1,6 +1,7 @@
---
title: "AnnotationContext"
---
+
The `AnnotationContext` provides additional information on how to display entities.
@@ -14,7 +15,7 @@ path.
* class_map: list of [`ClassDescriptionMapElem`](../datatypes/class_description_map_elem.md)
-## Links
+## Api reference links
* π [C++ API docs for `AnnotationContext`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1AnnotationContext.html)
* π [Python API docs for `AnnotationContext`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.AnnotationContext)
* π¦ [Rust API docs for `AnnotationContext`](https://docs.rs/rerun/latest/rerun/components/struct.AnnotationContext.html)
diff --git a/docs/content/reference/types/components/blob.md b/docs/content/reference/types/components/blob.md
index 219a8e4af9230..b03e8c404d55f 100644
--- a/docs/content/reference/types/components/blob.md
+++ b/docs/content/reference/types/components/blob.md
@@ -1,6 +1,7 @@
---
title: "Blob"
---
+
A binary blob of data.
@@ -8,7 +9,7 @@ A binary blob of data.
* data: list of `u8`
-## Links
+## Api reference links
* π [C++ API docs for `Blob`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Blob.html)
* π [Python API docs for `Blob`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Blob)
* π¦ [Rust API docs for `Blob`](https://docs.rs/rerun/latest/rerun/components/struct.Blob.html)
diff --git a/docs/content/reference/types/components/class_id.md b/docs/content/reference/types/components/class_id.md
index a02b9934f606e..116bc5bba4449 100644
--- a/docs/content/reference/types/components/class_id.md
+++ b/docs/content/reference/types/components/class_id.md
@@ -1,6 +1,7 @@
---
title: "ClassId"
---
+
A 16-bit ID representing a type of semantic class.
@@ -8,7 +9,7 @@ A 16-bit ID representing a type of semantic class.
* id: [`ClassId`](../datatypes/class_id.md)
-## Links
+## Api reference links
* π [C++ API docs for `ClassId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ClassId.html)
* π [Python API docs for `ClassId`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ClassId)
* π¦ [Rust API docs for `ClassId`](https://docs.rs/rerun/latest/rerun/components/struct.ClassId.html)
diff --git a/docs/content/reference/types/components/clear_is_recursive.md b/docs/content/reference/types/components/clear_is_recursive.md
index f654557597a41..c8f324a59cd60 100644
--- a/docs/content/reference/types/components/clear_is_recursive.md
+++ b/docs/content/reference/types/components/clear_is_recursive.md
@@ -1,6 +1,7 @@
---
title: "ClearIsRecursive"
---
+
Configures how a clear operation should behave - recursive or not.
@@ -8,7 +9,7 @@ Configures how a clear operation should behave - recursive or not.
* recursive: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `ClearIsRecursive`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ClearIsRecursive.html)
* π [Python API docs for `ClearIsRecursive`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ClearIsRecursive)
* π¦ [Rust API docs for `ClearIsRecursive`](https://docs.rs/rerun/latest/rerun/components/struct.ClearIsRecursive.html)
diff --git a/docs/content/reference/types/components/color.md b/docs/content/reference/types/components/color.md
index d412ebb62db40..0d5db37b32544 100644
--- a/docs/content/reference/types/components/color.md
+++ b/docs/content/reference/types/components/color.md
@@ -1,6 +1,7 @@
---
title: "Color"
---
+
An RGBA color with unmultiplied/separate alpha, in sRGB gamma space with linear alpha.
@@ -11,7 +12,7 @@ byte is `R` and the least significant byte is `A`.
* rgba: [`Rgba32`](../datatypes/rgba32.md)
-## Links
+## Api reference links
* π [C++ API docs for `Color`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Color.html)
* π [Python API docs for `Color`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Color)
* π¦ [Rust API docs for `Color`](https://docs.rs/rerun/latest/rerun/components/struct.Color.html)
diff --git a/docs/content/reference/types/components/depth_meter.md b/docs/content/reference/types/components/depth_meter.md
index 01d0889852280..53a5902a7c5c3 100644
--- a/docs/content/reference/types/components/depth_meter.md
+++ b/docs/content/reference/types/components/depth_meter.md
@@ -1,6 +1,7 @@
---
title: "DepthMeter"
---
+
A component indicating how long a meter is, expressed in native units.
@@ -8,7 +9,7 @@ A component indicating how long a meter is, expressed in native units.
* value: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `DepthMeter`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DepthMeter.html)
* π [Python API docs for `DepthMeter`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DepthMeter)
* π¦ [Rust API docs for `DepthMeter`](https://docs.rs/rerun/latest/rerun/components/struct.DepthMeter.html)
diff --git a/docs/content/reference/types/components/disconnected_space.md b/docs/content/reference/types/components/disconnected_space.md
index d7faa63c706af..48193d8fbd3d0 100644
--- a/docs/content/reference/types/components/disconnected_space.md
+++ b/docs/content/reference/types/components/disconnected_space.md
@@ -1,6 +1,7 @@
---
title: "DisconnectedSpace"
---
+
Spatially disconnect this entity from its parent.
@@ -13,7 +14,7 @@ This is useful for specifying that a subgraph is independent of the rest of the
* is_disconnected: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DisconnectedSpace.html)
* π [Python API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DisconnectedSpace)
* π¦ [Rust API docs for `DisconnectedSpace`](https://docs.rs/rerun/latest/rerun/components/struct.DisconnectedSpace.html)
diff --git a/docs/content/reference/types/components/draw_order.md b/docs/content/reference/types/components/draw_order.md
index 6997c95b4e9f4..f1dbea93e2720 100644
--- a/docs/content/reference/types/components/draw_order.md
+++ b/docs/content/reference/types/components/draw_order.md
@@ -1,6 +1,7 @@
---
title: "DrawOrder"
---
+
Draw order used for the display order of 2D elements.
@@ -14,7 +15,7 @@ Draw order for entities with the same draw order is generally undefined.
* value: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `DrawOrder`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DrawOrder.html)
* π [Python API docs for `DrawOrder`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DrawOrder)
* π¦ [Rust API docs for `DrawOrder`](https://docs.rs/rerun/latest/rerun/components/struct.DrawOrder.html)
diff --git a/docs/content/reference/types/components/half_sizes2d.md b/docs/content/reference/types/components/half_sizes2d.md
index 3979fdce03b7a..0b0c7b692ddf7 100644
--- a/docs/content/reference/types/components/half_sizes2d.md
+++ b/docs/content/reference/types/components/half_sizes2d.md
@@ -1,6 +1,7 @@
---
title: "HalfSizes2D"
---
+
Half-sizes (extents) of a 2D box along its local axis, starting at its local origin/center.
@@ -11,7 +12,7 @@ Negative sizes indicate that the box is flipped along the respective axis, but t
* xy: [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `HalfSizes2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1HalfSizes2D.html)
* π [Python API docs for `HalfSizes2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.HalfSizes2D)
* π¦ [Rust API docs for `HalfSizes2D`](https://docs.rs/rerun/latest/rerun/components/struct.HalfSizes2D.html)
diff --git a/docs/content/reference/types/components/half_sizes3d.md b/docs/content/reference/types/components/half_sizes3d.md
index ff1e11f90157f..11876502972c9 100644
--- a/docs/content/reference/types/components/half_sizes3d.md
+++ b/docs/content/reference/types/components/half_sizes3d.md
@@ -1,6 +1,7 @@
---
title: "HalfSizes3D"
---
+
Half-sizes (extents) of a 3D box along its local axis, starting at its local origin/center.
@@ -11,7 +12,7 @@ Negative sizes indicate that the box is flipped along the respective axis, but t
* xyz: [`Vec3D`](../datatypes/vec3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `HalfSizes3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1HalfSizes3D.html)
* π [Python API docs for `HalfSizes3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.HalfSizes3D)
* π¦ [Rust API docs for `HalfSizes3D`](https://docs.rs/rerun/latest/rerun/components/struct.HalfSizes3D.html)
diff --git a/docs/content/reference/types/components/keypoint_id.md b/docs/content/reference/types/components/keypoint_id.md
index 0571a566b9bef..c308091d309a4 100644
--- a/docs/content/reference/types/components/keypoint_id.md
+++ b/docs/content/reference/types/components/keypoint_id.md
@@ -1,6 +1,7 @@
---
title: "KeypointId"
---
+
A 16-bit ID representing a type of semantic keypoint within a class.
@@ -8,7 +9,7 @@ A 16-bit ID representing a type of semantic keypoint within a class.
* id: [`KeypointId`](../datatypes/keypoint_id.md)
-## Links
+## Api reference links
* π [C++ API docs for `KeypointId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1KeypointId.html)
* π [Python API docs for `KeypointId`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.KeypointId)
* π¦ [Rust API docs for `KeypointId`](https://docs.rs/rerun/latest/rerun/components/struct.KeypointId.html)
diff --git a/docs/content/reference/types/components/line_strip2d.md b/docs/content/reference/types/components/line_strip2d.md
index a060b839c9972..5dd0dad4afffe 100644
--- a/docs/content/reference/types/components/line_strip2d.md
+++ b/docs/content/reference/types/components/line_strip2d.md
@@ -1,6 +1,7 @@
---
title: "LineStrip2D"
---
+
A line strip in 2D space.
@@ -19,7 +20,7 @@ The points will be connected in order, like so:
* points: list of [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `LineStrip2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1LineStrip2D.html)
* π [Python API docs for `LineStrip2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.LineStrip2D)
* π¦ [Rust API docs for `LineStrip2D`](https://docs.rs/rerun/latest/rerun/components/struct.LineStrip2D.html)
diff --git a/docs/content/reference/types/components/line_strip3d.md b/docs/content/reference/types/components/line_strip3d.md
index 0483b9158ed3c..d470d5f768942 100644
--- a/docs/content/reference/types/components/line_strip3d.md
+++ b/docs/content/reference/types/components/line_strip3d.md
@@ -1,6 +1,7 @@
---
title: "LineStrip3D"
---
+
A line strip in 3D space.
@@ -19,7 +20,7 @@ The points will be connected in order, like so:
* points: list of [`Vec3D`](../datatypes/vec3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `LineStrip3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1LineStrip3D.html)
* π [Python API docs for `LineStrip3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.LineStrip3D)
* π¦ [Rust API docs for `LineStrip3D`](https://docs.rs/rerun/latest/rerun/components/struct.LineStrip3D.html)
diff --git a/docs/content/reference/types/components/marker_shape.md b/docs/content/reference/types/components/marker_shape.md
index d902de3d51a31..660315ccf5baf 100644
--- a/docs/content/reference/types/components/marker_shape.md
+++ b/docs/content/reference/types/components/marker_shape.md
@@ -1,6 +1,7 @@
---
title: "MarkerShape"
---
+
Shape of a marker.
@@ -17,7 +18,7 @@ Shape of a marker.
* Right
* Asterisk
-## Links
+## Api reference links
* π [C++ API docs for `MarkerShape`](https://ref.rerun.io/docs/cpp/stable/namespacererun_1_1components.html)
* π [Python API docs for `MarkerShape`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MarkerShape)
* π¦ [Rust API docs for `MarkerShape`](https://docs.rs/rerun/latest/rerun/components/enum.MarkerShape.html)
diff --git a/docs/content/reference/types/components/marker_size.md b/docs/content/reference/types/components/marker_size.md
index 17a5b96e700fa..bacbdf6d40fdd 100644
--- a/docs/content/reference/types/components/marker_size.md
+++ b/docs/content/reference/types/components/marker_size.md
@@ -1,6 +1,7 @@
---
title: "MarkerSize"
---
+
Size of a marker in UI points.
@@ -8,7 +9,7 @@ Size of a marker in UI points.
* value: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `MarkerSize`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1MarkerSize.html)
* π [Python API docs for `MarkerSize`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MarkerSize)
* π¦ [Rust API docs for `MarkerSize`](https://docs.rs/rerun/latest/rerun/components/struct.MarkerSize.html)
diff --git a/docs/content/reference/types/components/material.md b/docs/content/reference/types/components/material.md
index c976e3cd31e05..7cf3664482aad 100644
--- a/docs/content/reference/types/components/material.md
+++ b/docs/content/reference/types/components/material.md
@@ -1,6 +1,7 @@
---
title: "Material"
---
+
Material properties of a mesh.
@@ -8,7 +9,7 @@ Material properties of a mesh.
* material: [`Material`](../datatypes/material.md)
-## Links
+## Api reference links
* π [C++ API docs for `Material`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Material.html)
* π [Python API docs for `Material`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Material)
* π¦ [Rust API docs for `Material`](https://docs.rs/rerun/latest/rerun/components/struct.Material.html)
diff --git a/docs/content/reference/types/components/media_type.md b/docs/content/reference/types/components/media_type.md
index 9b8799bbdec6a..81a991e11c99f 100644
--- a/docs/content/reference/types/components/media_type.md
+++ b/docs/content/reference/types/components/media_type.md
@@ -1,6 +1,7 @@
---
title: "MediaType"
---
+
A standardized media type (RFC2046, formerly known as MIME types), encoded as a utf8 string.
@@ -11,7 +12,7 @@ consulted at .
* value: [`Utf8`](../datatypes/utf8.md)
-## Links
+## Api reference links
* π [C++ API docs for `MediaType`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1MediaType.html)
* π [Python API docs for `MediaType`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MediaType)
* π¦ [Rust API docs for `MediaType`](https://docs.rs/rerun/latest/rerun/components/struct.MediaType.html)
diff --git a/docs/content/reference/types/components/name.md b/docs/content/reference/types/components/name.md
index 01244b9dcb4a2..6eec0c1814735 100644
--- a/docs/content/reference/types/components/name.md
+++ b/docs/content/reference/types/components/name.md
@@ -1,6 +1,7 @@
---
title: "Name"
---
+
A display name, typically for an entity or a item like a plot series.
@@ -8,7 +9,7 @@ A display name, typically for an entity or a item like a plot series.
* value: [`Utf8`](../datatypes/utf8.md)
-## Links
+## Api reference links
* π [C++ API docs for `Name`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Name.html)
* π [Python API docs for `Name`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Name)
* π¦ [Rust API docs for `Name`](https://docs.rs/rerun/latest/rerun/components/struct.Name.html)
diff --git a/docs/content/reference/types/components/out_of_tree_transform3d.md b/docs/content/reference/types/components/out_of_tree_transform3d.md
index ff6a70c37f9ff..7dcc210ca3c09 100644
--- a/docs/content/reference/types/components/out_of_tree_transform3d.md
+++ b/docs/content/reference/types/components/out_of_tree_transform3d.md
@@ -1,6 +1,7 @@
---
title: "OutOfTreeTransform3D"
---
+
An out-of-tree affine transform between two 3D spaces, represented in a given direction.
@@ -10,7 +11,7 @@ An out-of-tree affine transform between two 3D spaces, represented in a given di
* repr: [`Transform3D`](../datatypes/transform3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `OutOfTreeTransform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1OutOfTreeTransform3D.html)
* π [Python API docs for `OutOfTreeTransform3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.OutOfTreeTransform3D)
* π¦ [Rust API docs for `OutOfTreeTransform3D`](https://docs.rs/rerun/latest/rerun/components/struct.OutOfTreeTransform3D.html)
diff --git a/docs/content/reference/types/components/pinhole_projection.md b/docs/content/reference/types/components/pinhole_projection.md
index 7feb34f773fc9..13bfb04ef9255 100644
--- a/docs/content/reference/types/components/pinhole_projection.md
+++ b/docs/content/reference/types/components/pinhole_projection.md
@@ -1,6 +1,7 @@
---
title: "PinholeProjection"
---
+
Camera projection, from image coordinates to view coordinates.
@@ -18,7 +19,7 @@ Example:
* image_from_camera: [`Mat3x3`](../datatypes/mat3x3.md)
-## Links
+## Api reference links
* π [C++ API docs for `PinholeProjection`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1PinholeProjection.html)
* π [Python API docs for `PinholeProjection`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.PinholeProjection)
* π¦ [Rust API docs for `PinholeProjection`](https://docs.rs/rerun/latest/rerun/components/struct.PinholeProjection.html)
diff --git a/docs/content/reference/types/components/position2d.md b/docs/content/reference/types/components/position2d.md
index 2d10f1fc88327..d70afa937b29f 100644
--- a/docs/content/reference/types/components/position2d.md
+++ b/docs/content/reference/types/components/position2d.md
@@ -1,6 +1,7 @@
---
title: "Position2D"
---
+
A position in 2D space.
@@ -8,7 +9,7 @@ A position in 2D space.
* xy: [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Position2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Position2D.html)
* π [Python API docs for `Position2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Position2D)
* π¦ [Rust API docs for `Position2D`](https://docs.rs/rerun/latest/rerun/components/struct.Position2D.html)
diff --git a/docs/content/reference/types/components/position3d.md b/docs/content/reference/types/components/position3d.md
index eb40fd01307c5..30c1f030fac77 100644
--- a/docs/content/reference/types/components/position3d.md
+++ b/docs/content/reference/types/components/position3d.md
@@ -1,6 +1,7 @@
---
title: "Position3D"
---
+
A position in 3D space.
@@ -8,7 +9,7 @@ A position in 3D space.
* xyz: [`Vec3D`](../datatypes/vec3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Position3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Position3D.html)
* π [Python API docs for `Position3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Position3D)
* π¦ [Rust API docs for `Position3D`](https://docs.rs/rerun/latest/rerun/components/struct.Position3D.html)
diff --git a/docs/content/reference/types/components/radius.md b/docs/content/reference/types/components/radius.md
index 5e0f5ed7dd772..a7f6b58cad179 100644
--- a/docs/content/reference/types/components/radius.md
+++ b/docs/content/reference/types/components/radius.md
@@ -1,6 +1,7 @@
---
title: "Radius"
---
+
A Radius component.
@@ -8,7 +9,7 @@ A Radius component.
* value: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Radius`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Radius.html)
* π [Python API docs for `Radius`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Radius)
* π¦ [Rust API docs for `Radius`](https://docs.rs/rerun/latest/rerun/components/struct.Radius.html)
diff --git a/docs/content/reference/types/components/range1d.md b/docs/content/reference/types/components/range1d.md
index 120e4d6624453..8d1e2325e840b 100644
--- a/docs/content/reference/types/components/range1d.md
+++ b/docs/content/reference/types/components/range1d.md
@@ -1,6 +1,7 @@
---
title: "Range1D"
---
+
A 1D range, specifying a lower and upper bound.
@@ -8,9 +9,9 @@ A 1D range, specifying a lower and upper bound.
* range: [`Range1D`](../datatypes/range1d.md)
-## Links
- * π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range1D.html)
- * π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Range1D)
- * π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/components/struct.Range1D.html)
+## Api reference links
+ * π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range1D.html?speculative-link)
+ * π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.Range1D)
+ * π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/components/struct.Range1D.html?speculative-link)
diff --git a/docs/content/reference/types/components/range2d.md b/docs/content/reference/types/components/range2d.md
index e17277fd873d8..509ef01373e0b 100644
--- a/docs/content/reference/types/components/range2d.md
+++ b/docs/content/reference/types/components/range2d.md
@@ -1,6 +1,7 @@
---
title: "Range2D"
---
+
An Axis-Aligned Bounding Box in 2D space.
@@ -8,9 +9,9 @@ An Axis-Aligned Bounding Box in 2D space.
* range2d: [`Range2D`](../datatypes/range2d.md)
-## Links
- * π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range2D.html)
- * π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Range2D)
- * π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/components/struct.Range2D.html)
+## Api reference links
+ * π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range2D.html?speculative-link)
+ * π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.Range2D)
+ * π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/components/struct.Range2D.html?speculative-link)
diff --git a/docs/content/reference/types/components/resolution.md b/docs/content/reference/types/components/resolution.md
index e789ccaed892c..ae1b2fcfe5060 100644
--- a/docs/content/reference/types/components/resolution.md
+++ b/docs/content/reference/types/components/resolution.md
@@ -1,6 +1,7 @@
---
title: "Resolution"
---
+
Pixel resolution width & height, e.g. of a camera sensor.
@@ -10,7 +11,7 @@ Typically in integer units, but for some use cases floating point may be used.
* resolution: [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Resolution`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Resolution.html)
* π [Python API docs for `Resolution`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Resolution)
* π¦ [Rust API docs for `Resolution`](https://docs.rs/rerun/latest/rerun/components/struct.Resolution.html)
diff --git a/docs/content/reference/types/components/rotation3d.md b/docs/content/reference/types/components/rotation3d.md
index 070d9f9945e6b..19444b6920688 100644
--- a/docs/content/reference/types/components/rotation3d.md
+++ b/docs/content/reference/types/components/rotation3d.md
@@ -1,6 +1,7 @@
---
title: "Rotation3D"
---
+
A 3D rotation, represented either by a quaternion or a rotation around axis.
@@ -8,7 +9,7 @@ A 3D rotation, represented either by a quaternion or a rotation around axis.
* repr: [`Rotation3D`](../datatypes/rotation3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Rotation3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Rotation3D.html)
* π [Python API docs for `Rotation3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Rotation3D)
* π¦ [Rust API docs for `Rotation3D`](https://docs.rs/rerun/latest/rerun/components/struct.Rotation3D.html)
diff --git a/docs/content/reference/types/components/scalar.md b/docs/content/reference/types/components/scalar.md
index 616d384d745b6..eacd528277b4b 100644
--- a/docs/content/reference/types/components/scalar.md
+++ b/docs/content/reference/types/components/scalar.md
@@ -1,6 +1,7 @@
---
title: "Scalar"
---
+
A double-precision scalar.
@@ -10,7 +11,7 @@ Used for time series plots.
* value: `f64`
-## Links
+## Api reference links
* π [C++ API docs for `Scalar`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Scalar.html)
* π [Python API docs for `Scalar`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Scalar)
* π¦ [Rust API docs for `Scalar`](https://docs.rs/rerun/latest/rerun/components/struct.Scalar.html)
diff --git a/docs/content/reference/types/components/scalar_scattering.md b/docs/content/reference/types/components/scalar_scattering.md
index a2218a6bd86d2..e695abdac0325 100644
--- a/docs/content/reference/types/components/scalar_scattering.md
+++ b/docs/content/reference/types/components/scalar_scattering.md
@@ -1,6 +1,7 @@
---
title: "ScalarScattering"
---
+
If true, a scalar will be shown as individual point in a scatter plot.
@@ -8,7 +9,7 @@ If true, a scalar will be shown as individual point in a scatter plot.
* scattered: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `ScalarScattering`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ScalarScattering.html)
* π [Python API docs for `ScalarScattering`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ScalarScattering)
* π¦ [Rust API docs for `ScalarScattering`](https://docs.rs/rerun/latest/rerun/components/struct.ScalarScattering.html)
diff --git a/docs/content/reference/types/components/stroke_width.md b/docs/content/reference/types/components/stroke_width.md
index db91f5ef6c1cb..f093594fddcb2 100644
--- a/docs/content/reference/types/components/stroke_width.md
+++ b/docs/content/reference/types/components/stroke_width.md
@@ -1,6 +1,7 @@
---
title: "StrokeWidth"
---
+
The width of a stroke specified in UI points.
@@ -8,7 +9,7 @@ The width of a stroke specified in UI points.
* width: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `StrokeWidth`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1StrokeWidth.html)
* π [Python API docs for `StrokeWidth`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.StrokeWidth)
* π¦ [Rust API docs for `StrokeWidth`](https://docs.rs/rerun/latest/rerun/components/struct.StrokeWidth.html)
diff --git a/docs/content/reference/types/components/tensor_data.md b/docs/content/reference/types/components/tensor_data.md
index 3e18c84cab39f..cacf4708311e3 100644
--- a/docs/content/reference/types/components/tensor_data.md
+++ b/docs/content/reference/types/components/tensor_data.md
@@ -1,6 +1,7 @@
---
title: "TensorData"
---
+
A multi-dimensional `Tensor` of data.
@@ -20,7 +21,7 @@ the shape has to be the shape of the decoded image.
* data: [`TensorData`](../datatypes/tensor_data.md)
-## Links
+## Api reference links
* π [C++ API docs for `TensorData`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TensorData.html)
* π [Python API docs for `TensorData`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.TensorData)
* π¦ [Rust API docs for `TensorData`](https://docs.rs/rerun/latest/rerun/components/struct.TensorData.html)
diff --git a/docs/content/reference/types/components/texcoord2d.md b/docs/content/reference/types/components/texcoord2d.md
index 45ccd4ab4973b..0d7a1010c4956 100644
--- a/docs/content/reference/types/components/texcoord2d.md
+++ b/docs/content/reference/types/components/texcoord2d.md
@@ -1,6 +1,7 @@
---
title: "Texcoord2D"
---
+
A 2D texture UV coordinate.
@@ -23,7 +24,7 @@ which places the origin at the bottom-left.
* uv: [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Texcoord2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Texcoord2D.html)
* π [Python API docs for `Texcoord2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Texcoord2D)
* π¦ [Rust API docs for `Texcoord2D`](https://docs.rs/rerun/latest/rerun/components/struct.Texcoord2D.html)
diff --git a/docs/content/reference/types/components/text.md b/docs/content/reference/types/components/text.md
index 980b18cf06fd8..f58599ac8b52c 100644
--- a/docs/content/reference/types/components/text.md
+++ b/docs/content/reference/types/components/text.md
@@ -1,6 +1,7 @@
---
title: "Text"
---
+
A string of text, e.g. for labels and text documents.
@@ -8,7 +9,7 @@ A string of text, e.g. for labels and text documents.
* value: [`Utf8`](../datatypes/utf8.md)
-## Links
+## Api reference links
* π [C++ API docs for `Text`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Text.html)
* π [Python API docs for `Text`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Text)
* π¦ [Rust API docs for `Text`](https://docs.rs/rerun/latest/rerun/components/struct.Text.html)
diff --git a/docs/content/reference/types/components/text_log_level.md b/docs/content/reference/types/components/text_log_level.md
index 446e576fae6b9..f5b88fa84eb96 100644
--- a/docs/content/reference/types/components/text_log_level.md
+++ b/docs/content/reference/types/components/text_log_level.md
@@ -1,6 +1,7 @@
---
title: "TextLogLevel"
---
+
The severity level of a text log message.
@@ -16,7 +17,7 @@ Recommended to be one of:
* value: [`Utf8`](../datatypes/utf8.md)
-## Links
+## Api reference links
* π [C++ API docs for `TextLogLevel`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TextLogLevel.html)
* π [Python API docs for `TextLogLevel`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.TextLogLevel)
* π¦ [Rust API docs for `TextLogLevel`](https://docs.rs/rerun/latest/rerun/components/struct.TextLogLevel.html)
diff --git a/docs/content/reference/types/components/transform3d.md b/docs/content/reference/types/components/transform3d.md
index 1fa3db1979713..50f27c5b5743b 100644
--- a/docs/content/reference/types/components/transform3d.md
+++ b/docs/content/reference/types/components/transform3d.md
@@ -1,6 +1,7 @@
---
title: "Transform3D"
---
+
An affine transform between two 3D spaces, represented in a given direction.
@@ -8,7 +9,7 @@ An affine transform between two 3D spaces, represented in a given direction.
* repr: [`Transform3D`](../datatypes/transform3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/components/struct.Transform3D.html)
diff --git a/docs/content/reference/types/components/triangle_indices.md b/docs/content/reference/types/components/triangle_indices.md
index 2509685ba74d4..430343cc5f4fa 100644
--- a/docs/content/reference/types/components/triangle_indices.md
+++ b/docs/content/reference/types/components/triangle_indices.md
@@ -1,6 +1,7 @@
---
title: "TriangleIndices"
---
+
The three indices of a triangle mesh.
@@ -8,10 +9,10 @@ The three indices of a triangle mesh.
* indices: [`UVec3D`](../datatypes/uvec3d.md)
-## Links
- * π [C++ API docs for `TriangleIndices`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TriangleIndices.html)
- * π [Python API docs for `TriangleIndices`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.TriangleIndices)
- * π¦ [Rust API docs for `TriangleIndices`](https://docs.rs/rerun/latest/rerun/components/struct.TriangleIndices.html)
+## Api reference links
+ * π [C++ API docs for `TriangleIndices`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TriangleIndices.html?speculative-link)
+ * π [Python API docs for `TriangleIndices`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.TriangleIndices)
+ * π¦ [Rust API docs for `TriangleIndices`](https://docs.rs/rerun/latest/rerun/components/struct.TriangleIndices.html?speculative-link)
## Used by
diff --git a/docs/content/reference/types/components/vector2d.md b/docs/content/reference/types/components/vector2d.md
index d38e8f2f2ebbe..aee24277e6147 100644
--- a/docs/content/reference/types/components/vector2d.md
+++ b/docs/content/reference/types/components/vector2d.md
@@ -1,6 +1,7 @@
---
title: "Vector2D"
---
+
A vector in 2D space.
@@ -8,7 +9,7 @@ A vector in 2D space.
* vector: [`Vec2D`](../datatypes/vec2d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Vector2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Vector2D.html)
* π [Python API docs for `Vector2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Vector2D)
* π¦ [Rust API docs for `Vector2D`](https://docs.rs/rerun/latest/rerun/components/struct.Vector2D.html)
diff --git a/docs/content/reference/types/components/vector3d.md b/docs/content/reference/types/components/vector3d.md
index 7c407913db2a3..f6445aab562df 100644
--- a/docs/content/reference/types/components/vector3d.md
+++ b/docs/content/reference/types/components/vector3d.md
@@ -1,6 +1,7 @@
---
title: "Vector3D"
---
+
A vector in 3D space.
@@ -8,7 +9,7 @@ A vector in 3D space.
* vector: [`Vec3D`](../datatypes/vec3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Vector3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Vector3D.html)
* π [Python API docs for `Vector3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Vector3D)
* π¦ [Rust API docs for `Vector3D`](https://docs.rs/rerun/latest/rerun/components/struct.Vector3D.html)
diff --git a/docs/content/reference/types/components/view_coordinates.md b/docs/content/reference/types/components/view_coordinates.md
index 006e9f373b247..5bcf0cd7479f1 100644
--- a/docs/content/reference/types/components/view_coordinates.md
+++ b/docs/content/reference/types/components/view_coordinates.md
@@ -1,6 +1,7 @@
---
title: "ViewCoordinates"
---
+
How we interpret the coordinate system of an entity/space.
@@ -23,7 +24,7 @@ The following constants are used to represent the different directions:
* coordinates: 3x `u8`
-## Links
+## Api reference links
* π [C++ API docs for `ViewCoordinates`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ViewCoordinates.html)
* π [Python API docs for `ViewCoordinates`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ViewCoordinates)
* π¦ [Rust API docs for `ViewCoordinates`](https://docs.rs/rerun/latest/rerun/components/struct.ViewCoordinates.html)
diff --git a/docs/content/reference/types/components/visualizer_overrides.md b/docs/content/reference/types/components/visualizer_overrides.md
index f6056e17ed4b7..b6dc857500964 100644
--- a/docs/content/reference/types/components/visualizer_overrides.md
+++ b/docs/content/reference/types/components/visualizer_overrides.md
@@ -1,6 +1,7 @@
---
title: "VisualizerOverrides"
---
+
The name of a visualizer.
@@ -8,7 +9,7 @@ The name of a visualizer.
* value: list of `string`
-## Links
+## Api reference links
* π [C++ API docs for `VisualizerOverrides`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1VisualizerOverrides.html)
* π [Python API docs for `VisualizerOverrides`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.VisualizerOverrides)
* π¦ [Rust API docs for `VisualizerOverrides`](https://docs.rs/rerun/latest/rerun/components/struct.VisualizerOverrides.html)
diff --git a/docs/content/reference/types/datatypes.md b/docs/content/reference/types/datatypes.md
index 88893278bad73..44da8f00e832d 100644
--- a/docs/content/reference/types/datatypes.md
+++ b/docs/content/reference/types/datatypes.md
@@ -2,7 +2,6 @@
title: "Datatypes"
order: 3
---
-
Data types are the lowest layer of the data model hierarchy. They are re-usable types used by the components.
diff --git a/docs/content/reference/types/datatypes/angle.md b/docs/content/reference/types/datatypes/angle.md
index 704281efc7b76..647b16e5f1d35 100644
--- a/docs/content/reference/types/datatypes/angle.md
+++ b/docs/content/reference/types/datatypes/angle.md
@@ -1,6 +1,7 @@
---
title: "Angle"
---
+
Angle in either radians or degrees.
@@ -9,7 +10,7 @@ Angle in either radians or degrees.
* Radians: `f32`
* Degrees: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Angle`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Angle.html)
* π [Python API docs for `Angle`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Angle)
* π¦ [Rust API docs for `Angle`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Angle.html)
diff --git a/docs/content/reference/types/datatypes/annotation_info.md b/docs/content/reference/types/datatypes/annotation_info.md
index 54ae74e6291ed..9ec270159447b 100644
--- a/docs/content/reference/types/datatypes/annotation_info.md
+++ b/docs/content/reference/types/datatypes/annotation_info.md
@@ -1,6 +1,7 @@
---
title: "AnnotationInfo"
---
+
Annotation info annotating a class id or key-point id.
@@ -13,7 +14,7 @@ The id refers either to a class or key-point id
* label: [`Utf8`](../datatypes/utf8.md)
* color: [`Rgba32`](../datatypes/rgba32.md)
-## Links
+## Api reference links
* π [C++ API docs for `AnnotationInfo`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1AnnotationInfo.html)
* π [Python API docs for `AnnotationInfo`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.AnnotationInfo)
* π¦ [Rust API docs for `AnnotationInfo`](https://docs.rs/rerun/latest/rerun/datatypes/struct.AnnotationInfo.html)
diff --git a/docs/content/reference/types/datatypes/bool.md b/docs/content/reference/types/datatypes/bool.md
index 7d26b9286f604..f2d2e38eaff91 100644
--- a/docs/content/reference/types/datatypes/bool.md
+++ b/docs/content/reference/types/datatypes/bool.md
@@ -1,6 +1,7 @@
---
title: "Bool"
---
+
A single boolean.
@@ -8,7 +9,7 @@ A single boolean.
* value: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `Bool`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Bool.html)
* π [Python API docs for `Bool`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Bool)
* π¦ [Rust API docs for `Bool`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Bool.html)
diff --git a/docs/content/reference/types/datatypes/class_description.md b/docs/content/reference/types/datatypes/class_description.md
index 9c34c8c2e856c..b8b4852e8f053 100644
--- a/docs/content/reference/types/datatypes/class_description.md
+++ b/docs/content/reference/types/datatypes/class_description.md
@@ -1,6 +1,7 @@
---
title: "ClassDescription"
---
+
The description of a semantic Class.
@@ -23,7 +24,7 @@ colored as described by the class's `AnnotationInfo`.
* keypoint_annotations: list of [`AnnotationInfo`](../datatypes/annotation_info.md)
* keypoint_connections: list of [`KeypointPair`](../datatypes/keypoint_pair.md)
-## Links
+## Api reference links
* π [C++ API docs for `ClassDescription`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassDescription.html)
* π [Python API docs for `ClassDescription`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassDescription)
* π¦ [Rust API docs for `ClassDescription`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassDescription.html)
diff --git a/docs/content/reference/types/datatypes/class_description_map_elem.md b/docs/content/reference/types/datatypes/class_description_map_elem.md
index 6c957bc6f04a3..7a6c959e8ea99 100644
--- a/docs/content/reference/types/datatypes/class_description_map_elem.md
+++ b/docs/content/reference/types/datatypes/class_description_map_elem.md
@@ -1,6 +1,7 @@
---
title: "ClassDescriptionMapElem"
---
+
A helper type for mapping class IDs to class descriptions.
@@ -11,7 +12,7 @@ This is internal to the `AnnotationContext` structure.
* class_id: [`ClassId`](../datatypes/class_id.md)
* class_description: [`ClassDescription`](../datatypes/class_description.md)
-## Links
+## Api reference links
* π [C++ API docs for `ClassDescriptionMapElem`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassDescriptionMapElem.html)
* π [Python API docs for `ClassDescriptionMapElem`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassDescriptionMapElem)
* π¦ [Rust API docs for `ClassDescriptionMapElem`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassDescriptionMapElem.html)
diff --git a/docs/content/reference/types/datatypes/class_id.md b/docs/content/reference/types/datatypes/class_id.md
index 4a39ebf28ae96..8a628db578469 100644
--- a/docs/content/reference/types/datatypes/class_id.md
+++ b/docs/content/reference/types/datatypes/class_id.md
@@ -1,6 +1,7 @@
---
title: "ClassId"
---
+
A 16-bit ID representing a type of semantic class.
@@ -8,7 +9,7 @@ A 16-bit ID representing a type of semantic class.
* id: `u16`
-## Links
+## Api reference links
* π [C++ API docs for `ClassId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassId.html)
* π [Python API docs for `ClassId`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassId)
* π¦ [Rust API docs for `ClassId`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassId.html)
diff --git a/docs/content/reference/types/datatypes/entity_path.md b/docs/content/reference/types/datatypes/entity_path.md
index 05441b6625f6c..a858b94803635 100644
--- a/docs/content/reference/types/datatypes/entity_path.md
+++ b/docs/content/reference/types/datatypes/entity_path.md
@@ -1,6 +1,7 @@
---
title: "EntityPath"
---
+
A path to an entity in the `DataStore`.
@@ -8,7 +9,7 @@ A path to an entity in the `DataStore`.
* path: `string`
-## Links
+## Api reference links
* π [C++ API docs for `EntityPath`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1EntityPath.html)
* π [Python API docs for `EntityPath`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.EntityPath)
* π¦ [Rust API docs for `EntityPath`](https://docs.rs/rerun/latest/rerun/datatypes/struct.EntityPath.html)
diff --git a/docs/content/reference/types/datatypes/float32.md b/docs/content/reference/types/datatypes/float32.md
index e7b3811c6a589..a901c202ca827 100644
--- a/docs/content/reference/types/datatypes/float32.md
+++ b/docs/content/reference/types/datatypes/float32.md
@@ -1,6 +1,7 @@
---
title: "Float32"
---
+
A single-precision 32-bit IEEE 754 floating point number.
@@ -8,7 +9,7 @@ A single-precision 32-bit IEEE 754 floating point number.
* value: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Float32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Float32.html)
* π [Python API docs for `Float32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Float32)
* π¦ [Rust API docs for `Float32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Float32.html)
diff --git a/docs/content/reference/types/datatypes/keypoint_id.md b/docs/content/reference/types/datatypes/keypoint_id.md
index fd53dc3846bb4..e05e3b6a7beb9 100644
--- a/docs/content/reference/types/datatypes/keypoint_id.md
+++ b/docs/content/reference/types/datatypes/keypoint_id.md
@@ -1,6 +1,7 @@
---
title: "KeypointId"
---
+
A 16-bit ID representing a type of semantic keypoint within a class.
@@ -8,7 +9,7 @@ A 16-bit ID representing a type of semantic keypoint within a class.
* id: `u16`
-## Links
+## Api reference links
* π [C++ API docs for `KeypointId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1KeypointId.html)
* π [Python API docs for `KeypointId`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.KeypointId)
* π¦ [Rust API docs for `KeypointId`](https://docs.rs/rerun/latest/rerun/datatypes/struct.KeypointId.html)
diff --git a/docs/content/reference/types/datatypes/keypoint_pair.md b/docs/content/reference/types/datatypes/keypoint_pair.md
index a30c87d958b69..09eee06f870f7 100644
--- a/docs/content/reference/types/datatypes/keypoint_pair.md
+++ b/docs/content/reference/types/datatypes/keypoint_pair.md
@@ -1,6 +1,7 @@
---
title: "KeypointPair"
---
+
A connection between two `Keypoints`.
@@ -9,7 +10,7 @@ A connection between two `Keypoints`.
* keypoint0: [`KeypointId`](../datatypes/keypoint_id.md)
* keypoint1: [`KeypointId`](../datatypes/keypoint_id.md)
-## Links
+## Api reference links
* π [C++ API docs for `KeypointPair`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1KeypointPair.html)
* π [Python API docs for `KeypointPair`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.KeypointPair)
* π¦ [Rust API docs for `KeypointPair`](https://docs.rs/rerun/latest/rerun/datatypes/struct.KeypointPair.html)
diff --git a/docs/content/reference/types/datatypes/mat3x3.md b/docs/content/reference/types/datatypes/mat3x3.md
index 6f503138b5e68..b6c50eaaf654e 100644
--- a/docs/content/reference/types/datatypes/mat3x3.md
+++ b/docs/content/reference/types/datatypes/mat3x3.md
@@ -1,6 +1,7 @@
---
title: "Mat3x3"
---
+
A 3x3 Matrix.
@@ -17,7 +18,7 @@ row 2 | flat_columns[2] flat_columns[5] flat_columns[8]
* flat_columns: 9x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Mat3x3`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Mat3x3.html)
* π [Python API docs for `Mat3x3`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Mat3x3)
* π¦ [Rust API docs for `Mat3x3`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Mat3x3.html)
diff --git a/docs/content/reference/types/datatypes/mat4x4.md b/docs/content/reference/types/datatypes/mat4x4.md
index 5a2b520578567..acdab3d4f5d44 100644
--- a/docs/content/reference/types/datatypes/mat4x4.md
+++ b/docs/content/reference/types/datatypes/mat4x4.md
@@ -1,6 +1,7 @@
---
title: "Mat4x4"
---
+
A 4x4 Matrix.
@@ -18,7 +19,7 @@ row 3 | flat_columns[3] flat_columns[7] flat_columns[11] flat_columns[15]
* flat_columns: 16x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Mat4x4`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Mat4x4.html)
* π [Python API docs for `Mat4x4`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Mat4x4)
* π¦ [Rust API docs for `Mat4x4`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Mat4x4.html)
diff --git a/docs/content/reference/types/datatypes/material.md b/docs/content/reference/types/datatypes/material.md
index 3b2a1d1fd1f21..49e155e41b0f4 100644
--- a/docs/content/reference/types/datatypes/material.md
+++ b/docs/content/reference/types/datatypes/material.md
@@ -1,6 +1,7 @@
---
title: "Material"
---
+
Material properties of a mesh.
@@ -8,7 +9,7 @@ Material properties of a mesh.
* albedo_factor: [`Rgba32`](../datatypes/rgba32.md)
-## Links
+## Api reference links
* π [C++ API docs for `Material`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Material.html)
* π [Python API docs for `Material`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Material)
* π¦ [Rust API docs for `Material`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Material.html)
diff --git a/docs/content/reference/types/datatypes/quaternion.md b/docs/content/reference/types/datatypes/quaternion.md
index d3d0c42376dab..1ba6ed3c658d2 100644
--- a/docs/content/reference/types/datatypes/quaternion.md
+++ b/docs/content/reference/types/datatypes/quaternion.md
@@ -1,6 +1,7 @@
---
title: "Quaternion"
---
+
A Quaternion represented by 4 real numbers.
@@ -11,7 +12,7 @@ datastore as provided, when used in the Viewer Quaternions will always be normal
* xyzw: 4x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Quaternion`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Quaternion.html)
* π [Python API docs for `Quaternion`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Quaternion)
* π¦ [Rust API docs for `Quaternion`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Quaternion.html)
diff --git a/docs/content/reference/types/datatypes/range1d.md b/docs/content/reference/types/datatypes/range1d.md
index b60a94d78200a..2931f1d0daddb 100644
--- a/docs/content/reference/types/datatypes/range1d.md
+++ b/docs/content/reference/types/datatypes/range1d.md
@@ -1,6 +1,7 @@
---
title: "Range1D"
---
+
A 1D range, specifying a lower and upper bound.
@@ -8,13 +9,13 @@ A 1D range, specifying a lower and upper bound.
* range: 2x `f64`
-## Links
- * π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range1D.html)
- * π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Range1D)
- * π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range1D.html)
+## Api reference links
+ * π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range1D.html?speculative-link)
+ * π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.Range1D)
+ * π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range1D.html?speculative-link)
## Used by
-* [`Range1D`](../components/range1d.md)
-* [`Range2D`](../datatypes/range2d.md)
+* [`Range1D`](../components/range1d.md?speculative-link)
+* [`Range2D`](../datatypes/range2d.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/range2d.md b/docs/content/reference/types/datatypes/range2d.md
index 60d3c19d2e72a..09a0310168abe 100644
--- a/docs/content/reference/types/datatypes/range2d.md
+++ b/docs/content/reference/types/datatypes/range2d.md
@@ -1,6 +1,7 @@
---
title: "Range2D"
---
+
An Axis-Aligned Bounding Box in 2D space, implemented as the minimum and maximum corners.
@@ -9,12 +10,12 @@ An Axis-Aligned Bounding Box in 2D space, implemented as the minimum and maximum
* x_range: [`Range1D`](../datatypes/range1d.md)
* y_range: [`Range1D`](../datatypes/range1d.md)
-## Links
- * π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range2D.html)
- * π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Range2D)
- * π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range2D.html)
+## Api reference links
+ * π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range2D.html?speculative-link)
+ * π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.Range2D)
+ * π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range2D.html?speculative-link)
## Used by
-* [`Range2D`](../components/range2d.md)
+* [`Range2D`](../components/range2d.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/rgba32.md b/docs/content/reference/types/datatypes/rgba32.md
index 6a9828df9ec42..34670954caa3b 100644
--- a/docs/content/reference/types/datatypes/rgba32.md
+++ b/docs/content/reference/types/datatypes/rgba32.md
@@ -1,6 +1,7 @@
---
title: "Rgba32"
---
+
An RGBA color with unmultiplied/separate alpha, in sRGB gamma space with linear alpha.
@@ -11,7 +12,7 @@ byte is `R` and the least significant byte is `A`.
* rgba: `u32`
-## Links
+## Api reference links
* π [C++ API docs for `Rgba32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Rgba32.html)
* π [Python API docs for `Rgba32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Rgba32)
* π¦ [Rust API docs for `Rgba32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Rgba32.html)
diff --git a/docs/content/reference/types/datatypes/rotation3d.md b/docs/content/reference/types/datatypes/rotation3d.md
index 44da41f2ad2e0..8ce3cd631cd44 100644
--- a/docs/content/reference/types/datatypes/rotation3d.md
+++ b/docs/content/reference/types/datatypes/rotation3d.md
@@ -1,6 +1,7 @@
---
title: "Rotation3D"
---
+
A 3D rotation.
@@ -9,7 +10,7 @@ A 3D rotation.
* Quaternion: [`Quaternion`](../datatypes/quaternion.md)
* AxisAngle: [`RotationAxisAngle`](../datatypes/rotation_axis_angle.md)
-## Links
+## Api reference links
* π [C++ API docs for `Rotation3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Rotation3D.html)
* π [Python API docs for `Rotation3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Rotation3D)
* π¦ [Rust API docs for `Rotation3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Rotation3D.html)
diff --git a/docs/content/reference/types/datatypes/rotation_axis_angle.md b/docs/content/reference/types/datatypes/rotation_axis_angle.md
index ca4e74e99dd8e..d4fad6a093c24 100644
--- a/docs/content/reference/types/datatypes/rotation_axis_angle.md
+++ b/docs/content/reference/types/datatypes/rotation_axis_angle.md
@@ -1,6 +1,7 @@
---
title: "RotationAxisAngle"
---
+
3D rotation represented by a rotation around a given axis.
@@ -9,7 +10,7 @@ title: "RotationAxisAngle"
* axis: [`Vec3D`](../datatypes/vec3d.md)
* angle: [`Angle`](../datatypes/angle.md)
-## Links
+## Api reference links
* π [C++ API docs for `RotationAxisAngle`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1RotationAxisAngle.html)
* π [Python API docs for `RotationAxisAngle`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.RotationAxisAngle)
* π¦ [Rust API docs for `RotationAxisAngle`](https://docs.rs/rerun/latest/rerun/datatypes/struct.RotationAxisAngle.html)
diff --git a/docs/content/reference/types/datatypes/scale3d.md b/docs/content/reference/types/datatypes/scale3d.md
index 8dcbde3aa714e..fdb2abf8b1534 100644
--- a/docs/content/reference/types/datatypes/scale3d.md
+++ b/docs/content/reference/types/datatypes/scale3d.md
@@ -1,6 +1,7 @@
---
title: "Scale3D"
---
+
3D scaling factor, part of a transform representation.
@@ -9,7 +10,7 @@ title: "Scale3D"
* ThreeD: [`Vec3D`](../datatypes/vec3d.md)
* Uniform: `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Scale3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Scale3D.html)
* π [Python API docs for `Scale3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Scale3D)
* π¦ [Rust API docs for `Scale3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Scale3D.html)
diff --git a/docs/content/reference/types/datatypes/tensor_buffer.md b/docs/content/reference/types/datatypes/tensor_buffer.md
index 75cda7c503e33..3f1c5cdaa21ef 100644
--- a/docs/content/reference/types/datatypes/tensor_buffer.md
+++ b/docs/content/reference/types/datatypes/tensor_buffer.md
@@ -1,6 +1,7 @@
---
title: "TensorBuffer"
---
+
The underlying storage for a `Tensor`.
@@ -23,7 +24,7 @@ Tensor elements are stored in a contiguous buffer of a single type.
* NV12: list of `u8`
* YUY2: list of `u8`
-## Links
+## Api reference links
* π [C++ API docs for `TensorBuffer`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorBuffer.html)
* π [Python API docs for `TensorBuffer`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorBuffer)
* π¦ [Rust API docs for `TensorBuffer`](https://docs.rs/rerun/latest/rerun/datatypes/enum.TensorBuffer.html)
diff --git a/docs/content/reference/types/datatypes/tensor_data.md b/docs/content/reference/types/datatypes/tensor_data.md
index 5a4d2ae0c6a0c..2f9307b3ebbc0 100644
--- a/docs/content/reference/types/datatypes/tensor_data.md
+++ b/docs/content/reference/types/datatypes/tensor_data.md
@@ -1,6 +1,7 @@
---
title: "TensorData"
---
+
A multi-dimensional `Tensor` of data.
@@ -21,7 +22,7 @@ the shape has to be the shape of the decoded image.
* shape: list of [`TensorDimension`](../datatypes/tensor_dimension.md)
* buffer: [`TensorBuffer`](../datatypes/tensor_buffer.md)
-## Links
+## Api reference links
* π [C++ API docs for `TensorData`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorData.html)
* π [Python API docs for `TensorData`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorData)
* π¦ [Rust API docs for `TensorData`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TensorData.html)
diff --git a/docs/content/reference/types/datatypes/tensor_dimension.md b/docs/content/reference/types/datatypes/tensor_dimension.md
index 0bd0833732832..45ccd6fc8a9d4 100644
--- a/docs/content/reference/types/datatypes/tensor_dimension.md
+++ b/docs/content/reference/types/datatypes/tensor_dimension.md
@@ -1,6 +1,7 @@
---
title: "TensorDimension"
---
+
A single dimension within a multi-dimensional tensor.
@@ -9,7 +10,7 @@ A single dimension within a multi-dimensional tensor.
* size: `u64`
* name: `string`
-## Links
+## Api reference links
* π [C++ API docs for `TensorDimension`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorDimension.html)
* π [Python API docs for `TensorDimension`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorDimension)
* π¦ [Rust API docs for `TensorDimension`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TensorDimension.html)
diff --git a/docs/content/reference/types/datatypes/time_int.md b/docs/content/reference/types/datatypes/time_int.md
index 6bf01b1efae64..c5116424b8b35 100644
--- a/docs/content/reference/types/datatypes/time_int.md
+++ b/docs/content/reference/types/datatypes/time_int.md
@@ -1,6 +1,7 @@
---
title: "TimeInt"
---
+
A 64-bit number describing either nanoseconds OR sequence numbers.
@@ -8,7 +9,7 @@ A 64-bit number describing either nanoseconds OR sequence numbers.
* value: `i64`
-## Links
+## Api reference links
* π [C++ API docs for `TimeInt`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeInt.html)
* π [Python API docs for `TimeInt`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TimeInt)
* π¦ [Rust API docs for `TimeInt`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TimeInt.html)
@@ -16,4 +17,4 @@ A 64-bit number describing either nanoseconds OR sequence numbers.
## Used by
-* [`TimeRangeBoundary`](../datatypes/time_range_boundary.md)
+* [`TimeRangeBoundary`](../datatypes/time_range_boundary.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/time_range.md b/docs/content/reference/types/datatypes/time_range.md
index 19c12f85e9f43..ea7d265626c2f 100644
--- a/docs/content/reference/types/datatypes/time_range.md
+++ b/docs/content/reference/types/datatypes/time_range.md
@@ -1,6 +1,7 @@
---
title: "TimeRange"
---
+
Visible time range bounds for a specific timeline.
@@ -9,12 +10,12 @@ Visible time range bounds for a specific timeline.
* start: [`TimeRangeBoundary`](../datatypes/time_range_boundary.md)
* end: [`TimeRangeBoundary`](../datatypes/time_range_boundary.md)
-## Links
- * π [C++ API docs for `TimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRange.html)
- * π [Python API docs for `TimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TimeRange)
- * π¦ [Rust API docs for `TimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TimeRange.html)
+## Api reference links
+ * π [C++ API docs for `TimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRange.html?speculative-link)
+ * π [Python API docs for `TimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.TimeRange)
+ * π¦ [Rust API docs for `TimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TimeRange.html?speculative-link)
## Used by
-* [`VisibleTimeRange`](../datatypes/visible_time_range.md)
+* [`VisibleTimeRange`](../datatypes/visible_time_range.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/time_range_boundary.md b/docs/content/reference/types/datatypes/time_range_boundary.md
index bc3fe0c8dcfd0..77054f31c71ee 100644
--- a/docs/content/reference/types/datatypes/time_range_boundary.md
+++ b/docs/content/reference/types/datatypes/time_range_boundary.md
@@ -1,6 +1,7 @@
---
title: "TimeRangeBoundary"
---
+
Left or right boundary of a time range.
@@ -10,12 +11,12 @@ Left or right boundary of a time range.
* Absolute: [`TimeInt`](../datatypes/time_int.md)
* Infinite
-## Links
- * π [C++ API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRangeBoundary.html)
- * π [Python API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TimeRangeBoundary)
- * π¦ [Rust API docs for `TimeRangeBoundary`](https://docs.rs/rerun/latest/rerun/datatypes/enum.TimeRangeBoundary.html)
+## Api reference links
+ * π [C++ API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRangeBoundary.html?speculative-link)
+ * π [Python API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.TimeRangeBoundary)
+ * π¦ [Rust API docs for `TimeRangeBoundary`](https://docs.rs/rerun/latest/rerun/datatypes/enum.TimeRangeBoundary.html?speculative-link)
## Used by
-* [`TimeRange`](../datatypes/time_range.md)
+* [`TimeRange`](../datatypes/time_range.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/transform3d.md b/docs/content/reference/types/datatypes/transform3d.md
index 547a3b144292a..4f2c325963dbb 100644
--- a/docs/content/reference/types/datatypes/transform3d.md
+++ b/docs/content/reference/types/datatypes/transform3d.md
@@ -1,6 +1,7 @@
---
title: "Transform3D"
---
+
Representation of a 3D affine transform.
@@ -9,7 +10,7 @@ Representation of a 3D affine transform.
* TranslationAndMat3x3: [`TranslationAndMat3x3`](../datatypes/translation_and_mat3x3.md)
* TranslationRotationScale: [`TranslationRotationScale3D`](../datatypes/translation_rotation_scale3d.md)
-## Links
+## Api reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Transform3D.html)
diff --git a/docs/content/reference/types/datatypes/translation_and_mat3x3.md b/docs/content/reference/types/datatypes/translation_and_mat3x3.md
index cfd9b02ba9c8c..d20c636dcd8b7 100644
--- a/docs/content/reference/types/datatypes/translation_and_mat3x3.md
+++ b/docs/content/reference/types/datatypes/translation_and_mat3x3.md
@@ -1,6 +1,7 @@
---
title: "TranslationAndMat3x3"
---
+
Representation of an affine transform via a 3x3 affine matrix paired with a translation.
@@ -12,7 +13,7 @@ First applies the matrix, then the translation.
* mat3x3: [`Mat3x3`](../datatypes/mat3x3.md)
* from_parent: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `TranslationAndMat3x3`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TranslationAndMat3x3.html)
* π [Python API docs for `TranslationAndMat3x3`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TranslationAndMat3x3)
* π¦ [Rust API docs for `TranslationAndMat3x3`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TranslationAndMat3x3.html)
diff --git a/docs/content/reference/types/datatypes/translation_rotation_scale3d.md b/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
index 44c72cab079c1..eba5e091d906c 100644
--- a/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
+++ b/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
@@ -1,6 +1,7 @@
---
title: "TranslationRotationScale3D"
---
+
Representation of an affine transform via separate translation, rotation & scale.
@@ -11,7 +12,7 @@ Representation of an affine transform via separate translation, rotation & scale
* scale: [`Scale3D`](../datatypes/scale3d.md)
* from_parent: `bool`
-## Links
+## Api reference links
* π [C++ API docs for `TranslationRotationScale3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TranslationRotationScale3D.html)
* π [Python API docs for `TranslationRotationScale3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TranslationRotationScale3D)
* π¦ [Rust API docs for `TranslationRotationScale3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TranslationRotationScale3D.html)
diff --git a/docs/content/reference/types/datatypes/uint32.md b/docs/content/reference/types/datatypes/uint32.md
index cdde6b626af68..855d772c3439c 100644
--- a/docs/content/reference/types/datatypes/uint32.md
+++ b/docs/content/reference/types/datatypes/uint32.md
@@ -1,6 +1,7 @@
---
title: "UInt32"
---
+
A 32bit unsigned integer.
@@ -8,7 +9,7 @@ A 32bit unsigned integer.
* value: `u32`
-## Links
+## Api reference links
* π [C++ API docs for `UInt32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UInt32.html)
* π [Python API docs for `UInt32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UInt32)
* π¦ [Rust API docs for `UInt32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UInt32.html)
diff --git a/docs/content/reference/types/datatypes/uint64.md b/docs/content/reference/types/datatypes/uint64.md
index 66ad2a8528528..2651956b8f44c 100644
--- a/docs/content/reference/types/datatypes/uint64.md
+++ b/docs/content/reference/types/datatypes/uint64.md
@@ -1,6 +1,7 @@
---
title: "UInt64"
---
+
A 64bit unsigned integer.
@@ -8,7 +9,7 @@ A 64bit unsigned integer.
* value: `u64`
-## Links
+## Api reference links
* π [C++ API docs for `UInt64`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UInt64.html)
* π [Python API docs for `UInt64`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UInt64)
* π¦ [Rust API docs for `UInt64`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UInt64.html)
diff --git a/docs/content/reference/types/datatypes/utf8.md b/docs/content/reference/types/datatypes/utf8.md
index b9881136ad29f..ef1896fd32e87 100644
--- a/docs/content/reference/types/datatypes/utf8.md
+++ b/docs/content/reference/types/datatypes/utf8.md
@@ -1,6 +1,7 @@
---
title: "Utf8"
---
+
A string of text, encoded as UTF-8.
@@ -8,7 +9,7 @@ A string of text, encoded as UTF-8.
* value: `string`
-## Links
+## Api reference links
* π [C++ API docs for `Utf8`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Utf8.html)
* π [Python API docs for `Utf8`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Utf8)
* π¦ [Rust API docs for `Utf8`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Utf8.html)
@@ -21,4 +22,4 @@ A string of text, encoded as UTF-8.
* [`Name`](../components/name.md)
* [`TextLogLevel`](../components/text_log_level.md)
* [`Text`](../components/text.md)
-* [`VisibleTimeRange`](../datatypes/visible_time_range.md)
+* [`VisibleTimeRange`](../datatypes/visible_time_range.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/uuid.md b/docs/content/reference/types/datatypes/uuid.md
index 1dc588838df78..604cbd898b204 100644
--- a/docs/content/reference/types/datatypes/uuid.md
+++ b/docs/content/reference/types/datatypes/uuid.md
@@ -1,6 +1,7 @@
---
title: "Uuid"
---
+
A 16-byte UUID.
@@ -8,7 +9,7 @@ A 16-byte UUID.
* bytes: 16x `u8`
-## Links
+## Api reference links
* π [C++ API docs for `Uuid`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Uuid.html)
* π [Python API docs for `Uuid`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Uuid)
* π¦ [Rust API docs for `Uuid`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Uuid.html)
diff --git a/docs/content/reference/types/datatypes/uvec2d.md b/docs/content/reference/types/datatypes/uvec2d.md
index 20902a5dbea36..10dafc71f8b0e 100644
--- a/docs/content/reference/types/datatypes/uvec2d.md
+++ b/docs/content/reference/types/datatypes/uvec2d.md
@@ -1,6 +1,7 @@
---
title: "UVec2D"
---
+
A uint32 vector in 2D space.
@@ -8,7 +9,7 @@ A uint32 vector in 2D space.
* xy: 2x `u32`
-## Links
+## Api reference links
* π [C++ API docs for `UVec2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec2D.html)
* π [Python API docs for `UVec2D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec2D)
* π¦ [Rust API docs for `UVec2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec2D.html)
diff --git a/docs/content/reference/types/datatypes/uvec3d.md b/docs/content/reference/types/datatypes/uvec3d.md
index f57c9effe4245..dd0b9789a5a54 100644
--- a/docs/content/reference/types/datatypes/uvec3d.md
+++ b/docs/content/reference/types/datatypes/uvec3d.md
@@ -1,6 +1,7 @@
---
title: "UVec3D"
---
+
A uint32 vector in 3D space.
@@ -8,7 +9,7 @@ A uint32 vector in 3D space.
* xyz: 3x `u32`
-## Links
+## Api reference links
* π [C++ API docs for `UVec3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec3D.html)
* π [Python API docs for `UVec3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec3D)
* π¦ [Rust API docs for `UVec3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec3D.html)
@@ -16,4 +17,4 @@ A uint32 vector in 3D space.
## Used by
-* [`TriangleIndices`](../components/triangle_indices.md)
+* [`TriangleIndices`](../components/triangle_indices.md?speculative-link)
diff --git a/docs/content/reference/types/datatypes/uvec4d.md b/docs/content/reference/types/datatypes/uvec4d.md
index 5d14a1938fd12..2b6522ea2faa7 100644
--- a/docs/content/reference/types/datatypes/uvec4d.md
+++ b/docs/content/reference/types/datatypes/uvec4d.md
@@ -1,6 +1,7 @@
---
title: "UVec4D"
---
+
A uint vector in 4D space.
@@ -8,7 +9,7 @@ A uint vector in 4D space.
* xyzw: 4x `u32`
-## Links
+## Api reference links
* π [C++ API docs for `UVec4D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec4D.html)
* π [Python API docs for `UVec4D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec4D)
* π¦ [Rust API docs for `UVec4D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec4D.html)
diff --git a/docs/content/reference/types/datatypes/vec2d.md b/docs/content/reference/types/datatypes/vec2d.md
index 68aa0b665805c..a50b778904242 100644
--- a/docs/content/reference/types/datatypes/vec2d.md
+++ b/docs/content/reference/types/datatypes/vec2d.md
@@ -1,6 +1,7 @@
---
title: "Vec2D"
---
+
A vector in 2D space.
@@ -8,7 +9,7 @@ A vector in 2D space.
* xy: 2x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Vec2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec2D.html)
* π [Python API docs for `Vec2D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec2D)
* π¦ [Rust API docs for `Vec2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec2D.html)
diff --git a/docs/content/reference/types/datatypes/vec3d.md b/docs/content/reference/types/datatypes/vec3d.md
index d408e84903e6c..2b7ae8f316d16 100644
--- a/docs/content/reference/types/datatypes/vec3d.md
+++ b/docs/content/reference/types/datatypes/vec3d.md
@@ -1,6 +1,7 @@
---
title: "Vec3D"
---
+
A vector in 3D space.
@@ -8,7 +9,7 @@ A vector in 3D space.
* xyz: 3x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Vec3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec3D.html)
* π [Python API docs for `Vec3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec3D)
* π¦ [Rust API docs for `Vec3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec3D.html)
diff --git a/docs/content/reference/types/datatypes/vec4d.md b/docs/content/reference/types/datatypes/vec4d.md
index bd080e8b792c9..8492adc6fe26c 100644
--- a/docs/content/reference/types/datatypes/vec4d.md
+++ b/docs/content/reference/types/datatypes/vec4d.md
@@ -1,6 +1,7 @@
---
title: "Vec4D"
---
+
A vector in 4D space.
@@ -8,7 +9,7 @@ A vector in 4D space.
* xyzw: 4x `f32`
-## Links
+## Api reference links
* π [C++ API docs for `Vec4D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec4D.html)
* π [Python API docs for `Vec4D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec4D)
* π¦ [Rust API docs for `Vec4D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec4D.html)
diff --git a/docs/content/reference/types/datatypes/visible_time_range.md b/docs/content/reference/types/datatypes/visible_time_range.md
index 43bc78d499ced..ae0122438f447 100644
--- a/docs/content/reference/types/datatypes/visible_time_range.md
+++ b/docs/content/reference/types/datatypes/visible_time_range.md
@@ -1,6 +1,7 @@
---
title: "VisibleTimeRange"
---
+
Visible time range bounds for a specific timeline.
@@ -9,9 +10,9 @@ Visible time range bounds for a specific timeline.
* timeline: [`Utf8`](../datatypes/utf8.md)
* range: [`TimeRange`](../datatypes/time_range.md)
-## Links
- * π [C++ API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1VisibleTimeRange.html)
- * π [Python API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.VisibleTimeRange)
- * π¦ [Rust API docs for `VisibleTimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.VisibleTimeRange.html)
+## Api reference links
+ * π [C++ API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1VisibleTimeRange.html?speculative-link)
+ * π [Python API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.VisibleTimeRange)
+ * π¦ [Rust API docs for `VisibleTimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.VisibleTimeRange.html?speculative-link)
diff --git a/docs/content/reference/types/views.md b/docs/content/reference/types/views.md
index b9027b2f6187e..84fb95e6423df 100644
--- a/docs/content/reference/types/views.md
+++ b/docs/content/reference/types/views.md
@@ -2,7 +2,6 @@
title: "Views"
order: 4
---
-
Views are the panels shown in the viewer's viewport and the primary means of inspecting & visualizing previously logged data. This page lists all built-in views.
diff --git a/docs/content/reference/types/views/bar_chart_view.md b/docs/content/reference/types/views/bar_chart_view.md
index 5110d7c917f4c..51171f094174c 100644
--- a/docs/content/reference/types/views/bar_chart_view.md
+++ b/docs/content/reference/types/views/bar_chart_view.md
@@ -1,12 +1,13 @@
---
title: "BarChartView"
---
+
A bar chart view.
-## Links
- * π [Python API docs for `BarChartView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.BarChartView)
+## Api reference links
+ * π [Python API docs for `BarChartView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.BarChartView)
## Example
@@ -22,3 +23,9 @@ snippet: views/bar_chart
+
+## Visualized archetypes
+
+* [`BarChart`](../archetypes/bar_chart.md)
+* [`Tensor`](../archetypes/tensor.md) (for 1D tensors)
+
diff --git a/docs/content/reference/types/views/spatial2d_view.md b/docs/content/reference/types/views/spatial2d_view.md
index 4ce871692b052..463ef2947b3a2 100644
--- a/docs/content/reference/types/views/spatial2d_view.md
+++ b/docs/content/reference/types/views/spatial2d_view.md
@@ -1,35 +1,30 @@
---
title: "Spatial2DView"
---
+
A Spatial 2D view.
## Properties
-### `Background`
-Configuration for the background of a view.
+### `background`
+Configuration for the background of the view.
-* kind: The type of the background. Defaults to BackgroundKind.GradientDark.
-* color: Color used for BackgroundKind.SolidColor.
-### `VisualBounds`
-Controls the visual bounds of a 2D space view.
+* `kind`: The type of the background. Defaults to BackgroundKind.GradientDark.
+* `color`: Color used for BackgroundKind.SolidColor.
+### `visual_bounds`
+The visible parts of the scene, in the coordinate space of the scene.
-* range2d: The visible parts of a 2D space view, in the coordinate space of the scene.
-### `VisibleTimeRanges`
-Configures what range of each timeline is shown on a view.
+Everything within these bounds are guaranteed to be visible.
+Somethings outside of these bounds may also be visible due to letterboxing.
+### `time_ranges`
+Configures which range on each timeline is shown by this view (unless specified differently per entity).
-Whenever no visual time range applies, queries are done with "latest at" semantics.
-This means that the view will, starting from the time cursor position,
-query the latest data available for each component type.
+If not specified, the default is to show the latest state of each component.
+If a timeline is specified more than once, the first entry will be used.
-The default visual time range depends on the type of view this property applies to:
-- For time series views, the default is to show the entire timeline.
-- For any other view, the default is to apply latest-at semantics.
-
-* ranges: The time ranges to show for each timeline unless specified otherwise on a per-entity basis.
-
-## Links
- * π [Python API docs for `Spatial2DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.Spatial2DView)
+## Api reference links
+ * π [Python API docs for `Spatial2DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.Spatial2DView)
## Example
@@ -45,3 +40,26 @@ snippet: views/spatial2d
+
+## Visualized archetypes
+
+* [`AnnotationContext`](../archetypes/annotation_context.md)
+* [`Arrows2D`](../archetypes/arrows2d.md)
+* [`Boxes2D`](../archetypes/boxes2d.md)
+* [`Clear`](../archetypes/clear.md)
+* [`DepthImage`](../archetypes/depth_image.md)
+* [`DisconnectedSpace`](../archetypes/disconnected_space.md)
+* [`Image`](../archetypes/image.md)
+* [`LineStrips2D`](../archetypes/line_strips2d.md)
+* [`Pinhole`](../archetypes/pinhole.md)
+* [`Pinhole`](../archetypes/pinhole.md)
+* [`Points2D`](../archetypes/points2d.md)
+* [`SegmentationImage`](../archetypes/segmentation_image.md)
+* [`Arrows3D`](../archetypes/arrows3d.md) (if logged above active projection)
+* [`Asset3D`](../archetypes/asset3d.md) (if logged above active projection)
+* [`Boxes3D`](../archetypes/boxes3d.md) (if logged above active projection)
+* [`LineStrips3D`](../archetypes/line_strips3d.md) (if logged above active projection)
+* [`Mesh3D`](../archetypes/mesh3d.md) (if logged above active projection)
+* [`Points3D`](../archetypes/points3d.md) (if logged above active projection)
+* [`Transform3D`](../archetypes/transform3d.md) (if logged above active projection)
+
diff --git a/docs/content/reference/types/views/spatial3d_view.md b/docs/content/reference/types/views/spatial3d_view.md
index 66329b917e78e..637b01099b996 100644
--- a/docs/content/reference/types/views/spatial3d_view.md
+++ b/docs/content/reference/types/views/spatial3d_view.md
@@ -1,31 +1,25 @@
---
title: "Spatial3DView"
---
+
A Spatial 3D view.
## Properties
-### `Background`
-Configuration for the background of a view.
+### `background`
+Configuration for the background of the view.
-* kind: The type of the background. Defaults to BackgroundKind.GradientDark.
-* color: Color used for BackgroundKind.SolidColor.
-### `VisibleTimeRanges`
-Configures what range of each timeline is shown on a view.
+* `kind`: The type of the background. Defaults to BackgroundKind.GradientDark.
+* `color`: Color used for BackgroundKind.SolidColor.
+### `time_ranges`
+Configures which range on each timeline is shown by this view (unless specified differently per entity).
-Whenever no visual time range applies, queries are done with "latest at" semantics.
-This means that the view will, starting from the time cursor position,
-query the latest data available for each component type.
+If not specified, the default is to show the latest state of each component.
+If a timeline is specified more than once, the first entry will be used.
-The default visual time range depends on the type of view this property applies to:
-- For time series views, the default is to show the entire timeline.
-- For any other view, the default is to apply latest-at semantics.
-
-* ranges: The time ranges to show for each timeline unless specified otherwise on a per-entity basis.
-
-## Links
- * π [Python API docs for `Spatial3DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.Spatial3DView)
+## Api reference links
+ * π [Python API docs for `Spatial3DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.Spatial3DView)
## Example
@@ -41,3 +35,25 @@ snippet: views/spatial3d
+
+## Visualized archetypes
+
+* [`AnnotationContext`](../archetypes/annotation_context.md)
+* [`Arrows3D`](../archetypes/arrows3d.md)
+* [`Asset3D`](../archetypes/asset3d.md)
+* [`Boxes3D`](../archetypes/boxes3d.md)
+* [`Clear`](../archetypes/clear.md)
+* [`DisconnectedSpace`](../archetypes/disconnected_space.md)
+* [`LineStrips3D`](../archetypes/line_strips3d.md)
+* [`Mesh3D`](../archetypes/mesh3d.md)
+* [`Points3D`](../archetypes/points3d.md)
+* [`Transform3D`](../archetypes/transform3d.md)
+* [`ViewCoordinates`](../archetypes/view_coordinates.md)
+* [`Arrows2D`](../archetypes/arrows2d.md) (if logged under a projection)
+* [`Boxes2D`](../archetypes/boxes2d.md) (if logged under a projection)
+* [`DepthImage`](../archetypes/depth_image.md) (if logged under a projection)
+* [`Image`](../archetypes/image.md) (if logged under a projection)
+* [`LineStrips2D`](../archetypes/line_strips2d.md) (if logged under a projection)
+* [`Points2D`](../archetypes/points2d.md) (if logged under a projection)
+* [`SegmentationImage`](../archetypes/segmentation_image.md) (if logged under a projection)
+
diff --git a/docs/content/reference/types/views/tensor_view.md b/docs/content/reference/types/views/tensor_view.md
index 51e6b0d4b30d8..4bfea438bbfc2 100644
--- a/docs/content/reference/types/views/tensor_view.md
+++ b/docs/content/reference/types/views/tensor_view.md
@@ -1,12 +1,13 @@
---
title: "TensorView"
---
+
A tensor view.
-## Links
- * π [Python API docs for `TensorView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.TensorView)
+## Api reference links
+ * π [Python API docs for `TensorView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TensorView)
## Example
@@ -22,3 +23,8 @@ snippet: views/tensor
+
+## Visualized archetypes
+
+* [`Tensor`](../archetypes/tensor.md)
+
diff --git a/docs/content/reference/types/views/text_document_view.md b/docs/content/reference/types/views/text_document_view.md
index 8de14ec2eb75d..fca3005d059e6 100644
--- a/docs/content/reference/types/views/text_document_view.md
+++ b/docs/content/reference/types/views/text_document_view.md
@@ -1,12 +1,13 @@
---
title: "TextDocumentView"
---
+
A text document view.
-## Links
- * π [Python API docs for `TextDocumentView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.TextDocumentView)
+## Api reference links
+ * π [Python API docs for `TextDocumentView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TextDocumentView)
## Example
@@ -22,3 +23,8 @@ snippet: views/text_document
+
+## Visualized archetypes
+
+* [`TextDocument`](../archetypes/text_document.md)
+
diff --git a/docs/content/reference/types/views/text_log_view.md b/docs/content/reference/types/views/text_log_view.md
index 33180e9b673a5..d16dced194bb6 100644
--- a/docs/content/reference/types/views/text_log_view.md
+++ b/docs/content/reference/types/views/text_log_view.md
@@ -1,12 +1,13 @@
---
title: "TextLogView"
---
+
A text log view.
-## Links
- * π [Python API docs for `TextLogView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.TextLogView)
+## Api reference links
+ * π [Python API docs for `TextLogView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TextLogView)
## Example
@@ -22,3 +23,8 @@ snippet: views/text_log
+
+## Visualized archetypes
+
+* [`TextLog`](../archetypes/text_log.md)
+
diff --git a/docs/content/reference/types/views/time_series_view.md b/docs/content/reference/types/views/time_series_view.md
index 3efd8a6084aa9..186ccb312aba8 100644
--- a/docs/content/reference/types/views/time_series_view.md
+++ b/docs/content/reference/types/views/time_series_view.md
@@ -1,36 +1,30 @@
---
title: "TimeSeriesView"
---
+
A time series view.
## Properties
-### `ScalarAxis`
-Configuration for the scalar axis of a plot.
+### `axis_y`
+Configures the vertical axis of the plot.
-* range: The range of the axis.
-* lock_range_during_zoom: Whether to lock the range of the axis during zoom.
-### `PlotLegend`
-Configuration for the legend of a plot.
+* `range`: The range of the axis.
+* `lock_range_during_zoom`: Whether to lock the range of the axis during zoom.
+### `plot_legend`
+Configures the legend of the plot.
-* corner: To what corner the legend is aligned.
-* visible: Whether the legend is shown at all.
-### `VisibleTimeRanges`
-Configures what range of each timeline is shown on a view.
+* `corner`: To what corner the legend is aligned.
+* `visible`: Whether the legend is shown at all.
+### `time_ranges`
+Configures which range on each timeline is shown by this view (unless specified differently per entity).
-Whenever no visual time range applies, queries are done with "latest at" semantics.
-This means that the view will, starting from the time cursor position,
-query the latest data available for each component type.
+If not specified, the default is to show the entire timeline.
+If a timeline is specified more than once, the first entry will be used.
-The default visual time range depends on the type of view this property applies to:
-- For time series views, the default is to show the entire timeline.
-- For any other view, the default is to apply latest-at semantics.
-
-* ranges: The time ranges to show for each timeline unless specified otherwise on a per-entity basis.
-
-## Links
- * π [Python API docs for `TimeSeriesView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views#rerun.blueprint.views.TimeSeriesView)
+## Api reference links
+ * π [Python API docs for `TimeSeriesView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TimeSeriesView)
## Example
@@ -46,3 +40,11 @@ snippet: views/timeseries
+
+## Visualized archetypes
+
+* [`Clear`](../archetypes/clear.md)
+* [`Scalar`](../archetypes/scalar.md)
+* [`SeriesLine`](../archetypes/series_line.md)
+* [`SeriesPoint`](../archetypes/series_point.md)
+
diff --git a/examples/python/face_tracking/README.md b/examples/python/face_tracking/README.md
index 8b173a8bfd187..bf3be0780a6c1 100644
--- a/examples/python/face_tracking/README.md
+++ b/examples/python/face_tracking/README.md
@@ -5,7 +5,7 @@ thumbnail = "https://static.rerun.io/face-tracking/f798733b72c703ee82cc946df39f3
thumbnail_dimensions = [480, 480]
-->
-Use the [MediaPipe](https://google.github.io/mediapipe/) Face Detector and Landmarker solutions to detect and track a human face in image, video, and camera stream.
+Use the [MediaPipe](https://github.com/google-ai-edge/mediapipe) Face Detector and Landmarker solutions to detect and track a human face in image, video, and camera stream.
diff --git a/examples/python/gesture_detection/README.md b/examples/python/gesture_detection/README.md
index aab44d7cc1c66..d879f7c5de63b 100644
--- a/examples/python/gesture_detection/README.md
+++ b/examples/python/gesture_detection/README.md
@@ -5,7 +5,7 @@ thumbnail = "https://static.rerun.io/hand-tracking-and-gesture-recognition/56d09
thumbnail_dimensions = [480, 480]
-->
-Use the [MediaPipe](https://google.github.io/mediapipe/) Hand Landmark and Gesture Detection solutions to
+Use the [MediaPipe](https://github.com/google-ai-edge/mediapipe/) Hand Landmark and Gesture Detection solutions to
track hands and recognize gestures in images, video, and camera stream.
diff --git a/examples/python/ros_node/README.md b/examples/python/ros_node/README.md
index 7226d715e485b..4714bbab1ecf0 100644
--- a/examples/python/ros_node/README.md
+++ b/examples/python/ros_node/README.md
@@ -39,7 +39,7 @@ For more information on future improved ROS support, see tracking issue: [#1527]
in addition to the packages from requirements.txt.
This example was developed and tested on top of [ROS2 Humble Hawksbill](https://docs.ros.org/en/humble/index.html)
-and the [turtlebot3 navigation example](https://navigation.ros.org/getting_started/index.html).
+and the [turtlebot3 navigation example](https://docs.nav2.org/getting_started/index.html).
Installing ROS is outside the scope of this example, but you will need the equivalent of the following packages:
```
diff --git a/rerun_py/rerun_sdk/rerun/blueprint/views/spatial2d_view.py b/rerun_py/rerun_sdk/rerun/blueprint/views/spatial2d_view.py
index a191b2889437a..dbc29d6ed133f 100644
--- a/rerun_py/rerun_sdk/rerun/blueprint/views/spatial2d_view.py
+++ b/rerun_py/rerun_sdk/rerun/blueprint/views/spatial2d_view.py
@@ -103,7 +103,7 @@ def __init__(
Defaults to true if not specified.
background:
- Configuration for the background of the space view.
+ Configuration for the background of the view.
visual_bounds:
The visible parts of the scene, in the coordinate space of the scene.
diff --git a/rerun_py/rerun_sdk/rerun/blueprint/views/spatial3d_view.py b/rerun_py/rerun_sdk/rerun/blueprint/views/spatial3d_view.py
index cc8cdebc43b65..603453e726607 100644
--- a/rerun_py/rerun_sdk/rerun/blueprint/views/spatial3d_view.py
+++ b/rerun_py/rerun_sdk/rerun/blueprint/views/spatial3d_view.py
@@ -99,7 +99,7 @@ def __init__(
Defaults to true if not specified.
background:
- Configuration for the background of the space view.
+ Configuration for the background of the view.
time_ranges:
Configures which range on each timeline is shown by this view (unless specified differently per entity).
From 3805781ee53dec571bfef0b0c44d95e61fc690ca Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Tue, 14 May 2024 21:29:58 +0200
Subject: [PATCH 06/40] Cleanup of todos referring to closed tickets (#6323)
### What
Make `pixi run python ./scripts/zombie_todos.py` happy.
Removed some dead code in the process. Two tickets were opened to
account for stuff that's actually not quite done:
* https://github.com/rerun-io/rerun/issues/6321
* https://github.com/rerun-io/rerun/issues/6320
Commit by commit: I put everything noteworth into its own commit and put
the general less deep cleanup last (still has various judgement calls)
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6323?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6323?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
* [x] Succeed a main pr check since the pyproject.toml change makes me
nervous
- [PR Build Summary](https://build.rerun.io/pr/6323)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
crates/re_data_loader/src/lib.rs | 1 -
crates/re_data_ui/src/app_id.rs | 3 +-
crates/re_data_ui/src/data_source.rs | 3 +-
.../src/time_histogram_per_timeline.rs | 2 +-
crates/re_log_types/src/data_row.rs | 2 -
crates/re_log_types/src/data_table.rs | 2 -
crates/re_log_types/src/time_point/mod.rs | 3 +-
.../re_log_types/src/time_point/time_int.rs | 12 ----
crates/re_query/src/latest_at/helpers.rs | 4 +-
.../src/space_view_3d.rs | 2 +-
.../src/visualizers/assets3d.rs | 2 +-
.../src/space_view_class.rs | 4 +-
crates/re_time_panel/src/lib.rs | 55 ++-----------------
crates/re_time_panel/src/time_selection_ui.rs | 16 +-----
.../rerun/components/view_coordinates.fbs | 2 +-
.../src/codegen/rust/deserializer.rs | 6 +-
crates/re_types_builder/src/objects.rs | 36 +++++++-----
crates/re_ui/src/list_item2/list_item.rs | 2 +-
crates/re_viewer/src/app.rs | 1 -
crates/re_viewer_context/src/time_control.rs | 7 +--
.../src/space_view_entity_picker.rs | 2 +-
crates/re_viewport/src/viewport_blueprint.rs | 2 -
docs/snippets/build.rs | 2 +-
examples/cpp/incremental_logging/main.cpp | 5 +-
.../pyproject.toml | 3 -
.../incremental_logging.py | 6 +-
examples/rust/incremental_logging/src/main.rs | 5 +-
rerun_cpp/src/rerun/c/rerun.h | 2 +-
.../roundtrips/visible_time_ranges/main.py | 1 -
29 files changed, 59 insertions(+), 134 deletions(-)
diff --git a/crates/re_data_loader/src/lib.rs b/crates/re_data_loader/src/lib.rs
index a2e65d70562d9..de466fef2e1b6 100644
--- a/crates/re_data_loader/src/lib.rs
+++ b/crates/re_data_loader/src/lib.rs
@@ -204,7 +204,6 @@ impl DataLoaderSettings {
/// [Text files]: crate::SUPPORTED_TEXT_EXTENSIONS
//
// TODO(#4525): `DataLoader`s should support arbitrary URIs
-// TODO(#4526): `DataLoader`s should be exposed to the SDKs
// TODO(#4527): Web Viewer `?url` parameter should accept anything our `DataLoader`s support
pub trait DataLoader: Send + Sync {
/// Name of the [`DataLoader`].
diff --git a/crates/re_data_ui/src/app_id.rs b/crates/re_data_ui/src/app_id.rs
index 326004cbf7723..57589dbdcd2b6 100644
--- a/crates/re_data_ui/src/app_id.rs
+++ b/crates/re_data_ui/src/app_id.rs
@@ -41,7 +41,8 @@ impl crate::DataUi for ApplicationId {
.sorted_by_key(|entity_db| entity_db.store_info().map(|info| info.started))
.collect();
- //TODO(#6245): we should _not_ use interactive UI in code used for hover tooltip!
+ // Using the same content ui also for tooltips even if it can't be interacted with.
+ // (still displays the content we want)
if !recordings.is_empty() {
let content_ui = |ui: &mut egui::Ui| {
ui.spacing_mut().item_spacing.y = 0.0;
diff --git a/crates/re_data_ui/src/data_source.rs b/crates/re_data_ui/src/data_source.rs
index cf2a5da2112b1..b9177885dfaf9 100644
--- a/crates/re_data_ui/src/data_source.rs
+++ b/crates/re_data_ui/src/data_source.rs
@@ -50,7 +50,8 @@ impl crate::DataUi for re_smart_channel::SmartChannelSource {
recordings.sort_by_key(|entity_db| entity_db.store_info().map(|info| info.started));
blueprints.sort_by_key(|entity_db| entity_db.store_info().map(|info| info.started));
- //TODO(#6245): we should _not_ use interactive UI in code used for hover tooltip!
+ // Using the same content ui also for tooltips even if it can't be interacted with.
+ // (still displays the content we want)
let content_ui = |ui: &mut egui::Ui| {
if !recordings.is_empty() {
ui.add_space(8.0);
diff --git a/crates/re_entity_db/src/time_histogram_per_timeline.rs b/crates/re_entity_db/src/time_histogram_per_timeline.rs
index b17432d2a801c..d7c38d07e0b23 100644
--- a/crates/re_entity_db/src/time_histogram_per_timeline.rs
+++ b/crates/re_entity_db/src/time_histogram_per_timeline.rs
@@ -90,7 +90,7 @@ impl TimeHistogramPerTimeline {
.num_static_messages
.checked_sub(n as u64)
.unwrap_or_else(|| {
- // TODO(#4355): hitting this on plots demo
+ // We used to hit this on plots demo, see https://github.com/rerun-io/rerun/issues/4355.
re_log::debug!(
current = self.num_static_messages,
removed = n,
diff --git a/crates/re_log_types/src/data_row.rs b/crates/re_log_types/src/data_row.rs
index d7711c2224252..ad347d554c4fb 100644
--- a/crates/re_log_types/src/data_row.rs
+++ b/crates/re_log_types/src/data_row.rs
@@ -280,8 +280,6 @@ re_types_core::delegate_arrow_tuid!(RowId as "rerun.controls.RowId");
/// ).unwrap();
/// eprintln!("{row}");
/// ```
-//
-// TODO(#5303): the Layout part will be outdated in the new key-less model
#[derive(Debug, Clone)]
pub struct DataRow {
/// Auto-generated `TUID`, uniquely identifying this event and keeping track of the client's
diff --git a/crates/re_log_types/src/data_table.rs b/crates/re_log_types/src/data_table.rs
index fbe2f9ed2b514..9a843f2c7c77f 100644
--- a/crates/re_log_types/src/data_table.rs
+++ b/crates/re_log_types/src/data_table.rs
@@ -333,8 +333,6 @@ re_types_core::delegate_arrow_tuid!(TableId as "rerun.controls.TableId");
/// #
/// # assert_eq!(table_in, table_out);
/// ```
-//
-// TODO(#5303): the Layout part will be outdated in the new key-less model
#[derive(Debug, Clone, PartialEq)]
pub struct DataTable {
/// Auto-generated `TUID`, uniquely identifying this batch of data and keeping track of the
diff --git a/crates/re_log_types/src/time_point/mod.rs b/crates/re_log_types/src/time_point/mod.rs
index 337c75ae70300..6049e9602e07a 100644
--- a/crates/re_log_types/src/time_point/mod.rs
+++ b/crates/re_log_types/src/time_point/mod.rs
@@ -136,8 +136,7 @@ impl TimeType {
let time_int = time_int.into();
match time_int {
TimeInt::STATIC => "".into(),
- // TODO(#5264): remove time panel hack once we migrate to the new static UI
- TimeInt::MIN | TimeInt::MIN_TIME_PANEL => "-β".into(),
+ TimeInt::MIN => "-β".into(),
TimeInt::MAX => "+β".into(),
_ => match self {
Self::Time => Time::from(time_int).format(time_zone_for_timestamps),
diff --git a/crates/re_log_types/src/time_point/time_int.rs b/crates/re_log_types/src/time_point/time_int.rs
index 605831c2ad3de..db2147bcd82e5 100644
--- a/crates/re_log_types/src/time_point/time_int.rs
+++ b/crates/re_log_types/src/time_point/time_int.rs
@@ -38,18 +38,6 @@ impl std::fmt::Debug for TimeInt {
}
impl TimeInt {
- /// Hack.
- ///
- /// Special value used to represent timeless data in the time panel.
- ///
- /// The reason we don't use i64::MIN is because in the time panel we need
- /// to be able to pan to before the [`TimeInt::MIN`], and so we need
- /// a bit of leeway.
- //
- // TODO(#5264): remove this once we migrate to the new static UI
- #[doc(hidden)]
- pub const MIN_TIME_PANEL: Self = Self(NonMinI64::new(i64::MIN / 2));
-
/// Special value used to represent static data.
///
/// It is illegal to create a [`TimeInt`] with that value in a temporal context.
diff --git a/crates/re_query/src/latest_at/helpers.rs b/crates/re_query/src/latest_at/helpers.rs
index adce7289eabb3..fb52a8ee08f04 100644
--- a/crates/re_query/src/latest_at/helpers.rs
+++ b/crates/re_query/src/latest_at/helpers.rs
@@ -164,7 +164,7 @@ impl LatestAtComponentResults {
}
PromiseResult::Ready(data) => {
- // TODO(#5303): Figure out if/how we'd like to integrate clamping semantics into the
+ // TODO(#5259): Figure out if/how we'd like to integrate clamping semantics into the
// selection panel.
//
// For now, we simply always clamp, which is the closest to the legacy behavior that the UI
@@ -216,7 +216,7 @@ impl LatestAtComponentResults {
PromiseResult::Ready(cell) => {
let len = cell.num_instances() as usize;
- // TODO(#5303): Figure out if/how we'd like to integrate clamping semantics into the
+ // TODO(#5259): Figure out if/how we'd like to integrate clamping semantics into the
// selection panel.
//
// For now, we simply always clamp, which is the closest to the legacy behavior that the UI
diff --git a/crates/re_space_view_spatial/src/space_view_3d.rs b/crates/re_space_view_spatial/src/space_view_3d.rs
index 09dab4ba5e41f..d4254a96f5f3d 100644
--- a/crates/re_space_view_spatial/src/space_view_3d.rs
+++ b/crates/re_space_view_spatial/src/space_view_3d.rs
@@ -195,7 +195,7 @@ impl SpaceViewClass for SpatialSpaceView3D {
// Note that if the root has `ViewCoordinates`, this will stop the root splitting heuristic
// from splitting the root space into several subspaces.
//
- // TODO(andreas)/TODO(#4926):
+ // TODO(andreas):
// It's tempting to add a visualizer for view coordinates so that it's already picked up via `entities_with_indicator_for_visualizer_kind`.
// Is there a nicer way for this or do we want a visualizer for view coordinates anyways?
// There's also a strong argument to be made that ViewCoordinates implies a 3D space, thus changing the SpacialTopology accordingly!
diff --git a/crates/re_space_view_spatial/src/visualizers/assets3d.rs b/crates/re_space_view_spatial/src/visualizers/assets3d.rs
index 66a524ed79425..34df140728f00 100644
--- a/crates/re_space_view_spatial/src/visualizers/assets3d.rs
+++ b/crates/re_space_view_spatial/src/visualizers/assets3d.rs
@@ -62,7 +62,7 @@ impl Asset3DVisualizer {
let picking_instance_hash = re_entity_db::InstancePathHash::entity_all(entity_path);
let outline_mask_ids = ent_context.highlight.index_outline_mask(Instance::ALL);
- // TODO(#3232): this is subtly wrong, the key should actually be a hash of everything that got
+ // TODO(#5974): this is subtly wrong, the key should actually be a hash of everything that got
// cached, which includes the media typeβ¦
let mesh = ctx.cache.entry(|c: &mut MeshCache| {
c.entry(
diff --git a/crates/re_space_view_time_series/src/space_view_class.rs b/crates/re_space_view_time_series/src/space_view_class.rs
index 8ebcf4679fc2c..950a2903b4d8a 100644
--- a/crates/re_space_view_time_series/src/space_view_class.rs
+++ b/crates/re_space_view_time_series/src/space_view_class.rs
@@ -220,7 +220,9 @@ It can greatly improve performance (and readability) in such situations as it pr
// Spawn time series data at the root if there's time series data either
// directly at the root or one of its children.
- // TODO(#4926): This seems to be unnecessarily complicated.
+ //
+ // This is the last hold out of "child of root" spawning, which we removed otherwise
+ // (see https://github.com/rerun-io/rerun/issues/4926)
let subtree_of_root_entity = &ctx.recording().tree().children;
if indicated_entities.contains(&EntityPath::root())
|| subtree_of_root_entity
diff --git a/crates/re_time_panel/src/lib.rs b/crates/re_time_panel/src/lib.rs
index 6520a39ba9aff..2d718f1183411 100644
--- a/crates/re_time_panel/src/lib.rs
+++ b/crates/re_time_panel/src/lib.rs
@@ -409,7 +409,6 @@ impl TimePanel {
full_y_range,
);
time_selection_ui::loop_selection_ui(
- entity_db,
time_ctrl,
&self.time_ranges_ui,
ui,
@@ -860,7 +859,7 @@ impl TimePanel {
ui,
);
- current_time_ui(ctx, entity_db, ui, time_ctrl);
+ current_time_ui(ctx, ui, time_ctrl);
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
help_button(ui);
@@ -878,7 +877,7 @@ impl TimePanel {
.timeline_selector_ui(time_ctrl, times_per_timeline, ui);
self.time_control_ui.playback_speed_ui(time_ctrl, ui);
self.time_control_ui.fps_ui(time_ctrl, ui);
- current_time_ui(ctx, entity_db, ui, time_ctrl);
+ current_time_ui(ctx, ui, time_ctrl);
ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| {
help_button(ui);
@@ -973,7 +972,7 @@ fn collapsed_time_marker_and_time(
}
}
- current_time_ui(ctx, entity_db, ui, time_ctrl);
+ current_time_ui(ctx, ui, time_ctrl);
}
fn paint_range_highlight(
@@ -1012,52 +1011,10 @@ fn help_button(ui: &mut egui::Ui) {
);
}
-/// A user can drag the time slider to between the timeless data and the first real data.
-///
-/// The time interpolated there is really weird, as it goes from [`TimeInt::MIN_TIME_PANEL`]
-/// (which is extremely long time ago) to whatever tim the user logged.
-/// So we do not want to display these times to the user.
-///
-/// This functions returns `true` iff the given time is safe to show.
-//
-// TODO(#5264): remove time panel hack once we migrate to the new static UI
-fn is_time_safe_to_show(
- entity_db: &re_entity_db::EntityDb,
- timeline: &re_data_store::Timeline,
- time: TimeReal,
-) -> bool {
- if entity_db.num_static_messages() == 0 {
- return true; // no timeless messages, no problem
- }
-
- if let Some(times) = entity_db.tree().subtree.time_histogram.get(timeline) {
- if let Some(first_time) = times.min_key() {
- let margin = match timeline.typ() {
- re_data_store::TimeType::Time => TimeInt::from_seconds(10_000.try_into().unwrap()),
- re_data_store::TimeType::Sequence => {
- TimeInt::from_sequence(1_000.try_into().unwrap())
- }
- };
-
- return TimeInt::new_temporal(first_time) <= time + margin;
- }
- }
-
- TimeInt::MIN_TIME_PANEL < time
-}
-
-fn current_time_ui(
- ctx: &ViewerContext<'_>,
- entity_db: &re_entity_db::EntityDb,
- ui: &mut egui::Ui,
- time_ctrl: &TimeControl,
-) {
+fn current_time_ui(ctx: &ViewerContext<'_>, ui: &mut egui::Ui, time_ctrl: &TimeControl) {
if let Some(time_int) = time_ctrl.time_int() {
- let timeline = time_ctrl.timeline();
- if is_time_safe_to_show(entity_db, timeline, time_int.into()) {
- let time_type = time_ctrl.time_type();
- ui.monospace(time_type.format(time_int, ctx.app_options.time_zone));
- }
+ let time_type = time_ctrl.time_type();
+ ui.monospace(time_type.format(time_int, ctx.app_options.time_zone));
}
}
diff --git a/crates/re_time_panel/src/time_selection_ui.rs b/crates/re_time_panel/src/time_selection_ui.rs
index dab747e46837b..f65a297a6a075 100644
--- a/crates/re_time_panel/src/time_selection_ui.rs
+++ b/crates/re_time_panel/src/time_selection_ui.rs
@@ -1,21 +1,17 @@
use egui::{CursorIcon, Id, NumExt as _, Rect};
-use re_entity_db::EntityDb;
use re_log_types::{Duration, ResolvedTimeRangeF, TimeInt, TimeReal, TimeType};
use re_viewer_context::{Looping, TimeControl};
-use super::{is_time_safe_to_show, time_ranges_ui::TimeRangesUi};
+use super::time_ranges_ui::TimeRangesUi;
pub fn loop_selection_ui(
- entity_db: &EntityDb,
time_ctrl: &mut TimeControl,
time_ranges_ui: &TimeRangesUi,
ui: &egui::Ui,
time_area_painter: &egui::Painter,
timeline_rect: &Rect,
) {
- let timeline = *time_ctrl.timeline();
-
if time_ctrl.loop_selection().is_none() && time_ctrl.looping() == Looping::Selection {
// Helpfully select a time slice
if let Some(selection) = initial_time_selection(time_ranges_ui, time_ctrl.time_type()) {
@@ -74,11 +70,7 @@ pub fn loop_selection_ui(
time_area_painter.rect_filled(rect, rounding, selection_color);
}
- if is_active
- && !selected_range.is_empty()
- && is_time_safe_to_show(entity_db, &timeline, selected_range.min)
- && is_time_safe_to_show(entity_db, &timeline, selected_range.max)
- {
+ if is_active && !selected_range.is_empty() {
paint_range_text(time_ctrl, selected_range, ui, time_area_painter, rect);
}
@@ -302,10 +294,6 @@ fn paint_range_text(
) {
use egui::{Pos2, Stroke};
- if selected_range.min <= TimeInt::MIN_TIME_PANEL {
- return; // huge time selection, don't show a confusing times
- }
-
let text_color = ui.visuals().strong_text_color();
let arrow_color = text_color.gamma_multiply(0.75);
diff --git a/crates/re_types/definitions/rerun/components/view_coordinates.fbs b/crates/re_types/definitions/rerun/components/view_coordinates.fbs
index a29011d9a7705..8c52db46e6cff 100644
--- a/crates/re_types/definitions/rerun/components/view_coordinates.fbs
+++ b/crates/re_types/definitions/rerun/components/view_coordinates.fbs
@@ -7,7 +7,7 @@ include "rerun/datatypes.fbs";
namespace rerun.components;
-// TODO(#3384)
+// TODO(#6320)
/*
enum ViewDir: byte {
Up = 1,
diff --git a/crates/re_types_builder/src/codegen/rust/deserializer.rs b/crates/re_types_builder/src/codegen/rust/deserializer.rs
index 56779fa7c09fd..12872bb81628b 100644
--- a/crates/re_types_builder/src/codegen/rust/deserializer.rs
+++ b/crates/re_types_builder/src/codegen/rust/deserializer.rs
@@ -33,10 +33,8 @@ use crate::{
/// The deserializers are designed for maximum performance, assuming the incoming data is correct.
/// If the data is not correct, the deserializers will return an error, but never panic or crash.
///
-/// In the future we should add some basic arrow datatype validation during data ingestion,
-/// so that changing the datatype between versions of the SDK will produce some helpful warnings
-/// instead of just silent bugs.
-/// TODO(#5291): add basic arrow datatype validation during data ingestion
+/// TODO(#5305): Currently we're doing a lot of checking for exact matches.
+/// We should instead assume data is correct and handle errors gracefully.
///
/// ## Understanding datatypes
///
diff --git a/crates/re_types_builder/src/objects.rs b/crates/re_types_builder/src/objects.rs
index 7b9e0cea067fa..2a63f74549d75 100644
--- a/crates/re_types_builder/src/objects.rs
+++ b/crates/re_types_builder/src/objects.rs
@@ -66,7 +66,8 @@ impl Objects {
continue;
}
- let resolved_obj = Object::from_raw_object(include_dir_path, &enums, &objs, &obj);
+ let resolved_obj =
+ Object::from_raw_object(reporter, include_dir_path, &enums, &objs, &obj);
resolved_objs.insert(resolved_obj.fqname.clone(), resolved_obj);
}
@@ -331,6 +332,7 @@ impl Object {
/// Resolves a raw [`crate::Object`] into a higher-level representation that can be easily
/// interpreted and manipulated.
pub fn from_raw_object(
+ reporter: &Reporter,
include_dir_path: impl AsRef,
enums: &[FbsEnum<'_>],
objs: &[FbsObject<'_>],
@@ -369,7 +371,14 @@ impl Object {
.filter(|field| field.type_().base_type() != FbsBaseType::UType)
.filter(|field| field.type_().element() != FbsBaseType::UType)
.map(|field| {
- ObjectField::from_raw_object_field(include_dir_path, enums, objs, obj, &field)
+ ObjectField::from_raw_object_field(
+ reporter,
+ include_dir_path,
+ enums,
+ objs,
+ obj,
+ &field,
+ )
})
.collect();
@@ -647,12 +656,6 @@ pub struct ObjectField {
/// Whether the field is nullable.
pub is_nullable: bool,
- /// Whether the field is deprecated.
- //
- // TODO(#2366): do something with this
- // TODO(#2367): implement custom attr to specify deprecation reason
- pub is_deprecated: bool,
-
/// The Arrow datatype of this `ObjectField`.
///
/// This is lazily computed when the parent object gets registered into the Arrow registry and
@@ -662,6 +665,7 @@ pub struct ObjectField {
impl ObjectField {
pub fn from_raw_object_field(
+ reporter: &Reporter,
include_dir_path: impl AsRef,
enums: &[FbsEnum<'_>],
objs: &[FbsObject<'_>],
@@ -690,7 +694,17 @@ impl ObjectField {
let order = attrs.get::(&fqname, crate::ATTR_ORDER);
let is_nullable = attrs.has(crate::ATTR_NULLABLE) || typ == Type::Unit; // null type is always nullable
- let is_deprecated = field.deprecated();
+
+ if field.deprecated() {
+ reporter.warn(
+ &virtpath,
+ &fqname,
+ format!(
+ "Use {} attribute for deprecation instead",
+ crate::ATTR_RERUN_DEPRECATED
+ ),
+ );
+ }
Self {
virtpath,
@@ -703,7 +717,6 @@ impl ObjectField {
attrs,
order,
is_nullable,
- is_deprecated,
datatype: None,
}
}
@@ -745,8 +758,6 @@ impl ObjectField {
attrs.has(crate::ATTR_NULLABLE) || typ == Type::Unit // null type is always nullable
};
- let is_deprecated = false;
-
if attrs.has(crate::ATTR_ORDER) {
reporter.warn(
&virtpath,
@@ -766,7 +777,6 @@ impl ObjectField {
attrs,
order: 0, // no needed for enums
is_nullable,
- is_deprecated,
datatype: None,
}
}
diff --git a/crates/re_ui/src/list_item2/list_item.rs b/crates/re_ui/src/list_item2/list_item.rs
index ef4b5d199645e..6114dd1797588 100644
--- a/crates/re_ui/src/list_item2/list_item.rs
+++ b/crates/re_ui/src/list_item2/list_item.rs
@@ -26,7 +26,7 @@ pub struct ShowCollapsingResponse {
///
/// The following features are supported:
/// - Flat or collapsible hierarchical lists.
-/// - Full-span background highlighting via [`super::list_item_scope`]. TODO(#6156): fix reference
+/// - Full-span background highlighting via [`crate::full_span::full_span_scope`].
/// - Interactive or not.
/// - Support for drag and drop with [`crate::drag_and_drop`].
///
diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs
index 5ebad59d3403c..8773cacf01e0f 100644
--- a/crates/re_viewer/src/app.rs
+++ b/crates/re_viewer/src/app.rs
@@ -1039,7 +1039,6 @@ impl App {
StoreKind::Blueprint => {
// We wait with activating blueprints until they are fully loaded,
// so that we don't run heuristics on half-loaded blueprints.
- // TODO(#5297): heed special "end-of-blueprint" message to activate blueprint.
// Otherwise on a mixed connection (SDK sending both blueprint and recording)
// the blueprint won't be activated until the whole _recording_ has finished loading.
}
diff --git a/crates/re_viewer_context/src/time_control.rs b/crates/re_viewer_context/src/time_control.rs
index a73264156e533..5731290d7441a 100644
--- a/crates/re_viewer_context/src/time_control.rs
+++ b/crates/re_viewer_context/src/time_control.rs
@@ -563,14 +563,11 @@ impl TimeControl {
}
fn min(values: &TimeCounts) -> TimeInt {
- *values.keys().next().unwrap_or(&TimeInt::MIN_TIME_PANEL)
+ *values.keys().next().unwrap_or(&TimeInt::MIN)
}
fn max(values: &TimeCounts) -> TimeInt {
- *values
- .keys()
- .next_back()
- .unwrap_or(&TimeInt::MIN_TIME_PANEL)
+ *values.keys().next_back().unwrap_or(&TimeInt::MIN)
}
fn range(values: &TimeCounts) -> ResolvedTimeRange {
diff --git a/crates/re_viewport/src/space_view_entity_picker.rs b/crates/re_viewport/src/space_view_entity_picker.rs
index fa63f2e8398ad..9b1b94c4705c9 100644
--- a/crates/re_viewport/src/space_view_entity_picker.rs
+++ b/crates/re_viewport/src/space_view_entity_picker.rs
@@ -335,7 +335,7 @@ fn create_entity_add_info(
already_added: query_result.contains_entity(entity_path),
}
} else {
- // TODO(#4826): This shouldn't necessarily prevent us from adding it.
+ // TODO(#6321): This shouldn't necessarily prevent us from adding it.
CanAddToSpaceView::No {
reason: format!(
"Entity can't be displayed by any of the available visualizers in this class of space view ({}).",
diff --git a/crates/re_viewport/src/viewport_blueprint.rs b/crates/re_viewport/src/viewport_blueprint.rs
index a0400e05c21a1..67e3b2390dc33 100644
--- a/crates/re_viewport/src/viewport_blueprint.rs
+++ b/crates/re_viewport/src/viewport_blueprint.rs
@@ -225,8 +225,6 @@ impl ViewportBlueprint {
}
/// Duplicates a space view and its entity property overrides.
- ///
- /// TODO(#4977): much more than just entity properties must be cloned: overrides, etc.
pub fn duplicate_space_view(
&self,
space_view_id: &SpaceViewId,
diff --git a/docs/snippets/build.rs b/docs/snippets/build.rs
index 0554c0655dc83..8d94f147ef710 100644
--- a/docs/snippets/build.rs
+++ b/docs/snippets/build.rs
@@ -39,7 +39,7 @@ fn main() {
let contents = fs::read_to_string(&path).unwrap();
- // TODO(#515): some snippets lack a main, they should come with their necessary stub code commented out so that we can re-add it here.
+ // TODO(#4047): some snippets lack a main, they should come with their necessary stub code commented out so that we can re-add it here.
if contents.contains("fn main()") {
// Patch the source code so we can call into `main` and pass arguments to it:
let contents =
diff --git a/examples/cpp/incremental_logging/main.cpp b/examples/cpp/incremental_logging/main.cpp
index 3dbd9f62f984f..11b9c60bc1e90 100644
--- a/examples/cpp/incremental_logging/main.cpp
+++ b/examples/cpp/incremental_logging/main.cpp
@@ -49,9 +49,8 @@ int main() {
rerun::TextDocument(README).with_media_type(rerun::components::MediaType::markdown())
);
- // TODO(#5264): just log one once clamp-to-edge semantics land.
- std::vector colors(10, rerun::Color(255, 0, 0));
- std::vector radii(10, rerun::Radius(0.1f));
+ rerun::Collection colors = rerun::Color(255, 0, 0);
+ rerun::Collection radii = rerun::Radius(0.1f);
// Only log colors and radii once.
rec.set_time_sequence("frame_nr", 0);
diff --git a/examples/python/depth_guided_stable_diffusion/pyproject.toml b/examples/python/depth_guided_stable_diffusion/pyproject.toml
index a925fcb6992cd..86179db66aa8a 100644
--- a/examples/python/depth_guided_stable_diffusion/pyproject.toml
+++ b/examples/python/depth_guided_stable_diffusion/pyproject.toml
@@ -20,9 +20,6 @@ dependencies = [
[project.scripts]
depth_guided_stable_diffusion = "depth_guided_stable_diffusion.__main__:main"
-[tool.rerun-example]
-skip = true # TODO(#5976): controlnet has conflicting dependencies
-
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
diff --git a/examples/python/incremental_logging/incremental_logging.py b/examples/python/incremental_logging/incremental_logging.py
index cf631dfe69914..c649b8671b922 100755
--- a/examples/python/incremental_logging/incremental_logging.py
+++ b/examples/python/incremental_logging/incremental_logging.py
@@ -5,7 +5,6 @@
import argparse
-import numpy as np
import rerun as rr
from numpy.random import default_rng
@@ -47,9 +46,8 @@
rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True)
-# TODO(#5264): just log one once clamp-to-edge semantics land.
-colors = rr.components.ColorBatch(np.repeat(0xFF0000FF, 10))
-radii = rr.components.RadiusBatch(np.repeat(0.1, 10))
+colors = rr.components.ColorBatch(0xFF0000FF)
+radii = rr.components.RadiusBatch(0.1)
# Only log colors and radii once.
rr.set_time_sequence("frame_nr", 0)
diff --git a/examples/rust/incremental_logging/src/main.rs b/examples/rust/incremental_logging/src/main.rs
index c155ec124bda5..e5ba8f616bc31 100644
--- a/examples/rust/incremental_logging/src/main.rs
+++ b/examples/rust/incremental_logging/src/main.rs
@@ -58,9 +58,8 @@ Move the time cursor around, and notice how the colors and radii from frame 0 ar
fn run(rec: &rerun::RecordingStream) -> anyhow::Result<()> {
rec.log_static("readme", &rerun::TextDocument::from_markdown(README))?;
- // TODO(#5264): just log one once clamp-to-edge semantics land.
- let colors = [rerun::Color::from_rgb(255, 0, 0); 10];
- let radii = [rerun::Radius(0.1); 10];
+ let colors = [rerun::Color::from_rgb(255, 0, 0)];
+ let radii = [rerun::Radius(0.1)];
// Only log colors and radii once.
rec.set_time_sequence("frame_nr", 0);
diff --git a/rerun_cpp/src/rerun/c/rerun.h b/rerun_cpp/src/rerun/c/rerun.h
index 115b186c2d365..1bc3773b208bc 100644
--- a/rerun_cpp/src/rerun/c/rerun.h
+++ b/rerun_cpp/src/rerun/c/rerun.h
@@ -267,7 +267,7 @@ typedef struct rr_error {
///
/// This should match the string returned by `rr_version_string`.
/// If not, the SDK's binary and the C header are out of sync.
-#define RERUN_SDK_HEADER_VERSION "0.16.0-alpha.3"
+#define RERUN_SDK_HEADER_VERSION "0.16.0-alpha.4"
/// Returns a human-readable version string of the Rerun C SDK.
///
diff --git a/tests/python/roundtrips/visible_time_ranges/main.py b/tests/python/roundtrips/visible_time_ranges/main.py
index 9bede7ea1ede0..58dec4e432a73 100644
--- a/tests/python/roundtrips/visible_time_ranges/main.py
+++ b/tests/python/roundtrips/visible_time_ranges/main.py
@@ -17,7 +17,6 @@ def main() -> None:
rr.script_setup(args, "rerun_example_roundtrip_visible_time_ranges")
- # TODO(#6221): There's improvements pending for this api.
rr.log(
"visible_time_ranges",
rrb.archetypes.VisibleTimeRanges([
From cd31f9b2fb3f6f029c5f27c9138ec9bb71cfe5d8 Mon Sep 17 00:00:00 2001
From: Artur J <108059518+Artxiom@users.noreply.github.com>
Date: Wed, 15 May 2024 09:39:28 +0100
Subject: [PATCH 07/40] Reduce number of unwrap calls and make clippy warning
for it opt-out per crate (#6311)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
### What
Resolves #3408: Remove all usages of unwrap() and forbid it's use (if
applicable).
*If applicable* because even after the first batch of changes there are
over 800(!) usages of unwrap() in the code - for various reasons, and
often explicitly allowed. So I think it's probably unrealistic to get
rid of all of them, and probably also not necessary.
The strategy:
1. Warn on all usages of `unwrap()`.
2. Remove `unwrap()` module by module.
3. Where `unwrap()` would be theoretically okay use `expect("error
msg")`.
4. Leave build tools as they are for now - panics there are annoying but
not critical (can happen when e.g. some command line tool is missing).
5. For tests and benchmarks unwrap is totally okay imho
(`allow-unwrap-in-tests` was anyway already set in `clippy.toml`)
6. Where errors are returned combine error types and "?-ify" the code,
or use some other idiomatic Rust expression.
7. Goal: eventually deny `clippy::unwrap_used` everywhere, unless
explicitly allowed.
*Note: as this is my first PR, early feedback is greatly appreciated*π
Also - rookie question - what (or where) are the guidelines for the last
three items in the checklist? Are they needed for this PR, as this is
just a cleanup?
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
- [PR Build Summary](https://build.rerun.io/pr/6311)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
Cargo.toml | 2 +-
crates/re_analytics/examples/end_to_end.rs | 6 +-
crates/re_analytics/src/native/config.rs | 4 +-
crates/re_build_info/src/build_info.rs | 4 +-
crates/re_build_tools/src/hashing.rs | 2 +-
crates/re_data_store/benches/arrow2.rs | 3 +
crates/re_data_store/benches/data_store.rs | 3 +
crates/re_data_store/benches/gc.rs | 3 +
crates/re_data_store/src/lib.rs | 3 +
crates/re_data_store/tests/correctness.rs | 3 +
crates/re_data_store/tests/data_store.rs | 3 +
crates/re_data_store/tests/dump.rs | 3 +
crates/re_data_store/tests/internals.rs | 3 +
crates/re_data_store/tests/memory_test.rs | 3 +
crates/re_dev_tools/src/main.rs | 3 +
crates/re_entity_db/examples/memory_usage.rs | 3 +
.../components/entity_properties_component.rs | 7 +-
crates/re_entity_db/src/lib.rs | 3 +
crates/re_entity_db/tests/clear.rs | 3 +
crates/re_entity_db/tests/time_histograms.rs | 3 +
crates/re_format_arrow/src/lib.rs | 3 +
.../benches/msg_encode_benchmark.rs | 3 +
crates/re_log_encoding/src/lib.rs | 8 +-
.../src/stream_rrd_from_http.rs | 4 +
crates/re_log_types/src/lib.rs | 3 +
crates/re_query/benches/latest_at.rs | 3 +
crates/re_query/src/latest_at/results.rs | 6 +-
crates/re_query/src/lib.rs | 3 +
crates/re_query/tests/latest_at.rs | 3 +
crates/re_query/tests/range.rs | 3 +
crates/re_renderer/src/lib.rs | 3 +
crates/re_renderer_examples/2d.rs | 3 +
crates/re_renderer_examples/depth_cloud.rs | 3 +
crates/re_renderer_examples/depth_offset.rs | 3 +
crates/re_renderer_examples/framework.rs | 3 +
crates/re_renderer_examples/multiview.rs | 3 +
crates/re_renderer_examples/outlines.rs | 3 +
crates/re_renderer_examples/picking.rs | 3 +
crates/re_sdk/src/lib.rs | 2 +
crates/re_sdk_comms/src/lib.rs | 1 +
crates/re_sdk_comms/src/server.rs | 6 +-
crates/re_space_view_spatial/src/lib.rs | 3 +
crates/re_space_view_tensor/src/lib.rs | 3 +
crates/re_space_view_time_series/src/lib.rs | 3 +
crates/re_time_panel/src/lib.rs | 3 +
crates/re_types/Cargo.toml | 1 -
.../src/blueprint/components/active_tab.rs | 3 +-
.../blueprint/components/included_content.rs | 3 +-
.../blueprint/components/query_expression.rs | 3 +-
.../blueprint/components/space_view_class.rs | 3 +-
.../blueprint/components/space_view_origin.rs | 3 +-
.../src/components/annotation_context.rs | 7 +-
crates/re_types/src/components/blob.rs | 7 +-
.../re_types/src/components/half_sizes2d.rs | 6 +-
.../re_types/src/components/half_sizes3d.rs | 6 +-
.../re_types/src/components/line_strip2d.rs | 13 +--
.../re_types/src/components/line_strip3d.rs | 13 +--
crates/re_types/src/components/media_type.rs | 3 +-
crates/re_types/src/components/name.rs | 3 +-
.../src/components/pinhole_projection.rs | 6 +-
crates/re_types/src/components/position2d.rs | 6 +-
crates/re_types/src/components/position3d.rs | 6 +-
crates/re_types/src/components/range1d.rs | 6 +-
crates/re_types/src/components/resolution.rs | 6 +-
crates/re_types/src/components/texcoord2d.rs | 6 +-
crates/re_types/src/components/text.rs | 3 +-
.../re_types/src/components/text_log_level.rs | 3 +-
.../src/components/triangle_indices.rs | 6 +-
crates/re_types/src/components/vector2d.rs | 6 +-
crates/re_types/src/components/vector3d.rs | 6 +-
.../src/components/view_coordinates.rs | 6 +-
.../re_types/src/datatypes/annotation_info.rs | 4 +-
.../src/datatypes/class_description.rs | 14 ++-
crates/re_types/src/datatypes/mat3x3.rs | 6 +-
crates/re_types/src/datatypes/mat4x4.rs | 6 +-
crates/re_types/src/datatypes/quaternion.rs | 6 +-
crates/re_types/src/datatypes/range1d.rs | 6 +-
crates/re_types/src/datatypes/range2d.rs | 12 ++-
crates/re_types/src/datatypes/rotation3d.rs | 6 +-
.../src/datatypes/rotation_axis_angle.rs | 6 +-
crates/re_types/src/datatypes/scale3d.rs | 6 +-
.../re_types/src/datatypes/tensor_buffer.rs | 98 ++++++++-----------
crates/re_types/src/datatypes/tensor_data.rs | 7 +-
.../re_types/src/datatypes/tensor_data_ext.rs | 4 +-
.../src/datatypes/tensor_dimension.rs | 3 +-
.../src/datatypes/translation_and_mat3x3.rs | 12 ++-
.../datatypes/translation_rotation_scale3d.rs | 6 +-
crates/re_types/src/datatypes/uuid.rs | 6 +-
crates/re_types/src/datatypes/uvec2d.rs | 6 +-
crates/re_types/src/datatypes/uvec3d.rs | 6 +-
crates/re_types/src/datatypes/uvec4d.rs | 6 +-
crates/re_types/src/datatypes/vec2d.rs | 6 +-
crates/re_types/src/datatypes/vec3d.rs | 6 +-
crates/re_types/src/datatypes/vec4d.rs | 6 +-
crates/re_types/src/tensor_data.rs | 4 +-
.../src/testing/components/affix_fuzzer10.rs | 3 +-
.../src/testing/components/affix_fuzzer11.rs | 7 +-
.../src/testing/components/affix_fuzzer12.rs | 10 +-
.../src/testing/components/affix_fuzzer13.rs | 10 +-
.../src/testing/components/affix_fuzzer16.rs | 7 +-
.../src/testing/components/affix_fuzzer17.rs | 7 +-
.../src/testing/components/affix_fuzzer18.rs | 7 +-
.../src/testing/components/affix_fuzzer7.rs | 7 +-
.../src/testing/components/affix_fuzzer9.rs | 3 +-
.../src/testing/datatypes/affix_fuzzer1.rs | 33 +++----
.../src/testing/datatypes/affix_fuzzer20.rs | 4 +-
.../src/testing/datatypes/affix_fuzzer21.rs | 7 +-
.../src/testing/datatypes/affix_fuzzer22.rs | 6 +-
.../src/testing/datatypes/affix_fuzzer3.rs | 13 +--
.../src/testing/datatypes/affix_fuzzer4.rs | 7 +-
.../src/testing/datatypes/string_component.rs | 3 +-
.../components/included_space_view.rs | 6 +-
.../blueprint/components/root_container.rs | 6 +-
.../components/space_view_maximized.rs | 6 +-
crates/re_types_builder/build.rs | 4 +-
.../src/bin/build_re_types.rs | 3 +
crates/re_types_builder/src/codegen/mod.rs | 3 +
.../src/codegen/rust/deserializer.rs | 12 ++-
.../src/codegen/rust/serializer.rs | 18 ++--
crates/re_types_builder/src/lib.rs | 3 +
crates/re_types_core/benches/bench_tuid.rs | 3 +
.../src/components/visualizer_overrides.rs | 10 +-
.../src/datatypes/entity_path.rs | 3 +-
crates/re_types_core/src/datatypes/utf8.rs | 3 +-
.../src/datatypes/visible_time_range.rs | 4 +-
crates/re_types_core/src/lib.rs | 3 +
crates/re_types_core/src/result.rs | 41 +++++++-
crates/re_ui/examples/re_ui_example/main.rs | 2 +-
crates/re_viewer/src/lib.rs | 3 +
crates/re_viewport/src/lib.rs | 3 +
crates/re_ws_comms/src/lib.rs | 3 +
crates/rerun/src/lib.rs | 2 +
crates/rerun_c/src/lib.rs | 5 +-
docs/snippets/build.rs | 5 +-
rerun_py/build.rs | 2 +-
rerun_py/src/python_bridge.rs | 2 +-
run_wasm/src/main.rs | 14 ++-
tests/rust/roundtrips/image/src/main.rs | 3 +
tests/rust/test_image_memory/src/main.rs | 3 +
139 files changed, 532 insertions(+), 316 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 897a18996a43e..090f363c079b0 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -444,7 +444,7 @@ missing_errors_doc = "allow"
# This would be nice to enable, but we have way too many unwraps right now π
# Enabling this lint in 2023-04-27 yielded 556 hits.
# Enabling this lint in 2023-09-23 yielded 352 hits
-unwrap_used = "allow"
+unwrap_used = "warn"
[patch.crates-io]
# Try to avoid patching crates! It prevents us from publishing the crates on crates.io.
diff --git a/crates/re_analytics/examples/end_to_end.rs b/crates/re_analytics/examples/end_to_end.rs
index 631d783208dba..266fec85bc45b 100644
--- a/crates/re_analytics/examples/end_to_end.rs
+++ b/crates/re_analytics/examples/end_to_end.rs
@@ -4,17 +4,17 @@ use re_analytics::Event;
use re_analytics::Properties;
use re_analytics::{Analytics, AnalyticsEvent};
-fn main() -> ! {
+fn main() -> Result<(), Box> {
re_log::setup_logging();
- let analytics = Analytics::new(Duration::from_secs(3)).unwrap();
+ let analytics = Analytics::new(Duration::from_secs(3))?;
let application_id = "end_to_end_example".to_owned();
let recording_id = uuid::Uuid::new_v4().to_string();
println!("any non-empty line written here will be sent as an analytics datapoint");
loop {
let mut input = String::new();
- std::io::stdin().read_line(&mut input).unwrap();
+ std::io::stdin().read_line(&mut input)?;
let input = input.trim();
if !input.is_empty() {
diff --git a/crates/re_analytics/src/native/config.rs b/crates/re_analytics/src/native/config.rs
index 4a00e1d807f76..df43652793550 100644
--- a/crates/re_analytics/src/native/config.rs
+++ b/crates/re_analytics/src/native/config.rs
@@ -106,7 +106,9 @@ impl Config {
}
pub fn config_dir(&self) -> &Path {
- self.config_file_path.parent().unwrap()
+ self.config_file_path
+ .parent()
+ .expect("config file has no parent")
}
pub fn config_file(&self) -> &Path {
diff --git a/crates/re_build_info/src/build_info.rs b/crates/re_build_info/src/build_info.rs
index 28f39a3d87b5d..1192eb719bd95 100644
--- a/crates/re_build_info/src/build_info.rs
+++ b/crates/re_build_info/src/build_info.rs
@@ -166,8 +166,8 @@ fn crate_version_from_build_info_string() {
{
let expected_crate_version = build_info.version;
- let crate_version = CrateVersion::try_parse_from_build_info_string(build_info_str).unwrap();
+ let crate_version = CrateVersion::try_parse_from_build_info_string(build_info_str);
- assert_eq!(expected_crate_version, crate_version);
+ assert_eq!(Ok(expected_crate_version), crate_version);
}
}
diff --git a/crates/re_build_tools/src/hashing.rs b/crates/re_build_tools/src/hashing.rs
index fd5f2df5d8f09..f4d03203fc3c1 100644
--- a/crates/re_build_tools/src/hashing.rs
+++ b/crates/re_build_tools/src/hashing.rs
@@ -12,7 +12,7 @@ use crate::{rerun_if_changed, rerun_if_changed_or_doesnt_exist};
fn encode_hex(bytes: &[u8]) -> String {
let mut s = String::with_capacity(bytes.len() * 2);
for &b in bytes {
- write!(&mut s, "{b:02x}").unwrap();
+ write!(&mut s, "{b:02x}").expect("writing to string should never fail");
}
s
}
diff --git a/crates/re_data_store/benches/arrow2.rs b/crates/re_data_store/benches/arrow2.rs
index 256c83983bfc8..4883fc2a3c10e 100644
--- a/crates/re_data_store/benches/arrow2.rs
+++ b/crates/re_data_store/benches/arrow2.rs
@@ -1,5 +1,8 @@
//! Keeping track of performance issues/regressions in `arrow2` that directly affect us.
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
diff --git a/crates/re_data_store/benches/data_store.rs b/crates/re_data_store/benches/data_store.rs
index 854186ebaa416..1a62eec8c45df 100644
--- a/crates/re_data_store/benches/data_store.rs
+++ b/crates/re_data_store/benches/data_store.rs
@@ -1,3 +1,6 @@
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
diff --git a/crates/re_data_store/benches/gc.rs b/crates/re_data_store/benches/gc.rs
index 3e840aac1c676..a3509e37ba5e0 100644
--- a/crates/re_data_store/benches/gc.rs
+++ b/crates/re_data_store/benches/gc.rs
@@ -1,3 +1,6 @@
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
#[global_allocator]
static GLOBAL: mimalloc::MiMalloc = mimalloc::MiMalloc;
diff --git a/crates/re_data_store/src/lib.rs b/crates/re_data_store/src/lib.rs
index 5e350dcf8a40d..477bb87ae64af 100644
--- a/crates/re_data_store/src/lib.rs
+++ b/crates/re_data_store/src/lib.rs
@@ -14,6 +14,9 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod arrow_util;
mod store;
mod store_arrow;
diff --git a/crates/re_data_store/tests/correctness.rs b/crates/re_data_store/tests/correctness.rs
index 50d4245e8d29a..4c60d32b05a77 100644
--- a/crates/re_data_store/tests/correctness.rs
+++ b/crates/re_data_store/tests/correctness.rs
@@ -2,6 +2,9 @@
//!
//! Bending and twisting the datastore APIs in all kinds of weird ways to try and break them.
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use rand::Rng;
use re_data_store::{
diff --git a/crates/re_data_store/tests/data_store.rs b/crates/re_data_store/tests/data_store.rs
index 4ae0a501d5a0c..572bccfce5adb 100644
--- a/crates/re_data_store/tests/data_store.rs
+++ b/crates/re_data_store/tests/data_store.rs
@@ -2,6 +2,9 @@
//!
//! Testing & demonstrating expected usage of the datastore APIs, no funny stuff.
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use itertools::Itertools;
use rand::Rng;
use re_data_store::{
diff --git a/crates/re_data_store/tests/dump.rs b/crates/re_data_store/tests/dump.rs
index 9bba331496f95..7b8b91c7fa3aa 100644
--- a/crates/re_data_store/tests/dump.rs
+++ b/crates/re_data_store/tests/dump.rs
@@ -1,5 +1,8 @@
//! Dumping a datastore to log messages and back.
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use itertools::Itertools;
use re_data_store::{
test_row,
diff --git a/crates/re_data_store/tests/internals.rs b/crates/re_data_store/tests/internals.rs
index b0cb6b5e351c5..fbd44333ded9d 100644
--- a/crates/re_data_store/tests/internals.rs
+++ b/crates/re_data_store/tests/internals.rs
@@ -2,6 +2,9 @@
//!
//! They're awful, but sometimes you just have toβ¦
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use re_data_store::{DataStore, DataStoreConfig};
use re_log_types::{
build_frame_nr, example_components::MyIndex, DataRow, EntityPath, RowId, TimePoint,
diff --git a/crates/re_data_store/tests/memory_test.rs b/crates/re_data_store/tests/memory_test.rs
index 42c34c088a17f..e29a262ac0b50 100644
--- a/crates/re_data_store/tests/memory_test.rs
+++ b/crates/re_data_store/tests/memory_test.rs
@@ -1,5 +1,8 @@
//! Measures the memory overhead of the data store.
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use std::sync::atomic::{AtomicUsize, Ordering::Relaxed};
thread_local! {
diff --git a/crates/re_dev_tools/src/main.rs b/crates/re_dev_tools/src/main.rs
index d2ba6dc5f5cb6..595dec59d75a7 100644
--- a/crates/re_dev_tools/src/main.rs
+++ b/crates/re_dev_tools/src/main.rs
@@ -2,6 +2,9 @@
//!
//! To get an overview over all tools run `pixi run dev-tools --help`.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use argh::FromArgs;
mod build_examples;
diff --git a/crates/re_entity_db/examples/memory_usage.rs b/crates/re_entity_db/examples/memory_usage.rs
index 2effe5505b2cf..36354232eacbb 100644
--- a/crates/re_entity_db/examples/memory_usage.rs
+++ b/crates/re_entity_db/examples/memory_usage.rs
@@ -1,3 +1,6 @@
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::sync::atomic::{AtomicUsize, Ordering::Relaxed};
thread_local! {
diff --git a/crates/re_entity_db/src/blueprint/components/entity_properties_component.rs b/crates/re_entity_db/src/blueprint/components/entity_properties_component.rs
index 6b334e550aede..c95f1240d294d 100644
--- a/crates/re_entity_db/src/blueprint/components/entity_properties_component.rs
+++ b/crates/re_entity_db/src/blueprint/components/entity_properties_component.rs
@@ -104,8 +104,7 @@ impl ::re_types_core::Loggable for EntityPropertiesComponent {
buffers
.iter()
.map(|opt| opt.as_ref().map_or(0, |buf| buf.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_bitmap: Option = None;
let data0_inner_data: Buffer = buffers
@@ -114,13 +113,13 @@ impl ::re_types_core::Loggable for EntityPropertiesComponent {
.collect::>()
.concat()
.into();
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
PrimitiveArray::new(DataType::UInt8, data0_inner_data, data0_inner_bitmap)
.boxed(),
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_entity_db/src/lib.rs b/crates/re_entity_db/src/lib.rs
index 6295ba7181d59..fbcd2ee60ca1a 100644
--- a/crates/re_entity_db/src/lib.rs
+++ b/crates/re_entity_db/src/lib.rs
@@ -4,6 +4,9 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
pub mod entity_db;
pub mod entity_properties;
pub mod entity_tree;
diff --git a/crates/re_entity_db/tests/clear.rs b/crates/re_entity_db/tests/clear.rs
index fb201eb3fd3e4..1ea4e5c69dbbe 100644
--- a/crates/re_entity_db/tests/clear.rs
+++ b/crates/re_entity_db/tests/clear.rs
@@ -1,3 +1,6 @@
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use re_data_store::{DataStore, LatestAtQuery};
use re_entity_db::EntityDb;
use re_log_types::{
diff --git a/crates/re_entity_db/tests/time_histograms.rs b/crates/re_entity_db/tests/time_histograms.rs
index e78efafa6f341..0aacceca630d0 100644
--- a/crates/re_entity_db/tests/time_histograms.rs
+++ b/crates/re_entity_db/tests/time_histograms.rs
@@ -1,3 +1,6 @@
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use std::collections::BTreeSet;
use re_data_store::GarbageCollectionOptions;
diff --git a/crates/re_format_arrow/src/lib.rs b/crates/re_format_arrow/src/lib.rs
index 2ae6e4080f615..8b728149eace3 100644
--- a/crates/re_format_arrow/src/lib.rs
+++ b/crates/re_format_arrow/src/lib.rs
@@ -1,5 +1,8 @@
//! Formatting for tables of Arrow arrays
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::fmt::Formatter;
use arrow2::{
diff --git a/crates/re_log_encoding/benches/msg_encode_benchmark.rs b/crates/re_log_encoding/benches/msg_encode_benchmark.rs
index 68c3784088986..6a8c768ae7054 100644
--- a/crates/re_log_encoding/benches/msg_encode_benchmark.rs
+++ b/crates/re_log_encoding/benches/msg_encode_benchmark.rs
@@ -1,3 +1,6 @@
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
#[cfg(not(all(feature = "decoder", feature = "encoder")))]
compile_error!("msg_encode_benchmark requires 'decoder' and 'encoder' features.");
diff --git a/crates/re_log_encoding/src/lib.rs b/crates/re_log_encoding/src/lib.rs
index f57e82c328990..69c8701176ca2 100644
--- a/crates/re_log_encoding/src/lib.rs
+++ b/crates/re_log_encoding/src/lib.rs
@@ -135,12 +135,14 @@ impl FileHeader {
#[cfg(feature = "decoder")]
pub fn decode(read: &mut impl std::io::Read) -> Result {
+ let to_array_4b = |slice: &[u8]| slice.try_into().expect("always returns an Ok() variant");
+
let mut buffer = [0_u8; Self::SIZE];
read.read_exact(&mut buffer)
.map_err(decoder::DecodeError::Read)?;
- let magic = buffer[0..4].try_into().unwrap();
- let version = buffer[4..8].try_into().unwrap();
- let options = EncodingOptions::from_bytes(buffer[8..].try_into().unwrap())?;
+ let magic = to_array_4b(&buffer[0..4]);
+ let version = to_array_4b(&buffer[4..8]);
+ let options = EncodingOptions::from_bytes(to_array_4b(&buffer[8..]))?;
Ok(Self {
magic,
version,
diff --git a/crates/re_log_encoding/src/stream_rrd_from_http.rs b/crates/re_log_encoding/src/stream_rrd_from_http.rs
index 95debc17e54a6..bf9be45a0cf08 100644
--- a/crates/re_log_encoding/src/stream_rrd_from_http.rs
+++ b/crates/re_log_encoding/src/stream_rrd_from_http.rs
@@ -118,6 +118,8 @@ pub fn stream_rrd_from_http(url: String, on_msg: Arc) {
}
#[cfg(target_arch = "wasm32")]
+// TODO(#3408): remove unwrap()
+#[allow(clippy::unwrap_used)]
mod web_event_listener {
use super::HttpMessageCallback;
use js_sys::Uint8Array;
@@ -157,6 +159,8 @@ mod web_event_listener {
pub use web_event_listener::stream_rrd_from_event_listener;
#[cfg(target_arch = "wasm32")]
+// TODO(#3408): remove unwrap()
+#[allow(clippy::unwrap_used)]
pub mod web_decode {
use super::{HttpMessage, HttpMessageCallback};
use std::sync::Arc;
diff --git a/crates/re_log_types/src/lib.rs b/crates/re_log_types/src/lib.rs
index 8013a1741d178..7930a731b0c8e 100644
--- a/crates/re_log_types/src/lib.rs
+++ b/crates/re_log_types/src/lib.rs
@@ -17,6 +17,9 @@
//! e.g. the entity `foo/bar/baz` is has the transform that is the product of
//! `foo.transform * foo/bar.transform * foo/bar/baz.transform`.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
pub mod arrow_msg;
pub mod example_components;
pub mod hash;
diff --git a/crates/re_query/benches/latest_at.rs b/crates/re_query/benches/latest_at.rs
index d0fbf24d9df4b..66d68fffdb136 100644
--- a/crates/re_query/benches/latest_at.rs
+++ b/crates/re_query/benches/latest_at.rs
@@ -1,6 +1,9 @@
//! Contains:
//! - A 1:1 port of the benchmarks in `crates/re_query/benches/query_benchmarks.rs`, with caching enabled.
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
use criterion::{criterion_group, criterion_main, Criterion};
use itertools::Itertools;
diff --git a/crates/re_query/src/latest_at/results.rs b/crates/re_query/src/latest_at/results.rs
index 40c854efefda4..0d1c7d8ea3778 100644
--- a/crates/re_query/src/latest_at/results.rs
+++ b/crates/re_query/src/latest_at/results.rs
@@ -285,6 +285,8 @@ fn downcast(cached: &(dyn ErasedFlatVecDeque + Send + Sync)) -> cr
if cached.num_entries() != 1 {
return Err(anyhow::anyhow!("latest_at deque must be single entry").into());
}
- // unwrap checked just above ^^^
- Ok(cached.iter().next().unwrap())
+ Ok(cached
+ .iter()
+ .next()
+ .expect("checked existence of cached value already"))
}
diff --git a/crates/re_query/src/lib.rs b/crates/re_query/src/lib.rs
index d79319663c3c5..f9455c39ed8db 100644
--- a/crates/re_query/src/lib.rs
+++ b/crates/re_query/src/lib.rs
@@ -1,5 +1,8 @@
//! Caching datastructures for `re_query`.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod cache;
mod cache_stats;
mod flat_vec_deque;
diff --git a/crates/re_query/tests/latest_at.rs b/crates/re_query/tests/latest_at.rs
index 115aa0f7cf6cb..30eca0e755af8 100644
--- a/crates/re_query/tests/latest_at.rs
+++ b/crates/re_query/tests/latest_at.rs
@@ -1,3 +1,6 @@
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use re_data_store::{DataStore, LatestAtQuery, StoreSubscriber};
use re_log_types::{
build_frame_nr,
diff --git a/crates/re_query/tests/range.rs b/crates/re_query/tests/range.rs
index 84c9f3a3b3176..2c252147f7559 100644
--- a/crates/re_query/tests/range.rs
+++ b/crates/re_query/tests/range.rs
@@ -1,3 +1,6 @@
+// https://github.com/rust-lang/rust-clippy/issues/10011
+#![cfg(test)]
+
use itertools::Itertools as _;
use re_data_store::{DataStore, RangeQuery, ResolvedTimeRange, StoreSubscriber as _, TimeInt};
diff --git a/crates/re_renderer/src/lib.rs b/crates/re_renderer/src/lib.rs
index dc7eafa27232d..e4bf1c684b292 100644
--- a/crates/re_renderer/src/lib.rs
+++ b/crates/re_renderer/src/lib.rs
@@ -7,6 +7,9 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
pub mod config;
pub mod importer;
pub mod mesh;
diff --git a/crates/re_renderer_examples/2d.rs b/crates/re_renderer_examples/2d.rs
index 1000e0e4c8c00..80da388db301f 100644
--- a/crates/re_renderer_examples/2d.rs
+++ b/crates/re_renderer_examples/2d.rs
@@ -2,6 +2,9 @@
//!
//! On the left is a 2D view, on the right a 3D view of the same scene.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use itertools::Itertools as _;
use re_renderer::Hsva;
diff --git a/crates/re_renderer_examples/depth_cloud.rs b/crates/re_renderer_examples/depth_cloud.rs
index e6f457654750c..9c8c0015d700f 100644
--- a/crates/re_renderer_examples/depth_cloud.rs
+++ b/crates/re_renderer_examples/depth_cloud.rs
@@ -13,6 +13,9 @@
//! cargo run-wasm --example depth_cloud
//! ```
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::f32::consts::TAU;
use glam::Vec3;
diff --git a/crates/re_renderer_examples/depth_offset.rs b/crates/re_renderer_examples/depth_offset.rs
index c2b1bc2724f81..592a31ef7c875 100644
--- a/crates/re_renderer_examples/depth_offset.rs
+++ b/crates/re_renderer_examples/depth_offset.rs
@@ -7,6 +7,9 @@
//! Press arrow up/down to increase/decrease the distance of the camera to the z==0 plane in tandem with the scale of the rectangles.
//! Press arrow left/right to increase/decrease the near plane distance.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use re_renderer::Hsva;
use re_renderer::{
renderer::{ColormappedTexture, RectangleDrawData, RectangleOptions, TexturedRect},
diff --git a/crates/re_renderer_examples/framework.rs b/crates/re_renderer_examples/framework.rs
index 972497d8e22c8..b78fbc6414690 100644
--- a/crates/re_renderer_examples/framework.rs
+++ b/crates/re_renderer_examples/framework.rs
@@ -1,5 +1,8 @@
//! Example framework
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::sync::Arc;
use anyhow::Context as _;
diff --git a/crates/re_renderer_examples/multiview.rs b/crates/re_renderer_examples/multiview.rs
index 6ced4e600a974..f8cbe6a707696 100644
--- a/crates/re_renderer_examples/multiview.rs
+++ b/crates/re_renderer_examples/multiview.rs
@@ -1,5 +1,8 @@
//! Example with several independent views, using various primitives.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::f32::consts::TAU;
use framework::Example;
diff --git a/crates/re_renderer_examples/outlines.rs b/crates/re_renderer_examples/outlines.rs
index b7736d5c0695d..d9aad2b8a7f33 100644
--- a/crates/re_renderer_examples/outlines.rs
+++ b/crates/re_renderer_examples/outlines.rs
@@ -1,5 +1,8 @@
//! Demonstrates outline rendering.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use itertools::Itertools;
use re_renderer::{
renderer::MeshInstance,
diff --git a/crates/re_renderer_examples/picking.rs b/crates/re_renderer_examples/picking.rs
index 0f8868c4e9cd6..585f0f41c6d70 100644
--- a/crates/re_renderer_examples/picking.rs
+++ b/crates/re_renderer_examples/picking.rs
@@ -1,5 +1,8 @@
//! Demonstrates the dedicated picking layer support.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use itertools::Itertools as _;
use rand::Rng;
use re_renderer::{
diff --git a/crates/re_sdk/src/lib.rs b/crates/re_sdk/src/lib.rs
index 697e08ecb52c6..c6e3942ad5403 100644
--- a/crates/re_sdk/src/lib.rs
+++ b/crates/re_sdk/src/lib.rs
@@ -10,6 +10,8 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
#![warn(missing_docs)] // Let's keep the this crate well-documented!
// ----------------
diff --git a/crates/re_sdk_comms/src/lib.rs b/crates/re_sdk_comms/src/lib.rs
index 4eccbf01de38b..e00f13a4c47c4 100644
--- a/crates/re_sdk_comms/src/lib.rs
+++ b/crates/re_sdk_comms/src/lib.rs
@@ -37,5 +37,6 @@ pub fn default_server_addr() -> std::net::SocketAddr {
/// The default amount of time to wait for the TCP connection to resume during a flush
#[allow(clippy::unnecessary_wraps)]
pub fn default_flush_timeout() -> Option {
+ // NOTE: This is part of the SDK and meant to be used where we accept `Option` values.
Some(std::time::Duration::from_secs(2))
}
diff --git a/crates/re_sdk_comms/src/server.rs b/crates/re_sdk_comms/src/server.rs
index ff39f8b486b73..a52c1eddf9d11 100644
--- a/crates/re_sdk_comms/src/server.rs
+++ b/crates/re_sdk_comms/src/server.rs
@@ -360,7 +360,11 @@ impl CongestionManager {
// decision on a time we've previously seen,
// thus sending parts of a sequence-time instead of all-or-nothing.
while timeline_history.send_time.len() > 1024 {
- let oldest_time = *timeline_history.send_time.keys().next().unwrap();
+ let oldest_time = *timeline_history
+ .send_time
+ .keys()
+ .next()
+ .expect("safe because checked above");
timeline_history.send_time.remove(&oldest_time);
}
diff --git a/crates/re_space_view_spatial/src/lib.rs b/crates/re_space_view_spatial/src/lib.rs
index 5e8b3569597a8..0fdb9c99b163a 100644
--- a/crates/re_space_view_spatial/src/lib.rs
+++ b/crates/re_space_view_spatial/src/lib.rs
@@ -2,6 +2,9 @@
//!
//! Space Views that show entities in a 2D or 3D spatial relationship.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod contexts;
mod eye;
mod heuristics;
diff --git a/crates/re_space_view_tensor/src/lib.rs b/crates/re_space_view_tensor/src/lib.rs
index e46b46051f3b9..175451588524e 100644
--- a/crates/re_space_view_tensor/src/lib.rs
+++ b/crates/re_space_view_tensor/src/lib.rs
@@ -2,6 +2,9 @@
//!
//! A Space View dedicated to visualizing tensors with arbitrary dimensionality.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod dimension_mapping;
mod space_view_class;
mod tensor_dimension_mapper;
diff --git a/crates/re_space_view_time_series/src/lib.rs b/crates/re_space_view_time_series/src/lib.rs
index d7c1cabc5cb70..53c06baa6b0e6 100644
--- a/crates/re_space_view_time_series/src/lib.rs
+++ b/crates/re_space_view_time_series/src/lib.rs
@@ -2,6 +2,9 @@
//!
//! A Space View that shows plots over Rerun timelines.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod aggregation;
mod line_visualizer_system;
mod overrides;
diff --git a/crates/re_time_panel/src/lib.rs b/crates/re_time_panel/src/lib.rs
index 2d718f1183411..36eba04bf1006 100644
--- a/crates/re_time_panel/src/lib.rs
+++ b/crates/re_time_panel/src/lib.rs
@@ -3,6 +3,9 @@
//! This crate provides a panel that shows allows to control time & timelines,
//! as well as all necessary ui elements that make it up.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod data_density_graph;
mod paint_ticks;
mod time_axis;
diff --git a/crates/re_types/Cargo.toml b/crates/re_types/Cargo.toml
index aa5a454500f0f..6dc2a6b6ec00f 100644
--- a/crates/re_types/Cargo.toml
+++ b/crates/re_types/Cargo.toml
@@ -15,7 +15,6 @@ version.workspace = true
[lints]
workspace = true
-
[package.metadata.docs.rs]
all-features = false
no-default-features = true
diff --git a/crates/re_types/src/blueprint/components/active_tab.rs b/crates/re_types/src/blueprint/components/active_tab.rs
index 9d7217d64deac..29281d755d1eb 100644
--- a/crates/re_types/src/blueprint/components/active_tab.rs
+++ b/crates/re_types/src/blueprint/components/active_tab.rs
@@ -109,8 +109,7 @@ impl ::re_types_core::Loggable for ActiveTab {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/blueprint/components/included_content.rs b/crates/re_types/src/blueprint/components/included_content.rs
index 09052f8f5e888..c4e0091af3883 100644
--- a/crates/re_types/src/blueprint/components/included_content.rs
+++ b/crates/re_types/src/blueprint/components/included_content.rs
@@ -110,8 +110,7 @@ impl ::re_types_core::Loggable for IncludedContent {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/blueprint/components/query_expression.rs b/crates/re_types/src/blueprint/components/query_expression.rs
index bf8b25fe46f7e..dd94a9d85015e 100644
--- a/crates/re_types/src/blueprint/components/query_expression.rs
+++ b/crates/re_types/src/blueprint/components/query_expression.rs
@@ -114,8 +114,7 @@ impl ::re_types_core::Loggable for QueryExpression {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/blueprint/components/space_view_class.rs b/crates/re_types/src/blueprint/components/space_view_class.rs
index c448935b5d1a1..09d890c16aa02 100644
--- a/crates/re_types/src/blueprint/components/space_view_class.rs
+++ b/crates/re_types/src/blueprint/components/space_view_class.rs
@@ -105,8 +105,7 @@ impl ::re_types_core::Loggable for SpaceViewClass {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/blueprint/components/space_view_origin.rs b/crates/re_types/src/blueprint/components/space_view_origin.rs
index 88bbb94dc65e6..a075d47f5924e 100644
--- a/crates/re_types/src/blueprint/components/space_view_origin.rs
+++ b/crates/re_types/src/blueprint/components/space_view_origin.rs
@@ -105,8 +105,7 @@ impl ::re_types_core::Loggable for SpaceViewOrigin {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/components/annotation_context.rs b/crates/re_types/src/components/annotation_context.rs
index 7a4d93bb6e51d..d9b8e1eedb3aa 100644
--- a/crates/re_types/src/components/annotation_context.rs
+++ b/crates/re_types/src/components/annotation_context.rs
@@ -104,12 +104,11 @@ impl ::re_types_core::Loggable for AnnotationContext {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -119,7 +118,7 @@ impl ::re_types_core::Loggable for AnnotationContext {
)?
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/components/blob.rs b/crates/re_types/src/components/blob.rs
index 32eb3d3dcd77b..54a5eff9720d7 100644
--- a/crates/re_types/src/components/blob.rs
+++ b/crates/re_types/src/components/blob.rs
@@ -102,8 +102,7 @@ impl ::re_types_core::Loggable for Blob {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.num_instances())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Buffer<_> = data0
.iter()
@@ -113,13 +112,13 @@ impl ::re_types_core::Loggable for Blob {
.concat()
.into();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
PrimitiveArray::new(DataType::UInt8, data0_inner_data, data0_inner_bitmap)
.boxed(),
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/components/half_sizes2d.rs b/crates/re_types/src/components/half_sizes2d.rs
index bca77299130fa..dbfc69998b934 100644
--- a/crates/re_types/src/components/half_sizes2d.rs
+++ b/crates/re_types/src/components/half_sizes2d.rs
@@ -194,8 +194,10 @@ impl ::re_types_core::Loggable for HalfSizes2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/half_sizes3d.rs b/crates/re_types/src/components/half_sizes3d.rs
index 0c3e52b0fe0ef..0a91546db3773 100644
--- a/crates/re_types/src/components/half_sizes3d.rs
+++ b/crates/re_types/src/components/half_sizes3d.rs
@@ -194,8 +194,10 @@ impl ::re_types_core::Loggable for HalfSizes3D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/line_strip2d.rs b/crates/re_types/src/components/line_strip2d.rs
index 6a0b6211ce6d1..c28f952f87d04 100644
--- a/crates/re_types/src/components/line_strip2d.rs
+++ b/crates/re_types/src/components/line_strip2d.rs
@@ -104,12 +104,11 @@ impl ::re_types_core::Loggable for LineStrip2D {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -136,7 +135,7 @@ impl ::re_types_core::Loggable for LineStrip2D {
.boxed()
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
@@ -224,8 +223,10 @@ impl ::re_types_core::Loggable for LineStrip2D {
.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/line_strip3d.rs b/crates/re_types/src/components/line_strip3d.rs
index 305128390ad15..834ee763225dd 100644
--- a/crates/re_types/src/components/line_strip3d.rs
+++ b/crates/re_types/src/components/line_strip3d.rs
@@ -104,12 +104,11 @@ impl ::re_types_core::Loggable for LineStrip3D {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -136,7 +135,7 @@ impl ::re_types_core::Loggable for LineStrip3D {
.boxed()
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
@@ -224,8 +223,10 @@ impl ::re_types_core::Loggable for LineStrip3D {
.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/media_type.rs b/crates/re_types/src/components/media_type.rs
index 5c8aa98027da7..2cd9fa2b7014e 100644
--- a/crates/re_types/src/components/media_type.rs
+++ b/crates/re_types/src/components/media_type.rs
@@ -108,8 +108,7 @@ impl ::re_types_core::Loggable for MediaType {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/components/name.rs b/crates/re_types/src/components/name.rs
index f50f37879b495..d4251a58fae49 100644
--- a/crates/re_types/src/components/name.rs
+++ b/crates/re_types/src/components/name.rs
@@ -105,8 +105,7 @@ impl ::re_types_core::Loggable for Name {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/components/pinhole_projection.rs b/crates/re_types/src/components/pinhole_projection.rs
index cf4768e7e36b7..9821ac5b9c386 100644
--- a/crates/re_types/src/components/pinhole_projection.rs
+++ b/crates/re_types/src/components/pinhole_projection.rs
@@ -201,8 +201,10 @@ impl ::re_types_core::Loggable for PinholeProjection {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/position2d.rs b/crates/re_types/src/components/position2d.rs
index 348fdbb43fc2d..f282794bb2c64 100644
--- a/crates/re_types/src/components/position2d.rs
+++ b/crates/re_types/src/components/position2d.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for Position2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/position3d.rs b/crates/re_types/src/components/position3d.rs
index 689ea46865cfd..ee793864aa075 100644
--- a/crates/re_types/src/components/position3d.rs
+++ b/crates/re_types/src/components/position3d.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for Position3D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/range1d.rs b/crates/re_types/src/components/range1d.rs
index 2143b5aa8b3df..c0e852a9f6eff 100644
--- a/crates/re_types/src/components/range1d.rs
+++ b/crates/re_types/src/components/range1d.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for Range1D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/resolution.rs b/crates/re_types/src/components/resolution.rs
index ba04c4164c815..54a38aef52457 100644
--- a/crates/re_types/src/components/resolution.rs
+++ b/crates/re_types/src/components/resolution.rs
@@ -193,8 +193,10 @@ impl ::re_types_core::Loggable for Resolution {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/texcoord2d.rs b/crates/re_types/src/components/texcoord2d.rs
index d7bd6a0e7c54c..1bf9bf0c1f5e9 100644
--- a/crates/re_types/src/components/texcoord2d.rs
+++ b/crates/re_types/src/components/texcoord2d.rs
@@ -207,8 +207,10 @@ impl ::re_types_core::Loggable for Texcoord2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/text.rs b/crates/re_types/src/components/text.rs
index 199d596c82ace..028dc5aa1c989 100644
--- a/crates/re_types/src/components/text.rs
+++ b/crates/re_types/src/components/text.rs
@@ -105,8 +105,7 @@ impl ::re_types_core::Loggable for Text {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/components/text_log_level.rs b/crates/re_types/src/components/text_log_level.rs
index bd860876aa901..7c3cbe6035249 100644
--- a/crates/re_types/src/components/text_log_level.rs
+++ b/crates/re_types/src/components/text_log_level.rs
@@ -113,8 +113,7 @@ impl ::re_types_core::Loggable for TextLogLevel {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = data0
.into_iter()
diff --git a/crates/re_types/src/components/triangle_indices.rs b/crates/re_types/src/components/triangle_indices.rs
index f662dfad9d262..1d7c18ebbd8c4 100644
--- a/crates/re_types/src/components/triangle_indices.rs
+++ b/crates/re_types/src/components/triangle_indices.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for TriangleIndices {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/vector2d.rs b/crates/re_types/src/components/vector2d.rs
index c5e5f38a679ac..b67e57e895678 100644
--- a/crates/re_types/src/components/vector2d.rs
+++ b/crates/re_types/src/components/vector2d.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for Vector2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/vector3d.rs b/crates/re_types/src/components/vector3d.rs
index 29fbb0b4733c5..d94e2cf4e36b1 100644
--- a/crates/re_types/src/components/vector3d.rs
+++ b/crates/re_types/src/components/vector3d.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for Vector3D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/components/view_coordinates.rs b/crates/re_types/src/components/view_coordinates.rs
index 8b1a33eae2d4e..ced1cbdd80eb5 100644
--- a/crates/re_types/src/components/view_coordinates.rs
+++ b/crates/re_types/src/components/view_coordinates.rs
@@ -206,8 +206,10 @@ impl ::re_types_core::Loggable for ViewCoordinates {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/annotation_info.rs b/crates/re_types/src/datatypes/annotation_info.rs
index b078f6c71f79d..3c12ad43cd22b 100644
--- a/crates/re_types/src/datatypes/annotation_info.rs
+++ b/crates/re_types/src/datatypes/annotation_info.rs
@@ -134,14 +134,14 @@ impl ::re_types_core::Loggable for AnnotationInfo {
label.iter().map(|opt| {
opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()
}),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = label
.into_iter()
.flatten()
.flat_map(|datum| datum.0 .0)
.collect();
+
#[allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
unsafe {
Utf8Array::::new_unchecked(
diff --git a/crates/re_types/src/datatypes/class_description.rs b/crates/re_types/src/datatypes/class_description.rs
index 9ddf1fa785f3d..fd69f57ffb98e 100644
--- a/crates/re_types/src/datatypes/class_description.rs
+++ b/crates/re_types/src/datatypes/class_description.rs
@@ -166,8 +166,7 @@ impl ::re_types_core::Loggable for ClassDescription {
keypoint_annotations
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let keypoint_annotations_inner_data: Vec<_> = keypoint_annotations
.into_iter()
@@ -176,7 +175,7 @@ impl ::re_types_core::Loggable for ClassDescription {
.collect();
let keypoint_annotations_inner_bitmap: Option =
None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
::arrow_datatype(),
@@ -190,7 +189,7 @@ impl ::re_types_core::Loggable for ClassDescription {
)?
},
keypoint_annotations_bitmap,
- )
+ )?
.boxed()
}
},
@@ -214,8 +213,7 @@ impl ::re_types_core::Loggable for ClassDescription {
keypoint_connections
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let keypoint_connections_inner_data: Vec<_> = keypoint_connections
.into_iter()
@@ -224,7 +222,7 @@ impl ::re_types_core::Loggable for ClassDescription {
.collect();
let keypoint_connections_inner_bitmap: Option =
None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
::arrow_datatype(),
@@ -238,7 +236,7 @@ impl ::re_types_core::Loggable for ClassDescription {
)?
},
keypoint_connections_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/datatypes/mat3x3.rs b/crates/re_types/src/datatypes/mat3x3.rs
index 78ad00322445e..ef2368ef2d07f 100644
--- a/crates/re_types/src/datatypes/mat3x3.rs
+++ b/crates/re_types/src/datatypes/mat3x3.rs
@@ -199,8 +199,10 @@ impl ::re_types_core::Loggable for Mat3x3 {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/mat4x4.rs b/crates/re_types/src/datatypes/mat4x4.rs
index 33dc16275b31b..7f7931d9c0d05 100644
--- a/crates/re_types/src/datatypes/mat4x4.rs
+++ b/crates/re_types/src/datatypes/mat4x4.rs
@@ -200,8 +200,10 @@ impl ::re_types_core::Loggable for Mat4x4 {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/quaternion.rs b/crates/re_types/src/datatypes/quaternion.rs
index 2471257a4b07b..1b5f29d61512a 100644
--- a/crates/re_types/src/datatypes/quaternion.rs
+++ b/crates/re_types/src/datatypes/quaternion.rs
@@ -190,8 +190,10 @@ impl ::re_types_core::Loggable for Quaternion {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/range1d.rs b/crates/re_types/src/datatypes/range1d.rs
index 421464145c69a..45c1aaf497a70 100644
--- a/crates/re_types/src/datatypes/range1d.rs
+++ b/crates/re_types/src/datatypes/range1d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for Range1D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/range2d.rs b/crates/re_types/src/datatypes/range2d.rs
index f063f1169ab94..e6eb059a1cd6e 100644
--- a/crates/re_types/src/datatypes/range2d.rs
+++ b/crates/re_types/src/datatypes/range2d.rs
@@ -295,8 +295,10 @@ impl ::re_types_core::Loggable for Range2D {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
@@ -376,8 +378,10 @@ impl ::re_types_core::Loggable for Range2D {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/rotation3d.rs b/crates/re_types/src/datatypes/rotation3d.rs
index 8f051ae16d2cb..b9d91a72f6eac 100644
--- a/crates/re_types/src/datatypes/rotation3d.rs
+++ b/crates/re_types/src/datatypes/rotation3d.rs
@@ -294,8 +294,10 @@ impl ::re_types_core::Loggable for Rotation3D {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/rotation_axis_angle.rs b/crates/re_types/src/datatypes/rotation_axis_angle.rs
index 03a53170ee22b..2a53975ac2c71 100644
--- a/crates/re_types/src/datatypes/rotation_axis_angle.rs
+++ b/crates/re_types/src/datatypes/rotation_axis_angle.rs
@@ -259,8 +259,10 @@ impl ::re_types_core::Loggable for RotationAxisAngle {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/scale3d.rs b/crates/re_types/src/datatypes/scale3d.rs
index 8412c949d53b0..3ae358d507987 100644
--- a/crates/re_types/src/datatypes/scale3d.rs
+++ b/crates/re_types/src/datatypes/scale3d.rs
@@ -283,8 +283,10 @@ impl ::re_types_core::Loggable for Scale3D {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/tensor_buffer.rs b/crates/re_types/src/datatypes/tensor_buffer.rs
index eacac97cfb0d4..e19421a0dd86c 100644
--- a/crates/re_types/src/datatypes/tensor_buffer.rs
+++ b/crates/re_types/src/datatypes/tensor_buffer.rs
@@ -320,8 +320,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
u8.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let u8_inner_data: Buffer<_> = u8
.iter()
@@ -330,7 +329,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let u8_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt8,
@@ -340,7 +339,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::UInt8, u8_inner_data, u8_inner_bitmap)
.boxed(),
u8_bitmap,
- )
+ )?
.boxed()
}
},
@@ -357,8 +356,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
u16.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let u16_inner_data: Buffer<_> = u16
.iter()
@@ -367,7 +365,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let u16_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt16,
@@ -377,7 +375,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::UInt16, u16_inner_data, u16_inner_bitmap)
.boxed(),
u16_bitmap,
- )
+ )?
.boxed()
}
},
@@ -394,8 +392,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
u32.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let u32_inner_data: Buffer<_> = u32
.iter()
@@ -404,7 +401,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let u32_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt32,
@@ -414,7 +411,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::UInt32, u32_inner_data, u32_inner_bitmap)
.boxed(),
u32_bitmap,
- )
+ )?
.boxed()
}
},
@@ -431,8 +428,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
u64.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let u64_inner_data: Buffer<_> = u64
.iter()
@@ -441,7 +437,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let u64_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt64,
@@ -451,7 +447,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::UInt64, u64_inner_data, u64_inner_bitmap)
.boxed(),
u64_bitmap,
- )
+ )?
.boxed()
}
},
@@ -468,8 +464,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
i8.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let i8_inner_data: Buffer<_> = i8
.iter()
@@ -478,7 +473,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let i8_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Int8,
@@ -488,7 +483,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::Int8, i8_inner_data, i8_inner_bitmap)
.boxed(),
i8_bitmap,
- )
+ )?
.boxed()
}
},
@@ -505,8 +500,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
i16.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let i16_inner_data: Buffer<_> = i16
.iter()
@@ -515,7 +509,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let i16_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Int16,
@@ -525,7 +519,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::Int16, i16_inner_data, i16_inner_bitmap)
.boxed(),
i16_bitmap,
- )
+ )?
.boxed()
}
},
@@ -542,8 +536,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
i32.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let i32_inner_data: Buffer<_> = i32
.iter()
@@ -552,7 +545,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let i32_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Int32,
@@ -562,7 +555,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::Int32, i32_inner_data, i32_inner_bitmap)
.boxed(),
i32_bitmap,
- )
+ )?
.boxed()
}
},
@@ -579,8 +572,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
i64.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let i64_inner_data: Buffer<_> = i64
.iter()
@@ -589,7 +581,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let i64_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Int64,
@@ -599,7 +591,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
PrimitiveArray::new(DataType::Int64, i64_inner_data, i64_inner_bitmap)
.boxed(),
i64_bitmap,
- )
+ )?
.boxed()
}
},
@@ -616,8 +608,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
f16.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let f16_inner_data: Buffer<_> = f16
.iter()
@@ -626,7 +617,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let f16_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Float16,
@@ -640,7 +631,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
f16_bitmap,
- )
+ )?
.boxed()
}
},
@@ -657,8 +648,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
f32.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let f32_inner_data: Buffer<_> = f32
.iter()
@@ -667,7 +657,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let f32_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Float32,
@@ -681,7 +671,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
f32_bitmap,
- )
+ )?
.boxed()
}
},
@@ -698,8 +688,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
f64.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let f64_inner_data: Buffer<_> = f64
.iter()
@@ -708,7 +697,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let f64_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Float64,
@@ -722,7 +711,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
f64_bitmap,
- )
+ )?
.boxed()
}
},
@@ -739,8 +728,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
jpeg.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let jpeg_inner_data: Buffer<_> = jpeg
.iter()
@@ -749,7 +737,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let jpeg_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt8,
@@ -763,7 +751,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
jpeg_bitmap,
- )
+ )?
.boxed()
}
},
@@ -780,8 +768,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
nv12.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let nv12_inner_data: Buffer<_> = nv12
.iter()
@@ -790,7 +777,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let nv12_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt8,
@@ -804,7 +791,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
nv12_bitmap,
- )
+ )?
.boxed()
}
},
@@ -821,8 +808,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
yuy2.iter().map(|datum| datum.num_instances()),
- )
- .unwrap()
+ )?
.into();
let yuy2_inner_data: Buffer<_> = yuy2
.iter()
@@ -831,7 +817,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
.concat()
.into();
let yuy2_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::UInt8,
@@ -845,7 +831,7 @@ impl ::re_types_core::Loggable for TensorBuffer {
)
.boxed(),
yuy2_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/datatypes/tensor_data.rs b/crates/re_types/src/datatypes/tensor_data.rs
index 0fb6be089d07b..c002f73e4be47 100644
--- a/crates/re_types/src/datatypes/tensor_data.rs
+++ b/crates/re_types/src/datatypes/tensor_data.rs
@@ -131,13 +131,12 @@ impl ::re_types_core::Loggable for TensorData {
shape
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let shape_inner_data: Vec<_> =
shape.into_iter().flatten().flatten().collect();
let shape_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
::arrow_datatype(),
@@ -151,7 +150,7 @@ impl ::re_types_core::Loggable for TensorData {
)?
},
shape_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/datatypes/tensor_data_ext.rs b/crates/re_types/src/datatypes/tensor_data_ext.rs
index f66c5051fc4d3..28940661780f5 100644
--- a/crates/re_types/src/datatypes/tensor_data_ext.rs
+++ b/crates/re_types/src/datatypes/tensor_data_ext.rs
@@ -628,7 +628,9 @@ impl TensorData {
let mut decoder = JpegDecoder::new(&jpeg_bytes);
decoder.decode_headers()?;
- let (w, h) = decoder.dimensions().unwrap(); // Can't fail after a successful decode_headers
+ let (w, h) = decoder
+ .dimensions()
+ .expect("can't fail after a successful decode_headers");
Ok(Self {
shape: vec![
diff --git a/crates/re_types/src/datatypes/tensor_dimension.rs b/crates/re_types/src/datatypes/tensor_dimension.rs
index 25b9dc4750bd2..dbeec461633dd 100644
--- a/crates/re_types/src/datatypes/tensor_dimension.rs
+++ b/crates/re_types/src/datatypes/tensor_dimension.rs
@@ -124,8 +124,7 @@ impl ::re_types_core::Loggable for TensorDimension {
let offsets =
arrow2::offset::Offsets::::try_from_lengths(name.iter().map(
|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default(),
- ))
- .map_err(|err| std::sync::Arc::new(err))?
+ ))?
.into();
let inner_data: arrow2::buffer::Buffer =
name.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types/src/datatypes/translation_and_mat3x3.rs b/crates/re_types/src/datatypes/translation_and_mat3x3.rs
index 17f96f0d9122f..5cfd98863815c 100644
--- a/crates/re_types/src/datatypes/translation_and_mat3x3.rs
+++ b/crates/re_types/src/datatypes/translation_and_mat3x3.rs
@@ -331,8 +331,10 @@ impl ::re_types_core::Loggable for TranslationAndMat3x3 {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
@@ -412,8 +414,10 @@ impl ::re_types_core::Loggable for TranslationAndMat3x3 {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/translation_rotation_scale3d.rs b/crates/re_types/src/datatypes/translation_rotation_scale3d.rs
index 51127b5ff4995..11cdd43c4616c 100644
--- a/crates/re_types/src/datatypes/translation_rotation_scale3d.rs
+++ b/crates/re_types/src/datatypes/translation_rotation_scale3d.rs
@@ -328,8 +328,10 @@ impl ::re_types_core::Loggable for TranslationRotationScale3D {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/uuid.rs b/crates/re_types/src/datatypes/uuid.rs
index a0700a859c74d..49e5f8636984e 100644
--- a/crates/re_types/src/datatypes/uuid.rs
+++ b/crates/re_types/src/datatypes/uuid.rs
@@ -191,8 +191,10 @@ impl ::re_types_core::Loggable for Uuid {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/uvec2d.rs b/crates/re_types/src/datatypes/uvec2d.rs
index aa8e1f14d1577..ce29dc3ae6f9c 100644
--- a/crates/re_types/src/datatypes/uvec2d.rs
+++ b/crates/re_types/src/datatypes/uvec2d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for UVec2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/uvec3d.rs b/crates/re_types/src/datatypes/uvec3d.rs
index 10b66c53c3e1c..634a477ffb02a 100644
--- a/crates/re_types/src/datatypes/uvec3d.rs
+++ b/crates/re_types/src/datatypes/uvec3d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for UVec3D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/uvec4d.rs b/crates/re_types/src/datatypes/uvec4d.rs
index e8ea68b1fe521..98a9d8859162e 100644
--- a/crates/re_types/src/datatypes/uvec4d.rs
+++ b/crates/re_types/src/datatypes/uvec4d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for UVec4D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/vec2d.rs b/crates/re_types/src/datatypes/vec2d.rs
index 654637f430aa4..7c90cb9942dc9 100644
--- a/crates/re_types/src/datatypes/vec2d.rs
+++ b/crates/re_types/src/datatypes/vec2d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for Vec2D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/vec3d.rs b/crates/re_types/src/datatypes/vec3d.rs
index e06e46cca0d85..08a0c3b2314af 100644
--- a/crates/re_types/src/datatypes/vec3d.rs
+++ b/crates/re_types/src/datatypes/vec3d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for Vec3D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/datatypes/vec4d.rs b/crates/re_types/src/datatypes/vec4d.rs
index 9d4ae649f169a..039090d663846 100644
--- a/crates/re_types/src/datatypes/vec4d.rs
+++ b/crates/re_types/src/datatypes/vec4d.rs
@@ -188,8 +188,10 @@ impl ::re_types_core::Loggable for Vec4D {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/tensor_data.rs b/crates/re_types/src/tensor_data.rs
index c45487616df26..3f725bfb877e8 100644
--- a/crates/re_types/src/tensor_data.rs
+++ b/crates/re_types/src/tensor_data.rs
@@ -589,7 +589,9 @@ impl DecodedTensor {
let mut decoder = JpegDecoder::new_with_options(jpeg_bytes, options);
let pixels = decoder.decode()?;
- let (w, h) = decoder.dimensions().unwrap(); // Can't fail after a successful decode
+ let (w, h) = decoder
+ .dimensions()
+ .expect("can't fail after a successful decode");
let (w, h) = (w as u64, h as u64);
diff --git a/crates/re_types/src/testing/components/affix_fuzzer10.rs b/crates/re_types/src/testing/components/affix_fuzzer10.rs
index 531b99ae20fe0..c59288d08feb3 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer10.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer10.rs
@@ -95,8 +95,7 @@ impl ::re_types_core::Loggable for AffixFuzzer10 {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types/src/testing/components/affix_fuzzer11.rs b/crates/re_types/src/testing/components/affix_fuzzer11.rs
index c762e159b0864..8b3c634eec3d0 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer11.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer11.rs
@@ -100,8 +100,7 @@ impl ::re_types_core::Loggable for AffixFuzzer11 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.num_instances())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Buffer<_> = data0
.iter()
@@ -111,13 +110,13 @@ impl ::re_types_core::Loggable for AffixFuzzer11 {
.concat()
.into();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
PrimitiveArray::new(DataType::Float32, data0_inner_data, data0_inner_bitmap)
.boxed(),
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer12.rs b/crates/re_types/src/testing/components/affix_fuzzer12.rs
index ef40dfcd38e4d..097fcb40aa718 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer12.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer12.rs
@@ -100,19 +100,17 @@ impl ::re_types_core::Loggable for AffixFuzzer12 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
let offsets = arrow2::offset::Offsets::::try_from_lengths(
data0_inner_data.iter().map(|datum| datum.len()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0_inner_data.into_iter().flat_map(|s| s.0).collect();
@@ -129,7 +127,7 @@ impl ::re_types_core::Loggable for AffixFuzzer12 {
.boxed()
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer13.rs b/crates/re_types/src/testing/components/affix_fuzzer13.rs
index c98fda74caa56..fc5ab5948fb6c 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer13.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer13.rs
@@ -100,19 +100,17 @@ impl ::re_types_core::Loggable for AffixFuzzer13 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
let offsets = arrow2::offset::Offsets::::try_from_lengths(
data0_inner_data.iter().map(|datum| datum.len()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0_inner_data.into_iter().flat_map(|s| s.0).collect();
@@ -129,7 +127,7 @@ impl ::re_types_core::Loggable for AffixFuzzer13 {
.boxed()
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer16.rs b/crates/re_types/src/testing/components/affix_fuzzer16.rs
index b23a20aa57eb6..b93fcc4735e4f 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer16.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer16.rs
@@ -94,12 +94,11 @@ impl ::re_types_core::Loggable for AffixFuzzer16 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -109,7 +108,7 @@ impl ::re_types_core::Loggable for AffixFuzzer16 {
)?
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer17.rs b/crates/re_types/src/testing/components/affix_fuzzer17.rs
index a3d59365b42dc..db79bc0f3c984 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer17.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer17.rs
@@ -94,12 +94,11 @@ impl ::re_types_core::Loggable for AffixFuzzer17 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -109,7 +108,7 @@ impl ::re_types_core::Loggable for AffixFuzzer17 {
)?
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer18.rs b/crates/re_types/src/testing/components/affix_fuzzer18.rs
index 5de1a6b3bb72d..44ce8ad270e1c 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer18.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer18.rs
@@ -94,12 +94,11 @@ impl ::re_types_core::Loggable for AffixFuzzer18 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -109,7 +108,7 @@ impl ::re_types_core::Loggable for AffixFuzzer18 {
)?
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer7.rs b/crates/re_types/src/testing/components/affix_fuzzer7.rs
index 8945acbfde049..563ab1c0c3d4e 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer7.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer7.rs
@@ -94,12 +94,11 @@ impl ::re_types_core::Loggable for AffixFuzzer7 {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
@@ -109,7 +108,7 @@ impl ::re_types_core::Loggable for AffixFuzzer7 {
)?
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types/src/testing/components/affix_fuzzer9.rs b/crates/re_types/src/testing/components/affix_fuzzer9.rs
index 057c0f609f4e5..dffc9d3175808 100644
--- a/crates/re_types/src/testing/components/affix_fuzzer9.rs
+++ b/crates/re_types/src/testing/components/affix_fuzzer9.rs
@@ -95,8 +95,7 @@ impl ::re_types_core::Loggable for AffixFuzzer9 {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer1.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer1.rs
index e8839c75b81c6..30c78c98de1a2 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer1.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer1.rs
@@ -186,8 +186,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
single_string_required.iter().map(|opt| {
opt.as_ref().map(|datum| datum.len()).unwrap_or_default()
}),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = single_string_required
.into_iter()
@@ -226,8 +225,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
single_string_optional.iter().map(|opt| {
opt.as_ref().map(|datum| datum.len()).unwrap_or_default()
}),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = single_string_optional
.into_iter()
@@ -267,8 +265,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
many_floats_optional.iter().map(|opt| {
opt.as_ref().map_or(0, |datum| datum.num_instances())
}),
- )
- .unwrap()
+ )?
.into();
let many_floats_optional_inner_data: Buffer<_> = many_floats_optional
.iter()
@@ -279,7 +276,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
.into();
let many_floats_optional_inner_bitmap: Option =
None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Float32,
@@ -293,7 +290,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
)
.boxed(),
many_floats_optional_bitmap,
- )
+ )?
.boxed()
}
},
@@ -317,8 +314,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
many_strings_required
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let many_strings_required_inner_data: Vec<_> = many_strings_required
.into_iter()
@@ -327,7 +323,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
.collect();
let many_strings_required_inner_bitmap: Option =
None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Utf8,
@@ -339,8 +335,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
many_strings_required_inner_data
.iter()
.map(|datum| datum.len()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
many_strings_required_inner_data
@@ -359,7 +354,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
.boxed()
},
many_strings_required_bitmap,
- )
+ )?
.boxed()
}
},
@@ -384,8 +379,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
many_strings_optional
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let many_strings_optional_inner_data: Vec<_> = many_strings_optional
.into_iter()
@@ -394,7 +388,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
.collect();
let many_strings_optional_inner_bitmap: Option =
None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Utf8,
@@ -406,8 +400,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
many_strings_optional_inner_data
.iter()
.map(|datum| datum.len()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
many_strings_optional_inner_data
@@ -426,7 +419,7 @@ impl ::re_types_core::Loggable for AffixFuzzer1 {
.boxed()
},
many_strings_optional_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer20.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer20.rs
index cadd48ed4c373..1a7beddc20dbf 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer20.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer20.rs
@@ -131,14 +131,14 @@ impl ::re_types_core::Loggable for AffixFuzzer20 {
s.iter().map(|opt| {
opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()
}),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = s
.into_iter()
.flatten()
.flat_map(|datum| datum.0 .0)
.collect();
+
#[allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
unsafe {
Utf8Array::::new_unchecked(
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer21.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer21.rs
index d4b30a76a763a..a39f4308a0328 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer21.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer21.rs
@@ -133,8 +133,7 @@ impl ::re_types_core::Loggable for AffixFuzzer21 {
many_halves.iter().map(|opt| {
opt.as_ref().map_or(0, |datum| datum.num_instances())
}),
- )
- .unwrap()
+ )?
.into();
let many_halves_inner_data: Buffer<_> = many_halves
.iter()
@@ -144,7 +143,7 @@ impl ::re_types_core::Loggable for AffixFuzzer21 {
.concat()
.into();
let many_halves_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
DataType::Float16,
@@ -158,7 +157,7 @@ impl ::re_types_core::Loggable for AffixFuzzer21 {
)
.boxed(),
many_halves_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer22.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer22.rs
index 6cce8be8da553..0deae02c952fa 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer22.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer22.rs
@@ -250,8 +250,10 @@ impl ::re_types_core::Loggable for AffixFuzzer22 {
arrow_data_inner.get_unchecked(start as usize..end as usize)
};
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer3.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer3.rs
index 3ed62687638e3..f26eae906ccb7 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer3.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer3.rs
@@ -151,13 +151,12 @@ impl ::re_types_core::Loggable for AffixFuzzer3 {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
craziness.iter().map(|datum| datum.len()),
- )
- .unwrap()
+ )?
.into();
let craziness_inner_data: Vec<_> =
craziness.into_iter().flatten().collect();
let craziness_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
::arrow_datatype(),
@@ -171,7 +170,7 @@ impl ::re_types_core::Loggable for AffixFuzzer3 {
)?
},
craziness_bitmap,
- )
+ )?
.boxed()
}
},
@@ -455,8 +454,10 @@ impl ::re_types_core::Loggable for AffixFuzzer3 {
.iter()
.cloned()
.map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types/src/testing/datatypes/affix_fuzzer4.rs b/crates/re_types/src/testing/datatypes/affix_fuzzer4.rs
index 18a4330e5c382..d9b8eb435a26b 100644
--- a/crates/re_types/src/testing/datatypes/affix_fuzzer4.rs
+++ b/crates/re_types/src/testing/datatypes/affix_fuzzer4.rs
@@ -139,13 +139,12 @@ impl ::re_types_core::Loggable for AffixFuzzer4 {
use arrow2::{buffer::Buffer, offset::OffsetsBuffer};
let offsets = arrow2::offset::Offsets::::try_from_lengths(
many_required.iter().map(|datum| datum.len()),
- )
- .unwrap()
+ )?
.into();
let many_required_inner_data: Vec<_> =
many_required.into_iter().flatten().collect();
let many_required_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
DataType::List(std::sync::Arc::new(Field::new(
"item",
::arrow_datatype(),
@@ -159,7 +158,7 @@ impl ::re_types_core::Loggable for AffixFuzzer4 {
)?
},
many_required_bitmap,
- )
+ )?
.boxed()
}
},
diff --git a/crates/re_types/src/testing/datatypes/string_component.rs b/crates/re_types/src/testing/datatypes/string_component.rs
index 0c94aee8ea2e0..0f19af333ebcc 100644
--- a/crates/re_types/src/testing/datatypes/string_component.rs
+++ b/crates/re_types/src/testing/datatypes/string_component.rs
@@ -96,8 +96,7 @@ impl ::re_types_core::Loggable for StringComponent {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types_blueprint/src/blueprint/components/included_space_view.rs b/crates/re_types_blueprint/src/blueprint/components/included_space_view.rs
index ab1e850899b33..50f59b4e0d8b9 100644
--- a/crates/re_types_blueprint/src/blueprint/components/included_space_view.rs
+++ b/crates/re_types_blueprint/src/blueprint/components/included_space_view.rs
@@ -192,8 +192,10 @@ impl ::re_types_core::Loggable for IncludedSpaceView {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types_blueprint/src/blueprint/components/root_container.rs b/crates/re_types_blueprint/src/blueprint/components/root_container.rs
index 4533206bcfd43..944ddd02eb16c 100644
--- a/crates/re_types_blueprint/src/blueprint/components/root_container.rs
+++ b/crates/re_types_blueprint/src/blueprint/components/root_container.rs
@@ -195,8 +195,10 @@ impl ::re_types_core::Loggable for RootContainer {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types_blueprint/src/blueprint/components/space_view_maximized.rs b/crates/re_types_blueprint/src/blueprint/components/space_view_maximized.rs
index 31471e25928f6..6d4f4b882fded 100644
--- a/crates/re_types_blueprint/src/blueprint/components/space_view_maximized.rs
+++ b/crates/re_types_blueprint/src/blueprint/components/space_view_maximized.rs
@@ -194,8 +194,10 @@ impl ::re_types_core::Loggable for SpaceViewMaximized {
let data =
unsafe { arrow_data_inner.get_unchecked(start as usize..end as usize) };
let data = data.iter().cloned().map(Option::unwrap_or_default);
- let arr = array_init::from_iter(data).unwrap();
- Ok(arr)
+
+ // NOTE: Unwrapping cannot fail: the length must be correct.
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
})
.transpose()
})
diff --git a/crates/re_types_builder/build.rs b/crates/re_types_builder/build.rs
index ab29a9c864a6f..c726a3aec3f63 100644
--- a/crates/re_types_builder/build.rs
+++ b/crates/re_types_builder/build.rs
@@ -70,12 +70,14 @@ fn main() {
// NOTE: This requires `flatc` to be in $PATH, but only for contributors, not end users.
// Even for contributors, `flatc` won't be needed unless they edit some of the .fbs files.
- let sh = Shell::new().unwrap();
+ let sh = Shell::new().expect("Shell::new() failed");
+ #[allow(clippy::unwrap_used)] // unwrap is okay here
cmd!(
sh,
"flatc -o src/ --rust --gen-onefile --filename-suffix '' {FBS_REFLECTION_DEFINITION_PATH}"
)
.run()
+ .map_err(|err| eprintln!("flatc failed with error: {err}"))
.unwrap();
// NOTE: We're purposefully ignoring the error here.
diff --git a/crates/re_types_builder/src/bin/build_re_types.rs b/crates/re_types_builder/src/bin/build_re_types.rs
index 0cb5e2ef9f871..e12ec93f7f9c5 100644
--- a/crates/re_types_builder/src/bin/build_re_types.rs
+++ b/crates/re_types_builder/src/bin/build_re_types.rs
@@ -3,6 +3,9 @@
//! It is easiest to call this using `just codegen`,
//! which will set up the necessary tools.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use re_build_tools::{
read_versioning_hash, set_output_cargo_build_instructions, write_versioning_hash,
};
diff --git a/crates/re_types_builder/src/codegen/mod.rs b/crates/re_types_builder/src/codegen/mod.rs
index 2f5aaa3fee351..76f5e43718c8a 100644
--- a/crates/re_types_builder/src/codegen/mod.rs
+++ b/crates/re_types_builder/src/codegen/mod.rs
@@ -1,3 +1,6 @@
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
/// Implements the codegen pass.
pub trait CodeGenerator {
/// Generates user-facing code from [`crate::Objects`].
diff --git a/crates/re_types_builder/src/codegen/rust/deserializer.rs b/crates/re_types_builder/src/codegen/rust/deserializer.rs
index 12872bb81628b..38804f83be481 100644
--- a/crates/re_types_builder/src/codegen/rust/deserializer.rs
+++ b/crates/re_types_builder/src/codegen/rust/deserializer.rs
@@ -5,7 +5,7 @@ use quote::{format_ident, quote};
use crate::{
codegen::rust::{
arrow::{is_backed_by_arrow_buffer, quote_fqname_as_type_path, ArrowDataTypeTokenizer},
- util::is_tuple_struct_from_obj,
+ util::{is_tuple_struct_from_obj, quote_comment},
},
ArrowRegistry, Object, ObjectField, ObjectKind, Objects,
};
@@ -584,6 +584,9 @@ fn quote_arrow_field_deserializer(
None,
);
+ let comment_note_unwrap =
+ quote_comment("NOTE: Unwrapping cannot fail: the length must be correct.");
+
quote! {{
let #data_src = #quoted_downcast?;
if #data_src.is_empty() {
@@ -651,10 +654,9 @@ fn quote_arrow_field_deserializer(
// .map(|opt| opt.ok_or_else(DeserializationError::missing_data))
// .collect::>>()?;
- // NOTE: Unwrapping cannot fail: the length must be correct.
- let arr = array_init::from_iter(data).unwrap();
-
- Ok(arr)
+ #comment_note_unwrap
+ #[allow(clippy::unwrap_used)]
+ Ok(array_init::from_iter(data).unwrap())
}).transpose()
)
#quoted_iter_transparency
diff --git a/crates/re_types_builder/src/codegen/rust/serializer.rs b/crates/re_types_builder/src/codegen/rust/serializer.rs
index 2d2a8ae2ebcaf..2137ce8e9bdc1 100644
--- a/crates/re_types_builder/src/codegen/rust/serializer.rs
+++ b/crates/re_types_builder/src/codegen/rust/serializer.rs
@@ -573,8 +573,7 @@ fn quote_arrow_field_serializer(
quote! {
let offsets = arrow2::offset::Offsets::::try_from_lengths(
#data_src.iter().map(|opt| opt.as_ref() #quoted_transparent_length .unwrap_or_default())
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
// NOTE: Flattening to remove the guaranteed layer of nullability: we don't care
@@ -586,8 +585,7 @@ fn quote_arrow_field_serializer(
quote! {
let offsets = arrow2::offset::Offsets::::try_from_lengths(
#data_src.iter() #quoted_transparent_length
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
@@ -775,7 +773,7 @@ fn quote_arrow_field_serializer(
quote! {
let offsets = arrow2::offset::Offsets::::try_from_lengths(
#data_src.iter(). #map_to_length
- ).unwrap().into();
+ )?.into();
}
}
} else {
@@ -787,12 +785,12 @@ fn quote_arrow_field_serializer(
quote! {}
} else {
quote! {
- ListArray::new(
+ ListArray::try_new(
#quoted_datatype,
offsets,
#quoted_inner,
#bitmap_src,
- ).boxed()
+ )?.boxed()
}
}
} else {
@@ -847,18 +845,18 @@ fn quote_arrow_field_serializer(
let offsets = arrow2::offset::Offsets::::try_from_lengths(
buffers.iter().map(|opt| opt.as_ref().map_or(0, |buf| buf.len()))
- ).unwrap().into();
+ )?.into();
#quoted_inner_bitmap
let #quoted_inner_data: Buffer = buffers.into_iter().flatten().collect::>().concat().into();
- ListArray::new(
+ ListArray::try_new(
#quoted_datatype,
offsets,
#quoted_inner,
#bitmap_src,
- ).boxed()
+ )?.boxed()
}}
} else {
quote! {{
diff --git a/crates/re_types_builder/src/lib.rs b/crates/re_types_builder/src/lib.rs
index 0c20ccc1a199b..cd3c688e741af 100644
--- a/crates/re_types_builder/src/lib.rs
+++ b/crates/re_types_builder/src/lib.rs
@@ -100,6 +100,9 @@
// ---
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
// NOTE: Official generated code from flatbuffers; ignore _everything_.
#[allow(
warnings,
diff --git a/crates/re_types_core/benches/bench_tuid.rs b/crates/re_types_core/benches/bench_tuid.rs
index ad927bcf138c1..13985268abe52 100644
--- a/crates/re_types_core/benches/bench_tuid.rs
+++ b/crates/re_types_core/benches/bench_tuid.rs
@@ -1,3 +1,6 @@
+// Allow unwrap() in benchmarks
+#![allow(clippy::unwrap_used)]
+
use criterion::{criterion_group, criterion_main, Criterion};
fn bench_arrow(c: &mut Criterion) {
diff --git a/crates/re_types_core/src/components/visualizer_overrides.rs b/crates/re_types_core/src/components/visualizer_overrides.rs
index 064856dc1c8ce..404be7b125525 100644
--- a/crates/re_types_core/src/components/visualizer_overrides.rs
+++ b/crates/re_types_core/src/components/visualizer_overrides.rs
@@ -102,19 +102,17 @@ impl crate::Loggable for VisualizerOverrides {
data0
.iter()
.map(|opt| opt.as_ref().map_or(0, |datum| datum.len())),
- )
- .unwrap()
+ )?
.into();
let data0_inner_data: Vec<_> = data0.into_iter().flatten().flatten().collect();
let data0_inner_bitmap: Option = None;
- ListArray::new(
+ ListArray::try_new(
Self::arrow_datatype(),
offsets,
{
let offsets = arrow2::offset::Offsets::::try_from_lengths(
data0_inner_data.iter().map(|datum| datum.len()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0_inner_data.into_iter().flat_map(|s| s.0).collect();
@@ -131,7 +129,7 @@ impl crate::Loggable for VisualizerOverrides {
.boxed()
},
data0_bitmap,
- )
+ )?
.boxed()
}
})
diff --git a/crates/re_types_core/src/datatypes/entity_path.rs b/crates/re_types_core/src/datatypes/entity_path.rs
index a42fe22361075..815de6c2aa626 100644
--- a/crates/re_types_core/src/datatypes/entity_path.rs
+++ b/crates/re_types_core/src/datatypes/entity_path.rs
@@ -97,8 +97,7 @@ impl crate::Loggable for EntityPath {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types_core/src/datatypes/utf8.rs b/crates/re_types_core/src/datatypes/utf8.rs
index c87dd877a47be..5d5636a61e811 100644
--- a/crates/re_types_core/src/datatypes/utf8.rs
+++ b/crates/re_types_core/src/datatypes/utf8.rs
@@ -97,8 +97,7 @@ impl crate::Loggable for Utf8 {
data0
.iter()
.map(|opt| opt.as_ref().map(|datum| datum.len()).unwrap_or_default()),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer =
data0.into_iter().flatten().flat_map(|s| s.0).collect();
diff --git a/crates/re_types_core/src/datatypes/visible_time_range.rs b/crates/re_types_core/src/datatypes/visible_time_range.rs
index 67f6877e2a1dc..0d57f44910b19 100644
--- a/crates/re_types_core/src/datatypes/visible_time_range.rs
+++ b/crates/re_types_core/src/datatypes/visible_time_range.rs
@@ -113,14 +113,14 @@ impl crate::Loggable for VisibleTimeRange {
timeline.iter().map(|opt| {
opt.as_ref().map(|datum| datum.0.len()).unwrap_or_default()
}),
- )
- .map_err(|err| std::sync::Arc::new(err))?
+ )?
.into();
let inner_data: arrow2::buffer::Buffer = timeline
.into_iter()
.flatten()
.flat_map(|datum| datum.0 .0)
.collect();
+
#[allow(unsafe_code, clippy::undocumented_unsafe_blocks)]
unsafe {
Utf8Array::::new_unchecked(
diff --git a/crates/re_types_core/src/lib.rs b/crates/re_types_core/src/lib.rs
index 08dea18b98687..f9a84bdcafc4d 100644
--- a/crates/re_types_core/src/lib.rs
+++ b/crates/re_types_core/src/lib.rs
@@ -15,6 +15,9 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
// ---
/// Describes the interface for interpreting an object as a bundle of [`Component`]s.
diff --git a/crates/re_types_core/src/result.rs b/crates/re_types_core/src/result.rs
index 111e0629b94dd..a6e26c5aa8855 100644
--- a/crates/re_types_core/src/result.rs
+++ b/crates/re_types_core/src/result.rs
@@ -1,3 +1,5 @@
+use std::{fmt::Display, ops::Deref};
+
use crate::ComponentName;
// ---
@@ -34,8 +36,8 @@ pub enum SerializationError {
},
/// E.g. too many values (overflows i32).
- #[error("Arrow error")]
- ArrowError(#[from] std::sync::Arc),
+ #[error(transparent)]
+ ArrowError(#[from] ArcArrowError),
}
impl std::fmt::Debug for SerializationError {
@@ -93,6 +95,41 @@ impl SerializationError {
}
}
+/// A cloneable wrapper around `arrow2::error::Error`, for easier use.
+///
+/// The motivation behind this type is that we often use code that can return a `arrow2::error::Error`
+/// inside functions that return a `SerializationError`. By wrapping it we can use the ? operator and simplify the code.
+/// Second, normally also `arrow2::error::Error` isn't clonable, but `SerializationError` is.
+#[derive(Clone, Debug)]
+pub struct ArcArrowError(std::sync::Arc);
+
+impl From for ArcArrowError {
+ fn from(e: arrow2::error::Error) -> Self {
+ Self(std::sync::Arc::new(e))
+ }
+}
+
+impl From for SerializationError {
+ fn from(e: arrow2::error::Error) -> Self {
+ SerializationError::ArrowError(ArcArrowError::from(e))
+ }
+}
+
+impl Deref for ArcArrowError {
+ type Target = arrow2::error::Error;
+
+ #[inline]
+ fn deref(&self) -> &Self::Target {
+ self.0.as_ref()
+ }
+}
+
+impl Display for ArcArrowError {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ self.0.fmt(f)
+ }
+}
+
pub type SerializationResult = ::std::result::Result;
// ---
diff --git a/crates/re_ui/examples/re_ui_example/main.rs b/crates/re_ui/examples/re_ui_example/main.rs
index c8cbdef113487..8acc351080c5f 100644
--- a/crates/re_ui/examples/re_ui_example/main.rs
+++ b/crates/re_ui/examples/re_ui_example/main.rs
@@ -98,7 +98,7 @@ pub struct ExampleApp {
impl ExampleApp {
fn new(re_ui: re_ui::ReUi) -> Self {
let (logger, text_log_rx) = re_log::ChannelLogger::new(re_log::LevelFilter::Info);
- re_log::add_boxed_logger(Box::new(logger)).unwrap();
+ re_log::add_boxed_logger(Box::new(logger)).expect("Failed to add logger");
let tree = egui_tiles::Tree::new_tabs("my_tree", vec![1, 2, 3]);
diff --git a/crates/re_viewer/src/lib.rs b/crates/re_viewer/src/lib.rs
index 26e71063548ef..3e0ac91757561 100644
--- a/crates/re_viewer/src/lib.rs
+++ b/crates/re_viewer/src/lib.rs
@@ -3,6 +3,9 @@
//! This crate contains all the GUI code for the Rerun Viewer,
//! including all 2D and 3D visualization code.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
mod app;
mod app_blueprint;
mod app_state;
diff --git a/crates/re_viewport/src/lib.rs b/crates/re_viewport/src/lib.rs
index 5bee9bb342fd6..23174859ba263 100644
--- a/crates/re_viewport/src/lib.rs
+++ b/crates/re_viewport/src/lib.rs
@@ -2,6 +2,9 @@
//!
//! This crate provides the central panel that contains all space views.
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
pub const VIEWPORT_PATH: &str = "viewport";
mod add_space_view_or_container_modal;
diff --git a/crates/re_ws_comms/src/lib.rs b/crates/re_ws_comms/src/lib.rs
index 3b5f69954ead0..4558fef14fa4b 100644
--- a/crates/re_ws_comms/src/lib.rs
+++ b/crates/re_ws_comms/src/lib.rs
@@ -4,6 +4,9 @@
#![doc = document_features::document_features!()]
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
#[cfg(feature = "client")]
mod client;
use std::{fmt::Display, str::FromStr};
diff --git a/crates/rerun/src/lib.rs b/crates/rerun/src/lib.rs
index 9553cb851e854..ce0f8ecf70c92 100644
--- a/crates/rerun/src/lib.rs
+++ b/crates/rerun/src/lib.rs
@@ -101,6 +101,8 @@
//! See [`Logger`].
//!
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
#![warn(missing_docs)] // Let's keep the this crate well-documented!
#[cfg(feature = "run")]
diff --git a/crates/rerun_c/src/lib.rs b/crates/rerun_c/src/lib.rs
index 8254975813cd7..711c174b137d6 100644
--- a/crates/rerun_c/src/lib.rs
+++ b/crates/rerun_c/src/lib.rs
@@ -215,8 +215,9 @@ pub struct CError {
#[allow(unsafe_code)]
#[no_mangle]
pub extern "C" fn rr_version_string() -> *const c_char {
- static VERSION: Lazy =
- Lazy::new(|| CString::new(re_sdk::build_info().version.to_string()).unwrap()); // unwrap: there won't be any NUL bytes in the string
+ static VERSION: Lazy = Lazy::new(|| {
+ CString::new(re_sdk::build_info().version.to_string()).expect("CString::new failed")
+ }); // unwrap: there won't be any NUL bytes in the string
VERSION.as_ptr()
}
diff --git a/docs/snippets/build.rs b/docs/snippets/build.rs
index 8d94f147ef710..043884b960a21 100644
--- a/docs/snippets/build.rs
+++ b/docs/snippets/build.rs
@@ -6,6 +6,9 @@
//!
//! Motivation:
+// TODO(#3408): remove unwrap()
+#![allow(clippy::unwrap_used)]
+
use std::{fs, path::Path};
use itertools::Itertools as _;
@@ -82,7 +85,7 @@ fn main() {
let args: Vec = std::env::args().skip(1).collect();
if args.is_empty() {
- eprintln!("Usage: {} \n", std::env::args().next().unwrap());
+ eprintln!("Usage: {} \n", std::env::args().next().unwrap_or("snippets".to_owned()));
eprintln!("Available snippets ${SNIPPETS}:\n");
std::process::exit(1);
}
diff --git a/rerun_py/build.rs b/rerun_py/build.rs
index c7c2c207ed5c3..3334a14cc0946 100644
--- a/rerun_py/build.rs
+++ b/rerun_py/build.rs
@@ -15,7 +15,7 @@ fn main() {
#[cfg(not(target_os = "windows"))]
let rerun_bin = std::env::current_dir()
- .unwrap()
+ .expect("std::env::current_dir() failed")
.join("rerun_sdk/rerun_cli/rerun");
if !rerun_bin.exists() {
diff --git a/rerun_py/src/python_bridge.rs b/rerun_py/src/python_bridge.rs
index 4f4c62b7769ef..e199c019c2fe3 100644
--- a/rerun_py/src/python_bridge.rs
+++ b/rerun_py/src/python_bridge.rs
@@ -549,7 +549,7 @@ fn spawn(
}
#[pyfunction]
-#[pyo3(signature = (addr = None, flush_timeout_sec=re_sdk::default_flush_timeout().unwrap().as_secs_f32(), default_blueprint = None, recording = None))]
+#[pyo3(signature = (addr = None, flush_timeout_sec=re_sdk::default_flush_timeout().expect("always Some()").as_secs_f32(), default_blueprint = None, recording = None))]
fn connect(
addr: Option,
flush_timeout_sec: Option,
diff --git a/run_wasm/src/main.rs b/run_wasm/src/main.rs
index 7a57567ad4c8a..9f9092e6af206 100644
--- a/run_wasm/src/main.rs
+++ b/run_wasm/src/main.rs
@@ -68,10 +68,14 @@ fn main() {
use pico_args::Arguments;
let mut args = Arguments::from_env();
- let host: Option = args.opt_value_from_str("--host").unwrap();
- let port: Option = args.opt_value_from_str("--port").unwrap();
- let host = host.as_deref().unwrap_or("localhost");
- let port = port.as_deref().unwrap_or("8000");
+ let host = args
+ .opt_value_from_str("--host")
+ .unwrap_or(None)
+ .unwrap_or("localhost".to_owned());
+ let port = args
+ .opt_value_from_str("--port")
+ .unwrap_or(None)
+ .unwrap_or("8000".to_owned());
let thread = std::thread::Builder::new()
.name("cargo_run_wasm".into())
@@ -81,7 +85,7 @@ fn main() {
.expect("Failed to spawn thread");
if args.contains("--build-only") {
- thread.join().unwrap();
+ thread.join().expect("std::thread::join() failed");
} else {
// It would be nice to start a web-browser, but we can't really know when the server is ready.
// So we just sleep for a while and hope it works.
diff --git a/tests/rust/roundtrips/image/src/main.rs b/tests/rust/roundtrips/image/src/main.rs
index 64d8bdd410fff..0e81364319f5e 100644
--- a/tests/rust/roundtrips/image/src/main.rs
+++ b/tests/rust/roundtrips/image/src/main.rs
@@ -1,5 +1,8 @@
//! Logs an `Image` archetype for roundtrip checks.
+// Allow unwrap() in tests (allow-unwrap-in-tests doesn't apply)
+#![allow(clippy::unwrap_used)]
+
use half::f16;
use image::{Rgb, RgbImage};
use ndarray::{Array, ShapeBuilder};
diff --git a/tests/rust/test_image_memory/src/main.rs b/tests/rust/test_image_memory/src/main.rs
index 99e4110f8c55e..5f04178ccc1ac 100644
--- a/tests/rust/test_image_memory/src/main.rs
+++ b/tests/rust/test_image_memory/src/main.rs
@@ -1,5 +1,8 @@
//! Logs a bunch of big images to test Rerun memory usage.
+// Allow unwrap() in tests (allow-unwrap-in-tests doesn't apply)
+#![allow(clippy::unwrap_used)]
+
use mimalloc::MiMalloc;
use re_memory::AccountingAllocator;
From db891f962355c264c0effbc28323e80f5fb3655e Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Wed, 15 May 2024 10:41:22 +0200
Subject: [PATCH 08/40] Fix lint issues on generated doc pages (#6328)
merge order caused me to miss this
---
crates/re_types_builder/src/codegen/docs/mod.rs | 2 +-
docs/content/reference/types/archetypes/annotation_context.md | 2 +-
docs/content/reference/types/archetypes/arrows2d.md | 2 +-
docs/content/reference/types/archetypes/arrows3d.md | 2 +-
docs/content/reference/types/archetypes/asset3d.md | 2 +-
docs/content/reference/types/archetypes/bar_chart.md | 2 +-
docs/content/reference/types/archetypes/boxes2d.md | 2 +-
docs/content/reference/types/archetypes/boxes3d.md | 2 +-
docs/content/reference/types/archetypes/clear.md | 2 +-
docs/content/reference/types/archetypes/depth_image.md | 2 +-
docs/content/reference/types/archetypes/disconnected_space.md | 2 +-
docs/content/reference/types/archetypes/image.md | 2 +-
docs/content/reference/types/archetypes/line_strips2d.md | 2 +-
docs/content/reference/types/archetypes/line_strips3d.md | 2 +-
docs/content/reference/types/archetypes/mesh3d.md | 2 +-
docs/content/reference/types/archetypes/pinhole.md | 2 +-
docs/content/reference/types/archetypes/points2d.md | 2 +-
docs/content/reference/types/archetypes/points3d.md | 2 +-
docs/content/reference/types/archetypes/scalar.md | 2 +-
docs/content/reference/types/archetypes/segmentation_image.md | 2 +-
docs/content/reference/types/archetypes/series_line.md | 2 +-
docs/content/reference/types/archetypes/series_point.md | 2 +-
docs/content/reference/types/archetypes/tensor.md | 2 +-
docs/content/reference/types/archetypes/text_document.md | 2 +-
docs/content/reference/types/archetypes/text_log.md | 2 +-
docs/content/reference/types/archetypes/transform3d.md | 2 +-
docs/content/reference/types/archetypes/view_coordinates.md | 2 +-
docs/content/reference/types/components/annotation_context.md | 2 +-
docs/content/reference/types/components/blob.md | 2 +-
docs/content/reference/types/components/class_id.md | 2 +-
docs/content/reference/types/components/clear_is_recursive.md | 2 +-
docs/content/reference/types/components/color.md | 2 +-
docs/content/reference/types/components/depth_meter.md | 2 +-
docs/content/reference/types/components/disconnected_space.md | 2 +-
docs/content/reference/types/components/draw_order.md | 2 +-
docs/content/reference/types/components/half_sizes2d.md | 2 +-
docs/content/reference/types/components/half_sizes3d.md | 2 +-
docs/content/reference/types/components/keypoint_id.md | 2 +-
docs/content/reference/types/components/line_strip2d.md | 2 +-
docs/content/reference/types/components/line_strip3d.md | 2 +-
docs/content/reference/types/components/marker_shape.md | 2 +-
docs/content/reference/types/components/marker_size.md | 2 +-
docs/content/reference/types/components/material.md | 2 +-
docs/content/reference/types/components/media_type.md | 2 +-
docs/content/reference/types/components/name.md | 2 +-
.../reference/types/components/out_of_tree_transform3d.md | 2 +-
docs/content/reference/types/components/pinhole_projection.md | 2 +-
docs/content/reference/types/components/position2d.md | 2 +-
docs/content/reference/types/components/position3d.md | 2 +-
docs/content/reference/types/components/radius.md | 2 +-
docs/content/reference/types/components/range1d.md | 2 +-
docs/content/reference/types/components/range2d.md | 2 +-
docs/content/reference/types/components/resolution.md | 2 +-
docs/content/reference/types/components/rotation3d.md | 2 +-
docs/content/reference/types/components/scalar.md | 2 +-
docs/content/reference/types/components/scalar_scattering.md | 2 +-
docs/content/reference/types/components/stroke_width.md | 2 +-
docs/content/reference/types/components/tensor_data.md | 2 +-
docs/content/reference/types/components/texcoord2d.md | 2 +-
docs/content/reference/types/components/text.md | 2 +-
docs/content/reference/types/components/text_log_level.md | 2 +-
docs/content/reference/types/components/transform3d.md | 2 +-
docs/content/reference/types/components/triangle_indices.md | 2 +-
docs/content/reference/types/components/vector2d.md | 2 +-
docs/content/reference/types/components/vector3d.md | 2 +-
docs/content/reference/types/components/view_coordinates.md | 2 +-
docs/content/reference/types/components/visualizer_overrides.md | 2 +-
docs/content/reference/types/datatypes/angle.md | 2 +-
docs/content/reference/types/datatypes/annotation_info.md | 2 +-
docs/content/reference/types/datatypes/bool.md | 2 +-
docs/content/reference/types/datatypes/class_description.md | 2 +-
.../reference/types/datatypes/class_description_map_elem.md | 2 +-
docs/content/reference/types/datatypes/class_id.md | 2 +-
docs/content/reference/types/datatypes/entity_path.md | 2 +-
docs/content/reference/types/datatypes/float32.md | 2 +-
docs/content/reference/types/datatypes/keypoint_id.md | 2 +-
docs/content/reference/types/datatypes/keypoint_pair.md | 2 +-
docs/content/reference/types/datatypes/mat3x3.md | 2 +-
docs/content/reference/types/datatypes/mat4x4.md | 2 +-
docs/content/reference/types/datatypes/material.md | 2 +-
docs/content/reference/types/datatypes/quaternion.md | 2 +-
docs/content/reference/types/datatypes/range1d.md | 2 +-
docs/content/reference/types/datatypes/range2d.md | 2 +-
docs/content/reference/types/datatypes/rgba32.md | 2 +-
docs/content/reference/types/datatypes/rotation3d.md | 2 +-
docs/content/reference/types/datatypes/rotation_axis_angle.md | 2 +-
docs/content/reference/types/datatypes/scale3d.md | 2 +-
docs/content/reference/types/datatypes/tensor_buffer.md | 2 +-
docs/content/reference/types/datatypes/tensor_data.md | 2 +-
docs/content/reference/types/datatypes/tensor_dimension.md | 2 +-
docs/content/reference/types/datatypes/time_int.md | 2 +-
docs/content/reference/types/datatypes/time_range.md | 2 +-
docs/content/reference/types/datatypes/time_range_boundary.md | 2 +-
docs/content/reference/types/datatypes/transform3d.md | 2 +-
.../content/reference/types/datatypes/translation_and_mat3x3.md | 2 +-
.../reference/types/datatypes/translation_rotation_scale3d.md | 2 +-
docs/content/reference/types/datatypes/uint32.md | 2 +-
docs/content/reference/types/datatypes/uint64.md | 2 +-
docs/content/reference/types/datatypes/utf8.md | 2 +-
docs/content/reference/types/datatypes/uuid.md | 2 +-
docs/content/reference/types/datatypes/uvec2d.md | 2 +-
docs/content/reference/types/datatypes/uvec3d.md | 2 +-
docs/content/reference/types/datatypes/uvec4d.md | 2 +-
docs/content/reference/types/datatypes/vec2d.md | 2 +-
docs/content/reference/types/datatypes/vec3d.md | 2 +-
docs/content/reference/types/datatypes/vec4d.md | 2 +-
docs/content/reference/types/datatypes/visible_time_range.md | 2 +-
docs/content/reference/types/views/bar_chart_view.md | 2 +-
docs/content/reference/types/views/spatial2d_view.md | 2 +-
docs/content/reference/types/views/spatial3d_view.md | 2 +-
docs/content/reference/types/views/tensor_view.md | 2 +-
docs/content/reference/types/views/text_document_view.md | 2 +-
docs/content/reference/types/views/text_log_view.md | 2 +-
docs/content/reference/types/views/time_series_view.md | 2 +-
114 files changed, 114 insertions(+), 114 deletions(-)
diff --git a/crates/re_types_builder/src/codegen/docs/mod.rs b/crates/re_types_builder/src/codegen/docs/mod.rs
index 397992e89a755..8ce1be89a9ab5 100644
--- a/crates/re_types_builder/src/codegen/docs/mod.rs
+++ b/crates/re_types_builder/src/codegen/docs/mod.rs
@@ -266,7 +266,7 @@ fn object_page(
}
putln!(page);
- putln!(page, "## Api reference links");
+ putln!(page, "## API reference links");
list_links(is_unreleased, &mut page, object);
putln!(page);
diff --git a/docs/content/reference/types/archetypes/annotation_context.md b/docs/content/reference/types/archetypes/annotation_context.md
index 0c609de38af62..00673bbe2f316 100644
--- a/docs/content/reference/types/archetypes/annotation_context.md
+++ b/docs/content/reference/types/archetypes/annotation_context.md
@@ -19,7 +19,7 @@ path.
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `AnnotationContext`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1AnnotationContext.html)
* π [Python API docs for `AnnotationContext`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.AnnotationContext)
* π¦ [Rust API docs for `AnnotationContext`](https://docs.rs/rerun/latest/rerun/archetypes/struct.AnnotationContext.html)
diff --git a/docs/content/reference/types/archetypes/arrows2d.md b/docs/content/reference/types/archetypes/arrows2d.md
index 13512e8e11a5e..51eef3c73c29d 100644
--- a/docs/content/reference/types/archetypes/arrows2d.md
+++ b/docs/content/reference/types/archetypes/arrows2d.md
@@ -17,7 +17,7 @@ title: "Arrows2D"
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Arrows2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Arrows2D.html)
* π [Python API docs for `Arrows2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Arrows2D)
* π¦ [Rust API docs for `Arrows2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Arrows2D.html)
diff --git a/docs/content/reference/types/archetypes/arrows3d.md b/docs/content/reference/types/archetypes/arrows3d.md
index 0ed60ffd48a09..a421c775d2209 100644
--- a/docs/content/reference/types/archetypes/arrows3d.md
+++ b/docs/content/reference/types/archetypes/arrows3d.md
@@ -17,7 +17,7 @@ title: "Arrows3D"
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Arrows3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Arrows3D.html)
* π [Python API docs for `Arrows3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Arrows3D)
* π¦ [Rust API docs for `Arrows3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Arrows3D.html)
diff --git a/docs/content/reference/types/archetypes/asset3d.md b/docs/content/reference/types/archetypes/asset3d.md
index fab6f7f0cfcbb..fe73b31de8782 100644
--- a/docs/content/reference/types/archetypes/asset3d.md
+++ b/docs/content/reference/types/archetypes/asset3d.md
@@ -17,7 +17,7 @@ A prepacked 3D asset (`.gltf`, `.glb`, `.obj`, `.stl`, etc.).
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Asset3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Asset3D.html)
* π [Python API docs for `Asset3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Asset3D)
* π¦ [Rust API docs for `Asset3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Asset3D.html)
diff --git a/docs/content/reference/types/archetypes/bar_chart.md b/docs/content/reference/types/archetypes/bar_chart.md
index cb25d9ec68fc1..97784402e25bb 100644
--- a/docs/content/reference/types/archetypes/bar_chart.md
+++ b/docs/content/reference/types/archetypes/bar_chart.md
@@ -16,7 +16,7 @@ The x values will be the indices of the array, and the bar heights will be the p
## Shown in
* [BarChartView](../views/bar_chart_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `BarChart`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1BarChart.html)
* π [Python API docs for `BarChart`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.BarChart)
* π¦ [Rust API docs for `BarChart`](https://docs.rs/rerun/latest/rerun/archetypes/struct.BarChart.html)
diff --git a/docs/content/reference/types/archetypes/boxes2d.md b/docs/content/reference/types/archetypes/boxes2d.md
index d200524839411..0fbb8ad55f33b 100644
--- a/docs/content/reference/types/archetypes/boxes2d.md
+++ b/docs/content/reference/types/archetypes/boxes2d.md
@@ -17,7 +17,7 @@ title: "Boxes2D"
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Boxes2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Boxes2D.html)
* π [Python API docs for `Boxes2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Boxes2D)
* π¦ [Rust API docs for `Boxes2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Boxes2D.html)
diff --git a/docs/content/reference/types/archetypes/boxes3d.md b/docs/content/reference/types/archetypes/boxes3d.md
index 0f4fac3ee5182..f33b44e2c2520 100644
--- a/docs/content/reference/types/archetypes/boxes3d.md
+++ b/docs/content/reference/types/archetypes/boxes3d.md
@@ -17,7 +17,7 @@ title: "Boxes3D"
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Boxes3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Boxes3D.html)
* π [Python API docs for `Boxes3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Boxes3D)
* π¦ [Rust API docs for `Boxes3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Boxes3D.html)
diff --git a/docs/content/reference/types/archetypes/clear.md b/docs/content/reference/types/archetypes/clear.md
index 17aab4e71e0d3..b76552b52e43e 100644
--- a/docs/content/reference/types/archetypes/clear.md
+++ b/docs/content/reference/types/archetypes/clear.md
@@ -24,7 +24,7 @@ data (i.e. discontinuous lines).
* [Spatial3DView](../views/spatial3d_view.md)
* [TimeSeriesView](../views/time_series_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Clear`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Clear.html)
* π [Python API docs for `Clear`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Clear)
* π¦ [Rust API docs for `Clear`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Clear.html)
diff --git a/docs/content/reference/types/archetypes/depth_image.md b/docs/content/reference/types/archetypes/depth_image.md
index 32d31e5bcd8c0..b09629b0eadf4 100644
--- a/docs/content/reference/types/archetypes/depth_image.md
+++ b/docs/content/reference/types/archetypes/depth_image.md
@@ -18,7 +18,7 @@ Each pixel corresponds to a depth value in units specified by `meter`.
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `DepthImage`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1DepthImage.html)
* π [Python API docs for `DepthImage`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.DepthImage)
* π¦ [Rust API docs for `DepthImage`](https://docs.rs/rerun/latest/rerun/archetypes/struct.DepthImage.html)
diff --git a/docs/content/reference/types/archetypes/disconnected_space.md b/docs/content/reference/types/archetypes/disconnected_space.md
index 2ba2f259fd835..8cf8ff8e0cf34 100644
--- a/docs/content/reference/types/archetypes/disconnected_space.md
+++ b/docs/content/reference/types/archetypes/disconnected_space.md
@@ -18,7 +18,7 @@ This is useful for specifying that a subgraph is independent of the rest of the
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1DisconnectedSpace.html)
* π [Python API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.DisconnectedSpace)
* π¦ [Rust API docs for `DisconnectedSpace`](https://docs.rs/rerun/latest/rerun/archetypes/struct.DisconnectedSpace.html)
diff --git a/docs/content/reference/types/archetypes/image.md b/docs/content/reference/types/archetypes/image.md
index 0dab4e5689bef..4a3b65cbe422b 100644
--- a/docs/content/reference/types/archetypes/image.md
+++ b/docs/content/reference/types/archetypes/image.md
@@ -30,7 +30,7 @@ Using these formats can save a lot of bandwidth and memory.
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Image`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Image.html)
* π [Python API docs for `Image`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Image)
* π¦ [Rust API docs for `Image`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Image.html)
diff --git a/docs/content/reference/types/archetypes/line_strips2d.md b/docs/content/reference/types/archetypes/line_strips2d.md
index 5e53f6eab5d9a..fd57bfb2af5be 100644
--- a/docs/content/reference/types/archetypes/line_strips2d.md
+++ b/docs/content/reference/types/archetypes/line_strips2d.md
@@ -17,7 +17,7 @@ title: "LineStrips2D"
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `LineStrips2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1LineStrips2D.html)
* π [Python API docs for `LineStrips2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.LineStrips2D)
* π¦ [Rust API docs for `LineStrips2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.LineStrips2D.html)
diff --git a/docs/content/reference/types/archetypes/line_strips3d.md b/docs/content/reference/types/archetypes/line_strips3d.md
index 63484e839d1e9..e612c9000b1b0 100644
--- a/docs/content/reference/types/archetypes/line_strips3d.md
+++ b/docs/content/reference/types/archetypes/line_strips3d.md
@@ -17,7 +17,7 @@ title: "LineStrips3D"
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `LineStrips3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1LineStrips3D.html)
* π [Python API docs for `LineStrips3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.LineStrips3D)
* π¦ [Rust API docs for `LineStrips3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.LineStrips3D.html)
diff --git a/docs/content/reference/types/archetypes/mesh3d.md b/docs/content/reference/types/archetypes/mesh3d.md
index 6ff8b88a96018..51434f1c39922 100644
--- a/docs/content/reference/types/archetypes/mesh3d.md
+++ b/docs/content/reference/types/archetypes/mesh3d.md
@@ -17,7 +17,7 @@ A 3D triangle mesh as specified by its per-mesh and per-vertex properties.
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Mesh3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Mesh3D.html)
* π [Python API docs for `Mesh3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Mesh3D)
* π¦ [Rust API docs for `Mesh3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Mesh3D.html)
diff --git a/docs/content/reference/types/archetypes/pinhole.md b/docs/content/reference/types/archetypes/pinhole.md
index 847a1ca89da15..924a93fc6ffe3 100644
--- a/docs/content/reference/types/archetypes/pinhole.md
+++ b/docs/content/reference/types/archetypes/pinhole.md
@@ -17,7 +17,7 @@ Camera perspective projection (a.k.a. intrinsics).
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial2DView](../views/spatial2d_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Pinhole`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Pinhole.html)
* π [Python API docs for `Pinhole`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Pinhole)
* π¦ [Rust API docs for `Pinhole`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Pinhole.html)
diff --git a/docs/content/reference/types/archetypes/points2d.md b/docs/content/reference/types/archetypes/points2d.md
index a4a43a3cb8ef2..29b8147e09ad3 100644
--- a/docs/content/reference/types/archetypes/points2d.md
+++ b/docs/content/reference/types/archetypes/points2d.md
@@ -17,7 +17,7 @@ A 2D point cloud with positions and optional colors, radii, labels, etc.
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Points2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Points2D.html)
* π [Python API docs for `Points2D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Points2D)
* π¦ [Rust API docs for `Points2D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Points2D.html)
diff --git a/docs/content/reference/types/archetypes/points3d.md b/docs/content/reference/types/archetypes/points3d.md
index b234aa64d0801..fe8866593663b 100644
--- a/docs/content/reference/types/archetypes/points3d.md
+++ b/docs/content/reference/types/archetypes/points3d.md
@@ -17,7 +17,7 @@ A 3D point cloud with positions and optional colors, radii, labels, etc.
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Points3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Points3D.html)
* π [Python API docs for `Points3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Points3D)
* π¦ [Rust API docs for `Points3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Points3D.html)
diff --git a/docs/content/reference/types/archetypes/scalar.md b/docs/content/reference/types/archetypes/scalar.md
index d8a68ad256807..4560c15d07e7d 100644
--- a/docs/content/reference/types/archetypes/scalar.md
+++ b/docs/content/reference/types/archetypes/scalar.md
@@ -20,7 +20,7 @@ the plot-specific archetypes through the blueprint.
## Shown in
* [TimeSeriesView](../views/time_series_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Scalar`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Scalar.html)
* π [Python API docs for `Scalar`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Scalar)
* π¦ [Rust API docs for `Scalar`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Scalar.html)
diff --git a/docs/content/reference/types/archetypes/segmentation_image.md b/docs/content/reference/types/archetypes/segmentation_image.md
index 831aa70f783ea..3bb806f7c7a60 100644
--- a/docs/content/reference/types/archetypes/segmentation_image.md
+++ b/docs/content/reference/types/archetypes/segmentation_image.md
@@ -24,7 +24,7 @@ Leading and trailing unit-dimensions are ignored, so that
* [Spatial2DView](../views/spatial2d_view.md)
* [Spatial3DView](../views/spatial3d_view.md) (if logged under a projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `SegmentationImage`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SegmentationImage.html)
* π [Python API docs for `SegmentationImage`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SegmentationImage)
* π¦ [Rust API docs for `SegmentationImage`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SegmentationImage.html)
diff --git a/docs/content/reference/types/archetypes/series_line.md b/docs/content/reference/types/archetypes/series_line.md
index 1de8c454fb938..ce5243301b82c 100644
--- a/docs/content/reference/types/archetypes/series_line.md
+++ b/docs/content/reference/types/archetypes/series_line.md
@@ -16,7 +16,7 @@ the `Scalar` archetype.
## Shown in
* [TimeSeriesView](../views/time_series_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `SeriesLine`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SeriesLine.html)
* π [Python API docs for `SeriesLine`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SeriesLine)
* π¦ [Rust API docs for `SeriesLine`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SeriesLine.html)
diff --git a/docs/content/reference/types/archetypes/series_point.md b/docs/content/reference/types/archetypes/series_point.md
index feb0af8844c88..3d8d68343d1a7 100644
--- a/docs/content/reference/types/archetypes/series_point.md
+++ b/docs/content/reference/types/archetypes/series_point.md
@@ -16,7 +16,7 @@ the `Scalar` archetype.
## Shown in
* [TimeSeriesView](../views/time_series_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `SeriesPoint`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1SeriesPoint.html)
* π [Python API docs for `SeriesPoint`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.SeriesPoint)
* π¦ [Rust API docs for `SeriesPoint`](https://docs.rs/rerun/latest/rerun/archetypes/struct.SeriesPoint.html)
diff --git a/docs/content/reference/types/archetypes/tensor.md b/docs/content/reference/types/archetypes/tensor.md
index 320ebd7b3e904..e93a258860b26 100644
--- a/docs/content/reference/types/archetypes/tensor.md
+++ b/docs/content/reference/types/archetypes/tensor.md
@@ -13,7 +13,7 @@ A generic n-dimensional Tensor.
* [TensorView](../views/tensor_view.md)
* [BarChartView](../views/bar_chart_view.md) (for 1D tensors)
-## Api reference links
+## API reference links
* π [C++ API docs for `Tensor`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Tensor.html)
* π [Python API docs for `Tensor`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Tensor)
* π¦ [Rust API docs for `Tensor`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Tensor.html)
diff --git a/docs/content/reference/types/archetypes/text_document.md b/docs/content/reference/types/archetypes/text_document.md
index d13bb5825a06b..ac2e51751defc 100644
--- a/docs/content/reference/types/archetypes/text_document.md
+++ b/docs/content/reference/types/archetypes/text_document.md
@@ -16,7 +16,7 @@ Supports raw text and markdown.
## Shown in
* [TextDocumentView](../views/text_document_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TextDocument`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1TextDocument.html)
* π [Python API docs for `TextDocument`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.TextDocument)
* π¦ [Rust API docs for `TextDocument`](https://docs.rs/rerun/latest/rerun/archetypes/struct.TextDocument.html)
diff --git a/docs/content/reference/types/archetypes/text_log.md b/docs/content/reference/types/archetypes/text_log.md
index 7e4deb88ce2a8..c927b9711c31e 100644
--- a/docs/content/reference/types/archetypes/text_log.md
+++ b/docs/content/reference/types/archetypes/text_log.md
@@ -16,7 +16,7 @@ A log entry in a text log, comprised of a text body and its log level.
## Shown in
* [TextLogView](../views/text_log_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TextLog`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1TextLog.html)
* π [Python API docs for `TextLog`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.TextLog)
* π¦ [Rust API docs for `TextLog`](https://docs.rs/rerun/latest/rerun/archetypes/struct.TextLog.html)
diff --git a/docs/content/reference/types/archetypes/transform3d.md b/docs/content/reference/types/archetypes/transform3d.md
index dce2c974b2c53..337c9728fb875 100644
--- a/docs/content/reference/types/archetypes/transform3d.md
+++ b/docs/content/reference/types/archetypes/transform3d.md
@@ -13,7 +13,7 @@ A 3D transform.
* [Spatial3DView](../views/spatial3d_view.md)
* [Spatial2DView](../views/spatial2d_view.md) (if logged above active projection)
-## Api reference links
+## API reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/archetypes/struct.Transform3D.html)
diff --git a/docs/content/reference/types/archetypes/view_coordinates.md b/docs/content/reference/types/archetypes/view_coordinates.md
index c42fdcb0ce640..02424dd52ae8f 100644
--- a/docs/content/reference/types/archetypes/view_coordinates.md
+++ b/docs/content/reference/types/archetypes/view_coordinates.md
@@ -19,7 +19,7 @@ down, and the Z axis points forward.
## Shown in
* [Spatial3DView](../views/spatial3d_view.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `ViewCoordinates`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1archetypes_1_1ViewCoordinates.html)
* π [Python API docs for `ViewCoordinates`](https://ref.rerun.io/docs/python/stable/common/archetypes#rerun.archetypes.ViewCoordinates)
* π¦ [Rust API docs for `ViewCoordinates`](https://docs.rs/rerun/latest/rerun/archetypes/struct.ViewCoordinates.html)
diff --git a/docs/content/reference/types/components/annotation_context.md b/docs/content/reference/types/components/annotation_context.md
index 89546b32cfe67..cae3ab71d4bce 100644
--- a/docs/content/reference/types/components/annotation_context.md
+++ b/docs/content/reference/types/components/annotation_context.md
@@ -15,7 +15,7 @@ path.
* class_map: list of [`ClassDescriptionMapElem`](../datatypes/class_description_map_elem.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `AnnotationContext`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1AnnotationContext.html)
* π [Python API docs for `AnnotationContext`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.AnnotationContext)
* π¦ [Rust API docs for `AnnotationContext`](https://docs.rs/rerun/latest/rerun/components/struct.AnnotationContext.html)
diff --git a/docs/content/reference/types/components/blob.md b/docs/content/reference/types/components/blob.md
index b03e8c404d55f..69e6478103696 100644
--- a/docs/content/reference/types/components/blob.md
+++ b/docs/content/reference/types/components/blob.md
@@ -9,7 +9,7 @@ A binary blob of data.
* data: list of `u8`
-## Api reference links
+## API reference links
* π [C++ API docs for `Blob`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Blob.html)
* π [Python API docs for `Blob`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Blob)
* π¦ [Rust API docs for `Blob`](https://docs.rs/rerun/latest/rerun/components/struct.Blob.html)
diff --git a/docs/content/reference/types/components/class_id.md b/docs/content/reference/types/components/class_id.md
index 116bc5bba4449..956eb613c2246 100644
--- a/docs/content/reference/types/components/class_id.md
+++ b/docs/content/reference/types/components/class_id.md
@@ -9,7 +9,7 @@ A 16-bit ID representing a type of semantic class.
* id: [`ClassId`](../datatypes/class_id.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `ClassId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ClassId.html)
* π [Python API docs for `ClassId`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ClassId)
* π¦ [Rust API docs for `ClassId`](https://docs.rs/rerun/latest/rerun/components/struct.ClassId.html)
diff --git a/docs/content/reference/types/components/clear_is_recursive.md b/docs/content/reference/types/components/clear_is_recursive.md
index c8f324a59cd60..a43e26af14515 100644
--- a/docs/content/reference/types/components/clear_is_recursive.md
+++ b/docs/content/reference/types/components/clear_is_recursive.md
@@ -9,7 +9,7 @@ Configures how a clear operation should behave - recursive or not.
* recursive: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `ClearIsRecursive`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ClearIsRecursive.html)
* π [Python API docs for `ClearIsRecursive`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ClearIsRecursive)
* π¦ [Rust API docs for `ClearIsRecursive`](https://docs.rs/rerun/latest/rerun/components/struct.ClearIsRecursive.html)
diff --git a/docs/content/reference/types/components/color.md b/docs/content/reference/types/components/color.md
index 0d5db37b32544..26a5909e91143 100644
--- a/docs/content/reference/types/components/color.md
+++ b/docs/content/reference/types/components/color.md
@@ -12,7 +12,7 @@ byte is `R` and the least significant byte is `A`.
* rgba: [`Rgba32`](../datatypes/rgba32.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Color`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Color.html)
* π [Python API docs for `Color`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Color)
* π¦ [Rust API docs for `Color`](https://docs.rs/rerun/latest/rerun/components/struct.Color.html)
diff --git a/docs/content/reference/types/components/depth_meter.md b/docs/content/reference/types/components/depth_meter.md
index 53a5902a7c5c3..473df7bb92848 100644
--- a/docs/content/reference/types/components/depth_meter.md
+++ b/docs/content/reference/types/components/depth_meter.md
@@ -9,7 +9,7 @@ A component indicating how long a meter is, expressed in native units.
* value: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `DepthMeter`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DepthMeter.html)
* π [Python API docs for `DepthMeter`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DepthMeter)
* π¦ [Rust API docs for `DepthMeter`](https://docs.rs/rerun/latest/rerun/components/struct.DepthMeter.html)
diff --git a/docs/content/reference/types/components/disconnected_space.md b/docs/content/reference/types/components/disconnected_space.md
index 48193d8fbd3d0..d8c1dafe5a40e 100644
--- a/docs/content/reference/types/components/disconnected_space.md
+++ b/docs/content/reference/types/components/disconnected_space.md
@@ -14,7 +14,7 @@ This is useful for specifying that a subgraph is independent of the rest of the
* is_disconnected: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DisconnectedSpace.html)
* π [Python API docs for `DisconnectedSpace`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DisconnectedSpace)
* π¦ [Rust API docs for `DisconnectedSpace`](https://docs.rs/rerun/latest/rerun/components/struct.DisconnectedSpace.html)
diff --git a/docs/content/reference/types/components/draw_order.md b/docs/content/reference/types/components/draw_order.md
index f1dbea93e2720..61462b420c5b1 100644
--- a/docs/content/reference/types/components/draw_order.md
+++ b/docs/content/reference/types/components/draw_order.md
@@ -15,7 +15,7 @@ Draw order for entities with the same draw order is generally undefined.
* value: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `DrawOrder`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1DrawOrder.html)
* π [Python API docs for `DrawOrder`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.DrawOrder)
* π¦ [Rust API docs for `DrawOrder`](https://docs.rs/rerun/latest/rerun/components/struct.DrawOrder.html)
diff --git a/docs/content/reference/types/components/half_sizes2d.md b/docs/content/reference/types/components/half_sizes2d.md
index 0b0c7b692ddf7..1d7ed36739493 100644
--- a/docs/content/reference/types/components/half_sizes2d.md
+++ b/docs/content/reference/types/components/half_sizes2d.md
@@ -12,7 +12,7 @@ Negative sizes indicate that the box is flipped along the respective axis, but t
* xy: [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `HalfSizes2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1HalfSizes2D.html)
* π [Python API docs for `HalfSizes2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.HalfSizes2D)
* π¦ [Rust API docs for `HalfSizes2D`](https://docs.rs/rerun/latest/rerun/components/struct.HalfSizes2D.html)
diff --git a/docs/content/reference/types/components/half_sizes3d.md b/docs/content/reference/types/components/half_sizes3d.md
index 11876502972c9..6ad5509497537 100644
--- a/docs/content/reference/types/components/half_sizes3d.md
+++ b/docs/content/reference/types/components/half_sizes3d.md
@@ -12,7 +12,7 @@ Negative sizes indicate that the box is flipped along the respective axis, but t
* xyz: [`Vec3D`](../datatypes/vec3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `HalfSizes3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1HalfSizes3D.html)
* π [Python API docs for `HalfSizes3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.HalfSizes3D)
* π¦ [Rust API docs for `HalfSizes3D`](https://docs.rs/rerun/latest/rerun/components/struct.HalfSizes3D.html)
diff --git a/docs/content/reference/types/components/keypoint_id.md b/docs/content/reference/types/components/keypoint_id.md
index c308091d309a4..24d17b7fd78a7 100644
--- a/docs/content/reference/types/components/keypoint_id.md
+++ b/docs/content/reference/types/components/keypoint_id.md
@@ -9,7 +9,7 @@ A 16-bit ID representing a type of semantic keypoint within a class.
* id: [`KeypointId`](../datatypes/keypoint_id.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `KeypointId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1KeypointId.html)
* π [Python API docs for `KeypointId`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.KeypointId)
* π¦ [Rust API docs for `KeypointId`](https://docs.rs/rerun/latest/rerun/components/struct.KeypointId.html)
diff --git a/docs/content/reference/types/components/line_strip2d.md b/docs/content/reference/types/components/line_strip2d.md
index 5dd0dad4afffe..ec666f6d7c030 100644
--- a/docs/content/reference/types/components/line_strip2d.md
+++ b/docs/content/reference/types/components/line_strip2d.md
@@ -20,7 +20,7 @@ The points will be connected in order, like so:
* points: list of [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `LineStrip2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1LineStrip2D.html)
* π [Python API docs for `LineStrip2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.LineStrip2D)
* π¦ [Rust API docs for `LineStrip2D`](https://docs.rs/rerun/latest/rerun/components/struct.LineStrip2D.html)
diff --git a/docs/content/reference/types/components/line_strip3d.md b/docs/content/reference/types/components/line_strip3d.md
index d470d5f768942..969a49bf18036 100644
--- a/docs/content/reference/types/components/line_strip3d.md
+++ b/docs/content/reference/types/components/line_strip3d.md
@@ -20,7 +20,7 @@ The points will be connected in order, like so:
* points: list of [`Vec3D`](../datatypes/vec3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `LineStrip3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1LineStrip3D.html)
* π [Python API docs for `LineStrip3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.LineStrip3D)
* π¦ [Rust API docs for `LineStrip3D`](https://docs.rs/rerun/latest/rerun/components/struct.LineStrip3D.html)
diff --git a/docs/content/reference/types/components/marker_shape.md b/docs/content/reference/types/components/marker_shape.md
index 660315ccf5baf..507c245b038a5 100644
--- a/docs/content/reference/types/components/marker_shape.md
+++ b/docs/content/reference/types/components/marker_shape.md
@@ -18,7 +18,7 @@ Shape of a marker.
* Right
* Asterisk
-## Api reference links
+## API reference links
* π [C++ API docs for `MarkerShape`](https://ref.rerun.io/docs/cpp/stable/namespacererun_1_1components.html)
* π [Python API docs for `MarkerShape`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MarkerShape)
* π¦ [Rust API docs for `MarkerShape`](https://docs.rs/rerun/latest/rerun/components/enum.MarkerShape.html)
diff --git a/docs/content/reference/types/components/marker_size.md b/docs/content/reference/types/components/marker_size.md
index bacbdf6d40fdd..d1eb69b66c7e7 100644
--- a/docs/content/reference/types/components/marker_size.md
+++ b/docs/content/reference/types/components/marker_size.md
@@ -9,7 +9,7 @@ Size of a marker in UI points.
* value: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `MarkerSize`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1MarkerSize.html)
* π [Python API docs for `MarkerSize`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MarkerSize)
* π¦ [Rust API docs for `MarkerSize`](https://docs.rs/rerun/latest/rerun/components/struct.MarkerSize.html)
diff --git a/docs/content/reference/types/components/material.md b/docs/content/reference/types/components/material.md
index 7cf3664482aad..dd882625e24df 100644
--- a/docs/content/reference/types/components/material.md
+++ b/docs/content/reference/types/components/material.md
@@ -9,7 +9,7 @@ Material properties of a mesh.
* material: [`Material`](../datatypes/material.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Material`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Material.html)
* π [Python API docs for `Material`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Material)
* π¦ [Rust API docs for `Material`](https://docs.rs/rerun/latest/rerun/components/struct.Material.html)
diff --git a/docs/content/reference/types/components/media_type.md b/docs/content/reference/types/components/media_type.md
index 81a991e11c99f..3ace81d2148ae 100644
--- a/docs/content/reference/types/components/media_type.md
+++ b/docs/content/reference/types/components/media_type.md
@@ -12,7 +12,7 @@ consulted at .
* value: [`Utf8`](../datatypes/utf8.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `MediaType`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1MediaType.html)
* π [Python API docs for `MediaType`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.MediaType)
* π¦ [Rust API docs for `MediaType`](https://docs.rs/rerun/latest/rerun/components/struct.MediaType.html)
diff --git a/docs/content/reference/types/components/name.md b/docs/content/reference/types/components/name.md
index 6eec0c1814735..f93a8893aff75 100644
--- a/docs/content/reference/types/components/name.md
+++ b/docs/content/reference/types/components/name.md
@@ -9,7 +9,7 @@ A display name, typically for an entity or a item like a plot series.
* value: [`Utf8`](../datatypes/utf8.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Name`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Name.html)
* π [Python API docs for `Name`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Name)
* π¦ [Rust API docs for `Name`](https://docs.rs/rerun/latest/rerun/components/struct.Name.html)
diff --git a/docs/content/reference/types/components/out_of_tree_transform3d.md b/docs/content/reference/types/components/out_of_tree_transform3d.md
index 7dcc210ca3c09..401c57a134928 100644
--- a/docs/content/reference/types/components/out_of_tree_transform3d.md
+++ b/docs/content/reference/types/components/out_of_tree_transform3d.md
@@ -11,7 +11,7 @@ An out-of-tree affine transform between two 3D spaces, represented in a given di
* repr: [`Transform3D`](../datatypes/transform3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `OutOfTreeTransform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1OutOfTreeTransform3D.html)
* π [Python API docs for `OutOfTreeTransform3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.OutOfTreeTransform3D)
* π¦ [Rust API docs for `OutOfTreeTransform3D`](https://docs.rs/rerun/latest/rerun/components/struct.OutOfTreeTransform3D.html)
diff --git a/docs/content/reference/types/components/pinhole_projection.md b/docs/content/reference/types/components/pinhole_projection.md
index 13bfb04ef9255..174a33c7876e8 100644
--- a/docs/content/reference/types/components/pinhole_projection.md
+++ b/docs/content/reference/types/components/pinhole_projection.md
@@ -19,7 +19,7 @@ Example:
* image_from_camera: [`Mat3x3`](../datatypes/mat3x3.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `PinholeProjection`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1PinholeProjection.html)
* π [Python API docs for `PinholeProjection`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.PinholeProjection)
* π¦ [Rust API docs for `PinholeProjection`](https://docs.rs/rerun/latest/rerun/components/struct.PinholeProjection.html)
diff --git a/docs/content/reference/types/components/position2d.md b/docs/content/reference/types/components/position2d.md
index d70afa937b29f..69f61761a7c0a 100644
--- a/docs/content/reference/types/components/position2d.md
+++ b/docs/content/reference/types/components/position2d.md
@@ -9,7 +9,7 @@ A position in 2D space.
* xy: [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Position2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Position2D.html)
* π [Python API docs for `Position2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Position2D)
* π¦ [Rust API docs for `Position2D`](https://docs.rs/rerun/latest/rerun/components/struct.Position2D.html)
diff --git a/docs/content/reference/types/components/position3d.md b/docs/content/reference/types/components/position3d.md
index 30c1f030fac77..ca36180d68f72 100644
--- a/docs/content/reference/types/components/position3d.md
+++ b/docs/content/reference/types/components/position3d.md
@@ -9,7 +9,7 @@ A position in 3D space.
* xyz: [`Vec3D`](../datatypes/vec3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Position3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Position3D.html)
* π [Python API docs for `Position3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Position3D)
* π¦ [Rust API docs for `Position3D`](https://docs.rs/rerun/latest/rerun/components/struct.Position3D.html)
diff --git a/docs/content/reference/types/components/radius.md b/docs/content/reference/types/components/radius.md
index a7f6b58cad179..ae46dd8636c39 100644
--- a/docs/content/reference/types/components/radius.md
+++ b/docs/content/reference/types/components/radius.md
@@ -9,7 +9,7 @@ A Radius component.
* value: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Radius`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Radius.html)
* π [Python API docs for `Radius`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Radius)
* π¦ [Rust API docs for `Radius`](https://docs.rs/rerun/latest/rerun/components/struct.Radius.html)
diff --git a/docs/content/reference/types/components/range1d.md b/docs/content/reference/types/components/range1d.md
index 8d1e2325e840b..61b8809ca0863 100644
--- a/docs/content/reference/types/components/range1d.md
+++ b/docs/content/reference/types/components/range1d.md
@@ -9,7 +9,7 @@ A 1D range, specifying a lower and upper bound.
* range: [`Range1D`](../datatypes/range1d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range1D.html?speculative-link)
* π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.Range1D)
* π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/components/struct.Range1D.html?speculative-link)
diff --git a/docs/content/reference/types/components/range2d.md b/docs/content/reference/types/components/range2d.md
index 509ef01373e0b..807581063f884 100644
--- a/docs/content/reference/types/components/range2d.md
+++ b/docs/content/reference/types/components/range2d.md
@@ -9,7 +9,7 @@ An Axis-Aligned Bounding Box in 2D space.
* range2d: [`Range2D`](../datatypes/range2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Range2D.html?speculative-link)
* π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.Range2D)
* π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/components/struct.Range2D.html?speculative-link)
diff --git a/docs/content/reference/types/components/resolution.md b/docs/content/reference/types/components/resolution.md
index ae1b2fcfe5060..629d1965c485d 100644
--- a/docs/content/reference/types/components/resolution.md
+++ b/docs/content/reference/types/components/resolution.md
@@ -11,7 +11,7 @@ Typically in integer units, but for some use cases floating point may be used.
* resolution: [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Resolution`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Resolution.html)
* π [Python API docs for `Resolution`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Resolution)
* π¦ [Rust API docs for `Resolution`](https://docs.rs/rerun/latest/rerun/components/struct.Resolution.html)
diff --git a/docs/content/reference/types/components/rotation3d.md b/docs/content/reference/types/components/rotation3d.md
index 19444b6920688..81992185dc187 100644
--- a/docs/content/reference/types/components/rotation3d.md
+++ b/docs/content/reference/types/components/rotation3d.md
@@ -9,7 +9,7 @@ A 3D rotation, represented either by a quaternion or a rotation around axis.
* repr: [`Rotation3D`](../datatypes/rotation3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Rotation3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Rotation3D.html)
* π [Python API docs for `Rotation3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Rotation3D)
* π¦ [Rust API docs for `Rotation3D`](https://docs.rs/rerun/latest/rerun/components/struct.Rotation3D.html)
diff --git a/docs/content/reference/types/components/scalar.md b/docs/content/reference/types/components/scalar.md
index eacd528277b4b..097e0c444d598 100644
--- a/docs/content/reference/types/components/scalar.md
+++ b/docs/content/reference/types/components/scalar.md
@@ -11,7 +11,7 @@ Used for time series plots.
* value: `f64`
-## Api reference links
+## API reference links
* π [C++ API docs for `Scalar`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Scalar.html)
* π [Python API docs for `Scalar`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Scalar)
* π¦ [Rust API docs for `Scalar`](https://docs.rs/rerun/latest/rerun/components/struct.Scalar.html)
diff --git a/docs/content/reference/types/components/scalar_scattering.md b/docs/content/reference/types/components/scalar_scattering.md
index e695abdac0325..4526ddcbd0efb 100644
--- a/docs/content/reference/types/components/scalar_scattering.md
+++ b/docs/content/reference/types/components/scalar_scattering.md
@@ -9,7 +9,7 @@ If true, a scalar will be shown as individual point in a scatter plot.
* scattered: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `ScalarScattering`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ScalarScattering.html)
* π [Python API docs for `ScalarScattering`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ScalarScattering)
* π¦ [Rust API docs for `ScalarScattering`](https://docs.rs/rerun/latest/rerun/components/struct.ScalarScattering.html)
diff --git a/docs/content/reference/types/components/stroke_width.md b/docs/content/reference/types/components/stroke_width.md
index f093594fddcb2..f30bae39e1222 100644
--- a/docs/content/reference/types/components/stroke_width.md
+++ b/docs/content/reference/types/components/stroke_width.md
@@ -9,7 +9,7 @@ The width of a stroke specified in UI points.
* width: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `StrokeWidth`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1StrokeWidth.html)
* π [Python API docs for `StrokeWidth`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.StrokeWidth)
* π¦ [Rust API docs for `StrokeWidth`](https://docs.rs/rerun/latest/rerun/components/struct.StrokeWidth.html)
diff --git a/docs/content/reference/types/components/tensor_data.md b/docs/content/reference/types/components/tensor_data.md
index cacf4708311e3..4952e90ca6f38 100644
--- a/docs/content/reference/types/components/tensor_data.md
+++ b/docs/content/reference/types/components/tensor_data.md
@@ -21,7 +21,7 @@ the shape has to be the shape of the decoded image.
* data: [`TensorData`](../datatypes/tensor_data.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TensorData`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TensorData.html)
* π [Python API docs for `TensorData`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.TensorData)
* π¦ [Rust API docs for `TensorData`](https://docs.rs/rerun/latest/rerun/components/struct.TensorData.html)
diff --git a/docs/content/reference/types/components/texcoord2d.md b/docs/content/reference/types/components/texcoord2d.md
index 0d7a1010c4956..697c070fbfca4 100644
--- a/docs/content/reference/types/components/texcoord2d.md
+++ b/docs/content/reference/types/components/texcoord2d.md
@@ -24,7 +24,7 @@ which places the origin at the bottom-left.
* uv: [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Texcoord2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Texcoord2D.html)
* π [Python API docs for `Texcoord2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Texcoord2D)
* π¦ [Rust API docs for `Texcoord2D`](https://docs.rs/rerun/latest/rerun/components/struct.Texcoord2D.html)
diff --git a/docs/content/reference/types/components/text.md b/docs/content/reference/types/components/text.md
index f58599ac8b52c..dda1000901ef3 100644
--- a/docs/content/reference/types/components/text.md
+++ b/docs/content/reference/types/components/text.md
@@ -9,7 +9,7 @@ A string of text, e.g. for labels and text documents.
* value: [`Utf8`](../datatypes/utf8.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Text`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Text.html)
* π [Python API docs for `Text`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Text)
* π¦ [Rust API docs for `Text`](https://docs.rs/rerun/latest/rerun/components/struct.Text.html)
diff --git a/docs/content/reference/types/components/text_log_level.md b/docs/content/reference/types/components/text_log_level.md
index f5b88fa84eb96..1a3a5dfb9b098 100644
--- a/docs/content/reference/types/components/text_log_level.md
+++ b/docs/content/reference/types/components/text_log_level.md
@@ -17,7 +17,7 @@ Recommended to be one of:
* value: [`Utf8`](../datatypes/utf8.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TextLogLevel`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TextLogLevel.html)
* π [Python API docs for `TextLogLevel`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.TextLogLevel)
* π¦ [Rust API docs for `TextLogLevel`](https://docs.rs/rerun/latest/rerun/components/struct.TextLogLevel.html)
diff --git a/docs/content/reference/types/components/transform3d.md b/docs/content/reference/types/components/transform3d.md
index 50f27c5b5743b..6106979ef2d1e 100644
--- a/docs/content/reference/types/components/transform3d.md
+++ b/docs/content/reference/types/components/transform3d.md
@@ -9,7 +9,7 @@ An affine transform between two 3D spaces, represented in a given direction.
* repr: [`Transform3D`](../datatypes/transform3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/components/struct.Transform3D.html)
diff --git a/docs/content/reference/types/components/triangle_indices.md b/docs/content/reference/types/components/triangle_indices.md
index 430343cc5f4fa..8e4dfbb05acee 100644
--- a/docs/content/reference/types/components/triangle_indices.md
+++ b/docs/content/reference/types/components/triangle_indices.md
@@ -9,7 +9,7 @@ The three indices of a triangle mesh.
* indices: [`UVec3D`](../datatypes/uvec3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TriangleIndices`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1TriangleIndices.html?speculative-link)
* π [Python API docs for `TriangleIndices`](https://ref.rerun.io/docs/python/stable/common/components?speculative-link#rerun.components.TriangleIndices)
* π¦ [Rust API docs for `TriangleIndices`](https://docs.rs/rerun/latest/rerun/components/struct.TriangleIndices.html?speculative-link)
diff --git a/docs/content/reference/types/components/vector2d.md b/docs/content/reference/types/components/vector2d.md
index aee24277e6147..908a41f9ee76e 100644
--- a/docs/content/reference/types/components/vector2d.md
+++ b/docs/content/reference/types/components/vector2d.md
@@ -9,7 +9,7 @@ A vector in 2D space.
* vector: [`Vec2D`](../datatypes/vec2d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Vector2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Vector2D.html)
* π [Python API docs for `Vector2D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Vector2D)
* π¦ [Rust API docs for `Vector2D`](https://docs.rs/rerun/latest/rerun/components/struct.Vector2D.html)
diff --git a/docs/content/reference/types/components/vector3d.md b/docs/content/reference/types/components/vector3d.md
index f6445aab562df..445244d974b3d 100644
--- a/docs/content/reference/types/components/vector3d.md
+++ b/docs/content/reference/types/components/vector3d.md
@@ -9,7 +9,7 @@ A vector in 3D space.
* vector: [`Vec3D`](../datatypes/vec3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Vector3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1Vector3D.html)
* π [Python API docs for `Vector3D`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.Vector3D)
* π¦ [Rust API docs for `Vector3D`](https://docs.rs/rerun/latest/rerun/components/struct.Vector3D.html)
diff --git a/docs/content/reference/types/components/view_coordinates.md b/docs/content/reference/types/components/view_coordinates.md
index 5bcf0cd7479f1..899c57f65ce9b 100644
--- a/docs/content/reference/types/components/view_coordinates.md
+++ b/docs/content/reference/types/components/view_coordinates.md
@@ -24,7 +24,7 @@ The following constants are used to represent the different directions:
* coordinates: 3x `u8`
-## Api reference links
+## API reference links
* π [C++ API docs for `ViewCoordinates`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1ViewCoordinates.html)
* π [Python API docs for `ViewCoordinates`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.ViewCoordinates)
* π¦ [Rust API docs for `ViewCoordinates`](https://docs.rs/rerun/latest/rerun/components/struct.ViewCoordinates.html)
diff --git a/docs/content/reference/types/components/visualizer_overrides.md b/docs/content/reference/types/components/visualizer_overrides.md
index b6dc857500964..502991f00f127 100644
--- a/docs/content/reference/types/components/visualizer_overrides.md
+++ b/docs/content/reference/types/components/visualizer_overrides.md
@@ -9,7 +9,7 @@ The name of a visualizer.
* value: list of `string`
-## Api reference links
+## API reference links
* π [C++ API docs for `VisualizerOverrides`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1components_1_1VisualizerOverrides.html)
* π [Python API docs for `VisualizerOverrides`](https://ref.rerun.io/docs/python/stable/common/components#rerun.components.VisualizerOverrides)
* π¦ [Rust API docs for `VisualizerOverrides`](https://docs.rs/rerun/latest/rerun/components/struct.VisualizerOverrides.html)
diff --git a/docs/content/reference/types/datatypes/angle.md b/docs/content/reference/types/datatypes/angle.md
index 647b16e5f1d35..3412502a5d433 100644
--- a/docs/content/reference/types/datatypes/angle.md
+++ b/docs/content/reference/types/datatypes/angle.md
@@ -10,7 +10,7 @@ Angle in either radians or degrees.
* Radians: `f32`
* Degrees: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Angle`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Angle.html)
* π [Python API docs for `Angle`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Angle)
* π¦ [Rust API docs for `Angle`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Angle.html)
diff --git a/docs/content/reference/types/datatypes/annotation_info.md b/docs/content/reference/types/datatypes/annotation_info.md
index 9ec270159447b..cbe788d3fcb65 100644
--- a/docs/content/reference/types/datatypes/annotation_info.md
+++ b/docs/content/reference/types/datatypes/annotation_info.md
@@ -14,7 +14,7 @@ The id refers either to a class or key-point id
* label: [`Utf8`](../datatypes/utf8.md)
* color: [`Rgba32`](../datatypes/rgba32.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `AnnotationInfo`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1AnnotationInfo.html)
* π [Python API docs for `AnnotationInfo`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.AnnotationInfo)
* π¦ [Rust API docs for `AnnotationInfo`](https://docs.rs/rerun/latest/rerun/datatypes/struct.AnnotationInfo.html)
diff --git a/docs/content/reference/types/datatypes/bool.md b/docs/content/reference/types/datatypes/bool.md
index f2d2e38eaff91..44c7ca26af74d 100644
--- a/docs/content/reference/types/datatypes/bool.md
+++ b/docs/content/reference/types/datatypes/bool.md
@@ -9,7 +9,7 @@ A single boolean.
* value: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `Bool`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Bool.html)
* π [Python API docs for `Bool`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Bool)
* π¦ [Rust API docs for `Bool`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Bool.html)
diff --git a/docs/content/reference/types/datatypes/class_description.md b/docs/content/reference/types/datatypes/class_description.md
index b8b4852e8f053..3b4a29360d239 100644
--- a/docs/content/reference/types/datatypes/class_description.md
+++ b/docs/content/reference/types/datatypes/class_description.md
@@ -24,7 +24,7 @@ colored as described by the class's `AnnotationInfo`.
* keypoint_annotations: list of [`AnnotationInfo`](../datatypes/annotation_info.md)
* keypoint_connections: list of [`KeypointPair`](../datatypes/keypoint_pair.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `ClassDescription`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassDescription.html)
* π [Python API docs for `ClassDescription`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassDescription)
* π¦ [Rust API docs for `ClassDescription`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassDescription.html)
diff --git a/docs/content/reference/types/datatypes/class_description_map_elem.md b/docs/content/reference/types/datatypes/class_description_map_elem.md
index 7a6c959e8ea99..b91b42016f1ed 100644
--- a/docs/content/reference/types/datatypes/class_description_map_elem.md
+++ b/docs/content/reference/types/datatypes/class_description_map_elem.md
@@ -12,7 +12,7 @@ This is internal to the `AnnotationContext` structure.
* class_id: [`ClassId`](../datatypes/class_id.md)
* class_description: [`ClassDescription`](../datatypes/class_description.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `ClassDescriptionMapElem`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassDescriptionMapElem.html)
* π [Python API docs for `ClassDescriptionMapElem`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassDescriptionMapElem)
* π¦ [Rust API docs for `ClassDescriptionMapElem`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassDescriptionMapElem.html)
diff --git a/docs/content/reference/types/datatypes/class_id.md b/docs/content/reference/types/datatypes/class_id.md
index 8a628db578469..bcd41d631c4a8 100644
--- a/docs/content/reference/types/datatypes/class_id.md
+++ b/docs/content/reference/types/datatypes/class_id.md
@@ -9,7 +9,7 @@ A 16-bit ID representing a type of semantic class.
* id: `u16`
-## Api reference links
+## API reference links
* π [C++ API docs for `ClassId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1ClassId.html)
* π [Python API docs for `ClassId`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.ClassId)
* π¦ [Rust API docs for `ClassId`](https://docs.rs/rerun/latest/rerun/datatypes/struct.ClassId.html)
diff --git a/docs/content/reference/types/datatypes/entity_path.md b/docs/content/reference/types/datatypes/entity_path.md
index a858b94803635..a519dbcf3cc0d 100644
--- a/docs/content/reference/types/datatypes/entity_path.md
+++ b/docs/content/reference/types/datatypes/entity_path.md
@@ -9,7 +9,7 @@ A path to an entity in the `DataStore`.
* path: `string`
-## Api reference links
+## API reference links
* π [C++ API docs for `EntityPath`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1EntityPath.html)
* π [Python API docs for `EntityPath`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.EntityPath)
* π¦ [Rust API docs for `EntityPath`](https://docs.rs/rerun/latest/rerun/datatypes/struct.EntityPath.html)
diff --git a/docs/content/reference/types/datatypes/float32.md b/docs/content/reference/types/datatypes/float32.md
index a901c202ca827..e6e1c7b7228ce 100644
--- a/docs/content/reference/types/datatypes/float32.md
+++ b/docs/content/reference/types/datatypes/float32.md
@@ -9,7 +9,7 @@ A single-precision 32-bit IEEE 754 floating point number.
* value: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Float32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Float32.html)
* π [Python API docs for `Float32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Float32)
* π¦ [Rust API docs for `Float32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Float32.html)
diff --git a/docs/content/reference/types/datatypes/keypoint_id.md b/docs/content/reference/types/datatypes/keypoint_id.md
index e05e3b6a7beb9..6f86b03f8744d 100644
--- a/docs/content/reference/types/datatypes/keypoint_id.md
+++ b/docs/content/reference/types/datatypes/keypoint_id.md
@@ -9,7 +9,7 @@ A 16-bit ID representing a type of semantic keypoint within a class.
* id: `u16`
-## Api reference links
+## API reference links
* π [C++ API docs for `KeypointId`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1KeypointId.html)
* π [Python API docs for `KeypointId`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.KeypointId)
* π¦ [Rust API docs for `KeypointId`](https://docs.rs/rerun/latest/rerun/datatypes/struct.KeypointId.html)
diff --git a/docs/content/reference/types/datatypes/keypoint_pair.md b/docs/content/reference/types/datatypes/keypoint_pair.md
index 09eee06f870f7..c16360ec8969d 100644
--- a/docs/content/reference/types/datatypes/keypoint_pair.md
+++ b/docs/content/reference/types/datatypes/keypoint_pair.md
@@ -10,7 +10,7 @@ A connection between two `Keypoints`.
* keypoint0: [`KeypointId`](../datatypes/keypoint_id.md)
* keypoint1: [`KeypointId`](../datatypes/keypoint_id.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `KeypointPair`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1KeypointPair.html)
* π [Python API docs for `KeypointPair`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.KeypointPair)
* π¦ [Rust API docs for `KeypointPair`](https://docs.rs/rerun/latest/rerun/datatypes/struct.KeypointPair.html)
diff --git a/docs/content/reference/types/datatypes/mat3x3.md b/docs/content/reference/types/datatypes/mat3x3.md
index b6c50eaaf654e..f44430d379762 100644
--- a/docs/content/reference/types/datatypes/mat3x3.md
+++ b/docs/content/reference/types/datatypes/mat3x3.md
@@ -18,7 +18,7 @@ row 2 | flat_columns[2] flat_columns[5] flat_columns[8]
* flat_columns: 9x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Mat3x3`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Mat3x3.html)
* π [Python API docs for `Mat3x3`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Mat3x3)
* π¦ [Rust API docs for `Mat3x3`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Mat3x3.html)
diff --git a/docs/content/reference/types/datatypes/mat4x4.md b/docs/content/reference/types/datatypes/mat4x4.md
index acdab3d4f5d44..e0f8ed161c03f 100644
--- a/docs/content/reference/types/datatypes/mat4x4.md
+++ b/docs/content/reference/types/datatypes/mat4x4.md
@@ -19,7 +19,7 @@ row 3 | flat_columns[3] flat_columns[7] flat_columns[11] flat_columns[15]
* flat_columns: 16x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Mat4x4`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Mat4x4.html)
* π [Python API docs for `Mat4x4`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Mat4x4)
* π¦ [Rust API docs for `Mat4x4`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Mat4x4.html)
diff --git a/docs/content/reference/types/datatypes/material.md b/docs/content/reference/types/datatypes/material.md
index 49e155e41b0f4..9d6c487740f7b 100644
--- a/docs/content/reference/types/datatypes/material.md
+++ b/docs/content/reference/types/datatypes/material.md
@@ -9,7 +9,7 @@ Material properties of a mesh.
* albedo_factor: [`Rgba32`](../datatypes/rgba32.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Material`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Material.html)
* π [Python API docs for `Material`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Material)
* π¦ [Rust API docs for `Material`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Material.html)
diff --git a/docs/content/reference/types/datatypes/quaternion.md b/docs/content/reference/types/datatypes/quaternion.md
index 1ba6ed3c658d2..6ecf202a3f45f 100644
--- a/docs/content/reference/types/datatypes/quaternion.md
+++ b/docs/content/reference/types/datatypes/quaternion.md
@@ -12,7 +12,7 @@ datastore as provided, when used in the Viewer Quaternions will always be normal
* xyzw: 4x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Quaternion`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Quaternion.html)
* π [Python API docs for `Quaternion`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Quaternion)
* π¦ [Rust API docs for `Quaternion`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Quaternion.html)
diff --git a/docs/content/reference/types/datatypes/range1d.md b/docs/content/reference/types/datatypes/range1d.md
index 2931f1d0daddb..88fde39b408dc 100644
--- a/docs/content/reference/types/datatypes/range1d.md
+++ b/docs/content/reference/types/datatypes/range1d.md
@@ -9,7 +9,7 @@ A 1D range, specifying a lower and upper bound.
* range: 2x `f64`
-## Api reference links
+## API reference links
* π [C++ API docs for `Range1D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range1D.html?speculative-link)
* π [Python API docs for `Range1D`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.Range1D)
* π¦ [Rust API docs for `Range1D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range1D.html?speculative-link)
diff --git a/docs/content/reference/types/datatypes/range2d.md b/docs/content/reference/types/datatypes/range2d.md
index 09a0310168abe..d72c37639a21a 100644
--- a/docs/content/reference/types/datatypes/range2d.md
+++ b/docs/content/reference/types/datatypes/range2d.md
@@ -10,7 +10,7 @@ An Axis-Aligned Bounding Box in 2D space, implemented as the minimum and maximum
* x_range: [`Range1D`](../datatypes/range1d.md)
* y_range: [`Range1D`](../datatypes/range1d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Range2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Range2D.html?speculative-link)
* π [Python API docs for `Range2D`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.Range2D)
* π¦ [Rust API docs for `Range2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Range2D.html?speculative-link)
diff --git a/docs/content/reference/types/datatypes/rgba32.md b/docs/content/reference/types/datatypes/rgba32.md
index 34670954caa3b..4084ae6b676d6 100644
--- a/docs/content/reference/types/datatypes/rgba32.md
+++ b/docs/content/reference/types/datatypes/rgba32.md
@@ -12,7 +12,7 @@ byte is `R` and the least significant byte is `A`.
* rgba: `u32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Rgba32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Rgba32.html)
* π [Python API docs for `Rgba32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Rgba32)
* π¦ [Rust API docs for `Rgba32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Rgba32.html)
diff --git a/docs/content/reference/types/datatypes/rotation3d.md b/docs/content/reference/types/datatypes/rotation3d.md
index 8ce3cd631cd44..9da0ea2e07081 100644
--- a/docs/content/reference/types/datatypes/rotation3d.md
+++ b/docs/content/reference/types/datatypes/rotation3d.md
@@ -10,7 +10,7 @@ A 3D rotation.
* Quaternion: [`Quaternion`](../datatypes/quaternion.md)
* AxisAngle: [`RotationAxisAngle`](../datatypes/rotation_axis_angle.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Rotation3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Rotation3D.html)
* π [Python API docs for `Rotation3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Rotation3D)
* π¦ [Rust API docs for `Rotation3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Rotation3D.html)
diff --git a/docs/content/reference/types/datatypes/rotation_axis_angle.md b/docs/content/reference/types/datatypes/rotation_axis_angle.md
index d4fad6a093c24..ca1b80b14c5e0 100644
--- a/docs/content/reference/types/datatypes/rotation_axis_angle.md
+++ b/docs/content/reference/types/datatypes/rotation_axis_angle.md
@@ -10,7 +10,7 @@ title: "RotationAxisAngle"
* axis: [`Vec3D`](../datatypes/vec3d.md)
* angle: [`Angle`](../datatypes/angle.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `RotationAxisAngle`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1RotationAxisAngle.html)
* π [Python API docs for `RotationAxisAngle`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.RotationAxisAngle)
* π¦ [Rust API docs for `RotationAxisAngle`](https://docs.rs/rerun/latest/rerun/datatypes/struct.RotationAxisAngle.html)
diff --git a/docs/content/reference/types/datatypes/scale3d.md b/docs/content/reference/types/datatypes/scale3d.md
index fdb2abf8b1534..7304137b4232e 100644
--- a/docs/content/reference/types/datatypes/scale3d.md
+++ b/docs/content/reference/types/datatypes/scale3d.md
@@ -10,7 +10,7 @@ title: "Scale3D"
* ThreeD: [`Vec3D`](../datatypes/vec3d.md)
* Uniform: `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Scale3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Scale3D.html)
* π [Python API docs for `Scale3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Scale3D)
* π¦ [Rust API docs for `Scale3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Scale3D.html)
diff --git a/docs/content/reference/types/datatypes/tensor_buffer.md b/docs/content/reference/types/datatypes/tensor_buffer.md
index 3f1c5cdaa21ef..d976e4b6aff5c 100644
--- a/docs/content/reference/types/datatypes/tensor_buffer.md
+++ b/docs/content/reference/types/datatypes/tensor_buffer.md
@@ -24,7 +24,7 @@ Tensor elements are stored in a contiguous buffer of a single type.
* NV12: list of `u8`
* YUY2: list of `u8`
-## Api reference links
+## API reference links
* π [C++ API docs for `TensorBuffer`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorBuffer.html)
* π [Python API docs for `TensorBuffer`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorBuffer)
* π¦ [Rust API docs for `TensorBuffer`](https://docs.rs/rerun/latest/rerun/datatypes/enum.TensorBuffer.html)
diff --git a/docs/content/reference/types/datatypes/tensor_data.md b/docs/content/reference/types/datatypes/tensor_data.md
index 2f9307b3ebbc0..b5dc2bd1338ad 100644
--- a/docs/content/reference/types/datatypes/tensor_data.md
+++ b/docs/content/reference/types/datatypes/tensor_data.md
@@ -22,7 +22,7 @@ the shape has to be the shape of the decoded image.
* shape: list of [`TensorDimension`](../datatypes/tensor_dimension.md)
* buffer: [`TensorBuffer`](../datatypes/tensor_buffer.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TensorData`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorData.html)
* π [Python API docs for `TensorData`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorData)
* π¦ [Rust API docs for `TensorData`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TensorData.html)
diff --git a/docs/content/reference/types/datatypes/tensor_dimension.md b/docs/content/reference/types/datatypes/tensor_dimension.md
index 45ccd6fc8a9d4..30d3ddd1d250a 100644
--- a/docs/content/reference/types/datatypes/tensor_dimension.md
+++ b/docs/content/reference/types/datatypes/tensor_dimension.md
@@ -10,7 +10,7 @@ A single dimension within a multi-dimensional tensor.
* size: `u64`
* name: `string`
-## Api reference links
+## API reference links
* π [C++ API docs for `TensorDimension`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TensorDimension.html)
* π [Python API docs for `TensorDimension`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TensorDimension)
* π¦ [Rust API docs for `TensorDimension`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TensorDimension.html)
diff --git a/docs/content/reference/types/datatypes/time_int.md b/docs/content/reference/types/datatypes/time_int.md
index c5116424b8b35..993a30d3d05ba 100644
--- a/docs/content/reference/types/datatypes/time_int.md
+++ b/docs/content/reference/types/datatypes/time_int.md
@@ -9,7 +9,7 @@ A 64-bit number describing either nanoseconds OR sequence numbers.
* value: `i64`
-## Api reference links
+## API reference links
* π [C++ API docs for `TimeInt`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeInt.html)
* π [Python API docs for `TimeInt`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TimeInt)
* π¦ [Rust API docs for `TimeInt`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TimeInt.html)
diff --git a/docs/content/reference/types/datatypes/time_range.md b/docs/content/reference/types/datatypes/time_range.md
index ea7d265626c2f..001953ae87f1d 100644
--- a/docs/content/reference/types/datatypes/time_range.md
+++ b/docs/content/reference/types/datatypes/time_range.md
@@ -10,7 +10,7 @@ Visible time range bounds for a specific timeline.
* start: [`TimeRangeBoundary`](../datatypes/time_range_boundary.md)
* end: [`TimeRangeBoundary`](../datatypes/time_range_boundary.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `TimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRange.html?speculative-link)
* π [Python API docs for `TimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.TimeRange)
* π¦ [Rust API docs for `TimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TimeRange.html?speculative-link)
diff --git a/docs/content/reference/types/datatypes/time_range_boundary.md b/docs/content/reference/types/datatypes/time_range_boundary.md
index 77054f31c71ee..1d66d112e7997 100644
--- a/docs/content/reference/types/datatypes/time_range_boundary.md
+++ b/docs/content/reference/types/datatypes/time_range_boundary.md
@@ -11,7 +11,7 @@ Left or right boundary of a time range.
* Absolute: [`TimeInt`](../datatypes/time_int.md)
* Infinite
-## Api reference links
+## API reference links
* π [C++ API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TimeRangeBoundary.html?speculative-link)
* π [Python API docs for `TimeRangeBoundary`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.TimeRangeBoundary)
* π¦ [Rust API docs for `TimeRangeBoundary`](https://docs.rs/rerun/latest/rerun/datatypes/enum.TimeRangeBoundary.html?speculative-link)
diff --git a/docs/content/reference/types/datatypes/transform3d.md b/docs/content/reference/types/datatypes/transform3d.md
index 4f2c325963dbb..f57af30f59781 100644
--- a/docs/content/reference/types/datatypes/transform3d.md
+++ b/docs/content/reference/types/datatypes/transform3d.md
@@ -10,7 +10,7 @@ Representation of a 3D affine transform.
* TranslationAndMat3x3: [`TranslationAndMat3x3`](../datatypes/translation_and_mat3x3.md)
* TranslationRotationScale: [`TranslationRotationScale3D`](../datatypes/translation_rotation_scale3d.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `Transform3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Transform3D.html)
* π [Python API docs for `Transform3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Transform3D)
* π¦ [Rust API docs for `Transform3D`](https://docs.rs/rerun/latest/rerun/datatypes/enum.Transform3D.html)
diff --git a/docs/content/reference/types/datatypes/translation_and_mat3x3.md b/docs/content/reference/types/datatypes/translation_and_mat3x3.md
index d20c636dcd8b7..2b1a85bb33dc1 100644
--- a/docs/content/reference/types/datatypes/translation_and_mat3x3.md
+++ b/docs/content/reference/types/datatypes/translation_and_mat3x3.md
@@ -13,7 +13,7 @@ First applies the matrix, then the translation.
* mat3x3: [`Mat3x3`](../datatypes/mat3x3.md)
* from_parent: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `TranslationAndMat3x3`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TranslationAndMat3x3.html)
* π [Python API docs for `TranslationAndMat3x3`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TranslationAndMat3x3)
* π¦ [Rust API docs for `TranslationAndMat3x3`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TranslationAndMat3x3.html)
diff --git a/docs/content/reference/types/datatypes/translation_rotation_scale3d.md b/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
index eba5e091d906c..88105c886f3e3 100644
--- a/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
+++ b/docs/content/reference/types/datatypes/translation_rotation_scale3d.md
@@ -12,7 +12,7 @@ Representation of an affine transform via separate translation, rotation & scale
* scale: [`Scale3D`](../datatypes/scale3d.md)
* from_parent: `bool`
-## Api reference links
+## API reference links
* π [C++ API docs for `TranslationRotationScale3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1TranslationRotationScale3D.html)
* π [Python API docs for `TranslationRotationScale3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.TranslationRotationScale3D)
* π¦ [Rust API docs for `TranslationRotationScale3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.TranslationRotationScale3D.html)
diff --git a/docs/content/reference/types/datatypes/uint32.md b/docs/content/reference/types/datatypes/uint32.md
index 855d772c3439c..b319eb3cf62e5 100644
--- a/docs/content/reference/types/datatypes/uint32.md
+++ b/docs/content/reference/types/datatypes/uint32.md
@@ -9,7 +9,7 @@ A 32bit unsigned integer.
* value: `u32`
-## Api reference links
+## API reference links
* π [C++ API docs for `UInt32`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UInt32.html)
* π [Python API docs for `UInt32`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UInt32)
* π¦ [Rust API docs for `UInt32`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UInt32.html)
diff --git a/docs/content/reference/types/datatypes/uint64.md b/docs/content/reference/types/datatypes/uint64.md
index 2651956b8f44c..e5394955e1b80 100644
--- a/docs/content/reference/types/datatypes/uint64.md
+++ b/docs/content/reference/types/datatypes/uint64.md
@@ -9,7 +9,7 @@ A 64bit unsigned integer.
* value: `u64`
-## Api reference links
+## API reference links
* π [C++ API docs for `UInt64`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UInt64.html)
* π [Python API docs for `UInt64`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UInt64)
* π¦ [Rust API docs for `UInt64`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UInt64.html)
diff --git a/docs/content/reference/types/datatypes/utf8.md b/docs/content/reference/types/datatypes/utf8.md
index ef1896fd32e87..a4ff80b923960 100644
--- a/docs/content/reference/types/datatypes/utf8.md
+++ b/docs/content/reference/types/datatypes/utf8.md
@@ -9,7 +9,7 @@ A string of text, encoded as UTF-8.
* value: `string`
-## Api reference links
+## API reference links
* π [C++ API docs for `Utf8`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Utf8.html)
* π [Python API docs for `Utf8`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Utf8)
* π¦ [Rust API docs for `Utf8`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Utf8.html)
diff --git a/docs/content/reference/types/datatypes/uuid.md b/docs/content/reference/types/datatypes/uuid.md
index 604cbd898b204..63229526687b9 100644
--- a/docs/content/reference/types/datatypes/uuid.md
+++ b/docs/content/reference/types/datatypes/uuid.md
@@ -9,7 +9,7 @@ A 16-byte UUID.
* bytes: 16x `u8`
-## Api reference links
+## API reference links
* π [C++ API docs for `Uuid`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Uuid.html)
* π [Python API docs for `Uuid`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Uuid)
* π¦ [Rust API docs for `Uuid`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Uuid.html)
diff --git a/docs/content/reference/types/datatypes/uvec2d.md b/docs/content/reference/types/datatypes/uvec2d.md
index 10dafc71f8b0e..cd06607667ee8 100644
--- a/docs/content/reference/types/datatypes/uvec2d.md
+++ b/docs/content/reference/types/datatypes/uvec2d.md
@@ -9,7 +9,7 @@ A uint32 vector in 2D space.
* xy: 2x `u32`
-## Api reference links
+## API reference links
* π [C++ API docs for `UVec2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec2D.html)
* π [Python API docs for `UVec2D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec2D)
* π¦ [Rust API docs for `UVec2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec2D.html)
diff --git a/docs/content/reference/types/datatypes/uvec3d.md b/docs/content/reference/types/datatypes/uvec3d.md
index dd0b9789a5a54..2d6664faf4cc0 100644
--- a/docs/content/reference/types/datatypes/uvec3d.md
+++ b/docs/content/reference/types/datatypes/uvec3d.md
@@ -9,7 +9,7 @@ A uint32 vector in 3D space.
* xyz: 3x `u32`
-## Api reference links
+## API reference links
* π [C++ API docs for `UVec3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec3D.html)
* π [Python API docs for `UVec3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec3D)
* π¦ [Rust API docs for `UVec3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec3D.html)
diff --git a/docs/content/reference/types/datatypes/uvec4d.md b/docs/content/reference/types/datatypes/uvec4d.md
index 2b6522ea2faa7..f8a4c7ac59010 100644
--- a/docs/content/reference/types/datatypes/uvec4d.md
+++ b/docs/content/reference/types/datatypes/uvec4d.md
@@ -9,7 +9,7 @@ A uint vector in 4D space.
* xyzw: 4x `u32`
-## Api reference links
+## API reference links
* π [C++ API docs for `UVec4D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1UVec4D.html)
* π [Python API docs for `UVec4D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.UVec4D)
* π¦ [Rust API docs for `UVec4D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.UVec4D.html)
diff --git a/docs/content/reference/types/datatypes/vec2d.md b/docs/content/reference/types/datatypes/vec2d.md
index a50b778904242..165d5954c0fb4 100644
--- a/docs/content/reference/types/datatypes/vec2d.md
+++ b/docs/content/reference/types/datatypes/vec2d.md
@@ -9,7 +9,7 @@ A vector in 2D space.
* xy: 2x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Vec2D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec2D.html)
* π [Python API docs for `Vec2D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec2D)
* π¦ [Rust API docs for `Vec2D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec2D.html)
diff --git a/docs/content/reference/types/datatypes/vec3d.md b/docs/content/reference/types/datatypes/vec3d.md
index 2b7ae8f316d16..74de681c5b2c4 100644
--- a/docs/content/reference/types/datatypes/vec3d.md
+++ b/docs/content/reference/types/datatypes/vec3d.md
@@ -9,7 +9,7 @@ A vector in 3D space.
* xyz: 3x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Vec3D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec3D.html)
* π [Python API docs for `Vec3D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec3D)
* π¦ [Rust API docs for `Vec3D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec3D.html)
diff --git a/docs/content/reference/types/datatypes/vec4d.md b/docs/content/reference/types/datatypes/vec4d.md
index 8492adc6fe26c..5025b9bd90693 100644
--- a/docs/content/reference/types/datatypes/vec4d.md
+++ b/docs/content/reference/types/datatypes/vec4d.md
@@ -9,7 +9,7 @@ A vector in 4D space.
* xyzw: 4x `f32`
-## Api reference links
+## API reference links
* π [C++ API docs for `Vec4D`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1Vec4D.html)
* π [Python API docs for `Vec4D`](https://ref.rerun.io/docs/python/stable/common/datatypes#rerun.datatypes.Vec4D)
* π¦ [Rust API docs for `Vec4D`](https://docs.rs/rerun/latest/rerun/datatypes/struct.Vec4D.html)
diff --git a/docs/content/reference/types/datatypes/visible_time_range.md b/docs/content/reference/types/datatypes/visible_time_range.md
index ae0122438f447..b57344fe7345b 100644
--- a/docs/content/reference/types/datatypes/visible_time_range.md
+++ b/docs/content/reference/types/datatypes/visible_time_range.md
@@ -10,7 +10,7 @@ Visible time range bounds for a specific timeline.
* timeline: [`Utf8`](../datatypes/utf8.md)
* range: [`TimeRange`](../datatypes/time_range.md)
-## Api reference links
+## API reference links
* π [C++ API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/cpp/stable/structrerun_1_1datatypes_1_1VisibleTimeRange.html?speculative-link)
* π [Python API docs for `VisibleTimeRange`](https://ref.rerun.io/docs/python/stable/common/datatypes?speculative-link#rerun.datatypes.VisibleTimeRange)
* π¦ [Rust API docs for `VisibleTimeRange`](https://docs.rs/rerun/latest/rerun/datatypes/struct.VisibleTimeRange.html?speculative-link)
diff --git a/docs/content/reference/types/views/bar_chart_view.md b/docs/content/reference/types/views/bar_chart_view.md
index 51171f094174c..deff17a95c12b 100644
--- a/docs/content/reference/types/views/bar_chart_view.md
+++ b/docs/content/reference/types/views/bar_chart_view.md
@@ -6,7 +6,7 @@ title: "BarChartView"
A bar chart view.
-## Api reference links
+## API reference links
* π [Python API docs for `BarChartView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.BarChartView)
## Example
diff --git a/docs/content/reference/types/views/spatial2d_view.md b/docs/content/reference/types/views/spatial2d_view.md
index 463ef2947b3a2..56286fc32bfef 100644
--- a/docs/content/reference/types/views/spatial2d_view.md
+++ b/docs/content/reference/types/views/spatial2d_view.md
@@ -23,7 +23,7 @@ Configures which range on each timeline is shown by this view (unless specified
If not specified, the default is to show the latest state of each component.
If a timeline is specified more than once, the first entry will be used.
-## Api reference links
+## API reference links
* π [Python API docs for `Spatial2DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.Spatial2DView)
## Example
diff --git a/docs/content/reference/types/views/spatial3d_view.md b/docs/content/reference/types/views/spatial3d_view.md
index 637b01099b996..347c247b3ca27 100644
--- a/docs/content/reference/types/views/spatial3d_view.md
+++ b/docs/content/reference/types/views/spatial3d_view.md
@@ -18,7 +18,7 @@ Configures which range on each timeline is shown by this view (unless specified
If not specified, the default is to show the latest state of each component.
If a timeline is specified more than once, the first entry will be used.
-## Api reference links
+## API reference links
* π [Python API docs for `Spatial3DView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.Spatial3DView)
## Example
diff --git a/docs/content/reference/types/views/tensor_view.md b/docs/content/reference/types/views/tensor_view.md
index 4bfea438bbfc2..1bb329bd85c3f 100644
--- a/docs/content/reference/types/views/tensor_view.md
+++ b/docs/content/reference/types/views/tensor_view.md
@@ -6,7 +6,7 @@ title: "TensorView"
A tensor view.
-## Api reference links
+## API reference links
* π [Python API docs for `TensorView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TensorView)
## Example
diff --git a/docs/content/reference/types/views/text_document_view.md b/docs/content/reference/types/views/text_document_view.md
index fca3005d059e6..f4fe3d92105b8 100644
--- a/docs/content/reference/types/views/text_document_view.md
+++ b/docs/content/reference/types/views/text_document_view.md
@@ -6,7 +6,7 @@ title: "TextDocumentView"
A text document view.
-## Api reference links
+## API reference links
* π [Python API docs for `TextDocumentView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TextDocumentView)
## Example
diff --git a/docs/content/reference/types/views/text_log_view.md b/docs/content/reference/types/views/text_log_view.md
index d16dced194bb6..da2c829b76e01 100644
--- a/docs/content/reference/types/views/text_log_view.md
+++ b/docs/content/reference/types/views/text_log_view.md
@@ -6,7 +6,7 @@ title: "TextLogView"
A text log view.
-## Api reference links
+## API reference links
* π [Python API docs for `TextLogView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TextLogView)
## Example
diff --git a/docs/content/reference/types/views/time_series_view.md b/docs/content/reference/types/views/time_series_view.md
index 186ccb312aba8..ee72f847aede4 100644
--- a/docs/content/reference/types/views/time_series_view.md
+++ b/docs/content/reference/types/views/time_series_view.md
@@ -23,7 +23,7 @@ Configures which range on each timeline is shown by this view (unless specified
If not specified, the default is to show the entire timeline.
If a timeline is specified more than once, the first entry will be used.
-## Api reference links
+## API reference links
* π [Python API docs for `TimeSeriesView`](https://ref.rerun.io/docs/python/stable/common/blueprint_views?speculative-link#rerun.blueprint.views.TimeSeriesView)
## Example
From 77e15a2aa787bd3fc65df6414a82b26718fd7f42 Mon Sep 17 00:00:00 2001
From: Antoine Beyeler <49431240+abey79@users.noreply.github.com>
Date: Wed, 15 May 2024 11:04:16 +0200
Subject: [PATCH 09/40] Fix broken drag and drop (#6329)
### What
Fix drag and drop which was broken by #6305. Rather ugly patch, but
legacy list item will be removed altogether very soon.
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/{{pr.number}}?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/{{pr.number}}?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/{{pr.number}})
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
crates/re_ui/src/list_item.rs | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/crates/re_ui/src/list_item.rs b/crates/re_ui/src/list_item.rs
index 407556ee6e06a..fa3d4c713753a 100644
--- a/crates/re_ui/src/list_item.rs
+++ b/crates/re_ui/src/list_item.rs
@@ -440,12 +440,15 @@ impl<'a> ListItem<'a> {
let bg_rect =
egui::Rect::from_x_y_ranges(crate::full_span::get_full_span(ui), rect.y_range());
- // we want to be able to select/hover the item across its full span, so we sense that and
- // update the response accordingly.
+ // we want to be able to select/hover/drag the item across its full span, so we sense that
+ // and update the response accordingly.
let full_span_response = ui.interact(bg_rect, response.id.with("full_span_check"), sense);
response.clicked = full_span_response.clicked;
response.contains_pointer = full_span_response.contains_pointer;
response.hovered = full_span_response.hovered;
+ response.drag_started = full_span_response.drag_started;
+ response.dragged = full_span_response.dragged;
+ response.drag_stopped = full_span_response.drag_stopped;
// override_hover should not affect the returned response
let mut style_response = response.clone();
From bf84f3c5cbe3cb502b9e12aebe873b52ef540d04 Mon Sep 17 00:00:00 2001
From: Emil Ernerfeldt
Date: Wed, 15 May 2024 11:05:07 +0200
Subject: [PATCH 10/40] Set a minimum version of pillow in
`rerun_py/pyproject.toml` (#6327)
### What
A user reported that
``` py
rr.log("foo", rr.Image(img).compress(jpeg_quality=95))
```
caused this warning:
> RerunWarning: Image compression: TypeError(open() got an unexpected
keyword argument 'formats')
I suspect this line:
https://github.com/rerun-io/rerun/blob/3805781ee53dec571bfef0b0c44d95e61fc690ca/rerun_py/rerun_sdk/rerun/_image.py#L203
Which indicate a version mismatch of pillow.
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [ ] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6327?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6327?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6327)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
examples/python/raw_mesh/pyproject.toml | 8 +-
pixi.lock | 4346 ++++++++++++-----------
rerun_py/pyproject.toml | 2 +-
3 files changed, 2183 insertions(+), 2173 deletions(-)
diff --git a/examples/python/raw_mesh/pyproject.toml b/examples/python/raw_mesh/pyproject.toml
index 58e852e0ea8b6..45bdb106c5eae 100644
--- a/examples/python/raw_mesh/pyproject.toml
+++ b/examples/python/raw_mesh/pyproject.toml
@@ -2,13 +2,7 @@
name = "raw_mesh"
version = "0.1.0"
readme = "README.md"
-dependencies = [
- "numpy",
- "requests>=2.31,<3",
- "rerun-sdk",
- "trimesh==3.15.2",
- "pillow",
-]
+dependencies = ["numpy", "requests>=2.31,<3", "rerun-sdk", "trimesh==3.15.2"]
[project.scripts]
raw_mesh = "raw_mesh.__main__:main"
diff --git a/pixi.lock b/pixi.lock
index f22f4891948ce..30182f6e7c8b0 100644
--- a/pixi.lock
+++ b/pixi.lock
@@ -1881,7 +1881,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/1e/d4/22c2909b5a0b36e69471e699d673c2985f7691ca29870798a29e0a3d0e2b/peewee-3.17.5.tar.gz
- pypi: https://files.pythonhosted.org/packages/81/ff/ad3c942d865f9e45ce84eeb31795e6d4d94e1f1eea51026d5154028510d7/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
- - pypi: https://files.pythonhosted.org/packages/b0/15/1691fa5aaddc0c4ea4901c26f6137c29d5f6673596fe960a0340e8c308e1/platformdirs-4.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl
@@ -1889,7 +1889,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/30/93/4d02ac696f16a2ad8fff0e78be28ab4ec0b990d2b3569fe07e27a258cb02/pyglet-2.0.15-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/38/d7/0b8e35cb3ff69dd981e358e72e0a5632f847d4bd61876be04518cb4e075a/pygltflib-1.16.2.tar.gz
- pypi: https://files.pythonhosted.org/packages/bf/06/18c0e17eb245b7caeb861f2ff747adb0575500183b6ec4282d5350d29e9f/pynndescent-0.5.12-py3-none-any.whl
- - pypi: https://files.pythonhosted.org/packages/ce/33/ef0e3b40a3f4cbfcfb93511652673fb19d07bafac0611f01f6237d1978ed/PyOpenGL-3.1.0.zip
+ - pypi: https://files.pythonhosted.org/packages/9c/1d/4544708aaa89f26c97cc09450bb333a23724a320923e74d73e028b3560f9/PyOpenGL-3.1.0.tar.gz
- pypi: https://files.pythonhosted.org/packages/a8/26/b67fe94cb53c489c5ccaed118f257a5100e7775071515942c9f45d8cd40f/pyopf-1.1.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/28/88/174c28b9d3d03cf6d8edb6f637458f30f1cf1a2bd7a617cbd9dadb1740f6/pyrender-0.1.45-py3-none-any.whl
@@ -2040,7 +2040,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/1e/d4/22c2909b5a0b36e69471e699d673c2985f7691ca29870798a29e0a3d0e2b/peewee-3.17.5.tar.gz
- pypi: https://files.pythonhosted.org/packages/e5/51/e4b35e394b4e5ca24983e50361a1db3d7da05b1758074f9c4f5b4be4b22a/pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl
- - pypi: https://files.pythonhosted.org/packages/b0/15/1691fa5aaddc0c4ea4901c26f6137c29d5f6673596fe960a0340e8c308e1/platformdirs-4.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl
- pypi: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl
@@ -2048,7 +2048,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/30/93/4d02ac696f16a2ad8fff0e78be28ab4ec0b990d2b3569fe07e27a258cb02/pyglet-2.0.15-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/38/d7/0b8e35cb3ff69dd981e358e72e0a5632f847d4bd61876be04518cb4e075a/pygltflib-1.16.2.tar.gz
- pypi: https://files.pythonhosted.org/packages/bf/06/18c0e17eb245b7caeb861f2ff747adb0575500183b6ec4282d5350d29e9f/pynndescent-0.5.12-py3-none-any.whl
- - pypi: https://files.pythonhosted.org/packages/ce/33/ef0e3b40a3f4cbfcfb93511652673fb19d07bafac0611f01f6237d1978ed/PyOpenGL-3.1.0.zip
+ - pypi: https://files.pythonhosted.org/packages/9c/1d/4544708aaa89f26c97cc09450bb333a23724a320923e74d73e028b3560f9/PyOpenGL-3.1.0.tar.gz
- pypi: https://files.pythonhosted.org/packages/a8/26/b67fe94cb53c489c5ccaed118f257a5100e7775071515942c9f45d8cd40f/pyopf-1.1.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/28/88/174c28b9d3d03cf6d8edb6f637458f30f1cf1a2bd7a617cbd9dadb1740f6/pyrender-0.1.45-py3-none-any.whl
@@ -2198,7 +2198,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/1e/d4/22c2909b5a0b36e69471e699d673c2985f7691ca29870798a29e0a3d0e2b/peewee-3.17.5.tar.gz
- pypi: https://files.pythonhosted.org/packages/00/5c/7633f291def20082bad31b844fe5ed07742aae8504e4cfe2f331ee727178/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl
- - pypi: https://files.pythonhosted.org/packages/b0/15/1691fa5aaddc0c4ea4901c26f6137c29d5f6673596fe960a0340e8c308e1/platformdirs-4.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl
- pypi: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl
@@ -2206,7 +2206,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/30/93/4d02ac696f16a2ad8fff0e78be28ab4ec0b990d2b3569fe07e27a258cb02/pyglet-2.0.15-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/38/d7/0b8e35cb3ff69dd981e358e72e0a5632f847d4bd61876be04518cb4e075a/pygltflib-1.16.2.tar.gz
- pypi: https://files.pythonhosted.org/packages/bf/06/18c0e17eb245b7caeb861f2ff747adb0575500183b6ec4282d5350d29e9f/pynndescent-0.5.12-py3-none-any.whl
- - pypi: https://files.pythonhosted.org/packages/ce/33/ef0e3b40a3f4cbfcfb93511652673fb19d07bafac0611f01f6237d1978ed/PyOpenGL-3.1.0.zip
+ - pypi: https://files.pythonhosted.org/packages/9c/1d/4544708aaa89f26c97cc09450bb333a23724a320923e74d73e028b3560f9/PyOpenGL-3.1.0.tar.gz
- pypi: https://files.pythonhosted.org/packages/a8/26/b67fe94cb53c489c5ccaed118f257a5100e7775071515942c9f45d8cd40f/pyopf-1.1.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/28/88/174c28b9d3d03cf6d8edb6f637458f30f1cf1a2bd7a617cbd9dadb1740f6/pyrender-0.1.45-py3-none-any.whl
@@ -2368,7 +2368,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/cc/20/ff623b09d963f88bfde16306a54e12ee5ea43e9b597108672ff3a408aad6/pathspec-0.12.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/1e/d4/22c2909b5a0b36e69471e699d673c2985f7691ca29870798a29e0a3d0e2b/peewee-3.17.5.tar.gz
- pypi: https://files.pythonhosted.org/packages/0a/16/c83877524c47976f16703d2e05c363244bc1e60ab439e078b3cd046d07db/pillow-10.3.0-cp311-cp311-win_amd64.whl
- - pypi: https://files.pythonhosted.org/packages/b0/15/1691fa5aaddc0c4ea4901c26f6137c29d5f6673596fe960a0340e8c308e1/platformdirs-4.2.1-py3-none-any.whl
+ - pypi: https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/8d/14/619e24a4c70df2901e1f4dbc50a6291eb63a759172558df326347dce1f0d/protobuf-3.20.3-py2.py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl
- pypi: https://files.pythonhosted.org/packages/13/a3/a812df4e2dd5696d1f351d58b8fe16a405b234ad2886a0dab9183fb78109/pycparser-2.22-py3-none-any.whl
@@ -2376,7 +2376,7 @@ environments:
- pypi: https://files.pythonhosted.org/packages/30/93/4d02ac696f16a2ad8fff0e78be28ab4ec0b990d2b3569fe07e27a258cb02/pyglet-2.0.15-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/38/d7/0b8e35cb3ff69dd981e358e72e0a5632f847d4bd61876be04518cb4e075a/pygltflib-1.16.2.tar.gz
- pypi: https://files.pythonhosted.org/packages/bf/06/18c0e17eb245b7caeb861f2ff747adb0575500183b6ec4282d5350d29e9f/pynndescent-0.5.12-py3-none-any.whl
- - pypi: https://files.pythonhosted.org/packages/ce/33/ef0e3b40a3f4cbfcfb93511652673fb19d07bafac0611f01f6237d1978ed/PyOpenGL-3.1.0.zip
+ - pypi: https://files.pythonhosted.org/packages/9c/1d/4544708aaa89f26c97cc09450bb333a23724a320923e74d73e028b3560f9/PyOpenGL-3.1.0.tar.gz
- pypi: https://files.pythonhosted.org/packages/a8/26/b67fe94cb53c489c5ccaed118f257a5100e7775071515942c9f45d8cd40f/pyopf-1.1.1-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/9d/ea/6d76df31432a0e6fdf81681a895f009a4bb47b3c39036db3e1b528191d52/pyparsing-3.1.2-py3-none-any.whl
- pypi: https://files.pythonhosted.org/packages/28/88/174c28b9d3d03cf6d8edb6f637458f30f1cf1a2bd7a617cbd9dadb1740f6/pyrender-0.1.45-py3-none-any.whl
@@ -3407,25 +3407,25 @@ packages:
url: https://files.pythonhosted.org/packages/e9/bb/1edd2c836071e91d2bd331b9542bbd592e23d1474645b9c6fd56232caace/accelerate-0.30.1-py3-none-any.whl
sha256: 8dd4edd532a4dac72558c5fe6fe8cb70d0c8ec9e8733f48db97d51ee41cbe763
requires_dist:
- - numpy >=1.17
- - packaging >=20.0
+ - numpy>=1.17
+ - packaging>=20.0
- psutil
- pyyaml
- - torch >=1.10.0
+ - torch>=1.10.0
- huggingface-hub
- - safetensors >=0.3.1
- - deepspeed <=0.14.0 ; extra == 'deepspeed'
- - black ~=23.1 ; extra == 'dev'
- - hf-doc-builder >=0.3.0 ; extra == 'dev'
- - ruff ~=0.2.1 ; extra == 'dev'
- - pytest <=8.0.0, >=7.2.0 ; extra == 'dev'
+ - safetensors>=0.3.1
+ - deepspeed<=0.14.0 ; extra == 'deepspeed'
+ - black~=23.1 ; extra == 'dev'
+ - hf-doc-builder>=0.3.0 ; extra == 'dev'
+ - ruff~=0.2.1 ; extra == 'dev'
+ - pytest<=8.0.0,>=7.2.0 ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- pytest-subtests ; extra == 'dev'
- parameterized ; extra == 'dev'
- datasets ; extra == 'dev'
- diffusers ; extra == 'dev'
- evaluate ; extra == 'dev'
- - torchpippy >=0.2.0 ; extra == 'dev'
+ - torchpippy>=0.2.0 ; extra == 'dev'
- transformers ; extra == 'dev'
- scipy ; extra == 'dev'
- scikit-learn ; extra == 'dev'
@@ -3433,22 +3433,22 @@ packages:
- bitsandbytes ; extra == 'dev'
- timm ; extra == 'dev'
- rich ; extra == 'dev'
- - black ~=23.1 ; extra == 'quality'
- - hf-doc-builder >=0.3.0 ; extra == 'quality'
- - ruff ~=0.2.1 ; extra == 'quality'
+ - black~=23.1 ; extra == 'quality'
+ - hf-doc-builder>=0.3.0 ; extra == 'quality'
+ - ruff~=0.2.1 ; extra == 'quality'
- rich ; extra == 'rich'
- sagemaker ; extra == 'sagemaker'
- datasets ; extra == 'test_dev'
- diffusers ; extra == 'test_dev'
- evaluate ; extra == 'test_dev'
- - torchpippy >=0.2.0 ; extra == 'test_dev'
+ - torchpippy>=0.2.0 ; extra == 'test_dev'
- transformers ; extra == 'test_dev'
- scipy ; extra == 'test_dev'
- scikit-learn ; extra == 'test_dev'
- tqdm ; extra == 'test_dev'
- bitsandbytes ; extra == 'test_dev'
- timm ; extra == 'test_dev'
- - pytest <=8.0.0, >=7.2.0 ; extra == 'test_prod'
+ - pytest<=8.0.0,>=7.2.0 ; extra == 'test_prod'
- pytest-xdist ; extra == 'test_prod'
- pytest-subtests ; extra == 'test_prod'
- parameterized ; extra == 'test_prod'
@@ -3456,14 +3456,14 @@ packages:
- comet-ml ; extra == 'test_trackers'
- tensorboard ; extra == 'test_trackers'
- dvclive ; extra == 'test_trackers'
- - pytest <=8.0.0, >=7.2.0 ; extra == 'testing'
+ - pytest<=8.0.0,>=7.2.0 ; extra == 'testing'
- pytest-xdist ; extra == 'testing'
- pytest-subtests ; extra == 'testing'
- parameterized ; extra == 'testing'
- datasets ; extra == 'testing'
- diffusers ; extra == 'testing'
- evaluate ; extra == 'testing'
- - torchpippy >=0.2.0 ; extra == 'testing'
+ - torchpippy>=0.2.0 ; extra == 'testing'
- transformers ; extra == 'testing'
- scipy ; extra == 'testing'
- scikit-learn ; extra == 'testing'
@@ -3656,7 +3656,7 @@ packages:
requires_dist:
- importlib-metadata ; python_version < '3.8'
- attrs[tests] ; extra == 'cov'
- - coverage[toml] >=5.3 ; extra == 'cov'
+ - coverage[toml]>=5.3 ; extra == 'cov'
- attrs[tests] ; extra == 'dev'
- pre-commit ; extra == 'dev'
- furo ; extra == 'docs'
@@ -3668,14 +3668,14 @@ packages:
- zope-interface ; extra == 'docs'
- attrs[tests-no-zope] ; extra == 'tests'
- zope-interface ; extra == 'tests'
- - mypy >=1.6 ; (platform_python_implementation == 'CPython' and python_version >= '3.8') and extra == 'tests-mypy'
+ - mypy>=1.6 ; (platform_python_implementation == 'CPython' and python_version >= '3.8') and extra == 'tests-mypy'
- pytest-mypy-plugins ; (platform_python_implementation == 'CPython' and python_version >= '3.8') and extra == 'tests-mypy'
- attrs[tests-mypy] ; extra == 'tests-no-zope'
- cloudpickle ; platform_python_implementation == 'CPython' and extra == 'tests-no-zope'
- hypothesis ; extra == 'tests-no-zope'
- pympler ; extra == 'tests-no-zope'
- pytest-xdist[psutil] ; extra == 'tests-no-zope'
- - pytest >=4.3.0 ; extra == 'tests-no-zope'
+ - pytest>=4.3.0 ; extra == 'tests-no-zope'
requires_python: '>=3.7'
- kind: conda
name: attrs
@@ -6892,7 +6892,7 @@ packages:
url: https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl
sha256: b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed
requires_dist:
- - soupsieve >1.2
+ - soupsieve>1.2
- cchardet ; extra == 'cchardet'
- chardet ; extra == 'chardet'
- charset-normalizer ; extra == 'charset-normalizer'
@@ -7077,45 +7077,25 @@ packages:
license_family: BSD
size: 28888
timestamp: 1710259827989
-- kind: pypi
- name: black
- version: 24.4.2
- url: https://files.pythonhosted.org/packages/9b/f7/591d601c3046ceb65b97291dfe87fa25124cffac3d97aaaba89d0f0d7bdf/black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474
- requires_dist:
- - click >=8.0.0
- - mypy-extensions >=0.4.3
- - packaging >=22.0
- - pathspec >=0.9.0
- - platformdirs >=2
- - tomli >=1.1.0 ; python_version < '3.11'
- - typing-extensions >=4.0.1 ; python_version < '3.11'
- - colorama >=0.4.3 ; extra == 'colorama'
- - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
- - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
- - ipython >=7.8.0 ; extra == 'jupyter'
- - tokenize-rt >=3.2.0 ; extra == 'jupyter'
- - uvloop >=0.15.2 ; extra == 'uvloop'
- requires_python: '>=3.8'
- kind: pypi
name: black
version: 24.4.2
url: https://files.pythonhosted.org/packages/c5/48/34176b522e8cff4620a5d96c2e323ff2413f574870eb25efa8025885e028/black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb
requires_dist:
- - click >=8.0.0
- - mypy-extensions >=0.4.3
- - packaging >=22.0
- - pathspec >=0.9.0
- - platformdirs >=2
- - tomli >=1.1.0 ; python_version < '3.11'
- - typing-extensions >=4.0.1 ; python_version < '3.11'
- - colorama >=0.4.3 ; extra == 'colorama'
- - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
- - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
- - ipython >=7.8.0 ; extra == 'jupyter'
- - tokenize-rt >=3.2.0 ; extra == 'jupyter'
- - uvloop >=0.15.2 ; extra == 'uvloop'
+ - click>=8.0.0
+ - mypy-extensions>=0.4.3
+ - packaging>=22.0
+ - pathspec>=0.9.0
+ - platformdirs>=2
+ - tomli>=1.1.0 ; python_version < '3.11'
+ - typing-extensions>=4.0.1 ; python_version < '3.11'
+ - colorama>=0.4.3 ; extra == 'colorama'
+ - aiohttp!=3.9.0,>=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
+ - aiohttp>=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
+ - ipython>=7.8.0 ; extra == 'jupyter'
+ - tokenize-rt>=3.2.0 ; extra == 'jupyter'
+ - uvloop>=0.15.2 ; extra == 'uvloop'
requires_python: '>=3.8'
- kind: pypi
name: black
@@ -7123,19 +7103,19 @@ packages:
url: https://files.pythonhosted.org/packages/74/ce/e8eec1a77edbfa982bee3b5460dcdd4fe0e4e3165fc15d8ec44d04da7776/black-24.4.2-cp311-cp311-win_amd64.whl
sha256: 7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1
requires_dist:
- - click >=8.0.0
- - mypy-extensions >=0.4.3
- - packaging >=22.0
- - pathspec >=0.9.0
- - platformdirs >=2
- - tomli >=1.1.0 ; python_version < '3.11'
- - typing-extensions >=4.0.1 ; python_version < '3.11'
- - colorama >=0.4.3 ; extra == 'colorama'
- - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
- - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
- - ipython >=7.8.0 ; extra == 'jupyter'
- - tokenize-rt >=3.2.0 ; extra == 'jupyter'
- - uvloop >=0.15.2 ; extra == 'uvloop'
+ - click>=8.0.0
+ - mypy-extensions>=0.4.3
+ - packaging>=22.0
+ - pathspec>=0.9.0
+ - platformdirs>=2
+ - tomli>=1.1.0 ; python_version < '3.11'
+ - typing-extensions>=4.0.1 ; python_version < '3.11'
+ - colorama>=0.4.3 ; extra == 'colorama'
+ - aiohttp!=3.9.0,>=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
+ - aiohttp>=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
+ - ipython>=7.8.0 ; extra == 'jupyter'
+ - tokenize-rt>=3.2.0 ; extra == 'jupyter'
+ - uvloop>=0.15.2 ; extra == 'uvloop'
requires_python: '>=3.8'
- kind: pypi
name: black
@@ -7143,19 +7123,39 @@ packages:
url: https://files.pythonhosted.org/packages/c9/17/5e0036b265bbf6bc44970d93d48febcbc03701b671db3c9603fd43ebc616/black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl
sha256: bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c
requires_dist:
- - click >=8.0.0
- - mypy-extensions >=0.4.3
- - packaging >=22.0
- - pathspec >=0.9.0
- - platformdirs >=2
- - tomli >=1.1.0 ; python_version < '3.11'
- - typing-extensions >=4.0.1 ; python_version < '3.11'
- - colorama >=0.4.3 ; extra == 'colorama'
- - aiohttp !=3.9.0, >=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
- - aiohttp >=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
- - ipython >=7.8.0 ; extra == 'jupyter'
- - tokenize-rt >=3.2.0 ; extra == 'jupyter'
- - uvloop >=0.15.2 ; extra == 'uvloop'
+ - click>=8.0.0
+ - mypy-extensions>=0.4.3
+ - packaging>=22.0
+ - pathspec>=0.9.0
+ - platformdirs>=2
+ - tomli>=1.1.0 ; python_version < '3.11'
+ - typing-extensions>=4.0.1 ; python_version < '3.11'
+ - colorama>=0.4.3 ; extra == 'colorama'
+ - aiohttp!=3.9.0,>=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
+ - aiohttp>=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
+ - ipython>=7.8.0 ; extra == 'jupyter'
+ - tokenize-rt>=3.2.0 ; extra == 'jupyter'
+ - uvloop>=0.15.2 ; extra == 'uvloop'
+ requires_python: '>=3.8'
+- kind: pypi
+ name: black
+ version: 24.4.2
+ url: https://files.pythonhosted.org/packages/9b/f7/591d601c3046ceb65b97291dfe87fa25124cffac3d97aaaba89d0f0d7bdf/black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474
+ requires_dist:
+ - click>=8.0.0
+ - mypy-extensions>=0.4.3
+ - packaging>=22.0
+ - pathspec>=0.9.0
+ - platformdirs>=2
+ - tomli>=1.1.0 ; python_version < '3.11'
+ - typing-extensions>=4.0.1 ; python_version < '3.11'
+ - colorama>=0.4.3 ; extra == 'colorama'
+ - aiohttp!=3.9.0,>=3.7.4 ; (sys_platform == 'win32' and implementation_name == 'pypy') and extra == 'd'
+ - aiohttp>=3.7.4 ; (sys_platform != 'win32' or implementation_name != 'pypy') and extra == 'd'
+ - ipython>=7.8.0 ; extra == 'jupyter'
+ - tokenize-rt>=3.2.0 ; extra == 'jupyter'
+ - uvloop>=0.15.2 ; extra == 'uvloop'
requires_python: '>=3.8'
- kind: pypi
name: blueprint
@@ -7759,16 +7759,16 @@ packages:
- kind: pypi
name: cffi
version: 1.16.0
- url: https://files.pythonhosted.org/packages/18/6c/0406611f3d5aadf4c5b08f6c095d874aed8dfc2d3a19892707d72536d5dc/cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl
- sha256: 1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417
+ url: https://files.pythonhosted.org/packages/95/c8/ce05a6cba2bec12d4b28285e66c53cc88dd7385b102dea7231da3b74cfef/cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404
requires_dist:
- pycparser
requires_python: '>=3.8'
- kind: pypi
name: cffi
version: 1.16.0
- url: https://files.pythonhosted.org/packages/5a/c7/694814b3757878b29da39bc2f0cf9d20295f4c1e0a0bde7971708d5f23f8/cffi-1.16.0-cp311-cp311-win_amd64.whl
- sha256: db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba
+ url: https://files.pythonhosted.org/packages/b5/23/ea84dd4985649fcc179ba3a6c9390412e924d20b0244dc71a6545788f5a2/cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
+ sha256: d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936
requires_dist:
- pycparser
requires_python: '>=3.8'
@@ -7783,30 +7783,30 @@ packages:
- kind: pypi
name: cffi
version: 1.16.0
- url: https://files.pythonhosted.org/packages/b5/23/ea84dd4985649fcc179ba3a6c9390412e924d20b0244dc71a6545788f5a2/cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- sha256: d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936
+ url: https://files.pythonhosted.org/packages/18/6c/0406611f3d5aadf4c5b08f6c095d874aed8dfc2d3a19892707d72536d5dc/cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: 1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417
requires_dist:
- pycparser
requires_python: '>=3.8'
- kind: pypi
name: cffi
version: 1.16.0
- url: https://files.pythonhosted.org/packages/95/c8/ce05a6cba2bec12d4b28285e66c53cc88dd7385b102dea7231da3b74cfef/cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404
+ url: https://files.pythonhosted.org/packages/5a/c7/694814b3757878b29da39bc2f0cf9d20295f4c1e0a0bde7971708d5f23f8/cffi-1.16.0-cp311-cp311-win_amd64.whl
+ sha256: db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba
requires_dist:
- pycparser
requires_python: '>=3.8'
- kind: pypi
name: charset-normalizer
version: 3.3.2
- url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl
- sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e
+ url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96
requires_python: '>=3.7.0'
- kind: pypi
name: charset-normalizer
version: 3.3.2
- url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
- sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77
+ url: https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
+ sha256: f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f
requires_python: '>=3.7.0'
- kind: pypi
name: charset-normalizer
@@ -7817,14 +7817,14 @@ packages:
- kind: pypi
name: charset-normalizer
version: 3.3.2
- url: https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- sha256: f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f
+ url: https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: 549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e
requires_python: '>=3.7.0'
- kind: pypi
name: charset-normalizer
version: 3.3.2
- url: https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96
+ url: https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl
+ sha256: 663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77
requires_python: '>=3.7.0'
- kind: conda
name: clang
@@ -8997,18 +8997,18 @@ packages:
- kind: pypi
name: contourpy
version: 1.2.1
- url: https://files.pythonhosted.org/packages/33/0e/51ff72fac17e2500baf30b6b2a24be423a8d27e1625e5de99f585b852d74/contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5
+ url: https://files.pythonhosted.org/packages/ee/c0/9bd123d676eb61750e116a2cd915b06483fc406143cfc36c7f263f0f5368/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df
requires_dist:
- - numpy >=1.20
+ - numpy>=1.20
- furo ; extra == 'docs'
- - sphinx >=7.2 ; extra == 'docs'
+ - sphinx>=7.2 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- bokeh ; extra == 'bokeh'
- selenium ; extra == 'bokeh'
- contourpy[bokeh,docs] ; extra == 'mypy'
- docutils-stubs ; extra == 'mypy'
- - mypy ==1.8.0 ; extra == 'mypy'
+ - mypy==1.8.0 ; extra == 'mypy'
- types-pillow ; extra == 'mypy'
- contourpy[test-no-images] ; extra == 'test'
- matplotlib ; extra == 'test'
@@ -9021,18 +9021,18 @@ packages:
- kind: pypi
name: contourpy
version: 1.2.1
- url: https://files.pythonhosted.org/packages/ee/c0/9bd123d676eb61750e116a2cd915b06483fc406143cfc36c7f263f0f5368/contourpy-1.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: d4492d82b3bc7fbb7e3610747b159869468079fe149ec5c4d771fa1f614a14df
+ url: https://files.pythonhosted.org/packages/d6/4f/76d0dd0bca417691918484c26c74dd9dd44fbf528bbfeb30d754886e2c54/contourpy-1.2.1-cp311-cp311-win_amd64.whl
+ sha256: 2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922
requires_dist:
- - numpy >=1.20
+ - numpy>=1.20
- furo ; extra == 'docs'
- - sphinx >=7.2 ; extra == 'docs'
+ - sphinx>=7.2 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- bokeh ; extra == 'bokeh'
- selenium ; extra == 'bokeh'
- contourpy[bokeh,docs] ; extra == 'mypy'
- docutils-stubs ; extra == 'mypy'
- - mypy ==1.8.0 ; extra == 'mypy'
+ - mypy==1.8.0 ; extra == 'mypy'
- types-pillow ; extra == 'mypy'
- contourpy[test-no-images] ; extra == 'test'
- matplotlib ; extra == 'test'
@@ -9045,18 +9045,18 @@ packages:
- kind: pypi
name: contourpy
version: 1.2.1
- url: https://files.pythonhosted.org/packages/d6/4f/76d0dd0bca417691918484c26c74dd9dd44fbf528bbfeb30d754886e2c54/contourpy-1.2.1-cp311-cp311-win_amd64.whl
- sha256: 2855c8b0b55958265e8b5888d6a615ba02883b225f2227461aa9127c578a4922
+ url: https://files.pythonhosted.org/packages/9f/6b/8a1ca4b81d426c104fe42b3cfad9488eaaef0a03fcf98eaecc22b628a013/contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72
requires_dist:
- - numpy >=1.20
+ - numpy>=1.20
- furo ; extra == 'docs'
- - sphinx >=7.2 ; extra == 'docs'
+ - sphinx>=7.2 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- bokeh ; extra == 'bokeh'
- selenium ; extra == 'bokeh'
- contourpy[bokeh,docs] ; extra == 'mypy'
- docutils-stubs ; extra == 'mypy'
- - mypy ==1.8.0 ; extra == 'mypy'
+ - mypy==1.8.0 ; extra == 'mypy'
- types-pillow ; extra == 'mypy'
- contourpy[test-no-images] ; extra == 'test'
- matplotlib ; extra == 'test'
@@ -9069,18 +9069,18 @@ packages:
- kind: pypi
name: contourpy
version: 1.2.1
- url: https://files.pythonhosted.org/packages/9f/6b/8a1ca4b81d426c104fe42b3cfad9488eaaef0a03fcf98eaecc22b628a013/contourpy-1.2.1-cp311-cp311-macosx_11_0_arm64.whl
- sha256: ef5adb9a3b1d0c645ff694f9bca7702ec2c70f4d734f9922ea34de02294fdf72
+ url: https://files.pythonhosted.org/packages/33/0e/51ff72fac17e2500baf30b6b2a24be423a8d27e1625e5de99f585b852d74/contourpy-1.2.1-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 6022cecf8f44e36af10bd9118ca71f371078b4c168b6e0fab43d4a889985dbb5
requires_dist:
- - numpy >=1.20
+ - numpy>=1.20
- furo ; extra == 'docs'
- - sphinx >=7.2 ; extra == 'docs'
+ - sphinx>=7.2 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- bokeh ; extra == 'bokeh'
- selenium ; extra == 'bokeh'
- contourpy[bokeh,docs] ; extra == 'mypy'
- docutils-stubs ; extra == 'mypy'
- - mypy ==1.8.0 ; extra == 'mypy'
+ - mypy==1.8.0 ; extra == 'mypy'
- types-pillow ; extra == 'mypy'
- contourpy[test-no-images] ; extra == 'test'
- matplotlib ; extra == 'test'
@@ -9097,34 +9097,34 @@ packages:
sha256: 8ae055c0b8b0dd7757e4e666f6163172859044d4090830aecbec3460cdb318ee
requires_dist:
- accelerate
- - diffusers ==0.27.2
- - numpy
- opencv-python
- pillow
- - rerun-sdk
- - torch ==2.2.2
+ - diffusers==0.27.2
+ - numpy
+ - torch==2.2.2
- transformers
+ - rerun-sdk
requires_python: '>=3.10'
editable: true
- kind: pypi
name: cryptography
version: 38.0.4
- url: https://files.pythonhosted.org/packages/75/7a/2ea7dd2202638cf1053aaa8fbbaddded0b78c78832b3d03cafa0416a6c84/cryptography-38.0.4-cp36-abi3-macosx_10_10_universal2.whl
- sha256: 2fa36a7b2cc0998a3a4d5af26ccb6273f3df133d61da2ba13b3286261e7efb70
+ url: https://files.pythonhosted.org/packages/52/1b/49ebc2b59e9126f1f378ae910e98704d54a3f48b78e2d6d6c8cfe6fbe06f/cryptography-38.0.4-cp36-abi3-macosx_10_10_x86_64.whl
+ sha256: 1f13ddda26a04c06eb57119caf27a524ccae20533729f4b1e4a69b54e07035eb
requires_dist:
- - cffi >=1.12
- - sphinx !=1.8.0, !=3.1.0, !=3.1.1, >=1.6.5 ; extra == 'docs'
+ - cffi>=1.12
+ - sphinx!=1.8.0,!=3.1.0,!=3.1.1,>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pyenchant >=1.6.11 ; extra == 'docstest'
- - twine >=1.12.0 ; extra == 'docstest'
- - sphinxcontrib-spelling >=4.0.1 ; extra == 'docstest'
+ - pyenchant>=1.6.11 ; extra == 'docstest'
+ - twine>=1.12.0 ; extra == 'docstest'
+ - sphinxcontrib-spelling>=4.0.1 ; extra == 'docstest'
- black ; extra == 'pep8test'
- flake8 ; extra == 'pep8test'
- flake8-import-order ; extra == 'pep8test'
- pep8-naming ; extra == 'pep8test'
- - setuptools-rust >=0.11.4 ; extra == 'sdist'
- - bcrypt >=3.1.5 ; extra == 'ssh'
- - pytest >=6.2.0 ; extra == 'test'
+ - setuptools-rust>=0.11.4 ; extra == 'sdist'
+ - bcrypt>=3.1.5 ; extra == 'ssh'
+ - pytest>=6.2.0 ; extra == 'test'
- pytest-benchmark ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-subtests ; extra == 'test'
@@ -9132,27 +9132,27 @@ packages:
- pretend ; extra == 'test'
- iso8601 ; extra == 'test'
- pytz ; extra == 'test'
- - hypothesis !=3.79.2, >=1.11.4 ; extra == 'test'
+ - hypothesis!=3.79.2,>=1.11.4 ; extra == 'test'
requires_python: '>=3.6'
- kind: pypi
name: cryptography
version: 38.0.4
- url: https://files.pythonhosted.org/packages/c0/eb/f52b165db2abd662cda0a76efb7579a291fed1a7979cf41146cdc19e0d7a/cryptography-38.0.4-cp36-abi3-win_amd64.whl
- sha256: 8e45653fb97eb2f20b8c96f9cd2b3a0654d742b47d638cf2897afbd97f80fa6d
+ url: https://files.pythonhosted.org/packages/a2/8f/6c52b1f9d650863e8f67edbe062c04f1c8455579eaace1593d8fe469319a/cryptography-38.0.4-cp36-abi3-manylinux_2_28_aarch64.whl
+ sha256: bfe6472507986613dc6cc00b3d492b2f7564b02b3b3682d25ca7f40fa3fd321b
requires_dist:
- - cffi >=1.12
- - sphinx !=1.8.0, !=3.1.0, !=3.1.1, >=1.6.5 ; extra == 'docs'
+ - cffi>=1.12
+ - sphinx!=1.8.0,!=3.1.0,!=3.1.1,>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pyenchant >=1.6.11 ; extra == 'docstest'
- - twine >=1.12.0 ; extra == 'docstest'
- - sphinxcontrib-spelling >=4.0.1 ; extra == 'docstest'
+ - pyenchant>=1.6.11 ; extra == 'docstest'
+ - twine>=1.12.0 ; extra == 'docstest'
+ - sphinxcontrib-spelling>=4.0.1 ; extra == 'docstest'
- black ; extra == 'pep8test'
- flake8 ; extra == 'pep8test'
- flake8-import-order ; extra == 'pep8test'
- pep8-naming ; extra == 'pep8test'
- - setuptools-rust >=0.11.4 ; extra == 'sdist'
- - bcrypt >=3.1.5 ; extra == 'ssh'
- - pytest >=6.2.0 ; extra == 'test'
+ - setuptools-rust>=0.11.4 ; extra == 'sdist'
+ - bcrypt>=3.1.5 ; extra == 'ssh'
+ - pytest>=6.2.0 ; extra == 'test'
- pytest-benchmark ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-subtests ; extra == 'test'
@@ -9160,7 +9160,7 @@ packages:
- pretend ; extra == 'test'
- iso8601 ; extra == 'test'
- pytz ; extra == 'test'
- - hypothesis !=3.79.2, >=1.11.4 ; extra == 'test'
+ - hypothesis!=3.79.2,>=1.11.4 ; extra == 'test'
requires_python: '>=3.6'
- kind: pypi
name: cryptography
@@ -9168,19 +9168,19 @@ packages:
url: https://files.pythonhosted.org/packages/26/f8/a81170a816679fca9ccd907b801992acfc03c33f952440421c921af2cc57/cryptography-38.0.4-cp36-abi3-manylinux_2_28_x86_64.whl
sha256: ce127dd0a6a0811c251a6cddd014d292728484e530d80e872ad9806cfb1c5b3c
requires_dist:
- - cffi >=1.12
- - sphinx !=1.8.0, !=3.1.0, !=3.1.1, >=1.6.5 ; extra == 'docs'
+ - cffi>=1.12
+ - sphinx!=1.8.0,!=3.1.0,!=3.1.1,>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pyenchant >=1.6.11 ; extra == 'docstest'
- - twine >=1.12.0 ; extra == 'docstest'
- - sphinxcontrib-spelling >=4.0.1 ; extra == 'docstest'
+ - pyenchant>=1.6.11 ; extra == 'docstest'
+ - twine>=1.12.0 ; extra == 'docstest'
+ - sphinxcontrib-spelling>=4.0.1 ; extra == 'docstest'
- black ; extra == 'pep8test'
- flake8 ; extra == 'pep8test'
- flake8-import-order ; extra == 'pep8test'
- pep8-naming ; extra == 'pep8test'
- - setuptools-rust >=0.11.4 ; extra == 'sdist'
- - bcrypt >=3.1.5 ; extra == 'ssh'
- - pytest >=6.2.0 ; extra == 'test'
+ - setuptools-rust>=0.11.4 ; extra == 'sdist'
+ - bcrypt>=3.1.5 ; extra == 'ssh'
+ - pytest>=6.2.0 ; extra == 'test'
- pytest-benchmark ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-subtests ; extra == 'test'
@@ -9188,27 +9188,27 @@ packages:
- pretend ; extra == 'test'
- iso8601 ; extra == 'test'
- pytz ; extra == 'test'
- - hypothesis !=3.79.2, >=1.11.4 ; extra == 'test'
+ - hypothesis!=3.79.2,>=1.11.4 ; extra == 'test'
requires_python: '>=3.6'
- kind: pypi
name: cryptography
version: 38.0.4
- url: https://files.pythonhosted.org/packages/a2/8f/6c52b1f9d650863e8f67edbe062c04f1c8455579eaace1593d8fe469319a/cryptography-38.0.4-cp36-abi3-manylinux_2_28_aarch64.whl
- sha256: bfe6472507986613dc6cc00b3d492b2f7564b02b3b3682d25ca7f40fa3fd321b
+ url: https://files.pythonhosted.org/packages/75/7a/2ea7dd2202638cf1053aaa8fbbaddded0b78c78832b3d03cafa0416a6c84/cryptography-38.0.4-cp36-abi3-macosx_10_10_universal2.whl
+ sha256: 2fa36a7b2cc0998a3a4d5af26ccb6273f3df133d61da2ba13b3286261e7efb70
requires_dist:
- - cffi >=1.12
- - sphinx !=1.8.0, !=3.1.0, !=3.1.1, >=1.6.5 ; extra == 'docs'
+ - cffi>=1.12
+ - sphinx!=1.8.0,!=3.1.0,!=3.1.1,>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pyenchant >=1.6.11 ; extra == 'docstest'
- - twine >=1.12.0 ; extra == 'docstest'
- - sphinxcontrib-spelling >=4.0.1 ; extra == 'docstest'
+ - pyenchant>=1.6.11 ; extra == 'docstest'
+ - twine>=1.12.0 ; extra == 'docstest'
+ - sphinxcontrib-spelling>=4.0.1 ; extra == 'docstest'
- black ; extra == 'pep8test'
- flake8 ; extra == 'pep8test'
- flake8-import-order ; extra == 'pep8test'
- pep8-naming ; extra == 'pep8test'
- - setuptools-rust >=0.11.4 ; extra == 'sdist'
- - bcrypt >=3.1.5 ; extra == 'ssh'
- - pytest >=6.2.0 ; extra == 'test'
+ - setuptools-rust>=0.11.4 ; extra == 'sdist'
+ - bcrypt>=3.1.5 ; extra == 'ssh'
+ - pytest>=6.2.0 ; extra == 'test'
- pytest-benchmark ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-subtests ; extra == 'test'
@@ -9216,27 +9216,27 @@ packages:
- pretend ; extra == 'test'
- iso8601 ; extra == 'test'
- pytz ; extra == 'test'
- - hypothesis !=3.79.2, >=1.11.4 ; extra == 'test'
+ - hypothesis!=3.79.2,>=1.11.4 ; extra == 'test'
requires_python: '>=3.6'
- kind: pypi
name: cryptography
version: 38.0.4
- url: https://files.pythonhosted.org/packages/52/1b/49ebc2b59e9126f1f378ae910e98704d54a3f48b78e2d6d6c8cfe6fbe06f/cryptography-38.0.4-cp36-abi3-macosx_10_10_x86_64.whl
- sha256: 1f13ddda26a04c06eb57119caf27a524ccae20533729f4b1e4a69b54e07035eb
+ url: https://files.pythonhosted.org/packages/c0/eb/f52b165db2abd662cda0a76efb7579a291fed1a7979cf41146cdc19e0d7a/cryptography-38.0.4-cp36-abi3-win_amd64.whl
+ sha256: 8e45653fb97eb2f20b8c96f9cd2b3a0654d742b47d638cf2897afbd97f80fa6d
requires_dist:
- - cffi >=1.12
- - sphinx !=1.8.0, !=3.1.0, !=3.1.1, >=1.6.5 ; extra == 'docs'
+ - cffi>=1.12
+ - sphinx!=1.8.0,!=3.1.0,!=3.1.1,>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pyenchant >=1.6.11 ; extra == 'docstest'
- - twine >=1.12.0 ; extra == 'docstest'
- - sphinxcontrib-spelling >=4.0.1 ; extra == 'docstest'
+ - pyenchant>=1.6.11 ; extra == 'docstest'
+ - twine>=1.12.0 ; extra == 'docstest'
+ - sphinxcontrib-spelling>=4.0.1 ; extra == 'docstest'
- black ; extra == 'pep8test'
- flake8 ; extra == 'pep8test'
- flake8-import-order ; extra == 'pep8test'
- pep8-naming ; extra == 'pep8test'
- - setuptools-rust >=0.11.4 ; extra == 'sdist'
- - bcrypt >=3.1.5 ; extra == 'ssh'
- - pytest >=6.2.0 ; extra == 'test'
+ - setuptools-rust>=0.11.4 ; extra == 'sdist'
+ - bcrypt>=3.1.5 ; extra == 'ssh'
+ - pytest>=6.2.0 ; extra == 'test'
- pytest-benchmark ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-subtests ; extra == 'test'
@@ -9244,7 +9244,7 @@ packages:
- pretend ; extra == 'test'
- iso8601 ; extra == 'test'
- pytz ; extra == 'test'
- - hypothesis !=3.79.2, >=1.11.4 ; extra == 'test'
+ - hypothesis!=3.79.2,>=1.11.4 ; extra == 'test'
requires_python: '>=3.6'
- kind: conda
name: cxx-compiler
@@ -9324,8 +9324,8 @@ packages:
url: https://files.pythonhosted.org/packages/92/70/382283d80cb998ebc0089428b109bbe606ec9dce891a3cb1468c03ed0ad6/dataclasses_json-0.6.6-py3-none-any.whl
sha256: e54c5c87497741ad454070ba0ed411523d46beb5da102e221efb873801b0ba85
requires_dist:
- - marshmallow >=3.18.0, <4.0.0
- - typing-inspect >=0.4.0, <1
+ - marshmallow>=3.18.0,<4.0.0
+ - typing-inspect>=0.4.0,<1
requires_python: '>=3.7,<4.0'
- kind: pypi
name: deprecated
@@ -9333,12 +9333,12 @@ packages:
url: https://files.pythonhosted.org/packages/20/8d/778b7d51b981a96554f29136cd59ca7880bf58094338085bcf2a979a0e6a/Deprecated-1.2.14-py2.py3-none-any.whl
sha256: 6fac8b097794a90302bdbb17b9b815e732d3c4720583ff1b198499d78470466c
requires_dist:
- - wrapt <2, >=1.10
+ - wrapt<2,>=1.10
- tox ; extra == 'dev'
- pytest ; extra == 'dev'
- pytest-cov ; extra == 'dev'
- - bump2version <1 ; extra == 'dev'
- - sphinx <2 ; extra == 'dev'
+ - bump2version<1 ; extra == 'dev'
+ - sphinx<2 ; extra == 'dev'
requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*'
- kind: pypi
name: detect-and-track-objects
@@ -9347,13 +9347,13 @@ packages:
sha256: 6c88082f8ff9c5949f5786584edf771078e3f1be6202f7225ad02268f96d9292
requires_dist:
- numpy
- - opencv-contrib-python >4.6
- - opencv-python >4.6
+ - opencv-contrib-python>4.6
+ - opencv-python>4.6
- pillow
- - requests <3, >=2.31
+ - requests>=2.31,<3
- rerun-sdk
- - timm ==0.9.11
- - torch ==2.2.2
+ - timm==0.9.11
+ - torch==2.2.2
- transformers
editable: true
- kind: pypi
@@ -9362,12 +9362,12 @@ packages:
path: examples/python/dicom_mri
sha256: 98cb91dc5758ae59e3cd0fb797f86f40fcf627f63e659365806f59feed4618d8
requires_dist:
- - dicom-numpy ==0.6.2
+ - dicom-numpy==0.6.2
- numpy
- - pydicom ==2.3.0
- - requests <3, >=2.31
+ - pydicom==2.3.0
+ - requests>=2.31,<3
- rerun-sdk
- - types-requests <3, >=2.31
+ - types-requests>=2.31,<3
editable: true
- kind: pypi
name: dicom-numpy
@@ -9375,7 +9375,7 @@ packages:
url: https://files.pythonhosted.org/packages/a4/d2/6d475e8925fa3f46f676263bfc6bdcf1e20273a433b296b1d63abecd2426/dicom_numpy-0.6.2-py2.py3-none-any.whl
sha256: 361c8dfc52d625bf3344e5c2745e9c928d263999a4c094fe285d9fe461895ea9
requires_dist:
- - pydicom >=1.0
+ - pydicom>=1.0
- numpy
- check-manifest ; extra == 'dev'
- sphinx ; extra == 'dev'
@@ -9391,74 +9391,74 @@ packages:
requires_dist:
- importlib-metadata
- filelock
- - huggingface-hub >=0.20.2
+ - huggingface-hub>=0.20.2
- numpy
- - regex !=2019.12.17
+ - regex!=2019.12.17
- requests
- - safetensors >=0.3.1
+ - safetensors>=0.3.1
- pillow
- - urllib3 <=2.0.0 ; extra == 'dev'
- - isort >=5.5.4 ; extra == 'dev'
- - ruff ==0.1.5 ; extra == 'dev'
- - hf-doc-builder >=0.3.0 ; extra == 'dev'
- - compel ==0.1.8 ; extra == 'dev'
- - gitpython <3.1.19 ; extra == 'dev'
+ - urllib3<=2.0.0 ; extra == 'dev'
+ - isort>=5.5.4 ; extra == 'dev'
+ - ruff==0.1.5 ; extra == 'dev'
+ - hf-doc-builder>=0.3.0 ; extra == 'dev'
+ - compel==0.1.8 ; extra == 'dev'
+ - gitpython<3.1.19 ; extra == 'dev'
- datasets ; extra == 'dev'
- jinja2 ; extra == 'dev'
- - invisible-watermark >=0.2.0 ; extra == 'dev'
- - k-diffusion >=0.0.12 ; extra == 'dev'
+ - invisible-watermark>=0.2.0 ; extra == 'dev'
+ - k-diffusion>=0.0.12 ; extra == 'dev'
- librosa ; extra == 'dev'
- parameterized ; extra == 'dev'
- pytest ; extra == 'dev'
- pytest-timeout ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- - requests-mock ==1.10.0 ; extra == 'dev'
- - safetensors >=0.3.1 ; extra == 'dev'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'dev'
+ - requests-mock==1.10.0 ; extra == 'dev'
+ - safetensors>=0.3.1 ; extra == 'dev'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'dev'
- scipy ; extra == 'dev'
- torchvision ; extra == 'dev'
- - transformers >=4.25.1 ; extra == 'dev'
- - accelerate >=0.11.0 ; extra == 'dev'
- - protobuf <4, >=3.20.3 ; extra == 'dev'
+ - transformers>=4.25.1 ; extra == 'dev'
+ - accelerate>=0.11.0 ; extra == 'dev'
+ - protobuf<4,>=3.20.3 ; extra == 'dev'
- tensorboard ; extra == 'dev'
- - peft >=0.6.0 ; extra == 'dev'
- - torch >=1.4 ; extra == 'dev'
- - jax >=0.4.1 ; extra == 'dev'
- - jaxlib >=0.4.1 ; extra == 'dev'
- - flax >=0.4.1 ; extra == 'dev'
- - hf-doc-builder >=0.3.0 ; extra == 'docs'
- - jax >=0.4.1 ; extra == 'flax'
- - jaxlib >=0.4.1 ; extra == 'flax'
- - flax >=0.4.1 ; extra == 'flax'
- - urllib3 <=2.0.0 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - ruff ==0.1.5 ; extra == 'quality'
- - hf-doc-builder >=0.3.0 ; extra == 'quality'
- - compel ==0.1.8 ; extra == 'test'
- - gitpython <3.1.19 ; extra == 'test'
+ - peft>=0.6.0 ; extra == 'dev'
+ - torch>=1.4 ; extra == 'dev'
+ - jax>=0.4.1 ; extra == 'dev'
+ - jaxlib>=0.4.1 ; extra == 'dev'
+ - flax>=0.4.1 ; extra == 'dev'
+ - hf-doc-builder>=0.3.0 ; extra == 'docs'
+ - jax>=0.4.1 ; extra == 'flax'
+ - jaxlib>=0.4.1 ; extra == 'flax'
+ - flax>=0.4.1 ; extra == 'flax'
+ - urllib3<=2.0.0 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - ruff==0.1.5 ; extra == 'quality'
+ - hf-doc-builder>=0.3.0 ; extra == 'quality'
+ - compel==0.1.8 ; extra == 'test'
+ - gitpython<3.1.19 ; extra == 'test'
- datasets ; extra == 'test'
- jinja2 ; extra == 'test'
- - invisible-watermark >=0.2.0 ; extra == 'test'
- - k-diffusion >=0.0.12 ; extra == 'test'
+ - invisible-watermark>=0.2.0 ; extra == 'test'
+ - k-diffusion>=0.0.12 ; extra == 'test'
- librosa ; extra == 'test'
- parameterized ; extra == 'test'
- pytest ; extra == 'test'
- pytest-timeout ; extra == 'test'
- pytest-xdist ; extra == 'test'
- - requests-mock ==1.10.0 ; extra == 'test'
- - safetensors >=0.3.1 ; extra == 'test'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'test'
+ - requests-mock==1.10.0 ; extra == 'test'
+ - safetensors>=0.3.1 ; extra == 'test'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'test'
- scipy ; extra == 'test'
- torchvision ; extra == 'test'
- - transformers >=4.25.1 ; extra == 'test'
- - torch >=1.4 ; extra == 'torch'
- - accelerate >=0.11.0 ; extra == 'torch'
- - accelerate >=0.11.0 ; extra == 'training'
+ - transformers>=4.25.1 ; extra == 'test'
+ - torch>=1.4 ; extra == 'torch'
+ - accelerate>=0.11.0 ; extra == 'torch'
+ - accelerate>=0.11.0 ; extra == 'training'
- datasets ; extra == 'training'
- - protobuf <4, >=3.20.3 ; extra == 'training'
+ - protobuf<4,>=3.20.3 ; extra == 'training'
- tensorboard ; extra == 'training'
- jinja2 ; extra == 'training'
- - peft >=0.6.0 ; extra == 'training'
+ - peft>=0.6.0 ; extra == 'training'
requires_python: '>=3.8.0'
- kind: pypi
name: distlib
@@ -9601,10 +9601,10 @@ packages:
path: examples/python/face_tracking
sha256: b8725fe4d36c11aad2c6c936ba2b57c7f65a856aa179badca5d041db63119d55
requires_dist:
- - mediapipe ==0.10.11 ; sys_platform != 'darwin'
- - mediapipe ==0.10.9 ; sys_platform == 'darwin'
+ - mediapipe==0.10.11 ; sys_platform != 'darwin'
+ - mediapipe==0.10.9 ; sys_platform == 'darwin'
- numpy
- - opencv-python >4.6
+ - opencv-python>4.6
- requests
- rerun-sdk
- tqdm
@@ -9616,17 +9616,17 @@ packages:
url: https://files.pythonhosted.org/packages/41/24/0b023b6537dfc9bae2c779353998e3e99ac7dfff4222fc6126650e93c3f3/filelock-3.14.0-py3-none-any.whl
sha256: 43339835842f110ca7ae60f1e1c160714c5a6afd15a2873419ab185334975c0f
requires_dist:
- - furo >=2023.9.10 ; extra == 'docs'
- - sphinx-autodoc-typehints !=1.23.4, >=1.25.2 ; extra == 'docs'
- - sphinx >=7.2.6 ; extra == 'docs'
- - covdefaults >=2.3 ; extra == 'testing'
- - coverage >=7.3.2 ; extra == 'testing'
- - diff-cover >=8.0.1 ; extra == 'testing'
- - pytest-cov >=4.1 ; extra == 'testing'
- - pytest-mock >=3.12 ; extra == 'testing'
- - pytest-timeout >=2.2 ; extra == 'testing'
- - pytest >=7.4.3 ; extra == 'testing'
- - typing-extensions >=4.8 ; python_version < '3.11' and extra == 'typing'
+ - furo>=2023.9.10 ; extra == 'docs'
+ - sphinx-autodoc-typehints!=1.23.4,>=1.25.2 ; extra == 'docs'
+ - sphinx>=7.2.6 ; extra == 'docs'
+ - covdefaults>=2.3 ; extra == 'testing'
+ - coverage>=7.3.2 ; extra == 'testing'
+ - diff-cover>=8.0.1 ; extra == 'testing'
+ - pytest-cov>=4.1 ; extra == 'testing'
+ - pytest-mock>=3.12 ; extra == 'testing'
+ - pytest-timeout>=2.2 ; extra == 'testing'
+ - pytest>=7.4.3 ; extra == 'testing'
+ - typing-extensions>=4.8 ; python_version < '3.11' and extra == 'typing'
requires_python: '>=3.8'
- kind: pypi
name: flatbuffers
@@ -9788,157 +9788,151 @@ packages:
- kind: pypi
name: fonttools
version: 4.51.0
- url: https://files.pythonhosted.org/packages/84/51/8203a3e6e475e6766ac950638d42f45470f36c6a4f0615ff0a1c1f2ed0d6/fonttools-4.51.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 8ac27f436e8af7779f0bb4d5425aa3535270494d3bc5459ed27de3f03151e4c2
+ url: https://files.pythonhosted.org/packages/c6/b5/dc17e93f60567fa1b0fa3720c2f28e0df5293927e2356e066e87af9adaba/fonttools-4.51.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: b2b92381f37b39ba2fc98c3a45a9d6383bfc9916a87d66ccb6553f7bdd129097
requires_dist:
- - fs <3, >=2.2.0 ; extra == 'all'
- - lxml >=4.0 ; extra == 'all'
- - zopfli >=0.1.4 ; extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'all'
+ - fs<3,>=2.2.0 ; extra == 'all'
+ - lxml>=4.0 ; extra == 'all'
+ - zopfli>=0.1.4 ; extra == 'all'
+ - lz4>=1.7.4.2 ; extra == 'all'
- pycairo ; extra == 'all'
- matplotlib ; extra == 'all'
- sympy ; extra == 'all'
- - skia-pathops >=0.5.0 ; extra == 'all'
- - uharfbuzz >=0.23.0 ; extra == 'all'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
+ - skia-pathops>=0.5.0 ; extra == 'all'
+ - uharfbuzz>=0.23.0 ; extra == 'all'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'all'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'all'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'all'
- xattr ; sys_platform == 'darwin' and extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'graphite'
+ - lz4>=1.7.4.2 ; extra == 'graphite'
- pycairo ; extra == 'interpolatable'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable'
- - lxml >=4.0 ; extra == 'lxml'
- - skia-pathops >=0.5.0 ; extra == 'pathops'
+ - lxml>=4.0 ; extra == 'lxml'
+ - skia-pathops>=0.5.0 ; extra == 'pathops'
- matplotlib ; extra == 'plot'
- - uharfbuzz >=0.23.0 ; extra == 'repacker'
+ - uharfbuzz>=0.23.0 ; extra == 'repacker'
- sympy ; extra == 'symfont'
- xattr ; sys_platform == 'darwin' and extra == 'type1'
- - fs <3, >=2.2.0 ; extra == 'ufo'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
- - zopfli >=0.1.4 ; extra == 'woff'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
+ - fs<3,>=2.2.0 ; extra == 'ufo'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
+ - zopfli>=0.1.4 ; extra == 'woff'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
requires_python: '>=3.8'
- kind: pypi
name: fonttools
version: 4.51.0
- url: https://files.pythonhosted.org/packages/c6/b5/dc17e93f60567fa1b0fa3720c2f28e0df5293927e2356e066e87af9adaba/fonttools-4.51.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: b2b92381f37b39ba2fc98c3a45a9d6383bfc9916a87d66ccb6553f7bdd129097
+ url: https://files.pythonhosted.org/packages/c5/d4/f426fa1ca42e47bcfff0c878fa9d49d9c03379d00903a7c178f95b97867a/fonttools-4.51.0-cp311-cp311-win_amd64.whl
+ sha256: 0f08c901d3866a8905363619e3741c33f0a83a680d92a9f0e575985c2634fcc1
requires_dist:
- - fs <3, >=2.2.0 ; extra == 'all'
- - lxml >=4.0 ; extra == 'all'
- - zopfli >=0.1.4 ; extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'all'
+ - fs<3,>=2.2.0 ; extra == 'all'
+ - lxml>=4.0 ; extra == 'all'
+ - zopfli>=0.1.4 ; extra == 'all'
+ - lz4>=1.7.4.2 ; extra == 'all'
- pycairo ; extra == 'all'
- matplotlib ; extra == 'all'
- sympy ; extra == 'all'
- - skia-pathops >=0.5.0 ; extra == 'all'
- - uharfbuzz >=0.23.0 ; extra == 'all'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
+ - skia-pathops>=0.5.0 ; extra == 'all'
+ - uharfbuzz>=0.23.0 ; extra == 'all'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'all'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'all'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'all'
- xattr ; sys_platform == 'darwin' and extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'graphite'
+ - lz4>=1.7.4.2 ; extra == 'graphite'
- pycairo ; extra == 'interpolatable'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable'
- - lxml >=4.0 ; extra == 'lxml'
- - skia-pathops >=0.5.0 ; extra == 'pathops'
+ - lxml>=4.0 ; extra == 'lxml'
+ - skia-pathops>=0.5.0 ; extra == 'pathops'
- matplotlib ; extra == 'plot'
- - uharfbuzz >=0.23.0 ; extra == 'repacker'
+ - uharfbuzz>=0.23.0 ; extra == 'repacker'
- sympy ; extra == 'symfont'
- xattr ; sys_platform == 'darwin' and extra == 'type1'
- - fs <3, >=2.2.0 ; extra == 'ufo'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
- - zopfli >=0.1.4 ; extra == 'woff'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
+ - fs<3,>=2.2.0 ; extra == 'ufo'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
+ - zopfli>=0.1.4 ; extra == 'woff'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
requires_python: '>=3.8'
- kind: pypi
name: fonttools
version: 4.51.0
- url: https://files.pythonhosted.org/packages/c5/d4/f426fa1ca42e47bcfff0c878fa9d49d9c03379d00903a7c178f95b97867a/fonttools-4.51.0-cp311-cp311-win_amd64.whl
- sha256: 0f08c901d3866a8905363619e3741c33f0a83a680d92a9f0e575985c2634fcc1
+ url: https://files.pythonhosted.org/packages/33/47/f2ca671af61757eaaac608963dda5b76ec9100621e45d0fd63a153fd8cd7/fonttools-4.51.0-cp311-cp311-macosx_10_9_universal2.whl
+ sha256: a8feca65bab31479d795b0d16c9a9852902e3a3c0630678efb0b2b7941ea9c74
requires_dist:
- - fs <3, >=2.2.0 ; extra == 'all'
- - lxml >=4.0 ; extra == 'all'
- - zopfli >=0.1.4 ; extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'all'
+ - fs<3,>=2.2.0 ; extra == 'all'
+ - lxml>=4.0 ; extra == 'all'
+ - zopfli>=0.1.4 ; extra == 'all'
+ - lz4>=1.7.4.2 ; extra == 'all'
- pycairo ; extra == 'all'
- matplotlib ; extra == 'all'
- sympy ; extra == 'all'
- - skia-pathops >=0.5.0 ; extra == 'all'
- - uharfbuzz >=0.23.0 ; extra == 'all'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
+ - skia-pathops>=0.5.0 ; extra == 'all'
+ - uharfbuzz>=0.23.0 ; extra == 'all'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'all'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'all'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'all'
- xattr ; sys_platform == 'darwin' and extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'graphite'
+ - lz4>=1.7.4.2 ; extra == 'graphite'
- pycairo ; extra == 'interpolatable'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable'
- - lxml >=4.0 ; extra == 'lxml'
- - skia-pathops >=0.5.0 ; extra == 'pathops'
+ - lxml>=4.0 ; extra == 'lxml'
+ - skia-pathops>=0.5.0 ; extra == 'pathops'
- matplotlib ; extra == 'plot'
- - uharfbuzz >=0.23.0 ; extra == 'repacker'
+ - uharfbuzz>=0.23.0 ; extra == 'repacker'
- sympy ; extra == 'symfont'
- xattr ; sys_platform == 'darwin' and extra == 'type1'
- - fs <3, >=2.2.0 ; extra == 'ufo'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
- - zopfli >=0.1.4 ; extra == 'woff'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
+ - fs<3,>=2.2.0 ; extra == 'ufo'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
+ - zopfli>=0.1.4 ; extra == 'woff'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
requires_python: '>=3.8'
- kind: pypi
name: fonttools
version: 4.51.0
- url: https://files.pythonhosted.org/packages/33/47/f2ca671af61757eaaac608963dda5b76ec9100621e45d0fd63a153fd8cd7/fonttools-4.51.0-cp311-cp311-macosx_10_9_universal2.whl
- sha256: a8feca65bab31479d795b0d16c9a9852902e3a3c0630678efb0b2b7941ea9c74
+ url: https://files.pythonhosted.org/packages/84/51/8203a3e6e475e6766ac950638d42f45470f36c6a4f0615ff0a1c1f2ed0d6/fonttools-4.51.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 8ac27f436e8af7779f0bb4d5425aa3535270494d3bc5459ed27de3f03151e4c2
requires_dist:
- - fs <3, >=2.2.0 ; extra == 'all'
- - lxml >=4.0 ; extra == 'all'
- - zopfli >=0.1.4 ; extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'all'
+ - fs<3,>=2.2.0 ; extra == 'all'
+ - lxml>=4.0 ; extra == 'all'
+ - zopfli>=0.1.4 ; extra == 'all'
+ - lz4>=1.7.4.2 ; extra == 'all'
- pycairo ; extra == 'all'
- matplotlib ; extra == 'all'
- sympy ; extra == 'all'
- - skia-pathops >=0.5.0 ; extra == 'all'
- - uharfbuzz >=0.23.0 ; extra == 'all'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
+ - skia-pathops>=0.5.0 ; extra == 'all'
+ - uharfbuzz>=0.23.0 ; extra == 'all'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'all'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'all'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'all'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'all'
- xattr ; sys_platform == 'darwin' and extra == 'all'
- - lz4 >=1.7.4.2 ; extra == 'graphite'
+ - lz4>=1.7.4.2 ; extra == 'graphite'
- pycairo ; extra == 'interpolatable'
- scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable'
- munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable'
- - lxml >=4.0 ; extra == 'lxml'
- - skia-pathops >=0.5.0 ; extra == 'pathops'
+ - lxml>=4.0 ; extra == 'lxml'
+ - skia-pathops>=0.5.0 ; extra == 'pathops'
- matplotlib ; extra == 'plot'
- - uharfbuzz >=0.23.0 ; extra == 'repacker'
+ - uharfbuzz>=0.23.0 ; extra == 'repacker'
- sympy ; extra == 'symfont'
- xattr ; sys_platform == 'darwin' and extra == 'type1'
- - fs <3, >=2.2.0 ; extra == 'ufo'
- - unicodedata2 >=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
- - zopfli >=0.1.4 ; extra == 'woff'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
- - brotli >=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
+ - fs<3,>=2.2.0 ; extra == 'ufo'
+ - unicodedata2>=15.1.0 ; python_version <= '3.12' and extra == 'unicode'
+ - zopfli>=0.1.4 ; extra == 'woff'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff'
+ - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff'
requires_python: '>=3.8'
-- kind: pypi
- name: freetype-py
- version: 2.4.0
- url: https://files.pythonhosted.org/packages/7c/77/faec42d1ffac2b970f606860a5bb083d606f1c673a5c57ab26382c8efec1/freetype_py-2.4.0-py3-none-macosx_10_9_universal2.whl
- sha256: 3e0f5a91bc812f42d98a92137e86bac4ed037a29e43dafdb76d716d5732189e8
- requires_python: '>=3.7'
- kind: pypi
name: freetype-py
version: 2.4.0
@@ -9951,6 +9945,12 @@ packages:
url: https://files.pythonhosted.org/packages/b4/f5/4b8bb492464247236bd3dabd7734b3ea49adc63cf2e53160e830ebccb39d/freetype_py-2.4.0-py3-none-win_amd64.whl
sha256: a2620788d4f0c00bd75fee2dfca61635ab0da856131598c96e2355d5257f70e5
requires_python: '>=3.7'
+- kind: pypi
+ name: freetype-py
+ version: 2.4.0
+ url: https://files.pythonhosted.org/packages/7c/77/faec42d1ffac2b970f606860a5bb083d606f1c673a5c57ab26382c8efec1/freetype_py-2.4.0-py3-none-macosx_10_9_universal2.whl
+ sha256: 3e0f5a91bc812f42d98a92137e86bac4ed037a29e43dafdb76d716d5732189e8
+ requires_python: '>=3.7'
- kind: pypi
name: frozendict
version: 2.4.4
@@ -10057,7 +10057,7 @@ packages:
requires_dist:
- adlfs ; extra == 'abfs'
- adlfs ; extra == 'adl'
- - pyarrow >=1 ; extra == 'arrow'
+ - pyarrow>=1 ; extra == 'arrow'
- dask ; extra == 'dask'
- distributed ; extra == 'dask'
- pytest ; extra == 'devel'
@@ -10066,7 +10066,7 @@ packages:
- requests ; extra == 'dropbox'
- dropbox ; extra == 'dropbox'
- adlfs ; extra == 'full'
- - aiohttp !=4.0.0a0, !=4.0.0a1 ; extra == 'full'
+ - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'full'
- dask ; extra == 'full'
- distributed ; extra == 'full'
- dropbox ; extra == 'full'
@@ -10077,7 +10077,7 @@ packages:
- ocifs ; extra == 'full'
- panel ; extra == 'full'
- paramiko ; extra == 'full'
- - pyarrow >=1 ; extra == 'full'
+ - pyarrow>=1 ; extra == 'full'
- pygit2 ; extra == 'full'
- requests ; extra == 'full'
- s3fs ; extra == 'full'
@@ -10089,8 +10089,8 @@ packages:
- requests ; extra == 'github'
- gcsfs ; extra == 'gs'
- panel ; extra == 'gui'
- - pyarrow >=1 ; extra == 'hdfs'
- - aiohttp !=4.0.0a0, !=4.0.0a1 ; extra == 'http'
+ - pyarrow>=1 ; extra == 'hdfs'
+ - aiohttp!=4.0.0a0,!=4.0.0a1 ; extra == 'http'
- libarchive-c ; extra == 'libarchive'
- ocifs ; extra == 'oci'
- s3fs ; extra == 's3'
@@ -10211,11 +10211,11 @@ packages:
path: examples/python/gesture_detection
sha256: 36dfc4cc822ee47f7aa29ba951bab8a94e96b9fd737daa324a441e6962a620bd
requires_dist:
- - mediapipe ==0.10.11 ; sys_platform != 'darwin'
- - mediapipe ==0.10.9 ; sys_platform == 'darwin'
+ - mediapipe==0.10.11 ; sys_platform != 'darwin'
+ - mediapipe==0.10.9 ; sys_platform == 'darwin'
- numpy
- - opencv-python >4.9
- - requests <3, >=2.31
+ - opencv-python>4.9
+ - requests>=2.31,<3
- rerun-sdk
- tqdm
requires_python: <3.12
@@ -10531,17 +10531,17 @@ packages:
url: https://files.pythonhosted.org/packages/86/75/59a3ad90d9b4ff5b3e0537611dbe885aeb96124521c9d35aa079f1e0f2c9/google_api_core-2.18.0-py3-none-any.whl
sha256: 5a63aa102e0049abe85b5b88cb9409234c1f70afcda21ce1e40b285b9629c1d6
requires_dist:
- - googleapis-common-protos <2.0.dev0, >=1.56.2
- - protobuf !=3.20.0, !=3.20.1, !=4.21.0, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.19.5
- - proto-plus <2.0.0.dev0, >=1.22.3
- - google-auth <3.0.dev0, >=2.14.1
- - requests <3.0.0.dev0, >=2.18.0
- - grpcio <2.0.dev0, >=1.33.2 ; extra == 'grpc'
- - grpcio-status <2.0.dev0, >=1.33.2 ; extra == 'grpc'
- - grpcio <2.0.dev0, >=1.49.1 ; python_version >= '3.11' and extra == 'grpc'
- - grpcio-status <2.0.dev0, >=1.49.1 ; python_version >= '3.11' and extra == 'grpc'
- - grpcio-gcp <1.0.dev0, >=0.2.2 ; extra == 'grpcgcp'
- - grpcio-gcp <1.0.dev0, >=0.2.2 ; extra == 'grpcio-gcp'
+ - googleapis-common-protos<2.0.dev0,>=1.56.2
+ - protobuf!=3.20.0,!=3.20.1,!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0.dev0,>=3.19.5
+ - proto-plus<2.0.0.dev0,>=1.22.3
+ - google-auth<3.0.dev0,>=2.14.1
+ - requests<3.0.0.dev0,>=2.18.0
+ - grpcio<2.0.dev0,>=1.33.2 ; extra == 'grpc'
+ - grpcio-status<2.0.dev0,>=1.33.2 ; extra == 'grpc'
+ - grpcio<2.0.dev0,>=1.49.1 ; python_version >= '3.11' and extra == 'grpc'
+ - grpcio-status<2.0.dev0,>=1.49.1 ; python_version >= '3.11' and extra == 'grpc'
+ - grpcio-gcp<1.0.dev0,>=0.2.2 ; extra == 'grpcgcp'
+ - grpcio-gcp<1.0.dev0,>=0.2.2 ; extra == 'grpcio-gcp'
requires_python: '>=3.7'
- kind: pypi
name: google-auth
@@ -10549,17 +10549,17 @@ packages:
url: https://files.pythonhosted.org/packages/9e/8d/ddbcf81ec751d8ee5fd18ac11ff38a0e110f39dfbf105e6d9db69d556dd0/google_auth-2.29.0-py2.py3-none-any.whl
sha256: d452ad095688cd52bae0ad6fafe027f6a6d6f560e810fec20914e17a09526415
requires_dist:
- - cachetools <6.0, >=2.0.0
- - pyasn1-modules >=0.2.1
- - rsa <5, >=3.1.4
- - aiohttp <4.0.0.dev0, >=3.6.2 ; extra == 'aiohttp'
- - requests <3.0.0.dev0, >=2.20.0 ; extra == 'aiohttp'
- - cryptography ==36.0.2 ; extra == 'enterprise_cert'
- - pyopenssl ==22.0.0 ; extra == 'enterprise_cert'
- - pyopenssl >=20.0.0 ; extra == 'pyopenssl'
- - cryptography >=38.0.3 ; extra == 'pyopenssl'
- - pyu2f >=0.1.5 ; extra == 'reauth'
- - requests <3.0.0.dev0, >=2.20.0 ; extra == 'requests'
+ - cachetools<6.0,>=2.0.0
+ - pyasn1-modules>=0.2.1
+ - rsa<5,>=3.1.4
+ - aiohttp<4.0.0.dev0,>=3.6.2 ; extra == 'aiohttp'
+ - requests<3.0.0.dev0,>=2.20.0 ; extra == 'aiohttp'
+ - cryptography==36.0.2 ; extra == 'enterprise_cert'
+ - pyopenssl==22.0.0 ; extra == 'enterprise_cert'
+ - pyopenssl>=20.0.0 ; extra == 'pyopenssl'
+ - cryptography>=38.0.3 ; extra == 'pyopenssl'
+ - pyu2f>=0.1.5 ; extra == 'reauth'
+ - requests<3.0.0.dev0,>=2.20.0 ; extra == 'requests'
requires_python: '>=3.7'
- kind: pypi
name: google-cloud-core
@@ -10567,11 +10567,11 @@ packages:
url: https://files.pythonhosted.org/packages/5e/0f/2e2061e3fbcb9d535d5da3f58cc8de4947df1786fe6a1355960feb05a681/google_cloud_core-2.4.1-py2.py3-none-any.whl
sha256: a9e6a4422b9ac5c29f79a0ede9485473338e2ce78d91f2370c01e730eab22e61
requires_dist:
- - google-api-core !=2.0.*, !=2.1.*, !=2.2.*, !=2.3.0, <3.0.0.dev0, >=1.31.6
- - google-auth <3.0.dev0, >=1.25.0
- - importlib-metadata >1.0.0 ; python_version < '3.8'
- - grpcio <2.0.dev0, >=1.38.0 ; extra == 'grpc'
- - grpcio-status <2.0.dev0, >=1.38.0 ; extra == 'grpc'
+ - google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.6
+ - google-auth<3.0.dev0,>=1.25.0
+ - importlib-metadata>1.0.0 ; python_version < '3.8'
+ - grpcio<2.0.dev0,>=1.38.0 ; extra == 'grpc'
+ - grpcio-status<2.0.dev0,>=1.38.0 ; extra == 'grpc'
requires_python: '>=3.7'
- kind: pypi
name: google-cloud-storage
@@ -10579,26 +10579,26 @@ packages:
url: https://files.pythonhosted.org/packages/74/fb/3770e7f44cf6133f502e1b8503b6739351b53272cf8313b47f1de6cf4960/google_cloud_storage-2.9.0-py2.py3-none-any.whl
sha256: 83a90447f23d5edd045e0037982c270302e3aeb45fc1288d2c2ca713d27bad94
requires_dist:
- - google-auth <3.0.dev0, >=1.25.0
- - google-api-core !=2.0.*, !=2.1.*, !=2.2.*, !=2.3.0, <3.0.0.dev0, >=1.31.5
- - google-cloud-core <3.0.dev0, >=2.3.0
- - google-resumable-media >=2.3.2
- - requests <3.0.0.dev0, >=2.18.0
- - protobuf <5.0.0.dev0 ; extra == 'protobuf'
+ - google-auth<3.0.dev0,>=1.25.0
+ - google-api-core!=2.0.*,!=2.1.*,!=2.2.*,!=2.3.0,<3.0.0.dev0,>=1.31.5
+ - google-cloud-core<3.0.dev0,>=2.3.0
+ - google-resumable-media>=2.3.2
+ - requests<3.0.0.dev0,>=2.18.0
+ - protobuf<5.0.0.dev0 ; extra == 'protobuf'
requires_python: '>=3.7'
- kind: pypi
name: google-crc32c
version: 1.5.0
- url: https://files.pythonhosted.org/packages/69/0f/7f89ae2b22c55273110a44a7ed55a2948bc213fb58983093fbefcdfd2d13/google_crc32c-1.5.0-cp311-cp311-macosx_10_9_universal2.whl
- sha256: cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273
+ url: https://files.pythonhosted.org/packages/41/3f/8141b03ad127fc569c3efda2bfe31d64665e02e2b8b7fbf7b25ea914c27a/google_crc32c-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298
requires_dist:
- pytest ; extra == 'testing'
requires_python: '>=3.7'
- kind: pypi
name: google-crc32c
version: 1.5.0
- url: https://files.pythonhosted.org/packages/ce/8b/02bf4765c487901c8660290ade9929d65a6151c367ba32e75d136ef2d0eb/google_crc32c-1.5.0-cp311-cp311-win_amd64.whl
- sha256: ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968
+ url: https://files.pythonhosted.org/packages/fc/76/3ef124b893aa280e45e95d2346160f1d1d5c0ffc89d3f6e446c83116fb91/google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
+ sha256: 7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57
requires_dist:
- pytest ; extra == 'testing'
requires_python: '>=3.7'
@@ -10613,16 +10613,16 @@ packages:
- kind: pypi
name: google-crc32c
version: 1.5.0
- url: https://files.pythonhosted.org/packages/fc/76/3ef124b893aa280e45e95d2346160f1d1d5c0ffc89d3f6e446c83116fb91/google_crc32c-1.5.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- sha256: 7c42c70cd1d362284289c6273adda4c6af8039a8ae12dc451dcd61cdabb8ab57
+ url: https://files.pythonhosted.org/packages/69/0f/7f89ae2b22c55273110a44a7ed55a2948bc213fb58983093fbefcdfd2d13/google_crc32c-1.5.0-cp311-cp311-macosx_10_9_universal2.whl
+ sha256: cae0274952c079886567f3f4f685bcaf5708f0a23a5f5216fdab71f81a6c0273
requires_dist:
- pytest ; extra == 'testing'
requires_python: '>=3.7'
- kind: pypi
name: google-crc32c
version: 1.5.0
- url: https://files.pythonhosted.org/packages/41/3f/8141b03ad127fc569c3efda2bfe31d64665e02e2b8b7fbf7b25ea914c27a/google_crc32c-1.5.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 1034d91442ead5a95b5aaef90dbfaca8633b0247d1e41621d1e9f9db88c36298
+ url: https://files.pythonhosted.org/packages/ce/8b/02bf4765c487901c8660290ade9929d65a6151c367ba32e75d136ef2d0eb/google_crc32c-1.5.0-cp311-cp311-win_amd64.whl
+ sha256: ba1eb1843304b1e5537e1fca632fa894d6f6deca8d6389636ee5b4797affb968
requires_dist:
- pytest ; extra == 'testing'
requires_python: '>=3.7'
@@ -10632,10 +10632,10 @@ packages:
url: https://files.pythonhosted.org/packages/b2/c6/1202ef64a9336d846f713107dac1c7a0b016cb3840ca3d5615c7005a23d1/google_resumable_media-2.7.0-py2.py3-none-any.whl
sha256: 79543cfe433b63fd81c0844b7803aba1bb8950b47bedf7d980c38fa123937e08
requires_dist:
- - google-crc32c <2.0.dev0, >=1.0
- - aiohttp <4.0.0.dev0, >=3.6.2 ; extra == 'aiohttp'
- - google-auth <2.0.dev0, >=1.22.0 ; extra == 'aiohttp'
- - requests <3.0.0.dev0, >=2.18.0 ; extra == 'requests'
+ - google-crc32c<2.0.dev0,>=1.0
+ - aiohttp<4.0.0.dev0,>=3.6.2 ; extra == 'aiohttp'
+ - google-auth<2.0.dev0,>=1.22.0 ; extra == 'aiohttp'
+ - requests<3.0.0.dev0,>=2.18.0 ; extra == 'requests'
requires_python: '>=3.7'
- kind: pypi
name: googleapis-common-protos
@@ -10643,8 +10643,8 @@ packages:
url: https://files.pythonhosted.org/packages/dc/a6/12a0c976140511d8bc8a16ad15793b2aef29ac927baa0786ccb7ddbb6e1c/googleapis_common_protos-1.63.0-py2.py3-none-any.whl
sha256: ae45f75702f7c08b541f750854a678bd8f534a1a6bace6afe975f1d0a82d6632
requires_dist:
- - protobuf !=3.20.0, !=3.20.1, !=4.21.1, !=4.21.2, !=4.21.3, !=4.21.4, !=4.21.5, <5.0.0.dev0, >=3.19.5
- - grpcio <2.0.0.dev0, >=1.44.0 ; extra == 'grpc'
+ - protobuf!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0.dev0,>=3.19.5
+ - grpcio<2.0.0.dev0,>=1.44.0 ; extra == 'grpc'
requires_python: '>=3.7'
- kind: pypi
name: grpclib
@@ -10652,9 +10652,9 @@ packages:
url: https://files.pythonhosted.org/packages/79/b9/55936e462a5925190d7427e880b3033601d1effd13809b483d13a926061a/grpclib-0.4.7.tar.gz
sha256: 2988ef57c02b22b7a2e8e961792c41ccf97efc2ace91ae7a5b0de03c363823c3
requires_dist:
- - h2 <5, >=3.1.0
+ - h2<5,>=3.1.0
- multidict
- - protobuf >=3.20.0 ; extra == 'protobuf'
+ - protobuf>=3.20.0 ; extra == 'protobuf'
requires_python: '>=3.7'
- kind: conda
name: gxx
@@ -10764,8 +10764,8 @@ packages:
url: https://files.pythonhosted.org/packages/2a/e5/db6d438da759efbb488c4f3fbdab7764492ff3c3f953132efa6b9f0e9e53/h2-4.1.0-py3-none-any.whl
sha256: 03a46bcf682256c95b5fd9e9a99c1323584c3eec6440d379b9903d709476bc6d
requires_dist:
- - hyperframe <7, >=6.0
- - hpack <5, >=4.0
+ - hyperframe<7,>=6.0
+ - hpack<5,>=4.0
requires_python: '>=3.6.1'
- kind: pypi
name: hpack
@@ -10779,12 +10779,12 @@ packages:
url: https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl
sha256: 0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d
requires_dist:
- - six >=1.9
+ - six>=1.9
- webencodings
- genshi ; extra == 'all'
- - chardet >=2.2 ; extra == 'all'
+ - chardet>=2.2 ; extra == 'all'
- lxml ; platform_python_implementation == 'CPython' and extra == 'all'
- - chardet >=2.2 ; extra == 'chardet'
+ - chardet>=2.2 ; extra == 'chardet'
- genshi ; extra == 'genshi'
- lxml ; platform_python_implementation == 'CPython' and extra == 'lxml'
requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*'
@@ -10795,15 +10795,15 @@ packages:
sha256: 075c30d48ee7db2bba779190dc526d2c11d422aed6f9044c5e2fdc2c432fdb91
requires_dist:
- filelock
- - fsspec >=2023.5.0
- - packaging >=20.9
- - pyyaml >=5.1
+ - fsspec>=2023.5.0
+ - packaging>=20.9
+ - pyyaml>=5.1
- requests
- - tqdm >=4.42.1
- - typing-extensions >=3.7.4.3
- - inquirerpy ==0.3.4 ; extra == 'all'
+ - tqdm>=4.42.1
+ - typing-extensions>=3.7.4.3
+ - inquirerpy==0.3.4 ; extra == 'all'
- aiohttp ; extra == 'all'
- - minijinja >=1.0 ; extra == 'all'
+ - minijinja>=1.0 ; extra == 'all'
- jedi ; extra == 'all'
- jinja2 ; extra == 'all'
- pytest ; extra == 'all'
@@ -10813,25 +10813,25 @@ packages:
- pytest-vcr ; extra == 'all'
- pytest-asyncio ; extra == 'all'
- pytest-rerunfailures ; extra == 'all'
- - urllib3 <2.0 ; extra == 'all'
+ - urllib3<2.0 ; extra == 'all'
- soundfile ; extra == 'all'
- pillow ; extra == 'all'
- gradio ; extra == 'all'
- numpy ; extra == 'all'
- fastapi ; extra == 'all'
- - ruff >=0.3.0 ; extra == 'all'
- - mypy ==1.5.1 ; extra == 'all'
- - typing-extensions >=4.8.0 ; extra == 'all'
+ - ruff>=0.3.0 ; extra == 'all'
+ - mypy==1.5.1 ; extra == 'all'
+ - typing-extensions>=4.8.0 ; extra == 'all'
- types-pyyaml ; extra == 'all'
- types-requests ; extra == 'all'
- types-simplejson ; extra == 'all'
- types-toml ; extra == 'all'
- types-tqdm ; extra == 'all'
- types-urllib3 ; extra == 'all'
- - inquirerpy ==0.3.4 ; extra == 'cli'
- - inquirerpy ==0.3.4 ; extra == 'dev'
+ - inquirerpy==0.3.4 ; extra == 'cli'
+ - inquirerpy==0.3.4 ; extra == 'dev'
- aiohttp ; extra == 'dev'
- - minijinja >=1.0 ; extra == 'dev'
+ - minijinja>=1.0 ; extra == 'dev'
- jedi ; extra == 'dev'
- jinja2 ; extra == 'dev'
- pytest ; extra == 'dev'
@@ -10841,15 +10841,15 @@ packages:
- pytest-vcr ; extra == 'dev'
- pytest-asyncio ; extra == 'dev'
- pytest-rerunfailures ; extra == 'dev'
- - urllib3 <2.0 ; extra == 'dev'
+ - urllib3<2.0 ; extra == 'dev'
- soundfile ; extra == 'dev'
- pillow ; extra == 'dev'
- gradio ; extra == 'dev'
- numpy ; extra == 'dev'
- fastapi ; extra == 'dev'
- - ruff >=0.3.0 ; extra == 'dev'
- - mypy ==1.5.1 ; extra == 'dev'
- - typing-extensions >=4.8.0 ; extra == 'dev'
+ - ruff>=0.3.0 ; extra == 'dev'
+ - mypy==1.5.1 ; extra == 'dev'
+ - typing-extensions>=4.8.0 ; extra == 'dev'
- types-pyyaml ; extra == 'dev'
- types-requests ; extra == 'dev'
- types-simplejson ; extra == 'dev'
@@ -10857,21 +10857,21 @@ packages:
- types-tqdm ; extra == 'dev'
- types-urllib3 ; extra == 'dev'
- toml ; extra == 'fastai'
- - fastai >=2.4 ; extra == 'fastai'
- - fastcore >=1.3.27 ; extra == 'fastai'
- - hf-transfer >=0.1.4 ; extra == 'hf_transfer'
+ - fastai>=2.4 ; extra == 'fastai'
+ - fastcore>=1.3.27 ; extra == 'fastai'
+ - hf-transfer>=0.1.4 ; extra == 'hf_transfer'
- aiohttp ; extra == 'inference'
- - minijinja >=1.0 ; extra == 'inference'
- - ruff >=0.3.0 ; extra == 'quality'
- - mypy ==1.5.1 ; extra == 'quality'
+ - minijinja>=1.0 ; extra == 'inference'
+ - ruff>=0.3.0 ; extra == 'quality'
+ - mypy==1.5.1 ; extra == 'quality'
- tensorflow ; extra == 'tensorflow'
- pydot ; extra == 'tensorflow'
- graphviz ; extra == 'tensorflow'
- tensorflow ; extra == 'tensorflow-testing'
- - keras <3.0 ; extra == 'tensorflow-testing'
- - inquirerpy ==0.3.4 ; extra == 'testing'
+ - keras<3.0 ; extra == 'tensorflow-testing'
+ - inquirerpy==0.3.4 ; extra == 'testing'
- aiohttp ; extra == 'testing'
- - minijinja >=1.0 ; extra == 'testing'
+ - minijinja>=1.0 ; extra == 'testing'
- jedi ; extra == 'testing'
- jinja2 ; extra == 'testing'
- pytest ; extra == 'testing'
@@ -10881,7 +10881,7 @@ packages:
- pytest-vcr ; extra == 'testing'
- pytest-asyncio ; extra == 'testing'
- pytest-rerunfailures ; extra == 'testing'
- - urllib3 <2.0 ; extra == 'testing'
+ - urllib3<2.0 ; extra == 'testing'
- soundfile ; extra == 'testing'
- pillow ; extra == 'testing'
- gradio ; extra == 'testing'
@@ -10889,7 +10889,7 @@ packages:
- fastapi ; extra == 'testing'
- torch ; extra == 'torch'
- safetensors ; extra == 'torch'
- - typing-extensions >=4.8.0 ; extra == 'typing'
+ - typing-extensions>=4.8.0 ; extra == 'typing'
- types-pyyaml ; extra == 'typing'
- types-requests ; extra == 'typing'
- types-simplejson ; extra == 'typing'
@@ -10903,11 +10903,11 @@ packages:
path: examples/python/human_pose_tracking
sha256: 8a80b67528d3f6d0c82671dc5c36cf551faa4b879f4434f0d386d8ef85666e86
requires_dist:
- - mediapipe ==0.10.11 ; sys_platform != 'darwin'
- - mediapipe ==0.10.9 ; sys_platform == 'darwin'
+ - mediapipe==0.10.11 ; sys_platform != 'darwin'
+ - mediapipe==0.10.9 ; sys_platform == 'darwin'
- numpy
- - opencv-python >4.6
- - requests <3, >=2.31
+ - opencv-python>4.6
+ - requests>=2.31,<3
- rerun-sdk
requires_python: <3.12
editable: true
@@ -11011,7 +11011,7 @@ packages:
sha256: 408c1d4d62f72c9e8347e7d1ca9bc11d8673328af3913868db3b828e28b40a4c
requires_dist:
- numpy
- - pillow >=8.3.2
+ - pillow>=8.3.2
- astropy ; extra == 'all-plugins'
- av ; extra == 'all-plugins'
- imageio-ffmpeg ; extra == 'all-plugins'
@@ -11029,7 +11029,7 @@ packages:
- fsspec[github] ; extra == 'dev'
- black ; extra == 'dev'
- flake8 ; extra == 'dev'
- - sphinx <6 ; extra == 'docs'
+ - sphinx<6 ; extra == 'docs'
- numpydoc ; extra == 'docs'
- pydata-sphinx-theme ; extra == 'docs'
- imageio-ffmpeg ; extra == 'ffmpeg'
@@ -11049,7 +11049,7 @@ packages:
- pydata-sphinx-theme ; extra == 'full'
- pytest ; extra == 'full'
- pytest-cov ; extra == 'full'
- - sphinx <6 ; extra == 'full'
+ - sphinx<6 ; extra == 'full'
- tifffile ; extra == 'full'
- wheel ; extra == 'full'
- gdal ; extra == 'gdal'
@@ -11069,27 +11069,27 @@ packages:
url: https://files.pythonhosted.org/packages/2d/0a/679461c511447ffaf176567d5c496d1de27cbe34a87df6677d7171b2fbd4/importlib_metadata-7.1.0-py3-none-any.whl
sha256: 30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570
requires_dist:
- - zipp >=0.5
- - typing-extensions >=3.6.4 ; python_version < '3.8'
- - sphinx >=3.5 ; extra == 'docs'
- - jaraco-packaging >=9.3 ; extra == 'docs'
- - rst-linker >=1.9 ; extra == 'docs'
+ - zipp>=0.5
+ - typing-extensions>=3.6.4 ; python_version < '3.8'
+ - sphinx>=3.5 ; extra == 'docs'
+ - jaraco-packaging>=9.3 ; extra == 'docs'
+ - rst-linker>=1.9 ; extra == 'docs'
- furo ; extra == 'docs'
- sphinx-lint ; extra == 'docs'
- - jaraco-tidelift >=1.4 ; extra == 'docs'
+ - jaraco-tidelift>=1.4 ; extra == 'docs'
- ipython ; extra == 'perf'
- - pytest >=6 ; extra == 'testing'
- - pytest-checkdocs >=2.4 ; extra == 'testing'
+ - pytest>=6 ; extra == 'testing'
+ - pytest-checkdocs>=2.4 ; extra == 'testing'
- pytest-cov ; extra == 'testing'
- - pytest-enabler >=2.2 ; extra == 'testing'
- - pytest-ruff >=0.2.1 ; extra == 'testing'
+ - pytest-enabler>=2.2 ; extra == 'testing'
+ - pytest-ruff>=0.2.1 ; extra == 'testing'
- packaging ; extra == 'testing'
- pyfakefs ; extra == 'testing'
- flufl-flake8 ; extra == 'testing'
- - pytest-perf >=0.9.2 ; extra == 'testing'
- - jaraco-test >=5.4 ; extra == 'testing'
+ - pytest-perf>=0.9.2 ; extra == 'testing'
+ - jaraco-test>=5.4 ; extra == 'testing'
- pytest-mypy ; platform_python_implementation != 'PyPy' and extra == 'testing'
- - importlib-resources >=1.3 ; python_version < '3.9' and extra == 'testing'
+ - importlib-resources>=1.3 ; python_version < '3.9' and extra == 'testing'
requires_python: '>=3.8'
- kind: pypi
name: incremental-logging
@@ -11166,46 +11166,46 @@ packages:
url: https://files.pythonhosted.org/packages/20/11/6667e8a2146d62b7e585c389cc39cede4993f7380101cae052e8dce546c2/jax-0.4.28-py3-none-any.whl
sha256: 6a181e6b5a5b1140e19cdd2d5c4aa779e4cb4ec627757b918be322d8e81035ba
requires_dist:
- - ml-dtypes >=0.2.0
- - numpy >=1.22
+ - ml-dtypes>=0.2.0
+ - numpy>=1.22
- opt-einsum
- - scipy >=1.9
- - importlib-metadata >=4.6 ; python_version < '3.10'
- - numpy >=1.23.2 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - scipy >=1.11.1 ; python_version >= '3.12'
- - protobuf <4, >=3.13 ; extra == 'australis'
- - jaxlib ==0.4.27 ; extra == 'ci'
- - jaxlib ==0.4.28 ; extra == 'cpu'
- - jaxlib ==0.4.28+cuda12.cudnn89 ; extra == 'cuda'
- - jaxlib ==0.4.28 ; extra == 'cuda12'
- - jax-cuda12-plugin ==0.4.28 ; extra == 'cuda12'
- - nvidia-cublas-cu12 >=12.1.3.1 ; extra == 'cuda12'
- - nvidia-cuda-cupti-cu12 >=12.1.105 ; extra == 'cuda12'
- - nvidia-cuda-nvcc-cu12 >=12.1.105 ; extra == 'cuda12'
- - nvidia-cuda-runtime-cu12 >=12.1.105 ; extra == 'cuda12'
- - nvidia-cudnn-cu12 <9.0, >=8.9.2.26 ; extra == 'cuda12'
- - nvidia-cufft-cu12 >=11.0.2.54 ; extra == 'cuda12'
- - nvidia-cusolver-cu12 >=11.4.5.107 ; extra == 'cuda12'
- - nvidia-cusparse-cu12 >=12.1.0.106 ; extra == 'cuda12'
- - nvidia-nccl-cu12 >=2.18.1 ; extra == 'cuda12'
- - nvidia-nvjitlink-cu12 >=12.1.105 ; extra == 'cuda12'
- - jaxlib ==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_cudnn89'
- - jaxlib ==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_local'
- - jaxlib ==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_pip'
- - nvidia-cublas-cu12 >=12.1.3.1 ; extra == 'cuda12_pip'
- - nvidia-cuda-cupti-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cuda-nvcc-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cuda-runtime-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cudnn-cu12 <9.0, >=8.9.2.26 ; extra == 'cuda12_pip'
- - nvidia-cufft-cu12 >=11.0.2.54 ; extra == 'cuda12_pip'
- - nvidia-cusolver-cu12 >=11.4.5.107 ; extra == 'cuda12_pip'
- - nvidia-cusparse-cu12 >=12.1.0.106 ; extra == 'cuda12_pip'
- - nvidia-nccl-cu12 >=2.18.1 ; extra == 'cuda12_pip'
- - nvidia-nvjitlink-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - jaxlib ==0.4.27 ; extra == 'minimum-jaxlib'
- - jaxlib ==0.4.28 ; extra == 'tpu'
- - libtpu-nightly ==0.1.dev20240508 ; extra == 'tpu'
+ - scipy>=1.9
+ - importlib-metadata>=4.6 ; python_version < '3.10'
+ - numpy>=1.23.2 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - scipy>=1.11.1 ; python_version >= '3.12'
+ - protobuf<4,>=3.13 ; extra == 'australis'
+ - jaxlib==0.4.27 ; extra == 'ci'
+ - jaxlib==0.4.28 ; extra == 'cpu'
+ - jaxlib==0.4.28+cuda12.cudnn89 ; extra == 'cuda'
+ - jaxlib==0.4.28 ; extra == 'cuda12'
+ - jax-cuda12-plugin==0.4.28 ; extra == 'cuda12'
+ - nvidia-cublas-cu12>=12.1.3.1 ; extra == 'cuda12'
+ - nvidia-cuda-cupti-cu12>=12.1.105 ; extra == 'cuda12'
+ - nvidia-cuda-nvcc-cu12>=12.1.105 ; extra == 'cuda12'
+ - nvidia-cuda-runtime-cu12>=12.1.105 ; extra == 'cuda12'
+ - nvidia-cudnn-cu12<9.0,>=8.9.2.26 ; extra == 'cuda12'
+ - nvidia-cufft-cu12>=11.0.2.54 ; extra == 'cuda12'
+ - nvidia-cusolver-cu12>=11.4.5.107 ; extra == 'cuda12'
+ - nvidia-cusparse-cu12>=12.1.0.106 ; extra == 'cuda12'
+ - nvidia-nccl-cu12>=2.18.1 ; extra == 'cuda12'
+ - nvidia-nvjitlink-cu12>=12.1.105 ; extra == 'cuda12'
+ - jaxlib==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_cudnn89'
+ - jaxlib==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_local'
+ - jaxlib==0.4.28+cuda12.cudnn89 ; extra == 'cuda12_pip'
+ - nvidia-cublas-cu12>=12.1.3.1 ; extra == 'cuda12_pip'
+ - nvidia-cuda-cupti-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cuda-nvcc-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cuda-runtime-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cudnn-cu12<9.0,>=8.9.2.26 ; extra == 'cuda12_pip'
+ - nvidia-cufft-cu12>=11.0.2.54 ; extra == 'cuda12_pip'
+ - nvidia-cusolver-cu12>=11.4.5.107 ; extra == 'cuda12_pip'
+ - nvidia-cusparse-cu12>=12.1.0.106 ; extra == 'cuda12_pip'
+ - nvidia-nccl-cu12>=2.18.1 ; extra == 'cuda12_pip'
+ - nvidia-nvjitlink-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - jaxlib==0.4.27 ; extra == 'minimum-jaxlib'
+ - jaxlib==0.4.28 ; extra == 'tpu'
+ - libtpu-nightly==0.1.dev20240508 ; extra == 'tpu'
- requests ; extra == 'tpu'
requires_python: '>=3.9'
- kind: pypi
@@ -11214,20 +11214,20 @@ packages:
url: https://files.pythonhosted.org/packages/8e/d7/65b1f5cf05d9159abd5882a51695d4d1b386bc8e26140eff7159854777f2/jaxlib-0.4.28-cp311-cp311-manylinux2014_x86_64.whl
sha256: 45ce0f3c840cff8236cff26c37f26c9ff078695f93e0c162c320c281f5041275
requires_dist:
- - scipy >=1.9
- - numpy >=1.22
- - ml-dtypes >=0.2.0
- - scipy >=1.11.1 ; python_version >= '3.12'
- - nvidia-cublas-cu12 >=12.1.3.1 ; extra == 'cuda12_pip'
- - nvidia-cuda-cupti-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cuda-nvcc-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cuda-runtime-cu12 >=12.1.105 ; extra == 'cuda12_pip'
- - nvidia-cudnn-cu12 <9.0, >=8.9.2.26 ; extra == 'cuda12_pip'
- - nvidia-cufft-cu12 >=11.0.2.54 ; extra == 'cuda12_pip'
- - nvidia-cusolver-cu12 >=11.4.5.107 ; extra == 'cuda12_pip'
- - nvidia-cusparse-cu12 >=12.1.0.106 ; extra == 'cuda12_pip'
- - nvidia-nccl-cu12 >=2.18.1 ; extra == 'cuda12_pip'
- - nvidia-nvjitlink-cu12 >=12.1.105 ; extra == 'cuda12_pip'
+ - scipy>=1.9
+ - numpy>=1.22
+ - ml-dtypes>=0.2.0
+ - scipy>=1.11.1 ; python_version >= '3.12'
+ - nvidia-cublas-cu12>=12.1.3.1 ; extra == 'cuda12_pip'
+ - nvidia-cuda-cupti-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cuda-nvcc-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cuda-runtime-cu12>=12.1.105 ; extra == 'cuda12_pip'
+ - nvidia-cudnn-cu12<9.0,>=8.9.2.26 ; extra == 'cuda12_pip'
+ - nvidia-cufft-cu12>=11.0.2.54 ; extra == 'cuda12_pip'
+ - nvidia-cusolver-cu12>=11.4.5.107 ; extra == 'cuda12_pip'
+ - nvidia-cusparse-cu12>=12.1.0.106 ; extra == 'cuda12_pip'
+ - nvidia-nccl-cu12>=2.18.1 ; extra == 'cuda12_pip'
+ - nvidia-nvjitlink-cu12>=12.1.105 ; extra == 'cuda12_pip'
requires_python: '>=3.9'
- kind: pypi
name: jinja2
@@ -11235,8 +11235,8 @@ packages:
url: https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl
sha256: bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d
requires_dist:
- - markupsafe >=2.0
- - babel >=2.7 ; extra == 'i18n'
+ - markupsafe>=2.0
+ - babel>=2.7 ; extra == 'i18n'
requires_python: '>=3.7'
- kind: conda
name: jinja2
@@ -11322,14 +11322,6 @@ packages:
license: LGPL-2.1-or-later
size: 112327
timestamp: 1646166857935
-- kind: pypi
- name: kiwisolver
- version: 1.4.5
- url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90
- requires_dist:
- - typing-extensions ; python_version < '3.8'
- requires_python: '>=3.7'
- kind: pypi
name: kiwisolver
version: 1.4.5
@@ -11354,6 +11346,14 @@ packages:
requires_dist:
- typing-extensions ; python_version < '3.8'
requires_python: '>=3.7'
+- kind: pypi
+ name: kiwisolver
+ version: 1.4.5
+ url: https://files.pythonhosted.org/packages/a6/94/695922e71288855fc7cace3bdb52edda9d7e50edba77abb0c9d7abb51e96/kiwisolver-1.4.5-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 8ab3919a9997ab7ef2fbbed0cc99bb28d3c13e6d4b1ad36e97e482558a91be90
+ requires_dist:
+ - typing-extensions ; python_version < '3.8'
+ requires_python: '>=3.7'
- kind: conda
name: krb5
version: 1.21.2
@@ -11451,10 +11451,10 @@ packages:
requires_dist:
- packaging
- importlib-metadata ; python_version < '3.8'
- - changelist ==0.5 ; extra == 'dev'
- - pre-commit ==3.7.0 ; extra == 'lint'
- - pytest >=7.4 ; extra == 'test'
- - pytest-cov >=4.1 ; extra == 'test'
+ - changelist==0.5 ; extra == 'dev'
+ - pre-commit==3.7.0 ; extra == 'lint'
+ - pytest>=7.4 ; extra == 'test'
+ - pytest-cov>=4.1 ; extra == 'test'
requires_python: '>=3.7'
- kind: conda
name: ld64
@@ -19892,12 +19892,6 @@ packages:
license_family: Apache
size: 22221159
timestamp: 1701379965425
-- kind: pypi
- name: llvmlite
- version: 0.42.0
- url: https://files.pythonhosted.org/packages/13/97/4aac09bdfc1bc35f8eb64e21ff5897224a788170e5e8cab3e62c9eb78efb/llvmlite-0.42.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: ae511caed28beaf1252dbaf5f40e663f533b79ceb408c874c01754cafabb9cbf
- requires_python: '>=3.9'
- kind: pypi
name: llvmlite
version: 0.42.0
@@ -19916,6 +19910,12 @@ packages:
url: https://files.pythonhosted.org/packages/ba/3a/286d01191e62ddbe645d4a3f1e0d96106a98d3fd7f82441d20ffe93ab669/llvmlite-0.42.0-cp311-cp311-macosx_11_0_arm64.whl
sha256: 81e674c2fe85576e6c4474e8c7e7aba7901ac0196e864fe7985492b737dbab65
requires_python: '>=3.9'
+- kind: pypi
+ name: llvmlite
+ version: 0.42.0
+ url: https://files.pythonhosted.org/packages/13/97/4aac09bdfc1bc35f8eb64e21ff5897224a788170e5e8cab3e62c9eb78efb/llvmlite-0.42.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: ae511caed28beaf1252dbaf5f40e663f533b79ceb408c874c01754cafabb9cbf
+ requires_python: '>=3.9'
- kind: pypi
name: log-file
version: 0.1.0
@@ -19927,50 +19927,50 @@ packages:
- kind: pypi
name: lxml
version: 5.2.2
- url: https://files.pythonhosted.org/packages/4e/42/3bfe92749715c819763d2205370ecc7f586b44e277f38839e27cce7d6bb8/lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88
+ url: https://files.pythonhosted.org/packages/ad/b7/0dc82afed00c4c189cfd0b83464f9a431c66de8e73d911063956a147276a/lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
+ sha256: eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5
requires_dist:
- - cssselect >=0.7 ; extra == 'cssselect'
+ - cssselect>=0.7 ; extra == 'cssselect'
- html5lib ; extra == 'html5'
- lxml-html-clean ; extra == 'html_clean'
- beautifulsoup4 ; extra == 'htmlsoup'
- - cython >=3.0.10 ; extra == 'source'
+ - cython>=3.0.10 ; extra == 'source'
requires_python: '>=3.6'
- kind: pypi
name: lxml
version: 5.2.2
- url: https://files.pythonhosted.org/packages/ad/b7/0dc82afed00c4c189cfd0b83464f9a431c66de8e73d911063956a147276a/lxml-5.2.2-cp311-cp311-manylinux_2_28_x86_64.whl
- sha256: eb00b549b13bd6d884c863554566095bf6fa9c3cecb2e7b399c4bc7904cb33b5
+ url: https://files.pythonhosted.org/packages/04/19/d6aa2d980f220a04c91d4de538d2fea1a65535e7b0a4aec0998ce46e3667/lxml-5.2.2-cp311-cp311-win_amd64.whl
+ sha256: 49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be
requires_dist:
- - cssselect >=0.7 ; extra == 'cssselect'
+ - cssselect>=0.7 ; extra == 'cssselect'
- html5lib ; extra == 'html5'
- lxml-html-clean ; extra == 'html_clean'
- beautifulsoup4 ; extra == 'htmlsoup'
- - cython >=3.0.10 ; extra == 'source'
+ - cython>=3.0.10 ; extra == 'source'
requires_python: '>=3.6'
- kind: pypi
name: lxml
version: 5.2.2
- url: https://files.pythonhosted.org/packages/04/19/d6aa2d980f220a04c91d4de538d2fea1a65535e7b0a4aec0998ce46e3667/lxml-5.2.2-cp311-cp311-win_amd64.whl
- sha256: 49095a38eb333aaf44c06052fd2ec3b8f23e19747ca7ec6f6c954ffea6dbf7be
+ url: https://files.pythonhosted.org/packages/da/6a/24e9f77d17668dd4ac0a6c2a56113fd3e0db07cee51e3a67afcd47c597e5/lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl
+ sha256: 45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545
requires_dist:
- - cssselect >=0.7 ; extra == 'cssselect'
+ - cssselect>=0.7 ; extra == 'cssselect'
- html5lib ; extra == 'html5'
- lxml-html-clean ; extra == 'html_clean'
- beautifulsoup4 ; extra == 'htmlsoup'
- - cython >=3.0.10 ; extra == 'source'
+ - cython>=3.0.10 ; extra == 'source'
requires_python: '>=3.6'
- kind: pypi
name: lxml
version: 5.2.2
- url: https://files.pythonhosted.org/packages/da/6a/24e9f77d17668dd4ac0a6c2a56113fd3e0db07cee51e3a67afcd47c597e5/lxml-5.2.2-cp311-cp311-macosx_10_9_universal2.whl
- sha256: 45f9494613160d0405682f9eee781c7e6d1bf45f819654eb249f8f46a2c22545
+ url: https://files.pythonhosted.org/packages/4e/42/3bfe92749715c819763d2205370ecc7f586b44e277f38839e27cce7d6bb8/lxml-5.2.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: b0b3f2df149efb242cee2ffdeb6674b7f30d23c9a7af26595099afaf46ef4e88
requires_dist:
- - cssselect >=0.7 ; extra == 'cssselect'
+ - cssselect>=0.7 ; extra == 'cssselect'
- html5lib ; extra == 'html5'
- lxml-html-clean ; extra == 'html_clean'
- beautifulsoup4 ; extra == 'htmlsoup'
- - cython >=3.0.10 ; extra == 'source'
+ - cython>=3.0.10 ; extra == 'source'
requires_python: '>=3.6'
- kind: conda
name: lz4-c
@@ -20123,12 +20123,6 @@ packages:
license: MIT, BSD
size: 31928
timestamp: 1608166099896
-- kind: pypi
- name: markupsafe
- version: 2.1.5
- url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2
- requires_python: '>=3.7'
- kind: pypi
name: markupsafe
version: 2.1.5
@@ -20147,6 +20141,12 @@ packages:
url: https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl
sha256: 629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f
requires_python: '>=3.7'
+- kind: pypi
+ name: markupsafe
+ version: 2.1.5
+ url: https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2
+ requires_python: '>=3.7'
- kind: conda
name: markupsafe
version: 2.1.5
@@ -20254,52 +20254,35 @@ packages:
url: https://files.pythonhosted.org/packages/be/24/cbb242420021a79c87768dcd22ce028f48ef40913239ad6106c8a557f52c/marshmallow-3.21.2-py3-none-any.whl
sha256: 70b54a6282f4704d12c0a41599682c5c5450e843b9ec406308653b47c59648a1
requires_dist:
- - packaging >=17.0
+ - packaging>=17.0
- marshmallow[tests] ; extra == 'dev'
- tox ; extra == 'dev'
- - pre-commit ~=3.5 ; extra == 'dev'
- - sphinx ==7.3.7 ; extra == 'docs'
- - sphinx-issues ==4.1.0 ; extra == 'docs'
- - alabaster ==0.7.16 ; extra == 'docs'
- - sphinx-version-warning ==1.1.2 ; extra == 'docs'
- - autodocsumm ==0.2.12 ; extra == 'docs'
+ - pre-commit~=3.5 ; extra == 'dev'
+ - sphinx==7.3.7 ; extra == 'docs'
+ - sphinx-issues==4.1.0 ; extra == 'docs'
+ - alabaster==0.7.16 ; extra == 'docs'
+ - sphinx-version-warning==1.1.2 ; extra == 'docs'
+ - autodocsumm==0.2.12 ; extra == 'docs'
- pytest ; extra == 'tests'
- pytz ; extra == 'tests'
- simplejson ; extra == 'tests'
requires_python: '>=3.8'
-- kind: pypi
- name: matplotlib
- version: 3.8.4
- url: https://files.pythonhosted.org/packages/36/11/62250ea25780d4b59c2c6044ec161235c47cc05a18d0ec0a05657de75b7d/matplotlib-3.8.4-cp311-cp311-macosx_10_12_x86_64.whl
- sha256: 72f9322712e4562e792b2961971891b9fbbb0e525011e09ea0d1f416c4645661
- requires_dist:
- - contourpy >=1.0.1
- - cycler >=0.10
- - fonttools >=4.22.0
- - kiwisolver >=1.3.1
- - numpy >=1.21
- - packaging >=20.0
- - pillow >=8
- - pyparsing >=2.3.1
- - python-dateutil >=2.7
- - importlib-resources >=3.2.0 ; python_version < '3.10'
- requires_python: '>=3.9'
- kind: pypi
name: matplotlib
version: 3.8.4
url: https://files.pythonhosted.org/packages/80/3b/e363612ac1a514abfb5505aa209dd5b724b3232a6de98710d7759559706a/matplotlib-3.8.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: cc4ccdc64e3039fc303defd119658148f2349239871db72cd74e2eeaa9b80b71
requires_dist:
- - contourpy >=1.0.1
- - cycler >=0.10
- - fonttools >=4.22.0
- - kiwisolver >=1.3.1
- - numpy >=1.21
- - packaging >=20.0
- - pillow >=8
- - pyparsing >=2.3.1
- - python-dateutil >=2.7
- - importlib-resources >=3.2.0 ; python_version < '3.10'
+ - contourpy>=1.0.1
+ - cycler>=0.10
+ - fonttools>=4.22.0
+ - kiwisolver>=1.3.1
+ - numpy>=1.21
+ - packaging>=20.0
+ - pillow>=8
+ - pyparsing>=2.3.1
+ - python-dateutil>=2.7
+ - importlib-resources>=3.2.0 ; python_version < '3.10'
requires_python: '>=3.9'
- kind: pypi
name: matplotlib
@@ -20307,16 +20290,16 @@ packages:
url: https://files.pythonhosted.org/packages/2d/d5/6227732ecab9165586966ccb54301e3164f61b470c954c4cf6940654fbe1/matplotlib-3.8.4-cp311-cp311-win_amd64.whl
sha256: 8080d5081a86e690d7688ffa542532e87f224c38a6ed71f8fbed34dd1d9fedae
requires_dist:
- - contourpy >=1.0.1
- - cycler >=0.10
- - fonttools >=4.22.0
- - kiwisolver >=1.3.1
- - numpy >=1.21
- - packaging >=20.0
- - pillow >=8
- - pyparsing >=2.3.1
- - python-dateutil >=2.7
- - importlib-resources >=3.2.0 ; python_version < '3.10'
+ - contourpy>=1.0.1
+ - cycler>=0.10
+ - fonttools>=4.22.0
+ - kiwisolver>=1.3.1
+ - numpy>=1.21
+ - packaging>=20.0
+ - pillow>=8
+ - pyparsing>=2.3.1
+ - python-dateutil>=2.7
+ - importlib-resources>=3.2.0 ; python_version < '3.10'
requires_python: '>=3.9'
- kind: pypi
name: matplotlib
@@ -20324,16 +20307,33 @@ packages:
url: https://files.pythonhosted.org/packages/14/60/12d4f27b859a74359306662da69c2d08826a2b05cfe7f96e66b490f41573/matplotlib-3.8.4-cp311-cp311-macosx_11_0_arm64.whl
sha256: 232ce322bfd020a434caaffbd9a95333f7c2491e59cfc014041d95e38ab90d1c
requires_dist:
- - contourpy >=1.0.1
- - cycler >=0.10
- - fonttools >=4.22.0
- - kiwisolver >=1.3.1
- - numpy >=1.21
- - packaging >=20.0
- - pillow >=8
- - pyparsing >=2.3.1
- - python-dateutil >=2.7
- - importlib-resources >=3.2.0 ; python_version < '3.10'
+ - contourpy>=1.0.1
+ - cycler>=0.10
+ - fonttools>=4.22.0
+ - kiwisolver>=1.3.1
+ - numpy>=1.21
+ - packaging>=20.0
+ - pillow>=8
+ - pyparsing>=2.3.1
+ - python-dateutil>=2.7
+ - importlib-resources>=3.2.0 ; python_version < '3.10'
+ requires_python: '>=3.9'
+- kind: pypi
+ name: matplotlib
+ version: 3.8.4
+ url: https://files.pythonhosted.org/packages/36/11/62250ea25780d4b59c2c6044ec161235c47cc05a18d0ec0a05657de75b7d/matplotlib-3.8.4-cp311-cp311-macosx_10_12_x86_64.whl
+ sha256: 72f9322712e4562e792b2961971891b9fbbb0e525011e09ea0d1f416c4645661
+ requires_dist:
+ - contourpy>=1.0.1
+ - cycler>=0.10
+ - fonttools>=4.22.0
+ - kiwisolver>=1.3.1
+ - numpy>=1.21
+ - packaging>=20.0
+ - pillow>=8
+ - pyparsing>=2.3.1
+ - python-dateutil>=2.7
+ - importlib-resources>=3.2.0 ; python_version < '3.10'
requires_python: '>=3.9'
- kind: conda
name: maturin
@@ -20441,31 +20441,31 @@ packages:
- kind: pypi
name: mediapipe
version: 0.10.9
- url: https://files.pythonhosted.org/packages/c1/71/38b16b1e4504ff92dff875d455c19e62125fccd73d5ce7e06b560f77fd26/mediapipe-0.10.9-cp311-cp311-macosx_11_0_x86_64.whl
- sha256: b7dde54b82732479b9b856c9230b9f7b3da55b0913dde5254a7489e20c2e3c6e
+ url: https://files.pythonhosted.org/packages/a3/3a/f309c6bdebe596cc8c960542e167331cb01ef130ec38f3da46a499718889/mediapipe-0.10.9-cp311-cp311-macosx_11_0_universal2.whl
+ sha256: 8733735f582e6e6a05bf9b15c48b03a6387a0795793a2530aa1189eecfd33780
requires_dist:
- absl-py
- - attrs >=19.1.0
- - flatbuffers >=2.0
+ - attrs>=19.1.0
+ - flatbuffers>=2.0
- matplotlib
- numpy
- opencv-contrib-python
- - protobuf <4, >=3.11
- - sounddevice >=0.4.4
+ - protobuf<4,>=3.11
+ - sounddevice>=0.4.4
- kind: pypi
name: mediapipe
version: 0.10.9
- url: https://files.pythonhosted.org/packages/a3/3a/f309c6bdebe596cc8c960542e167331cb01ef130ec38f3da46a499718889/mediapipe-0.10.9-cp311-cp311-macosx_11_0_universal2.whl
- sha256: 8733735f582e6e6a05bf9b15c48b03a6387a0795793a2530aa1189eecfd33780
+ url: https://files.pythonhosted.org/packages/c1/71/38b16b1e4504ff92dff875d455c19e62125fccd73d5ce7e06b560f77fd26/mediapipe-0.10.9-cp311-cp311-macosx_11_0_x86_64.whl
+ sha256: b7dde54b82732479b9b856c9230b9f7b3da55b0913dde5254a7489e20c2e3c6e
requires_dist:
- absl-py
- - attrs >=19.1.0
- - flatbuffers >=2.0
+ - attrs>=19.1.0
+ - flatbuffers>=2.0
- matplotlib
- numpy
- opencv-contrib-python
- - protobuf <4, >=3.11
- - sounddevice >=0.4.4
+ - protobuf<4,>=3.11
+ - sounddevice>=0.4.4
- kind: pypi
name: mediapipe
version: 0.10.11
@@ -20473,16 +20473,16 @@ packages:
sha256: ea751e043909ba7bbe27e7afdbcdafd79723d50ef4165afcaae431ab428eea13
requires_dist:
- absl-py
- - attrs >=19.1.0
- - flatbuffers >=2.0
+ - attrs>=19.1.0
+ - flatbuffers>=2.0
- jax
- jaxlib
- matplotlib
- numpy
- torch
- opencv-contrib-python
- - protobuf <4, >=3.11
- - sounddevice >=0.4.4
+ - protobuf<4,>=3.11
+ - sounddevice>=0.4.4
- kind: pypi
name: mediapipe
version: 0.10.11
@@ -20490,14 +20490,14 @@ packages:
sha256: 36231eaf23cd795a923a8b015d36bd6e410a8e997c36dd9432db0157b822b181
requires_dist:
- absl-py
- - attrs >=19.1.0
- - flatbuffers >=2.0
+ - attrs>=19.1.0
+ - flatbuffers>=2.0
- jax
- matplotlib
- numpy
- opencv-contrib-python
- - protobuf <4, >=3.11
- - sounddevice >=0.4.4
+ - protobuf<4,>=3.11
+ - sounddevice>=0.4.4
- kind: conda
name: meilisearch
version: 1.5.1
@@ -20596,14 +20596,14 @@ packages:
url: https://files.pythonhosted.org/packages/84/17/a936d3dfad84d028ba8539a93167274b7dcd7985e0d9df487e94a62f9428/ml_dtypes-0.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: e1e2f4237b459a63c97c2c9f449baa637d7e4c20addff6a9bac486f22432f3b6
requires_dist:
- - numpy >1.20
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.23.3 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
+ - numpy>1.20
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.23.3 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
- absl-py ; extra == 'dev'
- pytest ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- - pylint >=2.6.0 ; extra == 'dev'
+ - pylint>=2.6.0 ; extra == 'dev'
- pyink ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
@@ -20612,14 +20612,14 @@ packages:
url: https://files.pythonhosted.org/packages/f0/36/290745178e5776f7416818abc1334c1b19afb93c7c87fd1bef3cc99f84ca/ml_dtypes-0.4.0-cp311-cp311-win_amd64.whl
sha256: 75b4faf99d0711b81f393db36d210b4255fd419f6f790bc6c1b461f95ffb7a9e
requires_dist:
- - numpy >1.20
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.23.3 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
+ - numpy>1.20
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.23.3 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
- absl-py ; extra == 'dev'
- pytest ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- - pylint >=2.6.0 ; extra == 'dev'
+ - pylint>=2.6.0 ; extra == 'dev'
- pyink ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
@@ -20628,14 +20628,14 @@ packages:
url: https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl
sha256: a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c
requires_dist:
- - pytest >=4.6 ; extra == 'develop'
+ - pytest>=4.6 ; extra == 'develop'
- pycodestyle ; extra == 'develop'
- pytest-cov ; extra == 'develop'
- codecov ; extra == 'develop'
- wheel ; extra == 'develop'
- sphinx ; extra == 'docs'
- - gmpy2 >=2.1.0a4 ; platform_python_implementation != 'PyPy' and extra == 'gmpy'
- - pytest >=4.6 ; extra == 'tests'
+ - gmpy2>=2.1.0a4 ; platform_python_implementation != 'PyPy' and extra == 'gmpy'
+ - pytest>=4.6 ; extra == 'tests'
- kind: conda
name: msys2-conda-epoch
version: '20160418'
@@ -20647,12 +20647,6 @@ packages:
md5: b0309b72560df66f71a9d5e34a5efdfa
size: 3227
timestamp: 1608166968312
-- kind: pypi
- name: multidict
- version: 6.0.5
- url: https://files.pythonhosted.org/packages/21/db/3403263f158b0bc7b0d4653766d71cb39498973f2042eead27b2e9758782/multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e
- requires_python: '>=3.7'
- kind: pypi
name: multidict
version: 6.0.5
@@ -20671,6 +20665,12 @@ packages:
url: https://files.pythonhosted.org/packages/02/c1/b15ecceb6ffa5081ed2ed450aea58d65b0e0358001f2b426705f9f41f4c2/multidict-6.0.5-cp311-cp311-macosx_11_0_arm64.whl
sha256: 612d1156111ae11d14afaf3a0669ebf6c170dbb735e510a7438ffe2369a847fd
requires_python: '>=3.7'
+- kind: pypi
+ name: multidict
+ version: 6.0.5
+ url: https://files.pythonhosted.org/packages/21/db/3403263f158b0bc7b0d4653766d71cb39498973f2042eead27b2e9758782/multidict-6.0.5-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 53689bb4e102200a4fafa9de9c7c3c212ab40a7ab2c8e474491914d2305f187e
+ requires_python: '>=3.7'
- kind: conda
name: multidict
version: 6.0.5
@@ -21068,27 +21068,27 @@ packages:
url: https://files.pythonhosted.org/packages/38/e9/5f72929373e1a0e8d142a130f3f97e6ff920070f87f91c4e13e40e0fba5a/networkx-3.3-py3-none-any.whl
sha256: 28575580c6ebdaf4505b22c6256a2b9de86b316dc63ba9e93abde3d78dfdbcf2
requires_dist:
- - numpy >=1.23 ; extra == 'default'
- - scipy !=1.11.0, !=1.11.1, >=1.9 ; extra == 'default'
- - matplotlib >=3.6 ; extra == 'default'
- - pandas >=1.4 ; extra == 'default'
- - changelist ==0.5 ; extra == 'developer'
- - pre-commit >=3.2 ; extra == 'developer'
- - mypy >=1.1 ; extra == 'developer'
+ - numpy>=1.23 ; extra == 'default'
+ - scipy!=1.11.0,!=1.11.1,>=1.9 ; extra == 'default'
+ - matplotlib>=3.6 ; extra == 'default'
+ - pandas>=1.4 ; extra == 'default'
+ - changelist==0.5 ; extra == 'developer'
+ - pre-commit>=3.2 ; extra == 'developer'
+ - mypy>=1.1 ; extra == 'developer'
- rtoml ; extra == 'developer'
- - sphinx >=7 ; extra == 'doc'
- - pydata-sphinx-theme >=0.14 ; extra == 'doc'
- - sphinx-gallery >=0.14 ; extra == 'doc'
- - numpydoc >=1.7 ; extra == 'doc'
- - pillow >=9.4 ; extra == 'doc'
- - texext >=0.6.7 ; extra == 'doc'
- - myst-nb >=1.0 ; extra == 'doc'
- - lxml >=4.6 ; extra == 'extra'
- - pygraphviz >=1.12 ; extra == 'extra'
- - pydot >=2.0 ; extra == 'extra'
- - sympy >=1.10 ; extra == 'extra'
- - pytest >=7.2 ; extra == 'test'
- - pytest-cov >=4.0 ; extra == 'test'
+ - sphinx>=7 ; extra == 'doc'
+ - pydata-sphinx-theme>=0.14 ; extra == 'doc'
+ - sphinx-gallery>=0.14 ; extra == 'doc'
+ - numpydoc>=1.7 ; extra == 'doc'
+ - pillow>=9.4 ; extra == 'doc'
+ - texext>=0.6.7 ; extra == 'doc'
+ - myst-nb>=1.0 ; extra == 'doc'
+ - lxml>=4.6 ; extra == 'extra'
+ - pygraphviz>=1.12 ; extra == 'extra'
+ - pydot>=2.0 ; extra == 'extra'
+ - sympy>=1.10 ; extra == 'extra'
+ - pytest>=7.2 ; extra == 'test'
+ - pytest-cov>=4.0 ; extra == 'test'
requires_python: '>=3.10'
- kind: conda
name: ninja
@@ -21342,34 +21342,25 @@ packages:
url: https://files.pythonhosted.org/packages/a4/28/2897c06b54cd99f41ca9e5cc7433211a085903a71aaed1cb1a1dc138d53c/nox-2024.4.15-py3-none-any.whl
sha256: 6492236efa15a460ecb98e7b67562a28b70da006ab0be164e8821177577c0565
requires_dist:
- - argcomplete <4.0, >=1.9.4
- - colorlog <7.0.0, >=2.6.1
+ - argcomplete<4.0,>=1.9.4
+ - colorlog<7.0.0,>=2.6.1
- importlib-metadata ; python_version < '3.8'
- - packaging >=20.9
- - tomli >=1 ; python_version < '3.11'
- - typing-extensions >=3.7.4 ; python_version < '3.8'
- - virtualenv >=20.14.1
+ - packaging>=20.9
+ - tomli>=1 ; python_version < '3.11'
+ - typing-extensions>=3.7.4 ; python_version < '3.8'
+ - virtualenv>=20.14.1
- jinja2 ; extra == 'tox_to_nox'
- tox ; extra == 'tox_to_nox'
- - uv >=0.1.6 ; extra == 'uv'
+ - uv>=0.1.6 ; extra == 'uv'
requires_python: '>=3.7'
-- kind: pypi
- name: numba
- version: 0.59.1
- url: https://files.pythonhosted.org/packages/5f/2d/085c21f3086eff0b830e5d03d084a1b4b10dfde0c65feeac6be8c361265c/numba-0.59.1-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 43727e7ad20b3ec23ee4fc642f5b61845c71f75dd2825b3c234390c6d8d64051
- requires_dist:
- - llvmlite <0.43, >=0.42.0.dev0
- - numpy <1.27, >=1.22
- requires_python: '>=3.9'
- kind: pypi
name: numba
version: 0.59.1
url: https://files.pythonhosted.org/packages/54/f2/7d1579037643c874fa73516ea84c07e8d30ea347fb1a88c03b198447655d/numba-0.59.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
sha256: dd2842fac03be4e5324ebbbd4d2d0c8c0fc6e0df75c09477dd45b288a0777389
requires_dist:
- - llvmlite <0.43, >=0.42.0.dev0
- - numpy <1.27, >=1.22
+ - llvmlite<0.43,>=0.42.0.dev0
+ - numpy<1.27,>=1.22
requires_python: '>=3.9'
- kind: pypi
name: numba
@@ -21377,8 +21368,8 @@ packages:
url: https://files.pythonhosted.org/packages/38/f0/ad848815b0adafcf5f238e728933950034355a8d59969772be1cd57606d8/numba-0.59.1-cp311-cp311-win_amd64.whl
sha256: 0594b3dfb369fada1f8bb2e3045cd6c61a564c62e50cf1f86b4666bc721b3450
requires_dist:
- - llvmlite <0.43, >=0.42.0.dev0
- - numpy <1.27, >=1.22
+ - llvmlite<0.43,>=0.42.0.dev0
+ - numpy<1.27,>=1.22
requires_python: '>=3.9'
- kind: pypi
name: numba
@@ -21386,14 +21377,17 @@ packages:
url: https://files.pythonhosted.org/packages/70/7d/0d1419479997319ca72ef735791c2ee50819f9c200adea96142ee7499fae/numba-0.59.1-cp311-cp311-macosx_11_0_arm64.whl
sha256: 411df625372c77959570050e861981e9d196cc1da9aa62c3d6a836b5cc338966
requires_dist:
- - llvmlite <0.43, >=0.42.0.dev0
- - numpy <1.27, >=1.22
+ - llvmlite<0.43,>=0.42.0.dev0
+ - numpy<1.27,>=1.22
requires_python: '>=3.9'
- kind: pypi
- name: numpy
- version: 1.26.4
- url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71
+ name: numba
+ version: 0.59.1
+ url: https://files.pythonhosted.org/packages/5f/2d/085c21f3086eff0b830e5d03d084a1b4b10dfde0c65feeac6be8c361265c/numba-0.59.1-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 43727e7ad20b3ec23ee4fc642f5b61845c71f75dd2825b3c234390c6d8d64051
+ requires_dist:
+ - llvmlite<0.43,>=0.42.0.dev0
+ - numpy<1.27,>=1.22
requires_python: '>=3.9'
- kind: pypi
name: numpy
@@ -21413,6 +21407,12 @@ packages:
url: https://files.pythonhosted.org/packages/1a/2e/151484f49fd03944c4a3ad9c418ed193cfd02724e138ac8a9505d056c582/numpy-1.26.4-cp311-cp311-macosx_11_0_arm64.whl
sha256: edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef
requires_python: '>=3.9'
+- kind: pypi
+ name: numpy
+ version: 1.26.4
+ url: https://files.pythonhosted.org/packages/11/57/baae43d14fe163fa0e4c47f307b6b2511ab8d7d30177c491960504252053/numpy-1.26.4-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71
+ requires_python: '>=3.9'
- kind: conda
name: numpy
version: 1.26.4
@@ -21540,9 +21540,9 @@ packages:
path: examples/python/nv12
sha256: c8ca97c5d8c04037cd5eb9a65be7b1e7d667c11d4dba3ee9aad5956ccf926dc4
requires_dist:
- - numpy
+ - rerun-sdk>=0.10
- opencv-python
- - rerun-sdk >=0.10
+ - numpy
editable: true
- kind: pypi
name: nvidia-cublas-cu12
@@ -21632,8 +21632,8 @@ packages:
requires_dist:
- betterproto[compiler]
- numpy
- - opencv-python >4.6
- - requests <3, >=2.31
+ - opencv-python>4.6
+ - requests>=2.31,<3
- rerun-sdk
- scipy
editable: true
@@ -21651,39 +21651,22 @@ packages:
- tqdm
requires_python: '>=3.10'
editable: true
-- kind: pypi
- name: opencv-contrib-python
- version: 4.9.0.80
- url: https://files.pythonhosted.org/packages/16/07/bf25df600eeaedddf8fece3f1ff837bf72865b93a03651cf7375ce8172be/opencv_contrib_python-4.9.0.80-cp37-abi3-macosx_10_16_x86_64.whl
- sha256: 86078d3653ec3107877536c9178622b1f98b51acf59e554ddbc552785cba55fa
- requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
- requires_python: '>=3.6'
- kind: pypi
name: opencv-contrib-python
version: 4.9.0.80
url: https://files.pythonhosted.org/packages/8a/ea/aea6289058480b93157ad698ecd7f13cae4892ae0a4750abf33b3ac12f91/opencv_contrib_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 89ca1508dd895ae42176640bdd503cac82772f6efa25120738a469a6a69de321
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-contrib-python
@@ -21691,16 +21674,16 @@ packages:
url: https://files.pythonhosted.org/packages/aa/2e/576ac47f21d555b459ca837bb3fb937e50339b8fbfd294945ea2f5290416/opencv_contrib_python-4.9.0.80-cp37-abi3-win_amd64.whl
sha256: fdd9b14028f74af8dbb69f90e6e4a956ce2eb5b59947df28ba0b79d337431477
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-contrib-python
@@ -21708,50 +21691,67 @@ packages:
url: https://files.pythonhosted.org/packages/4c/c3/ccff2e1bfe2bb47a7eaebc4280e93bd2f97ebbe5b3573d48bcfcc0c32387/opencv_contrib_python-4.9.0.80-cp37-abi3-macosx_11_0_arm64.whl
sha256: b52e381144f774b486729ccee69911bdc7d16b5ced4830502e906ad803373ab0
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
- name: opencv-python
+ name: opencv-contrib-python
version: 4.9.0.80
- url: https://files.pythonhosted.org/packages/77/df/b56175c3fb5bc058774bdcf35f5a71cf9c3c5b909f98a1c688eb71cd3b1f/opencv_python-4.9.0.80-cp37-abi3-macosx_11_0_arm64.whl
- sha256: 71dfb9555ccccdd77305fc3dcca5897fbf0cf28b297c51ee55e079c065d812a3
+ url: https://files.pythonhosted.org/packages/16/07/bf25df600eeaedddf8fece3f1ff837bf72865b93a03651cf7375ce8172be/opencv_contrib_python-4.9.0.80-cp37-abi3-macosx_10_16_x86_64.whl
+ sha256: 86078d3653ec3107877536c9178622b1f98b51acf59e554ddbc552785cba55fa
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-python
version: 4.9.0.80
- url: https://files.pythonhosted.org/packages/c7/ec/9dabb6a9abfdebb3c45b0cc52dec901caafef2b2c7e7d6a839ed86d81e91/opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl
- sha256: 3f16f08e02b2a2da44259c7cc712e779eff1dd8b55fdb0323e8cab09548086c0
+ url: https://files.pythonhosted.org/packages/35/69/b657974ddcbba54d59d7d62b01e60a8b815e35f415b996e4d355be0ac7b4/opencv_python-4.9.0.80-cp37-abi3-macosx_10_16_x86_64.whl
+ sha256: 7e5f7aa4486651a6ebfa8ed4b594b65bd2d2f41beeb4241a3e4b1b85acbbbadb
+ requires_dist:
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
+ requires_python: '>=3.6'
+- kind: pypi
+ name: opencv-python
+ version: 4.9.0.80
+ url: https://files.pythonhosted.org/packages/52/00/2adf376707c7965bb4569f28f73fafe303c404d01047b10e3b52761be086/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
+ sha256: 7b34a52e9da36dda8c151c6394aed602e4b17fa041df0b9f5b93ae10b0fcca2a
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-python
@@ -21759,50 +21759,50 @@ packages:
url: https://files.pythonhosted.org/packages/d9/64/7fdfb9386511cd6805451e012c537073a79a958a58795c4e602e538c388c/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: e4088cab82b66a3b37ffc452976b14a3c599269c247895ae9ceb4066d8188a57
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-python
version: 4.9.0.80
- url: https://files.pythonhosted.org/packages/52/00/2adf376707c7965bb4569f28f73fafe303c404d01047b10e3b52761be086/opencv_python-4.9.0.80-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- sha256: 7b34a52e9da36dda8c151c6394aed602e4b17fa041df0b9f5b93ae10b0fcca2a
+ url: https://files.pythonhosted.org/packages/77/df/b56175c3fb5bc058774bdcf35f5a71cf9c3c5b909f98a1c688eb71cd3b1f/opencv_python-4.9.0.80-cp37-abi3-macosx_11_0_arm64.whl
+ sha256: 71dfb9555ccccdd77305fc3dcca5897fbf0cf28b297c51ee55e079c065d812a3
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: pypi
name: opencv-python
version: 4.9.0.80
- url: https://files.pythonhosted.org/packages/35/69/b657974ddcbba54d59d7d62b01e60a8b815e35f415b996e4d355be0ac7b4/opencv_python-4.9.0.80-cp37-abi3-macosx_10_16_x86_64.whl
- sha256: 7e5f7aa4486651a6ebfa8ed4b594b65bd2d2f41beeb4241a3e4b1b85acbbbadb
+ url: https://files.pythonhosted.org/packages/c7/ec/9dabb6a9abfdebb3c45b0cc52dec901caafef2b2c7e7d6a839ed86d81e91/opencv_python-4.9.0.80-cp37-abi3-win_amd64.whl
+ sha256: 3f16f08e02b2a2da44259c7cc712e779eff1dd8b55fdb0323e8cab09548086c0
requires_dist:
- - numpy >=1.13.3 ; python_version < '3.7'
- - numpy >=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
- - numpy >=1.21.2 ; python_version >= '3.10'
- - numpy >=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
- - numpy >=1.23.5 ; python_version >= '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - numpy >=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
- - numpy >=1.17.0 ; python_version >= '3.7'
- - numpy >=1.17.3 ; python_version >= '3.8'
- - numpy >=1.19.3 ; python_version >= '3.9'
+ - numpy>=1.13.3 ; python_version < '3.7'
+ - numpy>=1.21.0 ; python_version <= '3.9' and platform_system == 'Darwin' and platform_machine == 'arm64'
+ - numpy>=1.21.2 ; python_version >= '3.10'
+ - numpy>=1.21.4 ; python_version >= '3.10' and platform_system == 'Darwin'
+ - numpy>=1.23.5 ; python_version >= '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - numpy>=1.19.3 ; python_version >= '3.6' and platform_system == 'Linux' and platform_machine == 'aarch64'
+ - numpy>=1.17.0 ; python_version >= '3.7'
+ - numpy>=1.17.3 ; python_version >= '3.8'
+ - numpy>=1.19.3 ; python_version >= '3.9'
requires_python: '>=3.6'
- kind: conda
name: openssl
@@ -21985,8 +21985,8 @@ packages:
url: https://files.pythonhosted.org/packages/bc/19/404708a7e54ad2798907210462fd950c3442ea51acc8790f3da48d2bee8b/opt_einsum-3.3.0-py3-none-any.whl
sha256: 2455e59e3947d3c275477df7f5205b30635e266fe6dc300e3d9f9646bfcea147
requires_dist:
- - numpy >=1.7
- - sphinx ==1.2.3 ; extra == 'docs'
+ - numpy>=1.7
+ - sphinx==1.2.3 ; extra == 'docs'
- sphinxcontrib-napoleon ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- numpydoc ; extra == 'docs'
@@ -22296,189 +22296,97 @@ packages:
- pkg:pypi/packaging
size: 49832
timestamp: 1710076089469
-- kind: pypi
- name: pandas
- version: 2.2.2
- url: https://files.pythonhosted.org/packages/1b/70/61704497903d43043e288017cb2b82155c0d41e15f5c17807920877b45c2/pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288
- requires_dist:
- - numpy >=1.22.4 ; python_version < '3.11'
- - numpy >=1.23.2 ; python_version == '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - python-dateutil >=2.8.2
- - pytz >=2020.1
- - tzdata >=2022.7
- - hypothesis >=6.46.1 ; extra == 'test'
- - pytest >=7.3.2 ; extra == 'test'
- - pytest-xdist >=2.2.0 ; extra == 'test'
- - pyarrow >=10.0.1 ; extra == 'pyarrow'
- - bottleneck >=1.3.6 ; extra == 'performance'
- - numba >=0.56.4 ; extra == 'performance'
- - numexpr >=2.8.4 ; extra == 'performance'
- - scipy >=1.10.0 ; extra == 'computation'
- - xarray >=2022.12.0 ; extra == 'computation'
- - fsspec >=2022.11.0 ; extra == 'fss'
- - s3fs >=2022.11.0 ; extra == 'aws'
- - gcsfs >=2022.11.0 ; extra == 'gcp'
- - pandas-gbq >=0.19.0 ; extra == 'gcp'
- - odfpy >=1.4.1 ; extra == 'excel'
- - openpyxl >=3.1.0 ; extra == 'excel'
- - python-calamine >=0.1.7 ; extra == 'excel'
- - pyxlsb >=1.0.10 ; extra == 'excel'
- - xlrd >=2.0.1 ; extra == 'excel'
- - xlsxwriter >=3.0.5 ; extra == 'excel'
- - pyarrow >=10.0.1 ; extra == 'parquet'
- - pyarrow >=10.0.1 ; extra == 'feather'
- - tables >=3.8.0 ; extra == 'hdf5'
- - pyreadstat >=1.2.0 ; extra == 'spss'
- - sqlalchemy >=2.0.0 ; extra == 'postgresql'
- - psycopg2 >=2.9.6 ; extra == 'postgresql'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql'
- - sqlalchemy >=2.0.0 ; extra == 'mysql'
- - pymysql >=1.0.2 ; extra == 'mysql'
- - sqlalchemy >=2.0.0 ; extra == 'sql-other'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other'
- - beautifulsoup4 >=4.11.2 ; extra == 'html'
- - html5lib >=1.1 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'xml'
- - matplotlib >=3.6.3 ; extra == 'plot'
- - jinja2 >=3.1.2 ; extra == 'output-formatting'
- - tabulate >=0.9.0 ; extra == 'output-formatting'
- - pyqt5 >=5.15.9 ; extra == 'clipboard'
- - qtpy >=2.3.0 ; extra == 'clipboard'
- - zstandard >=0.19.0 ; extra == 'compression'
- - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'all'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'all'
- - beautifulsoup4 >=4.11.2 ; extra == 'all'
- - bottleneck >=1.3.6 ; extra == 'all'
- - dataframe-api-compat >=0.1.7 ; extra == 'all'
- - fastparquet >=2022.12.0 ; extra == 'all'
- - fsspec >=2022.11.0 ; extra == 'all'
- - gcsfs >=2022.11.0 ; extra == 'all'
- - html5lib >=1.1 ; extra == 'all'
- - hypothesis >=6.46.1 ; extra == 'all'
- - jinja2 >=3.1.2 ; extra == 'all'
- - lxml >=4.9.2 ; extra == 'all'
- - matplotlib >=3.6.3 ; extra == 'all'
- - numba >=0.56.4 ; extra == 'all'
- - numexpr >=2.8.4 ; extra == 'all'
- - odfpy >=1.4.1 ; extra == 'all'
- - openpyxl >=3.1.0 ; extra == 'all'
- - pandas-gbq >=0.19.0 ; extra == 'all'
- - psycopg2 >=2.9.6 ; extra == 'all'
- - pyarrow >=10.0.1 ; extra == 'all'
- - pymysql >=1.0.2 ; extra == 'all'
- - pyqt5 >=5.15.9 ; extra == 'all'
- - pyreadstat >=1.2.0 ; extra == 'all'
- - pytest >=7.3.2 ; extra == 'all'
- - pytest-xdist >=2.2.0 ; extra == 'all'
- - python-calamine >=0.1.7 ; extra == 'all'
- - pyxlsb >=1.0.10 ; extra == 'all'
- - qtpy >=2.3.0 ; extra == 'all'
- - scipy >=1.10.0 ; extra == 'all'
- - s3fs >=2022.11.0 ; extra == 'all'
- - sqlalchemy >=2.0.0 ; extra == 'all'
- - tables >=3.8.0 ; extra == 'all'
- - tabulate >=0.9.0 ; extra == 'all'
- - xarray >=2022.12.0 ; extra == 'all'
- - xlrd >=2.0.1 ; extra == 'all'
- - xlsxwriter >=3.0.5 ; extra == 'all'
- - zstandard >=0.19.0 ; extra == 'all'
- requires_python: '>=3.9'
- kind: pypi
name: pandas
version: 2.2.2
url: https://files.pythonhosted.org/packages/fc/a5/4d82be566f069d7a9a702dcdf6f9106df0e0b042e738043c0cc7ddd7e3f6/pandas-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee
requires_dist:
- - numpy >=1.22.4 ; python_version < '3.11'
- - numpy >=1.23.2 ; python_version == '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - python-dateutil >=2.8.2
- - pytz >=2020.1
- - tzdata >=2022.7
- - hypothesis >=6.46.1 ; extra == 'test'
- - pytest >=7.3.2 ; extra == 'test'
- - pytest-xdist >=2.2.0 ; extra == 'test'
- - pyarrow >=10.0.1 ; extra == 'pyarrow'
- - bottleneck >=1.3.6 ; extra == 'performance'
- - numba >=0.56.4 ; extra == 'performance'
- - numexpr >=2.8.4 ; extra == 'performance'
- - scipy >=1.10.0 ; extra == 'computation'
- - xarray >=2022.12.0 ; extra == 'computation'
- - fsspec >=2022.11.0 ; extra == 'fss'
- - s3fs >=2022.11.0 ; extra == 'aws'
- - gcsfs >=2022.11.0 ; extra == 'gcp'
- - pandas-gbq >=0.19.0 ; extra == 'gcp'
- - odfpy >=1.4.1 ; extra == 'excel'
- - openpyxl >=3.1.0 ; extra == 'excel'
- - python-calamine >=0.1.7 ; extra == 'excel'
- - pyxlsb >=1.0.10 ; extra == 'excel'
- - xlrd >=2.0.1 ; extra == 'excel'
- - xlsxwriter >=3.0.5 ; extra == 'excel'
- - pyarrow >=10.0.1 ; extra == 'parquet'
- - pyarrow >=10.0.1 ; extra == 'feather'
- - tables >=3.8.0 ; extra == 'hdf5'
- - pyreadstat >=1.2.0 ; extra == 'spss'
- - sqlalchemy >=2.0.0 ; extra == 'postgresql'
- - psycopg2 >=2.9.6 ; extra == 'postgresql'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql'
- - sqlalchemy >=2.0.0 ; extra == 'mysql'
- - pymysql >=1.0.2 ; extra == 'mysql'
- - sqlalchemy >=2.0.0 ; extra == 'sql-other'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other'
- - beautifulsoup4 >=4.11.2 ; extra == 'html'
- - html5lib >=1.1 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'xml'
- - matplotlib >=3.6.3 ; extra == 'plot'
- - jinja2 >=3.1.2 ; extra == 'output-formatting'
- - tabulate >=0.9.0 ; extra == 'output-formatting'
- - pyqt5 >=5.15.9 ; extra == 'clipboard'
- - qtpy >=2.3.0 ; extra == 'clipboard'
- - zstandard >=0.19.0 ; extra == 'compression'
- - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'all'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'all'
- - beautifulsoup4 >=4.11.2 ; extra == 'all'
- - bottleneck >=1.3.6 ; extra == 'all'
- - dataframe-api-compat >=0.1.7 ; extra == 'all'
- - fastparquet >=2022.12.0 ; extra == 'all'
- - fsspec >=2022.11.0 ; extra == 'all'
- - gcsfs >=2022.11.0 ; extra == 'all'
- - html5lib >=1.1 ; extra == 'all'
- - hypothesis >=6.46.1 ; extra == 'all'
- - jinja2 >=3.1.2 ; extra == 'all'
- - lxml >=4.9.2 ; extra == 'all'
- - matplotlib >=3.6.3 ; extra == 'all'
- - numba >=0.56.4 ; extra == 'all'
- - numexpr >=2.8.4 ; extra == 'all'
- - odfpy >=1.4.1 ; extra == 'all'
- - openpyxl >=3.1.0 ; extra == 'all'
- - pandas-gbq >=0.19.0 ; extra == 'all'
- - psycopg2 >=2.9.6 ; extra == 'all'
- - pyarrow >=10.0.1 ; extra == 'all'
- - pymysql >=1.0.2 ; extra == 'all'
- - pyqt5 >=5.15.9 ; extra == 'all'
- - pyreadstat >=1.2.0 ; extra == 'all'
- - pytest >=7.3.2 ; extra == 'all'
- - pytest-xdist >=2.2.0 ; extra == 'all'
- - python-calamine >=0.1.7 ; extra == 'all'
- - pyxlsb >=1.0.10 ; extra == 'all'
- - qtpy >=2.3.0 ; extra == 'all'
- - scipy >=1.10.0 ; extra == 'all'
- - s3fs >=2022.11.0 ; extra == 'all'
- - sqlalchemy >=2.0.0 ; extra == 'all'
- - tables >=3.8.0 ; extra == 'all'
- - tabulate >=0.9.0 ; extra == 'all'
- - xarray >=2022.12.0 ; extra == 'all'
- - xlrd >=2.0.1 ; extra == 'all'
- - xlsxwriter >=3.0.5 ; extra == 'all'
- - zstandard >=0.19.0 ; extra == 'all'
+ - numpy>=1.22.4 ; python_version < '3.11'
+ - numpy>=1.23.2 ; python_version == '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - python-dateutil>=2.8.2
+ - pytz>=2020.1
+ - tzdata>=2022.7
+ - hypothesis>=6.46.1 ; extra == 'test'
+ - pytest>=7.3.2 ; extra == 'test'
+ - pytest-xdist>=2.2.0 ; extra == 'test'
+ - pyarrow>=10.0.1 ; extra == 'pyarrow'
+ - bottleneck>=1.3.6 ; extra == 'performance'
+ - numba>=0.56.4 ; extra == 'performance'
+ - numexpr>=2.8.4 ; extra == 'performance'
+ - scipy>=1.10.0 ; extra == 'computation'
+ - xarray>=2022.12.0 ; extra == 'computation'
+ - fsspec>=2022.11.0 ; extra == 'fss'
+ - s3fs>=2022.11.0 ; extra == 'aws'
+ - gcsfs>=2022.11.0 ; extra == 'gcp'
+ - pandas-gbq>=0.19.0 ; extra == 'gcp'
+ - odfpy>=1.4.1 ; extra == 'excel'
+ - openpyxl>=3.1.0 ; extra == 'excel'
+ - python-calamine>=0.1.7 ; extra == 'excel'
+ - pyxlsb>=1.0.10 ; extra == 'excel'
+ - xlrd>=2.0.1 ; extra == 'excel'
+ - xlsxwriter>=3.0.5 ; extra == 'excel'
+ - pyarrow>=10.0.1 ; extra == 'parquet'
+ - pyarrow>=10.0.1 ; extra == 'feather'
+ - tables>=3.8.0 ; extra == 'hdf5'
+ - pyreadstat>=1.2.0 ; extra == 'spss'
+ - sqlalchemy>=2.0.0 ; extra == 'postgresql'
+ - psycopg2>=2.9.6 ; extra == 'postgresql'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'postgresql'
+ - sqlalchemy>=2.0.0 ; extra == 'mysql'
+ - pymysql>=1.0.2 ; extra == 'mysql'
+ - sqlalchemy>=2.0.0 ; extra == 'sql-other'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'sql-other'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'sql-other'
+ - beautifulsoup4>=4.11.2 ; extra == 'html'
+ - html5lib>=1.1 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'xml'
+ - matplotlib>=3.6.3 ; extra == 'plot'
+ - jinja2>=3.1.2 ; extra == 'output-formatting'
+ - tabulate>=0.9.0 ; extra == 'output-formatting'
+ - pyqt5>=5.15.9 ; extra == 'clipboard'
+ - qtpy>=2.3.0 ; extra == 'clipboard'
+ - zstandard>=0.19.0 ; extra == 'compression'
+ - dataframe-api-compat>=0.1.7 ; extra == 'consortium-standard'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'all'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'all'
+ - beautifulsoup4>=4.11.2 ; extra == 'all'
+ - bottleneck>=1.3.6 ; extra == 'all'
+ - dataframe-api-compat>=0.1.7 ; extra == 'all'
+ - fastparquet>=2022.12.0 ; extra == 'all'
+ - fsspec>=2022.11.0 ; extra == 'all'
+ - gcsfs>=2022.11.0 ; extra == 'all'
+ - html5lib>=1.1 ; extra == 'all'
+ - hypothesis>=6.46.1 ; extra == 'all'
+ - jinja2>=3.1.2 ; extra == 'all'
+ - lxml>=4.9.2 ; extra == 'all'
+ - matplotlib>=3.6.3 ; extra == 'all'
+ - numba>=0.56.4 ; extra == 'all'
+ - numexpr>=2.8.4 ; extra == 'all'
+ - odfpy>=1.4.1 ; extra == 'all'
+ - openpyxl>=3.1.0 ; extra == 'all'
+ - pandas-gbq>=0.19.0 ; extra == 'all'
+ - psycopg2>=2.9.6 ; extra == 'all'
+ - pyarrow>=10.0.1 ; extra == 'all'
+ - pymysql>=1.0.2 ; extra == 'all'
+ - pyqt5>=5.15.9 ; extra == 'all'
+ - pyreadstat>=1.2.0 ; extra == 'all'
+ - pytest>=7.3.2 ; extra == 'all'
+ - pytest-xdist>=2.2.0 ; extra == 'all'
+ - python-calamine>=0.1.7 ; extra == 'all'
+ - pyxlsb>=1.0.10 ; extra == 'all'
+ - qtpy>=2.3.0 ; extra == 'all'
+ - scipy>=1.10.0 ; extra == 'all'
+ - s3fs>=2022.11.0 ; extra == 'all'
+ - sqlalchemy>=2.0.0 ; extra == 'all'
+ - tables>=3.8.0 ; extra == 'all'
+ - tabulate>=0.9.0 ; extra == 'all'
+ - xarray>=2022.12.0 ; extra == 'all'
+ - xlrd>=2.0.1 ; extra == 'all'
+ - xlsxwriter>=3.0.5 ; extra == 'all'
+ - zstandard>=0.19.0 ; extra == 'all'
requires_python: '>=3.9'
- kind: pypi
name: pandas
@@ -22486,91 +22394,91 @@ packages:
url: https://files.pythonhosted.org/packages/ab/63/966db1321a0ad55df1d1fe51505d2cdae191b84c907974873817b0a6e849/pandas-2.2.2-cp311-cp311-win_amd64.whl
sha256: 873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24
requires_dist:
- - numpy >=1.22.4 ; python_version < '3.11'
- - numpy >=1.23.2 ; python_version == '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - python-dateutil >=2.8.2
- - pytz >=2020.1
- - tzdata >=2022.7
- - hypothesis >=6.46.1 ; extra == 'test'
- - pytest >=7.3.2 ; extra == 'test'
- - pytest-xdist >=2.2.0 ; extra == 'test'
- - pyarrow >=10.0.1 ; extra == 'pyarrow'
- - bottleneck >=1.3.6 ; extra == 'performance'
- - numba >=0.56.4 ; extra == 'performance'
- - numexpr >=2.8.4 ; extra == 'performance'
- - scipy >=1.10.0 ; extra == 'computation'
- - xarray >=2022.12.0 ; extra == 'computation'
- - fsspec >=2022.11.0 ; extra == 'fss'
- - s3fs >=2022.11.0 ; extra == 'aws'
- - gcsfs >=2022.11.0 ; extra == 'gcp'
- - pandas-gbq >=0.19.0 ; extra == 'gcp'
- - odfpy >=1.4.1 ; extra == 'excel'
- - openpyxl >=3.1.0 ; extra == 'excel'
- - python-calamine >=0.1.7 ; extra == 'excel'
- - pyxlsb >=1.0.10 ; extra == 'excel'
- - xlrd >=2.0.1 ; extra == 'excel'
- - xlsxwriter >=3.0.5 ; extra == 'excel'
- - pyarrow >=10.0.1 ; extra == 'parquet'
- - pyarrow >=10.0.1 ; extra == 'feather'
- - tables >=3.8.0 ; extra == 'hdf5'
- - pyreadstat >=1.2.0 ; extra == 'spss'
- - sqlalchemy >=2.0.0 ; extra == 'postgresql'
- - psycopg2 >=2.9.6 ; extra == 'postgresql'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql'
- - sqlalchemy >=2.0.0 ; extra == 'mysql'
- - pymysql >=1.0.2 ; extra == 'mysql'
- - sqlalchemy >=2.0.0 ; extra == 'sql-other'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other'
- - beautifulsoup4 >=4.11.2 ; extra == 'html'
- - html5lib >=1.1 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'xml'
- - matplotlib >=3.6.3 ; extra == 'plot'
- - jinja2 >=3.1.2 ; extra == 'output-formatting'
- - tabulate >=0.9.0 ; extra == 'output-formatting'
- - pyqt5 >=5.15.9 ; extra == 'clipboard'
- - qtpy >=2.3.0 ; extra == 'clipboard'
- - zstandard >=0.19.0 ; extra == 'compression'
- - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'all'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'all'
- - beautifulsoup4 >=4.11.2 ; extra == 'all'
- - bottleneck >=1.3.6 ; extra == 'all'
- - dataframe-api-compat >=0.1.7 ; extra == 'all'
- - fastparquet >=2022.12.0 ; extra == 'all'
- - fsspec >=2022.11.0 ; extra == 'all'
- - gcsfs >=2022.11.0 ; extra == 'all'
- - html5lib >=1.1 ; extra == 'all'
- - hypothesis >=6.46.1 ; extra == 'all'
- - jinja2 >=3.1.2 ; extra == 'all'
- - lxml >=4.9.2 ; extra == 'all'
- - matplotlib >=3.6.3 ; extra == 'all'
- - numba >=0.56.4 ; extra == 'all'
- - numexpr >=2.8.4 ; extra == 'all'
- - odfpy >=1.4.1 ; extra == 'all'
- - openpyxl >=3.1.0 ; extra == 'all'
- - pandas-gbq >=0.19.0 ; extra == 'all'
- - psycopg2 >=2.9.6 ; extra == 'all'
- - pyarrow >=10.0.1 ; extra == 'all'
- - pymysql >=1.0.2 ; extra == 'all'
- - pyqt5 >=5.15.9 ; extra == 'all'
- - pyreadstat >=1.2.0 ; extra == 'all'
- - pytest >=7.3.2 ; extra == 'all'
- - pytest-xdist >=2.2.0 ; extra == 'all'
- - python-calamine >=0.1.7 ; extra == 'all'
- - pyxlsb >=1.0.10 ; extra == 'all'
- - qtpy >=2.3.0 ; extra == 'all'
- - scipy >=1.10.0 ; extra == 'all'
- - s3fs >=2022.11.0 ; extra == 'all'
- - sqlalchemy >=2.0.0 ; extra == 'all'
- - tables >=3.8.0 ; extra == 'all'
- - tabulate >=0.9.0 ; extra == 'all'
- - xarray >=2022.12.0 ; extra == 'all'
- - xlrd >=2.0.1 ; extra == 'all'
- - xlsxwriter >=3.0.5 ; extra == 'all'
- - zstandard >=0.19.0 ; extra == 'all'
+ - numpy>=1.22.4 ; python_version < '3.11'
+ - numpy>=1.23.2 ; python_version == '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - python-dateutil>=2.8.2
+ - pytz>=2020.1
+ - tzdata>=2022.7
+ - hypothesis>=6.46.1 ; extra == 'test'
+ - pytest>=7.3.2 ; extra == 'test'
+ - pytest-xdist>=2.2.0 ; extra == 'test'
+ - pyarrow>=10.0.1 ; extra == 'pyarrow'
+ - bottleneck>=1.3.6 ; extra == 'performance'
+ - numba>=0.56.4 ; extra == 'performance'
+ - numexpr>=2.8.4 ; extra == 'performance'
+ - scipy>=1.10.0 ; extra == 'computation'
+ - xarray>=2022.12.0 ; extra == 'computation'
+ - fsspec>=2022.11.0 ; extra == 'fss'
+ - s3fs>=2022.11.0 ; extra == 'aws'
+ - gcsfs>=2022.11.0 ; extra == 'gcp'
+ - pandas-gbq>=0.19.0 ; extra == 'gcp'
+ - odfpy>=1.4.1 ; extra == 'excel'
+ - openpyxl>=3.1.0 ; extra == 'excel'
+ - python-calamine>=0.1.7 ; extra == 'excel'
+ - pyxlsb>=1.0.10 ; extra == 'excel'
+ - xlrd>=2.0.1 ; extra == 'excel'
+ - xlsxwriter>=3.0.5 ; extra == 'excel'
+ - pyarrow>=10.0.1 ; extra == 'parquet'
+ - pyarrow>=10.0.1 ; extra == 'feather'
+ - tables>=3.8.0 ; extra == 'hdf5'
+ - pyreadstat>=1.2.0 ; extra == 'spss'
+ - sqlalchemy>=2.0.0 ; extra == 'postgresql'
+ - psycopg2>=2.9.6 ; extra == 'postgresql'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'postgresql'
+ - sqlalchemy>=2.0.0 ; extra == 'mysql'
+ - pymysql>=1.0.2 ; extra == 'mysql'
+ - sqlalchemy>=2.0.0 ; extra == 'sql-other'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'sql-other'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'sql-other'
+ - beautifulsoup4>=4.11.2 ; extra == 'html'
+ - html5lib>=1.1 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'xml'
+ - matplotlib>=3.6.3 ; extra == 'plot'
+ - jinja2>=3.1.2 ; extra == 'output-formatting'
+ - tabulate>=0.9.0 ; extra == 'output-formatting'
+ - pyqt5>=5.15.9 ; extra == 'clipboard'
+ - qtpy>=2.3.0 ; extra == 'clipboard'
+ - zstandard>=0.19.0 ; extra == 'compression'
+ - dataframe-api-compat>=0.1.7 ; extra == 'consortium-standard'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'all'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'all'
+ - beautifulsoup4>=4.11.2 ; extra == 'all'
+ - bottleneck>=1.3.6 ; extra == 'all'
+ - dataframe-api-compat>=0.1.7 ; extra == 'all'
+ - fastparquet>=2022.12.0 ; extra == 'all'
+ - fsspec>=2022.11.0 ; extra == 'all'
+ - gcsfs>=2022.11.0 ; extra == 'all'
+ - html5lib>=1.1 ; extra == 'all'
+ - hypothesis>=6.46.1 ; extra == 'all'
+ - jinja2>=3.1.2 ; extra == 'all'
+ - lxml>=4.9.2 ; extra == 'all'
+ - matplotlib>=3.6.3 ; extra == 'all'
+ - numba>=0.56.4 ; extra == 'all'
+ - numexpr>=2.8.4 ; extra == 'all'
+ - odfpy>=1.4.1 ; extra == 'all'
+ - openpyxl>=3.1.0 ; extra == 'all'
+ - pandas-gbq>=0.19.0 ; extra == 'all'
+ - psycopg2>=2.9.6 ; extra == 'all'
+ - pyarrow>=10.0.1 ; extra == 'all'
+ - pymysql>=1.0.2 ; extra == 'all'
+ - pyqt5>=5.15.9 ; extra == 'all'
+ - pyreadstat>=1.2.0 ; extra == 'all'
+ - pytest>=7.3.2 ; extra == 'all'
+ - pytest-xdist>=2.2.0 ; extra == 'all'
+ - python-calamine>=0.1.7 ; extra == 'all'
+ - pyxlsb>=1.0.10 ; extra == 'all'
+ - qtpy>=2.3.0 ; extra == 'all'
+ - scipy>=1.10.0 ; extra == 'all'
+ - s3fs>=2022.11.0 ; extra == 'all'
+ - sqlalchemy>=2.0.0 ; extra == 'all'
+ - tables>=3.8.0 ; extra == 'all'
+ - tabulate>=0.9.0 ; extra == 'all'
+ - xarray>=2022.12.0 ; extra == 'all'
+ - xlrd>=2.0.1 ; extra == 'all'
+ - xlsxwriter>=3.0.5 ; extra == 'all'
+ - zstandard>=0.19.0 ; extra == 'all'
requires_python: '>=3.9'
- kind: pypi
name: pandas
@@ -22578,91 +22486,183 @@ packages:
url: https://files.pythonhosted.org/packages/16/c6/75231fd47afd6b3f89011e7077f1a3958441264aca7ae9ff596e3276a5d0/pandas-2.2.2-cp311-cp311-macosx_11_0_arm64.whl
sha256: 8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151
requires_dist:
- - numpy >=1.22.4 ; python_version < '3.11'
- - numpy >=1.23.2 ; python_version == '3.11'
- - numpy >=1.26.0 ; python_version >= '3.12'
- - python-dateutil >=2.8.2
- - pytz >=2020.1
- - tzdata >=2022.7
- - hypothesis >=6.46.1 ; extra == 'test'
- - pytest >=7.3.2 ; extra == 'test'
- - pytest-xdist >=2.2.0 ; extra == 'test'
- - pyarrow >=10.0.1 ; extra == 'pyarrow'
- - bottleneck >=1.3.6 ; extra == 'performance'
- - numba >=0.56.4 ; extra == 'performance'
- - numexpr >=2.8.4 ; extra == 'performance'
- - scipy >=1.10.0 ; extra == 'computation'
- - xarray >=2022.12.0 ; extra == 'computation'
- - fsspec >=2022.11.0 ; extra == 'fss'
- - s3fs >=2022.11.0 ; extra == 'aws'
- - gcsfs >=2022.11.0 ; extra == 'gcp'
- - pandas-gbq >=0.19.0 ; extra == 'gcp'
- - odfpy >=1.4.1 ; extra == 'excel'
- - openpyxl >=3.1.0 ; extra == 'excel'
- - python-calamine >=0.1.7 ; extra == 'excel'
- - pyxlsb >=1.0.10 ; extra == 'excel'
- - xlrd >=2.0.1 ; extra == 'excel'
- - xlsxwriter >=3.0.5 ; extra == 'excel'
- - pyarrow >=10.0.1 ; extra == 'parquet'
- - pyarrow >=10.0.1 ; extra == 'feather'
- - tables >=3.8.0 ; extra == 'hdf5'
- - pyreadstat >=1.2.0 ; extra == 'spss'
- - sqlalchemy >=2.0.0 ; extra == 'postgresql'
- - psycopg2 >=2.9.6 ; extra == 'postgresql'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'postgresql'
- - sqlalchemy >=2.0.0 ; extra == 'mysql'
- - pymysql >=1.0.2 ; extra == 'mysql'
- - sqlalchemy >=2.0.0 ; extra == 'sql-other'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'sql-other'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'sql-other'
- - beautifulsoup4 >=4.11.2 ; extra == 'html'
- - html5lib >=1.1 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'html'
- - lxml >=4.9.2 ; extra == 'xml'
- - matplotlib >=3.6.3 ; extra == 'plot'
- - jinja2 >=3.1.2 ; extra == 'output-formatting'
- - tabulate >=0.9.0 ; extra == 'output-formatting'
- - pyqt5 >=5.15.9 ; extra == 'clipboard'
- - qtpy >=2.3.0 ; extra == 'clipboard'
- - zstandard >=0.19.0 ; extra == 'compression'
- - dataframe-api-compat >=0.1.7 ; extra == 'consortium-standard'
- - adbc-driver-postgresql >=0.8.0 ; extra == 'all'
- - adbc-driver-sqlite >=0.8.0 ; extra == 'all'
- - beautifulsoup4 >=4.11.2 ; extra == 'all'
- - bottleneck >=1.3.6 ; extra == 'all'
- - dataframe-api-compat >=0.1.7 ; extra == 'all'
- - fastparquet >=2022.12.0 ; extra == 'all'
- - fsspec >=2022.11.0 ; extra == 'all'
- - gcsfs >=2022.11.0 ; extra == 'all'
- - html5lib >=1.1 ; extra == 'all'
- - hypothesis >=6.46.1 ; extra == 'all'
- - jinja2 >=3.1.2 ; extra == 'all'
- - lxml >=4.9.2 ; extra == 'all'
- - matplotlib >=3.6.3 ; extra == 'all'
- - numba >=0.56.4 ; extra == 'all'
- - numexpr >=2.8.4 ; extra == 'all'
- - odfpy >=1.4.1 ; extra == 'all'
- - openpyxl >=3.1.0 ; extra == 'all'
- - pandas-gbq >=0.19.0 ; extra == 'all'
- - psycopg2 >=2.9.6 ; extra == 'all'
- - pyarrow >=10.0.1 ; extra == 'all'
- - pymysql >=1.0.2 ; extra == 'all'
- - pyqt5 >=5.15.9 ; extra == 'all'
- - pyreadstat >=1.2.0 ; extra == 'all'
- - pytest >=7.3.2 ; extra == 'all'
- - pytest-xdist >=2.2.0 ; extra == 'all'
- - python-calamine >=0.1.7 ; extra == 'all'
- - pyxlsb >=1.0.10 ; extra == 'all'
- - qtpy >=2.3.0 ; extra == 'all'
- - scipy >=1.10.0 ; extra == 'all'
- - s3fs >=2022.11.0 ; extra == 'all'
- - sqlalchemy >=2.0.0 ; extra == 'all'
- - tables >=3.8.0 ; extra == 'all'
- - tabulate >=0.9.0 ; extra == 'all'
- - xarray >=2022.12.0 ; extra == 'all'
- - xlrd >=2.0.1 ; extra == 'all'
- - xlsxwriter >=3.0.5 ; extra == 'all'
- - zstandard >=0.19.0 ; extra == 'all'
+ - numpy>=1.22.4 ; python_version < '3.11'
+ - numpy>=1.23.2 ; python_version == '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - python-dateutil>=2.8.2
+ - pytz>=2020.1
+ - tzdata>=2022.7
+ - hypothesis>=6.46.1 ; extra == 'test'
+ - pytest>=7.3.2 ; extra == 'test'
+ - pytest-xdist>=2.2.0 ; extra == 'test'
+ - pyarrow>=10.0.1 ; extra == 'pyarrow'
+ - bottleneck>=1.3.6 ; extra == 'performance'
+ - numba>=0.56.4 ; extra == 'performance'
+ - numexpr>=2.8.4 ; extra == 'performance'
+ - scipy>=1.10.0 ; extra == 'computation'
+ - xarray>=2022.12.0 ; extra == 'computation'
+ - fsspec>=2022.11.0 ; extra == 'fss'
+ - s3fs>=2022.11.0 ; extra == 'aws'
+ - gcsfs>=2022.11.0 ; extra == 'gcp'
+ - pandas-gbq>=0.19.0 ; extra == 'gcp'
+ - odfpy>=1.4.1 ; extra == 'excel'
+ - openpyxl>=3.1.0 ; extra == 'excel'
+ - python-calamine>=0.1.7 ; extra == 'excel'
+ - pyxlsb>=1.0.10 ; extra == 'excel'
+ - xlrd>=2.0.1 ; extra == 'excel'
+ - xlsxwriter>=3.0.5 ; extra == 'excel'
+ - pyarrow>=10.0.1 ; extra == 'parquet'
+ - pyarrow>=10.0.1 ; extra == 'feather'
+ - tables>=3.8.0 ; extra == 'hdf5'
+ - pyreadstat>=1.2.0 ; extra == 'spss'
+ - sqlalchemy>=2.0.0 ; extra == 'postgresql'
+ - psycopg2>=2.9.6 ; extra == 'postgresql'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'postgresql'
+ - sqlalchemy>=2.0.0 ; extra == 'mysql'
+ - pymysql>=1.0.2 ; extra == 'mysql'
+ - sqlalchemy>=2.0.0 ; extra == 'sql-other'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'sql-other'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'sql-other'
+ - beautifulsoup4>=4.11.2 ; extra == 'html'
+ - html5lib>=1.1 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'xml'
+ - matplotlib>=3.6.3 ; extra == 'plot'
+ - jinja2>=3.1.2 ; extra == 'output-formatting'
+ - tabulate>=0.9.0 ; extra == 'output-formatting'
+ - pyqt5>=5.15.9 ; extra == 'clipboard'
+ - qtpy>=2.3.0 ; extra == 'clipboard'
+ - zstandard>=0.19.0 ; extra == 'compression'
+ - dataframe-api-compat>=0.1.7 ; extra == 'consortium-standard'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'all'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'all'
+ - beautifulsoup4>=4.11.2 ; extra == 'all'
+ - bottleneck>=1.3.6 ; extra == 'all'
+ - dataframe-api-compat>=0.1.7 ; extra == 'all'
+ - fastparquet>=2022.12.0 ; extra == 'all'
+ - fsspec>=2022.11.0 ; extra == 'all'
+ - gcsfs>=2022.11.0 ; extra == 'all'
+ - html5lib>=1.1 ; extra == 'all'
+ - hypothesis>=6.46.1 ; extra == 'all'
+ - jinja2>=3.1.2 ; extra == 'all'
+ - lxml>=4.9.2 ; extra == 'all'
+ - matplotlib>=3.6.3 ; extra == 'all'
+ - numba>=0.56.4 ; extra == 'all'
+ - numexpr>=2.8.4 ; extra == 'all'
+ - odfpy>=1.4.1 ; extra == 'all'
+ - openpyxl>=3.1.0 ; extra == 'all'
+ - pandas-gbq>=0.19.0 ; extra == 'all'
+ - psycopg2>=2.9.6 ; extra == 'all'
+ - pyarrow>=10.0.1 ; extra == 'all'
+ - pymysql>=1.0.2 ; extra == 'all'
+ - pyqt5>=5.15.9 ; extra == 'all'
+ - pyreadstat>=1.2.0 ; extra == 'all'
+ - pytest>=7.3.2 ; extra == 'all'
+ - pytest-xdist>=2.2.0 ; extra == 'all'
+ - python-calamine>=0.1.7 ; extra == 'all'
+ - pyxlsb>=1.0.10 ; extra == 'all'
+ - qtpy>=2.3.0 ; extra == 'all'
+ - scipy>=1.10.0 ; extra == 'all'
+ - s3fs>=2022.11.0 ; extra == 'all'
+ - sqlalchemy>=2.0.0 ; extra == 'all'
+ - tables>=3.8.0 ; extra == 'all'
+ - tabulate>=0.9.0 ; extra == 'all'
+ - xarray>=2022.12.0 ; extra == 'all'
+ - xlrd>=2.0.1 ; extra == 'all'
+ - xlsxwriter>=3.0.5 ; extra == 'all'
+ - zstandard>=0.19.0 ; extra == 'all'
+ requires_python: '>=3.9'
+- kind: pypi
+ name: pandas
+ version: 2.2.2
+ url: https://files.pythonhosted.org/packages/1b/70/61704497903d43043e288017cb2b82155c0d41e15f5c17807920877b45c2/pandas-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288
+ requires_dist:
+ - numpy>=1.22.4 ; python_version < '3.11'
+ - numpy>=1.23.2 ; python_version == '3.11'
+ - numpy>=1.26.0 ; python_version >= '3.12'
+ - python-dateutil>=2.8.2
+ - pytz>=2020.1
+ - tzdata>=2022.7
+ - hypothesis>=6.46.1 ; extra == 'test'
+ - pytest>=7.3.2 ; extra == 'test'
+ - pytest-xdist>=2.2.0 ; extra == 'test'
+ - pyarrow>=10.0.1 ; extra == 'pyarrow'
+ - bottleneck>=1.3.6 ; extra == 'performance'
+ - numba>=0.56.4 ; extra == 'performance'
+ - numexpr>=2.8.4 ; extra == 'performance'
+ - scipy>=1.10.0 ; extra == 'computation'
+ - xarray>=2022.12.0 ; extra == 'computation'
+ - fsspec>=2022.11.0 ; extra == 'fss'
+ - s3fs>=2022.11.0 ; extra == 'aws'
+ - gcsfs>=2022.11.0 ; extra == 'gcp'
+ - pandas-gbq>=0.19.0 ; extra == 'gcp'
+ - odfpy>=1.4.1 ; extra == 'excel'
+ - openpyxl>=3.1.0 ; extra == 'excel'
+ - python-calamine>=0.1.7 ; extra == 'excel'
+ - pyxlsb>=1.0.10 ; extra == 'excel'
+ - xlrd>=2.0.1 ; extra == 'excel'
+ - xlsxwriter>=3.0.5 ; extra == 'excel'
+ - pyarrow>=10.0.1 ; extra == 'parquet'
+ - pyarrow>=10.0.1 ; extra == 'feather'
+ - tables>=3.8.0 ; extra == 'hdf5'
+ - pyreadstat>=1.2.0 ; extra == 'spss'
+ - sqlalchemy>=2.0.0 ; extra == 'postgresql'
+ - psycopg2>=2.9.6 ; extra == 'postgresql'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'postgresql'
+ - sqlalchemy>=2.0.0 ; extra == 'mysql'
+ - pymysql>=1.0.2 ; extra == 'mysql'
+ - sqlalchemy>=2.0.0 ; extra == 'sql-other'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'sql-other'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'sql-other'
+ - beautifulsoup4>=4.11.2 ; extra == 'html'
+ - html5lib>=1.1 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'html'
+ - lxml>=4.9.2 ; extra == 'xml'
+ - matplotlib>=3.6.3 ; extra == 'plot'
+ - jinja2>=3.1.2 ; extra == 'output-formatting'
+ - tabulate>=0.9.0 ; extra == 'output-formatting'
+ - pyqt5>=5.15.9 ; extra == 'clipboard'
+ - qtpy>=2.3.0 ; extra == 'clipboard'
+ - zstandard>=0.19.0 ; extra == 'compression'
+ - dataframe-api-compat>=0.1.7 ; extra == 'consortium-standard'
+ - adbc-driver-postgresql>=0.8.0 ; extra == 'all'
+ - adbc-driver-sqlite>=0.8.0 ; extra == 'all'
+ - beautifulsoup4>=4.11.2 ; extra == 'all'
+ - bottleneck>=1.3.6 ; extra == 'all'
+ - dataframe-api-compat>=0.1.7 ; extra == 'all'
+ - fastparquet>=2022.12.0 ; extra == 'all'
+ - fsspec>=2022.11.0 ; extra == 'all'
+ - gcsfs>=2022.11.0 ; extra == 'all'
+ - html5lib>=1.1 ; extra == 'all'
+ - hypothesis>=6.46.1 ; extra == 'all'
+ - jinja2>=3.1.2 ; extra == 'all'
+ - lxml>=4.9.2 ; extra == 'all'
+ - matplotlib>=3.6.3 ; extra == 'all'
+ - numba>=0.56.4 ; extra == 'all'
+ - numexpr>=2.8.4 ; extra == 'all'
+ - odfpy>=1.4.1 ; extra == 'all'
+ - openpyxl>=3.1.0 ; extra == 'all'
+ - pandas-gbq>=0.19.0 ; extra == 'all'
+ - psycopg2>=2.9.6 ; extra == 'all'
+ - pyarrow>=10.0.1 ; extra == 'all'
+ - pymysql>=1.0.2 ; extra == 'all'
+ - pyqt5>=5.15.9 ; extra == 'all'
+ - pyreadstat>=1.2.0 ; extra == 'all'
+ - pytest>=7.3.2 ; extra == 'all'
+ - pytest-xdist>=2.2.0 ; extra == 'all'
+ - python-calamine>=0.1.7 ; extra == 'all'
+ - pyxlsb>=1.0.10 ; extra == 'all'
+ - qtpy>=2.3.0 ; extra == 'all'
+ - scipy>=1.10.0 ; extra == 'all'
+ - s3fs>=2022.11.0 ; extra == 'all'
+ - sqlalchemy>=2.0.0 ; extra == 'all'
+ - tables>=3.8.0 ; extra == 'all'
+ - tabulate>=0.9.0 ; extra == 'all'
+ - xarray>=2022.12.0 ; extra == 'all'
+ - xlrd>=2.0.1 ; extra == 'all'
+ - xlsxwriter>=3.0.5 ; extra == 'all'
+ - zstandard>=0.19.0 ; extra == 'all'
requires_python: '>=3.9'
- kind: conda
name: patchelf
@@ -22693,12 +22693,12 @@ packages:
- kind: pypi
name: pillow
version: 10.0.0
- url: https://files.pythonhosted.org/packages/b7/ad/71982d18fd28ed1f93c31b8648f980ebdbdbcf7d8c9c9b4af59290914ce9/Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl
- sha256: d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f
+ url: https://files.pythonhosted.org/packages/7a/54/f6a14d95cba8ff082c550d836c9e5c23f1641d2ac291c23efe0494219b8c/Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl
+ sha256: 9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22717,12 +22717,12 @@ packages:
- kind: pypi
name: pillow
version: 10.0.0
- url: https://files.pythonhosted.org/packages/66/d4/054e491f0880bf0119ee79cdc03264e01d5732e06c454da8c69b83a7c8f2/Pillow-10.0.0-cp311-cp311-win_amd64.whl
- sha256: 3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f
+ url: https://files.pythonhosted.org/packages/79/53/3a7277ae95bfe86b8b4db0ed1d08c4924aa2dfbfe51b8fe0e310b160a9c6/Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
+ sha256: c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22746,7 +22746,7 @@ packages:
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22765,12 +22765,12 @@ packages:
- kind: pypi
name: pillow
version: 10.0.0
- url: https://files.pythonhosted.org/packages/79/53/3a7277ae95bfe86b8b4db0ed1d08c4924aa2dfbfe51b8fe0e310b160a9c6/Pillow-10.0.0-cp311-cp311-manylinux_2_28_aarch64.whl
- sha256: c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd
+ url: https://files.pythonhosted.org/packages/b7/ad/71982d18fd28ed1f93c31b8648f980ebdbdbcf7d8c9c9b4af59290914ce9/Pillow-10.0.0-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22789,12 +22789,12 @@ packages:
- kind: pypi
name: pillow
version: 10.0.0
- url: https://files.pythonhosted.org/packages/7a/54/f6a14d95cba8ff082c550d836c9e5c23f1641d2ac291c23efe0494219b8c/Pillow-10.0.0-cp311-cp311-macosx_10_10_x86_64.whl
- sha256: 9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485
+ url: https://files.pythonhosted.org/packages/66/d4/054e491f0880bf0119ee79cdc03264e01d5732e06c454da8c69b83a7c8f2/Pillow-10.0.0-cp311-cp311-win_amd64.whl
+ sha256: 3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22813,12 +22813,12 @@ packages:
- kind: pypi
name: pillow
version: 10.3.0
- url: https://files.pythonhosted.org/packages/e5/51/e4b35e394b4e5ca24983e50361a1db3d7da05b1758074f9c4f5b4be4b22a/pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl
- sha256: 5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795
+ url: https://files.pythonhosted.org/packages/81/ff/ad3c942d865f9e45ce84eeb31795e6d4d94e1f1eea51026d5154028510d7/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
+ sha256: 1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22841,12 +22841,12 @@ packages:
- kind: pypi
name: pillow
version: 10.3.0
- url: https://files.pythonhosted.org/packages/81/ff/ad3c942d865f9e45ce84eeb31795e6d4d94e1f1eea51026d5154028510d7/pillow-10.3.0-cp311-cp311-manylinux_2_28_x86_64.whl
- sha256: 1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd
+ url: https://files.pythonhosted.org/packages/0a/16/c83877524c47976f16703d2e05c363244bc1e60ab439e078b3cd046d07db/pillow-10.3.0-cp311-cp311-win_amd64.whl
+ sha256: 8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22869,12 +22869,12 @@ packages:
- kind: pypi
name: pillow
version: 10.3.0
- url: https://files.pythonhosted.org/packages/0a/16/c83877524c47976f16703d2e05c363244bc1e60ab439e078b3cd046d07db/pillow-10.3.0-cp311-cp311-win_amd64.whl
- sha256: 8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d
+ url: https://files.pythonhosted.org/packages/00/5c/7633f291def20082bad31b844fe5ed07742aae8504e4cfe2f331ee727178/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22897,12 +22897,12 @@ packages:
- kind: pypi
name: pillow
version: 10.3.0
- url: https://files.pythonhosted.org/packages/00/5c/7633f291def20082bad31b844fe5ed07742aae8504e4cfe2f331ee727178/pillow-10.3.0-cp311-cp311-macosx_11_0_arm64.whl
- sha256: e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57
+ url: https://files.pythonhosted.org/packages/e5/51/e4b35e394b4e5ca24983e50361a1db3d7da05b1758074f9c4f5b4be4b22a/pillow-10.3.0-cp311-cp311-macosx_10_10_x86_64.whl
+ sha256: 5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795
requires_dist:
- furo ; extra == 'docs'
- olefile ; extra == 'docs'
- - sphinx >=2.4 ; extra == 'docs'
+ - sphinx>=2.4 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- sphinx-inline-tabs ; extra == 'docs'
- sphinx-removed-in ; extra == 'docs'
@@ -22974,16 +22974,33 @@ packages:
url: https://files.pythonhosted.org/packages/b0/15/1691fa5aaddc0c4ea4901c26f6137c29d5f6673596fe960a0340e8c308e1/platformdirs-4.2.1-py3-none-any.whl
sha256: 17d5a1161b3fd67b390023cb2d3b026bbd40abde6fdb052dfbd3a29c3ba22ee1
requires_dist:
- - furo >=2023.9.10 ; extra == 'docs'
- - proselint >=0.13 ; extra == 'docs'
- - sphinx-autodoc-typehints >=1.25.2 ; extra == 'docs'
- - sphinx >=7.2.6 ; extra == 'docs'
- - appdirs ==1.4.4 ; extra == 'test'
- - covdefaults >=2.3 ; extra == 'test'
- - pytest-cov >=4.1 ; extra == 'test'
- - pytest-mock >=3.12 ; extra == 'test'
- - pytest >=7.4.3 ; extra == 'test'
- - mypy >=1.8 ; extra == 'type'
+ - furo>=2023.9.10 ; extra == 'docs'
+ - proselint>=0.13 ; extra == 'docs'
+ - sphinx-autodoc-typehints>=1.25.2 ; extra == 'docs'
+ - sphinx>=7.2.6 ; extra == 'docs'
+ - appdirs==1.4.4 ; extra == 'test'
+ - covdefaults>=2.3 ; extra == 'test'
+ - pytest-cov>=4.1 ; extra == 'test'
+ - pytest-mock>=3.12 ; extra == 'test'
+ - pytest>=7.4.3 ; extra == 'test'
+ - mypy>=1.8 ; extra == 'type'
+ requires_python: '>=3.8'
+- kind: pypi
+ name: platformdirs
+ version: 4.2.2
+ url: https://files.pythonhosted.org/packages/68/13/2aa1f0e1364feb2c9ef45302f387ac0bd81484e9c9a4c5688a322fbdfd08/platformdirs-4.2.2-py3-none-any.whl
+ sha256: 2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee
+ requires_dist:
+ - furo>=2023.9.10 ; extra == 'docs'
+ - proselint>=0.13 ; extra == 'docs'
+ - sphinx-autodoc-typehints>=1.25.2 ; extra == 'docs'
+ - sphinx>=7.2.6 ; extra == 'docs'
+ - appdirs==1.4.4 ; extra == 'test'
+ - covdefaults>=2.3 ; extra == 'test'
+ - pytest-cov>=4.1 ; extra == 'test'
+ - pytest-mock>=3.12 ; extra == 'test'
+ - pytest>=7.4.3 ; extra == 'test'
+ - mypy>=1.8 ; extra == 'type'
requires_python: '>=3.8'
- kind: pypi
name: plots
@@ -23112,8 +23129,8 @@ packages:
url: https://files.pythonhosted.org/packages/ad/41/7361075f3a31dcd05a6a38cfd807a6eecbfb6dbfe420d922cd400fc03ac1/proto_plus-1.23.0-py3-none-any.whl
sha256: a829c79e619e1cf632de091013a4173deed13a55f326ef84f05af6f50ff4c82c
requires_dist:
- - protobuf <5.0.0.dev0, >=3.19.0
- - google-api-core[grpc] >=1.31.5 ; extra == 'testing'
+ - protobuf<5.0.0.dev0,>=3.19.0
+ - google-api-core[grpc]>=1.31.5 ; extra == 'testing'
requires_python: '>=3.6'
- kind: pypi
name: protobuf
@@ -23130,8 +23147,8 @@ packages:
- kind: pypi
name: protobuf
version: 4.25.3
- url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl
- sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8
+ url: https://files.pythonhosted.org/packages/d8/82/aefe901174b5a618daee511ddd00342193c1b545e3cd6a2cd6df9ba452b5/protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl
+ sha256: e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019
requires_python: '>=3.8'
- kind: pypi
name: protobuf
@@ -23142,14 +23159,14 @@ packages:
- kind: pypi
name: protobuf
version: 4.25.3
- url: https://files.pythonhosted.org/packages/d8/82/aefe901174b5a618daee511ddd00342193c1b545e3cd6a2cd6df9ba452b5/protobuf-4.25.3-cp37-abi3-manylinux2014_aarch64.whl
- sha256: e7cb0ae90dd83727f0c0718634ed56837bfeeee29a5f82a7514c03ee1364c019
+ url: https://files.pythonhosted.org/packages/ad/6e/1bed3b7c904cc178cb8ee8dbaf72934964452b3de95b7a63412591edb93c/protobuf-4.25.3-cp310-abi3-win_amd64.whl
+ sha256: 209ba4cc916bab46f64e56b85b090607a676f66b473e6b762e6f1d9d591eb2e8
requires_python: '>=3.8'
- kind: pypi
name: psutil
version: 5.9.8
- url: https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl
- sha256: aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81
+ url: https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4
requires_dist:
- ipaddress ; python_version < '3.0' and extra == 'test'
- mock ; python_version < '3.0' and extra == 'test'
@@ -23160,8 +23177,8 @@ packages:
- kind: pypi
name: psutil
version: 5.9.8
- url: https://files.pythonhosted.org/packages/c5/4f/0e22aaa246f96d6ac87fe5ebb9c5a693fbe8877f537a1022527c47ca43c5/psutil-5.9.8-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4
+ url: https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl
+ sha256: 8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf
requires_dist:
- ipaddress ; python_version < '3.0' and extra == 'test'
- mock ; python_version < '3.0' and extra == 'test'
@@ -23172,8 +23189,8 @@ packages:
- kind: pypi
name: psutil
version: 5.9.8
- url: https://files.pythonhosted.org/packages/93/52/3e39d26feae7df0aa0fd510b14012c3678b36ed068f7d78b8d8784d61f0e/psutil-5.9.8-cp37-abi3-win_amd64.whl
- sha256: 8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf
+ url: https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl
+ sha256: d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
requires_dist:
- ipaddress ; python_version < '3.0' and extra == 'test'
- mock ; python_version < '3.0' and extra == 'test'
@@ -23184,8 +23201,8 @@ packages:
- kind: pypi
name: psutil
version: 5.9.8
- url: https://files.pythonhosted.org/packages/05/33/2d74d588408caedd065c2497bdb5ef83ce6082db01289a1e1147f6639802/psutil-5.9.8-cp38-abi3-macosx_11_0_arm64.whl
- sha256: d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8
+ url: https://files.pythonhosted.org/packages/e7/e3/07ae864a636d70a8a6f58da27cb1179192f1140d5d1da10886ade9405797/psutil-5.9.8-cp36-abi3-macosx_10_9_x86_64.whl
+ sha256: aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81
requires_dist:
- ipaddress ; python_version < '3.0' and extra == 'test'
- mock ; python_version < '3.0' and extra == 'test'
@@ -23731,7 +23748,7 @@ packages:
url: https://files.pythonhosted.org/packages/13/68/8906226b15ef38e71dc926c321d2fe99de8048e9098b5dfd38343011c886/pyasn1_modules-0.4.0-py3-none-any.whl
sha256: be04f15b66c206eed667e0bb5ab27e2b1855ea54a842e5037738099e8ca4ae0b
requires_dist:
- - pyasn1 <0.7.0, >=0.4.6
+ - pyasn1<0.7.0,>=0.4.6
requires_python: '>=3.8'
- kind: pypi
name: pycparser
@@ -23762,9 +23779,9 @@ packages:
sha256: 126bdbae72087d8d038b113aab6b059b4553cb59348e3024bb1a1cae406ace9e
requires_dist:
- deprecated
- - pyjwt[crypto] >=2.4.0
- - pynacl >=1.4.0
- - requests >=2.14.0
+ - pyjwt[crypto]>=2.4.0
+ - pynacl>=1.4.0
+ - requests>=2.14.0
requires_python: '>=3.7'
- kind: pypi
name: pyglet
@@ -23778,7 +23795,7 @@ packages:
url: https://files.pythonhosted.org/packages/38/d7/0b8e35cb3ff69dd981e358e72e0a5632f847d4bd61876be04518cb4e075a/pygltflib-1.16.2.tar.gz
sha256: 4f9481f5841b0b8fb7b271b0414b394b503405260a6ee0cf2c330a5420d19b64
requires_dist:
- - dataclasses-json >=0.0.25
+ - dataclasses-json>=0.0.25
- deprecated
- dataclasses ; python_version >= '3.6' and python_version < '3.7'
requires_python: '>=3.6'
@@ -23789,19 +23806,19 @@ packages:
sha256: 59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320
requires_dist:
- typing-extensions ; python_version <= '3.7'
- - cryptography >=3.4.0 ; extra == 'crypto'
- - sphinx <5.0.0, >=4.5.0 ; extra == 'dev'
+ - cryptography>=3.4.0 ; extra == 'crypto'
+ - sphinx<5.0.0,>=4.5.0 ; extra == 'dev'
- sphinx-rtd-theme ; extra == 'dev'
- zope-interface ; extra == 'dev'
- - cryptography >=3.4.0 ; extra == 'dev'
- - pytest <7.0.0, >=6.0.0 ; extra == 'dev'
- - coverage[toml] ==5.0.4 ; extra == 'dev'
+ - cryptography>=3.4.0 ; extra == 'dev'
+ - pytest<7.0.0,>=6.0.0 ; extra == 'dev'
+ - coverage[toml]==5.0.4 ; extra == 'dev'
- pre-commit ; extra == 'dev'
- - sphinx <5.0.0, >=4.5.0 ; extra == 'docs'
+ - sphinx<5.0.0,>=4.5.0 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- zope-interface ; extra == 'docs'
- - pytest <7.0.0, >=6.0.0 ; extra == 'tests'
- - coverage[toml] ==5.0.4 ; extra == 'tests'
+ - pytest<7.0.0,>=6.0.0 ; extra == 'tests'
+ - coverage[toml]==5.0.4 ; extra == 'tests'
requires_python: '>=3.7'
- kind: pypi
name: pynacl
@@ -23809,23 +23826,23 @@ packages:
url: https://files.pythonhosted.org/packages/ce/75/0b8ede18506041c0bf23ac4d8e2971b4161cd6ce630b177d0a08eb0d8857/PyNaCl-1.5.0-cp36-abi3-macosx_10_10_universal2.whl
sha256: 401002a4aaa07c9414132aaed7f6836ff98f59277a234704ff66878c2ee4a0d1
requires_dist:
- - cffi >=1.4.1
- - sphinx >=1.6.5 ; extra == 'docs'
+ - cffi>=1.4.1
+ - sphinx>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pytest !=3.3.0, >=3.2.1 ; extra == 'tests'
- - hypothesis >=3.27.0 ; extra == 'tests'
+ - pytest!=3.3.0,>=3.2.1 ; extra == 'tests'
+ - hypothesis>=3.27.0 ; extra == 'tests'
requires_python: '>=3.6'
- kind: pypi
name: pynacl
version: 1.5.0
- url: https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl
- sha256: 20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93
+ url: https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl
+ sha256: 52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92
requires_dist:
- - cffi >=1.4.1
- - sphinx >=1.6.5 ; extra == 'docs'
+ - cffi>=1.4.1
+ - sphinx>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pytest !=3.3.0, >=3.2.1 ; extra == 'tests'
- - hypothesis >=3.27.0 ; extra == 'tests'
+ - pytest!=3.3.0,>=3.2.1 ; extra == 'tests'
+ - hypothesis>=3.27.0 ; extra == 'tests'
requires_python: '>=3.6'
- kind: pypi
name: pynacl
@@ -23833,23 +23850,23 @@ packages:
url: https://files.pythonhosted.org/packages/ee/87/f1bb6a595f14a327e8285b9eb54d41fef76c585a0edef0a45f6fc95de125/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_24_x86_64.whl
sha256: 0c84947a22519e013607c9be43706dd42513f9e6ae5d39d3613ca1e142fba44d
requires_dist:
- - cffi >=1.4.1
- - sphinx >=1.6.5 ; extra == 'docs'
+ - cffi>=1.4.1
+ - sphinx>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pytest !=3.3.0, >=3.2.1 ; extra == 'tests'
- - hypothesis >=3.27.0 ; extra == 'tests'
+ - pytest!=3.3.0,>=3.2.1 ; extra == 'tests'
+ - hypothesis>=3.27.0 ; extra == 'tests'
requires_python: '>=3.6'
- kind: pypi
name: pynacl
version: 1.5.0
- url: https://files.pythonhosted.org/packages/59/bb/fddf10acd09637327a97ef89d2a9d621328850a72f1fdc8c08bdf72e385f/PyNaCl-1.5.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.manylinux_2_24_aarch64.whl
- sha256: 52cb72a79269189d4e0dc537556f4740f7f0a9ec41c1322598799b0bdad4ef92
+ url: https://files.pythonhosted.org/packages/5e/22/d3db169895faaf3e2eda892f005f433a62db2decbcfbc2f61e6517adfa87/PyNaCl-1.5.0-cp36-abi3-win_amd64.whl
+ sha256: 20f42270d27e1b6a29f54032090b972d97f0a1b0948cc52392041ef7831fee93
requires_dist:
- - cffi >=1.4.1
- - sphinx >=1.6.5 ; extra == 'docs'
+ - cffi>=1.4.1
+ - sphinx>=1.6.5 ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
- - pytest !=3.3.0, >=3.2.1 ; extra == 'tests'
- - hypothesis >=3.27.0 ; extra == 'tests'
+ - pytest!=3.3.0,>=3.2.1 ; extra == 'tests'
+ - hypothesis>=3.27.0 ; extra == 'tests'
requires_python: '>=3.6'
- kind: pypi
name: pynndescent
@@ -23857,31 +23874,31 @@ packages:
url: https://files.pythonhosted.org/packages/bf/06/18c0e17eb245b7caeb861f2ff747adb0575500183b6ec4282d5350d29e9f/pynndescent-0.5.12-py3-none-any.whl
sha256: 9023dc5fea520a4e84d0633ae735db97d2509da927bfa86c897e61f3315473c7
requires_dist:
- - scikit-learn >=0.18
- - scipy >=1.0
- - numba >=0.51.2
- - llvmlite >=0.30
- - joblib >=0.11
- - importlib-metadata >=4.8.1 ; python_version < '3.8'
+ - scikit-learn>=0.18
+ - scipy>=1.0
+ - numba>=0.51.2
+ - llvmlite>=0.30
+ - joblib>=0.11
+ - importlib-metadata>=4.8.1 ; python_version < '3.8'
- kind: pypi
name: pyopengl
version: 3.1.0
- url: https://files.pythonhosted.org/packages/ce/33/ef0e3b40a3f4cbfcfb93511652673fb19d07bafac0611f01f6237d1978ed/PyOpenGL-3.1.0.zip
- sha256: efa4e39a49b906ccbe66758812ca81ced13a6f26931ab2ba2dba2750c016c0d0
+ url: https://files.pythonhosted.org/packages/9c/1d/4544708aaa89f26c97cc09450bb333a23724a320923e74d73e028b3560f9/PyOpenGL-3.1.0.tar.gz
+ sha256: 9b47c5c3a094fa518ca88aeed35ae75834d53e4285512c61879f67a48c94ddaf
- kind: pypi
name: pyopf
version: 1.1.1
url: https://files.pythonhosted.org/packages/a8/26/b67fe94cb53c489c5ccaed118f257a5100e7775071515942c9f45d8cd40f/pyopf-1.1.1-py3-none-any.whl
sha256: 10971881afcb7ed0dd373f7e88862fa8ad0f70fe4329f2ef5093c152e923831f
requires_dist:
- - argparse >=1.4.0
- - numpy >=1.24.1
- - pillow >=9.5.0
- - pygltflib >=1.15.3
- - python-dateutil >=2.8.2
- - shapely >=2.0.1
- - tqdm >=4.65.0
- - simplejson >=18.3 ; extra == 'tests'
+ - argparse>=1.4.0
+ - numpy>=1.24.1
+ - pillow>=9.5.0
+ - pygltflib>=1.15.3
+ - python-dateutil>=2.8.2
+ - shapely>=2.0.1
+ - tqdm>=4.65.0
+ - simplejson>=18.3 ; extra == 'tests'
requires_python: '>=3.10'
- kind: pypi
name: pyparsing
@@ -23903,8 +23920,8 @@ packages:
- networkx
- numpy
- pillow
- - pyglet >=1.4.10
- - pyopengl ==3.1.0
+ - pyglet>=1.4.10
+ - pyopengl==3.1.0
- scipy
- six
- trimesh
@@ -24262,7 +24279,7 @@ packages:
url: https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl
sha256: a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427
requires_dist:
- - six >=1.5
+ - six>=1.5
requires_python: '!=3.0.*,!=3.1.*,!=3.2.*,>=2.7'
- kind: conda
name: python_abi
@@ -24344,12 +24361,6 @@ packages:
version: '2024.1'
url: https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl
sha256: 328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319
-- kind: pypi
- name: pyyaml
- version: 6.0.1
- url: https://files.pythonhosted.org/packages/ec/0d/26fb23e8863e0aeaac0c64e03fd27367ad2ae3f3cccf3798ee98ce160368/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007
- requires_python: '>=3.6'
- kind: pypi
name: pyyaml
version: 6.0.1
@@ -24368,17 +24379,22 @@ packages:
url: https://files.pythonhosted.org/packages/28/09/55f715ddbf95a054b764b547f617e22f1d5e45d83905660e9a088078fe67/PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl
sha256: f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab
requires_python: '>=3.6'
+- kind: pypi
+ name: pyyaml
+ version: 6.0.1
+ url: https://files.pythonhosted.org/packages/ec/0d/26fb23e8863e0aeaac0c64e03fd27367ad2ae3f3cccf3798ee98ce160368/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007
+ requires_python: '>=3.6'
- kind: pypi
name: raw-mesh
version: 0.1.0
path: examples/python/raw_mesh
- sha256: 29d7482ea0dae8ceb7b95c4adeff04bd362cab0842f3f0a9572b2c42013c7656
+ sha256: 9006b1b7ca8bd9c90ba0bf0d7a00641b7dd13a6de76a2828f79ec5b853a4ef98
requires_dist:
- numpy
- - pillow
- - requests <3, >=2.31
+ - requests>=2.31,<3
- rerun-sdk
- - trimesh ==3.15.2
+ - trimesh==3.15.2
editable: true
- kind: conda
name: rdma-core
@@ -24645,12 +24661,6 @@ packages:
license_family: GPL
size: 255870
timestamp: 1679532707590
-- kind: pypi
- name: regex
- version: 2024.5.10
- url: https://files.pythonhosted.org/packages/6c/99/152009b8f39e38c03dafa07ffdbc1027981dc2249d42919ed54eaeb9450b/regex-2024.5.10-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 45cc13d398b6359a7708986386f72bd156ae781c3e83a68a6d4cee5af04b1ce9
- requires_python: '>=3.8'
- kind: pypi
name: regex
version: 2024.5.10
@@ -24669,18 +24679,24 @@ packages:
url: https://files.pythonhosted.org/packages/da/34/3f219ae001d3f52d1567dbeae7ff8d9f08696006989d59ace7cc7c63800c/regex-2024.5.10-cp311-cp311-macosx_11_0_arm64.whl
sha256: ad45f3bccfcb00868f2871dce02a755529838d2b86163ab8a246115e80cfb7d6
requires_python: '>=3.8'
+- kind: pypi
+ name: regex
+ version: 2024.5.10
+ url: https://files.pythonhosted.org/packages/6c/99/152009b8f39e38c03dafa07ffdbc1027981dc2249d42919ed54eaeb9450b/regex-2024.5.10-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 45cc13d398b6359a7708986386f72bd156ae781c3e83a68a6d4cee5af04b1ce9
+ requires_python: '>=3.8'
- kind: pypi
name: requests
version: 2.31.0
url: https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl
sha256: 58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f
requires_dist:
- - charset-normalizer <4, >=2
- - idna <4, >=2.5
- - urllib3 <3, >=1.21.1
- - certifi >=2017.4.17
- - pysocks !=1.5.7, >=1.5.6 ; extra == 'socks'
- - chardet <6, >=3.0.2 ; extra == 'use_chardet_on_py3'
+ - charset-normalizer<4,>=2
+ - idna<4,>=2.5
+ - urllib3<3,>=1.21.1
+ - certifi>=2017.4.17
+ - pysocks!=1.5.7,>=1.5.6 ; extra == 'socks'
+ - chardet<6,>=3.0.2 ; extra == 'use_chardet_on_py3'
requires_python: '>=3.7'
- kind: pypi
name: rerun-sdk
@@ -24694,8 +24710,8 @@ packages:
sha256: b2ef153b0bedd672c3e0ce89b7be1f64f4344b2b75d71748899faea270383fa2
requires_dist:
- numpy
- - opencv-python >4.6
- - requests <3, >=2.31
+ - opencv-python>4.6
+ - requests>=2.31,<3
- rerun-sdk
- tqdm
editable: true
@@ -24766,7 +24782,7 @@ packages:
url: https://files.pythonhosted.org/packages/49/97/fa78e3d2f65c02c8e1268b9aba606569fe97f6c8f7c2d74394553347c145/rsa-4.9-py3-none-any.whl
sha256: 90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7
requires_dist:
- - pyasn1 >=0.1.3
+ - pyasn1>=0.1.3
requires_python: '>=3.6,<4'
- kind: conda
name: ruff
@@ -24948,34 +24964,34 @@ packages:
- kind: pypi
name: safetensors
version: 0.4.3
- url: https://files.pythonhosted.org/packages/9f/d9/1bd2c06c1e7aff0c6db4affff5c0b8d6b2fa421ee0d2de94408d43e6aa7c/safetensors-0.4.3-cp311-cp311-macosx_10_12_x86_64.whl
- sha256: 22f3b5d65e440cec0de8edaa672efa888030802e11c09b3d6203bff60ebff05a
+ url: https://files.pythonhosted.org/packages/d5/85/1e7d2804cbf82204cde462d16f1cb0ff5814b03f559fb46ceaa6b7020db4/safetensors-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: 0bf4f9d6323d9f86eef5567eabd88f070691cf031d4c0df27a40d3b4aaee755b
requires_dist:
- - numpy >=1.21.6 ; extra == 'numpy'
+ - numpy>=1.21.6 ; extra == 'numpy'
- safetensors[numpy] ; extra == 'torch'
- - torch >=1.10 ; extra == 'torch'
+ - torch>=1.10 ; extra == 'torch'
- safetensors[numpy] ; extra == 'tensorflow'
- - tensorflow >=2.11.0 ; extra == 'tensorflow'
+ - tensorflow>=2.11.0 ; extra == 'tensorflow'
- safetensors[numpy] ; extra == 'pinned-tf'
- - tensorflow ==2.11.0 ; extra == 'pinned-tf'
+ - tensorflow==2.11.0 ; extra == 'pinned-tf'
- safetensors[numpy] ; extra == 'jax'
- - flax >=0.6.3 ; extra == 'jax'
- - jax >=0.3.25 ; extra == 'jax'
- - jaxlib >=0.3.25 ; extra == 'jax'
- - mlx >=0.0.9 ; extra == 'mlx'
+ - flax>=0.6.3 ; extra == 'jax'
+ - jax>=0.3.25 ; extra == 'jax'
+ - jaxlib>=0.3.25 ; extra == 'jax'
+ - mlx>=0.0.9 ; extra == 'mlx'
- safetensors[numpy] ; extra == 'paddlepaddle'
- - paddlepaddle >=2.4.1 ; extra == 'paddlepaddle'
- - black ==22.3 ; extra == 'quality'
- - click ==8.0.4 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - flake8 >=3.8.3 ; extra == 'quality'
+ - paddlepaddle>=2.4.1 ; extra == 'paddlepaddle'
+ - black==22.3 ; extra == 'quality'
+ - click==8.0.4 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - flake8>=3.8.3 ; extra == 'quality'
- safetensors[numpy] ; extra == 'testing'
- - h5py >=3.7.0 ; extra == 'testing'
- - huggingface-hub >=0.12.1 ; extra == 'testing'
- - setuptools-rust >=1.5.2 ; extra == 'testing'
- - pytest >=7.2.0 ; extra == 'testing'
- - pytest-benchmark >=4.0.0 ; extra == 'testing'
- - hypothesis >=6.70.2 ; extra == 'testing'
+ - h5py>=3.7.0 ; extra == 'testing'
+ - huggingface-hub>=0.12.1 ; extra == 'testing'
+ - setuptools-rust>=1.5.2 ; extra == 'testing'
+ - pytest>=7.2.0 ; extra == 'testing'
+ - pytest-benchmark>=4.0.0 ; extra == 'testing'
+ - hypothesis>=6.70.2 ; extra == 'testing'
- safetensors[torch] ; extra == 'all'
- safetensors[numpy] ; extra == 'all'
- safetensors[pinned-tf] ; extra == 'all'
@@ -24988,34 +25004,34 @@ packages:
- kind: pypi
name: safetensors
version: 0.4.3
- url: https://files.pythonhosted.org/packages/d5/85/1e7d2804cbf82204cde462d16f1cb0ff5814b03f559fb46ceaa6b7020db4/safetensors-0.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: 0bf4f9d6323d9f86eef5567eabd88f070691cf031d4c0df27a40d3b4aaee755b
+ url: https://files.pythonhosted.org/packages/cb/f6/19f268662be898ff2a23ac06f8dd0d2956b2ecd204c96e1ee07ba292c119/safetensors-0.4.3-cp311-none-win_amd64.whl
+ sha256: 840b7ac0eff5633e1d053cc9db12fdf56b566e9403b4950b2dc85393d9b88d67
requires_dist:
- - numpy >=1.21.6 ; extra == 'numpy'
+ - numpy>=1.21.6 ; extra == 'numpy'
- safetensors[numpy] ; extra == 'torch'
- - torch >=1.10 ; extra == 'torch'
+ - torch>=1.10 ; extra == 'torch'
- safetensors[numpy] ; extra == 'tensorflow'
- - tensorflow >=2.11.0 ; extra == 'tensorflow'
+ - tensorflow>=2.11.0 ; extra == 'tensorflow'
- safetensors[numpy] ; extra == 'pinned-tf'
- - tensorflow ==2.11.0 ; extra == 'pinned-tf'
+ - tensorflow==2.11.0 ; extra == 'pinned-tf'
- safetensors[numpy] ; extra == 'jax'
- - flax >=0.6.3 ; extra == 'jax'
- - jax >=0.3.25 ; extra == 'jax'
- - jaxlib >=0.3.25 ; extra == 'jax'
- - mlx >=0.0.9 ; extra == 'mlx'
+ - flax>=0.6.3 ; extra == 'jax'
+ - jax>=0.3.25 ; extra == 'jax'
+ - jaxlib>=0.3.25 ; extra == 'jax'
+ - mlx>=0.0.9 ; extra == 'mlx'
- safetensors[numpy] ; extra == 'paddlepaddle'
- - paddlepaddle >=2.4.1 ; extra == 'paddlepaddle'
- - black ==22.3 ; extra == 'quality'
- - click ==8.0.4 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - flake8 >=3.8.3 ; extra == 'quality'
+ - paddlepaddle>=2.4.1 ; extra == 'paddlepaddle'
+ - black==22.3 ; extra == 'quality'
+ - click==8.0.4 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - flake8>=3.8.3 ; extra == 'quality'
- safetensors[numpy] ; extra == 'testing'
- - h5py >=3.7.0 ; extra == 'testing'
- - huggingface-hub >=0.12.1 ; extra == 'testing'
- - setuptools-rust >=1.5.2 ; extra == 'testing'
- - pytest >=7.2.0 ; extra == 'testing'
- - pytest-benchmark >=4.0.0 ; extra == 'testing'
- - hypothesis >=6.70.2 ; extra == 'testing'
+ - h5py>=3.7.0 ; extra == 'testing'
+ - huggingface-hub>=0.12.1 ; extra == 'testing'
+ - setuptools-rust>=1.5.2 ; extra == 'testing'
+ - pytest>=7.2.0 ; extra == 'testing'
+ - pytest-benchmark>=4.0.0 ; extra == 'testing'
+ - hypothesis>=6.70.2 ; extra == 'testing'
- safetensors[torch] ; extra == 'all'
- safetensors[numpy] ; extra == 'all'
- safetensors[pinned-tf] ; extra == 'all'
@@ -25028,34 +25044,34 @@ packages:
- kind: pypi
name: safetensors
version: 0.4.3
- url: https://files.pythonhosted.org/packages/cb/f6/19f268662be898ff2a23ac06f8dd0d2956b2ecd204c96e1ee07ba292c119/safetensors-0.4.3-cp311-none-win_amd64.whl
- sha256: 840b7ac0eff5633e1d053cc9db12fdf56b566e9403b4950b2dc85393d9b88d67
+ url: https://files.pythonhosted.org/packages/82/61/d4812330b32600972e92ef09a59dc54f9ab8ae570fdca28d8bdfc5577756/safetensors-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: 7c4fa560ebd4522adddb71dcd25d09bf211b5634003f015a4b815b7647d62ebe
requires_dist:
- - numpy >=1.21.6 ; extra == 'numpy'
+ - numpy>=1.21.6 ; extra == 'numpy'
- safetensors[numpy] ; extra == 'torch'
- - torch >=1.10 ; extra == 'torch'
+ - torch>=1.10 ; extra == 'torch'
- safetensors[numpy] ; extra == 'tensorflow'
- - tensorflow >=2.11.0 ; extra == 'tensorflow'
+ - tensorflow>=2.11.0 ; extra == 'tensorflow'
- safetensors[numpy] ; extra == 'pinned-tf'
- - tensorflow ==2.11.0 ; extra == 'pinned-tf'
+ - tensorflow==2.11.0 ; extra == 'pinned-tf'
- safetensors[numpy] ; extra == 'jax'
- - flax >=0.6.3 ; extra == 'jax'
- - jax >=0.3.25 ; extra == 'jax'
- - jaxlib >=0.3.25 ; extra == 'jax'
- - mlx >=0.0.9 ; extra == 'mlx'
+ - flax>=0.6.3 ; extra == 'jax'
+ - jax>=0.3.25 ; extra == 'jax'
+ - jaxlib>=0.3.25 ; extra == 'jax'
+ - mlx>=0.0.9 ; extra == 'mlx'
- safetensors[numpy] ; extra == 'paddlepaddle'
- - paddlepaddle >=2.4.1 ; extra == 'paddlepaddle'
- - black ==22.3 ; extra == 'quality'
- - click ==8.0.4 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - flake8 >=3.8.3 ; extra == 'quality'
+ - paddlepaddle>=2.4.1 ; extra == 'paddlepaddle'
+ - black==22.3 ; extra == 'quality'
+ - click==8.0.4 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - flake8>=3.8.3 ; extra == 'quality'
- safetensors[numpy] ; extra == 'testing'
- - h5py >=3.7.0 ; extra == 'testing'
- - huggingface-hub >=0.12.1 ; extra == 'testing'
- - setuptools-rust >=1.5.2 ; extra == 'testing'
- - pytest >=7.2.0 ; extra == 'testing'
- - pytest-benchmark >=4.0.0 ; extra == 'testing'
- - hypothesis >=6.70.2 ; extra == 'testing'
+ - h5py>=3.7.0 ; extra == 'testing'
+ - huggingface-hub>=0.12.1 ; extra == 'testing'
+ - setuptools-rust>=1.5.2 ; extra == 'testing'
+ - pytest>=7.2.0 ; extra == 'testing'
+ - pytest-benchmark>=4.0.0 ; extra == 'testing'
+ - hypothesis>=6.70.2 ; extra == 'testing'
- safetensors[torch] ; extra == 'all'
- safetensors[numpy] ; extra == 'all'
- safetensors[pinned-tf] ; extra == 'all'
@@ -25068,34 +25084,34 @@ packages:
- kind: pypi
name: safetensors
version: 0.4.3
- url: https://files.pythonhosted.org/packages/82/61/d4812330b32600972e92ef09a59dc54f9ab8ae570fdca28d8bdfc5577756/safetensors-0.4.3-cp311-cp311-macosx_11_0_arm64.whl
- sha256: 7c4fa560ebd4522adddb71dcd25d09bf211b5634003f015a4b815b7647d62ebe
+ url: https://files.pythonhosted.org/packages/9f/d9/1bd2c06c1e7aff0c6db4affff5c0b8d6b2fa421ee0d2de94408d43e6aa7c/safetensors-0.4.3-cp311-cp311-macosx_10_12_x86_64.whl
+ sha256: 22f3b5d65e440cec0de8edaa672efa888030802e11c09b3d6203bff60ebff05a
requires_dist:
- - numpy >=1.21.6 ; extra == 'numpy'
+ - numpy>=1.21.6 ; extra == 'numpy'
- safetensors[numpy] ; extra == 'torch'
- - torch >=1.10 ; extra == 'torch'
+ - torch>=1.10 ; extra == 'torch'
- safetensors[numpy] ; extra == 'tensorflow'
- - tensorflow >=2.11.0 ; extra == 'tensorflow'
+ - tensorflow>=2.11.0 ; extra == 'tensorflow'
- safetensors[numpy] ; extra == 'pinned-tf'
- - tensorflow ==2.11.0 ; extra == 'pinned-tf'
+ - tensorflow==2.11.0 ; extra == 'pinned-tf'
- safetensors[numpy] ; extra == 'jax'
- - flax >=0.6.3 ; extra == 'jax'
- - jax >=0.3.25 ; extra == 'jax'
- - jaxlib >=0.3.25 ; extra == 'jax'
- - mlx >=0.0.9 ; extra == 'mlx'
+ - flax>=0.6.3 ; extra == 'jax'
+ - jax>=0.3.25 ; extra == 'jax'
+ - jaxlib>=0.3.25 ; extra == 'jax'
+ - mlx>=0.0.9 ; extra == 'mlx'
- safetensors[numpy] ; extra == 'paddlepaddle'
- - paddlepaddle >=2.4.1 ; extra == 'paddlepaddle'
- - black ==22.3 ; extra == 'quality'
- - click ==8.0.4 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - flake8 >=3.8.3 ; extra == 'quality'
+ - paddlepaddle>=2.4.1 ; extra == 'paddlepaddle'
+ - black==22.3 ; extra == 'quality'
+ - click==8.0.4 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - flake8>=3.8.3 ; extra == 'quality'
- safetensors[numpy] ; extra == 'testing'
- - h5py >=3.7.0 ; extra == 'testing'
- - huggingface-hub >=0.12.1 ; extra == 'testing'
- - setuptools-rust >=1.5.2 ; extra == 'testing'
- - pytest >=7.2.0 ; extra == 'testing'
- - pytest-benchmark >=4.0.0 ; extra == 'testing'
- - hypothesis >=6.70.2 ; extra == 'testing'
+ - h5py>=3.7.0 ; extra == 'testing'
+ - huggingface-hub>=0.12.1 ; extra == 'testing'
+ - setuptools-rust>=1.5.2 ; extra == 'testing'
+ - pytest>=7.2.0 ; extra == 'testing'
+ - pytest-benchmark>=4.0.0 ; extra == 'testing'
+ - hypothesis>=6.70.2 ; extra == 'testing'
- safetensors[torch] ; extra == 'all'
- safetensors[numpy] ; extra == 'all'
- safetensors[pinned-tf] ; extra == 'all'
@@ -25108,66 +25124,66 @@ packages:
- kind: pypi
name: scikit-image
version: 0.23.2
- url: https://files.pythonhosted.org/packages/78/2b/5f985cf4cf59378f80dc212004a7692b7b49b2a3910c3584d70284db5b89/scikit_image-0.23.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: ee83fdb1843ee938eabdfeb9498623282935ea30aa20dffc5d5d16698efb4b2a
+ url: https://files.pythonhosted.org/packages/0a/40/2c57864acd77c168b96cb6e4e62651b9c98733962793293991ef55e2982c/scikit_image-0.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: fce619a6d84fe40c1208fa579b646e93ce13ef0afc3652a23e9782b2c183291a
requires_dist:
- - numpy >=1.23
- - scipy >=1.9
- - networkx >=2.8
- - pillow >=9.1
- - imageio >=2.33
- - tifffile >=2022.8.12
- - packaging >=21
- - lazy-loader >=0.4
- - meson-python >=0.15 ; extra == 'build'
+ - numpy>=1.23
+ - scipy>=1.9
+ - networkx>=2.8
+ - pillow>=9.1
+ - imageio>=2.33
+ - tifffile>=2022.8.12
+ - packaging>=21
+ - lazy-loader>=0.4
+ - meson-python>=0.15 ; extra == 'build'
- wheel ; extra == 'build'
- - setuptools >=67 ; extra == 'build'
- - packaging >=21 ; extra == 'build'
+ - setuptools>=67 ; extra == 'build'
+ - packaging>=21 ; extra == 'build'
- ninja ; extra == 'build'
- - cython >=3.0.4 ; extra == 'build'
+ - cython>=3.0.4 ; extra == 'build'
- pythran ; extra == 'build'
- - numpy >=2.0.0rc1 ; extra == 'build'
- - spin ==0.8 ; extra == 'build'
+ - numpy>=2.0.0rc1 ; extra == 'build'
+ - spin==0.8 ; extra == 'build'
- build ; extra == 'build'
- - pooch >=1.6.0 ; extra == 'data'
+ - pooch>=1.6.0 ; extra == 'data'
- pre-commit ; extra == 'developer'
- ipython ; extra == 'developer'
- tomli ; python_version < '3.11' and extra == 'developer'
- - sphinx >=7.3 ; extra == 'docs'
- - sphinx-gallery >=0.14 ; extra == 'docs'
- - numpydoc >=1.7 ; extra == 'docs'
+ - sphinx>=7.3 ; extra == 'docs'
+ - sphinx-gallery>=0.14 ; extra == 'docs'
+ - numpydoc>=1.7 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- pytest-runner ; extra == 'docs'
- - matplotlib >=3.6 ; extra == 'docs'
- - dask[array] >=2022.9.2 ; extra == 'docs'
- - pandas >=1.5 ; extra == 'docs'
- - seaborn >=0.11 ; extra == 'docs'
- - pooch >=1.6 ; extra == 'docs'
- - tifffile >=2022.8.12 ; extra == 'docs'
+ - matplotlib>=3.6 ; extra == 'docs'
+ - dask[array]>=2022.9.2 ; extra == 'docs'
+ - pandas>=1.5 ; extra == 'docs'
+ - seaborn>=0.11 ; extra == 'docs'
+ - pooch>=1.6 ; extra == 'docs'
+ - tifffile>=2022.8.12 ; extra == 'docs'
- myst-parser ; extra == 'docs'
- ipywidgets ; extra == 'docs'
- ipykernel ; extra == 'docs'
- - plotly >=5.10 ; extra == 'docs'
+ - plotly>=5.10 ; extra == 'docs'
- kaleido ; extra == 'docs'
- - scikit-learn >=1.1 ; extra == 'docs'
- - sphinx-design >=0.5 ; extra == 'docs'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'docs'
- - pywavelets >=1.1.1 ; extra == 'docs'
+ - scikit-learn>=1.1 ; extra == 'docs'
+ - sphinx-design>=0.5 ; extra == 'docs'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'docs'
+ - pywavelets>=1.1.1 ; extra == 'docs'
- pytest-doctestplus ; extra == 'docs'
- simpleitk ; extra == 'optional'
- - astropy >=5.0 ; extra == 'optional'
- - cloudpickle >=0.2.1 ; extra == 'optional'
- - dask[array] >=2021.1.0 ; extra == 'optional'
- - matplotlib >=3.6 ; extra == 'optional'
- - pooch >=1.6.0 ; extra == 'optional'
+ - astropy>=5.0 ; extra == 'optional'
+ - cloudpickle>=0.2.1 ; extra == 'optional'
+ - dask[array]>=2021.1.0 ; extra == 'optional'
+ - matplotlib>=3.6 ; extra == 'optional'
+ - pooch>=1.6.0 ; extra == 'optional'
- pyamg ; extra == 'optional'
- - pywavelets >=1.1.1 ; extra == 'optional'
- - scikit-learn >=1.1 ; extra == 'optional'
+ - pywavelets>=1.1.1 ; extra == 'optional'
+ - scikit-learn>=1.1 ; extra == 'optional'
- asv ; extra == 'test'
- - numpydoc >=1.7 ; extra == 'test'
- - pooch >=1.6.0 ; extra == 'test'
- - pytest >=7.0 ; extra == 'test'
- - pytest-cov >=2.11.0 ; extra == 'test'
+ - numpydoc>=1.7 ; extra == 'test'
+ - pooch>=1.6.0 ; extra == 'test'
+ - pytest>=7.0 ; extra == 'test'
+ - pytest-cov>=2.11.0 ; extra == 'test'
- pytest-localserver ; extra == 'test'
- pytest-faulthandler ; extra == 'test'
- pytest-doctestplus ; extra == 'test'
@@ -25175,66 +25191,66 @@ packages:
- kind: pypi
name: scikit-image
version: 0.23.2
- url: https://files.pythonhosted.org/packages/0a/40/2c57864acd77c168b96cb6e4e62651b9c98733962793293991ef55e2982c/scikit_image-0.23.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: fce619a6d84fe40c1208fa579b646e93ce13ef0afc3652a23e9782b2c183291a
+ url: https://files.pythonhosted.org/packages/eb/ab/8791ce3063e6d4ac7f8efe3c993fd2e911c9e08f4c7dd05b603eaa2493b2/scikit_image-0.23.2-cp311-cp311-win_amd64.whl
+ sha256: ee65669aa586e110346f567ed5c92d1bd63799a19e951cb83da3f54b0caf7c52
requires_dist:
- - numpy >=1.23
- - scipy >=1.9
- - networkx >=2.8
- - pillow >=9.1
- - imageio >=2.33
- - tifffile >=2022.8.12
- - packaging >=21
- - lazy-loader >=0.4
- - meson-python >=0.15 ; extra == 'build'
+ - numpy>=1.23
+ - scipy>=1.9
+ - networkx>=2.8
+ - pillow>=9.1
+ - imageio>=2.33
+ - tifffile>=2022.8.12
+ - packaging>=21
+ - lazy-loader>=0.4
+ - meson-python>=0.15 ; extra == 'build'
- wheel ; extra == 'build'
- - setuptools >=67 ; extra == 'build'
- - packaging >=21 ; extra == 'build'
+ - setuptools>=67 ; extra == 'build'
+ - packaging>=21 ; extra == 'build'
- ninja ; extra == 'build'
- - cython >=3.0.4 ; extra == 'build'
+ - cython>=3.0.4 ; extra == 'build'
- pythran ; extra == 'build'
- - numpy >=2.0.0rc1 ; extra == 'build'
- - spin ==0.8 ; extra == 'build'
+ - numpy>=2.0.0rc1 ; extra == 'build'
+ - spin==0.8 ; extra == 'build'
- build ; extra == 'build'
- - pooch >=1.6.0 ; extra == 'data'
+ - pooch>=1.6.0 ; extra == 'data'
- pre-commit ; extra == 'developer'
- ipython ; extra == 'developer'
- tomli ; python_version < '3.11' and extra == 'developer'
- - sphinx >=7.3 ; extra == 'docs'
- - sphinx-gallery >=0.14 ; extra == 'docs'
- - numpydoc >=1.7 ; extra == 'docs'
+ - sphinx>=7.3 ; extra == 'docs'
+ - sphinx-gallery>=0.14 ; extra == 'docs'
+ - numpydoc>=1.7 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- pytest-runner ; extra == 'docs'
- - matplotlib >=3.6 ; extra == 'docs'
- - dask[array] >=2022.9.2 ; extra == 'docs'
- - pandas >=1.5 ; extra == 'docs'
- - seaborn >=0.11 ; extra == 'docs'
- - pooch >=1.6 ; extra == 'docs'
- - tifffile >=2022.8.12 ; extra == 'docs'
+ - matplotlib>=3.6 ; extra == 'docs'
+ - dask[array]>=2022.9.2 ; extra == 'docs'
+ - pandas>=1.5 ; extra == 'docs'
+ - seaborn>=0.11 ; extra == 'docs'
+ - pooch>=1.6 ; extra == 'docs'
+ - tifffile>=2022.8.12 ; extra == 'docs'
- myst-parser ; extra == 'docs'
- ipywidgets ; extra == 'docs'
- ipykernel ; extra == 'docs'
- - plotly >=5.10 ; extra == 'docs'
+ - plotly>=5.10 ; extra == 'docs'
- kaleido ; extra == 'docs'
- - scikit-learn >=1.1 ; extra == 'docs'
- - sphinx-design >=0.5 ; extra == 'docs'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'docs'
- - pywavelets >=1.1.1 ; extra == 'docs'
+ - scikit-learn>=1.1 ; extra == 'docs'
+ - sphinx-design>=0.5 ; extra == 'docs'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'docs'
+ - pywavelets>=1.1.1 ; extra == 'docs'
- pytest-doctestplus ; extra == 'docs'
- simpleitk ; extra == 'optional'
- - astropy >=5.0 ; extra == 'optional'
- - cloudpickle >=0.2.1 ; extra == 'optional'
- - dask[array] >=2021.1.0 ; extra == 'optional'
- - matplotlib >=3.6 ; extra == 'optional'
- - pooch >=1.6.0 ; extra == 'optional'
+ - astropy>=5.0 ; extra == 'optional'
+ - cloudpickle>=0.2.1 ; extra == 'optional'
+ - dask[array]>=2021.1.0 ; extra == 'optional'
+ - matplotlib>=3.6 ; extra == 'optional'
+ - pooch>=1.6.0 ; extra == 'optional'
- pyamg ; extra == 'optional'
- - pywavelets >=1.1.1 ; extra == 'optional'
- - scikit-learn >=1.1 ; extra == 'optional'
+ - pywavelets>=1.1.1 ; extra == 'optional'
+ - scikit-learn>=1.1 ; extra == 'optional'
- asv ; extra == 'test'
- - numpydoc >=1.7 ; extra == 'test'
- - pooch >=1.6.0 ; extra == 'test'
- - pytest >=7.0 ; extra == 'test'
- - pytest-cov >=2.11.0 ; extra == 'test'
+ - numpydoc>=1.7 ; extra == 'test'
+ - pooch>=1.6.0 ; extra == 'test'
+ - pytest>=7.0 ; extra == 'test'
+ - pytest-cov>=2.11.0 ; extra == 'test'
- pytest-localserver ; extra == 'test'
- pytest-faulthandler ; extra == 'test'
- pytest-doctestplus ; extra == 'test'
@@ -25242,66 +25258,66 @@ packages:
- kind: pypi
name: scikit-image
version: 0.23.2
- url: https://files.pythonhosted.org/packages/eb/ab/8791ce3063e6d4ac7f8efe3c993fd2e911c9e08f4c7dd05b603eaa2493b2/scikit_image-0.23.2-cp311-cp311-win_amd64.whl
- sha256: ee65669aa586e110346f567ed5c92d1bd63799a19e951cb83da3f54b0caf7c52
+ url: https://files.pythonhosted.org/packages/b9/cf/9e5828fa29791bf7ac5c3fad3637ebb02f237a1c3de8233bd6a33c2c4aac/scikit_image-0.23.2-cp311-cp311-macosx_12_0_arm64.whl
+ sha256: a158f50d3df4867bbd1c698520ede8bc493e430ad83f54ac1f0d8f57b328779b
requires_dist:
- - numpy >=1.23
- - scipy >=1.9
- - networkx >=2.8
- - pillow >=9.1
- - imageio >=2.33
- - tifffile >=2022.8.12
- - packaging >=21
- - lazy-loader >=0.4
- - meson-python >=0.15 ; extra == 'build'
+ - numpy>=1.23
+ - scipy>=1.9
+ - networkx>=2.8
+ - pillow>=9.1
+ - imageio>=2.33
+ - tifffile>=2022.8.12
+ - packaging>=21
+ - lazy-loader>=0.4
+ - meson-python>=0.15 ; extra == 'build'
- wheel ; extra == 'build'
- - setuptools >=67 ; extra == 'build'
- - packaging >=21 ; extra == 'build'
+ - setuptools>=67 ; extra == 'build'
+ - packaging>=21 ; extra == 'build'
- ninja ; extra == 'build'
- - cython >=3.0.4 ; extra == 'build'
+ - cython>=3.0.4 ; extra == 'build'
- pythran ; extra == 'build'
- - numpy >=2.0.0rc1 ; extra == 'build'
- - spin ==0.8 ; extra == 'build'
+ - numpy>=2.0.0rc1 ; extra == 'build'
+ - spin==0.8 ; extra == 'build'
- build ; extra == 'build'
- - pooch >=1.6.0 ; extra == 'data'
+ - pooch>=1.6.0 ; extra == 'data'
- pre-commit ; extra == 'developer'
- ipython ; extra == 'developer'
- tomli ; python_version < '3.11' and extra == 'developer'
- - sphinx >=7.3 ; extra == 'docs'
- - sphinx-gallery >=0.14 ; extra == 'docs'
- - numpydoc >=1.7 ; extra == 'docs'
+ - sphinx>=7.3 ; extra == 'docs'
+ - sphinx-gallery>=0.14 ; extra == 'docs'
+ - numpydoc>=1.7 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- pytest-runner ; extra == 'docs'
- - matplotlib >=3.6 ; extra == 'docs'
- - dask[array] >=2022.9.2 ; extra == 'docs'
- - pandas >=1.5 ; extra == 'docs'
- - seaborn >=0.11 ; extra == 'docs'
- - pooch >=1.6 ; extra == 'docs'
- - tifffile >=2022.8.12 ; extra == 'docs'
+ - matplotlib>=3.6 ; extra == 'docs'
+ - dask[array]>=2022.9.2 ; extra == 'docs'
+ - pandas>=1.5 ; extra == 'docs'
+ - seaborn>=0.11 ; extra == 'docs'
+ - pooch>=1.6 ; extra == 'docs'
+ - tifffile>=2022.8.12 ; extra == 'docs'
- myst-parser ; extra == 'docs'
- ipywidgets ; extra == 'docs'
- ipykernel ; extra == 'docs'
- - plotly >=5.10 ; extra == 'docs'
+ - plotly>=5.10 ; extra == 'docs'
- kaleido ; extra == 'docs'
- - scikit-learn >=1.1 ; extra == 'docs'
- - sphinx-design >=0.5 ; extra == 'docs'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'docs'
- - pywavelets >=1.1.1 ; extra == 'docs'
+ - scikit-learn>=1.1 ; extra == 'docs'
+ - sphinx-design>=0.5 ; extra == 'docs'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'docs'
+ - pywavelets>=1.1.1 ; extra == 'docs'
- pytest-doctestplus ; extra == 'docs'
- simpleitk ; extra == 'optional'
- - astropy >=5.0 ; extra == 'optional'
- - cloudpickle >=0.2.1 ; extra == 'optional'
- - dask[array] >=2021.1.0 ; extra == 'optional'
- - matplotlib >=3.6 ; extra == 'optional'
- - pooch >=1.6.0 ; extra == 'optional'
+ - astropy>=5.0 ; extra == 'optional'
+ - cloudpickle>=0.2.1 ; extra == 'optional'
+ - dask[array]>=2021.1.0 ; extra == 'optional'
+ - matplotlib>=3.6 ; extra == 'optional'
+ - pooch>=1.6.0 ; extra == 'optional'
- pyamg ; extra == 'optional'
- - pywavelets >=1.1.1 ; extra == 'optional'
- - scikit-learn >=1.1 ; extra == 'optional'
+ - pywavelets>=1.1.1 ; extra == 'optional'
+ - scikit-learn>=1.1 ; extra == 'optional'
- asv ; extra == 'test'
- - numpydoc >=1.7 ; extra == 'test'
- - pooch >=1.6.0 ; extra == 'test'
- - pytest >=7.0 ; extra == 'test'
- - pytest-cov >=2.11.0 ; extra == 'test'
+ - numpydoc>=1.7 ; extra == 'test'
+ - pooch>=1.6.0 ; extra == 'test'
+ - pytest>=7.0 ; extra == 'test'
+ - pytest-cov>=2.11.0 ; extra == 'test'
- pytest-localserver ; extra == 'test'
- pytest-faulthandler ; extra == 'test'
- pytest-doctestplus ; extra == 'test'
@@ -25309,163 +25325,116 @@ packages:
- kind: pypi
name: scikit-image
version: 0.23.2
- url: https://files.pythonhosted.org/packages/b9/cf/9e5828fa29791bf7ac5c3fad3637ebb02f237a1c3de8233bd6a33c2c4aac/scikit_image-0.23.2-cp311-cp311-macosx_12_0_arm64.whl
- sha256: a158f50d3df4867bbd1c698520ede8bc493e430ad83f54ac1f0d8f57b328779b
+ url: https://files.pythonhosted.org/packages/78/2b/5f985cf4cf59378f80dc212004a7692b7b49b2a3910c3584d70284db5b89/scikit_image-0.23.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: ee83fdb1843ee938eabdfeb9498623282935ea30aa20dffc5d5d16698efb4b2a
requires_dist:
- - numpy >=1.23
- - scipy >=1.9
- - networkx >=2.8
- - pillow >=9.1
- - imageio >=2.33
- - tifffile >=2022.8.12
- - packaging >=21
- - lazy-loader >=0.4
- - meson-python >=0.15 ; extra == 'build'
+ - numpy>=1.23
+ - scipy>=1.9
+ - networkx>=2.8
+ - pillow>=9.1
+ - imageio>=2.33
+ - tifffile>=2022.8.12
+ - packaging>=21
+ - lazy-loader>=0.4
+ - meson-python>=0.15 ; extra == 'build'
- wheel ; extra == 'build'
- - setuptools >=67 ; extra == 'build'
- - packaging >=21 ; extra == 'build'
+ - setuptools>=67 ; extra == 'build'
+ - packaging>=21 ; extra == 'build'
- ninja ; extra == 'build'
- - cython >=3.0.4 ; extra == 'build'
+ - cython>=3.0.4 ; extra == 'build'
- pythran ; extra == 'build'
- - numpy >=2.0.0rc1 ; extra == 'build'
- - spin ==0.8 ; extra == 'build'
+ - numpy>=2.0.0rc1 ; extra == 'build'
+ - spin==0.8 ; extra == 'build'
- build ; extra == 'build'
- - pooch >=1.6.0 ; extra == 'data'
+ - pooch>=1.6.0 ; extra == 'data'
- pre-commit ; extra == 'developer'
- ipython ; extra == 'developer'
- tomli ; python_version < '3.11' and extra == 'developer'
- - sphinx >=7.3 ; extra == 'docs'
- - sphinx-gallery >=0.14 ; extra == 'docs'
- - numpydoc >=1.7 ; extra == 'docs'
+ - sphinx>=7.3 ; extra == 'docs'
+ - sphinx-gallery>=0.14 ; extra == 'docs'
+ - numpydoc>=1.7 ; extra == 'docs'
- sphinx-copybutton ; extra == 'docs'
- pytest-runner ; extra == 'docs'
- - matplotlib >=3.6 ; extra == 'docs'
- - dask[array] >=2022.9.2 ; extra == 'docs'
- - pandas >=1.5 ; extra == 'docs'
- - seaborn >=0.11 ; extra == 'docs'
- - pooch >=1.6 ; extra == 'docs'
- - tifffile >=2022.8.12 ; extra == 'docs'
+ - matplotlib>=3.6 ; extra == 'docs'
+ - dask[array]>=2022.9.2 ; extra == 'docs'
+ - pandas>=1.5 ; extra == 'docs'
+ - seaborn>=0.11 ; extra == 'docs'
+ - pooch>=1.6 ; extra == 'docs'
+ - tifffile>=2022.8.12 ; extra == 'docs'
- myst-parser ; extra == 'docs'
- ipywidgets ; extra == 'docs'
- ipykernel ; extra == 'docs'
- - plotly >=5.10 ; extra == 'docs'
+ - plotly>=5.10 ; extra == 'docs'
- kaleido ; extra == 'docs'
- - scikit-learn >=1.1 ; extra == 'docs'
- - sphinx-design >=0.5 ; extra == 'docs'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'docs'
- - pywavelets >=1.1.1 ; extra == 'docs'
+ - scikit-learn>=1.1 ; extra == 'docs'
+ - sphinx-design>=0.5 ; extra == 'docs'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'docs'
+ - pywavelets>=1.1.1 ; extra == 'docs'
- pytest-doctestplus ; extra == 'docs'
- simpleitk ; extra == 'optional'
- - astropy >=5.0 ; extra == 'optional'
- - cloudpickle >=0.2.1 ; extra == 'optional'
- - dask[array] >=2021.1.0 ; extra == 'optional'
- - matplotlib >=3.6 ; extra == 'optional'
- - pooch >=1.6.0 ; extra == 'optional'
+ - astropy>=5.0 ; extra == 'optional'
+ - cloudpickle>=0.2.1 ; extra == 'optional'
+ - dask[array]>=2021.1.0 ; extra == 'optional'
+ - matplotlib>=3.6 ; extra == 'optional'
+ - pooch>=1.6.0 ; extra == 'optional'
- pyamg ; extra == 'optional'
- - pywavelets >=1.1.1 ; extra == 'optional'
- - scikit-learn >=1.1 ; extra == 'optional'
+ - pywavelets>=1.1.1 ; extra == 'optional'
+ - scikit-learn>=1.1 ; extra == 'optional'
- asv ; extra == 'test'
- - numpydoc >=1.7 ; extra == 'test'
- - pooch >=1.6.0 ; extra == 'test'
- - pytest >=7.0 ; extra == 'test'
- - pytest-cov >=2.11.0 ; extra == 'test'
+ - numpydoc>=1.7 ; extra == 'test'
+ - pooch>=1.6.0 ; extra == 'test'
+ - pytest>=7.0 ; extra == 'test'
+ - pytest-cov>=2.11.0 ; extra == 'test'
- pytest-localserver ; extra == 'test'
- pytest-faulthandler ; extra == 'test'
- pytest-doctestplus ; extra == 'test'
requires_python: '>=3.10'
-- kind: pypi
- name: scikit-learn
- version: 1.4.2
- url: https://files.pythonhosted.org/packages/59/11/63de36e6933b03490fdfe5cbc9b5a68870a1281d8e705a23b33076dc82fb/scikit_learn-1.4.2-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 45dee87ac5309bb82e3ea633955030df9bbcb8d2cdb30383c6cd483691c546cc
- requires_dist:
- - numpy >=1.19.5
- - scipy >=1.6.0
- - joblib >=1.2.0
- - threadpoolctl >=2.0.0
- - matplotlib >=3.3.4 ; extra == 'benchmark'
- - pandas >=1.1.5 ; extra == 'benchmark'
- - memory-profiler >=0.57.0 ; extra == 'benchmark'
- - matplotlib >=3.3.4 ; extra == 'docs'
- - scikit-image >=0.17.2 ; extra == 'docs'
- - pandas >=1.1.5 ; extra == 'docs'
- - seaborn >=0.9.0 ; extra == 'docs'
- - memory-profiler >=0.57.0 ; extra == 'docs'
- - sphinx >=6.0.0 ; extra == 'docs'
- - sphinx-copybutton >=0.5.2 ; extra == 'docs'
- - sphinx-gallery >=0.15.0 ; extra == 'docs'
- - numpydoc >=1.2.0 ; extra == 'docs'
- - pillow >=7.1.2 ; extra == 'docs'
- - pooch >=1.6.0 ; extra == 'docs'
- - sphinx-prompt >=1.3.0 ; extra == 'docs'
- - sphinxext-opengraph >=0.4.2 ; extra == 'docs'
- - plotly >=5.14.0 ; extra == 'docs'
- - matplotlib >=3.3.4 ; extra == 'examples'
- - scikit-image >=0.17.2 ; extra == 'examples'
- - pandas >=1.1.5 ; extra == 'examples'
- - seaborn >=0.9.0 ; extra == 'examples'
- - pooch >=1.6.0 ; extra == 'examples'
- - plotly >=5.14.0 ; extra == 'examples'
- - matplotlib >=3.3.4 ; extra == 'tests'
- - scikit-image >=0.17.2 ; extra == 'tests'
- - pandas >=1.1.5 ; extra == 'tests'
- - pytest >=7.1.2 ; extra == 'tests'
- - pytest-cov >=2.9.0 ; extra == 'tests'
- - ruff >=0.0.272 ; extra == 'tests'
- - black >=23.3.0 ; extra == 'tests'
- - mypy >=1.3 ; extra == 'tests'
- - pyamg >=4.0.0 ; extra == 'tests'
- - polars >=0.19.12 ; extra == 'tests'
- - pyarrow >=12.0.0 ; extra == 'tests'
- - numpydoc >=1.2.0 ; extra == 'tests'
- - pooch >=1.6.0 ; extra == 'tests'
- requires_python: '>=3.9'
- kind: pypi
name: scikit-learn
version: 1.4.2
url: https://files.pythonhosted.org/packages/4e/53/14405a47292b59235d811a2af8634aba188ccfd1a38ef4b8042f3447d79a/scikit_learn-1.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
sha256: 44c62f2b124848a28fd695db5bc4da019287abf390bfce602ddc8aa1ec186aae
requires_dist:
- - numpy >=1.19.5
- - scipy >=1.6.0
- - joblib >=1.2.0
- - threadpoolctl >=2.0.0
- - matplotlib >=3.3.4 ; extra == 'benchmark'
- - pandas >=1.1.5 ; extra == 'benchmark'
- - memory-profiler >=0.57.0 ; extra == 'benchmark'
- - matplotlib >=3.3.4 ; extra == 'docs'
- - scikit-image >=0.17.2 ; extra == 'docs'
- - pandas >=1.1.5 ; extra == 'docs'
- - seaborn >=0.9.0 ; extra == 'docs'
- - memory-profiler >=0.57.0 ; extra == 'docs'
- - sphinx >=6.0.0 ; extra == 'docs'
- - sphinx-copybutton >=0.5.2 ; extra == 'docs'
- - sphinx-gallery >=0.15.0 ; extra == 'docs'
- - numpydoc >=1.2.0 ; extra == 'docs'
- - pillow >=7.1.2 ; extra == 'docs'
- - pooch >=1.6.0 ; extra == 'docs'
- - sphinx-prompt >=1.3.0 ; extra == 'docs'
- - sphinxext-opengraph >=0.4.2 ; extra == 'docs'
- - plotly >=5.14.0 ; extra == 'docs'
- - matplotlib >=3.3.4 ; extra == 'examples'
- - scikit-image >=0.17.2 ; extra == 'examples'
- - pandas >=1.1.5 ; extra == 'examples'
- - seaborn >=0.9.0 ; extra == 'examples'
- - pooch >=1.6.0 ; extra == 'examples'
- - plotly >=5.14.0 ; extra == 'examples'
- - matplotlib >=3.3.4 ; extra == 'tests'
- - scikit-image >=0.17.2 ; extra == 'tests'
- - pandas >=1.1.5 ; extra == 'tests'
- - pytest >=7.1.2 ; extra == 'tests'
- - pytest-cov >=2.9.0 ; extra == 'tests'
- - ruff >=0.0.272 ; extra == 'tests'
- - black >=23.3.0 ; extra == 'tests'
- - mypy >=1.3 ; extra == 'tests'
- - pyamg >=4.0.0 ; extra == 'tests'
- - polars >=0.19.12 ; extra == 'tests'
- - pyarrow >=12.0.0 ; extra == 'tests'
- - numpydoc >=1.2.0 ; extra == 'tests'
- - pooch >=1.6.0 ; extra == 'tests'
+ - numpy>=1.19.5
+ - scipy>=1.6.0
+ - joblib>=1.2.0
+ - threadpoolctl>=2.0.0
+ - matplotlib>=3.3.4 ; extra == 'benchmark'
+ - pandas>=1.1.5 ; extra == 'benchmark'
+ - memory-profiler>=0.57.0 ; extra == 'benchmark'
+ - matplotlib>=3.3.4 ; extra == 'docs'
+ - scikit-image>=0.17.2 ; extra == 'docs'
+ - pandas>=1.1.5 ; extra == 'docs'
+ - seaborn>=0.9.0 ; extra == 'docs'
+ - memory-profiler>=0.57.0 ; extra == 'docs'
+ - sphinx>=6.0.0 ; extra == 'docs'
+ - sphinx-copybutton>=0.5.2 ; extra == 'docs'
+ - sphinx-gallery>=0.15.0 ; extra == 'docs'
+ - numpydoc>=1.2.0 ; extra == 'docs'
+ - pillow>=7.1.2 ; extra == 'docs'
+ - pooch>=1.6.0 ; extra == 'docs'
+ - sphinx-prompt>=1.3.0 ; extra == 'docs'
+ - sphinxext-opengraph>=0.4.2 ; extra == 'docs'
+ - plotly>=5.14.0 ; extra == 'docs'
+ - matplotlib>=3.3.4 ; extra == 'examples'
+ - scikit-image>=0.17.2 ; extra == 'examples'
+ - pandas>=1.1.5 ; extra == 'examples'
+ - seaborn>=0.9.0 ; extra == 'examples'
+ - pooch>=1.6.0 ; extra == 'examples'
+ - plotly>=5.14.0 ; extra == 'examples'
+ - matplotlib>=3.3.4 ; extra == 'tests'
+ - scikit-image>=0.17.2 ; extra == 'tests'
+ - pandas>=1.1.5 ; extra == 'tests'
+ - pytest>=7.1.2 ; extra == 'tests'
+ - pytest-cov>=2.9.0 ; extra == 'tests'
+ - ruff>=0.0.272 ; extra == 'tests'
+ - black>=23.3.0 ; extra == 'tests'
+ - mypy>=1.3 ; extra == 'tests'
+ - pyamg>=4.0.0 ; extra == 'tests'
+ - polars>=0.19.12 ; extra == 'tests'
+ - pyarrow>=12.0.0 ; extra == 'tests'
+ - numpydoc>=1.2.0 ; extra == 'tests'
+ - pooch>=1.6.0 ; extra == 'tests'
requires_python: '>=3.9'
- kind: pypi
name: scikit-learn
@@ -25473,46 +25442,46 @@ packages:
url: https://files.pythonhosted.org/packages/79/3d/02d5d3ed359498fec3abdf65407d3c07e3b8765af17464969055aaec5171/scikit_learn-1.4.2-cp311-cp311-win_amd64.whl
sha256: 5cd7b524115499b18b63f0c96f4224eb885564937a0b3477531b2b63ce331904
requires_dist:
- - numpy >=1.19.5
- - scipy >=1.6.0
- - joblib >=1.2.0
- - threadpoolctl >=2.0.0
- - matplotlib >=3.3.4 ; extra == 'benchmark'
- - pandas >=1.1.5 ; extra == 'benchmark'
- - memory-profiler >=0.57.0 ; extra == 'benchmark'
- - matplotlib >=3.3.4 ; extra == 'docs'
- - scikit-image >=0.17.2 ; extra == 'docs'
- - pandas >=1.1.5 ; extra == 'docs'
- - seaborn >=0.9.0 ; extra == 'docs'
- - memory-profiler >=0.57.0 ; extra == 'docs'
- - sphinx >=6.0.0 ; extra == 'docs'
- - sphinx-copybutton >=0.5.2 ; extra == 'docs'
- - sphinx-gallery >=0.15.0 ; extra == 'docs'
- - numpydoc >=1.2.0 ; extra == 'docs'
- - pillow >=7.1.2 ; extra == 'docs'
- - pooch >=1.6.0 ; extra == 'docs'
- - sphinx-prompt >=1.3.0 ; extra == 'docs'
- - sphinxext-opengraph >=0.4.2 ; extra == 'docs'
- - plotly >=5.14.0 ; extra == 'docs'
- - matplotlib >=3.3.4 ; extra == 'examples'
- - scikit-image >=0.17.2 ; extra == 'examples'
- - pandas >=1.1.5 ; extra == 'examples'
- - seaborn >=0.9.0 ; extra == 'examples'
- - pooch >=1.6.0 ; extra == 'examples'
- - plotly >=5.14.0 ; extra == 'examples'
- - matplotlib >=3.3.4 ; extra == 'tests'
- - scikit-image >=0.17.2 ; extra == 'tests'
- - pandas >=1.1.5 ; extra == 'tests'
- - pytest >=7.1.2 ; extra == 'tests'
- - pytest-cov >=2.9.0 ; extra == 'tests'
- - ruff >=0.0.272 ; extra == 'tests'
- - black >=23.3.0 ; extra == 'tests'
- - mypy >=1.3 ; extra == 'tests'
- - pyamg >=4.0.0 ; extra == 'tests'
- - polars >=0.19.12 ; extra == 'tests'
- - pyarrow >=12.0.0 ; extra == 'tests'
- - numpydoc >=1.2.0 ; extra == 'tests'
- - pooch >=1.6.0 ; extra == 'tests'
+ - numpy>=1.19.5
+ - scipy>=1.6.0
+ - joblib>=1.2.0
+ - threadpoolctl>=2.0.0
+ - matplotlib>=3.3.4 ; extra == 'benchmark'
+ - pandas>=1.1.5 ; extra == 'benchmark'
+ - memory-profiler>=0.57.0 ; extra == 'benchmark'
+ - matplotlib>=3.3.4 ; extra == 'docs'
+ - scikit-image>=0.17.2 ; extra == 'docs'
+ - pandas>=1.1.5 ; extra == 'docs'
+ - seaborn>=0.9.0 ; extra == 'docs'
+ - memory-profiler>=0.57.0 ; extra == 'docs'
+ - sphinx>=6.0.0 ; extra == 'docs'
+ - sphinx-copybutton>=0.5.2 ; extra == 'docs'
+ - sphinx-gallery>=0.15.0 ; extra == 'docs'
+ - numpydoc>=1.2.0 ; extra == 'docs'
+ - pillow>=7.1.2 ; extra == 'docs'
+ - pooch>=1.6.0 ; extra == 'docs'
+ - sphinx-prompt>=1.3.0 ; extra == 'docs'
+ - sphinxext-opengraph>=0.4.2 ; extra == 'docs'
+ - plotly>=5.14.0 ; extra == 'docs'
+ - matplotlib>=3.3.4 ; extra == 'examples'
+ - scikit-image>=0.17.2 ; extra == 'examples'
+ - pandas>=1.1.5 ; extra == 'examples'
+ - seaborn>=0.9.0 ; extra == 'examples'
+ - pooch>=1.6.0 ; extra == 'examples'
+ - plotly>=5.14.0 ; extra == 'examples'
+ - matplotlib>=3.3.4 ; extra == 'tests'
+ - scikit-image>=0.17.2 ; extra == 'tests'
+ - pandas>=1.1.5 ; extra == 'tests'
+ - pytest>=7.1.2 ; extra == 'tests'
+ - pytest-cov>=2.9.0 ; extra == 'tests'
+ - ruff>=0.0.272 ; extra == 'tests'
+ - black>=23.3.0 ; extra == 'tests'
+ - mypy>=1.3 ; extra == 'tests'
+ - pyamg>=4.0.0 ; extra == 'tests'
+ - polars>=0.19.12 ; extra == 'tests'
+ - pyarrow>=12.0.0 ; extra == 'tests'
+ - numpydoc>=1.2.0 ; extra == 'tests'
+ - pooch>=1.6.0 ; extra == 'tests'
requires_python: '>=3.9'
- kind: pypi
name: scikit-learn
@@ -25520,54 +25489,101 @@ packages:
url: https://files.pythonhosted.org/packages/f2/30/1299e84d2ba3bc735baf17cebbf5b9d55144243c41b3ec6559ce3cf61e23/scikit_learn-1.4.2-cp311-cp311-macosx_12_0_arm64.whl
sha256: 1d0b25d9c651fd050555aadd57431b53d4cf664e749069da77f3d52c5ad14b3b
requires_dist:
- - numpy >=1.19.5
- - scipy >=1.6.0
- - joblib >=1.2.0
- - threadpoolctl >=2.0.0
- - matplotlib >=3.3.4 ; extra == 'benchmark'
- - pandas >=1.1.5 ; extra == 'benchmark'
- - memory-profiler >=0.57.0 ; extra == 'benchmark'
- - matplotlib >=3.3.4 ; extra == 'docs'
- - scikit-image >=0.17.2 ; extra == 'docs'
- - pandas >=1.1.5 ; extra == 'docs'
- - seaborn >=0.9.0 ; extra == 'docs'
- - memory-profiler >=0.57.0 ; extra == 'docs'
- - sphinx >=6.0.0 ; extra == 'docs'
- - sphinx-copybutton >=0.5.2 ; extra == 'docs'
- - sphinx-gallery >=0.15.0 ; extra == 'docs'
- - numpydoc >=1.2.0 ; extra == 'docs'
- - pillow >=7.1.2 ; extra == 'docs'
- - pooch >=1.6.0 ; extra == 'docs'
- - sphinx-prompt >=1.3.0 ; extra == 'docs'
- - sphinxext-opengraph >=0.4.2 ; extra == 'docs'
- - plotly >=5.14.0 ; extra == 'docs'
- - matplotlib >=3.3.4 ; extra == 'examples'
- - scikit-image >=0.17.2 ; extra == 'examples'
- - pandas >=1.1.5 ; extra == 'examples'
- - seaborn >=0.9.0 ; extra == 'examples'
- - pooch >=1.6.0 ; extra == 'examples'
- - plotly >=5.14.0 ; extra == 'examples'
- - matplotlib >=3.3.4 ; extra == 'tests'
- - scikit-image >=0.17.2 ; extra == 'tests'
- - pandas >=1.1.5 ; extra == 'tests'
- - pytest >=7.1.2 ; extra == 'tests'
- - pytest-cov >=2.9.0 ; extra == 'tests'
- - ruff >=0.0.272 ; extra == 'tests'
- - black >=23.3.0 ; extra == 'tests'
- - mypy >=1.3 ; extra == 'tests'
- - pyamg >=4.0.0 ; extra == 'tests'
- - polars >=0.19.12 ; extra == 'tests'
- - pyarrow >=12.0.0 ; extra == 'tests'
- - numpydoc >=1.2.0 ; extra == 'tests'
- - pooch >=1.6.0 ; extra == 'tests'
+ - numpy>=1.19.5
+ - scipy>=1.6.0
+ - joblib>=1.2.0
+ - threadpoolctl>=2.0.0
+ - matplotlib>=3.3.4 ; extra == 'benchmark'
+ - pandas>=1.1.5 ; extra == 'benchmark'
+ - memory-profiler>=0.57.0 ; extra == 'benchmark'
+ - matplotlib>=3.3.4 ; extra == 'docs'
+ - scikit-image>=0.17.2 ; extra == 'docs'
+ - pandas>=1.1.5 ; extra == 'docs'
+ - seaborn>=0.9.0 ; extra == 'docs'
+ - memory-profiler>=0.57.0 ; extra == 'docs'
+ - sphinx>=6.0.0 ; extra == 'docs'
+ - sphinx-copybutton>=0.5.2 ; extra == 'docs'
+ - sphinx-gallery>=0.15.0 ; extra == 'docs'
+ - numpydoc>=1.2.0 ; extra == 'docs'
+ - pillow>=7.1.2 ; extra == 'docs'
+ - pooch>=1.6.0 ; extra == 'docs'
+ - sphinx-prompt>=1.3.0 ; extra == 'docs'
+ - sphinxext-opengraph>=0.4.2 ; extra == 'docs'
+ - plotly>=5.14.0 ; extra == 'docs'
+ - matplotlib>=3.3.4 ; extra == 'examples'
+ - scikit-image>=0.17.2 ; extra == 'examples'
+ - pandas>=1.1.5 ; extra == 'examples'
+ - seaborn>=0.9.0 ; extra == 'examples'
+ - pooch>=1.6.0 ; extra == 'examples'
+ - plotly>=5.14.0 ; extra == 'examples'
+ - matplotlib>=3.3.4 ; extra == 'tests'
+ - scikit-image>=0.17.2 ; extra == 'tests'
+ - pandas>=1.1.5 ; extra == 'tests'
+ - pytest>=7.1.2 ; extra == 'tests'
+ - pytest-cov>=2.9.0 ; extra == 'tests'
+ - ruff>=0.0.272 ; extra == 'tests'
+ - black>=23.3.0 ; extra == 'tests'
+ - mypy>=1.3 ; extra == 'tests'
+ - pyamg>=4.0.0 ; extra == 'tests'
+ - polars>=0.19.12 ; extra == 'tests'
+ - pyarrow>=12.0.0 ; extra == 'tests'
+ - numpydoc>=1.2.0 ; extra == 'tests'
+ - pooch>=1.6.0 ; extra == 'tests'
+ requires_python: '>=3.9'
+- kind: pypi
+ name: scikit-learn
+ version: 1.4.2
+ url: https://files.pythonhosted.org/packages/59/11/63de36e6933b03490fdfe5cbc9b5a68870a1281d8e705a23b33076dc82fb/scikit_learn-1.4.2-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 45dee87ac5309bb82e3ea633955030df9bbcb8d2cdb30383c6cd483691c546cc
+ requires_dist:
+ - numpy>=1.19.5
+ - scipy>=1.6.0
+ - joblib>=1.2.0
+ - threadpoolctl>=2.0.0
+ - matplotlib>=3.3.4 ; extra == 'benchmark'
+ - pandas>=1.1.5 ; extra == 'benchmark'
+ - memory-profiler>=0.57.0 ; extra == 'benchmark'
+ - matplotlib>=3.3.4 ; extra == 'docs'
+ - scikit-image>=0.17.2 ; extra == 'docs'
+ - pandas>=1.1.5 ; extra == 'docs'
+ - seaborn>=0.9.0 ; extra == 'docs'
+ - memory-profiler>=0.57.0 ; extra == 'docs'
+ - sphinx>=6.0.0 ; extra == 'docs'
+ - sphinx-copybutton>=0.5.2 ; extra == 'docs'
+ - sphinx-gallery>=0.15.0 ; extra == 'docs'
+ - numpydoc>=1.2.0 ; extra == 'docs'
+ - pillow>=7.1.2 ; extra == 'docs'
+ - pooch>=1.6.0 ; extra == 'docs'
+ - sphinx-prompt>=1.3.0 ; extra == 'docs'
+ - sphinxext-opengraph>=0.4.2 ; extra == 'docs'
+ - plotly>=5.14.0 ; extra == 'docs'
+ - matplotlib>=3.3.4 ; extra == 'examples'
+ - scikit-image>=0.17.2 ; extra == 'examples'
+ - pandas>=1.1.5 ; extra == 'examples'
+ - seaborn>=0.9.0 ; extra == 'examples'
+ - pooch>=1.6.0 ; extra == 'examples'
+ - plotly>=5.14.0 ; extra == 'examples'
+ - matplotlib>=3.3.4 ; extra == 'tests'
+ - scikit-image>=0.17.2 ; extra == 'tests'
+ - pandas>=1.1.5 ; extra == 'tests'
+ - pytest>=7.1.2 ; extra == 'tests'
+ - pytest-cov>=2.9.0 ; extra == 'tests'
+ - ruff>=0.0.272 ; extra == 'tests'
+ - black>=23.3.0 ; extra == 'tests'
+ - mypy>=1.3 ; extra == 'tests'
+ - pyamg>=4.0.0 ; extra == 'tests'
+ - polars>=0.19.12 ; extra == 'tests'
+ - pyarrow>=12.0.0 ; extra == 'tests'
+ - numpydoc>=1.2.0 ; extra == 'tests'
+ - pooch>=1.6.0 ; extra == 'tests'
requires_python: '>=3.9'
- kind: pypi
name: scipy
version: 1.13.0
- url: https://files.pythonhosted.org/packages/be/e3/236639c51636ec7e678f2aa608fe89acb9d02ef64e1fe1d8eb40373bc62b/scipy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa
+ url: https://files.pythonhosted.org/packages/e8/fb/e5955e2ddbdf2baee461eb53ec8d0adedd20a6dfc5510ef8d5e7e44ba461/scipy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: 9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d
requires_dist:
- - numpy <2.3, >=1.22.4
+ - numpy<2.3,>=1.22.4
- pytest ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-timeout ; extra == 'test'
@@ -25578,35 +25594,35 @@ packages:
- threadpoolctl ; extra == 'test'
- scikit-umfpack ; extra == 'test'
- pooch ; extra == 'test'
- - hypothesis >=6.30 ; extra == 'test'
+ - hypothesis>=6.30 ; extra == 'test'
- array-api-strict ; extra == 'test'
- - sphinx >=5.0.0 ; extra == 'doc'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'doc'
- - sphinx-design >=0.4.0 ; extra == 'doc'
- - matplotlib >=3.5 ; extra == 'doc'
+ - sphinx>=5.0.0 ; extra == 'doc'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
+ - sphinx-design>=0.4.0 ; extra == 'doc'
+ - matplotlib>=3.5 ; extra == 'doc'
- numpydoc ; extra == 'doc'
- jupytext ; extra == 'doc'
- myst-nb ; extra == 'doc'
- pooch ; extra == 'doc'
- - jupyterlite-sphinx >=0.12.0 ; extra == 'doc'
+ - jupyterlite-sphinx>=0.12.0 ; extra == 'doc'
- jupyterlite-pyodide-kernel ; extra == 'doc'
- mypy ; extra == 'dev'
- typing-extensions ; extra == 'dev'
- types-psutil ; extra == 'dev'
- pycodestyle ; extra == 'dev'
- ruff ; extra == 'dev'
- - cython-lint >=0.12.2 ; extra == 'dev'
+ - cython-lint>=0.12.2 ; extra == 'dev'
- rich-click ; extra == 'dev'
- - doit >=0.36.0 ; extra == 'dev'
+ - doit>=0.36.0 ; extra == 'dev'
- pydevtool ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
name: scipy
version: 1.13.0
- url: https://files.pythonhosted.org/packages/e8/fb/e5955e2ddbdf2baee461eb53ec8d0adedd20a6dfc5510ef8d5e7e44ba461/scipy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: 9ff7dad5d24a8045d836671e082a490848e8639cabb3dbdacb29f943a678683d
+ url: https://files.pythonhosted.org/packages/d4/a1/d4adf25b6d2bef8d0ad1682829dcfcba97f3f96bb5b6f137bc3e41003cc7/scipy-1.13.0-cp311-cp311-win_amd64.whl
+ sha256: a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6
requires_dist:
- - numpy <2.3, >=1.22.4
+ - numpy<2.3,>=1.22.4
- pytest ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-timeout ; extra == 'test'
@@ -25617,35 +25633,35 @@ packages:
- threadpoolctl ; extra == 'test'
- scikit-umfpack ; extra == 'test'
- pooch ; extra == 'test'
- - hypothesis >=6.30 ; extra == 'test'
+ - hypothesis>=6.30 ; extra == 'test'
- array-api-strict ; extra == 'test'
- - sphinx >=5.0.0 ; extra == 'doc'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'doc'
- - sphinx-design >=0.4.0 ; extra == 'doc'
- - matplotlib >=3.5 ; extra == 'doc'
+ - sphinx>=5.0.0 ; extra == 'doc'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
+ - sphinx-design>=0.4.0 ; extra == 'doc'
+ - matplotlib>=3.5 ; extra == 'doc'
- numpydoc ; extra == 'doc'
- jupytext ; extra == 'doc'
- myst-nb ; extra == 'doc'
- pooch ; extra == 'doc'
- - jupyterlite-sphinx >=0.12.0 ; extra == 'doc'
+ - jupyterlite-sphinx>=0.12.0 ; extra == 'doc'
- jupyterlite-pyodide-kernel ; extra == 'doc'
- mypy ; extra == 'dev'
- typing-extensions ; extra == 'dev'
- types-psutil ; extra == 'dev'
- pycodestyle ; extra == 'dev'
- ruff ; extra == 'dev'
- - cython-lint >=0.12.2 ; extra == 'dev'
+ - cython-lint>=0.12.2 ; extra == 'dev'
- rich-click ; extra == 'dev'
- - doit >=0.36.0 ; extra == 'dev'
+ - doit>=0.36.0 ; extra == 'dev'
- pydevtool ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
name: scipy
version: 1.13.0
- url: https://files.pythonhosted.org/packages/d4/a1/d4adf25b6d2bef8d0ad1682829dcfcba97f3f96bb5b6f137bc3e41003cc7/scipy-1.13.0-cp311-cp311-win_amd64.whl
- sha256: a2f471de4d01200718b2b8927f7d76b5d9bde18047ea0fa8bd15c5ba3f26a1d6
+ url: https://files.pythonhosted.org/packages/51/b6/188c8974d747b2998d672040c5b62a635a72240c515dc4577a28e1dedc80/scipy-1.13.0-cp311-cp311-macosx_12_0_arm64.whl
+ sha256: 5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5
requires_dist:
- - numpy <2.3, >=1.22.4
+ - numpy<2.3,>=1.22.4
- pytest ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-timeout ; extra == 'test'
@@ -25656,35 +25672,35 @@ packages:
- threadpoolctl ; extra == 'test'
- scikit-umfpack ; extra == 'test'
- pooch ; extra == 'test'
- - hypothesis >=6.30 ; extra == 'test'
+ - hypothesis>=6.30 ; extra == 'test'
- array-api-strict ; extra == 'test'
- - sphinx >=5.0.0 ; extra == 'doc'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'doc'
- - sphinx-design >=0.4.0 ; extra == 'doc'
- - matplotlib >=3.5 ; extra == 'doc'
+ - sphinx>=5.0.0 ; extra == 'doc'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
+ - sphinx-design>=0.4.0 ; extra == 'doc'
+ - matplotlib>=3.5 ; extra == 'doc'
- numpydoc ; extra == 'doc'
- jupytext ; extra == 'doc'
- myst-nb ; extra == 'doc'
- pooch ; extra == 'doc'
- - jupyterlite-sphinx >=0.12.0 ; extra == 'doc'
+ - jupyterlite-sphinx>=0.12.0 ; extra == 'doc'
- jupyterlite-pyodide-kernel ; extra == 'doc'
- mypy ; extra == 'dev'
- typing-extensions ; extra == 'dev'
- types-psutil ; extra == 'dev'
- pycodestyle ; extra == 'dev'
- ruff ; extra == 'dev'
- - cython-lint >=0.12.2 ; extra == 'dev'
+ - cython-lint>=0.12.2 ; extra == 'dev'
- rich-click ; extra == 'dev'
- - doit >=0.36.0 ; extra == 'dev'
+ - doit>=0.36.0 ; extra == 'dev'
- pydevtool ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
name: scipy
version: 1.13.0
- url: https://files.pythonhosted.org/packages/51/b6/188c8974d747b2998d672040c5b62a635a72240c515dc4577a28e1dedc80/scipy-1.13.0-cp311-cp311-macosx_12_0_arm64.whl
- sha256: 5e4a756355522eb60fcd61f8372ac2549073c8788f6114449b37e9e8104f15a5
+ url: https://files.pythonhosted.org/packages/be/e3/236639c51636ec7e678f2aa608fe89acb9d02ef64e1fe1d8eb40373bc62b/scipy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 0fbcf8abaf5aa2dc8d6400566c1a727aed338b5fe880cde64907596a89d576fa
requires_dist:
- - numpy <2.3, >=1.22.4
+ - numpy<2.3,>=1.22.4
- pytest ; extra == 'test'
- pytest-cov ; extra == 'test'
- pytest-timeout ; extra == 'test'
@@ -25695,26 +25711,26 @@ packages:
- threadpoolctl ; extra == 'test'
- scikit-umfpack ; extra == 'test'
- pooch ; extra == 'test'
- - hypothesis >=6.30 ; extra == 'test'
+ - hypothesis>=6.30 ; extra == 'test'
- array-api-strict ; extra == 'test'
- - sphinx >=5.0.0 ; extra == 'doc'
- - pydata-sphinx-theme >=0.15.2 ; extra == 'doc'
- - sphinx-design >=0.4.0 ; extra == 'doc'
- - matplotlib >=3.5 ; extra == 'doc'
+ - sphinx>=5.0.0 ; extra == 'doc'
+ - pydata-sphinx-theme>=0.15.2 ; extra == 'doc'
+ - sphinx-design>=0.4.0 ; extra == 'doc'
+ - matplotlib>=3.5 ; extra == 'doc'
- numpydoc ; extra == 'doc'
- jupytext ; extra == 'doc'
- myst-nb ; extra == 'doc'
- pooch ; extra == 'doc'
- - jupyterlite-sphinx >=0.12.0 ; extra == 'doc'
+ - jupyterlite-sphinx>=0.12.0 ; extra == 'doc'
- jupyterlite-pyodide-kernel ; extra == 'doc'
- mypy ; extra == 'dev'
- typing-extensions ; extra == 'dev'
- types-psutil ; extra == 'dev'
- pycodestyle ; extra == 'dev'
- ruff ; extra == 'dev'
- - cython-lint >=0.12.2 ; extra == 'dev'
+ - cython-lint>=0.12.2 ; extra == 'dev'
- rich-click ; extra == 'dev'
- - doit >=0.36.0 ; extra == 'dev'
+ - doit>=0.36.0 ; extra == 'dev'
- pydevtool ; extra == 'dev'
requires_python: '>=3.9'
- kind: pypi
@@ -25737,12 +25753,12 @@ packages:
path: examples/python/segment_anything_model
sha256: 85bc241bedf212c63a39d0251a9dcc0fb3a435087a024d4eafd7f49342a75926
requires_dist:
+ - segment-anything @ git+https://github.com/facebookresearch/segment-anything.git
- numpy
- opencv-python
- - requests <3, >=2.31
+ - requests>=2.31,<3
- rerun-sdk
- - segment-anything @ git+https://github.com/facebookresearch/segment-anything.git
- - torch ==2.2.2
+ - torch==2.2.2
- torchvision
- tqdm
editable: true
@@ -25821,11 +25837,11 @@ packages:
- kind: pypi
name: shapely
version: 2.0.4
- url: https://files.pythonhosted.org/packages/93/fd/b205661ed60294a344406fb04227042fcede9501e81ee1e7018e9159455a/shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 7d56ce3e2a6a556b59a288771cf9d091470116867e578bebced8bfc4147fbfd7
+ url: https://files.pythonhosted.org/packages/d5/fb/bcf6a8164ed307c99f1a8fabe5acd86ac99a33f52530a3ca84b0936f95bd/shapely-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: 4310b5494271e18580d61022c0857eb85d30510d88606fa3b8314790df7f367d
requires_dist:
- - numpy <3, >=1.14
- - numpydoc ==1.1.* ; extra == 'docs'
+ - numpy<3,>=1.14
+ - numpydoc==1.1.* ; extra == 'docs'
- matplotlib ; extra == 'docs'
- sphinx ; extra == 'docs'
- sphinx-book-theme ; extra == 'docs'
@@ -25836,11 +25852,11 @@ packages:
- kind: pypi
name: shapely
version: 2.0.4
- url: https://files.pythonhosted.org/packages/d5/fb/bcf6a8164ed307c99f1a8fabe5acd86ac99a33f52530a3ca84b0936f95bd/shapely-2.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: 4310b5494271e18580d61022c0857eb85d30510d88606fa3b8314790df7f367d
+ url: https://files.pythonhosted.org/packages/6a/5c/3330f499ca860f0b92db4ceaebd7090096a83c1ea3ae7d8d4c6111761b82/shapely-2.0.4-cp311-cp311-win_amd64.whl
+ sha256: c52ed79f683f721b69a10fb9e3d940a468203f5054927215586c5d49a072de8d
requires_dist:
- - numpy <3, >=1.14
- - numpydoc ==1.1.* ; extra == 'docs'
+ - numpy<3,>=1.14
+ - numpydoc==1.1.* ; extra == 'docs'
- matplotlib ; extra == 'docs'
- sphinx ; extra == 'docs'
- sphinx-book-theme ; extra == 'docs'
@@ -25851,11 +25867,11 @@ packages:
- kind: pypi
name: shapely
version: 2.0.4
- url: https://files.pythonhosted.org/packages/6a/5c/3330f499ca860f0b92db4ceaebd7090096a83c1ea3ae7d8d4c6111761b82/shapely-2.0.4-cp311-cp311-win_amd64.whl
- sha256: c52ed79f683f721b69a10fb9e3d940a468203f5054927215586c5d49a072de8d
+ url: https://files.pythonhosted.org/packages/2a/fb/e3f72b10a90e26bb1a92a38b3f30f3074ebac6d532f87848ac09c3e8a73b/shapely-2.0.4-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: 58b0ecc505bbe49a99551eea3f2e8a9b3b24b3edd2a4de1ac0dc17bc75c9ec07
requires_dist:
- - numpy <3, >=1.14
- - numpydoc ==1.1.* ; extra == 'docs'
+ - numpy<3,>=1.14
+ - numpydoc==1.1.* ; extra == 'docs'
- matplotlib ; extra == 'docs'
- sphinx ; extra == 'docs'
- sphinx-book-theme ; extra == 'docs'
@@ -25866,11 +25882,11 @@ packages:
- kind: pypi
name: shapely
version: 2.0.4
- url: https://files.pythonhosted.org/packages/2a/fb/e3f72b10a90e26bb1a92a38b3f30f3074ebac6d532f87848ac09c3e8a73b/shapely-2.0.4-cp311-cp311-macosx_11_0_arm64.whl
- sha256: 58b0ecc505bbe49a99551eea3f2e8a9b3b24b3edd2a4de1ac0dc17bc75c9ec07
+ url: https://files.pythonhosted.org/packages/93/fd/b205661ed60294a344406fb04227042fcede9501e81ee1e7018e9159455a/shapely-2.0.4-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 7d56ce3e2a6a556b59a288771cf9d091470116867e578bebced8bfc4147fbfd7
requires_dist:
- - numpy <3, >=1.14
- - numpydoc ==1.1.* ; extra == 'docs'
+ - numpy<3,>=1.14
+ - numpydoc==1.1.* ; extra == 'docs'
- matplotlib ; extra == 'docs'
- sphinx ; extra == 'docs'
- sphinx-book-theme ; extra == 'docs'
@@ -25894,10 +25910,10 @@ packages:
requires_dist:
- mesh-to-sdf @ git+https://github.com/marian42/mesh_to_sdf.git
- numpy
- - requests <3, >=2.31
+ - requests>=2.31,<3
- rerun-sdk
- - scikit-learn >=1.1.3
- - trimesh ==3.15.2
+ - scikit-learn>=1.1.3
+ - trimesh==3.15.2
editable: true
- kind: conda
name: sigtool
@@ -26108,28 +26124,28 @@ packages:
- kind: pypi
name: sounddevice
version: 0.4.6
- url: https://files.pythonhosted.org/packages/24/5a/c0b9066fcaf783054b3f35254938dcba2d8cf02576ebdc56b6b4e85661f2/sounddevice-0.4.6-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl
- sha256: 8b0b806c205dd3e3cd5a97262b2482624fd21db7d47083b887090148a08051c8
+ url: https://files.pythonhosted.org/packages/d7/d5/f0a0aba169f23657c7af3f0c878db7413a9a3b113026fc759862a697c611/sounddevice-0.4.6-py3-none-any.whl
+ sha256: 5de768ba6fe56ad2b5aaa2eea794b76b73e427961c95acad2ee2ed7f866a4b20
requires_dist:
- - cffi >=1.0
+ - cffi>=1.0
- numpy ; extra == 'numpy'
requires_python: '>=3.7'
- kind: pypi
name: sounddevice
version: 0.4.6
- url: https://files.pythonhosted.org/packages/d7/d5/f0a0aba169f23657c7af3f0c878db7413a9a3b113026fc759862a697c611/sounddevice-0.4.6-py3-none-any.whl
- sha256: 5de768ba6fe56ad2b5aaa2eea794b76b73e427961c95acad2ee2ed7f866a4b20
+ url: https://files.pythonhosted.org/packages/39/ae/5e84220bfca4256e4ca2a62a174636089ab6ff671b5f9ddd7e8238587acd/sounddevice-0.4.6-py3-none-win_amd64.whl
+ sha256: 7830d4f8f8570f2e5552942f81d96999c5fcd9a0b682d6fc5d5c5529df23be2c
requires_dist:
- - cffi >=1.0
+ - cffi>=1.0
- numpy ; extra == 'numpy'
requires_python: '>=3.7'
- kind: pypi
name: sounddevice
version: 0.4.6
- url: https://files.pythonhosted.org/packages/39/ae/5e84220bfca4256e4ca2a62a174636089ab6ff671b5f9ddd7e8238587acd/sounddevice-0.4.6-py3-none-win_amd64.whl
- sha256: 7830d4f8f8570f2e5552942f81d96999c5fcd9a0b682d6fc5d5c5529df23be2c
+ url: https://files.pythonhosted.org/packages/24/5a/c0b9066fcaf783054b3f35254938dcba2d8cf02576ebdc56b6b4e85661f2/sounddevice-0.4.6-py3-none-macosx_10_6_x86_64.macosx_10_6_universal2.whl
+ sha256: 8b0b806c205dd3e3cd5a97262b2482624fd21db7d47083b887090148a08051c8
requires_dist:
- - cffi >=1.0
+ - cffi>=1.0
- numpy ; extra == 'numpy'
requires_python: '>=3.7'
- kind: pypi
@@ -26157,9 +26173,9 @@ packages:
path: examples/python/structure_from_motion
sha256: b20b79aa7bb2b4225b37d3cb28872a70dc7e9ab2ca9ab138b90d60fc8d7b4c15
requires_dist:
+ - opencv-python>4.6
- numpy
- - opencv-python >4.6
- - requests <3, >=2.31
+ - requests>=2.31,<3
- rerun-sdk
- tqdm
editable: true
@@ -26169,7 +26185,7 @@ packages:
url: https://files.pythonhosted.org/packages/d2/05/e6600db80270777c4a64238a98d442f0fd07cc8915be2a1c16da7f2b9e74/sympy-1.12-py3-none-any.whl
sha256: c3588cd4295d0c0f603d0f2ae780587e64e2efeedb3521e46b9bb1d08d184fa5
requires_dist:
- - mpmath >=0.19
+ - mpmath>=0.19
requires_python: '>=3.8'
- kind: conda
name: sysroot_linux-64
@@ -26360,7 +26376,7 @@ packages:
sha256: 4154f091aa24d4e75bfad9ab2d5424a68c70e67b8220188066dc61946d4551bd
requires_dist:
- numpy
- - imagecodecs >=2023.8.12 ; extra == 'all'
+ - imagecodecs>=2023.8.12 ; extra == 'all'
- matplotlib ; extra == 'all'
- defusedxml ; extra == 'all'
- lxml ; extra == 'all'
@@ -26373,7 +26389,7 @@ packages:
url: https://files.pythonhosted.org/packages/76/aa/4b54f6047c442883243f68f6f9e3a0ab77aaae4b3e6e51a98b371e73dd77/timm-0.9.11-py3-none-any.whl
sha256: 02bba56786633ff46b55ee0ce3b991fa85375556844e500ad18e6b12921dc3da
requires_dist:
- - torch >=1.7
+ - torch>=1.7
- torchvision
- pyyaml
- huggingface-hub
@@ -26527,15 +26543,15 @@ packages:
- kind: pypi
name: tokenizers
version: 0.19.1
- url: https://files.pythonhosted.org/packages/c8/d6/6e1d728d765eb4102767f071bf7f6439ab10d7f4a975c9217db65715207a/tokenizers-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl
- sha256: 5c88d1481f1882c2e53e6bb06491e474e420d9ac7bdff172610c4f9ad3898059
+ url: https://files.pythonhosted.org/packages/a7/03/fb50fc03f86016b227a967c8d474f90230c885c0d18f78acdfda7a96ce56/tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
+ sha256: d16ff18907f4909dca9b076b9c2d899114dd6abceeb074eca0c93e2353f943aa
requires_dist:
- - huggingface-hub >=0.16.4, <1.0
+ - huggingface-hub>=0.16.4,<1.0
- pytest ; extra == 'testing'
- requests ; extra == 'testing'
- numpy ; extra == 'testing'
- datasets ; extra == 'testing'
- - black ==22.3 ; extra == 'testing'
+ - black==22.3 ; extra == 'testing'
- ruff ; extra == 'testing'
- sphinx ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
@@ -26545,15 +26561,15 @@ packages:
- kind: pypi
name: tokenizers
version: 0.19.1
- url: https://files.pythonhosted.org/packages/a7/03/fb50fc03f86016b227a967c8d474f90230c885c0d18f78acdfda7a96ce56/tokenizers-0.19.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- sha256: d16ff18907f4909dca9b076b9c2d899114dd6abceeb074eca0c93e2353f943aa
+ url: https://files.pythonhosted.org/packages/65/8e/6d7d72b28f22c422cff8beae10ac3c2e4376b9be721ef8167b7eecd1da62/tokenizers-0.19.1-cp311-none-win_amd64.whl
+ sha256: ad57d59341710b94a7d9dbea13f5c1e7d76fd8d9bcd944a7a6ab0b0da6e0cc66
requires_dist:
- - huggingface-hub >=0.16.4, <1.0
+ - huggingface-hub>=0.16.4,<1.0
- pytest ; extra == 'testing'
- requests ; extra == 'testing'
- numpy ; extra == 'testing'
- datasets ; extra == 'testing'
- - black ==22.3 ; extra == 'testing'
+ - black==22.3 ; extra == 'testing'
- ruff ; extra == 'testing'
- sphinx ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
@@ -26563,15 +26579,15 @@ packages:
- kind: pypi
name: tokenizers
version: 0.19.1
- url: https://files.pythonhosted.org/packages/65/8e/6d7d72b28f22c422cff8beae10ac3c2e4376b9be721ef8167b7eecd1da62/tokenizers-0.19.1-cp311-none-win_amd64.whl
- sha256: ad57d59341710b94a7d9dbea13f5c1e7d76fd8d9bcd944a7a6ab0b0da6e0cc66
+ url: https://files.pythonhosted.org/packages/90/79/d17a0f491d10817cd30f1121a07aa09c8e97a81114b116e473baf1577f09/tokenizers-0.19.1-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: ddf672ed719b4ed82b51499100f5417d7d9f6fb05a65e232249268f35de5ed14
requires_dist:
- - huggingface-hub >=0.16.4, <1.0
+ - huggingface-hub>=0.16.4,<1.0
- pytest ; extra == 'testing'
- requests ; extra == 'testing'
- numpy ; extra == 'testing'
- datasets ; extra == 'testing'
- - black ==22.3 ; extra == 'testing'
+ - black==22.3 ; extra == 'testing'
- ruff ; extra == 'testing'
- sphinx ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
@@ -26581,15 +26597,15 @@ packages:
- kind: pypi
name: tokenizers
version: 0.19.1
- url: https://files.pythonhosted.org/packages/90/79/d17a0f491d10817cd30f1121a07aa09c8e97a81114b116e473baf1577f09/tokenizers-0.19.1-cp311-cp311-macosx_11_0_arm64.whl
- sha256: ddf672ed719b4ed82b51499100f5417d7d9f6fb05a65e232249268f35de5ed14
+ url: https://files.pythonhosted.org/packages/c8/d6/6e1d728d765eb4102767f071bf7f6439ab10d7f4a975c9217db65715207a/tokenizers-0.19.1-cp311-cp311-macosx_10_12_x86_64.whl
+ sha256: 5c88d1481f1882c2e53e6bb06491e474e420d9ac7bdff172610c4f9ad3898059
requires_dist:
- - huggingface-hub >=0.16.4, <1.0
+ - huggingface-hub>=0.16.4,<1.0
- pytest ; extra == 'testing'
- requests ; extra == 'testing'
- numpy ; extra == 'testing'
- datasets ; extra == 'testing'
- - black ==22.3 ; extra == 'testing'
+ - black==22.3 ; extra == 'testing'
- ruff ; extra == 'testing'
- sphinx ; extra == 'docs'
- sphinx-rtd-theme ; extra == 'docs'
@@ -26637,56 +26653,56 @@ packages:
- kind: pypi
name: torch
version: 2.2.2
- url: https://files.pythonhosted.org/packages/02/af/81abea3d73fddfde26afd1ce52a4ddfa389cd2b684c89d6c4d0d5d8d0dfa/torch-2.2.2-cp311-cp311-manylinux2014_aarch64.whl
- sha256: 32827fa1fbe5da8851686256b4cd94cc7b11be962862c2293811c94eea9457bf
+ url: https://files.pythonhosted.org/packages/3f/14/e105b8ef6d324e789c1589e95cb0ab63f3e07c2216d68b1178b7c21b7d2a/torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl
+ sha256: 95b9b44f3bcebd8b6cd8d37ec802048c872d9c567ba52c894bba90863a439059
requires_dist:
- filelock
- - typing-extensions >=4.8.0
+ - typing-extensions>=4.8.0
- sympy
- networkx
- jinja2
- fsspec
- - nvidia-cuda-nvrtc-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-runtime-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-cupti-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cudnn-cu12 ==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cublas-cu12 ==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cufft-cu12 ==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-curand-cu12 ==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusolver-cu12 ==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusparse-cu12 ==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nccl-cu12 ==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nvtx-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - triton ==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
- - opt-einsum >=3.3 ; extra == 'opt-einsum'
- - optree >=0.9.1 ; extra == 'optree'
+ - nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cudnn-cu12==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cublas-cu12==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cufft-cu12==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-curand-cu12==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusolver-cu12==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusparse-cu12==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nccl-cu12==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nvtx-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - triton==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
+ - opt-einsum>=3.3 ; extra == 'opt-einsum'
+ - optree>=0.9.1 ; extra == 'optree'
requires_python: '>=3.8.0'
- kind: pypi
name: torch
version: 2.2.2
- url: https://files.pythonhosted.org/packages/5c/01/5ab75f138bf32d7a69df61e4997e24eccad87cc009f5fb7e2a31af8a4036/torch-2.2.2-cp311-cp311-win_amd64.whl
- sha256: f9ef0a648310435511e76905f9b89612e45ef2c8b023bee294f5e6f7e73a3e7c
+ url: https://files.pythonhosted.org/packages/02/af/81abea3d73fddfde26afd1ce52a4ddfa389cd2b684c89d6c4d0d5d8d0dfa/torch-2.2.2-cp311-cp311-manylinux2014_aarch64.whl
+ sha256: 32827fa1fbe5da8851686256b4cd94cc7b11be962862c2293811c94eea9457bf
requires_dist:
- filelock
- - typing-extensions >=4.8.0
+ - typing-extensions>=4.8.0
- sympy
- networkx
- jinja2
- fsspec
- - nvidia-cuda-nvrtc-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-runtime-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-cupti-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cudnn-cu12 ==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cublas-cu12 ==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cufft-cu12 ==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-curand-cu12 ==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusolver-cu12 ==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusparse-cu12 ==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nccl-cu12 ==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nvtx-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - triton ==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
- - opt-einsum >=3.3 ; extra == 'opt-einsum'
- - optree >=0.9.1 ; extra == 'optree'
+ - nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cudnn-cu12==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cublas-cu12==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cufft-cu12==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-curand-cu12==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusolver-cu12==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusparse-cu12==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nccl-cu12==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nvtx-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - triton==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
+ - opt-einsum>=3.3 ; extra == 'opt-einsum'
+ - optree>=0.9.1 ; extra == 'optree'
requires_python: '>=3.8.0'
- kind: pypi
name: torch
@@ -26695,122 +26711,122 @@ packages:
sha256: ad4c03b786e074f46606f4151c0a1e3740268bcf29fbd2fdf6666d66341c1dcb
requires_dist:
- filelock
- - typing-extensions >=4.8.0
+ - typing-extensions>=4.8.0
- sympy
- networkx
- jinja2
- fsspec
- - nvidia-cuda-nvrtc-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-runtime-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-cupti-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cudnn-cu12 ==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cublas-cu12 ==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cufft-cu12 ==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-curand-cu12 ==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusolver-cu12 ==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusparse-cu12 ==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nccl-cu12 ==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nvtx-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - triton ==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
- - opt-einsum >=3.3 ; extra == 'opt-einsum'
- - optree >=0.9.1 ; extra == 'optree'
+ - nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cudnn-cu12==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cublas-cu12==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cufft-cu12==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-curand-cu12==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusolver-cu12==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusparse-cu12==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nccl-cu12==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nvtx-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - triton==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
+ - opt-einsum>=3.3 ; extra == 'opt-einsum'
+ - optree>=0.9.1 ; extra == 'optree'
requires_python: '>=3.8.0'
- kind: pypi
name: torch
version: 2.2.2
- url: https://files.pythonhosted.org/packages/96/23/18b9c16c18a77755e7f15173821c7100f11e6b3b7717bea8d729bdeb92c0/torch-2.2.2-cp311-none-macosx_11_0_arm64.whl
- sha256: 49aa4126ede714c5aeef7ae92969b4b0bbe67f19665106463c39f22e0a1860d1
+ url: https://files.pythonhosted.org/packages/5c/01/5ab75f138bf32d7a69df61e4997e24eccad87cc009f5fb7e2a31af8a4036/torch-2.2.2-cp311-cp311-win_amd64.whl
+ sha256: f9ef0a648310435511e76905f9b89612e45ef2c8b023bee294f5e6f7e73a3e7c
requires_dist:
- filelock
- - typing-extensions >=4.8.0
+ - typing-extensions>=4.8.0
- sympy
- networkx
- jinja2
- fsspec
- - nvidia-cuda-nvrtc-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-runtime-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-cupti-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cudnn-cu12 ==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cublas-cu12 ==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cufft-cu12 ==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-curand-cu12 ==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusolver-cu12 ==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusparse-cu12 ==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nccl-cu12 ==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nvtx-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - triton ==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
- - opt-einsum >=3.3 ; extra == 'opt-einsum'
- - optree >=0.9.1 ; extra == 'optree'
+ - nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cudnn-cu12==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cublas-cu12==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cufft-cu12==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-curand-cu12==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusolver-cu12==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusparse-cu12==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nccl-cu12==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nvtx-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - triton==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
+ - opt-einsum>=3.3 ; extra == 'opt-einsum'
+ - optree>=0.9.1 ; extra == 'optree'
requires_python: '>=3.8.0'
- kind: pypi
name: torch
version: 2.2.2
- url: https://files.pythonhosted.org/packages/3f/14/e105b8ef6d324e789c1589e95cb0ab63f3e07c2216d68b1178b7c21b7d2a/torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl
- sha256: 95b9b44f3bcebd8b6cd8d37ec802048c872d9c567ba52c894bba90863a439059
+ url: https://files.pythonhosted.org/packages/96/23/18b9c16c18a77755e7f15173821c7100f11e6b3b7717bea8d729bdeb92c0/torch-2.2.2-cp311-none-macosx_11_0_arm64.whl
+ sha256: 49aa4126ede714c5aeef7ae92969b4b0bbe67f19665106463c39f22e0a1860d1
requires_dist:
- filelock
- - typing-extensions >=4.8.0
+ - typing-extensions>=4.8.0
- sympy
- networkx
- jinja2
- fsspec
- - nvidia-cuda-nvrtc-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-runtime-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cuda-cupti-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cudnn-cu12 ==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cublas-cu12 ==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cufft-cu12 ==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-curand-cu12 ==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusolver-cu12 ==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-cusparse-cu12 ==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nccl-cu12 ==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - nvidia-nvtx-cu12 ==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
- - triton ==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
- - opt-einsum >=3.3 ; extra == 'opt-einsum'
- - optree >=0.9.1 ; extra == 'optree'
+ - nvidia-cuda-nvrtc-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-runtime-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cuda-cupti-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cudnn-cu12==8.9.2.26 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cublas-cu12==12.1.3.1 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cufft-cu12==11.0.2.54 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-curand-cu12==10.3.2.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusolver-cu12==11.4.5.107 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-cusparse-cu12==12.1.0.106 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nccl-cu12==2.19.3 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - nvidia-nvtx-cu12==12.1.105 ; platform_system == 'Linux' and platform_machine == 'x86_64'
+ - triton==2.2.0 ; platform_system == 'Linux' and platform_machine == 'x86_64' and python_version < '3.12'
+ - opt-einsum>=3.3 ; extra == 'opt-einsum'
+ - optree>=0.9.1 ; extra == 'optree'
requires_python: '>=3.8.0'
- kind: pypi
name: torchvision
version: 0.17.2
- url: https://files.pythonhosted.org/packages/46/95/179dd1bf8fd6bd689f0907f4baed557d2b12d2cf3d7ed1a8ecefe0a63d83/torchvision-0.17.2-cp311-cp311-macosx_10_13_x86_64.whl
- sha256: 9b83e55ee7d0a1704f52b9c0ac87388e7a6d1d98a6bde7b0b35f9ab54d7bda54
+ url: https://files.pythonhosted.org/packages/68/49/5e1c771294407bb25e6dbcf169aef5cffefcddf27b0176125a9b0af06a1e/torchvision-0.17.2-cp311-cp311-manylinux1_x86_64.whl
+ sha256: 3bbc24b7713e8f22766992562547d8b4b10001208d372fe599255af84bfd1a69
requires_dist:
- numpy
- - torch ==2.2.2
- - pillow !=8.3.*, >=5.3.0
+ - torch==2.2.2
+ - pillow!=8.3.*,>=5.3.0
- scipy ; extra == 'scipy'
requires_python: '>=3.8'
- kind: pypi
name: torchvision
version: 0.17.2
- url: https://files.pythonhosted.org/packages/68/49/5e1c771294407bb25e6dbcf169aef5cffefcddf27b0176125a9b0af06a1e/torchvision-0.17.2-cp311-cp311-manylinux1_x86_64.whl
- sha256: 3bbc24b7713e8f22766992562547d8b4b10001208d372fe599255af84bfd1a69
+ url: https://files.pythonhosted.org/packages/c6/75/d869f600fc33df8b8ca99943e165a4ca23b73c68dc1942098fde0a6b46f3/torchvision-0.17.2-cp311-cp311-win_amd64.whl
+ sha256: 6835897df852fad1015e6a106c167c83848114cbcc7d86112384a973404e4431
requires_dist:
- numpy
- - torch ==2.2.2
- - pillow !=8.3.*, >=5.3.0
+ - torch==2.2.2
+ - pillow!=8.3.*,>=5.3.0
- scipy ; extra == 'scipy'
requires_python: '>=3.8'
- kind: pypi
name: torchvision
version: 0.17.2
- url: https://files.pythonhosted.org/packages/c6/75/d869f600fc33df8b8ca99943e165a4ca23b73c68dc1942098fde0a6b46f3/torchvision-0.17.2-cp311-cp311-win_amd64.whl
- sha256: 6835897df852fad1015e6a106c167c83848114cbcc7d86112384a973404e4431
+ url: https://files.pythonhosted.org/packages/36/15/c48f74f8f8d382677ef016b65f09969028a1549b8a518c18894deb95b544/torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: e031004a1bc432c980a7bd642f6c189a3efc316e423fc30b5569837166a4e28d
requires_dist:
- numpy
- - torch ==2.2.2
- - pillow !=8.3.*, >=5.3.0
+ - torch==2.2.2
+ - pillow!=8.3.*,>=5.3.0
- scipy ; extra == 'scipy'
requires_python: '>=3.8'
- kind: pypi
name: torchvision
version: 0.17.2
- url: https://files.pythonhosted.org/packages/36/15/c48f74f8f8d382677ef016b65f09969028a1549b8a518c18894deb95b544/torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl
- sha256: e031004a1bc432c980a7bd642f6c189a3efc316e423fc30b5569837166a4e28d
+ url: https://files.pythonhosted.org/packages/46/95/179dd1bf8fd6bd689f0907f4baed557d2b12d2cf3d7ed1a8ecefe0a63d83/torchvision-0.17.2-cp311-cp311-macosx_10_13_x86_64.whl
+ sha256: 9b83e55ee7d0a1704f52b9c0ac87388e7a6d1d98a6bde7b0b35f9ab54d7bda54
requires_dist:
- numpy
- - torch ==2.2.2
- - pillow !=8.3.*, >=5.3.0
+ - torch==2.2.2
+ - pillow!=8.3.*,>=5.3.0
- scipy ; extra == 'scipy'
requires_python: '>=3.8'
- kind: pypi
@@ -26820,11 +26836,11 @@ packages:
sha256: b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644
requires_dist:
- colorama ; platform_system == 'Windows'
- - pytest >=6 ; extra == 'dev'
+ - pytest>=6 ; extra == 'dev'
- pytest-cov ; extra == 'dev'
- pytest-timeout ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- - ipywidgets >=6 ; extra == 'notebook'
+ - ipywidgets>=6 ; extra == 'notebook'
- slack-sdk ; extra == 'slack'
- requests ; extra == 'telegram'
requires_python: '>=3.7'
@@ -26852,308 +26868,308 @@ packages:
sha256: 71cb94301ec211a2e1d4b8c8d18dcfaa902dfa00a089dceca167a8aa265d6f2d
requires_dist:
- filelock
- - huggingface-hub <1.0, >=0.19.3
- - numpy >=1.17
- - packaging >=20.0
- - pyyaml >=5.1
- - regex !=2019.12.17
+ - huggingface-hub<1.0,>=0.19.3
+ - numpy>=1.17
+ - packaging>=20.0
+ - pyyaml>=5.1
+ - regex!=2019.12.17
- requests
- - tokenizers <0.20, >=0.19
- - safetensors >=0.4.1
- - tqdm >=4.27
- - accelerate >=0.21.0 ; extra == 'accelerate'
+ - tokenizers<0.20,>=0.19
+ - safetensors>=0.4.1
+ - tqdm>=4.27
+ - accelerate>=0.21.0 ; extra == 'accelerate'
- diffusers ; extra == 'agents'
- - accelerate >=0.21.0 ; extra == 'agents'
- - datasets !=2.5.0 ; extra == 'agents'
+ - accelerate>=0.21.0 ; extra == 'agents'
+ - datasets!=2.5.0 ; extra == 'agents'
- torch ; extra == 'agents'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'agents'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'agents'
- opencv-python ; extra == 'agents'
- - pillow <=15.0, >=10.0.1 ; extra == 'agents'
- - tensorflow <2.16, >=2.6 ; extra == 'all'
+ - pillow<=15.0,>=10.0.1 ; extra == 'agents'
+ - tensorflow<2.16,>=2.6 ; extra == 'all'
- onnxconverter-common ; extra == 'all'
- tf2onnx ; extra == 'all'
- - tensorflow-text <2.16 ; extra == 'all'
- - keras-nlp >=0.3.1 ; extra == 'all'
+ - tensorflow-text<2.16 ; extra == 'all'
+ - keras-nlp>=0.3.1 ; extra == 'all'
- torch ; extra == 'all'
- - accelerate >=0.21.0 ; extra == 'all'
- - jax <=0.4.13, >=0.4.1 ; extra == 'all'
- - jaxlib <=0.4.13, >=0.4.1 ; extra == 'all'
- - flax <=0.7.0, >=0.4.1 ; extra == 'all'
- - optax <=0.1.4, >=0.0.8 ; extra == 'all'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'all'
+ - accelerate>=0.21.0 ; extra == 'all'
+ - jax<=0.4.13,>=0.4.1 ; extra == 'all'
+ - jaxlib<=0.4.13,>=0.4.1 ; extra == 'all'
+ - flax<=0.7.0,>=0.4.1 ; extra == 'all'
+ - optax<=0.1.4,>=0.0.8 ; extra == 'all'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'all'
- protobuf ; extra == 'all'
- - tokenizers <0.20, >=0.19 ; extra == 'all'
+ - tokenizers<0.20,>=0.19 ; extra == 'all'
- torchaudio ; extra == 'all'
- librosa ; extra == 'all'
- - pyctcdecode >=0.4.0 ; extra == 'all'
+ - pyctcdecode>=0.4.0 ; extra == 'all'
- phonemizer ; extra == 'all'
- kenlm ; extra == 'all'
- - pillow <=15.0, >=10.0.1 ; extra == 'all'
+ - pillow<=15.0,>=10.0.1 ; extra == 'all'
- optuna ; extra == 'all'
- - ray[tune] >=2.7.0 ; extra == 'all'
+ - ray[tune]>=2.7.0 ; extra == 'all'
- sigopt ; extra == 'all'
- timm ; extra == 'all'
- torchvision ; extra == 'all'
- - codecarbon ==1.2.0 ; extra == 'all'
- - decord ==0.6.0 ; extra == 'all'
- - av ==9.2.0 ; extra == 'all'
+ - codecarbon==1.2.0 ; extra == 'all'
+ - decord==0.6.0 ; extra == 'all'
+ - av==9.2.0 ; extra == 'all'
- librosa ; extra == 'audio'
- - pyctcdecode >=0.4.0 ; extra == 'audio'
+ - pyctcdecode>=0.4.0 ; extra == 'audio'
- phonemizer ; extra == 'audio'
- kenlm ; extra == 'audio'
- - codecarbon ==1.2.0 ; extra == 'codecarbon'
- - deepspeed >=0.9.3 ; extra == 'deepspeed'
- - accelerate >=0.21.0 ; extra == 'deepspeed'
- - deepspeed >=0.9.3 ; extra == 'deepspeed-testing'
- - accelerate >=0.21.0 ; extra == 'deepspeed-testing'
- - pytest <8.0.0, >=7.2.0 ; extra == 'deepspeed-testing'
+ - codecarbon==1.2.0 ; extra == 'codecarbon'
+ - deepspeed>=0.9.3 ; extra == 'deepspeed'
+ - accelerate>=0.21.0 ; extra == 'deepspeed'
+ - deepspeed>=0.9.3 ; extra == 'deepspeed-testing'
+ - accelerate>=0.21.0 ; extra == 'deepspeed-testing'
+ - pytest<8.0.0,>=7.2.0 ; extra == 'deepspeed-testing'
- pytest-xdist ; extra == 'deepspeed-testing'
- timeout-decorator ; extra == 'deepspeed-testing'
- parameterized ; extra == 'deepspeed-testing'
- psutil ; extra == 'deepspeed-testing'
- - datasets !=2.5.0 ; extra == 'deepspeed-testing'
- - dill <0.3.5 ; extra == 'deepspeed-testing'
- - evaluate >=0.2.0 ; extra == 'deepspeed-testing'
+ - datasets!=2.5.0 ; extra == 'deepspeed-testing'
+ - dill<0.3.5 ; extra == 'deepspeed-testing'
+ - evaluate>=0.2.0 ; extra == 'deepspeed-testing'
- pytest-timeout ; extra == 'deepspeed-testing'
- - ruff ==0.1.5 ; extra == 'deepspeed-testing'
- - sacrebleu <2.0.0, >=1.4.12 ; extra == 'deepspeed-testing'
- - rouge-score !=0.0.7, !=0.0.8, !=0.1, !=0.1.1 ; extra == 'deepspeed-testing'
+ - ruff==0.1.5 ; extra == 'deepspeed-testing'
+ - sacrebleu<2.0.0,>=1.4.12 ; extra == 'deepspeed-testing'
+ - rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1 ; extra == 'deepspeed-testing'
- nltk ; extra == 'deepspeed-testing'
- - gitpython <3.1.19 ; extra == 'deepspeed-testing'
- - hf-doc-builder >=0.3.0 ; extra == 'deepspeed-testing'
+ - gitpython<3.1.19 ; extra == 'deepspeed-testing'
+ - hf-doc-builder>=0.3.0 ; extra == 'deepspeed-testing'
- protobuf ; extra == 'deepspeed-testing'
- sacremoses ; extra == 'deepspeed-testing'
- rjieba ; extra == 'deepspeed-testing'
- beautifulsoup4 ; extra == 'deepspeed-testing'
- tensorboard ; extra == 'deepspeed-testing'
- pydantic ; extra == 'deepspeed-testing'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'deepspeed-testing'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'deepspeed-testing'
- faiss-cpu ; extra == 'deepspeed-testing'
- - cookiecutter ==1.7.3 ; extra == 'deepspeed-testing'
+ - cookiecutter==1.7.3 ; extra == 'deepspeed-testing'
- optuna ; extra == 'deepspeed-testing'
- - tensorflow <2.16, >=2.6 ; extra == 'dev'
+ - tensorflow<2.16,>=2.6 ; extra == 'dev'
- onnxconverter-common ; extra == 'dev'
- tf2onnx ; extra == 'dev'
- - tensorflow-text <2.16 ; extra == 'dev'
- - keras-nlp >=0.3.1 ; extra == 'dev'
+ - tensorflow-text<2.16 ; extra == 'dev'
+ - keras-nlp>=0.3.1 ; extra == 'dev'
- torch ; extra == 'dev'
- - accelerate >=0.21.0 ; extra == 'dev'
- - jax <=0.4.13, >=0.4.1 ; extra == 'dev'
- - jaxlib <=0.4.13, >=0.4.1 ; extra == 'dev'
- - flax <=0.7.0, >=0.4.1 ; extra == 'dev'
- - optax <=0.1.4, >=0.0.8 ; extra == 'dev'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'dev'
+ - accelerate>=0.21.0 ; extra == 'dev'
+ - jax<=0.4.13,>=0.4.1 ; extra == 'dev'
+ - jaxlib<=0.4.13,>=0.4.1 ; extra == 'dev'
+ - flax<=0.7.0,>=0.4.1 ; extra == 'dev'
+ - optax<=0.1.4,>=0.0.8 ; extra == 'dev'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'dev'
- protobuf ; extra == 'dev'
- - tokenizers <0.20, >=0.19 ; extra == 'dev'
+ - tokenizers<0.20,>=0.19 ; extra == 'dev'
- torchaudio ; extra == 'dev'
- librosa ; extra == 'dev'
- - pyctcdecode >=0.4.0 ; extra == 'dev'
+ - pyctcdecode>=0.4.0 ; extra == 'dev'
- phonemizer ; extra == 'dev'
- kenlm ; extra == 'dev'
- - pillow <=15.0, >=10.0.1 ; extra == 'dev'
+ - pillow<=15.0,>=10.0.1 ; extra == 'dev'
- optuna ; extra == 'dev'
- - ray[tune] >=2.7.0 ; extra == 'dev'
+ - ray[tune]>=2.7.0 ; extra == 'dev'
- sigopt ; extra == 'dev'
- timm ; extra == 'dev'
- torchvision ; extra == 'dev'
- - codecarbon ==1.2.0 ; extra == 'dev'
- - decord ==0.6.0 ; extra == 'dev'
- - av ==9.2.0 ; extra == 'dev'
- - pytest <8.0.0, >=7.2.0 ; extra == 'dev'
+ - codecarbon==1.2.0 ; extra == 'dev'
+ - decord==0.6.0 ; extra == 'dev'
+ - av==9.2.0 ; extra == 'dev'
+ - pytest<8.0.0,>=7.2.0 ; extra == 'dev'
- pytest-xdist ; extra == 'dev'
- timeout-decorator ; extra == 'dev'
- parameterized ; extra == 'dev'
- psutil ; extra == 'dev'
- - datasets !=2.5.0 ; extra == 'dev'
- - dill <0.3.5 ; extra == 'dev'
- - evaluate >=0.2.0 ; extra == 'dev'
+ - datasets!=2.5.0 ; extra == 'dev'
+ - dill<0.3.5 ; extra == 'dev'
+ - evaluate>=0.2.0 ; extra == 'dev'
- pytest-timeout ; extra == 'dev'
- - ruff ==0.1.5 ; extra == 'dev'
- - sacrebleu <2.0.0, >=1.4.12 ; extra == 'dev'
- - rouge-score !=0.0.7, !=0.0.8, !=0.1, !=0.1.1 ; extra == 'dev'
+ - ruff==0.1.5 ; extra == 'dev'
+ - sacrebleu<2.0.0,>=1.4.12 ; extra == 'dev'
+ - rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1 ; extra == 'dev'
- nltk ; extra == 'dev'
- - gitpython <3.1.19 ; extra == 'dev'
- - hf-doc-builder >=0.3.0 ; extra == 'dev'
+ - gitpython<3.1.19 ; extra == 'dev'
+ - hf-doc-builder>=0.3.0 ; extra == 'dev'
- sacremoses ; extra == 'dev'
- rjieba ; extra == 'dev'
- beautifulsoup4 ; extra == 'dev'
- tensorboard ; extra == 'dev'
- pydantic ; extra == 'dev'
- faiss-cpu ; extra == 'dev'
- - cookiecutter ==1.7.3 ; extra == 'dev'
- - isort >=5.5.4 ; extra == 'dev'
- - urllib3 <2.0.0 ; extra == 'dev'
- - fugashi >=1.0 ; extra == 'dev'
- - ipadic <2.0, >=1.0.0 ; extra == 'dev'
- - unidic-lite >=1.0.7 ; extra == 'dev'
- - unidic >=1.0.2 ; extra == 'dev'
- - sudachipy >=0.6.6 ; extra == 'dev'
- - sudachidict-core >=20220729 ; extra == 'dev'
- - rhoknp <1.3.1, >=1.1.0 ; extra == 'dev'
+ - cookiecutter==1.7.3 ; extra == 'dev'
+ - isort>=5.5.4 ; extra == 'dev'
+ - urllib3<2.0.0 ; extra == 'dev'
+ - fugashi>=1.0 ; extra == 'dev'
+ - ipadic<2.0,>=1.0.0 ; extra == 'dev'
+ - unidic-lite>=1.0.7 ; extra == 'dev'
+ - unidic>=1.0.2 ; extra == 'dev'
+ - sudachipy>=0.6.6 ; extra == 'dev'
+ - sudachidict-core>=20220729 ; extra == 'dev'
+ - rhoknp<1.3.1,>=1.1.0 ; extra == 'dev'
- hf-doc-builder ; extra == 'dev'
- scikit-learn ; extra == 'dev'
- - pytest <8.0.0, >=7.2.0 ; extra == 'dev-tensorflow'
+ - pytest<8.0.0,>=7.2.0 ; extra == 'dev-tensorflow'
- pytest-xdist ; extra == 'dev-tensorflow'
- timeout-decorator ; extra == 'dev-tensorflow'
- parameterized ; extra == 'dev-tensorflow'
- psutil ; extra == 'dev-tensorflow'
- - datasets !=2.5.0 ; extra == 'dev-tensorflow'
- - dill <0.3.5 ; extra == 'dev-tensorflow'
- - evaluate >=0.2.0 ; extra == 'dev-tensorflow'
+ - datasets!=2.5.0 ; extra == 'dev-tensorflow'
+ - dill<0.3.5 ; extra == 'dev-tensorflow'
+ - evaluate>=0.2.0 ; extra == 'dev-tensorflow'
- pytest-timeout ; extra == 'dev-tensorflow'
- - ruff ==0.1.5 ; extra == 'dev-tensorflow'
- - sacrebleu <2.0.0, >=1.4.12 ; extra == 'dev-tensorflow'
- - rouge-score !=0.0.7, !=0.0.8, !=0.1, !=0.1.1 ; extra == 'dev-tensorflow'
+ - ruff==0.1.5 ; extra == 'dev-tensorflow'
+ - sacrebleu<2.0.0,>=1.4.12 ; extra == 'dev-tensorflow'
+ - rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1 ; extra == 'dev-tensorflow'
- nltk ; extra == 'dev-tensorflow'
- - gitpython <3.1.19 ; extra == 'dev-tensorflow'
- - hf-doc-builder >=0.3.0 ; extra == 'dev-tensorflow'
+ - gitpython<3.1.19 ; extra == 'dev-tensorflow'
+ - hf-doc-builder>=0.3.0 ; extra == 'dev-tensorflow'
- protobuf ; extra == 'dev-tensorflow'
- sacremoses ; extra == 'dev-tensorflow'
- rjieba ; extra == 'dev-tensorflow'
- beautifulsoup4 ; extra == 'dev-tensorflow'
- tensorboard ; extra == 'dev-tensorflow'
- pydantic ; extra == 'dev-tensorflow'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'dev-tensorflow'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'dev-tensorflow'
- faiss-cpu ; extra == 'dev-tensorflow'
- - cookiecutter ==1.7.3 ; extra == 'dev-tensorflow'
- - tensorflow <2.16, >=2.6 ; extra == 'dev-tensorflow'
+ - cookiecutter==1.7.3 ; extra == 'dev-tensorflow'
+ - tensorflow<2.16,>=2.6 ; extra == 'dev-tensorflow'
- onnxconverter-common ; extra == 'dev-tensorflow'
- tf2onnx ; extra == 'dev-tensorflow'
- - tensorflow-text <2.16 ; extra == 'dev-tensorflow'
- - keras-nlp >=0.3.1 ; extra == 'dev-tensorflow'
- - tokenizers <0.20, >=0.19 ; extra == 'dev-tensorflow'
- - pillow <=15.0, >=10.0.1 ; extra == 'dev-tensorflow'
- - isort >=5.5.4 ; extra == 'dev-tensorflow'
- - urllib3 <2.0.0 ; extra == 'dev-tensorflow'
+ - tensorflow-text<2.16 ; extra == 'dev-tensorflow'
+ - keras-nlp>=0.3.1 ; extra == 'dev-tensorflow'
+ - tokenizers<0.20,>=0.19 ; extra == 'dev-tensorflow'
+ - pillow<=15.0,>=10.0.1 ; extra == 'dev-tensorflow'
+ - isort>=5.5.4 ; extra == 'dev-tensorflow'
+ - urllib3<2.0.0 ; extra == 'dev-tensorflow'
- hf-doc-builder ; extra == 'dev-tensorflow'
- scikit-learn ; extra == 'dev-tensorflow'
- - onnxruntime >=1.4.0 ; extra == 'dev-tensorflow'
- - onnxruntime-tools >=1.4.2 ; extra == 'dev-tensorflow'
+ - onnxruntime>=1.4.0 ; extra == 'dev-tensorflow'
+ - onnxruntime-tools>=1.4.2 ; extra == 'dev-tensorflow'
- librosa ; extra == 'dev-tensorflow'
- - pyctcdecode >=0.4.0 ; extra == 'dev-tensorflow'
+ - pyctcdecode>=0.4.0 ; extra == 'dev-tensorflow'
- phonemizer ; extra == 'dev-tensorflow'
- kenlm ; extra == 'dev-tensorflow'
- - pytest <8.0.0, >=7.2.0 ; extra == 'dev-torch'
+ - pytest<8.0.0,>=7.2.0 ; extra == 'dev-torch'
- pytest-xdist ; extra == 'dev-torch'
- timeout-decorator ; extra == 'dev-torch'
- parameterized ; extra == 'dev-torch'
- psutil ; extra == 'dev-torch'
- - datasets !=2.5.0 ; extra == 'dev-torch'
- - dill <0.3.5 ; extra == 'dev-torch'
- - evaluate >=0.2.0 ; extra == 'dev-torch'
+ - datasets!=2.5.0 ; extra == 'dev-torch'
+ - dill<0.3.5 ; extra == 'dev-torch'
+ - evaluate>=0.2.0 ; extra == 'dev-torch'
- pytest-timeout ; extra == 'dev-torch'
- - ruff ==0.1.5 ; extra == 'dev-torch'
- - sacrebleu <2.0.0, >=1.4.12 ; extra == 'dev-torch'
- - rouge-score !=0.0.7, !=0.0.8, !=0.1, !=0.1.1 ; extra == 'dev-torch'
+ - ruff==0.1.5 ; extra == 'dev-torch'
+ - sacrebleu<2.0.0,>=1.4.12 ; extra == 'dev-torch'
+ - rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1 ; extra == 'dev-torch'
- nltk ; extra == 'dev-torch'
- - gitpython <3.1.19 ; extra == 'dev-torch'
- - hf-doc-builder >=0.3.0 ; extra == 'dev-torch'
+ - gitpython<3.1.19 ; extra == 'dev-torch'
+ - hf-doc-builder>=0.3.0 ; extra == 'dev-torch'
- protobuf ; extra == 'dev-torch'
- sacremoses ; extra == 'dev-torch'
- rjieba ; extra == 'dev-torch'
- beautifulsoup4 ; extra == 'dev-torch'
- tensorboard ; extra == 'dev-torch'
- pydantic ; extra == 'dev-torch'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'dev-torch'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'dev-torch'
- faiss-cpu ; extra == 'dev-torch'
- - cookiecutter ==1.7.3 ; extra == 'dev-torch'
+ - cookiecutter==1.7.3 ; extra == 'dev-torch'
- torch ; extra == 'dev-torch'
- - accelerate >=0.21.0 ; extra == 'dev-torch'
- - tokenizers <0.20, >=0.19 ; extra == 'dev-torch'
+ - accelerate>=0.21.0 ; extra == 'dev-torch'
+ - tokenizers<0.20,>=0.19 ; extra == 'dev-torch'
- torchaudio ; extra == 'dev-torch'
- librosa ; extra == 'dev-torch'
- - pyctcdecode >=0.4.0 ; extra == 'dev-torch'
+ - pyctcdecode>=0.4.0 ; extra == 'dev-torch'
- phonemizer ; extra == 'dev-torch'
- kenlm ; extra == 'dev-torch'
- - pillow <=15.0, >=10.0.1 ; extra == 'dev-torch'
+ - pillow<=15.0,>=10.0.1 ; extra == 'dev-torch'
- optuna ; extra == 'dev-torch'
- - ray[tune] >=2.7.0 ; extra == 'dev-torch'
+ - ray[tune]>=2.7.0 ; extra == 'dev-torch'
- sigopt ; extra == 'dev-torch'
- timm ; extra == 'dev-torch'
- torchvision ; extra == 'dev-torch'
- - codecarbon ==1.2.0 ; extra == 'dev-torch'
- - isort >=5.5.4 ; extra == 'dev-torch'
- - urllib3 <2.0.0 ; extra == 'dev-torch'
- - fugashi >=1.0 ; extra == 'dev-torch'
- - ipadic <2.0, >=1.0.0 ; extra == 'dev-torch'
- - unidic-lite >=1.0.7 ; extra == 'dev-torch'
- - unidic >=1.0.2 ; extra == 'dev-torch'
- - sudachipy >=0.6.6 ; extra == 'dev-torch'
- - sudachidict-core >=20220729 ; extra == 'dev-torch'
- - rhoknp <1.3.1, >=1.1.0 ; extra == 'dev-torch'
+ - codecarbon==1.2.0 ; extra == 'dev-torch'
+ - isort>=5.5.4 ; extra == 'dev-torch'
+ - urllib3<2.0.0 ; extra == 'dev-torch'
+ - fugashi>=1.0 ; extra == 'dev-torch'
+ - ipadic<2.0,>=1.0.0 ; extra == 'dev-torch'
+ - unidic-lite>=1.0.7 ; extra == 'dev-torch'
+ - unidic>=1.0.2 ; extra == 'dev-torch'
+ - sudachipy>=0.6.6 ; extra == 'dev-torch'
+ - sudachidict-core>=20220729 ; extra == 'dev-torch'
+ - rhoknp<1.3.1,>=1.1.0 ; extra == 'dev-torch'
- hf-doc-builder ; extra == 'dev-torch'
- scikit-learn ; extra == 'dev-torch'
- - onnxruntime >=1.4.0 ; extra == 'dev-torch'
- - onnxruntime-tools >=1.4.2 ; extra == 'dev-torch'
- - tensorflow <2.16, >=2.6 ; extra == 'docs'
+ - onnxruntime>=1.4.0 ; extra == 'dev-torch'
+ - onnxruntime-tools>=1.4.2 ; extra == 'dev-torch'
+ - tensorflow<2.16,>=2.6 ; extra == 'docs'
- onnxconverter-common ; extra == 'docs'
- tf2onnx ; extra == 'docs'
- - tensorflow-text <2.16 ; extra == 'docs'
- - keras-nlp >=0.3.1 ; extra == 'docs'
+ - tensorflow-text<2.16 ; extra == 'docs'
+ - keras-nlp>=0.3.1 ; extra == 'docs'
- torch ; extra == 'docs'
- - accelerate >=0.21.0 ; extra == 'docs'
- - jax <=0.4.13, >=0.4.1 ; extra == 'docs'
- - jaxlib <=0.4.13, >=0.4.1 ; extra == 'docs'
- - flax <=0.7.0, >=0.4.1 ; extra == 'docs'
- - optax <=0.1.4, >=0.0.8 ; extra == 'docs'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'docs'
+ - accelerate>=0.21.0 ; extra == 'docs'
+ - jax<=0.4.13,>=0.4.1 ; extra == 'docs'
+ - jaxlib<=0.4.13,>=0.4.1 ; extra == 'docs'
+ - flax<=0.7.0,>=0.4.1 ; extra == 'docs'
+ - optax<=0.1.4,>=0.0.8 ; extra == 'docs'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'docs'
- protobuf ; extra == 'docs'
- - tokenizers <0.20, >=0.19 ; extra == 'docs'
+ - tokenizers<0.20,>=0.19 ; extra == 'docs'
- torchaudio ; extra == 'docs'
- librosa ; extra == 'docs'
- - pyctcdecode >=0.4.0 ; extra == 'docs'
+ - pyctcdecode>=0.4.0 ; extra == 'docs'
- phonemizer ; extra == 'docs'
- kenlm ; extra == 'docs'
- - pillow <=15.0, >=10.0.1 ; extra == 'docs'
+ - pillow<=15.0,>=10.0.1 ; extra == 'docs'
- optuna ; extra == 'docs'
- - ray[tune] >=2.7.0 ; extra == 'docs'
+ - ray[tune]>=2.7.0 ; extra == 'docs'
- sigopt ; extra == 'docs'
- timm ; extra == 'docs'
- torchvision ; extra == 'docs'
- - codecarbon ==1.2.0 ; extra == 'docs'
- - decord ==0.6.0 ; extra == 'docs'
- - av ==9.2.0 ; extra == 'docs'
+ - codecarbon==1.2.0 ; extra == 'docs'
+ - decord==0.6.0 ; extra == 'docs'
+ - av==9.2.0 ; extra == 'docs'
- hf-doc-builder ; extra == 'docs'
- hf-doc-builder ; extra == 'docs_specific'
- - jax <=0.4.13, >=0.4.1 ; extra == 'flax'
- - jaxlib <=0.4.13, >=0.4.1 ; extra == 'flax'
- - flax <=0.7.0, >=0.4.1 ; extra == 'flax'
- - optax <=0.1.4, >=0.0.8 ; extra == 'flax'
+ - jax<=0.4.13,>=0.4.1 ; extra == 'flax'
+ - jaxlib<=0.4.13,>=0.4.1 ; extra == 'flax'
+ - flax<=0.7.0,>=0.4.1 ; extra == 'flax'
+ - optax<=0.1.4,>=0.0.8 ; extra == 'flax'
- librosa ; extra == 'flax-speech'
- - pyctcdecode >=0.4.0 ; extra == 'flax-speech'
+ - pyctcdecode>=0.4.0 ; extra == 'flax-speech'
- phonemizer ; extra == 'flax-speech'
- kenlm ; extra == 'flax-speech'
- ftfy ; extra == 'ftfy'
- optuna ; extra == 'integrations'
- - ray[tune] >=2.7.0 ; extra == 'integrations'
+ - ray[tune]>=2.7.0 ; extra == 'integrations'
- sigopt ; extra == 'integrations'
- - fugashi >=1.0 ; extra == 'ja'
- - ipadic <2.0, >=1.0.0 ; extra == 'ja'
- - unidic-lite >=1.0.7 ; extra == 'ja'
- - unidic >=1.0.2 ; extra == 'ja'
- - sudachipy >=0.6.6 ; extra == 'ja'
- - sudachidict-core >=20220729 ; extra == 'ja'
- - rhoknp <1.3.1, >=1.1.0 ; extra == 'ja'
- - cookiecutter ==1.7.3 ; extra == 'modelcreation'
- - natten <0.15.0, >=0.14.6 ; extra == 'natten'
+ - fugashi>=1.0 ; extra == 'ja'
+ - ipadic<2.0,>=1.0.0 ; extra == 'ja'
+ - unidic-lite>=1.0.7 ; extra == 'ja'
+ - unidic>=1.0.2 ; extra == 'ja'
+ - sudachipy>=0.6.6 ; extra == 'ja'
+ - sudachidict-core>=20220729 ; extra == 'ja'
+ - rhoknp<1.3.1,>=1.1.0 ; extra == 'ja'
+ - cookiecutter==1.7.3 ; extra == 'modelcreation'
+ - natten<0.15.0,>=0.14.6 ; extra == 'natten'
- onnxconverter-common ; extra == 'onnx'
- tf2onnx ; extra == 'onnx'
- - onnxruntime >=1.4.0 ; extra == 'onnx'
- - onnxruntime-tools >=1.4.2 ; extra == 'onnx'
- - onnxruntime >=1.4.0 ; extra == 'onnxruntime'
- - onnxruntime-tools >=1.4.2 ; extra == 'onnxruntime'
+ - onnxruntime>=1.4.0 ; extra == 'onnx'
+ - onnxruntime-tools>=1.4.2 ; extra == 'onnx'
+ - onnxruntime>=1.4.0 ; extra == 'onnxruntime'
+ - onnxruntime-tools>=1.4.2 ; extra == 'onnxruntime'
- optuna ; extra == 'optuna'
- - datasets !=2.5.0 ; extra == 'quality'
- - isort >=5.5.4 ; extra == 'quality'
- - ruff ==0.1.5 ; extra == 'quality'
- - gitpython <3.1.19 ; extra == 'quality'
- - hf-doc-builder >=0.3.0 ; extra == 'quality'
- - urllib3 <2.0.0 ; extra == 'quality'
- - ray[tune] >=2.7.0 ; extra == 'ray'
+ - datasets!=2.5.0 ; extra == 'quality'
+ - isort>=5.5.4 ; extra == 'quality'
+ - ruff==0.1.5 ; extra == 'quality'
+ - gitpython<3.1.19 ; extra == 'quality'
+ - hf-doc-builder>=0.3.0 ; extra == 'quality'
+ - urllib3<2.0.0 ; extra == 'quality'
+ - ray[tune]>=2.7.0 ; extra == 'ray'
- faiss-cpu ; extra == 'retrieval'
- - datasets !=2.5.0 ; extra == 'retrieval'
- - sagemaker >=2.31.0 ; extra == 'sagemaker'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'sentencepiece'
+ - datasets!=2.5.0 ; extra == 'retrieval'
+ - sagemaker>=2.31.0 ; extra == 'sagemaker'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'sentencepiece'
- protobuf ; extra == 'sentencepiece'
- pydantic ; extra == 'serving'
- uvicorn ; extra == 'serving'
@@ -27163,73 +27179,73 @@ packages:
- scikit-learn ; extra == 'sklearn'
- torchaudio ; extra == 'speech'
- librosa ; extra == 'speech'
- - pyctcdecode >=0.4.0 ; extra == 'speech'
+ - pyctcdecode>=0.4.0 ; extra == 'speech'
- phonemizer ; extra == 'speech'
- kenlm ; extra == 'speech'
- - pytest <8.0.0, >=7.2.0 ; extra == 'testing'
+ - pytest<8.0.0,>=7.2.0 ; extra == 'testing'
- pytest-xdist ; extra == 'testing'
- timeout-decorator ; extra == 'testing'
- parameterized ; extra == 'testing'
- psutil ; extra == 'testing'
- - datasets !=2.5.0 ; extra == 'testing'
- - dill <0.3.5 ; extra == 'testing'
- - evaluate >=0.2.0 ; extra == 'testing'
+ - datasets!=2.5.0 ; extra == 'testing'
+ - dill<0.3.5 ; extra == 'testing'
+ - evaluate>=0.2.0 ; extra == 'testing'
- pytest-timeout ; extra == 'testing'
- - ruff ==0.1.5 ; extra == 'testing'
- - sacrebleu <2.0.0, >=1.4.12 ; extra == 'testing'
- - rouge-score !=0.0.7, !=0.0.8, !=0.1, !=0.1.1 ; extra == 'testing'
+ - ruff==0.1.5 ; extra == 'testing'
+ - sacrebleu<2.0.0,>=1.4.12 ; extra == 'testing'
+ - rouge-score!=0.0.7,!=0.0.8,!=0.1,!=0.1.1 ; extra == 'testing'
- nltk ; extra == 'testing'
- - gitpython <3.1.19 ; extra == 'testing'
- - hf-doc-builder >=0.3.0 ; extra == 'testing'
+ - gitpython<3.1.19 ; extra == 'testing'
+ - hf-doc-builder>=0.3.0 ; extra == 'testing'
- protobuf ; extra == 'testing'
- sacremoses ; extra == 'testing'
- rjieba ; extra == 'testing'
- beautifulsoup4 ; extra == 'testing'
- tensorboard ; extra == 'testing'
- pydantic ; extra == 'testing'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'testing'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'testing'
- faiss-cpu ; extra == 'testing'
- - cookiecutter ==1.7.3 ; extra == 'testing'
- - tensorflow <2.16, >=2.6 ; extra == 'tf'
+ - cookiecutter==1.7.3 ; extra == 'testing'
+ - tensorflow<2.16,>=2.6 ; extra == 'tf'
- onnxconverter-common ; extra == 'tf'
- tf2onnx ; extra == 'tf'
- - tensorflow-text <2.16 ; extra == 'tf'
- - keras-nlp >=0.3.1 ; extra == 'tf'
- - tensorflow-cpu <2.16, >=2.6 ; extra == 'tf-cpu'
+ - tensorflow-text<2.16 ; extra == 'tf'
+ - keras-nlp>=0.3.1 ; extra == 'tf'
+ - tensorflow-cpu<2.16,>=2.6 ; extra == 'tf-cpu'
- onnxconverter-common ; extra == 'tf-cpu'
- tf2onnx ; extra == 'tf-cpu'
- - tensorflow-text <2.16 ; extra == 'tf-cpu'
- - keras-nlp >=0.3.1 ; extra == 'tf-cpu'
+ - tensorflow-text<2.16 ; extra == 'tf-cpu'
+ - keras-nlp>=0.3.1 ; extra == 'tf-cpu'
- librosa ; extra == 'tf-speech'
- - pyctcdecode >=0.4.0 ; extra == 'tf-speech'
+ - pyctcdecode>=0.4.0 ; extra == 'tf-speech'
- phonemizer ; extra == 'tf-speech'
- kenlm ; extra == 'tf-speech'
- timm ; extra == 'timm'
- - tokenizers <0.20, >=0.19 ; extra == 'tokenizers'
+ - tokenizers<0.20,>=0.19 ; extra == 'tokenizers'
- torch ; extra == 'torch'
- - accelerate >=0.21.0 ; extra == 'torch'
+ - accelerate>=0.21.0 ; extra == 'torch'
- torchaudio ; extra == 'torch-speech'
- librosa ; extra == 'torch-speech'
- - pyctcdecode >=0.4.0 ; extra == 'torch-speech'
+ - pyctcdecode>=0.4.0 ; extra == 'torch-speech'
- phonemizer ; extra == 'torch-speech'
- kenlm ; extra == 'torch-speech'
- torchvision ; extra == 'torch-vision'
- - pillow <=15.0, >=10.0.1 ; extra == 'torch-vision'
+ - pillow<=15.0,>=10.0.1 ; extra == 'torch-vision'
- filelock ; extra == 'torchhub'
- - huggingface-hub <1.0, >=0.19.3 ; extra == 'torchhub'
+ - huggingface-hub<1.0,>=0.19.3 ; extra == 'torchhub'
- importlib-metadata ; extra == 'torchhub'
- - numpy >=1.17 ; extra == 'torchhub'
- - packaging >=20.0 ; extra == 'torchhub'
+ - numpy>=1.17 ; extra == 'torchhub'
+ - packaging>=20.0 ; extra == 'torchhub'
- protobuf ; extra == 'torchhub'
- - regex !=2019.12.17 ; extra == 'torchhub'
+ - regex!=2019.12.17 ; extra == 'torchhub'
- requests ; extra == 'torchhub'
- - sentencepiece !=0.1.92, >=0.1.91 ; extra == 'torchhub'
+ - sentencepiece!=0.1.92,>=0.1.91 ; extra == 'torchhub'
- torch ; extra == 'torchhub'
- - tokenizers <0.20, >=0.19 ; extra == 'torchhub'
- - tqdm >=4.27 ; extra == 'torchhub'
- - decord ==0.6.0 ; extra == 'video'
- - av ==9.2.0 ; extra == 'video'
- - pillow <=15.0, >=10.0.1 ; extra == 'vision'
+ - tokenizers<0.20,>=0.19 ; extra == 'torchhub'
+ - tqdm>=4.27 ; extra == 'torchhub'
+ - decord==0.6.0 ; extra == 'video'
+ - av==9.2.0 ; extra == 'video'
+ - pillow<=15.0,>=10.0.1 ; extra == 'vision'
requires_python: '>=3.8.0'
- kind: pypi
name: trimesh
@@ -27292,14 +27308,14 @@ packages:
sha256: da58a152bddb62cafa9a857dd2bc1f886dbf9f9c90a2b5da82157cd2b34392b0
requires_dist:
- filelock
- - cmake >=3.20 ; extra == 'build'
+ - cmake>=3.20 ; extra == 'build'
- lit ; extra == 'build'
- autopep8 ; extra == 'tests'
- flake8 ; extra == 'tests'
- isort ; extra == 'tests'
- numpy ; extra == 'tests'
- pytest ; extra == 'tests'
- - scipy >=1.7.1 ; extra == 'tests'
+ - scipy>=1.7.1 ; extra == 'tests'
- torch ; extra == 'tests'
- matplotlib ; extra == 'tutorials'
- pandas ; extra == 'tutorials'
@@ -27316,7 +27332,7 @@ packages:
url: https://files.pythonhosted.org/packages/8b/ea/91b718b8c0b88e4f61cdd61357cc4a1f8767b32be691fb388299003a3ae3/types_requests-2.31.0.20240406-py3-none-any.whl
sha256: 6216cdac377c6b9a040ac1c0404f7284bd13199c0e1bb235f4324627e8898cf5
requires_dist:
- - urllib3 >=2
+ - urllib3>=2
requires_python: '>=3.8'
- kind: pypi
name: typing-extensions
@@ -27330,9 +27346,9 @@ packages:
url: https://files.pythonhosted.org/packages/65/f3/107a22063bf27bdccf2024833d3445f4eea42b2e598abfbd46f6a63b6cb0/typing_inspect-0.9.0-py3-none-any.whl
sha256: 9ee6fc59062311ef8547596ab6b955e1b8aa46242d854bfc78f4f6b0eff35f9f
requires_dist:
- - mypy-extensions >=0.3.0
- - typing-extensions >=3.7.4
- - typing >=3.7.4 ; python_version < '3.5'
+ - mypy-extensions>=0.3.0
+ - typing-extensions>=3.7.4
+ - typing>=3.7.4 ; python_version < '3.5'
- kind: conda
name: typing_extensions
version: 4.8.0
@@ -27736,13 +27752,13 @@ packages:
url: https://files.pythonhosted.org/packages/d1/1b/46802a050b1c55d10c4f59fc6afd2b45ac9b4f62b2e12092d3f599286f14/umap_learn-0.5.6-py3-none-any.whl
sha256: 881cc0c2ee845b790bf0455aa1664f9f68b838d9d0fe12a1291b85c5a559c913
requires_dist:
- - numpy >=1.17
- - scipy >=1.3.1
- - scikit-learn >=0.22
- - numba >=0.51.2
- - pynndescent >=0.5
+ - numpy>=1.17
+ - scipy>=1.3.1
+ - scikit-learn>=0.22
+ - numba>=0.51.2
+ - pynndescent>=0.5
- tqdm
- - tensorflow >=2.1 ; extra == 'parametric_umap'
+ - tensorflow>=2.1 ; extra == 'parametric_umap'
- pandas ; extra == 'plot'
- matplotlib ; extra == 'plot'
- datashader ; extra == 'plot'
@@ -27751,18 +27767,18 @@ packages:
- colorcet ; extra == 'plot'
- seaborn ; extra == 'plot'
- scikit-image ; extra == 'plot'
- - tbb >=2019.0 ; extra == 'tbb'
+ - tbb>=2019.0 ; extra == 'tbb'
- kind: pypi
name: urllib3
version: 2.2.1
url: https://files.pythonhosted.org/packages/a2/73/a68704750a7679d0b6d3ad7aa8d4da8e14e151ae82e6fee774e6e0d05ec8/urllib3-2.2.1-py3-none-any.whl
sha256: 450b20ec296a467077128bff42b73080516e71b56ff59a60a02bef2232c4fa9d
requires_dist:
- - brotli >=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli'
- - brotlicffi >=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli'
- - h2 <5, >=4 ; extra == 'h2'
- - pysocks !=1.5.7, <2.0, >=1.5.6 ; extra == 'socks'
- - zstandard >=0.18.0 ; extra == 'zstd'
+ - brotli>=1.0.9 ; platform_python_implementation == 'CPython' and extra == 'brotli'
+ - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'brotli'
+ - h2<5,>=4 ; extra == 'h2'
+ - pysocks!=1.5.7,<2.0,>=1.5.6 ; extra == 'socks'
+ - zstandard>=0.18.0 ; extra == 'zstd'
requires_python: '>=3.8'
- kind: conda
name: vc
@@ -27842,29 +27858,29 @@ packages:
url: https://files.pythonhosted.org/packages/ca/28/19728b052c52b588fa117e80561d4b6e872664f4df73628d58593218becd/virtualenv-20.26.1-py3-none-any.whl
sha256: 7aa9982a728ae5892558bff6a2839c00b9ed145523ece2274fad6f414690ae75
requires_dist:
- - distlib <1, >=0.3.7
- - filelock <4, >=3.12.2
- - importlib-metadata >=6.6 ; python_version < '3.8'
- - platformdirs <5, >=3.9.1
- - furo >=2023.7.26 ; extra == 'docs'
- - proselint >=0.13 ; extra == 'docs'
- - sphinx !=7.3, >=7.1.2 ; extra == 'docs'
- - sphinx-argparse >=0.4 ; extra == 'docs'
- - sphinxcontrib-towncrier >=0.2.1a0 ; extra == 'docs'
- - towncrier >=23.6 ; extra == 'docs'
- - covdefaults >=2.3 ; extra == 'test'
- - coverage-enable-subprocess >=1 ; extra == 'test'
- - coverage >=7.2.7 ; extra == 'test'
- - flaky >=3.7 ; extra == 'test'
- - packaging >=23.1 ; extra == 'test'
- - pytest-env >=0.8.2 ; extra == 'test'
- - pytest-freezer >=0.4.8 ; platform_python_implementation == 'PyPy' and extra == 'test'
- - pytest-mock >=3.11.1 ; extra == 'test'
- - pytest-randomly >=3.12 ; extra == 'test'
- - pytest-timeout >=2.1 ; extra == 'test'
- - pytest >=7.4 ; extra == 'test'
- - setuptools >=68 ; extra == 'test'
- - time-machine >=2.10 ; platform_python_implementation == 'CPython' and extra == 'test'
+ - distlib<1,>=0.3.7
+ - filelock<4,>=3.12.2
+ - importlib-metadata>=6.6 ; python_version < '3.8'
+ - platformdirs<5,>=3.9.1
+ - furo>=2023.7.26 ; extra == 'docs'
+ - proselint>=0.13 ; extra == 'docs'
+ - sphinx!=7.3,>=7.1.2 ; extra == 'docs'
+ - sphinx-argparse>=0.4 ; extra == 'docs'
+ - sphinxcontrib-towncrier>=0.2.1a0 ; extra == 'docs'
+ - towncrier>=23.6 ; extra == 'docs'
+ - covdefaults>=2.3 ; extra == 'test'
+ - coverage-enable-subprocess>=1 ; extra == 'test'
+ - coverage>=7.2.7 ; extra == 'test'
+ - flaky>=3.7 ; extra == 'test'
+ - packaging>=23.1 ; extra == 'test'
+ - pytest-env>=0.8.2 ; extra == 'test'
+ - pytest-freezer>=0.4.8 ; platform_python_implementation == 'PyPy' and extra == 'test'
+ - pytest-mock>=3.11.1 ; extra == 'test'
+ - pytest-randomly>=3.12 ; extra == 'test'
+ - pytest-timeout>=2.1 ; extra == 'test'
+ - pytest>=7.4 ; extra == 'test'
+ - setuptools>=68 ; extra == 'test'
+ - time-machine>=2.10 ; platform_python_implementation == 'CPython' and extra == 'test'
requires_python: '>=3.7'
- kind: conda
name: vs2015_runtime
@@ -27972,14 +27988,14 @@ packages:
- kind: pypi
name: wrapt
version: 1.16.0
- url: https://files.pythonhosted.org/packages/0f/16/ea627d7817394db04518f62934a5de59874b587b792300991b3c347ff5e0/wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl
- sha256: 75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d
+ url: https://files.pythonhosted.org/packages/fd/03/c188ac517f402775b90d6f312955a5e53b866c964b32119f2ed76315697e/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl
+ sha256: 1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09
requires_python: '>=3.6'
- kind: pypi
name: wrapt
version: 1.16.0
- url: https://files.pythonhosted.org/packages/cf/c3/0084351951d9579ae83a3d9e38c140371e4c6b038136909235079f2e6e78/wrapt-1.16.0-cp311-cp311-win_amd64.whl
- sha256: aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89
+ url: https://files.pythonhosted.org/packages/7f/a7/f1212ba098f3de0fd244e2de0f8791ad2539c03bef6c05a9fcb03e45b089/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
+ sha256: a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389
requires_python: '>=3.6'
- kind: pypi
name: wrapt
@@ -27990,14 +28006,14 @@ packages:
- kind: pypi
name: wrapt
version: 1.16.0
- url: https://files.pythonhosted.org/packages/7f/a7/f1212ba098f3de0fd244e2de0f8791ad2539c03bef6c05a9fcb03e45b089/wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
- sha256: a452f9ca3e3267cd4d0fcf2edd0d035b1934ac2bd7e0e57ac91ad6b95c0c6389
+ url: https://files.pythonhosted.org/packages/0f/16/ea627d7817394db04518f62934a5de59874b587b792300991b3c347ff5e0/wrapt-1.16.0-cp311-cp311-macosx_11_0_arm64.whl
+ sha256: 75ea7d0ee2a15733684badb16de6794894ed9c55aa5e9903260922f0482e687d
requires_python: '>=3.6'
- kind: pypi
name: wrapt
version: 1.16.0
- url: https://files.pythonhosted.org/packages/fd/03/c188ac517f402775b90d6f312955a5e53b866c964b32119f2ed76315697e/wrapt-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl
- sha256: 1a5db485fe2de4403f13fafdc231b0dbae5eca4359232d2efc79025527375b09
+ url: https://files.pythonhosted.org/packages/cf/c3/0084351951d9579ae83a3d9e38c140371e4c6b038136909235079f2e6e78/wrapt-1.16.0-cp311-cp311-win_amd64.whl
+ sha256: aefbc4cb0a54f91af643660a0a150ce2c090d3652cf4052a5397fb2de549cd89
requires_python: '>=3.6'
- kind: conda
name: xz
@@ -28169,37 +28185,37 @@ packages:
url: https://files.pythonhosted.org/packages/d5/b5/70bb98ee38ce532ee29fab76fb668382291fe6e1aa69a8c1ac7e6bc108e7/yfinance-0.2.38-py2.py3-none-any.whl
sha256: 07525cf84414272723a3e2b9d4c0a2898ddb60cc0828aa190de26664fac6f676
requires_dist:
- - pandas >=1.3.0
- - numpy >=1.16.5
- - requests >=2.31
- - multitasking >=0.0.7
- - lxml >=4.9.1
- - appdirs >=1.4.4
- - pytz >=2022.5
- - frozendict >=2.3.4
- - peewee >=3.16.2
- - beautifulsoup4 >=4.11.1
- - html5lib >=1.1
- - requests-cache >=1.0 ; extra == 'nospam'
- - requests-ratelimiter >=0.3.1 ; extra == 'nospam'
- - scipy >=1.6.3 ; extra == 'repair'
+ - pandas>=1.3.0
+ - numpy>=1.16.5
+ - requests>=2.31
+ - multitasking>=0.0.7
+ - lxml>=4.9.1
+ - appdirs>=1.4.4
+ - pytz>=2022.5
+ - frozendict>=2.3.4
+ - peewee>=3.16.2
+ - beautifulsoup4>=4.11.1
+ - html5lib>=1.1
+ - requests-cache>=1.0 ; extra == 'nospam'
+ - requests-ratelimiter>=0.3.1 ; extra == 'nospam'
+ - scipy>=1.6.3 ; extra == 'repair'
- kind: pypi
name: zipp
version: 3.18.1
url: https://files.pythonhosted.org/packages/c2/0a/ba9d0ee9536d3ef73a3448e931776e658b36f128d344e175bc32b092a8bf/zipp-3.18.1-py3-none-any.whl
sha256: 206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b
requires_dist:
- - sphinx >=3.5 ; extra == 'docs'
- - jaraco-packaging >=9.3 ; extra == 'docs'
- - rst-linker >=1.9 ; extra == 'docs'
+ - sphinx>=3.5 ; extra == 'docs'
+ - jaraco-packaging>=9.3 ; extra == 'docs'
+ - rst-linker>=1.9 ; extra == 'docs'
- furo ; extra == 'docs'
- sphinx-lint ; extra == 'docs'
- - jaraco-tidelift >=1.4 ; extra == 'docs'
- - pytest >=6 ; extra == 'testing'
- - pytest-checkdocs >=2.4 ; extra == 'testing'
+ - jaraco-tidelift>=1.4 ; extra == 'docs'
+ - pytest>=6 ; extra == 'testing'
+ - pytest-checkdocs>=2.4 ; extra == 'testing'
- pytest-cov ; extra == 'testing'
- - pytest-enabler >=2.2 ; extra == 'testing'
- - pytest-ruff >=0.2.1 ; extra == 'testing'
+ - pytest-enabler>=2.2 ; extra == 'testing'
+ - pytest-ruff>=0.2.1 ; extra == 'testing'
- jaraco-itertools ; extra == 'testing'
- jaraco-functools ; extra == 'testing'
- more-itertools ; extra == 'testing'
diff --git a/rerun_py/pyproject.toml b/rerun_py/pyproject.toml
index b50b77daf7164..69336dd23cca6 100644
--- a/rerun_py/pyproject.toml
+++ b/rerun_py/pyproject.toml
@@ -15,7 +15,7 @@ dependencies = [
# Must match list in `.github/workflows/reusable_test_wheels.yml`
"attrs>=23.1.0",
"numpy>=1.23,<2",
- "pillow", # Used for JPEG encoding
+ "pillow>=8.0.0", # Used for JPEG encoding. 8.0.0 added the `format` arguments to `Image.open`
"pyarrow>=14.0.2",
"typing_extensions>=4.5", # Used for PEP-702 deprecated decorator
]
From cb35d38f1dcf4477865889f894042d38072571e2 Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Wed, 15 May 2024 11:23:11 +0200
Subject: [PATCH 11/40] Fix python example links (#6331)
### What
* Fixes problematic links mentioned in #6077
---
docs/content/getting-started/data-in/python.md | 2 +-
docs/content/howto/ros2-nav-turtlebot.md | 2 +-
docs/content/reference/sdk-operating-modes.md | 2 +-
examples/cpp/external_data_loader/README.md | 2 +-
examples/python/external_data_loader/README.md | 2 +-
examples/rust/external_data_loader/README.md | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/docs/content/getting-started/data-in/python.md b/docs/content/getting-started/data-in/python.md
index 6387b5f918ade..77805a67b5191 100644
--- a/docs/content/getting-started/data-in/python.md
+++ b/docs/content/getting-started/data-in/python.md
@@ -14,7 +14,7 @@ In a few lines of code, we'll go from a blank sheet to something you don't see e
This guide aims to go wide instead of deep.
There are links to other doc pages where you can learn more about specific topics.
-At any time, you can checkout the complete code listing for this tutorial [here](https://github.com/rerun-io/rerun/tree/latest/examples/python/dna/main.py) to better keep track of the overall picture.
+At any time, you can checkout the complete code listing for this tutorial [here](https://github.com/rerun-io/rerun/tree/latest/examples/python/dna/dna.py?speculative-link) to better keep track of the overall picture.
## Prerequisites
diff --git a/docs/content/howto/ros2-nav-turtlebot.md b/docs/content/howto/ros2-nav-turtlebot.md
index a70ec8f2f77e2..a58bfcf9e2c57 100644
--- a/docs/content/howto/ros2-nav-turtlebot.md
+++ b/docs/content/howto/ros2-nav-turtlebot.md
@@ -124,7 +124,7 @@ If you are familiar with the turtlebot nav example and rviz, this view will like
## Code explanation
-It may be helpful to open [rerun/examples/python/ros_node/main.py](https://github.com/rerun-io/rerun/blob/main/examples/python/ros_node/main.py)
+It may be helpful to open [rerun/examples/python/ros_node/main.py](https://github.com/rerun-io/rerun/blob/latest/examples/python/ros_node/main.py)
to follow along.
Outside of TF, the node is mostly stateless. At a very high level, for each ROS message we are interested in, we create a
diff --git a/docs/content/reference/sdk-operating-modes.md b/docs/content/reference/sdk-operating-modes.md
index 72ebf64199470..869f6d4613fb6 100644
--- a/docs/content/reference/sdk-operating-modes.md
+++ b/docs/content/reference/sdk-operating-modes.md
@@ -90,7 +90,7 @@ Check out our [dedicated example](https://github.com/rerun-io/rerun/tree/latest/
Use [`rr.stdout`](https://ref.rerun.io/docs/python/stable/common/initialization_functions/#rerun.stdout).
-Check out our [dedicated example](https://github.com/rerun-io/rerun/tree/latest/examples/python/stdio/main.py).
+Check out our [dedicated example](https://github.com/rerun-io/rerun/tree/latest/examples/python/stdio/stdio.py?speculative-link).
#### Rust
diff --git a/examples/cpp/external_data_loader/README.md b/examples/cpp/external_data_loader/README.md
index 00b1be4ed2837..5a202d8e71565 100644
--- a/examples/cpp/external_data_loader/README.md
+++ b/examples/cpp/external_data_loader/README.md
@@ -1,6 +1,6 @@
---
title: External data-loader example
-python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/main.py
+python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/rerun-loader-python-file.py?speculative-link
rust: https://github.com/rerun-io/rerun/tree/latest/examples/rust/external_data_loader/src/main.rs
cpp: https://github.com/rerun-io/rerun/tree/latest/examples/cpp/external_data_loader/main.cpp
thumbnail: https://static.rerun.io/external_data_loader_cpp/83cd3c2a322911cf597cf74aeda01c8fe83e275f/480w.png
diff --git a/examples/python/external_data_loader/README.md b/examples/python/external_data_loader/README.md
index 798ef3f4eed28..5d7919dbf5ffd 100644
--- a/examples/python/external_data_loader/README.md
+++ b/examples/python/external_data_loader/README.md
@@ -1,6 +1,6 @@
---
title: External data-loader example
-python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/main.py
+python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/rerun-loader-python-file.py?speculative-link
rust: https://github.com/rerun-io/rerun/tree/latest/examples/rust/external_data_loader/src/main.rs
cpp: https://github.com/rerun-io/rerun/tree/latest/examples/cpp/external_data_loader/main.cpp
thumbnail: https://static.rerun.io/external_data_loader_py/6c5609f5dd7d1de373c81babe19221b72d616da3/480w.png
diff --git a/examples/rust/external_data_loader/README.md b/examples/rust/external_data_loader/README.md
index 2f407b1dfa777..79215fec6a202 100644
--- a/examples/rust/external_data_loader/README.md
+++ b/examples/rust/external_data_loader/README.md
@@ -1,6 +1,6 @@
---
title: External data-loader example
-python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/main.py
+python: https://github.com/rerun-io/rerun/tree/latest/examples/python/external_data_loader/rerun-loader-python-file.py?speculative-link
rust: https://github.com/rerun-io/rerun/tree/latest/examples/rust/external_data_loader/src/main.rs
cpp: https://github.com/rerun-io/rerun/tree/latest/examples/cpp/external_data_loader/main.cpp
thumbnail: https://static.rerun.io/external_data_loader_rs/74eecea3b16fee7fab01045e3bfdd90ba6c59bc9/480w.png
From a869562ad7f09a9f2240cc93a3c30289fcf069d8 Mon Sep 17 00:00:00 2001
From: Jeremy Leibs
Date: Wed, 15 May 2024 16:04:07 +0200
Subject: [PATCH 12/40] Make it possible to open http-streamed RRDs in follow
mode via JS API. (#6326)
### What
- Resolves: https://github.com/rerun-io/rerun/issues/6243
In the context of the Gradio integration, although we are streaming over
http, from the perspective of system operation it feels more like a
websocket. In many situations we want new data to update immediately
once computation is done, rather than playing over time abstract time
domain.
Eventually we would like to control all of this behavior through
blueprint, but moving TimeControls to blueprint is a lot more work. We
already use the SmartChannelSource to make the determination of follow
mode, so with a little bit of additional plumbing, it's possible for us
to indicate this from the js API.
This is a pretty advanced edge-case and so I haven't exposed it to the
other mechanism through which an http source might be added. I assume
this will eventually be removed again once we have TimeControls
available via blueprint.
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6326?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6326?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6326)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
crates/re_data_source/src/data_source.rs | 24 +++++++++++++------
.../src/stream_rrd_from_http.rs | 11 ++++++++-
crates/re_smart_channel/src/lib.rs | 6 +++--
crates/re_smart_channel/src/receive_set.rs | 2 +-
crates/re_viewer/src/app.rs | 2 +-
crates/re_viewer/src/app_state.rs | 5 ++--
crates/re_viewer/src/ui/recordings_panel.rs | 2 +-
crates/re_viewer/src/ui/top_panel.rs | 2 +-
.../src/ui/welcome_screen/example_section.rs | 6 ++++-
crates/re_viewer/src/web.rs | 18 +++++++++++---
crates/re_viewer/src/web_tools.rs | 7 +++++-
crates/re_viewer_context/src/store_hub.rs | 2 +-
rerun_js/web-viewer/index.js | 7 ++++--
13 files changed, 70 insertions(+), 24 deletions(-)
diff --git a/crates/re_data_source/src/data_source.rs b/crates/re_data_source/src/data_source.rs
index 9f3d537ecb5d9..efc671b5d0e3f 100644
--- a/crates/re_data_source/src/data_source.rs
+++ b/crates/re_data_source/src/data_source.rs
@@ -11,8 +11,10 @@ use anyhow::Context as _;
pub enum DataSource {
/// A remote RRD file, served over http.
///
+ /// If `follow` is `true`, the viewer will open the stream in `Following` mode rather than `Playing` mode.
+ ///
/// Could be either an `.rrd` recording or a `.rbl` blueprint.
- RrdHttpUrl(String),
+ RrdHttpUrl { url: String, follow: bool },
/// A path to a local file.
#[cfg(not(target_arch = "wasm32"))]
@@ -90,7 +92,10 @@ impl DataSource {
|| uri.starts_with("https://")
|| (uri.starts_with("www.") && (uri.ends_with(".rrd") || uri.ends_with(".rbl")))
{
- DataSource::RrdHttpUrl(uri)
+ DataSource::RrdHttpUrl {
+ url: uri,
+ follow: false,
+ }
} else if uri.starts_with("ws://") || uri.starts_with("wss://") {
DataSource::WebSocketAddr(uri)
@@ -98,7 +103,10 @@ impl DataSource {
} else if looks_like_a_file_path(&uri) {
DataSource::FilePath(file_source, path)
} else if uri.ends_with(".rrd") || uri.ends_with(".rbl") {
- DataSource::RrdHttpUrl(uri)
+ DataSource::RrdHttpUrl {
+ url: uri,
+ follow: false,
+ }
} else {
// If this is sometyhing like `foo.com` we can't know what it is until we connect to it.
// We could/should connect and see what it is, but for now we just take a wild guess instead:
@@ -112,7 +120,7 @@ impl DataSource {
pub fn file_name(&self) -> Option {
match self {
- DataSource::RrdHttpUrl(url) => url.split('/').last().map(|r| r.to_owned()),
+ DataSource::RrdHttpUrl { url, .. } => url.split('/').last().map(|r| r.to_owned()),
#[cfg(not(target_arch = "wasm32"))]
DataSource::FilePath(_, path) => {
path.file_name().map(|s| s.to_string_lossy().to_string())
@@ -140,8 +148,10 @@ impl DataSource {
) -> anyhow::Result> {
re_tracing::profile_function!();
match self {
- DataSource::RrdHttpUrl(url) => Ok(
- re_log_encoding::stream_rrd_from_http::stream_rrd_from_http_to_channel(url, on_msg),
+ DataSource::RrdHttpUrl { url, follow } => Ok(
+ re_log_encoding::stream_rrd_from_http::stream_rrd_from_http_to_channel(
+ url, follow, on_msg,
+ ),
),
#[cfg(not(target_arch = "wasm32"))]
@@ -256,7 +266,7 @@ fn test_data_source_from_uri() {
assert!(
matches!(
DataSource::from_uri(file_source, uri.to_owned()),
- DataSource::RrdHttpUrl(_)
+ DataSource::RrdHttpUrl { .. }
),
"Expected {uri:?} to be categorized as RrdHttpUrl"
);
diff --git a/crates/re_log_encoding/src/stream_rrd_from_http.rs b/crates/re_log_encoding/src/stream_rrd_from_http.rs
index bf9be45a0cf08..25170a58ecfc7 100644
--- a/crates/re_log_encoding/src/stream_rrd_from_http.rs
+++ b/crates/re_log_encoding/src/stream_rrd_from_http.rs
@@ -5,14 +5,23 @@ use std::sync::Arc;
use re_log::ResultExt as _;
use re_log_types::LogMsg;
+/// Stream an rrd file from a HTTP server.
+///
+/// If `follow_if_http` is `true`, and the url is an HTTP source, the viewer will open the stream
+/// in `Following` mode rather than `Playing` mode.
+///
/// `on_msg` can be used to wake up the UI thread on Wasm.
pub fn stream_rrd_from_http_to_channel(
url: String,
+ follow: bool,
on_msg: Option>,
) -> re_smart_channel::Receiver {
let (tx, rx) = re_smart_channel::smart_channel(
re_smart_channel::SmartMessageSource::RrdHttpStream { url: url.clone() },
- re_smart_channel::SmartChannelSource::RrdHttpStream { url: url.clone() },
+ re_smart_channel::SmartChannelSource::RrdHttpStream {
+ url: url.clone(),
+ follow,
+ },
);
stream_rrd_from_http(
url.clone(),
diff --git a/crates/re_smart_channel/src/lib.rs b/crates/re_smart_channel/src/lib.rs
index 46137ca5f185c..1fcb6b70f8500 100644
--- a/crates/re_smart_channel/src/lib.rs
+++ b/crates/re_smart_channel/src/lib.rs
@@ -25,7 +25,9 @@ pub enum SmartChannelSource {
File(std::path::PathBuf),
/// The channel was created in the context of loading an `.rrd` file over http.
- RrdHttpStream { url: String },
+ ///
+ /// The `follow` flag indicates whether the viewer should open the stream in `Following` mode rather than `Playing` mode.
+ RrdHttpStream { url: String, follow: bool },
/// The channel was created in the context of loading an `.rrd` file from a `postMessage`
/// js event.
@@ -66,7 +68,7 @@ impl std::fmt::Display for SmartChannelSource {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
Self::File(path) => path.display().fmt(f),
- Self::RrdHttpStream { url } => url.fmt(f),
+ Self::RrdHttpStream { url, follow: _ } => url.fmt(f),
Self::RrdWebEventListener => "Web event listener".fmt(f),
Self::JsChannel { channel_name } => write!(f, "Javascript channel: {channel_name}"),
Self::Sdk => "SDK".fmt(f),
diff --git a/crates/re_smart_channel/src/receive_set.rs b/crates/re_smart_channel/src/receive_set.rs
index 1a9ecc6f0c91f..91123cdc17a4d 100644
--- a/crates/re_smart_channel/src/receive_set.rs
+++ b/crates/re_smart_channel/src/receive_set.rs
@@ -52,7 +52,7 @@ impl ReceiveSet {
// retain only sources which:
// - aren't network sources
// - don't point at the given `uri`
- SmartChannelSource::RrdHttpStream { url } => url != uri,
+ SmartChannelSource::RrdHttpStream { url, .. } => url != uri,
SmartChannelSource::WsClient { ws_server_url } => ws_server_url != uri,
_ => true,
});
diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs
index 8773cacf01e0f..62d4ad8c42259 100644
--- a/crates/re_viewer/src/app.rs
+++ b/crates/re_viewer/src/app.rs
@@ -793,7 +793,7 @@ impl App {
.map(|ctx| ctx.recording)
.and_then(|rec| rec.data_source.as_ref())
{
- Some(SmartChannelSource::RrdHttpStream { url }) => format!("{href}?url={url}"),
+ Some(SmartChannelSource::RrdHttpStream { url, .. }) => format!("{href}?url={url}"),
_ => href,
};
diff --git a/crates/re_viewer/src/app_state.rs b/crates/re_viewer/src/app_state.rs
index 700f51113bc8d..d43f6fdbf0867 100644
--- a/crates/re_viewer/src/app_state.rs
+++ b/crates/re_viewer/src/app_state.rs
@@ -510,11 +510,12 @@ fn recording_config_entry<'cfgs>(
// Play files from the start by default - it feels nice and alive.
// We assume the `RrdHttpStream` is a done recording.
re_smart_channel::SmartChannelSource::File(_)
- | re_smart_channel::SmartChannelSource::RrdHttpStream { .. }
+ | re_smart_channel::SmartChannelSource::RrdHttpStream { follow: false, .. }
| re_smart_channel::SmartChannelSource::RrdWebEventListener => PlayState::Playing,
// Live data - follow it!
- re_smart_channel::SmartChannelSource::Sdk
+ re_smart_channel::SmartChannelSource::RrdHttpStream { follow: true, .. }
+ | re_smart_channel::SmartChannelSource::Sdk
| re_smart_channel::SmartChannelSource::WsClient { .. }
| re_smart_channel::SmartChannelSource::TcpServer { .. }
| re_smart_channel::SmartChannelSource::Stdin
diff --git a/crates/re_viewer/src/ui/recordings_panel.rs b/crates/re_viewer/src/ui/recordings_panel.rs
index 26b3856519af3..bf1ec190d296b 100644
--- a/crates/re_viewer/src/ui/recordings_panel.rs
+++ b/crates/re_viewer/src/ui/recordings_panel.rs
@@ -59,7 +59,7 @@ fn loading_receivers_ui(ctx: &ViewerContext<'_>, rx: &ReceiveSet, ui: &m
let string = match source.as_ref() {
// We only show things we know are very-soon-to-be recordings:
SmartChannelSource::File(path) => format!("Loading {}β¦", path.display()),
- SmartChannelSource::RrdHttpStream { url } => format!("Loading {url}β¦"),
+ SmartChannelSource::RrdHttpStream { url, .. } => format!("Loading {url}β¦"),
SmartChannelSource::RrdWebEventListener
| SmartChannelSource::JsChannel { .. }
diff --git a/crates/re_viewer/src/ui/top_panel.rs b/crates/re_viewer/src/ui/top_panel.rs
index 95f12bb590421..5744b7cec6540 100644
--- a/crates/re_viewer/src/ui/top_panel.rs
+++ b/crates/re_viewer/src/ui/top_panel.rs
@@ -205,7 +205,7 @@ fn connection_status_ui(ui: &mut egui::Ui, rx: &ReceiveSet
format!("Loading {}β¦", path.display())
}
re_smart_channel::SmartChannelSource::Stdin => "Loading stdinβ¦".to_owned(),
- re_smart_channel::SmartChannelSource::RrdHttpStream { url } => {
+ re_smart_channel::SmartChannelSource::RrdHttpStream { url, .. } => {
format!("Loading {url}β¦")
}
re_smart_channel::SmartChannelSource::RrdWebEventListener
diff --git a/crates/re_viewer/src/ui/welcome_screen/example_section.rs b/crates/re_viewer/src/ui/welcome_screen/example_section.rs
index dca00b3e4bd2a..5a36a66e50388 100644
--- a/crates/re_viewer/src/ui/welcome_screen/example_section.rs
+++ b/crates/re_viewer/src/ui/welcome_screen/example_section.rs
@@ -459,12 +459,16 @@ fn open_example_url(
}
}
- let data_source = re_data_source::DataSource::RrdHttpUrl(rrd_url.to_owned());
+ let data_source = re_data_source::DataSource::RrdHttpUrl {
+ url: rrd_url.to_owned(),
+ follow: false,
+ };
// If the user re-download an already open recording, clear it out first
command_sender.send_system(SystemCommand::ClearSourceAndItsStores(
re_smart_channel::SmartChannelSource::RrdHttpStream {
url: rrd_url.to_owned(),
+ follow: false,
},
));
diff --git a/crates/re_viewer/src/web.rs b/crates/re_viewer/src/web.rs
index cc1de611a7491..bd6512210b191 100644
--- a/crates/re_viewer/src/web.rs
+++ b/crates/re_viewer/src/web.rs
@@ -100,12 +100,21 @@ impl WebHandle {
self.runner.panic_summary().map(|s| s.callstack())
}
+ /// Add a new receiver streaming data from the given url.
+ ///
+ /// If `follow_if_http` is `true`, and the url is an HTTP source, the viewer will open the stream
+ /// in `Following` mode rather than `Playing` mode.
+ ///
+ /// Websocket streams are always opened in `Following` mode.
+ ///
+ /// It is an error to open a channel twice with the same id.
#[wasm_bindgen]
- pub fn add_receiver(&self, url: &str) {
+ pub fn add_receiver(&self, url: &str, follow_if_http: Option) {
let Some(mut app) = self.runner.app_mut::() else {
return;
};
- let rx = url_to_receiver(app.re_ui.egui_ctx.clone(), url);
+ let follow_if_http = follow_if_http.unwrap_or(false);
+ let rx = url_to_receiver(app.re_ui.egui_ctx.clone(), follow_if_http, url);
if let Some(rx) = rx.ok_or_log_error() {
app.add_receiver(rx);
}
@@ -252,7 +261,10 @@ fn create_app(
}
if let Some(url) = url {
- if let Some(receiver) = url_to_receiver(cc.egui_ctx.clone(), url).ok_or_log_error() {
+ let follow_if_http = false;
+ if let Some(receiver) =
+ url_to_receiver(cc.egui_ctx.clone(), follow_if_http, url).ok_or_log_error()
+ {
app.add_receiver(receiver);
}
} else {
diff --git a/crates/re_viewer/src/web_tools.rs b/crates/re_viewer/src/web_tools.rs
index 6be84efc27d7c..fc64730cb079e 100644
--- a/crates/re_viewer/src/web_tools.rs
+++ b/crates/re_viewer/src/web_tools.rs
@@ -144,8 +144,11 @@ pub fn translate_query_into_commands(egui_ctx: &egui::Context, command_sender: &
.flatten()
.collect();
if !urls.is_empty() {
+ let follow_if_http = false;
for url in urls {
- if let Some(receiver) = url_to_receiver(egui_ctx.clone(), url).ok_or_log_error() {
+ if let Some(receiver) =
+ url_to_receiver(egui_ctx.clone(), follow_if_http, url).ok_or_log_error()
+ {
// We may be here because the user clicked Back/Forward in the browser while trying
// out examples. If we re-download the same file we should clear out the old data first.
command_sender.send_system(SystemCommand::ClearSourceAndItsStores(
@@ -197,6 +200,7 @@ impl EndpointCategory {
/// Start receiving from the given url.
pub fn url_to_receiver(
egui_ctx: egui::Context,
+ follow_if_http: bool,
url: &str,
) -> anyhow::Result> {
let ui_waker = Box::new(move || {
@@ -208,6 +212,7 @@ pub fn url_to_receiver(
EndpointCategory::HttpRrd(url) => Ok(
re_log_encoding::stream_rrd_from_http::stream_rrd_from_http_to_channel(
url,
+ follow_if_http,
Some(ui_waker),
),
),
diff --git a/crates/re_viewer_context/src/store_hub.rs b/crates/re_viewer_context/src/store_hub.rs
index 6b8f824e76f3f..3227e95e6ff26 100644
--- a/crates/re_viewer_context/src/store_hub.rs
+++ b/crates/re_viewer_context/src/store_hub.rs
@@ -605,7 +605,7 @@ impl StoreHub {
// - aren't network sources
// - don't point at the given `uri`
match data_source {
- re_smart_channel::SmartChannelSource::RrdHttpStream { url } => url != uri,
+ re_smart_channel::SmartChannelSource::RrdHttpStream { url, .. } => url != uri,
re_smart_channel::SmartChannelSource::WsClient { ws_server_url } => {
ws_server_url != uri
}
diff --git a/rerun_js/web-viewer/index.js b/rerun_js/web-viewer/index.js
index 5681592e597e7..95187fa58e7a7 100644
--- a/rerun_js/web-viewer/index.js
+++ b/rerun_js/web-viewer/index.js
@@ -88,14 +88,17 @@ export class WebViewer {
* @see {WebViewer.start}
*
* @param {string | string[]} rrd URLs to `.rrd` files or WebSocket connections to our SDK.
+ * @param {{ follow_if_http?: boolean }} options
+ * - follow_if_http: Whether Rerun should open the resource in "Following" mode when streaming
+ * from an HTTP url. Defaults to `false`. Ignored for non-HTTP URLs.
*/
- open(rrd) {
+ open(rrd, options = {}) {
if (!this.#handle) {
throw new Error(`attempted to open \`${rrd}\` in a stopped viewer`);
}
const urls = Array.isArray(rrd) ? rrd : [rrd];
for (const url of urls) {
- this.#handle.add_receiver(url);
+ this.#handle.add_receiver(url, options.follow_if_http);
if (this.#handle.has_panicked()) {
throw new Error(`Web viewer crashed: ${this.#handle.panic_message()}`);
}
From 037697ed6d5edea3ca588680288988bbe0eafd55 Mon Sep 17 00:00:00 2001
From: Emil Ernerfeldt
Date: Wed, 15 May 2024 16:08:57 +0200
Subject: [PATCH 13/40] Make sure all log messages are sent when using
`.serve()` (#6335)
### What
* Closes https://github.com/rerun-io/rerun/issues/6286
See commit messages for details
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6335?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6335?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6335)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
crates/re_sdk/src/web_viewer.rs | 65 ++++++++++++++++++--------
crates/re_smart_channel/src/lib.rs | 26 ++++++++---
crates/re_smart_channel/src/sender.rs | 21 ++++++++-
crates/re_viewer/src/app.rs | 6 +++
crates/re_web_viewer_server/src/lib.rs | 23 ++++++---
crates/re_ws_comms/src/server.rs | 32 ++++++++++++-
crates/rerun/src/run.rs | 5 ++
pixi.toml | 2 +-
rerun_py/Cargo.toml | 8 ++--
9 files changed, 147 insertions(+), 41 deletions(-)
diff --git a/crates/re_sdk/src/web_viewer.rs b/crates/re_sdk/src/web_viewer.rs
index d6d32053df624..0905d818b878d 100644
--- a/crates/re_sdk/src/web_viewer.rs
+++ b/crates/re_sdk/src/web_viewer.rs
@@ -1,13 +1,15 @@
use re_log_types::LogMsg;
-use re_web_viewer_server::{WebViewerServer, WebViewerServerPort};
+use re_web_viewer_server::{WebViewerServer, WebViewerServerError, WebViewerServerPort};
use re_ws_comms::{RerunServer, RerunServerPort};
+// ----------------------------------------------------------------------------
+
/// Failure to host a web viewer and/or Rerun server.
#[derive(thiserror::Error, Debug)]
pub enum WebViewerSinkError {
/// Failure to host the web viewer.
#[error(transparent)]
- WebViewerServer(#[from] re_web_viewer_server::WebViewerServerError),
+ WebViewerServer(#[from] WebViewerServerError),
/// Failure to host the Rerun WebSocket server.
#[error(transparent)]
@@ -16,13 +18,15 @@ pub enum WebViewerSinkError {
/// A [`crate::sink::LogSink`] tied to a hosted Rerun web viewer. This internally stores two servers:
/// * A [`re_ws_comms::RerunServer`] to relay messages from the sink to a websocket connection
-/// * A [`re_web_viewer_server::WebViewerServer`] to serve the Wasm+HTML
+/// * A [`WebViewerServer`] to serve the Wasm+HTML
struct WebViewerSink {
+ open_browser: bool,
+
/// Sender to send messages to the [`re_ws_comms::RerunServer`]
sender: re_smart_channel::Sender,
/// Rerun websocket server.
- _rerun_server: RerunServer,
+ rerun_server: RerunServer,
/// The http server serving wasm & html.
_webviewer_server: WebViewerServer,
@@ -61,14 +65,48 @@ impl WebViewerSink {
}
Ok(Self {
+ open_browser,
sender: rerun_tx,
- _rerun_server: rerun_server,
+ rerun_server,
_webviewer_server: webviewer_server,
})
}
}
-/// Helper to spawn an instance of the [`re_web_viewer_server::WebViewerServer`].
+impl crate::sink::LogSink for WebViewerSink {
+ fn send(&self, msg: LogMsg) {
+ if let Err(err) = self.sender.send(msg) {
+ re_log::error_once!("Failed to send log message to web server: {err}");
+ }
+ }
+
+ #[inline]
+ fn flush_blocking(&self) {
+ if let Err(err) = self.sender.flush_blocking() {
+ re_log::error_once!("Failed to flush: {err}");
+ }
+ }
+}
+
+impl Drop for WebViewerSink {
+ fn drop(&mut self) {
+ if self.open_browser && self.rerun_server.num_accepted_clients() == 0 {
+ // For small scripts that execute fast we run the risk of finishing
+ // before the browser has a chance to connect.
+ // Let's give it a little more time:
+ re_log::info!("Sleeping a short while to give the browser time to connectβ¦");
+ std::thread::sleep(std::time::Duration::from_millis(1000));
+ }
+
+ if self.rerun_server.num_accepted_clients() == 0 {
+ re_log::info!("Shutting down without any clients ever having connected. Consider sleeping to give them more time to connect");
+ }
+ }
+}
+
+// ----------------------------------------------------------------------------
+
+/// Helper to spawn an instance of the [`WebViewerServer`].
/// This serves the HTTP+Wasm+JS files that make up the web-viewer.
///
/// Optionally opens a browser with the web-viewer and connects to the provided `target_url`.
@@ -82,8 +120,8 @@ pub fn host_web_viewer(
force_wgpu_backend: Option,
open_browser: bool,
source_url: &str,
-) -> anyhow::Result {
- let web_server = re_web_viewer_server::WebViewerServer::new(bind_ip, web_port)?;
+) -> anyhow::Result {
+ let web_server = WebViewerServer::new(bind_ip, web_port)?;
let http_web_viewer_url = web_server.server_url();
let mut viewer_url = format!("{http_web_viewer_url}?url={source_url}");
@@ -99,17 +137,6 @@ pub fn host_web_viewer(
Ok(web_server)
}
-impl crate::sink::LogSink for WebViewerSink {
- fn send(&self, msg: LogMsg) {
- if let Err(err) = self.sender.send(msg) {
- re_log::error_once!("Failed to send log message to web server: {err}");
- }
- }
-
- #[inline]
- fn flush_blocking(&self) {}
-}
-
// ----------------------------------------------------------------------------
/// Serve log-data over WebSockets and serve a Rerun web viewer over HTTP.
diff --git a/crates/re_smart_channel/src/lib.rs b/crates/re_smart_channel/src/lib.rs
index 1fcb6b70f8500..886487f0c8f14 100644
--- a/crates/re_smart_channel/src/lib.rs
+++ b/crates/re_smart_channel/src/lib.rs
@@ -197,17 +197,31 @@ pub(crate) fn smart_channel_with_stats(
/// The payload of a [`SmartMessage`].
///
/// Either data or an end-of-stream marker.
-#[derive(Debug)]
pub enum SmartMessagePayload {
/// A message sent down the channel.
Msg(T),
+ /// When received, flush anything already received and then call the given callback.
+ Flush {
+ on_flush_done: Box,
+ },
+
/// The [`Sender`] has quit.
///
/// `None` indicates the sender left gracefully, an error indicates otherwise.
Quit(Option>),
}
+impl std::fmt::Debug for SmartMessagePayload {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ match self {
+ SmartMessagePayload::Msg(_) => f.write_str("Msg(_)"),
+ SmartMessagePayload::Flush { .. } => f.write_str("Flush"),
+ SmartMessagePayload::Quit(_) => f.write_str("Quit"),
+ }
+ }
+}
+
impl PartialEq for SmartMessagePayload {
fn eq(&self, rhs: &Self) -> bool {
match (self, rhs) {
@@ -226,18 +240,16 @@ pub struct SmartMessage {
impl SmartMessage {
pub fn data(&self) -> Option<&T> {
- use SmartMessagePayload::{Msg, Quit};
match &self.payload {
- Msg(msg) => Some(msg),
- Quit(_) => None,
+ SmartMessagePayload::Msg(msg) => Some(msg),
+ SmartMessagePayload::Flush { .. } | SmartMessagePayload::Quit(_) => None,
}
}
pub fn into_data(self) -> Option {
- use SmartMessagePayload::{Msg, Quit};
match self.payload {
- Msg(msg) => Some(msg),
- Quit(_) => None,
+ SmartMessagePayload::Msg(msg) => Some(msg),
+ SmartMessagePayload::Flush { .. } | SmartMessagePayload::Quit(_) => None,
}
}
}
diff --git a/crates/re_smart_channel/src/sender.rs b/crates/re_smart_channel/src/sender.rs
index 47929a21e568d..76167bb528986 100644
--- a/crates/re_smart_channel/src/sender.rs
+++ b/crates/re_smart_channel/src/sender.rs
@@ -37,7 +37,7 @@ impl Sender {
)
.map_err(|SendError(msg)| match msg {
SmartMessagePayload::Msg(msg) => SendError(msg),
- SmartMessagePayload::Quit(_) => unreachable!(),
+ SmartMessagePayload::Flush { .. } | SmartMessagePayload::Quit(_) => unreachable!(),
})
}
@@ -60,6 +60,25 @@ impl Sender {
.map_err(|SendError(msg)| SendError(msg.payload))
}
+ /// Blocks until all previously sent messages have been received.
+ pub fn flush_blocking(&self) -> Result<(), SendError<()>> {
+ let (tx, rx) = std::sync::mpsc::sync_channel(0); // oneshot
+ self.tx
+ .send(SmartMessage {
+ time: Instant::now(),
+ source: Arc::clone(&self.source),
+ payload: SmartMessagePayload::Flush {
+ on_flush_done: Box::new(move || {
+ tx.send(()).ok();
+ }),
+ },
+ })
+ .map_err(|_ignored| SendError(()))?;
+
+ // Block:
+ rx.recv().map_err(|_ignored| SendError(()))
+ }
+
/// Used to indicate that a sender has left.
///
/// This sends a message down the channel allowing the receiving end to know whether one of the
diff --git a/crates/re_viewer/src/app.rs b/crates/re_viewer/src/app.rs
index 62d4ad8c42259..ba35ed9834aa5 100644
--- a/crates/re_viewer/src/app.rs
+++ b/crates/re_viewer/src/app.rs
@@ -971,6 +971,12 @@ impl App {
while let Some((channel_source, msg)) = self.rx.try_recv() {
let msg = match msg.payload {
re_smart_channel::SmartMessagePayload::Msg(msg) => msg,
+
+ re_smart_channel::SmartMessagePayload::Flush { on_flush_done } => {
+ on_flush_done();
+ continue;
+ }
+
re_smart_channel::SmartMessagePayload::Quit(err) => {
if let Some(err) = err {
let log_msg =
diff --git a/crates/re_web_viewer_server/src/lib.rs b/crates/re_web_viewer_server/src/lib.rs
index 853be4d107a1b..92105147e3367 100644
--- a/crates/re_web_viewer_server/src/lib.rs
+++ b/crates/re_web_viewer_server/src/lib.rs
@@ -10,7 +10,10 @@
use std::{
fmt::Display,
str::FromStr,
- sync::{atomic::AtomicBool, Arc},
+ sync::{
+ atomic::{AtomicBool, AtomicU64, Ordering},
+ Arc,
+ },
};
pub const DEFAULT_WEB_VIEWER_SERVER_PORT: u16 = 9090;
@@ -86,6 +89,7 @@ pub struct WebViewerServer {
struct WebViewerServerInner {
server: tiny_http::Server,
shutdown: AtomicBool,
+ num_wasm_served: AtomicU64,
// NOTE: Optional because it is possible to have the `analytics` feature flag enabled
// while at the same time opting-out of analytics at run-time.
@@ -119,6 +123,7 @@ impl WebViewerServer {
let inner = Arc::new(WebViewerServerInner {
server,
shutdown,
+ num_wasm_served: Default::default(),
#[cfg(feature = "analytics")]
analytics: match re_analytics::Analytics::new(std::time::Duration::from_secs(2)) {
@@ -169,9 +174,12 @@ impl WebViewerServer {
impl Drop for WebViewerServer {
fn drop(&mut self) {
if let Some(thread_handle) = self.thread_handle.take() {
- self.inner
- .shutdown
- .store(true, std::sync::atomic::Ordering::Release);
+ let num_wasm_served = self.inner.num_wasm_served.load(Ordering::Relaxed);
+ re_log::debug!(
+ "Shutting down web server after serving the Wasm {num_wasm_served} time(s)"
+ );
+
+ self.inner.shutdown.store(true, Ordering::Release);
self.inner.server.unblock();
thread_handle.join().ok();
}
@@ -182,7 +190,7 @@ impl WebViewerServerInner {
fn serve(&self) {
loop {
let request = self.server.recv();
- if self.shutdown.load(std::sync::atomic::Ordering::Acquire) {
+ if self.shutdown.load(Ordering::Acquire) {
return;
}
@@ -200,8 +208,10 @@ impl WebViewerServerInner {
}
}
- #[cfg(feature = "analytics")]
fn on_serve_wasm(&self) {
+ self.num_wasm_served.fetch_add(1, Ordering::Relaxed);
+
+ #[cfg(feature = "analytics")]
if let Some(analytics) = &self.analytics {
analytics.record(re_analytics::event::ServeWasm);
}
@@ -229,7 +239,6 @@ impl WebViewerServerInner {
"/sw.js" => ("text/javascript", data::SW_JS),
"/re_viewer.js" => ("text/javascript", data::VIEWER_JS),
"/re_viewer_bg.wasm" => {
- #[cfg(feature = "analytics")]
self.on_serve_wasm();
("application/wasm", data::VIEWER_WASM)
}
diff --git a/crates/re_ws_comms/src/server.rs b/crates/re_ws_comms/src/server.rs
index b6a18f7a6eb35..97b7bede2bd66 100644
--- a/crates/re_ws_comms/src/server.rs
+++ b/crates/re_ws_comms/src/server.rs
@@ -9,7 +9,10 @@
use std::{
collections::VecDeque,
net::{TcpListener, TcpStream},
- sync::{atomic::AtomicBool, Arc},
+ sync::{
+ atomic::{AtomicBool, AtomicU64, Ordering},
+ Arc,
+ },
};
use parking_lot::Mutex;
@@ -86,6 +89,9 @@ pub struct RerunServer {
listener_join_handle: Option>,
poller: Arc,
shutdown_flag: Arc,
+
+ /// Total count; never decreasing.
+ num_accepted_clients: Arc,
}
impl RerunServer {
@@ -120,10 +126,12 @@ impl RerunServer {
let poller = Arc::new(Poller::new()?);
let shutdown_flag = Arc::new(AtomicBool::new(false));
+ let num_accepted_clients = Arc::new(AtomicU64::new(0));
let local_addr = listener_socket.local_addr()?;
let poller_copy = poller.clone();
let shutdown_flag_copy = shutdown_flag.clone();
+ let num_clients_copy = num_accepted_clients.clone();
let listener_join_handle = std::thread::Builder::new()
.name("rerun_ws_server: listener".to_owned())
@@ -133,6 +141,7 @@ impl RerunServer {
&listener_socket,
&ReceiveSetBroadcaster::new(rerun_rx, server_memory_limit),
&shutdown_flag,
+ &num_accepted_clients,
);
})?;
@@ -141,6 +150,7 @@ impl RerunServer {
poller: poller_copy,
listener_join_handle: Some(listener_join_handle),
shutdown_flag: shutdown_flag_copy,
+ num_accepted_clients: num_clients_copy,
};
re_log::info!(
@@ -156,11 +166,17 @@ impl RerunServer {
server_url(&self.local_addr)
}
+ /// Total count; never decreasing.
+ pub fn num_accepted_clients(&self) -> u64 {
+ self.num_accepted_clients.load(Ordering::Relaxed)
+ }
+
fn listen_thread_func(
poller: &Poller,
listener_socket: &TcpListener,
message_broadcaster: &ReceiveSetBroadcaster,
shutdown_flag: &AtomicBool,
+ num_accepted_clients: &AtomicU64,
) {
// Each socket in `poll::Poller` needs a "name".
// Doesn't matter much what we're using here, as long as it's not used for something else
@@ -190,6 +206,7 @@ impl RerunServer {
message_broadcaster,
poller,
listener_poll_key,
+ num_accepted_clients,
);
}
}
@@ -201,6 +218,7 @@ impl RerunServer {
message_broadcaster: &ReceiveSetBroadcaster,
poller: &Poller,
listener_poll_key: usize,
+ num_accepted_clients: &AtomicU64,
) {
match listener_socket.accept() {
Ok((tcp_stream, _)) => {
@@ -214,6 +232,7 @@ impl RerunServer {
match tungstenite::accept(tcp_stream) {
Ok(ws_stream) => {
message_broadcaster.add_client(ws_stream);
+ num_accepted_clients.fetch_add(1, Ordering::Relaxed);
}
Err(err) => {
re_log::warn!("Error accepting WebSocket connection: {err}");
@@ -251,7 +270,11 @@ impl RerunServer {
impl Drop for RerunServer {
fn drop(&mut self) {
- re_log::info!("Shutting down Rerun server on {}", self.server_url());
+ let num_accepted_clients = self.num_accepted_clients.load(Ordering::Relaxed);
+ re_log::info!(
+ "Shutting down Rerun server on {} after serving {num_accepted_clients} client(s)",
+ self.server_url()
+ );
self.stop_listener();
}
}
@@ -328,6 +351,11 @@ impl ReceiveSetBroadcaster {
inner.history.push(msg);
}
+
+ re_smart_channel::SmartMessagePayload::Flush { on_flush_done } => {
+ on_flush_done();
+ }
+
re_smart_channel::SmartMessagePayload::Quit(err) => {
if let Some(err) = err {
re_log::warn!("Sender {} has left unexpectedly: {err}", msg.source);
diff --git a/crates/rerun/src/run.rs b/crates/rerun/src/run.rs
index 19062d0c7dbd0..5b2f344305fcc 100644
--- a/crates/rerun/src/run.rs
+++ b/crates/rerun/src/run.rs
@@ -830,6 +830,11 @@ fn assert_receive_into_entity_db(
mut_db.add(&msg)?;
num_messages += 1;
}
+
+ re_smart_channel::SmartMessagePayload::Flush { on_flush_done } => {
+ on_flush_done();
+ }
+
SmartMessagePayload::Quit(err) => {
if let Some(err) = err {
anyhow::bail!("data source has disconnected unexpectedly: {err}")
diff --git a/pixi.toml b/pixi.toml
index bc2449d75e19e..e59ea9096ac3e 100644
--- a/pixi.toml
+++ b/pixi.toml
@@ -147,7 +147,7 @@ py-lint = "mypy --install-types --non-interactive --no-warn-unused-ignore"
# - RERUN_ALLOW_MISSING_BIN is needed to allow maturin to run without the `rerun` binary being part of the rerun-sdk
# package.
py-build = { cmd = "PIP_REQUIRE_VIRTUALENV=0 RERUN_ALLOW_MISSING_BIN=1 maturin develop --manifest-path rerun_py/Cargo.toml --extras=tests", depends_on = [
- "rerun-build",
+ "rerun-build", # We need to build rerun-cli since it is bundled in the python package.
] }
# Python example utilities
diff --git a/rerun_py/Cargo.toml b/rerun_py/Cargo.toml
index 8af8cf5f22399..64f36937bb4aa 100644
--- a/rerun_py/Cargo.toml
+++ b/rerun_py/Cargo.toml
@@ -15,7 +15,7 @@ name = "rerun_bindings" # name of the .so library that the Python module will im
[features]
-default = ["extension-module"]
+default = ["extension-module", "web_viewer"]
## The features we turn on when building the `rerun-sdk` PyPi package
## for .
@@ -23,15 +23,15 @@ pypi = ["extension-module", "web_viewer"]
## We need to enable the `pyo3/extension-module` when building the SDK,
## but we cannot enable it when building tests and benchmarks, so we
-## must make it an opt-in feature.
+## must make it an optional feature.
## *
## *
extension-module = ["pyo3/extension-module"]
## Support serving a web viewer over HTTP with `serve()`.
##
-## Enabling this adds quite a bit to the compile time and binary size,
-## since it requires compiling and bundling the viewer as wasm.
+## Enabling this adds quite a bit to the binary size,
+## since it requires bundling the viewer as wasm.
web_viewer = [
"re_sdk/web_viewer",
"dep:re_web_viewer_server",
From 0f83263583f2973b5f40a7115097705c38060fc1 Mon Sep 17 00:00:00 2001
From: Andreas Reich
Date: Wed, 15 May 2024 17:05:18 +0200
Subject: [PATCH 14/40] Rename VisualBounds to VisualBounds2D, Introduce
VisualBounds2D component replacing Range2D component (#6333)
### What
This changeset makes the 2D visual bound more similar to what we want it
to look like once introducing `DataRange`, i.e. it means that when we
fix:
* https://github.com/rerun-io/rerun/issues/6247
the api won't break
### Checklist
* [x] I have read and agree to [Contributor
Guide](https://github.com/rerun-io/rerun/blob/main/CONTRIBUTING.md) and
the [Code of
Conduct](https://github.com/rerun-io/rerun/blob/main/CODE_OF_CONDUCT.md)
* [x] I've included a screenshot or gif (if applicable)
* [x] I have tested the web demo (if applicable):
* Using examples from latest `main` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6333?manifest_url=https://app.rerun.io/version/main/examples_manifest.json)
* Using full set of examples from `nightly` build:
[rerun.io/viewer](https://rerun.io/viewer/pr/6333?manifest_url=https://app.rerun.io/version/nightly/examples_manifest.json)
* [x] The PR title and labels are set such as to maximize their
usefulness for the next release's CHANGELOG
* [x] If applicable, add a new check to the [release
checklist](https://github.com/rerun-io/rerun/blob/main/tests/python/release_checklist)!
- [PR Build Summary](https://build.rerun.io/pr/6333)
- [Recent benchmark results](https://build.rerun.io/graphs/crates.html)
- [Wasm size tracking](https://build.rerun.io/graphs/sizes.html)
To run all checks from `main`, comment on the PR with `@rerun-bot
full-check`.
---
.../re_data_ui/src/component_ui_registry.rs | 2 +-
crates/re_data_ui/src/data.rs | 5 +-
.../src/latest_at/to_archetype/.gitattributes | 2 +-
.../src/latest_at/to_archetype/mod.rs | 2 +-
.../latest_at/to_archetype/visual_bounds.rs | 44 ---------
.../latest_at/to_archetype/visual_bounds2d.rs | 51 ++++++++++
.../src/space_view_2d.rs | 17 ++--
crates/re_space_view_spatial/src/ui_2d.rs | 10 +-
.../re_types/definitions/rerun/blueprint.fbs | 3 +-
.../blueprint/archetypes/visual_bounds.fbs | 22 -----
.../blueprint/archetypes/visual_bounds2d.fbs | 25 +++++
.../components/visual_bounds2d.fbs} | 10 +-
.../rerun/blueprint/views/spatial2d.fbs | 2 +-
.../re_types/definitions/rerun/components.fbs | 1 -
.../re_types/src/archetypes/line_strips2d.rs | 2 +-
crates/re_types/src/archetypes/points2d.rs | 2 +-
.../src/blueprint/archetypes/.gitattributes | 2 +-
.../re_types/src/blueprint/archetypes/mod.rs | 4 +-
.../{visual_bounds.rs => visual_bounds2d.rs} | 97 +++++++++----------
.../src/blueprint/components/.gitattributes | 1 +
.../re_types/src/blueprint/components/mod.rs | 3 +
.../components/visual_bounds2d.rs} | 29 +++---
.../components/visual_bounds2d_ext.rs | 8 ++
.../src/blueprint/views/spatial2d_view.rs | 4 +-
crates/re_types/src/components/.gitattributes | 1 -
crates/re_types/src/components/mod.rs | 3 -
crates/re_types/src/components/range2d_ext.rs | 8 --
.../src/blueprint/validation_gen/mod.rs | 2 +
docs/content/reference/types/components.md | 1 -
.../reference/types/components/.gitattributes | 1 -
.../reference/types/components/range2d.md | 17 ----
.../reference/types/datatypes/range2d.md | 3 -
.../all/archetypes/line_segments2d_simple.cpp | 2 +-
.../all/archetypes/line_segments2d_simple.py | 2 +-
.../all/archetypes/line_segments2d_simple.rs | 2 +-
.../all/archetypes/line_strip2d_batch.cpp | 2 +-
.../all/archetypes/line_strip2d_batch.py | 2 +-
.../all/archetypes/line_strip2d_batch.rs | 2 +-
.../all/archetypes/line_strip2d_simple.cpp | 2 +-
.../all/archetypes/line_strip2d_simple.py | 2 +-
.../all/archetypes/line_strip2d_simple.rs | 2 +-
.../all/archetypes/point2d_random.cpp | 2 +-
.../snippets/all/archetypes/point2d_random.py | 2 +-
.../snippets/all/archetypes/point2d_random.rs | 2 +-
.../all/archetypes/point2d_simple.cpp | 2 +-
.../snippets/all/archetypes/point2d_simple.py | 2 +-
.../snippets/all/archetypes/point2d_simple.rs | 2 +-
docs/snippets/all/tutorials/extra_values.py | 2 +-
docs/snippets/all/views/spatial2d.py | 2 +-
.../src/rerun/archetypes/line_strips2d.hpp | 2 +-
rerun_cpp/src/rerun/archetypes/points2d.hpp | 2 +-
rerun_cpp/src/rerun/blueprint/archetypes.hpp | 2 +-
.../rerun/blueprint/archetypes/.gitattributes | 4 +-
.../blueprint/archetypes/visual_bounds.hpp | 64 ------------
...{visual_bounds.cpp => visual_bounds2d.cpp} | 14 +--
.../blueprint/archetypes/visual_bounds2d.hpp | 60 ++++++++++++
rerun_cpp/src/rerun/blueprint/components.hpp | 1 +
.../rerun/blueprint/components/.gitattributes | 1 +
.../blueprint/components/visual_bounds2d.hpp | 60 ++++++++++++
rerun_cpp/src/rerun/components.hpp | 1 -
rerun_cpp/src/rerun/components/.gitattributes | 1 -
rerun_cpp/src/rerun/components/range2d.hpp | 57 -----------
.../rerun/archetypes/line_strips2d.py | 2 +-
.../rerun_sdk/rerun/archetypes/points2d.py | 2 +-
.../rerun_sdk/rerun/blueprint/__init__.py | 2 +-
.../rerun/blueprint/archetypes/.gitattributes | 2 +-
.../rerun/blueprint/archetypes/__init__.py | 4 +-
.../blueprint/archetypes/visual_bounds.py | 49 ----------
.../blueprint/archetypes/visual_bounds2d.py | 55 +++++++++++
...l_bounds_ext.py => visual_bounds2d_ext.py} | 11 ++-
.../rerun/blueprint/components/.gitattributes | 1 +
.../rerun/blueprint/components/__init__.py | 4 +
.../blueprint/components/visual_bounds2d.py | 29 ++++++
.../components/visual_bounds2d_ext.py} | 8 +-
.../rerun/blueprint/views/spatial2d_view.py | 10 +-
.../rerun_sdk/rerun/components/.gitattributes | 1 -
.../rerun_sdk/rerun/components/__init__.py | 4 -
.../rerun_sdk/rerun/components/range2d.py | 29 ------
78 files changed, 453 insertions(+), 447 deletions(-)
delete mode 100644 crates/re_query/src/latest_at/to_archetype/visual_bounds.rs
create mode 100644 crates/re_query/src/latest_at/to_archetype/visual_bounds2d.rs
delete mode 100644 crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
create mode 100644 crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds2d.fbs
rename crates/re_types/definitions/rerun/{components/range2d.fbs => blueprint/components/visual_bounds2d.fbs} (58%)
rename crates/re_types/src/blueprint/archetypes/{visual_bounds.rs => visual_bounds2d.rs} (57%)
rename crates/re_types/src/{components/range2d.rs => blueprint/components/visual_bounds2d.rs} (80%)
create mode 100644 crates/re_types/src/blueprint/components/visual_bounds2d_ext.rs
delete mode 100644 crates/re_types/src/components/range2d_ext.rs
delete mode 100644 docs/content/reference/types/components/range2d.md
delete mode 100644 rerun_cpp/src/rerun/blueprint/archetypes/visual_bounds.hpp
rename rerun_cpp/src/rerun/blueprint/archetypes/{visual_bounds.cpp => visual_bounds2d.cpp} (76%)
create mode 100644 rerun_cpp/src/rerun/blueprint/archetypes/visual_bounds2d.hpp
create mode 100644 rerun_cpp/src/rerun/blueprint/components/visual_bounds2d.hpp
delete mode 100644 rerun_cpp/src/rerun/components/range2d.hpp
delete mode 100644 rerun_py/rerun_sdk/rerun/blueprint/archetypes/visual_bounds.py
create mode 100644 rerun_py/rerun_sdk/rerun/blueprint/archetypes/visual_bounds2d.py
rename rerun_py/rerun_sdk/rerun/blueprint/archetypes/{visual_bounds_ext.py => visual_bounds2d_ext.py} (64%)
create mode 100644 rerun_py/rerun_sdk/rerun/blueprint/components/visual_bounds2d.py
rename rerun_py/rerun_sdk/rerun/{components/range2d_ext.py => blueprint/components/visual_bounds2d_ext.py} (70%)
delete mode 100644 rerun_py/rerun_sdk/rerun/components/range2d.py
diff --git a/crates/re_data_ui/src/component_ui_registry.rs b/crates/re_data_ui/src/component_ui_registry.rs
index 052981f3de5a3..5154ec45337e4 100644
--- a/crates/re_data_ui/src/component_ui_registry.rs
+++ b/crates/re_data_ui/src/component_ui_registry.rs
@@ -21,7 +21,6 @@ pub fn create_component_ui_registry() -> ComponentUiRegistry {
add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
- add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
@@ -32,6 +31,7 @@ pub fn create_component_ui_registry() -> ComponentUiRegistry {
add_to_registry::(&mut registry);
add_to_registry::(&mut registry);
+ add_to_registry::(&mut registry);
register_editors(&mut registry);
diff --git a/crates/re_data_ui/src/data.rs b/crates/re_data_ui/src/data.rs
index 04ccc68f13e17..e186b5a8f308b 100644
--- a/crates/re_data_ui/src/data.rs
+++ b/crates/re_data_ui/src/data.rs
@@ -3,7 +3,8 @@ use re_data_store::LatestAtQuery;
use re_entity_db::EntityDb;
use re_format::format_f32;
-use re_types::components::{Color, LineStrip2D, LineStrip3D, Range1D, Range2D, ViewCoordinates};
+use re_types::blueprint::components::VisualBounds2D;
+use re_types::components::{Color, LineStrip2D, LineStrip3D, Range1D, ViewCoordinates};
use re_viewer_context::{UiLayout, ViewerContext};
use super::{data_label_for_ui_layout, label_for_ui_layout, table_for_ui_layout, DataUi};
@@ -195,7 +196,7 @@ impl DataUi for Range1D {
}
}
-impl DataUi for Range2D {
+impl DataUi for VisualBounds2D {
fn data_ui(
&self,
_ctx: &ViewerContext<'_>,
diff --git a/crates/re_query/src/latest_at/to_archetype/.gitattributes b/crates/re_query/src/latest_at/to_archetype/.gitattributes
index bd2e8c8bd9124..543824a5a8257 100644
--- a/crates/re_query/src/latest_at/to_archetype/.gitattributes
+++ b/crates/re_query/src/latest_at/to_archetype/.gitattributes
@@ -37,4 +37,4 @@ transform3d.rs linguist-generated=true
view_coordinates.rs linguist-generated=true
viewport_blueprint.rs linguist-generated=true
visible_time_ranges.rs linguist-generated=true
-visual_bounds.rs linguist-generated=true
+visual_bounds2d.rs linguist-generated=true
diff --git a/crates/re_query/src/latest_at/to_archetype/mod.rs b/crates/re_query/src/latest_at/to_archetype/mod.rs
index dbf5e55a975a0..6348f1adce28c 100644
--- a/crates/re_query/src/latest_at/to_archetype/mod.rs
+++ b/crates/re_query/src/latest_at/to_archetype/mod.rs
@@ -35,4 +35,4 @@ mod transform3d;
mod view_coordinates;
mod viewport_blueprint;
mod visible_time_ranges;
-mod visual_bounds;
+mod visual_bounds2d;
diff --git a/crates/re_query/src/latest_at/to_archetype/visual_bounds.rs b/crates/re_query/src/latest_at/to_archetype/visual_bounds.rs
deleted file mode 100644
index e48c84259e327..0000000000000
--- a/crates/re_query/src/latest_at/to_archetype/visual_bounds.rs
+++ /dev/null
@@ -1,44 +0,0 @@
-// DO NOT EDIT! This file was auto-generated by crates/re_types_builder/src/codegen/rust/to_archetype.rs
-
-#![allow(unused_imports)]
-#![allow(unused_parens)]
-#![allow(clippy::clone_on_copy)]
-#![allow(clippy::cloned_instead_of_copied)]
-
-use crate::{LatestAtResults, PromiseResolver, PromiseResult};
-use re_types_core::{Archetype, Loggable as _};
-use std::sync::Arc;
-
-impl crate::ToArchetype for LatestAtResults {
- #[inline]
- fn to_archetype(
- &self,
- resolver: &PromiseResolver,
- ) -> PromiseResult> {
- re_tracing::profile_function!(::name());
-
- // --- Required ---
-
- // --- Recommended/Optional ---
-
- use re_types::components::Range2D;
- let range2d = if let Some(range2d) = self.get(::name()) {
- match range2d.to_dense::(resolver) {
- PromiseResult::Pending => return PromiseResult::Pending,
- PromiseResult::Error(promise_err) => return PromiseResult::Error(promise_err),
- PromiseResult::Ready(query_res) => match query_res {
- Ok(data) => data.first().cloned(),
- Err(query_err) => return PromiseResult::Ready(Err(query_err)),
- },
- }
- } else {
- None
- };
-
- // ---
-
- let arch = re_types::blueprint::archetypes::VisualBounds { range2d };
-
- PromiseResult::Ready(Ok(arch))
- }
-}
diff --git a/crates/re_query/src/latest_at/to_archetype/visual_bounds2d.rs b/crates/re_query/src/latest_at/to_archetype/visual_bounds2d.rs
new file mode 100644
index 0000000000000..82a16d8ecfeab
--- /dev/null
+++ b/crates/re_query/src/latest_at/to_archetype/visual_bounds2d.rs
@@ -0,0 +1,51 @@
+// DO NOT EDIT! This file was auto-generated by crates/re_types_builder/src/codegen/rust/to_archetype.rs
+
+#![allow(unused_imports)]
+#![allow(unused_parens)]
+#![allow(clippy::clone_on_copy)]
+#![allow(clippy::cloned_instead_of_copied)]
+
+use crate::{LatestAtResults, PromiseResolver, PromiseResult};
+use re_types_core::{Archetype, Loggable as _};
+use std::sync::Arc;
+
+impl crate::ToArchetype for LatestAtResults {
+ #[inline]
+ fn to_archetype(
+ &self,
+ resolver: &PromiseResolver,
+ ) -> PromiseResult> {
+ re_tracing::profile_function!(::name());
+
+ // --- Required ---
+
+ use re_types::blueprint::components::VisualBounds2D;
+ let range = match self.get_required(::name()) {
+ Ok(range) => range,
+ Err(query_err) => return PromiseResult::Ready(Err(query_err)),
+ };
+ let range = match range.to_dense::(resolver) {
+ PromiseResult::Pending => return PromiseResult::Pending,
+ PromiseResult::Error(promise_err) => return PromiseResult::Error(promise_err),
+ PromiseResult::Ready(query_res) => match query_res {
+ Ok(data) => {
+ let Some(first) = data.first().cloned() else {
+ return PromiseResult::Error(std::sync::Arc::new(
+ re_types_core::DeserializationError::missing_data(),
+ ));
+ };
+ first
+ }
+ Err(query_err) => return PromiseResult::Ready(Err(query_err)),
+ },
+ };
+
+ // --- Recommended/Optional ---
+
+ // ---
+
+ let arch = re_types::blueprint::archetypes::VisualBounds2D { range };
+
+ PromiseResult::Ready(Ok(arch))
+ }
+}
diff --git a/crates/re_space_view_spatial/src/space_view_2d.rs b/crates/re_space_view_spatial/src/space_view_2d.rs
index fd9d6de556918..d262e1b1e7f06 100644
--- a/crates/re_space_view_spatial/src/space_view_2d.rs
+++ b/crates/re_space_view_spatial/src/space_view_2d.rs
@@ -6,7 +6,8 @@ use re_format::format_f32;
use re_log_types::EntityPath;
use re_types::{
archetypes::{DepthImage, Image},
- blueprint::archetypes::{Background, VisualBounds},
+ blueprint::archetypes::{Background, VisualBounds2D},
+ blueprint::components as blueprint_components,
Archetype, ComponentName, SpaceViewClassIdentifier,
};
use re_viewer_context::{
@@ -283,24 +284,28 @@ impl SpaceViewClass for SpatialSpaceView2D {
fn visual_bounds_ui(ctx: &ViewerContext<'_>, space_view_id: SpaceViewId, ui: &mut egui::Ui) {
let tooltip = "The area guaranteed to be visible.\n\
Depending on the view's current aspect ratio the actually visible area might be larger either horizontally or vertically.";
- re_space_view::edit_blueprint_component::(
+ re_space_view::edit_blueprint_component::<
+ VisualBounds2D,
+ blueprint_components::VisualBounds2D,
+ (),
+ >(
ctx,
space_view_id,
- |range2d_opt: &mut Option| {
+ |bounds2d_opt: &mut Option| {
ctx.re_ui
.grid_left_hand_label(ui, "Visible bounds")
.on_hover_text(tooltip);
ui.vertical(|ui| {
ui.style_mut().wrap = Some(false);
- if let Some(range2d) = range2d_opt {
- let rect = egui::Rect::from(*range2d);
+ if let Some(bounds2d) = bounds2d_opt {
+ let rect = egui::Rect::from(*bounds2d);
let (min, max) = (rect.min, rect.max);
ui.label(format!("x [{} - {}]", format_f32(min.x), format_f32(max.x),));
ui.label(format!("y [{} - {}]", format_f32(min.y), format_f32(max.y),));
if ui.button("Reset visible bounds").clicked() {
- *range2d_opt = None;
+ *bounds2d_opt = None;
}
} else {
ui.weak("Default");
diff --git a/crates/re_space_view_spatial/src/ui_2d.rs b/crates/re_space_view_spatial/src/ui_2d.rs
index c26a614b634ad..dcce82da23d9e 100644
--- a/crates/re_space_view_spatial/src/ui_2d.rs
+++ b/crates/re_space_view_spatial/src/ui_2d.rs
@@ -5,8 +5,8 @@ use re_entity_db::EntityPath;
use re_renderer::view_builder::{TargetConfiguration, ViewBuilder};
use re_space_view::controls::{DRAG_PAN2D_BUTTON, RESET_VIEW_BUTTON_TEXT, ZOOM_SCROLL_MODIFIER};
use re_types::{
- archetypes::Pinhole, blueprint::archetypes::Background, blueprint::archetypes::VisualBounds,
- components::ViewCoordinates,
+ archetypes::Pinhole, blueprint::archetypes::Background, blueprint::archetypes::VisualBounds2D,
+ blueprint::components as blueprint_components, components::ViewCoordinates,
};
use re_viewer_context::{
gpu_bridge, ItemSpaceContext, SpaceViewId, SpaceViewSystemExecutionError,
@@ -119,13 +119,13 @@ fn ui_from_scene(
}
re_space_view::edit_blueprint_component::<
- VisualBounds,
- re_types::components::Range2D,
+ VisualBounds2D,
+ blueprint_components::VisualBounds2D,
RectTransform,
>(
ctx,
space_view_id,
- |range2d: &mut Option| {
+ |range2d: &mut Option| {
// Convert to a Rect
let mut rect = range2d.map(Rect::from);
diff --git a/crates/re_types/definitions/rerun/blueprint.fbs b/crates/re_types/definitions/rerun/blueprint.fbs
index 1fba95149bd73..eba82a3a46a90 100644
--- a/crates/re_types/definitions/rerun/blueprint.fbs
+++ b/crates/re_types/definitions/rerun/blueprint.fbs
@@ -20,6 +20,7 @@ include "./blueprint/components/space_view_origin.fbs";
include "./blueprint/components/viewer_recommendation_hash.fbs";
include "./blueprint/components/visible_time_range.fbs";
include "./blueprint/components/visible.fbs";
+include "./blueprint/components/visual_bounds2d.fbs";
include "./blueprint/archetypes/background.fbs";
include "./blueprint/archetypes/container_blueprint.fbs";
@@ -28,7 +29,7 @@ include "./blueprint/archetypes/space_view_blueprint.fbs";
include "./blueprint/archetypes/space_view_contents.fbs";
include "./blueprint/archetypes/viewport_blueprint.fbs";
include "./blueprint/archetypes/visible_time_ranges.fbs";
-include "./blueprint/archetypes/visual_bounds.fbs";
+include "./blueprint/archetypes/visual_bounds2d.fbs";
include "./blueprint/archetypes/plot_legend.fbs";
include "./blueprint/archetypes/scalar_axis.fbs";
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
deleted file mode 100644
index ce68bde907491..0000000000000
--- a/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs
+++ /dev/null
@@ -1,22 +0,0 @@
-include "arrow/attributes.fbs";
-include "python/attributes.fbs";
-include "rust/attributes.fbs";
-
-include "rerun/datatypes.fbs";
-include "rerun/attributes.fbs";
-
-namespace rerun.blueprint.archetypes;
-
-
-/// Controls the visual bounds of a 2D space view.
-table VisualBounds (
- "attr.docs.unreleased",
- "attr.rerun.scope": "blueprint",
- "attr.rust.derive": "Copy"
-) {
- /// The visible parts of a 2D space view, in the coordinate space of the scene.
- ///
- /// Everything within these bounds are guaranteed to be visible.
- /// Somethings outside of these bounds may also be visible due to letterboxing.
- range2d: rerun.components.Range2D ("attr.rerun.component_optional", nullable, order: 1000);
-}
diff --git a/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds2d.fbs b/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds2d.fbs
new file mode 100644
index 0000000000000..77c75c04b4059
--- /dev/null
+++ b/crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds2d.fbs
@@ -0,0 +1,25 @@
+include "arrow/attributes.fbs";
+include "python/attributes.fbs";
+include "rust/attributes.fbs";
+
+include "rerun/blueprint/components/visual_bounds2d.fbs";
+
+namespace rerun.blueprint.archetypes;
+
+
+/// Controls the visual bounds of a 2D view.
+///
+/// Everything within these bounds are guaranteed to be visible.
+/// Somethings outside of these bounds may also be visible due to letterboxing.
+///
+/// If no visual bounds are set, it will be determined automatically,
+/// based on the bounding-box of the data or other camera information present in the view.
+table VisualBounds2D (
+ "attr.rerun.scope": "blueprint",
+ "attr.rust.derive": "Copy"
+) {
+ /// Controls the visible range of a 2D view.
+ ///
+ /// Use this to control pan & zoom of the view.
+ range: rerun.blueprint.components.VisualBounds2D ("attr.rerun.component_required", order: 1000);
+}
diff --git a/crates/re_types/definitions/rerun/components/range2d.fbs b/crates/re_types/definitions/rerun/blueprint/components/visual_bounds2d.fbs
similarity index 58%
rename from crates/re_types/definitions/rerun/components/range2d.fbs
rename to crates/re_types/definitions/rerun/blueprint/components/visual_bounds2d.fbs
index 4a02119f5f5dc..11ae2ac4c4e82 100644
--- a/crates/re_types/definitions/rerun/components/range2d.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/components/visual_bounds2d.fbs
@@ -3,17 +3,19 @@ include "python/attributes.fbs";
include "fbs/attributes.fbs";
include "rust/attributes.fbs";
-include "../datatypes/range2d.fbs";
+include "rerun/datatypes/range2d.fbs";
-namespace rerun.components;
+namespace rerun.blueprint.components;
// ---
-/// An Axis-Aligned Bounding Box in 2D space.
-struct Range2D (
+/// Visual bounds in 2D space used for `Spatial2DView`.
+struct VisualBounds2D (
"attr.docs.unreleased",
+ "attr.rerun.scope": "blueprint",
"attr.rust.derive": "Copy, PartialEq, bytemuck::Pod, bytemuck::Zeroable",
"attr.rust.repr": "transparent"
) {
+ /// X and y ranges that should be visible.
range2d: rerun.datatypes.Range2D (order: 100);
}
diff --git a/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs b/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
index dde4566c65646..b139a7323c306 100644
--- a/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
+++ b/crates/re_types/definitions/rerun/blueprint/views/spatial2d.fbs
@@ -16,7 +16,7 @@ table Spatial2DView (
///
/// Everything within these bounds are guaranteed to be visible.
/// Somethings outside of these bounds may also be visible due to letterboxing.
- visual_bounds: rerun.blueprint.archetypes.VisualBounds (order: 2000);
+ visual_bounds: rerun.blueprint.archetypes.VisualBounds2D (order: 2000);
/// Configures which range on each timeline is shown by this view (unless specified differently per entity).
///
diff --git a/crates/re_types/definitions/rerun/components.fbs b/crates/re_types/definitions/rerun/components.fbs
index ec7fdbe15b47f..121d579150bcf 100644
--- a/crates/re_types/definitions/rerun/components.fbs
+++ b/crates/re_types/definitions/rerun/components.fbs
@@ -22,7 +22,6 @@ include "./components/position2d.fbs";
include "./components/position3d.fbs";
include "./components/radius.fbs";
include "./components/range1d.fbs";
-include "./components/range2d.fbs";
include "./components/resolution.fbs";
include "./components/rotation3d.fbs";
include "./components/scalar.fbs";
diff --git a/crates/re_types/src/archetypes/line_strips2d.rs b/crates/re_types/src/archetypes/line_strips2d.rs
index 56586673f41c3..fa1854bc559c4 100644
--- a/crates/re_types/src/archetypes/line_strips2d.rs
+++ b/crates/re_types/src/archetypes/line_strips2d.rs
@@ -42,7 +42,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// .with_labels(["one strip here", "and one strip there"]),
/// )?;
///
-/// // TODO(#5521): log VisualBounds
+/// // TODO(#5521): log VisualBounds2D
///
/// Ok(())
/// }
diff --git a/crates/re_types/src/archetypes/points2d.rs b/crates/re_types/src/archetypes/points2d.rs
index 47928995bc072..a2b4df20574eb 100644
--- a/crates/re_types/src/archetypes/points2d.rs
+++ b/crates/re_types/src/archetypes/points2d.rs
@@ -43,7 +43,7 @@ use ::re_types_core::{DeserializationError, DeserializationResult};
/// .with_radii((0..10).map(|_| rng.gen::())),
/// )?;
///
-/// // TODO(#5521): log VisualBounds
+/// // TODO(#5521): log VisualBounds2D
///
/// Ok(())
/// }
diff --git a/crates/re_types/src/blueprint/archetypes/.gitattributes b/crates/re_types/src/blueprint/archetypes/.gitattributes
index 9349a1b6395ca..388a6ee2824d9 100644
--- a/crates/re_types/src/blueprint/archetypes/.gitattributes
+++ b/crates/re_types/src/blueprint/archetypes/.gitattributes
@@ -8,4 +8,4 @@ scalar_axis.rs linguist-generated=true
space_view_blueprint.rs linguist-generated=true
space_view_contents.rs linguist-generated=true
visible_time_ranges.rs linguist-generated=true
-visual_bounds.rs linguist-generated=true
+visual_bounds2d.rs linguist-generated=true
diff --git a/crates/re_types/src/blueprint/archetypes/mod.rs b/crates/re_types/src/blueprint/archetypes/mod.rs
index d6f30bda8fee1..de7f012204471 100644
--- a/crates/re_types/src/blueprint/archetypes/mod.rs
+++ b/crates/re_types/src/blueprint/archetypes/mod.rs
@@ -8,7 +8,7 @@ mod space_view_blueprint;
mod space_view_contents;
mod visible_time_ranges;
mod visible_time_ranges_ext;
-mod visual_bounds;
+mod visual_bounds2d;
pub use self::background::Background;
pub use self::plot_legend::PlotLegend;
@@ -16,4 +16,4 @@ pub use self::scalar_axis::ScalarAxis;
pub use self::space_view_blueprint::SpaceViewBlueprint;
pub use self::space_view_contents::SpaceViewContents;
pub use self::visible_time_ranges::VisibleTimeRanges;
-pub use self::visual_bounds::VisualBounds;
+pub use self::visual_bounds2d::VisualBounds2D;
diff --git a/crates/re_types/src/blueprint/archetypes/visual_bounds.rs b/crates/re_types/src/blueprint/archetypes/visual_bounds2d.rs
similarity index 57%
rename from crates/re_types/src/blueprint/archetypes/visual_bounds.rs
rename to crates/re_types/src/blueprint/archetypes/visual_bounds2d.rs
index e4b3eb5961bcd..9beedf88dc7d6 100644
--- a/crates/re_types/src/blueprint/archetypes/visual_bounds.rs
+++ b/crates/re_types/src/blueprint/archetypes/visual_bounds2d.rs
@@ -1,5 +1,5 @@
// DO NOT EDIT! This file was auto-generated by crates/re_types_builder/src/codegen/rust/api.rs
-// Based on "crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds.fbs".
+// Based on "crates/re_types/definitions/rerun/blueprint/archetypes/visual_bounds2d.fbs".
#![allow(trivial_numeric_casts)]
#![allow(unused_imports)]
@@ -22,64 +22,69 @@ use ::re_types_core::SerializationResult;
use ::re_types_core::{ComponentBatch, MaybeOwnedComponentBatch};
use ::re_types_core::{DeserializationError, DeserializationResult};
-/// **Archetype**: Controls the visual bounds of a 2D space view.
+/// **Archetype**: Controls the visual bounds of a 2D view.
+///
+/// Everything within these bounds are guaranteed to be visible.
+/// Somethings outside of these bounds may also be visible due to letterboxing.
+///
+/// If no visual bounds are set, it will be determined automatically,
+/// based on the bounding-box of the data or other camera information present in the view.
#[derive(Clone, Debug, Copy)]
-pub struct VisualBounds {
- /// The visible parts of a 2D space view, in the coordinate space of the scene.
+pub struct VisualBounds2D {
+ /// Controls the visible range of a 2D view.
///
- /// Everything within these bounds are guaranteed to be visible.
- /// Somethings outside of these bounds may also be visible due to letterboxing.
- pub range2d: Option,
+ /// Use this to control pan & zoom of the view.
+ pub range: crate::blueprint::components::VisualBounds2D,
}
-impl ::re_types_core::SizeBytes for VisualBounds {
+impl ::re_types_core::SizeBytes for VisualBounds2D {
#[inline]
fn heap_size_bytes(&self) -> u64 {
- self.range2d.heap_size_bytes()
+ self.range.heap_size_bytes()
}
#[inline]
fn is_pod() -> bool {
- >::is_pod()
+ ::is_pod()
}
}
-static REQUIRED_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 0usize]> =
- once_cell::sync::Lazy::new(|| []);
+static REQUIRED_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 1usize]> =
+ once_cell::sync::Lazy::new(|| ["rerun.blueprint.components.VisualBounds2D".into()]);
static RECOMMENDED_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 1usize]> =
- once_cell::sync::Lazy::new(|| ["rerun.blueprint.components.VisualBoundsIndicator".into()]);
+ once_cell::sync::Lazy::new(|| ["rerun.blueprint.components.VisualBounds2DIndicator".into()]);
-static OPTIONAL_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 1usize]> =
- once_cell::sync::Lazy::new(|| ["rerun.components.Range2D".into()]);
+static OPTIONAL_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 0usize]> =
+ once_cell::sync::Lazy::new(|| []);
static ALL_COMPONENTS: once_cell::sync::Lazy<[ComponentName; 2usize]> =
once_cell::sync::Lazy::new(|| {
[
- "rerun.blueprint.components.VisualBoundsIndicator".into(),
- "rerun.components.Range2D".into(),
+ "rerun.blueprint.components.VisualBounds2D".into(),
+ "rerun.blueprint.components.VisualBounds2DIndicator".into(),
]
});
-impl VisualBounds {
- /// The total number of components in the archetype: 0 required, 1 recommended, 1 optional
+impl VisualBounds2D {
+ /// The total number of components in the archetype: 1 required, 1 recommended, 0 optional
pub const NUM_COMPONENTS: usize = 2usize;
}
-/// Indicator component for the [`VisualBounds`] [`::re_types_core::Archetype`]
-pub type VisualBoundsIndicator = ::re_types_core::GenericIndicatorComponent;
+/// Indicator component for the [`VisualBounds2D`] [`::re_types_core::Archetype`]
+pub type VisualBounds2DIndicator = ::re_types_core::GenericIndicatorComponent;
-impl ::re_types_core::Archetype for VisualBounds {
- type Indicator = VisualBoundsIndicator;
+impl ::re_types_core::Archetype for VisualBounds2D {
+ type Indicator = VisualBounds2DIndicator;
#[inline]
fn name() -> ::re_types_core::ArchetypeName {
- "rerun.blueprint.archetypes.VisualBounds".into()
+ "rerun.blueprint.archetypes.VisualBounds2D".into()
}
#[inline]
fn indicator() -> MaybeOwnedComponentBatch<'static> {
- static INDICATOR: VisualBoundsIndicator = VisualBoundsIndicator::DEFAULT;
+ static INDICATOR: VisualBounds2DIndicator = VisualBounds2DIndicator::DEFAULT;
MaybeOwnedComponentBatch::Ref(&INDICATOR)
}
@@ -113,28 +118,30 @@ impl ::re_types_core::Archetype for VisualBounds {
.into_iter()
.map(|(name, array)| (name.full_name(), array))
.collect();
- let range2d = if let Some(array) = arrays_by_name.get("rerun.components.Range2D") {
- ::from_arrow_opt(&**array)
- .with_context("rerun.blueprint.archetypes.VisualBounds#range2d")?
+ let range = {
+ let array = arrays_by_name
+ .get("rerun.blueprint.components.VisualBounds2D")
+ .ok_or_else(DeserializationError::missing_data)
+ .with_context("rerun.blueprint.archetypes.VisualBounds2D#range")?;
+ ::from_arrow_opt(&**array)
+ .with_context("rerun.blueprint.archetypes.VisualBounds2D#range")?
.into_iter()
.next()
.flatten()
- } else {
- None
+ .ok_or_else(DeserializationError::missing_data)
+ .with_context("rerun.blueprint.archetypes.VisualBounds2D#range")?
};
- Ok(Self { range2d })
+ Ok(Self { range })
}
}
-impl ::re_types_core::AsComponents for VisualBounds {
+impl ::re_types_core::AsComponents for VisualBounds2D {
fn as_component_batches(&self) -> Vec> {
re_tracing::profile_function!();
use ::re_types_core::Archetype as _;
[
Some(Self::indicator()),
- self.range2d
- .as_ref()
- .map(|comp| (comp as &dyn ComponentBatch).into()),
+ Some((&self.range as &dyn ComponentBatch).into()),
]
.into_iter()
.flatten()
@@ -142,20 +149,12 @@ impl ::re_types_core::AsComponents for VisualBounds {
}
}
-impl VisualBounds {
- /// Create a new `VisualBounds`.
- #[inline]
- pub fn new() -> Self {
- Self { range2d: None }
- }
-
- /// The visible parts of a 2D space view, in the coordinate space of the scene.
- ///
- /// Everything within these bounds are guaranteed to be visible.
- /// Somethings outside of these bounds may also be visible due to letterboxing.
+impl VisualBounds2D {
+ /// Create a new `VisualBounds2D`.
#[inline]
- pub fn with_range2d(mut self, range2d: impl Into) -> Self {
- self.range2d = Some(range2d.into());
- self
+ pub fn new(range: impl Into) -> Self {
+ Self {
+ range: range.into(),
+ }
}
}
diff --git a/crates/re_types/src/blueprint/components/.gitattributes b/crates/re_types/src/blueprint/components/.gitattributes
index bcc6988a5622b..e3243dff3cb0a 100644
--- a/crates/re_types/src/blueprint/components/.gitattributes
+++ b/crates/re_types/src/blueprint/components/.gitattributes
@@ -16,3 +16,4 @@ space_view_origin.rs linguist-generated=true
viewer_recommendation_hash.rs linguist-generated=true
visible.rs linguist-generated=true
visible_time_range.rs linguist-generated=true
+visual_bounds2d.rs linguist-generated=true
diff --git a/crates/re_types/src/blueprint/components/mod.rs b/crates/re_types/src/blueprint/components/mod.rs
index 0f29a47819ee1..0d49749ea1d96 100644
--- a/crates/re_types/src/blueprint/components/mod.rs
+++ b/crates/re_types/src/blueprint/components/mod.rs
@@ -17,6 +17,8 @@ mod viewer_recommendation_hash_ext;
mod visible;
mod visible_ext;
mod visible_time_range;
+mod visual_bounds2d;
+mod visual_bounds2d_ext;
pub use self::active_tab::ActiveTab;
pub use self::background_kind::BackgroundKind;
@@ -32,3 +34,4 @@ pub use self::space_view_origin::SpaceViewOrigin;
pub use self::viewer_recommendation_hash::ViewerRecommendationHash;
pub use self::visible::Visible;
pub use self::visible_time_range::VisibleTimeRange;
+pub use self::visual_bounds2d::VisualBounds2D;
diff --git a/crates/re_types/src/components/range2d.rs b/crates/re_types/src/blueprint/components/visual_bounds2d.rs
similarity index 80%
rename from crates/re_types/src/components/range2d.rs
rename to crates/re_types/src/blueprint/components/visual_bounds2d.rs
index fe5711935f17e..6b22413abee2b 100644
--- a/crates/re_types/src/components/range2d.rs
+++ b/crates/re_types/src/blueprint/components/visual_bounds2d.rs
@@ -1,5 +1,5 @@
// DO NOT EDIT! This file was auto-generated by crates/re_types_builder/src/codegen/rust/api.rs
-// Based on "crates/re_types/definitions/rerun/components/range2d.fbs".
+// Based on "crates/re_types/definitions/rerun/blueprint/components/visual_bounds2d.fbs".
#![allow(trivial_numeric_casts)]
#![allow(unused_imports)]
@@ -22,12 +22,15 @@ use ::re_types_core::SerializationResult;
use ::re_types_core::{ComponentBatch, MaybeOwnedComponentBatch};
use ::re_types_core::{DeserializationError, DeserializationResult};
-/// **Component**: An Axis-Aligned Bounding Box in 2D space.
+/// **Component**: Visual bounds in 2D space used for `Spatial2DView`.
#[derive(Clone, Debug, Copy, PartialEq, bytemuck::Pod, bytemuck::Zeroable)]
#[repr(transparent)]
-pub struct Range2D(pub crate::datatypes::Range2D);
+pub struct VisualBounds2D(
+ /// X and y ranges that should be visible.
+ pub crate::datatypes::Range2D,
+);
-impl ::re_types_core::SizeBytes for Range2D {
+impl ::re_types_core::SizeBytes for VisualBounds2D {
#[inline]
fn heap_size_bytes(&self) -> u64 {
self.0.heap_size_bytes()
@@ -39,20 +42,20 @@ impl ::re_types_core::SizeBytes for Range2D {
}
}
-impl> From for Range2D {
+impl> From for VisualBounds2D {
fn from(v: T) -> Self {
Self(v.into())
}
}
-impl std::borrow::Borrow for Range2D {
+impl std::borrow::Borrow for VisualBounds2D {
#[inline]
fn borrow(&self) -> &crate::datatypes::Range2D {
&self.0
}
}
-impl std::ops::Deref for Range2D {
+impl std::ops::Deref for VisualBounds2D {
type Target = crate::datatypes::Range2D;
#[inline]
@@ -61,14 +64,14 @@ impl std::ops::Deref for Range2D {
}
}
-::re_types_core::macros::impl_into_cow!(Range2D);
+::re_types_core::macros::impl_into_cow!(VisualBounds2D);
-impl ::re_types_core::Loggable for Range2D {
+impl ::re_types_core::Loggable for VisualBounds2D {
type Name = ::re_types_core::ComponentName;
#[inline]
fn name() -> Self::Name {
- "rerun.components.Range2D".into()
+ "rerun.blueprint.components.VisualBounds2D".into()
}
#[allow(clippy::wildcard_imports)]
@@ -128,12 +131,12 @@ impl ::re_types_core::Loggable for Range2D {
use ::re_types_core::{Loggable as _, ResultExt as _};
use arrow2::{array::*, buffer::*, datatypes::*};
Ok(crate::datatypes::Range2D::from_arrow_opt(arrow_data)
- .with_context("rerun.components.Range2D#range2d")?
+ .with_context("rerun.blueprint.components.VisualBounds2D#range2d")?
.into_iter()
.map(|v| v.ok_or_else(DeserializationError::missing_data))
.map(|res| res.map(|v| Some(Self(v))))
.collect::>>>()
- .with_context("rerun.components.Range2D#range2d")
- .with_context("rerun.components.Range2D")?)
+ .with_context("rerun.blueprint.components.VisualBounds2D#range2d")
+ .with_context("rerun.blueprint.components.VisualBounds2D")?)
}
}
diff --git a/crates/re_types/src/blueprint/components/visual_bounds2d_ext.rs b/crates/re_types/src/blueprint/components/visual_bounds2d_ext.rs
new file mode 100644
index 0000000000000..658f3241e9625
--- /dev/null
+++ b/crates/re_types/src/blueprint/components/visual_bounds2d_ext.rs
@@ -0,0 +1,8 @@
+use super::VisualBounds2D;
+
+impl From for emath::Rect {
+ #[inline]
+ fn from(v: VisualBounds2D) -> Self {
+ Self::from(v.0)
+ }
+}
diff --git a/crates/re_types/src/blueprint/views/spatial2d_view.rs b/crates/re_types/src/blueprint/views/spatial2d_view.rs
index 06fdae7b4bbfe..f3ca9334da4a7 100644
--- a/crates/re_types/src/blueprint/views/spatial2d_view.rs
+++ b/crates/re_types/src/blueprint/views/spatial2d_view.rs
@@ -32,7 +32,7 @@ pub struct Spatial2DView {
///
/// Everything within these bounds are guaranteed to be visible.
/// Somethings outside of these bounds may also be visible due to letterboxing.
- pub visual_bounds: crate::blueprint::archetypes::VisualBounds,
+ pub visual_bounds: crate::blueprint::archetypes::VisualBounds2D,
/// Configures which range on each timeline is shown by this view (unless specified differently per entity).
///
@@ -52,7 +52,7 @@ impl ::re_types_core::SizeBytes for Spatial2DView {
#[inline]
fn is_pod() -> bool {
::is_pod()
- && ::is_pod()
+ &&