From fiftyone
Formats Python code following FiftyOne's official conventions, including module templates, import groupings, docstrings, lazy imports, guard patterns, and error handling. Use when contributing to FiftyOne or developing plugins.
How this skill is triggered — by the user, by Claude, or both
Slash command
/fiftyone:fiftyone-code-styleThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
```python
"""
Module description.
| Copyright 2017-2026, Voxel51, Inc.
| `voxel51.com <https://voxel51.com/>`_
|
"""
import logging
import os
import numpy as np
import eta.core.utils as etau
import fiftyone as fo
import fiftyone.core.fields as fof
import fiftyone.core.labels as fol
import fiftyone.core.utils as fou
logger = logging.getLogger(__name__)
def public_function(arg):
"""Public API function."""
return _helper(arg)
def _helper(arg):
"""Private helper."""
return arg
Four groups, alphabetized within each, separated by blank lines:
| Group | Example |
|---|---|
| 1. Standard library | import logging, import os |
| 2. Third-party | import numpy as np |
| 3. eta packages | import eta.core.utils as etau |
| 4. FiftyOne | import fiftyone.core.labels as fol |
| Module | Alias |
|---|---|
fiftyone | fo |
fiftyone.core.labels | fol |
fiftyone.core.fields | fof |
fiftyone.core.media | fom |
fiftyone.core.storage | fos |
fiftyone.core.utils | fou |
fiftyone.utils.image | foui |
fiftyone.utils.video | fouv |
def get_operator(operator_uri, enabled=True):
"""Gets the operator with the given URI.
Args:
operator_uri: the operator URI
enabled (True): whether to include only enabled operators (True) or
only disabled operators (False) or all operators ("all")
Returns:
an :class:`fiftyone.operators.Operator`
Raises:
ValueError: if the operator is not found
"""
Key patterns:
param (default): description:class:fiftyone.module.Class``Use fou.lazy_import() for optional/heavy dependencies:
o3d = fou.lazy_import("open3d", callback=lambda: fou.ensure_package("open3d"))
mask_utils = fou.lazy_import(
"pycocotools.mask", callback=lambda: fou.ensure_import("pycocotools")
)
Use hasattr() for optional attributes:
if hasattr(label, "confidence"):
if label.confidence is None or label.confidence < threshold:
label = label.__class__()
Use logger.warning() for non-fatal errors:
try:
result = process_data(data)
except Exception as e:
logger.warning("Failed to process data: %s", e)
Before writing new functions, search for existing implementations:
https://github.com/voxel51/fiftyonefiftyone/core/utils.py and fiftyone/utils/* first| Module | Functions |
|---|---|
fou | lazy_import(), ensure_package(), extract_kwargs_for_class() |
etau | guess_mime_type(), ensure_dir(), make_temp_dir() |
| Pattern | Convention |
|---|---|
| Module structure | Docstring → imports → logger → public → private |
| Private functions | _prefix |
| Docstrings | Google-style with Args/Returns/Raises |
| Error handling | logger.warning() for non-fatal |
| Lazy imports | fou.lazy_import() for optional deps |
| Guard patterns | hasattr() checks |
| Import aliases | fo, fol, fof, fom, fos, fou |
npx claudepluginhub anthropics/claude-plugins-official --plugin fiftyoneTeaches Pythonic idioms, PEP 8 style, type hints, and best practices for writing readable, maintainable Python code. Useful when writing or reviewing Python code and designing packages.
Opinionated production Python standards with automatic version detection (3.10-3.13). Guides modern type syntax, explicit condition checks, pathlib operations, and pragmatic patterns.
Configures ruff/mypy for Python linting/formatting, enforces PEP 8 naming/docstrings/type hints. Use for new projects, code reviews, or style standards.