Skip to main content

emend

A Python refactoring CLI built on tree-sitter with a Rust backend. The name means "to make corrections to a text" — which is what it does, but with AST-aware precision instead of find-and-replace.

Two complementary systems: structured edits use selectors like file.py::func[params][0] for precise changes to symbol metadata, and pattern transforms use capture variables like print($X) → logger.info($X) for code-pattern search and replace.

Installation

uv tool install --python 3.14t emend

Python 3.13+ ships a free-threaded variant (3.13t, 3.14t) that removes the GIL. emend's Rust core (emend_core) is already GIL-free (built with #[pymodule(gil_used = false)]), so on free-threaded Python it can run parallel file scans with no lock contention — meaning find, lint, analyze refs, and edit rename across large codebases are significantly faster.

We recommend 3.14t for the latest free-threaded runtime. Python 3.13t remains supported, and both variants can run the optional MCP server:

uv tool install --python 3.14t emend   # latest free-threaded runtime
uv tool install --python 3.13t emend   # free-threaded 3.13

Using uv (standard Python)

uv tool install emend

Using pip

pip install emend

MCP server

To use emend as an MCP server for LLM-based clients, install the optional mcp extra:

pip install emend[mcp]

Then start the server:

emend mcp                              # stdio transport (default)
emend mcp --transport sse --port 8080  # SSE transport

The optional extra installs MCP SDK v2 (mcp>=2.0).

Adding emend to Claude Code

The quickest way is the claude mcp add CLI:

# Add for the current project (default scope: local)
claude mcp add --transport stdio emend -- emend mcp

# Or share with your team via .mcp.json (project scope)
claude mcp add --transport stdio --scope project emend -- emend mcp

If you installed with uv tool install, make sure the emend binary is on your PATH, or use the full path:

claude mcp add --transport stdio emend -- uvx emend mcp

You can also add it by editing configuration JSON directly. For a personal setup, run:

claude mcp add-json emend '{"type":"stdio","command":"emend","args":["mcp"]}'

For a team-shared setup, add a .mcp.json file to your project root (and commit it to version control):

{
  "mcpServers": {
    "emend": {
      "type": "stdio",
      "command": "emend",
      "args": ["mcp"]
    }
  }
}

Verify it's connected:

claude mcp list          # from the terminal

Or inside Claude Code, type /mcp to see all connected servers and their status.

See the Claude Code MCP documentation for details on scopes, environment variables, and managed configurations.

Run emend --help to verify. Full documentation at lucaswiman.github.io/emend.

Vim / Neovim plugin

emend ships with a Vim/Neovim plugin for interactive code search. Install with vim-plug:

Plug 'lucaswiman/emend', { 'rtp': 'vim' }

Then use :Emend to open the search prompt, or :Emend parse to search directly. The plugin communicates with emend tool editor-server via JSON-RPC over stdio pipes — the server stays warm for sub-5ms lookups.

For local development, point to your checkout:

Plug '~/src/emend', { 'rtp': 'vim' }
let g:emend_command = '~/src/emend/.venv/bin/emend'

See vim/README.md for full documentation.

After installing, run emend tool index in your project root to pre-build caches:

emend tool index                  # index current directory
emend tool index src/ --jobs 8    # index specific directory with 8 workers

This parses every Python file and builds a qualified-name index, so subsequent cross-project operations (analyze refs, edit rename, analyze graph, analyze deadcode) are significantly faster. The cache is stored in .emend/cache/parse.db (automatically gitignored and dockerignored) and is keyed by file content hash, so it self-invalidates when files change. Each Git worktree keeps its own mutable parse.db and facts.db snapshots so switching branches cannot contaminate another worktree's analysis.

The MCP server (emend mcp) starts without eagerly indexing the whole project; analysis tools build or refresh the facts they need on demand.

MCP Server

The MCP server now uses a smaller discriminated tool surface:

  1. search — Code search, symbol lookup, and summary listing
  2. transform — Pattern replace plus selector-based edits, adds, removes, copies, moves, and renames
  3. references — References, callers, and callees
  4. analyze — Graph, deadcode, impact, semantic context, and flow analysis
  5. check — Unified project rules from .emend/rules.yaml
  6. mappings — Cross-repo identifier and module mappings
  7. grammar_and_cookbook — Syntax reference and cookbook text

