Skip to main content

Format your pyproject.toml file

Project description

Apply a consistent format to your pyproject.toml file with comment support. See changelog here.

Recent Changes

Philosophy

This tool aims to be an opinionated formatter, with similar objectives to black. This means it deliberately does not support a wide variety of configuration settings. In return, you get consistency, predictability, and smaller diffs.

Use

Via CLI

pyproject-fmt is a CLI tool that needs a Python interpreter (version 3.10 or higher) to run. We recommend either pipx or uv to install pyproject-fmt into an isolated environment. This has the added benefit that later you will be able to upgrade pyproject-fmt without affecting other parts of the system. We provide a method for pip too here, but we discourage that path if you can:

# install uv per https://docs.astral.sh/uv/#getting-started
uv tool install pyproject-fmt
pyproject-fmt --help

Via pre-commit hook

See pre-commit/pre-commit for instructions, sample .pre-commit-config.yaml:

- repo: https://github.com/tox-dev/pyproject-fmt
  # Use the sha / tag you want to point at
  # or use `pre-commit autoupdate` to get the latest version
  rev: ""
  hooks:
    - id: pyproject-fmt

Via Python

You can use pyproject-fmt as a Python module to format TOML content programmatically.

from pyproject_fmt import run

# Format a pyproject.toml file and return the exit code
exit_code = run(["path/to/pyproject.toml"])

The run function accepts command-line arguments as a list and returns an exit code (0 for success, non-zero for failure).

The tool.pyproject-fmt table is used when present in the pyproject.toml file:

[tool.pyproject-fmt]

# After how many columns split arrays/dicts into multiple lines and wrap long strings;
# use a trailing comma in arrays to force multiline format instead of lowering this value
column_width = 120

# Number of spaces for indentation
indent = 2

# Keep full version numbers (e.g., 1.0.0 instead of 1.0) in dependency specifiers
keep_full_version = false

# Automatically generate Python version classifiers based on requires-python
# Set to false to disable automatic classifier generation
generate_python_version_classifiers = true

# Maximum Python version for generating version classifiers
max_supported_python = "3.14"

# Table format: "short" collapses sub-tables to dotted keys, "long" expands to [table.subtable] headers
table_format = "short"

# Extra newlines between sub-tables in the same group (e.g. "\n" for one blank line between sub-tables)
sub_table_spacing = ""

# Extra newlines between root table groups (e.g. "\n" for one blank line, "\n\n" for two)
separate_root_table = "\n"

# List of tables to force expand regardless of table_format setting
expand_tables = []

# List of tables to force collapse regardless of table_format or expand_tables settings
collapse_tables = []

# List of key patterns to skip string wrapping (supports wildcards like *.parse or tool.bumpversion.*)
skip_wrap_for_keys = []

If not set they will default to values from the CLI.

Shared configuration file

You can place formatting settings in a standalone pyproject-fmt.toml file instead of (or in addition to) the [tool.pyproject-fmt] table. This is useful for monorepos or when you want to share the same configuration across multiple projects without duplicating it in each pyproject.toml.

The formatter searches for pyproject-fmt.toml starting from the directory of the file being formatted and walking up to the filesystem root. The first match wins. You can also pass an explicit path via --config:

pyproject-fmt --config /path/to/pyproject-fmt.toml pyproject.toml

The shared config file uses the same keys as the [tool.pyproject-fmt] table, but without the table header:

column_width = 120
indent = 2
table_format = "short"
sub_table_spacing = ""
separate_root_table = "\n"
max_supported_python = "3.14"

When both a shared config file and a [tool.pyproject-fmt] table exist, per-file settings from the [tool.pyproject-fmt] table take precedence over the shared config file.

Python version classifiers

This tool will automatically generate the Programming Language :: Python :: 3.X classifiers for you. To do so it needs to know the range of Python interpreter versions you support:

  • The lower bound can be set via the requires-python key in the pyproject.toml configuration file (defaults to the oldest non end of line CPython at the time of the release).

  • The upper bound, by default, will assume the latest stable release of CPython at the time of the release, but can be changed via CLI flag or the config file.

Table formatting

You can control how sub-tables are formatted in your pyproject.toml file. There are two formatting styles:

Short format (collapsed) - The default behavior where sub-tables are collapsed into dotted keys. Use this for a compact representation:

[project]
name = "myproject"
urls.homepage = "https://example.com"
urls.repository = "https://github.com/example/myproject"
scripts.mycli = "mypackage:main"

Long format (expanded) - Sub-tables are expanded into separate [table.subtable] sections. Use this for readability when tables have many keys or complex values:

[project]
name = "myproject"

[project.urls]
homepage = "https://example.com"
repository = "https://github.com/example/myproject"

[project.scripts]
mycli = "mypackage:main"

Table spacing

The sub_table_spacing and separate_root_table options control the blank lines inserted between tables. Each option takes a string of \n characters where each \n adds one blank line:

  • sub_table_spacing (default "") controls spacing between sub-tables within the same group. For example, between [tool.ruff] and [tool.ruff.lint]. Set to "\n" to add a blank line between sub-tables.

  • separate_root_table (default "\n") controls spacing between different root table groups. For example, between [project] and [tool.ruff].

[tool.pyproject-fmt]
sub_table_spacing = "\n"  # Add blank line between sub-tables
separate_root_table = "\n"  # One blank line between root table groups (default)

Configuration priority

The formatting behavior is determined by a priority system that allows you to set a global default while overriding specific tables:

  1. collapse_tables - Highest priority, forces specific tables to be collapsed regardless of other settings

  2. expand_tables - Medium priority, forces specific tables to be expanded

  3. table_format - Lowest priority, sets the default behavior for all tables not explicitly configured

This three-tier approach lets you fine-tune formatting for specific tables while maintaining a consistent default. For example:

[tool.pyproject-fmt]
table_format = "short"  # Collapse most tables
expand_tables = ["project.entry-points"]  # But expand entry-points

Specificity rules

Table selectors follow CSS-like specificity rules: more specific selectors win over less specific ones. When determining whether to collapse or expand a table, the formatter checks from most specific to least specific until it finds a match.

For example, with this configuration:

[tool.pyproject-fmt]
table_format = "long"  # Expand all tables by default
collapse_tables = ["project"]  # Collapse project sub-tables
expand_tables = ["project.optional-dependencies"]  # But expand this specific one

The behavior will be:

  • project.urls → collapsed (matches project in collapse_tables)

  • project.scripts → collapsed (matches project in collapse_tables)

  • project.optional-dependencies → expanded (matches exactly in expand_tables, more specific than project)

  • tool.ruff.lint → expanded (no match in collapse/expand, uses table_format default)

This allows you to set broad rules for parent tables while making exceptions for specific sub-tables. The specificity check walks up the table hierarchy: for project.optional-dependencies, it first checks if project.optional-dependencies is in collapse_tables or expand_tables, then checks project, then falls back to the table_format default.

Supported tables

The following sub-tables can be formatted with this configuration:

Project tables:

  • project.urls - Project URLs (homepage, repository, documentation, changelog)

  • project.scripts - Console script entry points

  • project.gui-scripts - GUI script entry points

  • project.entry-points - Custom entry point groups

  • project.optional-dependencies - Optional dependency groups

Tool tables:

  • tool.ruff.format - Ruff formatter settings

  • tool.ruff.lint - Ruff linter settings

  • Any other tool sub-tables

Array of tables:

  • project.authors - Can be inline tables or [[project.authors]]

  • project.maintainers - Can be inline tables or [[project.maintainers]]

  • Any [[table]] entries throughout the file

Array of tables ([[table]]) are automatically collapsed to inline arrays when each inline table fits within the configured column_width. For example:

# Before
[[tool.commitizen.customize.questions]]
type = "list"

[[tool.commitizen.customize.questions]]
type = "input"

# After (with table_format = "short")
[tool.commitizen]
customize.questions = [{ type = "list" }, { type = "input" }]

If any inline table exceeds column_width, the array of tables remains in [[...]] format to maintain readability and TOML 1.0.0 compatibility (inline tables cannot span multiple lines).

String wrapping

