opción
HogarHogar Skill Herramientas para desarrolladores mcore-linting-and-formatting

mcore-linting-and-formatting

NVIDIA/skills NVIDIA/skills

Analiza y formatea el código de Python para Megatron-LM utilizando ruff, black, isort, pylint y mypy, con comandos para la autoformatación y el ordenamiento de importaciones.

...Expandir todo
0
Tiempo actualizado 27 de septiembre de 2026

Análisis estático y formateo

Ejecutar el formateador

Ejecute antes de abrir una solicitud de extracción (PR):

# Modo de comprobación (no se aplican cambios)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Modo de corrección
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh

Herramientas invocadas: black, isort, pylint, ruff, mypy.

Orden de importaciones

Después de editar las importaciones en cualquier archivo Python, ejecute siempre uv run isort en dichos archivos antes de confirmar los cambios:

uv run isort <file1>.py <file2>.py
</file2></file1>

Configuración del grupo de análisis estático

Dentro del contenedor:

uv sync --locked --only-group linting

Esto instala ruff, black, isort, pylint, las mismas herramientas utilizadas por tools/autoformat.sh y el trabajo linting de la integración continua (CI).

Reglas de estilo de código

  • Indicaciones de tipo: obligatorias en todas las funciones de la API pública. Utilice X | None, no Optional[X].
  • Documentación de docstrings: estilo Google en todas las clases y funciones públicas.
  • Nomenclatura: siga las convenciones de Python — snake_case para funciones y variables, PascalCase para clases.
  • Longitud de línea: 119 caracteres (configurado en pyproject.toml).
  • Sin except sin especificar: capture siempre tipos de excepciones específicos.
Ver en GitHub
---
name: mcore-linting-and-formatting
description: Lint and format Python code for Megatron-LM using ruff, black, isort, pylint, and mypy, with commands for autoformatting and import ordering.
license: Apache-2.0
---

# Linting and Formatting

---

## Running the Formatter

Run before opening a PR:

```bash
# Check mode (no changes applied)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Fix mode
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh
```

Tools invoked: `black`, `isort`, `pylint`, `ruff`, `mypy`.

---

## Import Ordering

After editing imports in any Python files, always run `uv run isort` on those
files before committing:

```bash
uv run isort <file1>.py <file2>.py
```

---

## Setting Up the Linting Group

Inside the container:

```bash
uv sync --locked --only-group linting
```

This installs `ruff`, `black`, `isort`, `pylint` — the same tools used by
`tools/autoformat.sh` and CI's `linting` job.

---

## Code Style Rules

- **Type hints**: required on all public API functions. Use `X | None`, not `Optional[X]`.
- **Docstrings**: Google-style on all public classes and functions.
- **Naming**: follow Python conventions — `snake_case` for functions and variables, `PascalCase` for classes.
- **Line length**: 119 characters (configured in `pyproject.toml`).
- **No bare `except`**: always catch specific exception types.

Todos los archivos

5 archivos
SKILL.md 1.6k
Ver

Instalar mcore-linting-and-formatting

Descarga y extrae los archivos de habilidades en tu directorio .claude/skills/.

Descargar ZIP

Clona el repositorio y copia los archivos de la habilidad a tu proyecto.

git clone https://github.com/NVIDIA/skills/tree/main/skills/mcore-linting-and-formatting # Copy SKILL.md to your .claude/skills/ directory

Copiar Copiar
Configuración rápida: Copia la carpeta de habilidades a .claude/skills/ Claude detectará y utilizará automáticamente la habilidad
Repositorio NVIDIA/skills

Habilidades relacionadas

algorithmic-art
Tiempo actualizado 27 de agosto de 2026
systematic-debugging
Tiempo actualizado 3 de septiembre de 2026
tech-debt-tracker
Tiempo actualizado 29 de agosto de 2026
continual-learning
Tiempo actualizado 10 de septiembre de 2026
OR