See the grammar_and_cookbook.rst reference for full command documentation.

Usage

emend <command> [options]

Workflow

All mutating commands default to dry-run, showing a diff of proposed changes. Re-run with --apply to write them. You'll probably want to run a formatter (black/ruff/isort) afterward, since emend doesn't try to preserve exact formatting.

Selector Syntax

Three types of selectors:

Symbol Selectors

file.py::Class.method.nested   # Nested symbol path
file.py::func                  # Module-level symbol

Extended Selectors (with components)

file.py::func[params]           # Function parameters
file.py::func[params][ctx]      # Specific parameter (by name)
file.py::func[params][0]        # Specific parameter (by index)
file.py::func[returns]          # Return annotation
file.py::func[decorators]       # Decorator list
file.py::MyClass[bases]         # Base classes
file.py::func[body]             # Function body

Pseudo-class Selectors

file.py::func[params]:KEYWORD_ONLY       # Keyword-only parameter slot
file.py::func[params]:POSITIONAL_ONLY    # Positional-only parameter slot

Line Selectors

file.py:42                      # Single line
file.py:42-100                  # Line range

Wildcard Selectors

file.py::*[params]              # All function parameters
file.py::Test*[decorators]      # Test class parameters
file.py::*.*[returns]           # All method return types
file.py::Class.*[body]          # All method bodies in Class

Wildcards support glob patterns:

  • * - Match any symbol at this level
  • Test* - Match symbols starting with Test
  • *.* - Match any method in any class
  • Class.* - Match any method in Class

Selector Grammar (Lark)

start: selector

selector: file_path DOUBLE_COLON symbol_path? component*

file_path: PATH
symbol_path: symbol_segment ("." symbol_segment)*
symbol_segment: WILDCARD | IDENTIFIER
component: "[" COMPONENT_NAME "]" accessor? pseudo_class?
accessor: "[" (IDENTIFIER | INT) "]"
pseudo_class: PSEUDO_CLASS

COMPONENT_NAME: "params" | "returns" | "decorators" | "bases" | "body" | "imports"
DOUBLE_COLON: "::"
PATH: /[^:]+/
WILDCARD: "*" | /[a-zA-Z_*][a-zA-Z0-9_*]*/
IDENTIFIER: /[a-zA-Z_][a-zA-Z0-9_]*/
INT: /-?\d+/
PSEUDO_CLASS: /:KEYWORD_ONLY|:POSITIONAL_ONLY|:POSITIONAL_OR_KEYWORD/

Commands

The public CLI is organized around a small set of top-level commands:

  • find — Search for patterns, selectors, symbols, or summaries.
  • edit — Code changes and refactors. Subcommands: set, rm, delete, add, replace, cp, rename, mv, batch, saturate.
  • analyze — Read-only analysis. Subcommands: refs, graph, deadcode, impact, types, trace, facts, cfg, dsl.
  • tool — Operational and debugging commands. Subcommands: index, editor-search, editor-server.
  • check — Unified project rules from .emend/rules.yaml.
  • lint / policy — Focused rule runners kept for compatibility and targeted workflows.
  • map — Identifier and module mappings.
  • mcp — Start the MCP server.

Hidden compatibility aliases still work. For example, emend rm ... maps to emend edit rm ..., and old read commands like search, grep, show, get, and lookup route to emend find.

Examples

Search & Read Examples

# Search by pattern (pattern mode)
emend find 'print($X)' src/
emend find 'assertEqual($A, $B)' tests/ --output count

# Search by symbol (lookup mode)
emend find file.py::func
emend find src/ --kind function --name test_*
emend find file.py --output json

# Extract function parameters
emend find api.py::handler[params]
emend find 'api.py::*[params]'  # Wildcard: all function params in file

# Get return types
emend find 'src/**/*.py::*[returns]' --output metadata

# List symbols in a module
emend find file.py                          # Tree view
emend find file.py --output summary::flat   # Flat list
emend find file.py --depth 2                # Limit nesting depth

Edit Examples

# Update return type
emend edit set api.py::handler[returns] "Response" --apply

# Add parameter with default value
emend edit add api.py::handler[params] "timeout: int = 30" --apply

# Add keyword-only parameter
emend edit add "api.py::handler[params]:KEYWORD_ONLY" "debug: bool" --apply

