diff --git a/crates/store/re_chunk/src/batcher.rs b/crates/store/re_chunk/src/batcher.rs index db897b8267f5..29f0e038cdf4 100644 --- a/crates/store/re_chunk/src/batcher.rs +++ b/crates/store/re_chunk/src/batcher.rs @@ -1080,7 +1080,7 @@ mod tests { fn simple_static() -> anyhow::Result<()> { let batcher = ChunkBatcher::new(ChunkBatcherConfig::NEVER)?; - let timeless = TimePoint::default(); + let static_ = TimePoint::default(); let points1 = MyPoint::to_arrow([MyPoint::new(1.0, 2.0), MyPoint::new(3.0, 4.0)])?; let points2 = MyPoint::to_arrow([MyPoint::new(10.0, 20.0), MyPoint::new(30.0, 40.0)])?; @@ -1090,9 +1090,9 @@ mod tests { let components2 = [(MyPoint::descriptor(), points2.clone())]; let components3 = [(MyPoint::descriptor(), points3.clone())]; - let row1 = PendingRow::new(timeless.clone(), components1.into_iter().collect()); - let row2 = PendingRow::new(timeless.clone(), components2.into_iter().collect()); - let row3 = PendingRow::new(timeless.clone(), components3.into_iter().collect()); + let row1 = PendingRow::new(static_.clone(), components1.into_iter().collect()); + let row2 = PendingRow::new(static_.clone(), components2.into_iter().collect()); + let row3 = PendingRow::new(static_.clone(), components3.into_iter().collect()); let entity_path1: EntityPath = "a/b/c".into(); batcher.push_row(entity_path1.clone(), row1.clone()); diff --git a/crates/store/re_chunk_store/tests/correctness.rs b/crates/store/re_chunk_store/tests/correctness.rs index 794f6e5a2e1d..f08e1ac5ed21 100644 --- a/crates/store/re_chunk_store/tests/correctness.rs +++ b/crates/store/re_chunk_store/tests/correctness.rs @@ -130,7 +130,7 @@ fn row_id_ordering_semantics() -> anyhow::Result<()> { } // Static data has last-write-wins semantics, as defined by RowId-ordering. - // Timeless is RowId-ordered too! + // Static data is RowId-ordered too! // // * Insert static `point1` with a random `RowId`. // * Insert static `point2` using `point1`'s `RowId`, decremented by one. diff --git a/crates/store/re_entity_db/src/entity_tree.rs b/crates/store/re_entity_db/src/entity_tree.rs index 89b4ca6cdaf8..5f28d93ead64 100644 --- a/crates/store/re_entity_db/src/entity_tree.rs +++ b/crates/store/re_entity_db/src/entity_tree.rs @@ -58,8 +58,8 @@ pub struct CompactedStoreEvents { /// What time points were deleted for each entity+timeline+component? pub temporal: IntMap>>>, - /// For each entity+component, how many timeless entries were deleted? - pub timeless: IntMap>, + /// For each entity+component, how many static entries were deleted? + pub static_: IntMap>, } impl CompactedStoreEvents { @@ -70,13 +70,13 @@ impl CompactedStoreEvents { .flat_map(|event| event.chunk.row_ids()) .collect(), temporal: Default::default(), - timeless: Default::default(), + static_: Default::default(), }; for event in store_events { if event.is_static() { let per_component = this - .timeless + .static_ .entry(event.chunk.entity_path().hash()) .or_default(); for component_name in event.chunk.component_names() { diff --git a/crates/store/re_entity_db/src/time_histogram_per_timeline.rs b/crates/store/re_entity_db/src/time_histogram_per_timeline.rs index df28d5692700..241724659e64 100644 --- a/crates/store/re_entity_db/src/time_histogram_per_timeline.rs +++ b/crates/store/re_entity_db/src/time_histogram_per_timeline.rs @@ -12,10 +12,10 @@ pub type TimeHistogram = re_int_histogram::Int64Histogram; /// Number of messages per time per timeline. /// -/// Does NOT include timeless. +/// Does NOT include static data. #[derive(Default)] pub struct TimeHistogramPerTimeline { - /// When do we have data? Ignores timeless. + /// When do we have data? Ignores static data. times: BTreeMap, /// Extra bookkeeping used to seed any timelines that include static msgs. diff --git a/crates/store/re_log_types/src/time_point/time_int.rs b/crates/store/re_log_types/src/time_point/time_int.rs index 807869f74aaf..1d3fc6ad9893 100644 --- a/crates/store/re_log_types/src/time_point/time_int.rs +++ b/crates/store/re_log_types/src/time_point/time_int.rs @@ -43,7 +43,7 @@ impl TimeInt { /// It is illegal to create a [`TimeInt`] with that value in a temporal context. /// /// SDK users cannot log data at that timestamp explicitly, the only way to do so is to use - /// the timeless APIs. + /// the static APIs. pub const STATIC: Self = Self(None); /// Value used to represent the minimal temporal value a [`TimeInt`] can hold. diff --git a/crates/store/re_query/tests/latest_at.rs b/crates/store/re_query/tests/latest_at.rs index 79ccca3e957f..296c84a0370a 100644 --- a/crates/store/re_query/tests/latest_at.rs +++ b/crates/store/re_query/tests/latest_at.rs @@ -469,14 +469,14 @@ fn static_invalidation() { let entity_path = "points"; - let timeless = TimePoint::default(); + let static_ = TimePoint::default(); let query_time = [build_frame_nr(9999)]; let row_id1 = RowId::new(); let points = vec![MyPoint::new(1.0, 2.0), MyPoint::new(3.0, 4.0)]; let chunk = Chunk::builder(entity_path.into()) - .with_component_batches(row_id1, timeless.clone(), [&points as _]) + .with_component_batches(row_id1, static_.clone(), [&points as _]) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk)); @@ -498,7 +498,7 @@ fn static_invalidation() { let row_id2 = RowId::new(); let colors = vec![MyColor::from_rgb(255, 0, 0)]; let chunk = Chunk::builder(entity_path.into()) - .with_component_batches(row_id2, timeless.clone(), [&colors as _]) + .with_component_batches(row_id2, static_.clone(), [&colors as _]) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk)); @@ -520,7 +520,7 @@ fn static_invalidation() { let row_id3 = RowId::new(); let colors = vec![MyColor::from_rgb(0, 0, 255)]; let chunk = Chunk::builder(entity_path.into()) - .with_component_batches(row_id3, timeless.clone(), [&colors as _]) + .with_component_batches(row_id3, static_.clone(), [&colors as _]) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk)); diff --git a/crates/store/re_query/tests/range.rs b/crates/store/re_query/tests/range.rs index 1ee4cecbde95..48d1a8818b5d 100644 --- a/crates/store/re_query/tests/range.rs +++ b/crates/store/re_query/tests/range.rs @@ -187,7 +187,7 @@ fn static_range() -> anyhow::Result<()> { // --- Second test: `[timepoint1, timepoint3]` --- - // The inclusion of `timepoint1` means latest-at semantics will fall back to timeless data! + // The inclusion of `timepoint1` means latest-at semantics will fall back to static data! let query = RangeQuery::new( timepoint1[0].0, @@ -628,7 +628,7 @@ fn invalidation() { ); }; - let timeless = TimePoint::default(); + let static_ = TimePoint::default(); let frame_122 = build_frame_nr(122); let frame_123 = build_frame_nr(123); let frame_124 = build_frame_nr(124); @@ -643,7 +643,7 @@ fn invalidation() { test_invalidation( RangeQuery::new(frame_123.0, ResolvedTimeRange::EVERYTHING), [frame_123].into(), - timeless, + static_, [frame_124].into(), ); } @@ -683,7 +683,7 @@ fn invalidation_of_future_optionals() { let entity_path = "points"; - let timeless = TimePoint::default(); + let static_ = TimePoint::default(); let frame2 = [build_frame_nr(2)]; let frame3 = [build_frame_nr(3)]; @@ -692,7 +692,7 @@ fn invalidation_of_future_optionals() { let row_id1 = RowId::new(); let points1 = vec![MyPoint::new(1.0, 2.0), MyPoint::new(3.0, 4.0)]; let chunk1 = Chunk::builder(entity_path.into()) - .with_component_batch(row_id1, timeless, &points1) + .with_component_batch(row_id1, static_, &points1) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk1)); @@ -784,7 +784,7 @@ fn invalidation_static() { let entity_path = "points"; - let timeless = TimePoint::default(); + let static_ = TimePoint::default(); let frame0 = [build_frame_nr(TimeInt::ZERO)]; let query = RangeQuery::new(frame0[0].0, ResolvedTimeRange::EVERYTHING); @@ -792,7 +792,7 @@ fn invalidation_static() { let row_id1 = RowId::new(); let points1 = vec![MyPoint::new(1.0, 2.0), MyPoint::new(3.0, 4.0)]; let chunk1 = Chunk::builder(entity_path.into()) - .with_component_batch(row_id1, timeless.clone(), &points1) + .with_component_batch(row_id1, static_.clone(), &points1) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk1)); @@ -813,7 +813,7 @@ fn invalidation_static() { let row_id2 = RowId::new(); let colors2 = vec![MyColor::from_rgb(255, 0, 0)]; let chunk2 = Chunk::builder(entity_path.into()) - .with_component_batch(row_id2, timeless.clone(), &colors2) + .with_component_batch(row_id2, static_.clone(), &colors2) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk2)); @@ -833,7 +833,7 @@ fn invalidation_static() { let row_id3 = RowId::new(); let colors3 = vec![MyColor::from_rgb(0, 0, 255)]; let chunk3 = Chunk::builder(entity_path.into()) - .with_component_batch(row_id3, timeless, &colors3) + .with_component_batch(row_id3, static_, &colors3) .build() .unwrap(); insert_and_react(&mut store.write(), &mut caches, &Arc::new(chunk3)); diff --git a/crates/top/re_sdk/src/recording_stream.rs b/crates/top/re_sdk/src/recording_stream.rs index 22f4efb9bea9..d3880df771ed 100644 --- a/crates/top/re_sdk/src/recording_stream.rs +++ b/crates/top/re_sdk/src/recording_stream.rs @@ -1030,17 +1030,6 @@ impl RecordingStream { Ok(()) } - #[deprecated(since = "0.16.0", note = "use `log_static` instead")] - #[doc(hidden)] - #[inline] - pub fn log_timeless( - &self, - ent_path: impl Into, - arch: &AS, - ) -> RecordingStreamResult<()> { - self.log_static(ent_path, arch) - } - /// Log data to Rerun. /// /// It can be used to log anything @@ -1071,18 +1060,6 @@ impl RecordingStream { self.log_with_static(ent_path, true, as_components) } - #[deprecated(since = "0.16.0", note = "use `log_static` instead")] - #[doc(hidden)] - #[inline] - pub fn log_with_timeless( - &self, - ent_path: impl Into, - static_: bool, - arch: &AS, - ) -> RecordingStreamResult<()> { - self.log_with_static(ent_path, static_, arch) - } - /// Logs the contents of a [component bundle] into Rerun. /// /// If `static_` is set to `true`, all timestamp data associated with this message will be @@ -2585,14 +2562,14 @@ mod tests { .unwrap(); } - fn example_rows(timeless: bool) -> Vec { + fn example_rows(static_: bool) -> Vec { use re_log_types::example_components::{MyColor, MyLabel, MyPoint}; use re_types_core::{Component as _, Loggable}; let mut tick = 0i64; let mut timepoint = |frame_nr: i64| { let mut tp = TimePoint::default(); - if !timeless { + if !static_ { tp.insert(Timeline::log_time(), Time::now()); tp.insert(Timeline::log_tick(), tick); tp.insert(Timeline::new_sequence("frame_nr"), frame_nr); diff --git a/crates/viewer/re_selection_panel/src/visible_time_range_ui.rs b/crates/viewer/re_selection_panel/src/visible_time_range_ui.rs index 01a309723497..7adc0232a437 100644 --- a/crates/viewer/re_selection_panel/src/visible_time_range_ui.rs +++ b/crates/viewer/re_selection_panel/src/visible_time_range_ui.rs @@ -198,7 +198,7 @@ Notes: .time_i64() .unwrap_or_default() .at_least(*time_drag_value.range.start()), - ); // accounts for timeless time (TimeInt::MIN) + ); // accounts for static time (TimeInt::MIN) if *has_individual_time_range { let time_range = match query_range { diff --git a/docs/content/concepts/annotation-context.md b/docs/content/concepts/annotation-context.md index a70f22d224d3..2c42b7774e15 100644 --- a/docs/content/concepts/annotation-context.md +++ b/docs/content/concepts/annotation-context.md @@ -46,7 +46,7 @@ Keypoints are currently only applicable to 2D and 3D points. ### Logging an annotation context -Annotation Context is typically logged as [timeless](timelines.md#timeless-data) data, but can change over time if needed. +Annotation Context is typically logged as [static](timelines.md#static-data) data, but can change over time if needed. The Annotation Context is defined as a list of Class Descriptions that define how classes are styled (as well as optional keypoint style and connection). 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 1d651b2f8678..847b61056dc3 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 @@ -133,13 +133,13 @@ def main() -> None: for symbol in symbols: stock = yf.Ticker(symbol) - # Log the stock info document as timeless - rr.log(f"stocks/{symbol}/info", info_card(**stock.info), timeless=True) + # Log the stock info document as static + rr.log(f"stocks/{symbol}/info", info_card(**stock.info), static=True) for day in dates: - # Log the styling data as timeless - rr.log(f"stocks/{symbol}/{day}", style_plot(symbol), timeless=True) - rr.log(f"stocks/{symbol}/peaks/{day}", style_peak(symbol), timeless=True) + # Log the styling data as static + rr.log(f"stocks/{symbol}/{day}", style_plot(symbol), static=True) + rr.log(f"stocks/{symbol}/peaks/{day}", style_peak(symbol), static=True) # Query the stock data during market hours open_time = dt.datetime.combine(day, dt.time(9, 30), et_timezone) diff --git a/docs/content/howto/integrations/ros2-nav-turtlebot.md b/docs/content/howto/integrations/ros2-nav-turtlebot.md index aedd1b42478a..122d83fad203 100644 --- a/docs/content/howto/integrations/ros2-nav-turtlebot.md +++ b/docs/content/howto/integrations/ros2-nav-turtlebot.md @@ -443,7 +443,7 @@ if node_data: translation=world_from_mesh[3, 0:3], mat3x3=world_from_mesh[0:3, 0:3], ), - timeless=timeless, + static=static, ) @@ -459,7 +459,7 @@ if node_data: vertex_normals=mesh.vertex_normals, albedo_factor=albedo_factor, ), - timeless=timeless, + static=static, ) ``` diff --git a/examples/README.md b/examples/README.md index bd09426af196..d2d718a2cf5e 100644 --- a/examples/README.md +++ b/examples/README.md @@ -33,7 +33,7 @@ Check out [`examples/python/template/README.md`](python/template/README.md) to s You are also encourage to add a _short_ `DESCRIPTION = """…"""` markdown to the top of the `main.py` and then log it with: ```py -rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) +rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) ``` ## Adding a new example diff --git a/examples/cpp/external_data_loader/main.cpp b/examples/cpp/external_data_loader/main.cpp index fb79a9d5e2f9..e30eac7b8b1b 100644 --- a/examples/cpp/external_data_loader/main.cpp +++ b/examples/cpp/external_data_loader/main.cpp @@ -69,7 +69,6 @@ file with Rerun (`rerun file.cpp`). ("application-id", "Optional recommended ID for the application", cxxopts::value()) ("recording-id", "Optional recommended ID for the recording", cxxopts::value()) ("entity-path-prefix", "Optional prefix for all entity paths", cxxopts::value()) - ("timeless", "Deprecated: alias for `--static`", cxxopts::value()->default_value("false")) ("static", "Optionally mark data to be logged as static", cxxopts::value()->default_value("false")) ("time", "Optional timestamps to log at (e.g. `--time sim_time=1709203426`) (repeatable)", cxxopts::value>()) ("sequence", "Optional sequences to log at (e.g. `--sequence sim_frame=42`) (repeatable)", cxxopts::value>()) @@ -121,7 +120,7 @@ file with Rerun (`rerun file.cpp`). } rec.log_with_static( entity_path, - args["static"].as() || args["timeless"].as(), + args["static"].as(), rerun::TextDocument(text).with_media_type(rerun::MediaType::markdown()) ); } diff --git a/examples/cpp/ros2_bridge/README.md b/examples/cpp/ros2_bridge/README.md index 292f557b7ce8..ea406ceb91f5 100644 --- a/examples/cpp/ros2_bridge/README.md +++ b/examples/cpp/ros2_bridge/README.md @@ -14,7 +14,7 @@ https://vimeo.com/940929187?autoplay=1&loop=1&autopause=0&background=1&muted=1&r This is an example that shows how to use Rerun's C++ API to log and visualize [ROS 2](https://www.ros.org/) messages. -It works by subscribing to all topics with supported types, converting the messages, and logging the data to Rerun. It further allows to remap topic names to specific entity paths, specify additional timeless transforms, and pinhole parameters via an external config file. See the [launch](https://github.com/rerun-io/cpp-example-ros2-bridge/tree/main/rerun_bridge/launch) directory for usage examples. +It works by subscribing to all topics with supported types, converting the messages, and logging the data to Rerun. It further allows to remap topic names to specific entity paths, specify additional static transforms, and pinhole parameters via an external config file. See the [launch](https://github.com/rerun-io/cpp-example-ros2-bridge/tree/main/rerun_bridge/launch) directory for usage examples. ## Run the code diff --git a/examples/cpp/ros_bridge/README.md b/examples/cpp/ros_bridge/README.md index 7c808a88a771..8702806d8335 100644 --- a/examples/cpp/ros_bridge/README.md +++ b/examples/cpp/ros_bridge/README.md @@ -12,7 +12,7 @@ A proof-of-concept Rerun bridge for ROS 1 that subscribes to all supported topic This is an example that shows how to use Rerun's C++ API to log and visualize [ROS](https://www.ros.org/) messages. -It works by subscribing to all topics with supported types, converting the messages, and logging the data to Rerun. It further allows to remap topic names to specific entity paths, specify additional timeless transforms, and pinhole parameters via an external config file. See the [launch](https://github.com/rerun-io/cpp-example-ros-bridge/tree/main/rerun_bridge/launch) directory for usage examples. +It works by subscribing to all topics with supported types, converting the messages, and logging the data to Rerun. It further allows to remap topic names to specific entity paths, specify additional static transforms, and pinhole parameters via an external config file. See the [launch](https://github.com/rerun-io/cpp-example-ros-bridge/tree/main/rerun_bridge/launch) directory for usage examples. diff --git a/examples/cpp/vrs/README.md b/examples/cpp/vrs/README.md index 50a4f1c2586d..31977c49dfe8 100644 --- a/examples/cpp/vrs/README.md +++ b/examples/cpp/vrs/README.md @@ -77,7 +77,7 @@ _rec->log( ## Text document ```cpp -_rec->log_timeless(_entity_path + "/configuration", rerun::TextDocument(layout_str)); +_rec->log_static(_entity_path + "/configuration", rerun::TextDocument(layout_str)); ``` # Run the code diff --git a/examples/python/arkit_scenes/README.md b/examples/python/arkit_scenes/README.md index 19734bbe6ce8..e987a80646cf 100644 --- a/examples/python/arkit_scenes/README.md +++ b/examples/python/arkit_scenes/README.md @@ -52,10 +52,10 @@ rr.log( vertex_colors=mesh.visual.vertex_colors, triangle_indices=mesh.faces, ), - timeless=True, + static=True, ) ``` -Here, the mesh is logged to the world/mesh entity and is marked as timeless, since it does not change in the context of this visualization. +Here, the mesh is logged to the world/mesh entity and is marked as static, since it does not change in the context of this visualization. ### Logging 3D bounding boxes Here we loop through the data and add bounding boxes to all the items found. @@ -70,7 +70,7 @@ for i, label_info in enumerate(annotation["data"]): colors=colors[i], ), rr.InstancePoses3D(mat3x3=mat3x3), - timeless=True, + static=True, ) ``` diff --git a/examples/python/blueprint_stocks/blueprint_stocks.py b/examples/python/blueprint_stocks/blueprint_stocks.py index 3432228baaf1..ead08e82ed30 100755 --- a/examples/python/blueprint_stocks/blueprint_stocks.py +++ b/examples/python/blueprint_stocks/blueprint_stocks.py @@ -173,8 +173,8 @@ def main() -> None: # In a future blueprint release, this can move into the blueprint as well for symbol in symbols: for day in dates: - rr.log(f"stocks/{symbol}/{day}", style_plot(symbol), timeless=True) - rr.log(f"stocks/{symbol}/peaks/{day}", style_peak(symbol), timeless=True) + rr.log(f"stocks/{symbol}/{day}", style_plot(symbol), static=True) + rr.log(f"stocks/{symbol}/peaks/{day}", style_peak(symbol), static=True) for symbol in symbols: stock = yf.Ticker(symbol) @@ -194,7 +194,7 @@ def main() -> None: rr.log( f"stocks/{symbol}/info", rr.TextDocument(info_md, media_type=rr.MediaType.MARKDOWN), - timeless=True, + static=True, ) for day in dates: diff --git a/examples/python/clock/README.md b/examples/python/clock/README.md index 9e9fa236144c..c53bce098a58 100644 --- a/examples/python/clock/README.md +++ b/examples/python/clock/README.md @@ -29,7 +29,7 @@ The clock's frame is logged as a 3D box using [`Boxes3D`](https://www.rerun.io/d rr.log( "world/frame", rr.Boxes3D(half_sizes=[LENGTH_S, LENGTH_S, 1.0], centers=[0.0, 0.0, 0.0]), - timeless=True, + static=True, ) ``` diff --git a/examples/python/controlnet/README.md b/examples/python/controlnet/README.md index a330765676cc..600699e43125 100644 --- a/examples/python/controlnet/README.md +++ b/examples/python/controlnet/README.md @@ -30,19 +30,19 @@ The visualizations in this example were created with the following Rerun code. ### Images ```python -rr.log("input/raw", rr.Image(image), timeless=True) -rr.log("input/canny", rr.Image(canny_image), timeless=True) +rr.log("input/raw", rr.Image(image), static=True) +rr.log("input/canny", rr.Image(canny_image), static=True) ``` -The input image and control canny_image are marked as timeless and logged in rerun. +The input image and control canny_image are marked as static and logged in rerun. -Timeless entities belong to all timelines (existing ones, and ones not yet created) and are shown leftmost in the time panel in the viewer. This is useful for entities that aren't part of normal data capture, but set the scene for how they are shown. +Static entities belong to all timelines (existing ones, and ones not yet created) and are shown leftmost in the time panel in the viewer. This is useful for entities that aren't part of normal data capture, but set the scene for how they are shown. This designation ensures their constant availability across all timelines in Rerun, aiding in consistent comparison and documentation. ### Prompts ```python -rr.log("positive_prompt", rr.TextDocument(prompt), timeless=True) -rr.log("negative_prompt", rr.TextDocument(negative_prompt), timeless=True) +rr.log("positive_prompt", rr.TextDocument(prompt), static=True) +rr.log("negative_prompt", rr.TextDocument(negative_prompt), static=True) ``` The positive and negative prompt used for generation is logged to Rerun. diff --git a/examples/python/detect_and_track_objects/README.md b/examples/python/detect_and_track_objects/README.md index b42feeb5d6e7..a2f0827bd281 100644 --- a/examples/python/detect_and_track_objects/README.md +++ b/examples/python/detect_and_track_objects/README.md @@ -80,7 +80,7 @@ rr.log( The color and label for each class is determined by the [`AnnotationContext`](https://www.rerun.io/docs/reference/types/archetypes/annotation_context) which is -logged to the root entity using `rr.log("/", …, timeless=True)` as it should apply to the whole sequence and all +logged to the root entity using `rr.log("/", …, static=True)` as it should apply to the whole sequence and all entities that have a class id. ```python @@ -88,7 +88,7 @@ class_descriptions = [ rr.AnnotationInfo(id=cat["id"], color=cat["color"], label rr.log( "/", rr.AnnotationContext(class_descriptions), - timeless=True + static=True ) ``` diff --git a/examples/python/external_data_loader/rerun-loader-python-file.py b/examples/python/external_data_loader/rerun-loader-python-file.py index ac05af371970..dd759a75e92c 100755 --- a/examples/python/external_data_loader/rerun-loader-python-file.py +++ b/examples/python/external_data_loader/rerun-loader-python-file.py @@ -35,7 +35,6 @@ parser.add_argument("--application-id", type=str, help="optional recommended ID for the application") parser.add_argument("--recording-id", type=str, help="optional recommended ID for the recording") parser.add_argument("--entity-path-prefix", type=str, help="optional prefix for all entity paths") -parser.add_argument("--timeless", action="store_true", default=False, help="deprecated: alias for `--static`") parser.add_argument("--static", action="store_true", default=False, help="optionally mark data to be logged as static") parser.add_argument( "--time", @@ -77,13 +76,11 @@ def main() -> None: with open(args.filepath, encoding="utf8") as file: body = file.read() text = f"""## Some Python code\n```python\n{body}\n```\n""" - rr.log( - entity_path, rr.TextDocument(text, media_type=rr.MediaType.MARKDOWN), static=args.static or args.timeless - ) + rr.log(entity_path, rr.TextDocument(text, media_type=rr.MediaType.MARKDOWN), static=args.static) def set_time_from_args() -> None: - if not args.timeless and args.time is not None: + if not args.static and args.time is not None: for time_str in args.time: parts = time_str.split("=") if len(parts) != 2: diff --git a/examples/python/face_tracking/README.md b/examples/python/face_tracking/README.md index bf3be0780a6c..0d3459112cd3 100644 --- a/examples/python/face_tracking/README.md +++ b/examples/python/face_tracking/README.md @@ -53,7 +53,7 @@ Logging the face landmarks involves specifying connections between the points, e The 2D points are visualized over the video/image for a better understanding and visualization of the face. The 3D points allows the creation of a 3D model of the face reconstruction for a more comprehensive representation of the face. -The 2D and 3D points are logged through a combination of two archetypes. First, a timeless +The 2D and 3D points are logged through a combination of two archetypes. First, a static [`ClassDescription`](https://www.rerun.io/docs/reference/types/datatypes/class_description) is logged, that contains the information which maps keypoint ids to labels and how to connect the keypoints. Defining these connections automatically renders lines between them. Second, the actual keypoint positions are logged in 2D and 3D as [`Points2D`](https://www.rerun.io/docs/reference/types/archetypes/points2d) and [`Points3D`](https://www.rerun.io/docs/reference/types/archetypes/points3d) archetypes, respectively. @@ -101,10 +101,10 @@ for i, klass in enumerate(classes): ) # Log annotation context for video/landmarker and reconstruction entities -rr.log("video/landmarker", rr.AnnotationContext(class_descriptions), timeless=True) -rr.log("reconstruction", rr.AnnotationContext(class_descriptions), timeless=True) +rr.log("video/landmarker", rr.AnnotationContext(class_descriptions), static=True) +rr.log("reconstruction", rr.AnnotationContext(class_descriptions), static=True) -rr.log("reconstruction", rr.ViewCoordinates.RDF, timeless=True) # properly align the 3D face in the viewer +rr.log("reconstruction", rr.ViewCoordinates.RDF, static=True) # properly align the 3D face in the viewer ``` With the below annotation, the keypoints will be connected with lines to enhance visibility in the `video/detector` entity. @@ -114,7 +114,7 @@ rr.log( rr.ClassDescription( info=rr.AnnotationInfo(id=0), keypoint_connections=[(0, 1), (1, 2), (2, 0), (2, 3), (0, 4), (1, 5)] ), - timeless=True, + static=True, ) ``` #### Bounding box diff --git a/examples/python/human_pose_tracking/README.md b/examples/python/human_pose_tracking/README.md index 0578cb7a7c63..c7ed57b9c412 100644 --- a/examples/python/human_pose_tracking/README.md +++ b/examples/python/human_pose_tracking/README.md @@ -83,7 +83,7 @@ rr.log("video/mask", rr.SegmentationImage(binary_segmentation_mask.astype(np.uin ### Body pose points Logging the body pose as a skeleton involves specifying the connectivity of its keypoints (i.e., pose landmarks), extracting the pose landmarks, and logging them as points to Rerun. In this example, both the 2D and 3D estimates from Mediapipe are visualized. -The skeletons are logged through a combination of two archetypes. First, a timeless +The skeletons are logged through a combination of two archetypes. First, a static [`ClassDescription`](https://www.rerun.io/docs/reference/types/datatypes/class_description) is logged, that contains the information which maps keypoint ids to labels and how to connect the keypoints. By defining these connections Rerun will automatically add lines between them. Mediapipe provides the `POSE_CONNECTIONS` variable which contains the list of `(from, to)` landmark indices that define the connections. Second, the actual keypoint positions are logged in 2D and 3D as [`Points2D`](https://www.rerun.io/docs/reference/types/archetypes/points2d) and diff --git a/examples/python/live_depth_sensor/README.md b/examples/python/live_depth_sensor/README.md index 515fdb380685..a7e4a7bfb9e4 100644 --- a/examples/python/live_depth_sensor/README.md +++ b/examples/python/live_depth_sensor/README.md @@ -31,7 +31,7 @@ Additionally, to provide a 3D view, the visualization includes a pinhole camera The visualization in this example were created with the following Rerun code. ```python -rr.log("realsense", rr.ViewCoordinates.RDF, timeless=True) # Visualize the data as RDF +rr.log("realsense", rr.ViewCoordinates.RDF, static=True) # Visualize the data as RDF ``` @@ -51,7 +51,7 @@ rr.log( mat3x3=np.reshape(rgb_from_depth.rotation, (3, 3)), from_parent=True, ), - timeless=True, + static=True, ) ``` @@ -63,7 +63,7 @@ rr.log( focal_length=[rgb_intr.fx, rgb_intr.fy], principal_point=[rgb_intr.ppx, rgb_intr.ppy], ), - timeless=True, + static=True, ) ``` ```python @@ -83,7 +83,7 @@ rr.log( focal_length=[depth_intr.fx, depth_intr.fy], principal_point=[depth_intr.ppx, depth_intr.ppy], ), - timeless=True, + static=True, ) ``` ```python diff --git a/examples/python/nuscenes_dataset/README.md b/examples/python/nuscenes_dataset/README.md index e122dc8a9830..713ad58ba48b 100644 --- a/examples/python/nuscenes_dataset/README.md +++ b/examples/python/nuscenes_dataset/README.md @@ -43,7 +43,7 @@ rr.log( rotation=rr.Quaternion(xyzw=rotation_xyzw), from_parent=False, ), - timeless=True, + static=True, ) ``` @@ -55,7 +55,7 @@ rr.log( width=sample_data["width"], height=sample_data["height"], ), - timeless=True, + static=True, ) ``` diff --git a/examples/python/nuscenes_dataset/nuscenes_dataset/__main__.py b/examples/python/nuscenes_dataset/nuscenes_dataset/__main__.py index 8f4e7f446efd..a19e524e61e0 100755 --- a/examples/python/nuscenes_dataset/nuscenes_dataset/__main__.py +++ b/examples/python/nuscenes_dataset/nuscenes_dataset/__main__.py @@ -354,7 +354,7 @@ def main() -> None: rr.log( "description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), - timeless=True, + static=True, ) log_nuscenes(nusc, args.scene_name, max_time_sec=args.seconds) diff --git a/examples/python/objectron/README.md b/examples/python/objectron/README.md index 3efa643d0d10..6078c0c9a524 100644 --- a/examples/python/objectron/README.md +++ b/examples/python/objectron/README.md @@ -87,7 +87,7 @@ rr.log( colors=[160, 230, 130, 255], labels=bbox.category, ), - timeless=True, + static=True, ) ``` diff --git a/examples/python/open_photogrammetry_format/README.md b/examples/python/open_photogrammetry_format/README.md index 88a174f7810d..bbd1421fa81c 100644 --- a/examples/python/open_photogrammetry_format/README.md +++ b/examples/python/open_photogrammetry_format/README.md @@ -70,7 +70,7 @@ rr.log("world/cameras/image/rgb", rr.Image(np.array(img)).compress(jpeg_quality= Point clouds from the project are logged as [`Points3D`](https://www.rerun.io/docs/reference/types/archetypes/points3d) archetype to the `world/points` entity. ```python -rr.log("world/points", rr.Points3D(points.position, colors=points.color), timeless=True) +rr.log("world/points", rr.Points3D(points.position, colors=points.color), static=True) ``` diff --git a/examples/python/open_photogrammetry_format/open_photogrammetry_format.py b/examples/python/open_photogrammetry_format/open_photogrammetry_format.py index 9d32b31ef8f5..3cc7959c01df 100755 --- a/examples/python/open_photogrammetry_format/open_photogrammetry_format.py +++ b/examples/python/open_photogrammetry_format/open_photogrammetry_format.py @@ -230,7 +230,7 @@ def main() -> None: # display everything in Rerun rr.script_setup(args, "rerun_example_open_photogrammetry_format") - rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) rr.log("world", rr.ViewCoordinates.RIGHT_HAND_Z_UP, static=True) project.log_point_cloud() project.log_calibrated_cameras(jpeg_quality=args.jpeg_quality) diff --git a/examples/python/plots/README.md b/examples/python/plots/README.md index 85ae761b609f..5386ff08ff06 100644 --- a/examples/python/plots/README.md +++ b/examples/python/plots/README.md @@ -52,7 +52,7 @@ It also adjusts the width and color of the plotted line based on the calculated ```python def log_parabola() -> None: # Name never changes, log it only once. - rr.log("curves/parabola", rr.SeriesLine(name="f(t) = (0.01t - 3)³ + 1"), timeless=True) + rr.log("curves/parabola", rr.SeriesLine(name="f(t) = (0.01t - 3)³ + 1"), static=True) # Log a parabola as a time series for t in range(0, 1000, 10): @@ -76,9 +76,9 @@ Then, it iterates over a range of time steps, calculates the sin and cos values ```python def log_trig() -> None: - # Styling doesn't change over time, log it once with timeless=True. - rr.log("trig/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), timeless=True) - rr.log("trig/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), timeless=True) + # Styling doesn't change over time, log it once with static=True. + rr.log("trig/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), static=True) + rr.log("trig/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), static=True) for t in range(0, int(tau * 2 * 100.0)): rr.set_time_sequence("frame_nr", t) @@ -101,7 +101,7 @@ Additionally, it generates random samples around the line function and logs them ```python def log_classification() -> None: # Log components that don't change only once: - rr.log("classification/line", rr.SeriesLine(color=[255, 255, 0], width=3.0), timeless=True) + rr.log("classification/line", rr.SeriesLine(color=[255, 255, 0], width=3.0), static=True) for t in range(0, 1000, 2): rr.set_time_sequence("frame_nr", t) diff --git a/examples/python/raw_mesh/raw_mesh/__main__.py b/examples/python/raw_mesh/raw_mesh/__main__.py index 200bdd039e2c..aff8969d82ce 100755 --- a/examples/python/raw_mesh/raw_mesh/__main__.py +++ b/examples/python/raw_mesh/raw_mesh/__main__.py @@ -134,7 +134,7 @@ def main() -> None: ) rr.script_setup(args, "rerun_example_raw_mesh", default_blueprint=blueprint) - rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) # glTF always uses a right-handed coordinate system when +Y is up and meshes face +Z. rr.log(root, rr.ViewCoordinates.RUB, static=True) diff --git a/examples/python/rgbd/rgbd.py b/examples/python/rgbd/rgbd.py index cf8bf88f770a..e796bc3bfc48 100755 --- a/examples/python/rgbd/rgbd.py +++ b/examples/python/rgbd/rgbd.py @@ -199,7 +199,7 @@ def main() -> None: recording_path = ensure_recording_downloaded(args.recording) - rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) log_nyud_data( recording_path=recording_path, diff --git a/examples/python/rrt_star/rrt_star.py b/examples/python/rrt_star/rrt_star.py index 3289426f2aa1..9c5d5dc0d2f8 100755 --- a/examples/python/rrt_star/rrt_star.py +++ b/examples/python/rrt_star/rrt_star.py @@ -283,7 +283,7 @@ def main() -> None: end_point = np.array([1.8, 0.5]) rr.set_time_sequence("step", 0) - rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) rr.log( "map/start", rr.Points2D([start_point], radii=0.02, colors=[[255, 255, 255, 255]]), diff --git a/examples/python/segment_anything_model/segment_anything_model.py b/examples/python/segment_anything_model/segment_anything_model.py index 57540b15e405..e3b2a78a9b12 100755 --- a/examples/python/segment_anything_model/segment_anything_model.py +++ b/examples/python/segment_anything_model/segment_anything_model.py @@ -188,7 +188,7 @@ def main() -> None: logging.getLogger().addHandler(rr.LoggingHandler("logs")) logging.getLogger().setLevel(logging.INFO) - rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("description", rr.TextDocument(DESCRIPTION, media_type=rr.MediaType.MARKDOWN), static=True) sam = create_sam(args.model, args.device) diff --git a/examples/python/signed_distance_fields/README.md b/examples/python/signed_distance_fields/README.md index df9a256b2135..0da0c42604fd 100644 --- a/examples/python/signed_distance_fields/README.md +++ b/examples/python/signed_distance_fields/README.md @@ -51,7 +51,7 @@ The sampled points and their corresponding signed distances are visualized using ```python # Points inside the object are highlighted in red, while those outside are marked in green. -rr.log("world/sdf", rr.AnnotationContext([(0, "inside", (255, 0, 0)), (1, "outside", (0, 255, 0))]), timeless=False) +rr.log("world/sdf", rr.AnnotationContext([(0, "inside", (255, 0, 0)), (1, "outside", (0, 255, 0))]), static=False) ``` ```python diff --git a/examples/rust/external_data_loader/src/main.rs b/examples/rust/external_data_loader/src/main.rs index eb30e655b2dc..5c8ab5527e14 100644 --- a/examples/rust/external_data_loader/src/main.rs +++ b/examples/rust/external_data_loader/src/main.rs @@ -41,13 +41,9 @@ struct Args { #[argh(option)] entity_path_prefix: Option, - /// deprecated: alias for `--static` - #[argh(switch)] - timeless: bool, - /// optionally mark data to be logged statically #[argh(arg_name = "static", switch)] - statically: bool, + static_: bool, /// optional timestamps to log at (e.g. `--time sim_time=1709203426`) (repeatable) #[argh(option)] @@ -105,7 +101,7 @@ fn main() -> anyhow::Result<()> { rec.log_with_static( entity_path_prefix.join(&rerun::EntityPath::from_file_path(&args.filepath)), - args.statically || args.timeless, + args.static_, &rerun::TextDocument::from_markdown(text), )?; diff --git a/rerun_cpp/src/rerun/recording_stream.hpp b/rerun_cpp/src/rerun/recording_stream.hpp index f07549fde1e7..88f68415373d 100644 --- a/rerun_cpp/src/rerun/recording_stream.hpp +++ b/rerun_cpp/src/rerun/recording_stream.hpp @@ -364,13 +364,6 @@ namespace rerun { try_log_with_static(entity_path, false, archetypes_or_collections...).handle(); } - template - [[deprecated("Use `log_static` instead")]] void log_timeless( - std::string_view entity_path, const Ts&... archetypes_or_collections - ) const { - return log_static(entity_path, archetypes_or_collections...); - } - /// Logs one or more archetype and/or component batches as static data. /// /// Like `log` but logs the data as static: @@ -411,13 +404,6 @@ namespace rerun { return try_log_with_static(entity_path, false, archetypes_or_collections...); } - template - [[deprecated("Use `try_log_static` instead")]] Error try_log_timeless( - std::string_view entity_path, const Ts&... archetypes_or_collections - ) const { - return try_log_static(entity_path, archetypes_or_collections...); - } - /// Logs one or more archetype and/or component batches as static data, returning an error. /// /// See `log`/`log_static` for more information. @@ -438,13 +424,6 @@ namespace rerun { return try_log_with_static(entity_path, true, archetypes_or_collections...); } - template - [[deprecated("Use `log_with_static` instead")]] void log_with_timeless( - std::string_view entity_path, bool timeless, const Ts&... archetypes_or_collections - ) const { - return log_with_static(entity_path, timeless, archetypes_or_collections...); - } - /// Logs one or more archetype and/or component batches optionally static, returning an error. /// /// See `log`/`log_static` for more information. @@ -467,13 +446,6 @@ namespace rerun { try_log_with_static(entity_path, static_, archetypes_or_collections...).handle(); } - template - [[deprecated("Use `try_log_with_static` instead")]] Error try_log_with_timeless( - std::string_view entity_path, bool static_, const Ts&... archetypes_or_collections - ) const { - return try_log_with_static(entity_path, static_, archetypes_or_collections...); - } - /// Logs one or more archetype and/or component batches optionally static, returning an error. /// /// See `log`/`log_static` for more information. diff --git a/rerun_cpp/tests/recording_stream.cpp b/rerun_cpp/tests/recording_stream.cpp index 17feb9124a71..c1e77db5ebf5 100644 --- a/rerun_cpp/tests/recording_stream.cpp +++ b/rerun_cpp/tests/recording_stream.cpp @@ -571,7 +571,7 @@ SCENARIO("RecordingStream can set time without errors", TEST_TAG) { } // Regression test for https://github.com/rerun-io/cpp-example-opencv-eigen/issues/25 -SCENARIO("Deprecated log_timeless still works", TEST_TAG) { +SCENARIO("Deprecated log_static still works", TEST_TAG) { rerun::RecordingStream stream("test"); // Disable deprecation warnings for this test since this is testing deprecated functionality. @@ -584,11 +584,11 @@ SCENARIO("Deprecated log_timeless still works", TEST_TAG) { rerun::components::Position2D{1.0, 2.0}, rerun::components::Position2D{4.0, 5.0}, }; - stream.log_timeless("as-initializer-list", c_style_array); + stream.log_static("as-initializer-list", c_style_array); } THEN("components as std::array can be logged") { - stream.log_timeless( + stream.log_static( "as-array", std::array{ rerun::Vec2D{1.0, 2.0}, @@ -598,7 +598,7 @@ SCENARIO("Deprecated log_timeless still works", TEST_TAG) { } THEN("components as std::vector can be logged") { - stream.log_timeless( + stream.log_static( "as-vector", std::vector{ rerun::Vec2D{1.0, 2.0}, @@ -613,7 +613,7 @@ SCENARIO("Deprecated log_timeless still works", TEST_TAG) { rerun::Text("friend"), rerun::Text("yo"), }; - stream.log_timeless( + stream.log_static( "as-mix", std::vector{ rerun::Position2D(rerun::Vec2D{0.0, 0.0}), @@ -630,7 +630,7 @@ SCENARIO("Deprecated log_timeless still works", TEST_TAG) { } THEN("components with splatting some of them can be logged") { - stream.log_timeless( + stream.log_static( "log-splat", std::vector{ rerun::Position2D(rerun::Vec2D{0.0, 0.0}), @@ -641,7 +641,7 @@ SCENARIO("Deprecated log_timeless still works", TEST_TAG) { } THEN("an archetype can be logged") { - stream.log_timeless( + stream.log_static( "log_archetype-splat", rerun::Points2D({rerun::Vec2D{1.0, 2.0}, rerun::Vec2D{4.0, 5.0}} ).with_colors(rerun::Color(0xFF0000FF)) diff --git a/rerun_py/rerun_sdk/rerun/_log.py b/rerun_py/rerun_sdk/rerun/_log.py index b624e2ab3090..1cc96a0e6304 100644 --- a/rerun_py/rerun_sdk/rerun/_log.py +++ b/rerun_py/rerun_sdk/rerun/_log.py @@ -52,7 +52,6 @@ def log( entity_path: str | list[str], entity: AsComponents | Iterable[ComponentBatchLike], *extra: AsComponents | Iterable[ComponentBatchLike], - timeless: bool = False, static: bool = False, recording: RecordingStream | None = None, strict: bool | None = None, @@ -110,9 +109,6 @@ def log( An arbitrary number of additional component bundles implementing the [`rerun.AsComponents`][] interface, that are logged to the same entity path. - timeless: - Deprecated. Refer to `static` instead. - static: If true, the components will be logged as static data. @@ -135,15 +131,6 @@ def log( """ - if timeless is True: - import warnings - - warnings.warn( - message=("`timeless` is deprecated as an argument to `log`; prefer `static` instead"), - category=DeprecationWarning, - ) - static = True - # TODO(jleibs): Profile is_instance with runtime_checkable vs has_attr # Note from: https://docs.python.org/3/library/typing.html#typing.runtime_checkable # @@ -185,7 +172,6 @@ def log_components( entity_path: str | list[str], components: Iterable[ComponentBatchLike], *, - timeless: bool = False, static: bool = False, recording: RecordingStream | None = None, strict: bool | None = None, @@ -211,9 +197,6 @@ def log_components( components: A collection of `ComponentBatchLike` objects. - timeless: - Deprecated. Refer to `static` instead. - static: If true, the components will be logged as static data. @@ -236,15 +219,6 @@ def log_components( """ - if timeless is True: - import warnings - - warnings.warn( - message=("`timeless` is deprecated as an argument to `log`; prefer `static` instead"), - category=DeprecationWarning, - ) - static = True - instanced: dict[ComponentDescriptor, pa.Array] = {} components = list(components) @@ -291,7 +265,6 @@ def log_file_from_path( *, entity_path_prefix: str | None = None, static: bool = False, - timeless: bool = False, recording: RecordingStream | None = None, ) -> None: r""" @@ -312,9 +285,6 @@ def log_file_from_path( entity_path_prefix: What should the logged entity paths be prefixed with? - timeless: - Deprecated. Refer to `static` instead. - static: If true, the components will be logged as static data. @@ -331,15 +301,6 @@ def log_file_from_path( also: [`rerun.init`][], [`rerun.set_global_data_recording`][]. """ - if timeless is True: - import warnings - - warnings.warn( - message=("`timeless` is deprecated as an argument to `log`; prefer `static` instead"), - category=DeprecationWarning, - ) - static = True - bindings.log_file_from_path( Path(file_path), entity_path_prefix=entity_path_prefix, @@ -356,7 +317,6 @@ def log_file_from_contents( *, entity_path_prefix: str | None = None, static: bool = False, - timeless: bool | None = None, recording: RecordingStream | None = None, ) -> None: r""" @@ -380,9 +340,6 @@ def log_file_from_contents( entity_path_prefix: What should the logged entity paths be prefixed with? - timeless: - Deprecated. Refer to `static` instead. - static: If true, the components will be logged as static data. diff --git a/tests/python/release_checklist/check_1d_tensor_data.py b/tests/python/release_checklist/check_1d_tensor_data.py index 2e7aa43ad5cc..4c0a1c46accf 100644 --- a/tests/python/release_checklist/check_1d_tensor_data.py +++ b/tests/python/release_checklist/check_1d_tensor_data.py @@ -33,7 +33,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def log_1d_data() -> None: diff --git a/tests/python/release_checklist/check_bgr.py b/tests/python/release_checklist/check_bgr.py index 8011e6692ff9..df3d8da750c0 100644 --- a/tests/python/release_checklist/check_bgr.py +++ b/tests/python/release_checklist/check_bgr.py @@ -45,7 +45,7 @@ def blueprint() -> rrb.BlueprintLike: def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def run_bgr_images(sample_image_rgb_u8: np.ndarray) -> None: diff --git a/tests/python/release_checklist/check_blueprint_bw_compat.py b/tests/python/release_checklist/check_blueprint_bw_compat.py index ee67012b93f5..8a9bbec9061b 100644 --- a/tests/python/release_checklist/check_blueprint_bw_compat.py +++ b/tests/python/release_checklist/check_blueprint_bw_compat.py @@ -50,7 +50,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def run(args: Namespace) -> None: diff --git a/tests/python/release_checklist/check_chroma_subsampling.py b/tests/python/release_checklist/check_chroma_subsampling.py index cb321b1e1807..d786a206787b 100644 --- a/tests/python/release_checklist/check_chroma_subsampling.py +++ b/tests/python/release_checklist/check_chroma_subsampling.py @@ -96,7 +96,7 @@ def bgra2yuy2(bgra: Any) -> np.ndarray: def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def blueprint() -> rrb.BlueprintLike: diff --git a/tests/python/release_checklist/check_component_and_transform_clamping.py b/tests/python/release_checklist/check_component_and_transform_clamping.py index 66f6c832d99b..eeef6fd6607d 100644 --- a/tests/python/release_checklist/check_component_and_transform_clamping.py +++ b/tests/python/release_checklist/check_component_and_transform_clamping.py @@ -25,7 +25,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def blueprint() -> rrb.BlueprintLike: diff --git a/tests/python/release_checklist/check_container_hierarchy.py b/tests/python/release_checklist/check_container_hierarchy.py index b602b0a2c422..79362224b0fd 100644 --- a/tests/python/release_checklist/check_container_hierarchy.py +++ b/tests/python/release_checklist/check_container_hierarchy.py @@ -72,8 +72,8 @@ def log_some_views() -> None: rr.log("points2d", rr.Points2D([[0, 0], [1, 1], [3, 2]], labels=["a", "b", "c"])) rr.log("points2d/bbx", rr.Boxes2D(centers=[1, 1], half_sizes=[3, 3])) - rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), timeless=True) - rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), timeless=True) + rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), static=True) + rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), static=True) for t in range(0, int(tau * 2 * 10.0)): rr.set_time_sequence("frame_nr", t) diff --git a/tests/python/release_checklist/check_deselect_on_escape.py b/tests/python/release_checklist/check_deselect_on_escape.py index dd86cfeb7fa8..d15d1ff7d529 100644 --- a/tests/python/release_checklist/check_deselect_on_escape.py +++ b/tests/python/release_checklist/check_deselect_on_escape.py @@ -25,7 +25,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def log_some_data() -> None: diff --git a/tests/python/release_checklist/check_draw_order.py b/tests/python/release_checklist/check_draw_order.py index 87e397d6bf48..2067eaa70e38 100644 --- a/tests/python/release_checklist/check_draw_order.py +++ b/tests/python/release_checklist/check_draw_order.py @@ -26,7 +26,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def run_2d_layering() -> None: diff --git a/tests/python/release_checklist/check_heuristics_mixed_all_root.py b/tests/python/release_checklist/check_heuristics_mixed_all_root.py index 38c2e1cbf12b..402becc1e5b9 100644 --- a/tests/python/release_checklist/check_heuristics_mixed_all_root.py +++ b/tests/python/release_checklist/check_heuristics_mixed_all_root.py @@ -27,7 +27,7 @@ def run(args: Namespace) -> None: rr.log("boxes2d", rr.Boxes2D(centers=[[0, 0], [1.3, 0.5], [3, 2]], half_sizes=[0.5, 1] * 3)) rr.log("text_logs", rr.TextLog("Hello, world!", level=rr.TextLogLevel.INFO)) rr.log("points2d", rr.Points2D([[0, 0], [1, 1], [3, 2]], labels=["a", "b", "c"])) - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) rr.send_blueprint(rr.blueprint.Blueprint(auto_layout=True, auto_views=True), make_active=True, make_default=True) diff --git a/tests/python/release_checklist/check_modal_scrolling.py b/tests/python/release_checklist/check_modal_scrolling.py index bfb7e61df626..da14698102f8 100644 --- a/tests/python/release_checklist/check_modal_scrolling.py +++ b/tests/python/release_checklist/check_modal_scrolling.py @@ -17,7 +17,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def log_many_entities() -> None: diff --git a/tests/python/release_checklist/check_notebook.py b/tests/python/release_checklist/check_notebook.py index 42612295067d..76d94094f12b 100644 --- a/tests/python/release_checklist/check_notebook.py +++ b/tests/python/release_checklist/check_notebook.py @@ -15,7 +15,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def run(args: Namespace) -> None: diff --git a/tests/python/release_checklist/check_out_of_tree_data_results.py b/tests/python/release_checklist/check_out_of_tree_data_results.py index e1d71272f26c..6543e2494c8d 100644 --- a/tests/python/release_checklist/check_out_of_tree_data_results.py +++ b/tests/python/release_checklist/check_out_of_tree_data_results.py @@ -18,7 +18,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def blueprint() -> rrb.BlueprintLike: diff --git a/tests/python/release_checklist/check_parallelism_caching_reentrancy.py b/tests/python/release_checklist/check_parallelism_caching_reentrancy.py index 842a1dd2e6da..2943283f5d47 100644 --- a/tests/python/release_checklist/check_parallelism_caching_reentrancy.py +++ b/tests/python/release_checklist/check_parallelism_caching_reentrancy.py @@ -84,8 +84,8 @@ def log_text_logs() -> None: def log_plots() -> None: from math import cos, sin, tau - rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), timeless=True) - rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), timeless=True) + rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), static=True) + rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), static=True) for t in range(0, int(tau * 2 * 10.0)): rr.set_time_sequence("frame_nr", t) diff --git a/tests/python/release_checklist/check_plot_overrides.py b/tests/python/release_checklist/check_plot_overrides.py index c46d88669f4f..890616a2c9ea 100644 --- a/tests/python/release_checklist/check_plot_overrides.py +++ b/tests/python/release_checklist/check_plot_overrides.py @@ -43,8 +43,8 @@ def log_readme() -> None: def log_plots() -> None: from math import cos, sin, tau - rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), timeless=True) - rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), timeless=True) + rr.log("plots/sin", rr.SeriesLine(color=[255, 0, 0], name="sin(0.01t)"), static=True) + rr.log("plots/cos", rr.SeriesLine(color=[0, 255, 0], name="cos(0.01t)"), static=True) for t in range(0, int(tau * 2 * 10.0)): rr.set_time_sequence("frame_nr", t) diff --git a/tests/python/release_checklist/check_rbl_import.py b/tests/python/release_checklist/check_rbl_import.py index c74e93305f5d..741f3b5d7a81 100644 --- a/tests/python/release_checklist/check_rbl_import.py +++ b/tests/python/release_checklist/check_rbl_import.py @@ -18,7 +18,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def log_external_blueprint() -> None: diff --git a/tests/python/release_checklist/check_static_override.py b/tests/python/release_checklist/check_static_override.py index 7c2748c9733a..001f14fdba21 100644 --- a/tests/python/release_checklist/check_static_override.py +++ b/tests/python/release_checklist/check_static_override.py @@ -16,7 +16,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def run(args: Namespace) -> None: diff --git a/tests/python/release_checklist/check_transform3d_hierarchy.py b/tests/python/release_checklist/check_transform3d_hierarchy.py index ea54715593ee..01ddb2591424 100644 --- a/tests/python/release_checklist/check_transform3d_hierarchy.py +++ b/tests/python/release_checklist/check_transform3d_hierarchy.py @@ -30,7 +30,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def blueprint() -> rrb.BlueprintLike: diff --git a/tests/python/release_checklist/check_version.py b/tests/python/release_checklist/check_version.py index 35ede9dc7f44..915f4a5202b2 100644 --- a/tests/python/release_checklist/check_version.py +++ b/tests/python/release_checklist/check_version.py @@ -14,7 +14,7 @@ def log_readme() -> None: - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) def log_the_versions() -> None: diff --git a/tests/python/release_checklist/check_video.py b/tests/python/release_checklist/check_video.py index 14720f3cc626..8ccfe072e5fb 100644 --- a/tests/python/release_checklist/check_video.py +++ b/tests/python/release_checklist/check_video.py @@ -28,7 +28,7 @@ def run(args: Namespace) -> None: rr.script_setup(args, f"{os.path.basename(__file__)}", recording_id=uuid4()) - rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), timeless=True) + rr.log("readme", rr.TextDocument(README, media_type=rr.MediaType.MARKDOWN), static=True) for codec in ["av1", "h264", "h265", "vp9"]: # Log video asset which is referred to by frame references.