By default, the formatter wraps long strings that exceed the column width using line continuations. However, some strings such as regex patterns should not be wrapped because wrapping can break their functionality.

You can configure which keys should skip string wrapping using the skip_wrap_for_keys option:

[tool.pyproject-fmt]
skip_wrap_for_keys = ["*.parse", "*.regex", "tool.bumpversion.*"]

Pattern matching

The skip_wrap_for_keys option supports glob-like patterns:

  • Exact match: tool.bumpversion.parse matches only that specific key

  • Wildcard suffix: *.parse matches any key ending with .parse (e.g., tool.bumpversion.parse, project.parse)

  • Wildcard prefix: tool.bumpversion.* matches any key under tool.bumpversion (e.g., tool.bumpversion.parse, tool.bumpversion.serialize)

  • Global wildcard: * skips wrapping for all strings

Examples: ["*.parse", "*.regex"] to preserve regex fields, ["tool.bumpversion.*"] for a specific tool section, or ["*"] to skip all string wrapping.

pyproject-fmt is an opinionated formatter, much like black is for Python code. The tool intentionally provides minimal configuration options because the goal is to establish a single standard format that all pyproject.toml files follow.

Benefits of this approach:

  • Less time configuring tools

  • Smaller diffs when committing changes

  • Easier code reviews since formatting is never a question

While a few key options exist (column_width, indent, table_format, sub_table_spacing, separate_root_table), the tool does not expose dozens of toggles. You get what the maintainers have chosen to be the right balance of readability, consistency, and usability. The column_width setting controls when arrays are split into multiple lines and when string values are wrapped using line continuations.

General Formatting

These rules apply uniformly across the entire pyproject.toml file.

Table Ordering

Tables are reordered into a consistent structure:

  1. [build-system]

  2. [project]

  3. [dependency-groups]

  4. [tool.*] sections in the order:

    1. Build backends: poetry, poetry-dynamic-versioning, pdm, setuptools, distutils, setuptools_scm, hatch, flit, scikit-build, meson-python, maturin, pixi, whey, py-build-cmake, sphinx-theme-builder, uv

    2. Builders: cibuildwheel, nuitka

    3. Linters/formatters: autopep8, black, ruff, isort, flake8, pycln, nbqa, pylint, repo-review, codespell, docformatter, pydoclint, tomlsort, check-manifest, check-sdist, check-wheel-contents, deptry, pyproject-fmt, typos, bandit

    4. Type checkers: mypy, pyrefly, pyright, ty, django-stubs

    5. Testing: pytest, pytest_env, pytest-enabler, coverage

    6. Task runners: doit, spin, tox

    7. Release tools: bumpversion, jupyter-releaser, tbump, towncrier, vendoring

    8. Any other tool.* in alphabetical order

  5. Any other tables (alphabetically)

String Quotes

All strings use double quotes by default. Single quotes are only used when the value contains double quotes:

# Before
name = 'my-package'
description = "He said \"hello\""

# After
name = "my-package"
description = 'He said "hello"'

Key Quotes

TOML keys are normalized to the simplest valid form. Keys that are valid bare keys (containing only A-Za-z0-9_-) have redundant quotes stripped. Single-quoted (literal) keys that require quoting are converted to double-quoted (basic) strings with proper escaping. This applies to all keys: table headers, key-value pairs, and inline table keys:

# Before
[tool."ruff"]
"line-length" = 120
lint.per-file-ignores.'tests/*' = ["S101"]

# After
[tool.ruff]
line-length = 120
lint.per-file-ignores."tests/*" = ["S101"]

Backslashes and double quotes within literal keys are escaped during conversion:

# Before
lint.per-file-ignores.'path\to\file' = ["E501"]

# After
lint.per-file-ignores."path\\to\\file" = ["E501"]

Array Formatting

Arrays are formatted based on line length, trailing comma presence, and comments:

# Short arrays stay on one line
keywords = ["python", "toml"]

# Long arrays that exceed column_width are expanded and get a trailing comma
dependencies = [
    "requests>=2.28",
    "click>=8.0",
]

# Trailing commas signal intent to keep multiline format
classifiers = [
    "Development Status :: 4 - Beta",
]

# Arrays with comments are always multiline
lint.ignore = [
    "E501",  # Line too long
    "E701",
]

Multiline formatting rules:

An array becomes multiline when any of these conditions are met:

  1. Trailing comma present - A trailing comma signals intent to keep multiline format

  2. Exceeds column width - Arrays longer than column_width are expanded (and get a trailing comma added)

  3. Contains comments - Arrays with inline or leading comments are always multiline

String Wrapping

Strings that exceed column_width (including the key name and " = " prefix) are wrapped into multi-line triple-quoted strings using line continuations:

# Before (exceeds column_width)
description = "A very long description that goes beyond the configured column width limit"

# After
description = """\
  A very long description that goes beyond the \
  configured column width limit\
  """

Wrapping prefers breaking at spaces and at " :: " separators (common in Python classifiers). Strings inside inline tables are never wrapped. Strings that contain actual newlines are preserved as multi-line strings without adding line continuations. Use skip_wrap_for_keys to prevent wrapping for specific keys.

Table Formatting

Sub-tables can be formatted in two styles controlled by table_format:

Short format (collapsed to dotted keys):

[project]
urls.homepage = "https://example.com"
urls.repository = "https://github.com/example/project"

Long format (expanded to table headers):

[project.urls]
homepage = "https://example.com"
repository = "https://github.com/example/project"

Table spacing:

By default, different table groups (e.g. [project] and [tool.ruff]) are separated by a blank line, while sub-tables within the same group (e.g. [tool.ruff] and [tool.ruff.lint]) are kept compact with no blank line between them. You can control this with sub_table_spacing and separate_root_table. Each option takes a string of \n characters where each \n adds one blank line. For example, setting sub_table_spacing = "\n" adds a blank line between sub-tables:

[tool.ruff]
line-length = 120

[tool.ruff.lint]
select = ["E", "W"]

Comment Preservation

All comments are preserved during formatting:

  • Inline comments - Comments after a value on the same line stay with that value

  • Leading comments - Comments on the line before an entry stay with the entry below

  • Block comments - Multi-line comment blocks are preserved

Inline comment alignment:

Inline comments within arrays are aligned independently per array, based on that array’s longest value:

# Before - comments at inconsistent positions
lint.ignore = [
  "COM812", # Conflict with formatter
  "CPY", # No copyright statements
  "ISC001",   # Another rule
]

# After - comments align to longest value in this array
lint.ignore = [
  "COM812",  # Conflict with formatter
  "CPY",     # No copyright statements
  "ISC001",  # Another rule
]

Table-Specific Handling

Beyond general formatting, each table has specific key ordering and value normalization rules.

[build-system]

Key ordering: build-backendrequiresbackend-path

Value normalization:

  • requires: Dependencies normalized per PEP 508 and sorted alphabetically by package name

  • backend-path: Entries sorted alphabetically

# Before
[build-system]
requires = ["setuptools >= 45", "wheel"]
build-backend = "setuptools.build_meta"

# After
[build-system]
build-backend = "setuptools.build_meta"
requires = ["setuptools>=45", "wheel"]

[project]

Key ordering:

Keys are reordered in this sequence: nameversionimport-namesimport-namespacesdescriptionreadmekeywordslicenselicense-filesmaintainersauthorsrequires-pythonclassifiersdynamicdependenciesoptional-dependenciesurlsscriptsgui-scriptsentry-points

Field normalizations:

name

Converted to canonical format (lowercase with hyphens): My_Packagemy-package

description

Whitespace normalized: multiple spaces collapsed, consistent spacing after periods.

license

License expression operators (and, or, with) uppercased: MIT or Apache-2.0MIT OR Apache-2.0

requires-python

Whitespace removed: >= 3.9>=3.9

keywords

Deduplicated (case-insensitive) and sorted alphabetically.

dynamic

Sorted alphabetically.

import-names / import-namespaces

Semicolon spacing normalized (foo;barfoo; bar), entries sorted alphabetically.

classifiers

Deduplicated and sorted alphabetically.

authors / maintainers

Sorted by name, then email. Keys within each entry ordered: nameemail.

