opção
LarLar Skill Ferramentas para desenvolvedores mcore-linting-and-formatting

mcore-linting-and-formatting

NVIDIA/skills NVIDIA/skills

Lintar e formatar o código Python do Megatron-LM usando ruff, black, isort, pylint e mypy, com comandos para autoformatar e ordenar as importações.

...Expandir tudo
0
Tempo atualizado 27 de Setembro de 2026

Verificação e Formatação de Código

Executando o Formatador

Execute antes de abrir um Pull Request (PR):

# Modo de verificação (sem alterações aplicadas)
BASE_REF=main CHECK_ONLY=true SKIP_DOCS=false bash tools/autoformat.sh

# Modo de correção
BASE_REF=main CHECK_ONLY=false bash tools/autoformat.sh

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

Ordenação de Importações

Após editar as importações em qualquer arquivo Python, execute sempre uv run isort nesses arquivos antes de confirmar as alterações:

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

Configurando o Grupo de Verificação de Código (Linting)

Dentro do contêiner:

uv sync --locked --only-group linting

Isso instala ruff, black, isort, pylint — as mesmas ferramentas usadas por tools/autoformat.sh e pela tarefa linting do CI (Integração Contínua).

Regras de Estilo de Código

  • Dicas de tipo: obrigatórias em todas as funções da API pública. Use X | None, não Optional[X].
  • Docstrings: estilo Google em todas as classes e funções públicas.
  • Nomenclatura: siga as convenções do Python — snake_case para funções e variáveis, PascalCase para classes.
  • Comprimento da linha: 119 caracteres (configurado em pyproject.toml).
  • Nenhuma cláusula except genérica: capture sempre tipos específicos de exceção.
Ver no 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 os arquivos

5 arquivos
SKILL.md 1.6k
Ver

Instalar mcore-linting-and-formatting

Baixe e extraia os arquivos de habilidade para o seu diretório .claude/skills/.

Baixar ZIP

Clone o repositório e copie os arquivos da habilidade para o seu projeto.

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

Copiar Copiar
Configuração rápida: Copie a pasta de habilidades para .claude/skills/ O Claude detectará e usará automaticamente a habilidade
Repositório NVIDIA/skills

Habilidades relacionadas

algorithmic-art
Tempo atualizado 27 de Agosto de 2026
systematic-debugging
Tempo atualizado 3 de Setembro de 2026
tech-debt-tracker
Tempo atualizado 29 de Agosto de 2026
continual-learning
Tempo atualizado 10 de Setembro de 2026
OR