# Insert parameter before specific param
emend edit add api.py::handler[params] "ctx: Context" --before user_id --apply

# Remove a specific parameter
emend edit rm api.py::handler[params][deprecated_arg] --apply

# Edit multiple symbols at once (wildcards)
emend edit set 'file.py::*[decorators]' "@dataclass" --apply

Pattern Transform Examples

# Simple find and replace (dry-run by default)
emend edit replace 'print($X)' 'logger.info($X)' file.py

# Replace within a specific scope
emend edit replace 'old_var' 'new_var' api.py --where process --apply

# Replace with pattern capture
emend edit replace 'get_field($N)' 'field$N' api.py --where process --apply

# String content interpolation: ${X.content} strips quotes from a captured string literal
emend edit replace 'Union["$X", $Y]' '$X | $Y' src/ --apply

# Find all pattern matches
emend find 'print($X)' src/ --output location

# Multi-rule batch operations
emend edit batch rules.json --apply

Symbol Management Examples

# Find all references to a symbol
emend analyze refs models.py::User --json
emend analyze refs models.py::User --writes-only    # Only write references
emend analyze refs models.py::User --calls-only     # Only function calls

# Rename a symbol project-wide
emend edit rename models.py::User --to Account --apply

# Move a symbol to another file (updates imports)
emend edit mv utils.py::parse_date helpers/dates.py --apply

# Copy a symbol to another file
emend edit cp workflow.py::Builder._build.helper tasks.py --dedent --apply

# Remove a symbol or component
emend edit rm file.py::deprecated_func --apply

# List symbols using find
emend find workflow.py --depth 3

Pattern Syntax

Patterns support metavariables for capturing:

# Single expression
emend find 'print($MSG)' src/

# Multiple arguments with capture
emend find 'func($A, $B)' src/

# Variable arguments
emend find 'func($...ARGS)' src/

# Type constraints
emend find 'range($N:int)' src/

# Anonymous metavariables
emend find 'func($_, $ARG)' src/

# Structural constraints (via --where)
emend find 'print($X)' src/ --within 'async def'
emend find 'await $X' src/ --where 'not if __debug__'

# Supported pattern types:
#   Literals: $X, $MSG:str, $N:int, 3.14
#   Calls: func($X), obj.method($A, $B)
#   Operations: $A + $B, $A and $B, not $X, $X[$Y]
#   Collections: ($A, $B), [$X, $Y], {$K: $V}
#   Control: return $X, assert $A == $B, raise $EXC

Pattern Grammar (Lark)

start: pattern

pattern: (code_chunk | metavar)+

metavar: DOLLAR (ELLIPSIS)? METAVAR_NAME TYPE_CONSTRAINT?
       | DOLLAR UNDERSCORE

DOLLAR: "$"
ELLIPSIS: "..."
UNDERSCORE: "_"
METAVAR_NAME: /[A-Z][A-Z0-9_]*/
TYPE_CONSTRAINT: /:!?(?:expr|stmt|identifier|int|str|float|call|attr|any)/
code_chunk: /[^$:]+/ | ":"

The code_chunk rule excludes colons (/[^$:]+/) to prevent consuming colons that are part of type constraints (e.g., $MSG:str). A standalone colon is matched by the alternative | ":" for patterns containing colons outside of type constraints.

Diff Patch Format

- pattern_to_find
+ replacement_pattern

- another_pattern
+ another_replacement

Lines prefixed with - are matched; corresponding + lines are the replacement. Blank lines separate rules.

Linting

emend's canonical rules file is .emend/rules.yaml. emend check is the unified entry point, while emend lint and emend policy remain available for focused workflows and compatibility.

# .emend/rules.yaml
macros:
  print_call: "print($...ARGS)"

rules:
  no-print:
    match: "{print_call}"
    not-within: "def test_*"
    message: "Use logger instead of print"
    fix: "logger.info($...ARGS)"

  no-open-without-encoding:
    match: "open($PATH)"
    message: "Specify encoding when calling open()"
    fix: "open($PATH, encoding='utf-8')"
# Run all configured checks
emend check src/

# Auto-fix match rules that have a fix
emend check src/ --fix

# Focus on match-style lint rules only
emend lint src/ --rule no-print

Suppress violations inline with # noqa comments:

print("keep this")  # noqa
print("keep this")  # noqa: emend:no-print
print("keep this")  # noqa: E501, emend:no-print  # mixed with other linters

