Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions plugins/utils/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -294,3 +294,19 @@ delegate(
persistent=True,
)
```

### load_default_view

When this operator is enabled, any dataset whose `info` dict contains the name
of a valid saved view in its `default_view` key will load the specified view by
default (rather than the full dataset) whenever that dataset is opened in the
App.

```py
# Save a view on the dataset that you wish to be loaded by default
dataset.save_view("your_view", view)

# Register the saved view's name so the operator knows to load it
dataset.info["default_view"] = view.name
dataset.save()
```
24 changes: 24 additions & 0 deletions plugins/utils/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2470,6 +2470,29 @@ def execute(self, ctx):
fcn(*args, **kwargs)


class LoadDefaultView(foo.Operator):
@property
def config(self):
return foo.OperatorConfig(
name="load_default_view",
label="Load default view",
on_dataset_open=True,
)

def execute(self, ctx):
default_view = ctx.dataset.info.get("default_view", None)
if default_view and ctx.dataset.has_saved_view(default_view):
if Version(fo.__version__) >= Version("0.23.7"):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cool!

ctx.trigger("set_view", params={"name": default_view})
else:
view = ctx.dataset.load_saved_view(default_view)
ctx.trigger("set_view", params={"view": serialize_view(view)})


def serialize_view(view):
return json.loads(json_util.dumps(view._serialize()))


def register(p):
p.register(CreateDataset)
p.register(LoadDataset)
Expand All @@ -2483,3 +2506,4 @@ def register(p):
p.register(ComputeMetadata)
p.register(GenerateThumbnails)
p.register(Delegate)
p.register(LoadDefaultView)
1 change: 1 addition & 0 deletions plugins/utils/fiftyone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,4 @@ operators:
- compute_metadata
- generate_thumbnails
- delegate
- load_default_view