Dependency normalization:

All dependency arrays (dependencies, optional-dependencies.*) are:

  • Normalized per PEP 508: spaces removed, redundant .0 suffixes stripped (unless keep_full_version = true)

  • Sorted alphabetically by canonical package name

# Before
dependencies = ["requests >= 2.0.0", "click~=8.0"]

# After
dependencies = ["click>=8", "requests>=2"]

Optional dependencies extra names:

Extra names are normalized to lowercase with hyphens:

# Before
[project.optional-dependencies]
Dev_Tools = ["pytest"]

# After
[project.optional-dependencies]
dev-tools = ["pytest"]

Python version classifiers:

Classifiers for Python versions are automatically generated based on requires-python and max_supported_python. Disable with generate_python_version_classifiers = false.

# With requires-python = ">=3.10" and max_supported_python = "3.14"
classifiers = [
    "Programming Language :: Python :: 3 :: Only",
    "Programming Language :: Python :: 3.10",
    "Programming Language :: Python :: 3.11",
    "Programming Language :: Python :: 3.12",
    "Programming Language :: Python :: 3.13",
    "Programming Language :: Python :: 3.14",
]

Entry points:

Inline tables within entry-points are expanded to dotted keys:

# Before
entry-points.console_scripts = { mycli = "mypackage:main" }

# After
entry-points.console_scripts.mycli = "mypackage:main"

Authors/maintainers formatting:

Contact information can be formatted as inline tables or expanded array of tables:

# Short format (inline)
authors = [{ name = "Alice", email = "alice@example.com" }]

# Long format (array of tables)
[[project.authors]]
name = "Alice"
email = "alice@example.com"

Controlled by table_format, expand_tables, and collapse_tables.

[dependency-groups]

Key ordering: devtesttypedocs → others alphabetically

Value normalization:

  • All dependencies normalized per PEP 508

  • Sorted: regular dependencies first, then include-group entries

# Before
[dependency-groups]
dev = [{ include-group = "test" }, "ruff>=0.4", "mypy>=1"]

# After
[dependency-groups]
dev = ["mypy>=1", "ruff>=0.4", { include-group = "test" }]

[tool.ruff]

Key ordering:

Keys are reordered in a logical sequence:

  1. Global settings: required-versionextendtarget-versionline-lengthindent-widthtab-size

  2. Path settings: builtinsnamespace-packagessrcincludeextend-includeexcludeextend-excludeforce-excluderespect-gitignore

  3. Behavior flags: previewfixunsafe-fixesfix-onlyshow-fixesshow-source

  4. Output settings: output-formatcache-dir

  5. format.* keys

  6. lint.* keys: selectextend-selectignoreextend-ignoreper-file-ignoresfixableunfixable → plugin configurations

Sorted arrays:

Arrays are sorted alphabetically using natural ordering (RUF1 < RUF9 < RUF10):

# These arrays are sorted:
lint.select = ["E", "F", "I", "RUF"]
lint.ignore = ["E501", "E701"]

# Per-file-ignores values are also sorted:
lint.per-file-ignores."tests/*.py" = ["D103", "S101"]

Sorted array keys:

Top-level:

exclude, extend-exclude, include, extend-include, builtins, namespace-packages, src

Format:

format.exclude

Lint:

select, extend-select, ignore, extend-ignore, fixable, extend-fixable, unfixable, extend-safe-fixes, extend-unsafe-fixes, external, task-tags, exclude, typing-modules, allowed-confusables, logger-objects

Per-file patterns:

lint.per-file-ignores.*, lint.extend-per-file-ignores.*

Plugin arrays:

lint.flake8-bandit.hardcoded-tmp-directory, lint.flake8-bandit.hardcoded-tmp-directory-extend, lint.flake8-boolean-trap.extend-allowed-calls, lint.flake8-bugbear.extend-immutable-calls, lint.flake8-builtins.builtins-ignorelist, lint.flake8-gettext.extend-function-names, lint.flake8-gettext.function-names, lint.flake8-import-conventions.banned-from, lint.flake8-pytest-style.raises-extend-require-match-for, lint.flake8-pytest-style.raises-require-match-for, lint.flake8-self.extend-ignore-names, lint.flake8-self.ignore-names, lint.flake8-tidy-imports.banned-module-level-imports, lint.flake8-type-checking.exempt-modules, lint.flake8-type-checking.runtime-evaluated-base-classes, lint.flake8-type-checking.runtime-evaluated-decorators, lint.isort.constants, lint.isort.default-section, lint.isort.extra-standard-library, lint.isort.forced-separate, lint.isort.no-lines-before, lint.isort.required-imports, lint.isort.single-line-exclusions, lint.isort.variables, lint.pep8-naming.classmethod-decorators, lint.pep8-naming.extend-ignore-names, lint.pep8-naming.ignore-names, lint.pep8-naming.staticmethod-decorators, lint.pydocstyle.ignore-decorators, lint.pydocstyle.property-decorators, lint.pyflakes.extend-generics, lint.pylint.allow-dunder-method-names, lint.pylint.allow-magic-value-types

[tool.pixi]

Key ordering:

Keys are grouped by functionality:

  1. Workspace metadata: workspace.nameworkspace.versionworkspace.descriptionworkspace.authorsworkspace.licenseworkspace.license-fileworkspace.readmeworkspace.homepageworkspace.repositoryworkspace.documentation

  2. Workspace configuration: workspace.channelsworkspace.platformsworkspace.channel-priorityworkspace.solve-strategyworkspace.conda-pypi-mapworkspace.requires-pixiworkspace.exclude-newerworkspace.previewworkspace.build-variantsworkspace.build-variants-files

  3. Dependencies: dependencieshost-dependenciesbuild-dependenciesrun-dependenciesconstraintspypi-dependenciespypi-options

  4. Development: dev

  5. Environment setup: system-requirementsactivationtasks

  6. Targeting: targetfeatureenvironments

  7. Package build: package

Sorted arrays:

workspace.channels, workspace.platforms, workspace.preview, workspace.build-variants-files

[tool.uv]

Key ordering:

Keys are grouped by functionality:

  1. Version & Python: required-versionpython-preferencepython-downloads

  2. Dependencies: dev-dependenciesdefault-groupsdependency-groupsconstraint-dependenciesoverride-dependenciesexclude-dependenciesdependency-metadata

  3. Sources & indexes: sourcesindexindex-urlextra-index-urlfind-linksno-indexindex-strategykeyring-provider

  4. Package handling: no-binary*no-build*no-sources*reinstall*upgrade*

  5. Resolution: resolutionprereleasefork-strategyenvironmentsrequired-environmentsexclude-newer*

  6. Build & Install: compile-bytecodelink-modeconfig-settings*extra-build-*concurrent-buildsconcurrent-downloadsconcurrent-installs

  7. Network & Security: allow-insecure-hostnative-tlsofflineno-cachecache-dirhttp-proxyhttps-proxyno-proxy

  8. Publishing: publish-urlcheck-urltrusted-publishing

  9. Python management: python-install-mirrorpypy-install-mirrorpython-downloads-json-url

  10. Workspace & Project: managedpackageworkspaceconflictscache-keysbuild-backend

  11. Other: pippreviewtorch-backend

Sorted arrays:

Package name arrays (sorted alphabetically):

constraint-dependencies, override-dependencies, dev-dependencies, exclude-dependencies, no-binary-package, no-build-package, no-build-isolation-package, no-sources-package, reinstall-package, upgrade-package

Other arrays:

environments, required-environments, allow-insecure-host, no-proxy, workspace.members, workspace.exclude

Sources table:

The sources table entries are sorted alphabetically by package name:

# Before
[tool.uv.sources]
zebra = { git = "..." }
alpha = { path = "..." }

# After
[tool.uv.sources]
alpha = { path = "..." }
zebra = { git = "..." }

pip subsection:

The [tool.uv.pip] subsection follows similar formatting rules, with arrays like extra, no-binary-package, no-build-package, reinstall-package, and upgrade-package sorted alphabetically.

[tool.coverage]

Key ordering:

