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

Using uv with free-threaded Python (recommended for best performance)

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.

Indexing (recommended for large codebases)

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.2

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.2
File Size Uploaded
emend-0.5.2.tar.gz 537.1 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for emend 0.5.2
File
emend-0.5.2-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
emend-0.5.2-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.2-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.2-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
emend-0.5.2-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.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
emend-0.5.2-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.2-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ ARM64 Details
emend-0.5.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
emend-0.5.2-cp314-cp314-macosx_10_12_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.12+ x86-64 Details
emend-0.5.2-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details
emend-0.5.2-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.2-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.2-cp313-cp313t-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 Details
emend-0.5.2-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.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
emend-0.5.2-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.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64 Details
emend-0.5.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
emend-0.5.2-cp313-cp313-macosx_10_12_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.12+ x86-64 Details
emend-0.5.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
emend-0.5.2-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.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
emend-0.5.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
emend-0.5.2-cp312-cp312-macosx_10_12_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.12+ x86-64 Details
emend-0.5.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
emend-0.5.2-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.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
emend-0.5.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
emend-0.5.2-cp311-cp311-macosx_10_12_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.12+ x86-64 Details
emend-0.5.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
emend-0.5.2-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.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
emend-0.5.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
emend-0.5.2-cp310-cp310-macosx_10_12_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.12+ x86-64 Details

Total release size: 326.5 MB

Release files / emend-0.5.2.tar.gz

