Help us improve
Share bugs, ideas, or general feedback.
From fiftyone
Writes Python code following FiftyOne's official conventions for imports, docstrings, lazy imports, guard patterns, and error handling. Use when contributing to FiftyOne or developing plugins.
npx claudepluginhub anthropics/claude-plugins-official --plugin fiftyoneHow 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
Opinionated production Python standards with automatic version detection (3.10-3.13). Guides modern type syntax, explicit condition checks, pathlib operations, and pragmatic patterns.
Enforces Python standards with PEP 8 via Black (100-char lines), type hints on functions/classes, and Google docstrings. Use for writing/formatting Python code.
Configures ruff/mypy for Python linting/formatting, enforces PEP 8 naming/docstrings/type hints. Use for new projects, code reviews, or style standards.
Share bugs, ideas, or general feedback.
"""
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 |