Keys are reordered to follow coverage.py’s workflow phases:

  1. Run phase (run.*): Data collection settings

    • Source selection: sourcesource_pkgssource_dirs

    • File filtering: includeomit

    • Measurement: branchcover_pylibtimid

    • Execution context: command_lineconcurrencycontextdynamic_context

    • Data management: data_fileparallelrelative_files

    • Extensions: plugins

    • Debugging: debugdebug_filedisable_warnings

    • Other: corepatchsigterm

  2. Paths (paths.*): Path mapping between source locations

  3. Report phase (report.*): General reporting

    • Thresholds: fail_underprecision

    • File filtering: includeomitinclude_namespace_packages

    • Line exclusion: exclude_linesexclude_also

    • Partial branches: partial_branchespartial_also

    • Output control: skip_coveredskip_emptyshow_missing

    • Formatting: formatsort

    • Error handling: ignore_errors

  4. Output formats (after report):

    • html.*: directorytitleextra_cssshow_contextsskip_coveredskip_empty

    • json.*: outputpretty_printshow_contexts

    • lcov.*: outputline_checksums

    • xml.*: outputpackage_depth

Grouping principle:

Related options are grouped together:

  • File selection: include/omit are adjacent

  • Exclusion patterns: exclude_lines/exclude_also are adjacent

  • Partial branches: partial_branches/partial_also are adjacent

  • Skip options: skip_covered/skip_empty are adjacent

Sorted arrays:

Run phase:

source, source_pkgs, source_dirs, include, omit, concurrency, plugins, debug, disable_warnings

Report phase:

include, omit, exclude_lines, exclude_also, partial_branches, partial_also

# Before (alphabetical)
[tool.coverage]
report.exclude_also = ["if TYPE_CHECKING:"]
report.omit = ["tests/*"]
run.branch = true
run.omit = ["tests/*"]

# After (workflow order with groupings)
[tool.coverage]
run.branch = true
run.omit = ["tests/*"]
report.omit = ["tests/*"]
report.exclude_also = ["if TYPE_CHECKING:"]

[tool.commitizen]

Top-level ordering: rule selection (name, schema, schema_pattern, allowed_prefixes) → version source (version, version_scheme, version_provider, version_files) → bump behavior → tag/sign → changelog → hooks (pre_bump_hooks, post_bump_hooks) → customize.

Sorted arrays: version_files, allowed_prefixes, extras, extra_files.

[tool.poetry]

Covers both Poetry 1.x (legacy metadata under [tool.poetry]) and Poetry 2.x (metadata moved to standard [project]; Poetry-specific keys still under [tool.poetry]).

Top-level key ordering:

  1. Identity: nameversiondescriptionpackage-mode

  2. License & authorship: licenseauthorsmaintainers

  3. Documentation: readmehomepagerepositorydocumentation

  4. Discovery: keywordsclassifiers

  5. Packaging contents: packagesincludeexcludebuild

  6. Dependencies (sub-tables): dependenciesdev-dependenciesgroupextras

  7. Entry points / distribution: scriptspluginsurlssource

  8. Poetry runtime constraints: requires-poetryrequires-pluginsbuild-constraints

Sub-table key ordering:

[tool.poetry.dependencies] / [tool.poetry.dev-dependencies] / per-group dependencies

python first (interpreter constraint), all other package names alphabetized.

[tool.poetry.group.<name>]

optionalinclude-groupsdependencies.

[tool.poetry.extras], [tool.poetry.scripts], [tool.poetry.urls], [tool.poetry.plugins.*], [tool.poetry.requires-plugins], [tool.poetry.build-constraints]

Keys alphabetized.

[tool.poetry.build]

scriptgenerate-setup-file.

[[tool.poetry.source]]

Each entry’s keys ordered nameurlprioritylinksindexed, with the deprecated default and secondary keys placed last. Array order itself is preserved (priority ordering is semantically significant).

Sorted arrays:

  • keywords, classifiers: deduplicated (case-insensitive) and sorted alphabetically.

  • exclude: sorted alphabetically.

  • [tool.poetry.extras] values (each extras.<name>): sorted alphabetically.

  • [tool.poetry.group.<name>.include-groups]: sorted alphabetically.

  • Per-dependency extras arrays (in dependencies, dev-dependencies, per-group dependencies, requires-plugins, build-constraints): sorted alphabetically.

Arrays whose order carries semantic meaning are preserved as written: authors, maintainers, packages, include, readme (when an array), multi-constraint dependency arrays, and [[tool.poetry.source]] entries.

Inline-table key ordering:

When a Poetry-specific inline table is detected (via discriminator keys unique to Poetry’s schema), its keys are reordered:

  • Sources ({ priority = ... }, { secondary = ... }, { links = ... }, { indexed = ... }): nameurlprioritylinksindexeddefaultsecondary.

  • Git dependencies ({ git = ... }): gitbranchtagrevsubdirectorypythonplatformmarkersallow-prereleasesallows-prereleasesoptionalextrasdevelop.

  • Path dependencies ({ path = ... }): pathdevelopsubdirectorypythonplatformmarkersoptionalextras.

  • File dependencies ({ file = ... }): filesubdirectorypythonplatformmarkersoptionalextras.

Inline tables that don’t match any Poetry-specific schema (for example [[project.authors]] inline form { name = "...", email = "..." }) are left untouched.

# Before
[[tool.poetry.source]]
priority = "primary"
url = "https://pypi.example.com/simple"
name = "private"

[tool.poetry.dependencies]
zebra = "^1.0"
python = "^3.11"
foo = { branch = "main", git = "https://github.com/example/foo" }

# After
[tool.poetry]
dependencies.python = "^3.11"
dependencies.foo = { git = "https://github.com/example/foo", branch = "main" }
dependencies.zebra = "^1.0"
source = [ { name = "private", url = "https://pypi.example.com/simple", priority = "primary" } ]

[tool.mypy]

Covers all documented mypy options plus the [[tool.mypy.overrides]] array of tables. Keys are reordered to match the section structure of the official mypy configuration reference.

Top-level key ordering (sectioned):

  1. Import discovery: mypy_pathfilesmodulespackagesexcludeexclude_gitignorenamespace_packagesexplicit_package_basesignore_missing_importsfollow_untyped_importsfollow_importsfollow_imports_for_stubspython_executableno_site_packagesno_silence_site_packages

  2. Platform configuration: python_versionplatformalways_truealways_false

  3. Disallow dynamic typing: disallow_any_unimporteddisallow_any_exprdisallow_any_decorateddisallow_any_explicitdisallow_any_genericsdisallow_subclassing_any

  4. Untyped definitions and calls: disallow_untyped_callsuntyped_calls_excludedisallow_untyped_defsdisallow_incomplete_defscheck_untyped_defsdisallow_untyped_decorators

  5. None and Optional: implicit_optionalstrict_optional

  6. Configuring warnings: warn_redundant_castswarn_unused_ignoreswarn_no_returnwarn_return_anywarn_unreachabledeprecated_calls_exclude

  7. Suppressing errors: ignore_errors

  8. Miscellaneous strictness: allow_untyped_globalsallow_redefinitionlocal_partial_typesdisable_error_codeenable_error_codeextra_checksimplicit_reexportstrict_equalitystrict_bytesstrict

  9. Configuring error messages: show_error_contextshow_column_numbersshow_error_endhide_error_codesshow_error_code_linksprettycolor_outputerror_summaryshow_absolute_path

  10. Incremental mode: incrementalcache_dirsqlite_cachecache_fine_grainedskip_version_checkskip_cache_mtime_checks

  11. Advanced options: pluginspdbshow_tracebackraise_exceptionscustom_typing_modulecustom_typeshed_dirwarn_incomplete_stubnative_parser

  12. Report generation: any_exprs_reportcobertura_xml_reporthtml_reportlinecount_reportlinecoverage_reportlineprecision_reporttxt_reportxml_reportxslt_html_reportxslt_txt_report

  13. Miscellaneous: junit_xmljunit_formatscripts_are_moduleswarn_unused_configsverbosity

  14. overrides last.

``[[tool.mypy.overrides]]`` entry key ordering:

module first (required), then per-module overridable keys in the same logical grouping as the parent table (import behavior, platform markers, disallow dynamic typing, untyped defs/calls, optional handling, warnings, suppression, miscellaneous strictness).

Sorted arrays:

  • Top-level: files, modules, packages, exclude, always_true, always_false, untyped_calls_exclude, deprecated_calls_exclude, disable_error_code, enable_error_code.

  • Inside overrides entries: module (when an array of patterns), always_true, always_false, disable_error_code, enable_error_code.

plugins and mypy_path are deliberately preserved as written: plugins run in declared order and reordering changes behavior; mypy_path is a search path with priority semantics.

Inline-table handling:

When [[tool.mypy.overrides]] collapses to overrides = [{...}, {...}] under the default table_format = "short", key order inside each entry is normalized via discriminators unique to mypy (disable_error_code / enable_error_code / ignore_missing_imports / follow_untyped_imports / ignore_errors / warn_unused_ignores / disallow_untyped_defs / check_untyped_defs). The arrays inside each inline entry are sorted in place, so disable_error_code = [...] is alphabetized whether the override is expanded or collapsed.

# Before
[[tool.mypy.overrides]]
ignore_missing_imports = true
disable_error_code = ["import-untyped", "attr-defined"]
module = "third_party.*"

# After
[tool.mypy]
overrides = [
  { module = "third_party.*", ignore_missing_imports = true, disable_error_code = [ "attr-defined", "import-untyped" ] },
]

[tool.setuptools] and [tool.setuptools_scm]

Covers the setuptools build backend and the version-from-SCM plugin.

``[tool.setuptools]`` top-level key ordering (grouped):

  1. Packaging discovery: py-modulespackages.find.* / packages.find-namespace.*packagespackage-dir

  2. Package data: include-package-datapackage-dataexclude-package-data

  3. Dynamic metadata: dynamic

  4. Extensions / build customization: ext-modulescmdclass

  5. Distribution metadata: platformsprovidesobsoleteslicense-files

  6. Data files: data-files

  7. Deprecated / obsolete (pushed last): script-filesnamespace-packageszip-safeeager-resourcesdependency-links

``[tool.setuptools.packages.find]`` / ``[tool.setuptools.packages.find-namespace]`` inner ordering:

whereincludeexcludenamespaces.

``[tool.setuptools.package-data]`` / ``[tool.setuptools.exclude-package-data]`` / ``[tool.setuptools.data-files]`` ordering:

The catch-all "*" pattern always goes first, then the other package patterns alphabetically. Each value (an array of glob patterns) is sorted alphabetically.

``[tool.setuptools.dynamic]`` ordering:

Field names alphabetized. Inline-table directives (e.g. version = { attr = "pkg.__version__" } or readme = { file = "README.md", content-type = "text/markdown" }) get their keys ordered attrfilecontent-type.

Sorted arrays:

  • py-modules, platforms, provides, obsoletes, script-files, namespace-packages, eager-resources: alphabetized.

  • packages.find.include / packages.find.exclude / packages.find-namespace.*: alphabetized.

  • Values inside package-data / exclude-package-data / data-files tables: alphabetized.

Arrays whose order is meaningful are preserved as written: packages (literal list — first match wins), license-files (PEP 639 concatenation order), and everything under [[tool.setuptools.ext-modules]] (compiler and linker argv arrays).

``[tool.setuptools_scm]`` key ordering (grouped):

  1. Version output: version_fileversion_file_template

  2. Version computation: version_schemelocal_schemeversion_clsnormalize

  3. Root discovery: rootrelative_tofallback_rootparentsearch_parent_directoriesdist_name

  4. Tag / parse: tag_regexparseparentdir_prefix_versionfallback_version

  5. Nested SCM-specific tables: scm.git.pre_parsescm.git.describe_command

  6. Deprecated (pushed last): git_describe_command (use scm.git.describe_command) → write_to (use version_file) → write_to_template (use version_file_template) → version_class (use version_cls) → template

# Before
[tool.setuptools]
zip-safe = false
py-modules = ["foo", "bar"]
packages = ["my_pkg"]

[tool.setuptools.packages.find]
namespaces = true
where = ["src"]
include = ["my_pkg*"]

[tool.setuptools.dynamic]
readme = { content-type = "text/markdown", file = "README.md" }

# After
[tool.setuptools]
py-modules = [ "bar", "foo" ]
packages.find.where = [ "src" ]
packages.find.include = [ "my_pkg*" ]
packages.find.namespaces = true
packages = [ "my_pkg" ]
dynamic.readme = { file = "README.md", content-type = "text/markdown" }
zip-safe = false

[tool.pytest.ini_options]

Covers the pytest configuration block. Keys are grouped to follow the pytest reference: pytest itself → discovery → CLI arguments → markers/parametrize → warnings → doctest → output → logging (capture / CLI / file) → JUnit XML → cache and tmp_path → assertion / faulthandler.

Sorted arrays (set/unordered semantics):

testpaths, norecursedirs, collect_ignore, collect_ignore_glob, python_files, python_classes, python_functions, markers, filterwarnings, doctest_optionflags, usefixtures, required_plugins.

addopts and pythonpath are deliberately preserved as written: addopts is CLI argv (order matters) and pythonpath is a search path with priority semantics.

# Before
[tool.pytest.ini_options]
log_cli_level = "INFO"
markers = [ "slow: marks tests as slow", "fast: marks tests as fast" ]
addopts = [ "--strict-markers", "-ra" ]
testpaths = [ "tests" ]
minversion = "8"

# After
[tool.pytest]
ini_options.minversion = "8"
ini_options.testpaths = [ "tests" ]
ini_options.addopts = [ "--strict-markers", "-ra" ]
ini_options.markers = [ "fast: marks tests as fast", "slow: marks tests as slow" ]
ini_options.log_cli_level = "INFO"

[tool.black]

Black’s configuration is small but ubiquitous. Keys are ordered: required-versiontarget-versionline-lengthinclude / extend-exclude / force-exclude / exclude → behavior flags (skip-string-normalization, skip-magic-trailing-comma, preview, unstable, enable-unstable-feature, fast, workers) → output (color, verbose, quiet).

Sorted arrays:

  • target-version: alphabetized so py39 precedes py310 etc.

  • enable-unstable-feature: alphabetized.

The include / exclude family are regex strings, not arrays, so they’re left as-is.

[tool.hatch.*]

Hatch configuration spans many sub-tables. Keys at [tool.hatch] level (which after collapse appear as dotted version.* / build.* / metadata.* / envs.* / publish.* / workspace.*) are ordered:

  1. Version: version.sourceversion.pathversion.patternversion.expressionversion.schemeversion.validate-bumpversion.fallback-versionversion.raw-options.

  2. Metadata: metadata.allow-direct-referencesmetadata.allow-ambiguous-featuresmetadata.hooks.

  3. Build: build.dev-mode-dirsbuild.directorybuild.sourcesbuild.packagesbuild.includebuild.excludebuild.force-includebuild.artifactsbuild.ignore-vcsbuild.skip-excluded-dirsbuild.reproduciblebuild.hooks → wheel target (packages, include, exclude, force-include, artifacts, hooks, shared-data, extra-metadata, etc.) → sdist target (include, exclude, force-include, support-legacy, strict-naming).

  4. Publish: publish.index.disablepublish.index.repospublish.index.

  5. Workspace: workspace.membersworkspace.exclude.

  6. Environments (envs.<name>.*): each environment’s keys follow typetemplatedetacheddescriptionplatformspythonpathinstallerskip-installsystem-packagesdev-modefeaturesdependenciesextra-dependenciesextra-argspre-install-commandspost-install-commandsenv-includeenv-excludeenv-varsscriptsmatrixmatrix-name-formatoverrides.

Sorted arrays:

  • Build: include, exclude, force-include, artifacts, packages, sources, dev-mode-dirs, and the matching build.targets.wheel.* / build.targets.sdist.* arrays.

  • Environments: per-env dependencies, extra-dependencies, features, platforms, env-include, env-exclude, pre-install-commands, post-install-commands.

  • Workspace: members, exclude.

scripts and env-vars sub-tables under each environment have their inner keys alphabetized. Build hook order and matrix entry order are preserved as written (both carry semantic meaning).

