Skip to content

Commit

Permalink
Reenable tagging (#8500)
Browse files Browse the repository at this point in the history
Title.

* DNM: requires 0.21 released first
  • Loading branch information
teh-cmc authored Jan 21, 2025
1 parent 81b5e8d commit 8ca16b1
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 115 deletions.
28 changes: 0 additions & 28 deletions crates/store/re_chunk/src/chunk.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,6 @@ impl ChunkComponents {
component_desc: ComponentDescriptor,
list_array: ArrowListArray,
) -> Option<ArrowListArray> {
// TODO(cmc): revert me
let component_desc = component_desc.untagged();
self.0
.entry(component_desc.component_name)
.or_default()
Expand Down Expand Up @@ -391,32 +389,6 @@ impl Chunk {
self
}

/// Clones the chunk into a new chunk where all descriptors are untagged.
///
/// Only useful as a migration tool while the Rerun ecosystem slowly moves over
/// to always using tags for everything.
#[doc(hidden)]
#[inline]
pub fn clone_as_untagged(&self) -> Self {
let mut chunk = self.clone();

let per_component_name = &mut chunk.components;
for (component_name, per_desc) in per_component_name.iter_mut() {
if per_desc.len() != 1 {
// If there are more than one entry, then we're in the land of UB anyway (for now).
continue;
}

let untagged_descriptor = ComponentDescriptor::new(*component_name);
*per_desc = std::mem::take(per_desc)
.into_values()
.map(|list_array| (untagged_descriptor.clone(), list_array))
.collect();
}

chunk
}

/// Clones the chunk into a new chunk where all [`RowId`]s are [`RowId::ZERO`].
pub fn zeroed(self) -> Self {
let row_ids = std::iter::repeat(RowId::ZERO)
Expand Down
1 change: 0 additions & 1 deletion crates/store/re_chunk_store/src/writes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ impl ChunkStore {
// * Etc.
if self.id.kind == re_log_types::StoreKind::Blueprint {
let patched = chunk.patched_for_blueprint_021_compat();
let patched = patched.clone_as_untagged();
chunk = Arc::new(patched);
}

Expand Down
4 changes: 0 additions & 4 deletions crates/store/re_types_core/src/component_descriptor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,6 @@ impl ComponentDescriptor {
}
}

pub fn untagged(self) -> Self {
Self::new(self.component_name)
}

/// Unconditionally sets [`Self::archetype_name`] to the given one.
#[inline]
pub fn with_archetype_name(mut self, archetype_name: ArchetypeName) -> Self {
Expand Down
26 changes: 4 additions & 22 deletions docs/snippets/all/descriptors/descr_builtin_archetype.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,38 +56,20 @@ fn check_tags(rec: &rerun::RecordingStream) {
.collect::<Vec<_>>();
descriptors.sort();

// TODO(cmc): revert me
// let expected = vec![
// ComponentDescriptor {
// archetype_name: None,
// archetype_field_name: None,
// component_name: "rerun.components.Points3DIndicator".into(),
// },
// ComponentDescriptor {
// archetype_name: Some("rerun.archetypes.Points3D".into()),
// archetype_field_name: Some("positions".into()),
// component_name: "rerun.components.Position3D".into(),
// },
// ComponentDescriptor {
// archetype_name: Some("rerun.archetypes.Points3D".into()),
// archetype_field_name: Some("radii".into()),
// component_name: "rerun.components.Radius".into(),
// },
// ];
let expected = vec![
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
component_name: "rerun.components.Points3DIndicator".into(),
},
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
archetype_name: Some("rerun.archetypes.Points3D".into()),
archetype_field_name: Some("positions".into()),
component_name: "rerun.components.Position3D".into(),
},
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
archetype_name: Some("rerun.archetypes.Points3D".into()),
archetype_field_name: Some("radii".into()),
component_name: "rerun.components.Radius".into(),
},
];
Expand Down
30 changes: 6 additions & 24 deletions docs/snippets/all/descriptors/descr_custom_archetype.rs
Original file line number Diff line number Diff line change
Expand Up @@ -104,38 +104,20 @@ fn check_tags(rec: &rerun::RecordingStream) {
.collect::<Vec<_>>();
descriptors.sort();

// TODO(cmc): revert me
// let expected = vec![
// ComponentDescriptor {
// archetype_name: None,
// archetype_field_name: None,
// component_name: "user.CustomPoints3DIndicator".into(),
// },
// ComponentDescriptor {
// archetype_name: Some("user.CustomPoints3D".into()),
// archetype_field_name: Some("colors".into()),
// component_name: "rerun.components.Color".into(),
// },
// ComponentDescriptor {
// archetype_name: Some("user.CustomPoints3D".into()),
// archetype_field_name: Some("custom_positions".into()),
// component_name: "user.CustomPosition3D".into(),
// },
// ];
let expected = vec![
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
component_name: "rerun.components.Color".into(),
component_name: "user.CustomPoints3DIndicator".into(),
},
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
component_name: "user.CustomPoints3DIndicator".into(),
archetype_name: Some("user.CustomPoints3D".into()),
archetype_field_name: Some("colors".into()),
component_name: "rerun.components.Color".into(),
},
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
archetype_name: Some("user.CustomPoints3D".into()),
archetype_field_name: Some("custom_positions".into()),
component_name: "user.CustomPosition3D".into(),
},
];
Expand Down
12 changes: 2 additions & 10 deletions docs/snippets/all/descriptors/descr_custom_component.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,18 +60,10 @@ fn check_tags(rec: &rerun::RecordingStream) {
.collect::<Vec<_>>();
descriptors.sort();

// TODO(cmc): revert me
// let expected = vec![
// ComponentDescriptor {
// archetype_name: Some("user.CustomArchetype".into()),
// archetype_field_name: Some("custom_positions".into()),
// component_name: "user.CustomPosition3D".into(),
// }, //
// ];
let expected = vec![
ComponentDescriptor {
archetype_name: None,
archetype_field_name: None,
archetype_name: Some("user.CustomArchetype".into()),
archetype_field_name: Some("custom_positions".into()),
component_name: "user.CustomPosition3D".into(),
}, //
];
Expand Down
3 changes: 3 additions & 0 deletions docs/snippets/snippets.toml
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,9 @@ quick_start = [ # These examples don't have exactly the same implementation.
"py",
"rust",
]
"archetypes/points3d_partial_updates" = [ # TODO(cmc): revert once C++ has tagged partial updates
"cpp",
]
"archetypes/points3d_random" = [ # TODO(#3206): examples use different RNGs
"cpp",
"py",
Expand Down
33 changes: 7 additions & 26 deletions rerun_py/tests/unit/test_dataframe.py
Original file line number Diff line number Diff line change
Expand Up @@ -104,36 +104,14 @@ def test_schema_recording(self) -> None:
# Color, Points3DIndicator, Position3D, Radius, Text, TextIndicator
assert len(schema.component_columns()) == 6

# TODO(cmc): revert me
# assert schema.index_columns()[0].name == "log_tick"
# assert schema.index_columns()[1].name == "log_time"
# assert schema.index_columns()[2].name == "my_index"
# assert schema.component_columns()[0].entity_path == "/points"
# assert schema.component_columns()[0].component_name == "rerun.components.Points3DIndicator"
# assert schema.component_columns()[0].is_static is False
# assert schema.component_columns()[1].entity_path == "/points"
# assert schema.component_columns()[1].component_name == "rerun.components.Color"
# assert schema.component_columns()[1].is_static is False
# assert schema.component_columns()[2].entity_path == "/points"
# assert schema.component_columns()[2].component_name == "rerun.components.Position3D"
# assert schema.component_columns()[2].is_static is False
# assert schema.component_columns()[3].entity_path == "/points"
# assert schema.component_columns()[3].component_name == "rerun.components.Radius"
# assert schema.component_columns()[3].is_static is False
# assert schema.component_columns()[4].entity_path == "/static_text"
# assert schema.component_columns()[4].component_name == "rerun.components.TextLogIndicator"
# assert schema.component_columns()[4].is_static is True
# assert schema.component_columns()[5].entity_path == "/static_text"
# assert schema.component_columns()[5].component_name == "rerun.components.Text"
# assert schema.component_columns()[5].is_static is True
assert schema.index_columns()[0].name == "log_tick"
assert schema.index_columns()[1].name == "log_time"
assert schema.index_columns()[2].name == "my_index"
assert schema.component_columns()[0].entity_path == "/points"
assert schema.component_columns()[0].component_name == "rerun.components.Color"
assert schema.component_columns()[0].component_name == "rerun.components.Points3DIndicator"
assert schema.component_columns()[0].is_static is False
assert schema.component_columns()[1].entity_path == "/points"
assert schema.component_columns()[1].component_name == "rerun.components.Points3DIndicator"
assert schema.component_columns()[1].component_name == "rerun.components.Color"
assert schema.component_columns()[1].is_static is False
assert schema.component_columns()[2].entity_path == "/points"
assert schema.component_columns()[2].component_name == "rerun.components.Position3D"
Expand All @@ -142,11 +120,14 @@ def test_schema_recording(self) -> None:
assert schema.component_columns()[3].component_name == "rerun.components.Radius"
assert schema.component_columns()[3].is_static is False
assert schema.component_columns()[4].entity_path == "/static_text"
assert schema.component_columns()[4].component_name == "rerun.components.Text"
assert schema.component_columns()[4].component_name == "rerun.components.TextLogIndicator"
assert schema.component_columns()[4].is_static is True
assert schema.component_columns()[5].entity_path == "/static_text"
assert schema.component_columns()[5].component_name == "rerun.components.TextLogIndicator"
assert schema.component_columns()[5].component_name == "rerun.components.Text"
assert schema.component_columns()[5].is_static is True
assert schema.index_columns()[0].name == "log_tick"
assert schema.index_columns()[1].name == "log_time"
assert schema.index_columns()[2].name == "my_index"

def test_schema_view(self) -> None:
schema = self.recording.view(index="my_index", contents="points").schema()
Expand Down

0 comments on commit 8ca16b1

Please sign in to comment.