# Install yapf with Homebrew, apt, Nix, pacman

Formatter for python code. Version 0.43.0 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:yapf
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install yapf
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install python3-yapf
```

  Evidence: Debian stable package indexes: python3-yapf from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#yapf
```

  Evidence: nixpkgs package indexes: yapf from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S yapf
```

  Evidence: Arch Linux sync databases: yapf from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

## Package facts

- **Package key:** brew:yapf
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/yapf>
- **Version:** 0.43.0
- **Source summary:** Formatter for python code
- **Homepage:** <https://github.com/google/yapf>
- **Repository:** <https://github.com/google/yapf>
- **Upstream docs:** <https://github.com/google/yapf#readme>
- **License:** Apache-2.0
- **Source archive:** <https://files.pythonhosted.org/packages/23/97/b6f296d1e9cc1ec25c7604178b48532fa5901f721bcf1b8d8148b13e5588/yapf-0.43.0.tar.gz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- yapf (cli)
- yapf-diff (cli)
- yapf (alias)
- yapf-diff (alias)

## Dependencies

- python@3.14

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.43.0
- Local data: ok
- Upstream repository: https://github.com/google/yapf
- info: No package-manager update timestamp was available.
- info: No cached GitHub release or tag data was available.
## Project history and usage

YAPF, Yet Another Python Formatter, is Google's clang-format-inspired formatter for Python source. Unlike style checkers that only report or repair selected PEP 8 violations, YAPF searches for a low-cost layout that conforms to a chosen style and rewrites the file.

### Project history

The Google-owned GitHub repository was created on 2015-03-18, and PyPI history shows public 0.1.x packages in April 2015. The README explicitly says YAPF is based on clang-format, developed by Daniel Jasper, and that its goal is to produce code as good as a programmer would write while following a style guide.

YAPF's design grew out of formatter culture rather than linter culture. Its README contrasts the project with tools that remove lint errors and emphasizes a configurable formatting engine with named styles such as pep8, google, yapf, and facebook plus many individual knobs. Later changelog entries show continued maintenance for newer Python syntax and packaging shifts, including the move away from lib2to3 toward blib2to3 for Python 3.11-era parsing.

### Adoption history

YAPF became one of the main Python auto-formatters of the mid-2010s, especially for teams that wanted clang-format-style configurability instead of a single canonical layout. Its README documents editor integrations, recursive formatting, diff mode for CI checks, local style discovery, and ignore files, all of which match adoption through developer tooling, pre-submit checks, and editor save hooks.

The formatter's long-term place changed after Black popularized less-configurable formatting, but YAPF remained important where repositories wanted Google/Facebook-like styles, large configuration surfaces, or incremental compatibility with existing formatting policy.

### How it is used

Typical CLI usage is `yapf -i file.py` for in-place formatting, `yapf -d` for a diff suitable for review or CI, and `yapf -r` for recursive directory formatting. The `yapf-diff` helper fits patch-oriented workflows by formatting only changed hunks.

Configuration is central to YAPF usage. The formatter searches local style files such as `.style.yapf`, `setup.cfg`, and `pyproject.toml`, supports predefined base styles, and offers many style options for projects that treat formatting as policy rather than taste.

### Why package nerds care

YAPF matters because it represents the configurable branch of Python formatter history: closer to clang-format and gofmt in automation, but less doctrinaire than later formatters. In package collections it is a standard example of a developer tool whose value is mostly in repeatability, editor integration, and reducing style churn in diffs.

It also shows how Python tooling had to adapt as the language parser story changed. Maintaining a formatter across Python syntax releases is partly a packaging problem: the executable must track language versions, config formats, editor plugins, and CI behavior at the same time.

### Timeline

- 2015-03-18: google/yapf repository is created on GitHub.
- 2015-04-07: PyPI records an early public 0.1.4 upload.
- 2023-06-13: YAPF 0.40.0 changelog notes Python 3.11 support and replacement of lib2to3 with blib2to3.
- 2023-09-22: YAPF 0.40.2 is published on PyPI.
- 2024-11-14: YAPF 0.43.0 is published on PyPI.

### Related projects

- clang-format is the formatter model named by YAPF's README.
- autopep8 and pep8ify are older Python formatting tools contrasted by YAPF's documentation.
- Black is the later opinionated Python formatter often compared with YAPF in formatter choice discussions.

### Sources

- <https://api.github.com/repos/google/yapf>
- <https://github.com/google/yapf>
- <https://pypi.org/pypi/yapf/json>
- <https://raw.githubusercontent.com/google/yapf/main/CHANGELOG.md>
- <https://raw.githubusercontent.com/google/yapf/main/README.md>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals


## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Unix: .style.yapf, setup.cfg, pyproject.toml, ~/.config/yapf/style, .yapfignore
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** yapf
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Debian apt - python3-yapf - 0.40.2-3: normalized package name match | Debian stable package indexes: python3-yapf from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | public modules for yapf (Python 3) | https://github.com/google/yapf
- Debian apt - yapf3 - 0.40.2-3: normalized package name match | Debian stable package indexes: yapf3 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Python code formatter for different styles (Python 3) | https://github.com/google/yapf
- Nix - yapf: normalized package name match | nixpkgs package indexes: yapf from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- Ubuntu apt - python3-yapf - 0.33.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: python3-yapf from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | public modules for yapf (Python 3) | https://github.com/google/yapf
- Ubuntu apt - yapf3 - 0.33.0-1: normalized package name match | Ubuntu 24.04 LTS package indexes: yapf3 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Python code formatter for different styles (Python 3) | https://github.com/google/yapf
- pacman - yapf - 0.43.0-2: normalized package name match | Arch Linux sync databases: yapf from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Python style guide checker | https://github.com/google/yapf


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [snakefmt](https://www.automicvault.com/pkg/brew/snakefmt/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [cljfmt](https://www.automicvault.com/pkg/brew/cljfmt/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [fprettify](https://www.automicvault.com/pkg/brew/fprettify/) - Shares av.db curated category or tags: cli, developer-tools, formatter, formatters, python.
- [gci](https://www.automicvault.com/pkg/brew/gci/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [gnu-indent](https://www.automicvault.com/pkg/brew/gnu-indent/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [mdformat](https://www.automicvault.com/pkg/brew/mdformat/) - Shares av.db curated category or tags: cli, developer-tools, formatter, formatters, python.
- [stylish-haskell](https://www.automicvault.com/pkg/brew/stylish-haskell/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [stylua](https://www.automicvault.com/pkg/brew/stylua/) - Shares av.db curated category or tags: cli, code-style, developer-tools, formatter, formatters.
- [gersemi](https://www.automicvault.com/pkg/brew/gersemi/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, code, code-style, developer, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/yapf.yml](https://github.com/automic-vault/db/blob/main/combined/yapf.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