[tool.isort]

Covers the isort import sorter. profile first (it sets defaults that everything else overrides), then output style (line/wrap/indent/multi-line options), then known sources (sectionsdefault_sectionknown_standard_library / extra_standard_library / known_third_party / known_first_party / known_local_folder / known_other), then forced separation, skip patterns, import add/remove, and section heading comments.

Sorted arrays:

known_standard_library, extra_standard_library, known_third_party, known_first_party, known_local_folder, known_other, namespace_packages, src_paths, skip, skip_glob, extend_skip, extend_skip_glob, supported_extensions, blocked_extensions, single_line_exclusions, forced_separate, treat_comments_as_code, treat_all_comments_as_code, constants, variables.

Order-sensitive arrays preserved as written: sections (output section sequence), no_lines_before, add_imports, remove_imports, required_imports, force_to_top.

[tool.pyright] and [tool.basedpyright]

Both type checkers share the same configuration schema. Keys are ordered: platform/interpreter (pythonVersionpythonPlatformpythonPathvenvvenvPathtypeshedPathstubPath) → mode flags (typeCheckingModestrictfailOnWarningsuseLibraryCodeForTypes) → paths (includeexcludeignoreextraPaths) → strict-flavor toggles (strictListInference, strictDictionaryInference, strictSetInference, strictParameterNoneValue, enableExperimentalFeatures, enableTypeIgnoreComments, analyzeUnannotatedFunctions, disableBytesTypePromotions, deprecateTypingAliases) → defineConstantall ``report*`` rules alphabetizedexecutionEnvironments (last).

The report* rules (70+ in pyright; basedpyright adds more) are collected from the input and inserted alphabetically rather than hardcoded, so new diagnostic rules don’t require formatter changes.

Sorted arrays: include, exclude, ignore, extraPaths, strict.

[tool.pdm.*]

Covers PDM. Top-level ordering: distribution / package-type / plugins → resolution → version → build → scripts → source → dev-dependencies → publish → options.

Sub-table ordering (collapsed to dotted keys):

  • version: sourcepathgetterwrite_towrite_templatetag_regextag_filterfallback_versionversion_format.

  • build: includesexcludessource-includespackage-diris-purelibrun-setuptoolscustom-hookeditable-backend.

  • [[tool.pdm.source]] (AoT, preserve array order): per-entry nameurltypeverify_sslinclude_packagesexclude_packages.

Sorted arrays: plugins, build.includes, build.excludes, build.source-includes, resolution.excludes, every dev-dependencies.<group> value array, and include_packages / exclude_packages inside source entries.

[tool.cibuildwheel]

Covers cibuildwheel. Top-level ordering: selection (build, skip, test-skip, archs, enable, free-threaded-support) → build configuration (build-frontend, build-verbosity, config-settings, dependency-versions, environment, environment-pass) → build phases (before-all, before-build, repair-wheel-command) → test phases (before-test, test-command, test-requires, test-extras, test-groups, test-sources) → platform images (manylinux-*-image, musllinux-*-image) → container-engine → per-platform sub-tables (linux, macos, windows, android, ios, pyodide) → overrides last.

Per-platform sub-tables follow the same inner ordering. [[tool.cibuildwheel.overrides]] entries place select first (required), then the regular cibuildwheel keys; the array order itself is preserved (later overrides win).

Sorted arrays: enable, test-extras, test-groups.

Most other array-valued keys (test-requires, before-all, test-command, the various environment* fields) are CLI argv or ordered lists and are preserved as written.

[tool.tox]

Reuses the rules from tox-toml-fmt so a [tool.tox] block in pyproject.toml is formatted identically to a standalone tox.toml: alias normalization (envlistenv_list, setenvset_env, etc.), canonical key ordering for the root table and every env table, PEP 508 requirement normalization and sorting in deps and constraints, sorted pass_env (inline-table entries first), version-aware env_list sorting (py313 before py312 before py311), and inline-table reordering for replace, prefix, product, and value directives.

See the tox-toml-fmt documentation for the full schema and per-key behavior; the only difference here is the namespace (tool.tox instead of the root table).

[tool.bandit]

Top-level ordering: exclude_dirstargetstestsskips → per-plugin sub-tables (assert_used, hardcoded_tmp_directory, etc.).

All array values alphabetize (rule IDs, directory paths, function-name lists — all set semantics).

[tool.maturin]

Maturin builds Rust extensions for Python. Top-level ordering: module identity (module-name, bindings, python-source, python-packages, python-bin-path) → source layout (src, manifest-path, include, exclude, sdist-include, sdist-generator, data) → cargo settings (features, no-default-features, all-features, cargo-extra-args, rustc-extra-args, config, profile, target, target-dir) → compatibility / strip (compatibility, auditwheel, skip-auditwheel, strip, frozen, locked, offline, zig) → behavior (use-cross).

Sorted arrays: python-packages, include, exclude, sdist-include, features (all set-semantics). cargo-extra-args / rustc-extra-args are CLI argv and preserved.

[tool.codespell]

Top-level ordering: dictionaries (builtin, dictionary, ignore-words, ignore-words-list, ignore-regex, ignore-multiline-regex, exclude-file) → scope (skip, uri-ignore-words-list, check-filenames, check-hidden, hidden, regex, user-input) → fix behavior (write-changes, interactive, enable-colors, disable-colors) → output (count, quiet-level, summary).

Sorted arrays: builtin, dictionary, skip, ignore-words-list, uri-ignore-words-list.

[tool.towncrier]

Top-level ordering: package identity (name, version, package, package_dir) → news location (directory, filename, start_string, template, title_format, issue_format, underlines) → rendering (wrap, all_bullets, single_file, orphan_prefix, create_eof_newline, create_add_extension) → behavior (ignore) → type and section (AoT, last).

[[tool.towncrier.type]] entries get keys ordered directorynameshowcontent; [[tool.towncrier.section]] entries get pathnameshowcontent. Array order is preserved (display order in the rendered changelog).

Sorted arrays: ignore (file globs to skip).

[tool.pylint.*]

Sub-table order: main (and legacy alias master) → messages_controlreportsbasicformatdesignclassesexceptionsimportsloggingmethod_argsrefactoringsimilaritiesspellingstringtypecheckvariablesmiscellaneous.

Sorted arrays: enable, disable, load-plugins, extension-pkg-allow-list, extension-pkg-whitelist, ignore, ignore-patterns, ignore-paths, ignored-modules, ignored-classes, ignored-argument-names, good-names, bad-names, logging-modules, valid-classmethod-first-arg, valid-metaclass-classmethod-first-arg, callbacks, additional-builtins, allowed-redefined-builtins, preferred-modules, deprecated-modules, known-third-party, known-standard-library, allowed-modules, expected-line-ending-format, overgeneral-exceptions, defining-attr-methods, exclude-protected. Match is on the leaf key name regardless of which sub-table it appears in.

[tool.djlint]

Profile/scope → formatting → linting → ignores → output. Sorted arrays: exclude, extend_exclude, custom_blocks, custom_html, ignore, ignore_blocks.

[tool.yapf]

Single flat table. based_on_style first (it sets defaults), then column_limit, indent_width, continuation_indent_width, then the rest alphabetized.

[tool.check-manifest]

ignoreignore-bad-ideasignore-default-rules. Both ignore and ignore-bad-ideas (file-glob lists) alphabetize.

[tool.pyrefly]

Meta’s type checker. Order: python_versionpython_platformpython_interpreterproject_includesproject_excludessearch_pathsite_package_pathuse_untyped_importsreplace_imports_with_anyignore_errors_in_generated_codeerrors. Path arrays alphabetize.

[tool.semantic_release]

python-semantic-release. Order: tag/version → assets → version source → repo → commit parser → branches → publish → changelog → remote. Sorted arrays: version_variables, version_toml, assets, exclude_commit_patterns.

[tool.scikit-build]

scikit-build-core (CMake builds for Python). Top-level order: meta keys (minimum-version, build-dir, fail, experimental, strict-config) → buildcmakeninjasdistwheelinstalleditablelogging / messagesmetadatasearchgenerate AoT → overrides AoT.