Dead code detection

Configure dead-code rules for emend check/emend lint in .emend/rules.yaml. The standalone emend analyze deadcode command uses the equivalent CLI flags shown below:

# .emend/rules.yaml
deadcode: true

# Or with options:
deadcode:
  enabled: true
  kind: function                          # Only functions (or "class")
  include-private: true                   # Default: include private symbols/methods
  exclude-test-references: true           # Default: ignore refs from tests
  unused-modules: true                    # Default: report unimported modules
  strings-count-as-references: true       # String literals count as refs
  message: "Symbol appears to be unused"
# Run as part of unified checks
emend check src/

# Or use the standalone command
emend analyze deadcode src/
emend analyze deadcode src/ --include-test-references --json
emend analyze deadcode src/ --exclude-private --no-unused-modules

Suppress false positives inline:

def my_entry_point():  # noqa: emend:deadcode
    ...

Mapping Store

emend includes a built-in mapping store for cross-service identifier mappings and module-to-repo mappings. Stored in .emend/mappings.yaml.

# Identifier mappings — cross-service relationships
emend map add backend "UserService.create" gateway "POST /api/v1/users" \
    --source-kind function --target-kind endpoint
emend map search "UserService"

# Module mappings — map module prefixes to repos or local dirs
emend map add-module payments --repo org/payments-service
emend map add-module shared.utils --path /home/user/shared-utils
emend map resolve payments.models.Order

Module mappings that reference GitHub repos are automatically cloned (via gh) and checked out as git worktrees under ~/.cache/emend/repo-checkouts/. Set EMEND_CACHE_DIR to relocate this cache.

pre-commit integration

emend can run as a pre-commit hook. Add to your .pre-commit-config.yaml:

repos:
  - repo: https://github.com/lucaswiman/emend
    rev: v0.5.0  # replace with desired version tag
    hooks:
      - id: emend-lint

This runs emend lint on staged Python files using your .emend/rules.yaml config.

To auto-fix violations, add args: ["--fix"] to the hook configuration.

Development

Installing from Source

Clone the repository and install for development:

git clone https://github.com/lucaswiman/emend
cd emend

# Using make (creates a free-threaded venv, compiles the Rust extension, installs dev deps)
make venv

# Or manually (requires maturin and a Rust toolchain):
uv venv .venv --python 3.13t
uv pip install maturin
.venv/bin/maturin develop -E dev

Running Tests

# Run all tests
make test

# Run specific test file
make test TESTS=tests/test_emend/test_add_parameter.py

# Run specific test
make test TESTS="tests/test_emend/test_add_parameter.py::test_add_parameter_with_default"

Project Structure

emend/
├── src/emend/
│   ├── cli.py                # CLI assembly and compatibility layer
│   ├── cli_find.py           # `find`
│   ├── cli_edit.py           # `edit` subcommands
│   ├── cli_analysis.py       # `analyze` subcommands
│   ├── cli_tooling.py        # `tool` and `mcp`
│   ├── cli_checks.py         # `check`, `lint`, `policy`
│   ├── cli_map.py            # `map`
│   ├── transform.py          # Core search/edit/analysis engine
│   ├── pattern.py            # Pattern parsing and compilation
│   ├── query.py              # Symbol querying with filters
│   ├── ast_commands.py       # AST-based command implementations
│   ├── ast_utils.py          # AST traversal utilities
│   ├── component_selector.py # Extended selector parsing
│   ├── lint.py               # Pattern-based linter engine
│   ├── mcp_server.py         # MCP server (optional, requires emend[mcp])
│   └── grammars/
│       ├── selector.lark     # Extended selector grammar
│       └── pattern.lark      # Pattern grammar
├── rust/                     # emend_core Rust extension (bundled in wheel)
│   ├── src/lib.rs            # PyO3 bindings, GIL-free module definition
│   └── Cargo.toml
├── vim/                      # Vim/Neovim plugin (JSON-RPC over stdio)
│   ├── plugin/emend.vim      # Commands (:Emend, :EmendSearch, etc.)
│   ├── autoload/emend.vim    # RPC client, server lifecycle
│   ├── autoload/emend/ui.vim # Split-pane search UI
│   └── doc/emend.txt         # Vim help (:help emend)
├── tests/test_emend/         # Test suite
├── Makefile
└── pyproject.toml            # maturin build (bundles Rust + Python in one wheel)