Download URL emend-0.5.2.tar.gz
Size 537.1 kB
Tags Source
SHA-256 checksum
How to use checksums
b2f684169ec3f4fc899cd323cd876c9f0927c0099ab334592518a16816bf02b7
BLAKE2b-256 checksum
How to use checksums
22063d9aefa8b2a66f5ec6e3bbb3289a8fb472a0fa9f57d1bcaa222c15f8d544
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp314-cp314t-win_amd64.whl
Size 8.8 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
b56c776e7cbc6b0ee93a9a5573d0805205a49cce07ce09ff1dafc79789dd654c
BLAKE2b-256 checksum
How to use checksums
6c44a0c50a9adc4c80f39b7e30f6ebdac66fa9da4dfda129070cdb2876bca495
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
a9806d3a340240fd4c25ba5de1e04304dfb3eade5d79ca370f58aadea45caf68
BLAKE2b-256 checksum
How to use checksums
730f7992f3ca8ca12431cd44492c813e1e8ef6903503eade16826e5116366268
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
924a324f912094b8a9318aeba0a48be66d4ff2420c655c9b74a46f18f0051cb3
BLAKE2b-256 checksum
How to use checksums
181b7f3acceac0348db79d926fa5aba51840c2980a4ded702e9a14ebdbab7c3b
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
93d3bb62d21492fda3d3d0aec198401bbc4e9a03b4574339c3209321347ab7b4
BLAKE2b-256 checksum
How to use checksums
135044f79199a26c27f4112b3a4db50daaa6e667929d498ec3dc986fad0ed6de
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
c17acf7c2eb2d62681ceaf39d663124763dca9402322419e9aadd38c36ea94c5
BLAKE2b-256 checksum
How to use checksums
21c96ebd547927c409814d738598a9ff7cbaa55cb9ca4e5fbed632eb91088d27
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp314-cp314-win_amd64.whl
Size 8.8 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
7c3fb73760c4795f21194645c246b53b50550ea4fe131a50c5de1b1e5df53bfb
BLAKE2b-256 checksum
How to use checksums
492cde5aa8d2f31b31f689ea9583156b56020d9f5f2fb3f11d93eff6773f1b9b
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
e77a60254e8767c0bfb74c3e038b61ff9a394bd2f5b5641b5bcf13323b3bc073
BLAKE2b-256 checksum
How to use checksums
a94053b810b8666cbe98d295cbbbb655ce3d10b15e2652f4a9f13f2d359d75ad
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
12983765fa184744ca2aad15434c2e978ba58a20bebb175b9fe48a31606a4219
BLAKE2b-256 checksum
How to use checksums
1fab2760849ab87d833f0c8a63f4aa92ef779649bfc8c971f98ab3b1a065b11c
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
6cc84b12984e86e1522c492e77632f896f58ffcb4458fda8d4ee17faacec43ae
BLAKE2b-256 checksum
How to use checksums
b0a18b1da69096a89ce0dd6c51fb76a3370657b1fa6a15dcd467c42199f08c3c
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
83a409c923648328e8bd4f6c4adebfe67229b73536efcd6c144ee122a3eff90d
BLAKE2b-256 checksum
How to use checksums
af323f2cc399650642e39e7ee1d4dcf704f44fc5f595ee5df4655f5788e3fc81
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp313-cp313t-win_amd64.whl
Size 8.8 MB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
450cd43a838f93c5b1a6a895bd6e398ded9cafa6aaad82498e3b356a3b68ec6a
BLAKE2b-256 checksum
How to use checksums
c025d10d606f97bbc75a993d291ca14ff1bc346d872fcce63c4f274f292301ba
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
a210eec6536783986a700c4b01f1fd1936ed3eca9122adab8ab88916dccfe685
BLAKE2b-256 checksum
How to use checksums
696da6ab9ec1b2b668522a7e8d8a3518a7e8a57bdbe2416edb49f7dfb865e6f3
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
b86037a642b4cb0639ef024293a895190366d1f6ac8492b8387b63eddb8ae00b
BLAKE2b-256 checksum
How to use checksums
0f9929cbc97e906208ea28ec1ff6efb2f87c8f48deab6060105a9b4ccc98e825
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
cd05e5020a3bff9fb5557d982426697392fff1126b27b7bbc80e805ea40589e5
BLAKE2b-256 checksum
How to use checksums
3eb90dd673a8bb7cdd78cfc38ccdb1131efcb4199d08e3330d0219445f41947a
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
50fd1c2290e71e8f34d63a4860d0e9518b49e370ff269bf9a7b6d5352d10a254
BLAKE2b-256 checksum
How to use checksums
f3d19ffc23fd40aa6d269320cdb652548739711012c4aad0169a612248df5aa2
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp313-cp313-win_amd64.whl
Size 8.8 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
8e20bcad8734938bc647e004eb534a5a3ed6fc9f94a2037c1316ed7559ffd906
BLAKE2b-256 checksum
How to use checksums
09fda7207dc17261fe5839f9cbc11c08c06a438e39a0371c72132fbe8d667b5a
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
4976a81cd9ed474e563324901b8fea47099ff1e15a61877cc2d6d4992d418273
BLAKE2b-256 checksum
How to use checksums
af8cc58dfc17455cf2339619dd3541e5c33547fe8360a9dbaa233c12035ce90b
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
f9f00c76c17ea5bcf3cab66bac267410a98fe9067d0991530f9865416290fe9c
BLAKE2b-256 checksum
How to use checksums
0d70c3e9358b5f2709d9797192689e52cae1e62b7ef74edc43038c40b1586b6a
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
abff190d82314f2b3eddc523d34e3ecc249cce186e59e0f4043ecf1e1b4df9ab
BLAKE2b-256 checksum
How to use checksums
ac5d42ced684c74a357bea48fcc718be8ae816b2985135e544683f51406e3999
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
1a0951d6eb1514f748d3043d9076d7ae6649e277a0beac1f5dce6aa2976cd113
BLAKE2b-256 checksum
How to use checksums
65d4832ed9794553932b3ceb5690c98cf45b93f1d93983c65bb5a7528d19f68d
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp312-cp312-win_amd64.whl
Size 8.8 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
eceddba75f157a88f814fdcef9680d997061674927dd12e5e3ccac3fee576397
BLAKE2b-256 checksum
How to use checksums
060eccf3ecfa31bf63804e95d9d0fa34ce518d60e8e9f74043ce86b9f9183dcd
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
791420d1656893a0ee70a628551fe4c9ed44ea92ed00feab92983a125b1e2f63
BLAKE2b-256 checksum
How to use checksums
730937dc9660d66087728a2de4cbb49508164b817052f53bf7cf59d198140def
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
ca0d10762f7de8d1488ed2a57619d23857b2e000886d0785450ee0f3d440565b
BLAKE2b-256 checksum
How to use checksums
0ec2e4cf46c30680ea53c24e859160c54e647a2fd4e8a1459ec94491710ffe93
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
26ce16e2fbecdfa9fcce04287e92cfa6b972ad4edd50d7bf9ae3c46e5b7b4a5c
BLAKE2b-256 checksum
How to use checksums
aae1635bf75be7c30446834e58cefcc3b413d944aa954bef429dc10b558042aa
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
a8383b487bfd953b4beeb96d30fe055bb776d47c7712db8ecd591a685d4aab80
BLAKE2b-256 checksum
How to use checksums
6d86ce254fb7706aa93b14d55ed38f4ea93606688d5b6167d31901e2cba220b9
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp311-cp311-win_amd64.whl
Size 8.8 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
776c9f2969f1ae8d481a13fbd2a29db338f0deab329eea51c738147d445619ae
BLAKE2b-256 checksum
How to use checksums
afb625551807026b22d6880dfef463534671d82c0f1878deb85bc3fc42b756dd
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
715bfc276106e233e0c93556b7cd65f187c6322c80ba96c290b492e981eb680f
BLAKE2b-256 checksum
How to use checksums
96d42d6b53bc085719d5b8a3dafb7188f2fdce1a0c9dd1070345471a5b278fb1
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
35cc55a1c73ed25e1fdc5604d66eaf2e0d7da312a92e50622af62c35477196eb
BLAKE2b-256 checksum
How to use checksums
965a185abad5025828b3ac5bc2ada64b4946a8c3a5f33b2d0953e48a36e6830a
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
e771564f435b95ff7fb190a8f97e82e3852cbc9a6585838bd247f92a6f2274d8
BLAKE2b-256 checksum
How to use checksums
8e813f420558b8afe79b7e133275802e53deef652b07dcca0f92d7c188ac9a88
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
9b87fecda3b4a9b9316abb7449812ef9fa401e1c12e0dfd53c5151227d3c6169
BLAKE2b-256 checksum
How to use checksums
440152da93fc804f76cf936a8b372212cf99ff0635351df6fbd739f3abbc4be2
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-cp310-cp310-win_amd64.whl
Size 8.8 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
088857737b2304f541c4d276b7871bee25fcf4d89e9066d72b2c276b7a15ce95
BLAKE2b-256 checksum
How to use checksums
60d047db54f90ff2905e4f4e44cb31d09a9f34717d79f0cb0982ce1ebb064136
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
cbff3903e84ae3d51f1b560d6cd792c685999ae3e62fa161f4e109227f2f6242
BLAKE2b-256 checksum
How to use checksums
3d0c89b2171bd58a613aebdad6d6dea0bf2cf1006e6ba5aa5669cb933bad7320
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
3f8b52940bf26eb7cead925a2e559874f93cf8e3f6bdcb55a3be7d1e844528c4
BLAKE2b-256 checksum
How to use checksums
5f2c180cf94377caed751f45e9feddd1f3eae96496ce317be9945b6f19f12535
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
17d14d9591cf02626bb4b8fde619ba6658e474acb1600b1765d9f6e7b04ee5ea
BLAKE2b-256 checksum
How to use checksums
8c10194c47d51f5003c129f8acef28dc6de3906e86409fc1ee2e0b81e9640714
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 13, 2026.

Transparency log

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

Download URL emend-0.5.2-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
dc578c0ad553ee4b240052dbad0d7c390567434844d008539a8c29bfe874a107
BLAKE2b-256 checksum
How to use checksums
632c1a5f815f2649883aedfe881ae52e07c6b265cd0c37b94ebaafed8a637ab6
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 13, 2026.

Transparency log

Release history Release notifications | RSS feed

0.5.4

36 release files

0.5.3

36 release files

This release

0.5.2 This release

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