Sorted arrays: include, exclude, packages, files, targets, components, exclude-fields. args and define (CLI argv for cmake/ninja) are preserved as written.

[tool.bumpversion]

bump-my-version / legacy bumpversion. Order: identity (current_version) → format (parse, serialize, search, replace, regex, ignore_missing_*) → tag (tag, sign_tags, tag_name, tag_message) → commit (allow_dirty, commit, commit_args, message, moveable_tags) → behavior → files / parts AoT last.

[tool.interrogate]

Docstring coverage. Threshold → ignore flags → exclude → output. Sorted arrays: exclude, extend-exclude, ignore-regex.

[tool.docformatter]

Docstring formatter. Order: behavior (in-place, recursive, check, diff, black, pep257, non-strict) → format width (line-length, wrap-summaries, wrap-descriptions, tab-width) → wrap/summary tweaks → other.

[tool.vulture]

Dead-code finder. Order: paths → ignore (exclude, ignore_names, ignore_decorators) → behavior (make_whitelist, min_confidence, sort_by_size) → output (verbose). Sorted arrays: paths, exclude, ignore_names, ignore_decorators.

[tool.autopep8]

PEP8 auto-fixer. Order: length/indent → mode (in-place, recursive, diff, list-fixes) → rules (ignore, select, exclude) → behavior. Sorted arrays: ignore, select, exclude.

[tool.deptry]

Dependency checker. Order: scope/exclude → ignore rules → per-rule ignores → behavior → mapping. Sorted arrays cover all the ignore_* / exclude / requirements_files / pep621_dev_dependency_groups / known_first_party lists.

[tool.ty]

Astral’s type checker. Order: srcrespect-ignore-filesenvironmentrulesterminaloverrides last. src array alphabetizes. Schema is still pre-1.0; unknown keys alphabetize after the canonical set.

Other Tables