License

MPL 2.0

Release files for emend 0.5.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emend 0.5.4
File Size Uploaded
emend-0.5.4.tar.gz 541.4 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for emend 0.5.4
File
emend-0.5.4-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
emend-0.5.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
emend-0.5.4-cp314-cp314t-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64 Details
emend-0.5.4-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
emend-0.5.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
emend-0.5.4-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
emend-0.5.4-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details
emend-0.5.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp313-cp313t-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 Details
emend-0.5.4-cp313-cp313t-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 free-threading macOS 10.12+ x86-64 Details
emend-0.5.4-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
emend-0.5.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
emend-0.5.4-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
emend-0.5.4-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
emend-0.5.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
emend-0.5.4-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
emend-0.5.4-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
emend-0.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
emend-0.5.4-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
emend-0.5.4-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
emend-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
emend-0.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
emend-0.5.4-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
emend-0.5.4-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 326.7 MB

Release files / emend-0.5.4.tar.gz

Download URL emend-0.5.4.tar.gz
Size 541.4 kB
Tags Source
SHA-256 checksum
How to use checksums
97309dc9fa55809c625eee6e6901f3165853dc158b2514e7f92eaf74f0aa3877
BLAKE2b-256 checksum
How to use checksums
52d074c7e31924b442a56af1bedc54400f6f15e6c1985204fa84416aac2225cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314t-win_amd64.whl

Download URL emend-0.5.4-cp314-cp314t-win_amd64.whl
Size 8.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
a0ac4b15ddb997ee7cb88f32bdb4101190cba3d2e23bf42a067ce2ea40e49cdb
BLAKE2b-256 checksum
How to use checksums
4bc56000f94d2e61c710724b3fe6fb32fd281f1c71adaa44b0d510ab71b046ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
b0618ec2f5dc42df70884ed2a01e6711b2404ab1796d8caf60642fb0c66909ba
BLAKE2b-256 checksum
How to use checksums
3e084db16bbaf24cbc17ee14b1bddf71b553b49a6473b563ad8ec472ebb57b58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
85ae970c1b532fdb7171cb47ff9ef3f51ad12eb9ef77b791f9a27fb337823d92
BLAKE2b-256 checksum
How to use checksums
48b5f248b81b6095734bee3b4f492fdc58f848949bb96c48bfd7417297646e87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314t-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp314-cp314t-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e09e05b7d44f25d7d22104660647cec390fab28c5bc4917976777355111eefa
BLAKE2b-256 checksum
How to use checksums
195df14bfa9f9fd95903d36e06a706fa46e1801c01133926010db752a4aaebd5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314t-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp314-cp314t-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
760d9920195efbe849dbdbb818bd346ee9642f34e4b6de3680ab6a39e357ef33
BLAKE2b-256 checksum
How to use checksums
a4c18abc374668a36af94878217fa19eec554eee65b3e314410459bfb2023412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314-win_amd64.whl

Download URL emend-0.5.4-cp314-cp314-win_amd64.whl
Size 8.9 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
2507ebda9fc8cff71371d016dca250cba851e70be67efc859fecebd9402d209a
BLAKE2b-256 checksum
How to use checksums
8f579f2bb50546e7ecea707253fccf40c2e2891b969ad4a68418a6fcd856c469
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.14 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
79ea905fca2faf4e68575ee38e36243a43705cb3d05d9bfb57dfa860bc9cfa01
BLAKE2b-256 checksum
How to use checksums
868b1d672d4b9335bf7b5ef81580ae652c6564e7a70ba31e9a6c22880e6976ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.8 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3a7b26546646424f6878e016b09a9a4f6a9a963a78cf59df6219b88e7a977d8f
BLAKE2b-256 checksum
How to use checksums
12c66e9696bf9f5d4a299552d24492eef87272da0af5c50560951ca39bfde657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp314-cp314-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ef963ac026afadf2ad5e54d5713b208f11be8cc44f97e9a05fc9655eba6631bf
BLAKE2b-256 checksum
How to use checksums
bd5c86cbe5223840043afc44f68a5e66cbcecaf9eea4e9146d706006cdc87c4d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp314-cp314-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp314-cp314-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.14 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
e35b4aabae220f25f3f55c2254da79666aba5bc89c2df70543e3395838228335
BLAKE2b-256 checksum
How to use checksums
0df99e74468a5a1e63511d237dab0cd05665e8692d880c5d9964ab71074302ef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313t-win_amd64.whl

