voxel51/fiftyone-skills

fiftyone-code-style

Writes Python code following FiftyOne's official conventions. Use when contributing to FiftyOne, developing plugins, or writing code that integrates with FiftyOne's codebase.

First seen Feb 16, 2026

Installation

$ npx skills add voxel51/fiftyone-skills --skill fiftyone-code-style

Also in this package

Other skills from voxel51/fiftyone-skills · top by installs.

npx skills add voxel51/fiftyone-skills

Browse all from voxel51/fiftyone-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Also listed on

Alternate registries and mirrors of this skill.

Repository health

Stars 39
License LICENSE
Default branch main
Open issues 4
Status Active

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,702 B
  • docs README.md 1,160 B
  • docs SUMMARY.md 201 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 22 installs

SKILL.md

FiftyOne Code Style

Module Template

"""
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

Import Organization

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

FiftyOne Import Aliases

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

Docstrings (Google-Style)

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:

  • Args with defaults: param (default): description
  • Multi-line descriptions: indent continuation
  • Cross-references: :class:fiftyone.module.Class``

Lazy Imports

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")
)

Guard Patterns

Use hasattr() for optional attributes:

if hasattr(label, "confidence"):
    if label.confidence is None or label.confidence < threshold:
        label = label.__class__()

Error Handling

Use logger.warning() for non-fatal errors:

try:
    result = process_data(data)
except Exception as e:
    logger.warning("Failed to process data: %s", e)

Avoid Redundant Code

Before writing new functions, search for existing implementations:

  • Local: search the FiftyOne source if available in the environment
  • Remote: search https://github.com/voxel51/fiftyone
  • Check fiftyone/core/utils.py and fiftyone/utils/* first

Common Utilities

Module Functions
fou lazyimport(), ensurepackage(), extractkwargsfor_class()
etau guessmimetype(), ensuredir(), maketemp_dir()

Quick Reference

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