Any unrecognized tables are preserved and reordered according to standard table ordering rules. Keys within unknown tables are not reordered or normalized. Requires-Dist: tomli>=2.4.1; python_version<’3.11’

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyproject_fmt-2.22.0.tar.gz (269.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyproject_fmt-2.22.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded PyPymacOS 11.0+ ARM64

pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ x86-64

pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.15tmusllinux: musl 1.2+ ARM64

pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ x86-64

pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.28+ ARM64

pyproject_fmt-2.22.0-cp315-cp315t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.15tmacOS 11.0+ ARM64

pyproject_fmt-2.22.0-cp315-cp315t-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.15tmacOS 10.12+ x86-64

pyproject_fmt-2.22.0-cp314-cp314t-win_arm64.whl (4.8 MB view details)

Uploaded CPython 3.14tWindows ARM64

pyproject_fmt-2.22.0-cp314-cp314t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.14tWindows x86-64

pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ x86-64

pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.14tmusllinux: musl 1.2+ ARM64

pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ x86-64

pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.28+ ARM64

pyproject_fmt-2.22.0-cp314-cp314t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

pyproject_fmt-2.22.0-cp314-cp314t-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.14tmacOS 10.12+ x86-64

pyproject_fmt-2.22.0-cp313-cp313t-win_arm64.whl (4.8 MB view details)

Uploaded CPython 3.13tWindows ARM64

pyproject_fmt-2.22.0-cp313-cp313t-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.13tWindows x86-64

pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ x86-64

pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

pyproject_fmt-2.22.0-cp313-cp313t-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.13tmacOS 11.0+ ARM64

pyproject_fmt-2.22.0-cp313-cp313t-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13tmacOS 10.12+ x86-64

pyproject_fmt-2.22.0-cp310-abi3-win_arm64.whl (4.8 MB view details)

Uploaded CPython 3.10+Windows ARM64

pyproject_fmt-2.22.0-cp310-abi3-win_amd64.whl (5.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_x86_64.whl (5.6 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ ARM64

pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_31_riscv64.whl (5.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.31+ riscv64

pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_x86_64.whl (5.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ x86-64

pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_aarch64.whl (5.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.28+ ARM64

pyproject_fmt-2.22.0-cp310-abi3-macosx_11_0_arm64.whl (4.9 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

pyproject_fmt-2.22.0-cp310-abi3-macosx_10_12_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file pyproject_fmt-2.22.0.tar.gz.

File metadata

  • Download URL: pyproject_fmt-2.22.0.tar.gz
  • Upload date:
  • Size: 269.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for pyproject_fmt-2.22.0.tar.gz
Algorithm Hash digest
SHA256 add6fc8505fb70543f20262101626482dfc5245c31658c14a19348270034ff72
MD5 c485b9dc9667c3a2026f7e16ee7a5c34
BLAKE2b-256 a04efe52020f45cd5d70008da1c52b7959f97ff7063e42f76b74c77c9d8c6439

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0.tar.gz:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 833bba10ace6c3558a140fbb45182af206a6dbf4aaeb7a65ad3a84189c03631a
MD5 74896eda26f5cc078b9803ac9ef84da5
BLAKE2b-256 d3bec8070bfafc8d50e18643a99567fc4e48a85003a65ce0c3f44bbcede266a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba7560d1d9232d1dd3fa712f2ddff1b54c2e47536258131963f2852f15812e2b
MD5 3b0b53a3d061a8fd9137d3705eb56fb4
BLAKE2b-256 c1912af646e2c4fd8d8913eaa982211dbb30fb04618c4afe32ff537a3307eba9

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 910dd48b2eca7a7b0594d53f6dde59e202ba1b796b7bc4cc5218073079cce93d
MD5 2cbffc38c37afc895c3a69c3083d83d8
BLAKE2b-256 e8e9bd0c172e4cc2f88927bc792a22aa55f6b2e4ea5bbd1e28cc76255cd0f2f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 62828c3375393e5d186336c95581e74a371a8be7d9c23487ad73e6be8c64fd42
MD5 fea03daed4cfc7f512d58934088dc778
BLAKE2b-256 bc9248518ece7d3f91278bf15e0b3594fe19b5ec9fcadff859a7c176e3c3c07c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 77153663b73ecc53053da49b7bd5bfbab4bf7ea5102d812c73a99a9c6437edce
MD5 abf6e5c4e86609c813fce56782e91a3b
BLAKE2b-256 07272ac153d8d89f162b3892261e297b54c9153ec2cb001244e711ba15d442d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-musllinux_1_2_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a75e7e3586f1bcc183dea80bd0c1db81cf20edc934695725671842b38e41d577
MD5 a8c584cd0825503652cad9a666971f14
BLAKE2b-256 cc7a2d84059b26e4b785112897d3b7adc5c00e69dbe94e05f9a6ae640eb70e1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 42fc19884fa893c10fecee18dc97067850b94afd56431f548c03212a2117c77c
MD5 cdcf5e08084e96ccde32b23857ff76a1
BLAKE2b-256 3fe2215f3ad823e0c77dddb50ef30b9e43c8a6b17f1990300cf555212ca48e92

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-manylinux_2_28_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24abc2a154c5a01dd051b1fdf500c24835a689e4a594edcffc0ff04d8d7d4e5b
MD5 d7dd5492111dec4bbf113fda7795e34a
BLAKE2b-256 a2a7fb964632ae9321b011aecf4fe04a6b91d09c6fa0692087d23d21ce3755e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-macosx_11_0_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp315-cp315t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp315-cp315t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 29c12228909b4d61e1af4df26ed4ae5a3d320d6d8f0b57a6ecc7775552d7aca5
MD5 d9f8767acbdb5712cb7148b04381322a
BLAKE2b-256 b3cc35da723c01dae93991140e1c26d65a11055b7b25c153343aa6e898ca6267

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp315-cp315t-macosx_10_12_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-win_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-win_arm64.whl
Algorithm Hash digest
SHA256 f89f0bab0ac93135dba6d69074c3afe1b82aa89b6c92cc3eed11dda6170ec36f
MD5 ee635add90696b926b7aa74af6cd9380
BLAKE2b-256 24c797516d55c071123a6cda4d866347052460de557ec327eb0b417c44ba5310

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-win_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 825a73ed3310e557df591e47919e1df089fe3847c7a4daa3346fbe258da4717f
MD5 dd2e189cd3ee0ed5774e92b3374b8a54
BLAKE2b-256 5f90f62030183fc56a57d84ccd255e39973bd10caeee86df6182c4025dd81831

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-win_amd64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bbd54328f14254b99b0eca0839d4a84189a1d89a3490bcfcacea58c853e09345
MD5 da676f62c524858fd0b17c843ee35672
BLAKE2b-256 3651c45391a89808b0f02a6d657bc2f0f38d010409df5f349894a3d0682b02ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d4009a3c69a1add22691eebd59bdc505d7c3913ded1de0f2d7ce516347daf64
MD5 8501054b239f8bf821b1f748378e2d4f
BLAKE2b-256 9628a12776f3a30e1fe813677850fa8b875ddafc0f1cbf6a67bd00492f7b2694

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-musllinux_1_2_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e2a6723b75c871c537d70ff3e0df6537f0f62c9a52629208a82ffbbc92568ae8
MD5 992f6c033a65e8792b20a5a48ddbdc28
BLAKE2b-256 115b6daf28fc1574672c39cfa42ead60ba116230475c630a435007ed6fa38fa6

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 ee2a3bcd7be623cb9aec7a8a18619f232a828442d0b8fa87357fc1e2a4f616e0
MD5 fd739396c1a40b931a2a359579b0ea99
BLAKE2b-256 4a95d5fc595b76961fd1dc76188743e72556d01c8bc1eed7d1763a8b0d0dc98c

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-manylinux_2_28_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 942b1ebcd45db8f1a0a5efd70cdbf58c42d24f24b1c7f431755334edb46357cc
MD5 6d00882064bc0c2aaaba9824f83e12e2
BLAKE2b-256 6c60d8e071649b7c5bea0467657474464cde31837d8e1580456dcae94caae1c1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-macosx_11_0_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp314-cp314t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp314-cp314t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ca9c33ccd97359a7192ebe31938248aaaee65a32fe6e2a7ff25963966c22bb84
MD5 7e9721b52fc3effaf2387f5925d2a114
BLAKE2b-256 0fbfd62143a751b8c818ad0a80bb38c2467a7257fa6ea6dbdc7afbdd9ebd770f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp314-cp314t-macosx_10_12_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-win_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-win_arm64.whl
Algorithm Hash digest
SHA256 af650c7be412a0ed1651522b776156a6b71ebfcb5db0b03128ace23d36318fce
MD5 9a42303ad0f7cd8db44cdc1df217d64e
BLAKE2b-256 659e7f56cf045880ad9f76c786f9297c5b16c47fcf200ef4ed669ecc76435a30

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-win_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-win_amd64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-win_amd64.whl
Algorithm Hash digest
SHA256 faaf5956ad31c70485566c0a1b405d169b38e60cb44d2fe09c1d6e1992df5919
MD5 ece7a459795220084ce4fa24cda113c3
BLAKE2b-256 7bb586134dc3a5d512a8c6736705de2cb94c442f4a74832cdbd0e2e08db5b577

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-win_amd64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7525f7747680d5326e8512824faf884babe49f075b942aa2b8d68a0d642bf099
MD5 59fbc50439f98125bb03817d8a11f505
BLAKE2b-256 ed89f435e8ffa9ec161874b0e36c7d8af6d67358a63ade2ef7e638fbeda010e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 a36b6cb3347f5cc05b7f1bc9a8092ebd683f7e5388b548b22a845c7ca55266cf
MD5 16ab86a714100833b907b81940b3adb0
BLAKE2b-256 a66b202a951a602b4b0de7aa0bc25f9ccef93324cc15f6a405e83ea80da089ac

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-musllinux_1_2_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 741ed46e89bef052686fb9422513550d950b07abe2cd57382bcdb75f041496db
MD5 7765b8caa7c69797e201b41f9ba7a8ff
BLAKE2b-256 5e67b0d8deec84aa40a71ef1e0e580be3df87ea151f91d0a90ce16835eb7cb66

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4dcd17a79bf35cb9c7448e6a18f131037574f761a5164dcbbe1d7722e1fe553
MD5 2d3a3b3ac841b67b018ecac5b9d4d0ca
BLAKE2b-256 0f249bcabdae731d09166edac734603467e1d497f13237e195355f42b8f08644

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-manylinux_2_28_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 427585f6a99a574fbd61901da0a0a9f986e2e80fdb4ffd112b4465703bb4b5cf
MD5 57dc710f0759c7b535ff854f0bb6b28c
BLAKE2b-256 29d43ebf92d36769ce8b4f9a1f3949fcbcecd15262b5eed356886780d216f157

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-macosx_11_0_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp313-cp313t-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp313-cp313t-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 88bed062aa8380d6888726cae12d09f026aab42bd3132863e81a7df4a3abedb5
MD5 58b74ce549aa98e95f980e07ec61b560
BLAKE2b-256 9a2b88443bec00f1e20f3646dc833d6d33ca48df218760be4966f842184777bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp313-cp313t-macosx_10_12_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-win_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 578bab51f34852c4ed81ef91c8154127de897d902f06aadbc380011db022f4ff
MD5 76f8a1d21785c743b467613dbdf69998
BLAKE2b-256 68183d6b971ff195d68bb9b519de891236fcb2f520b99950e540ba58a8ebd7aa

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-win_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 5fdd9b414fb2df0f8d94d68f1efb8db12cd1b457eaf7021fcd257810c03b471a
MD5 93efdf07e1b771bc0ab6b12229846637
BLAKE2b-256 284a0d5fb6d81cc0d3ea65d49ef0783c4ede20a75d65f318f24e365e850d2a93

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-win_amd64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 927f4af6ae5552a5ed81f741675891b4d536d40324cdc1a8a5227e0d88ecdfb8
MD5 e206f1168e7e084a486913429d3cc6c6
BLAKE2b-256 38261b642379cad5db024fa6bc52c42d2b11a3da8ab5642580d85b7be2a0621f

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 43cd930109ebb99598cafb531c6d4240ceeabada48329c6142d3180766ea1358
MD5 9fc58d0b5c575fe634ee7c7274a6cbff
BLAKE2b-256 5ce4be31f4ce0101dd8e4cb8f55d3217ec92e2d87806acb5df13a14cdc994bd0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-musllinux_1_2_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_31_riscv64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_31_riscv64.whl
Algorithm Hash digest
SHA256 9b2b7667059c795e95049ab774ecf87f2057e46867f07d89eb90ab6add2c07ee
MD5 f39e4f728c2dc9c5804a90f5a5f9430a
BLAKE2b-256 2dcf1fd2196f8f185be975d94ba44c6fdc514457258413943948131185a0d7f7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_31_riscv64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 49e8551a95da299a74a3b509899b26bf11132f871d80eefdde3837e4ad6b556a
MD5 d9f15891bff57eb3ca600762d0b57c18
BLAKE2b-256 8b02cb49cb1db1b24898697108123c1ca32f13d251aabc2c73102fa8a8af3e83

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b836e6c49ac9becbd8f049e5ef367154262f711e57d3d49da52e06ec4e3937fd
MD5 c8ff6128c924fb03c0ca2a38631cdd6f
BLAKE2b-256 433cb06d64e8d34c47a0ca5c2b603400221ae223c8c49ab5ce3554d959a4b1a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-manylinux_2_28_aarch64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6b678ee942b88b35185b498e817b176991ee5a4d51933f3510ac71016149f65f
MD5 d43d74f2f21380fd1372750ecc8d79ce
BLAKE2b-256 03f73194e7c3322aadffbf7ce543cdaf1b36bf9604586636daa94e29fbf57f63

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyproject_fmt-2.22.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyproject_fmt-2.22.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 add1879c71317cdf5c4be9415874bd5bb552d843879bacdd2cde1865e5a1a1c6
MD5 b0bad5deac2e8c8769b819a0145b9e62
BLAKE2b-256 bae6471f706072435dc8a2b292f8534a35ea8cf585330a695eb4f41a83934848

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyproject_fmt-2.22.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: pyproject_fmt_build.yaml on tox-dev/toml-fmt

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page