Download URL emend-0.5.4-cp313-cp313t-win_amd64.whl
Size 8.9 MB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
86bf34df9e3f3c619dc0420ffc4b1733c09c3d965170d5cff37ba7a45f74b852
BLAKE2b-256 checksum
How to use checksums
42972409d7afb0363da6253d244e34b832d1a88d5614f5d5a124bbfacbf2a2aa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
e5870cf3f3a6f8def26513bd6501f94dd19a65ce6a13c52c162c1e03186f8b56
BLAKE2b-256 checksum
How to use checksums
637da4a7cccfb6815ed5b3bb98445d7f34b3e6724bc0f38c21c64810c2f0d10f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c2277b44c198e906b09b946d685a960046da7e91e541d81b8f36db3cde5ee961
BLAKE2b-256 checksum
How to use checksums
545efa776f2a261b918cffdedf60c7f3ec3fbe6ab0c6bad3ca6d1fe06ac054c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313t-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp313-cp313t-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8bfe38912ef418a183925e1a019821357c42f4871611ec6019a08744548f7cd6
BLAKE2b-256 checksum
How to use checksums
82818890e4a6bc60187d5c7e6a8f02ecfa81c047a17f49f7938ca86dde3e5946
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313t-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp313-cp313t-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
4e88972b9f941ca55e405484e92c408c57ffe8639092608560eb42e8165c0caa
BLAKE2b-256 checksum
How to use checksums
1e752412a5bc07eec88e0dfbd3339c125f9e2c1adefb75adb4e6affa6bbe1a11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313-win_amd64.whl

Download URL emend-0.5.4-cp313-cp313-win_amd64.whl
Size 8.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
d8c111457d6f0064e7f3e6eb286d217d936bb819b97041470fd30f5c21b4610f
BLAKE2b-256 checksum
How to use checksums
94785b27216794dd55d2bcdf7f5a4cc50f05007c5648b4cd7d7c508ef32a0551
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
99fc85e02844a6de96ca7fc61271591f73204df7aa891a8521bb408c19b16942
BLAKE2b-256 checksum
How to use checksums
16d14f565a27235652411404ae37d40424f2260e62e94f47834fad6f10b62e1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.8 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8e89d6481410c8bc6263d41c60e8f4441db761aa785fce40289e27e3c4b208a8
BLAKE2b-256 checksum
How to use checksums
36fc9aefb89d32313f375d255e4e8e2ed6914ab5c58a26bc299c9f54b05370c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp313-cp313-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e7d96c688d9dea7931bd3a631d017f7e7a1e68634a4011e1cc3686892b5d283b
BLAKE2b-256 checksum
How to use checksums
d8a14d7c0cb3393c7d21b1b33b388b9908810e96a25f4b4f60b5819514ec9e95
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp313-cp313-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp313-cp313-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.13 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
940d9ba5baa9091d8c1dcbc97661080bfae822f964894b5552829bbe1738c402
BLAKE2b-256 checksum
How to use checksums
682402359d66351d478338cc0e272e4a772c83de37bf576ece25b8f409611f21
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp312-cp312-win_amd64.whl

Download URL emend-0.5.4-cp312-cp312-win_amd64.whl
Size 8.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
40aee8ccfff2d81a66e4fdc7f9418611b5df248d2e5236a99f6b4956e25530ef
BLAKE2b-256 checksum
How to use checksums
fe5418228816c7e27167f33ce344ee025efec5a375bcb409c4c783ce8d2cb6cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
f7600843bc93a38f1ec0c324256605e2ccb26225c8b059b0570c346dc6602675
BLAKE2b-256 checksum
How to use checksums
1c88e527d233c8cd06e96cc48d8460cb8839fe103ffac05fa336c6be00331184
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.8 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
fbdb6d4b8bcc1a9b9b812bf2c0b2e0869e48029a102029081a773df1082cfb0e
BLAKE2b-256 checksum
How to use checksums
e029add878c7ad5cb872967b58d3e61ecfa51d48e87cf98369b79b9aa6a40adc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp312-cp312-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp312-cp312-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
fa4b291c2ec5101a85a722989fef658e2858fabccfbb4f02a09152c6bbb6e9b8
BLAKE2b-256 checksum
How to use checksums
962623c03b7c055848d1df8ec4f10d72ac42e196f9c0f9fef38eba21f1d249db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp312-cp312-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp312-cp312-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.12 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
3de502eb54b64939a989703b1d159a496ddeca9449d722bbd39f01fb25380767
BLAKE2b-256 checksum
How to use checksums
071d8e31d561f8e5f264811a3013bb0ee1d7b5c8e1e4d7303f945bf9c6607c06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp311-cp311-win_amd64.whl

Download URL emend-0.5.4-cp311-cp311-win_amd64.whl
Size 8.9 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
a7acc0705f47c50da5463eb71d28f5dfcae6e4fd1a9ee1dd0d2f74465e935668
BLAKE2b-256 checksum
How to use checksums
db18fc844b0fb241accd37a552a718c34d78f4cb43d42929615196142497a704
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
9602bf9e81731b1126c46808a0f207129057fce6aeeb204288e8589b9beda838
BLAKE2b-256 checksum
How to use checksums
353eff7c3f1f8e4fccb635e38bed15df1c3d0762ff52f4a6e896e8b495e42e6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.8 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
f3b2bfb6329522808b729bc8f1ff52a3824cf01cefdefb839e99d87fedde1f9f
BLAKE2b-256 checksum
How to use checksums
f0ab81e19d5d0144048246ce003f54f4e53609d9f3efc290504ec317258b33cb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp311-cp311-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp311-cp311-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c49a608d4f958d626de9a33cd4075bc908a520be6d38cce6b212fe417fecb170
BLAKE2b-256 checksum
How to use checksums
87fed9a40db4af0c3ca5f7a7d4d6196021e8b89c2e4600778943856ab4feb621
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp311-cp311-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp311-cp311-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.11 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
44143a22b2d54b590bf7eddc99baafd2424ef6f3b553628f0e76b61c0794d5ba
BLAKE2b-256 checksum
How to use checksums
3262ad7f0fc98bce2242d23a9faa7534eea5dc3e9aeed318cc1fa46e9044408e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp310-cp310-win_amd64.whl

Download URL emend-0.5.4-cp310-cp310-win_amd64.whl
Size 8.9 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
296d86475a2ddcbf341a48bc4518614559718ebb76971afbead883535a545e02
BLAKE2b-256 checksum
How to use checksums
fcefa0a795ccba90e1db3ebc08a42201c482d914cd372c90be09980a51d4ae54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ecd07efed2d954e82e611309441e49371e4f4e8ac45b9e40a4adef1a398a1030
BLAKE2b-256 checksum
How to use checksums
68f6a0780b19200dbc4a305d1e80a5d248599df027567085f56ee53173c9443b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.8 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
ba9649e679578f43eaa7f131f40fbef08f39f4d4b0fbd35c309a2f92dccef934
BLAKE2b-256 checksum
How to use checksums
b4546e65a928f61952416c198b8c4249ccca6eb02d813d0069aadc1d1cbdef28
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp310-cp310-macosx_11_0_arm64.whl

Download URL emend-0.5.4-cp310-cp310-macosx_11_0_arm64.whl
Size 9.0 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eb23b5a43dcdc233cf86ce7bbfc18a471c3e8fd9d229c4d316ea686bad247438
BLAKE2b-256 checksum
How to use checksums
ea0fd68b129c020899ed012e3d21165f5ab4cb69cd81951af6f92877314390ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release files / emend-0.5.4-cp310-cp310-macosx_10_12_x86_64.whl

Download URL emend-0.5.4-cp310-cp310-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.10 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
189c2ce665c78aeab4490f37bbee1f3be444a8b5c71ac795539031175e1ddbde
BLAKE2b-256 checksum
How to use checksums
01a4d1db04fd124a05231395fbb2bd895be6bb3013dffc03fecb743e1a21f8c8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.5.4 This release

36 release files

0.5.3

36 release files

0.5.2

36 release files

0.5.1

36 release files

0.4.1

36 release files

0.4.0

36 release files

0.3.0

36 release files

0.2.3

36 release files

0.2.2

35 release files

0.2.1

17 release files

0.2.0

17 release files

0.1.0

19 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page