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

Supported free-threaded variants (3.14t, 3.15t) remove 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.

Both variants can run the optional MCP server. Python 3.13t is no longer supported; ordinary Python 3.13 remains supported.

uv tool install --python 3.14t emend
uv tool install --python 3.15t emend

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.14t
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"

Use separate environments to test other interpreters. PYTHON_VERSION selects the interpreter when creating an environment; it does not replace an existing one.

make test-ci VENV=/tmp/emend-3.15 PYTHON_VERSION=3.15
make test-ci VENV=/tmp/emend-3.15t PYTHON_VERSION=3.15t

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

Metadata

Release files for emend 0.5.6

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.6
File Size Uploaded Provenance
emend-0.5.6.tar.gz 550.2 kB With provenance Details

Built distributions (wheels)

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

Total release size: 375.3 MB

Release files / emend-0.5.6.tar.gz

Download URL emend-0.5.6.tar.gz
Size 550.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ded4ae62b8b51dc843245a0132cd5f1c735f9817c77b47f366c439eccc51c475
BLAKE2b-256 checksum
How to use checksums
55d42f8086d65b8413965da7549cceb927ca961f82c7e171f2786502df717a65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315t-win_amd64.whl

Download URL emend-0.5.6-cp315-cp315t-win_amd64.whl
Size 8.9 MB
Tags CPython 3.15 CPython 3.15 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
9fb8c860b85930dd10a711fd3b2ebc9e65442e81f4e2f3cad82e95c5b84d3179
BLAKE2b-256 checksum
How to use checksums
47e13371c83693538b363c234a0d88407c71039e9d174f815098bbe54f119d04
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.6-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
5080116dee16235d1b7c75e3a9573eb72aa2e93339a0dba8119171ccf993246e
BLAKE2b-256 checksum
How to use checksums
415c9b006345be59a0355126b2c772eb812ffa2f5018b5983fe55db1beda79ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.6-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 10.0 MB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
c70e4ec9034ab7380102911b465eeb1d9d0469e3e73712b13fc029a62352f3ff
BLAKE2b-256 checksum
How to use checksums
8842321e81dfc7eb9e293731806d38633351e170af9789d7795bdb4bdcbcfb08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315t-macosx_11_0_arm64.whl

Download URL emend-0.5.6-cp315-cp315t-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7ee03ef0c4216bce604d5a20b829322a6fdaee27d1baf24cb9fcb6ca08567a1c
BLAKE2b-256 checksum
How to use checksums
12840920c059efa8a28a4df58ca1f1000b49d58bcd4ddce91d3408d8f2bb617f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315t-macosx_10_12_x86_64.whl

Download URL emend-0.5.6-cp315-cp315t-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.15 CPython 3.15 free-threading macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
15f38da71f343af6445f69bb454482b90b22740cd67efb80cf93256750543565
BLAKE2b-256 checksum
How to use checksums
97e25d9426571ae6af2af8a393f3557d951ba6e73e5740c5d5696854c1318d4b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315-win_amd64.whl

Download URL emend-0.5.6-cp315-cp315-win_amd64.whl
Size 8.9 MB
Tags CPython 3.15 Windows x86-64
SHA-256 checksum
How to use checksums
be460f9b6157482fb8fa65c220decdf08d19fee6a5fd255a8ef97fc3934250f9
BLAKE2b-256 checksum
How to use checksums
f08abe9f7fb409509d2622ce6a91999b6e54943eda27087c6b96e6b335ab53cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL emend-0.5.6-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 9.7 MB
Tags CPython 3.15 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
0302e7623a540b31e21b3dd0884818cbb407764edf9aef9d386bcb0ac485b912
BLAKE2b-256 checksum
How to use checksums
fd09362ab31d31fb7a161caa762d95e52aae44e97e8d068ca3bebb3fc9848217
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL emend-0.5.6-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.15 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dded13da467412315f5c6ae9f8a50c77fc0e4717558b3f786d24de7b3a93c25d
BLAKE2b-256 checksum
How to use checksums
a7517f2fc3849981dab1cfe0ce087e080a680021032a6577c6823ded77d3222e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315-macosx_11_0_arm64.whl

Download URL emend-0.5.6-cp315-cp315-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9d2852b7c5c0505145a69f7e045d1d8c3889065111e2a10adff687796941bc6b
BLAKE2b-256 checksum
How to use checksums
51c148663a7a9101f4b2b9159685df3f828acdc80699d90b07c5d4c64f7627fa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Release files / emend-0.5.6-cp315-cp315-macosx_10_12_x86_64.whl

Download URL emend-0.5.6-cp315-cp315-macosx_10_12_x86_64.whl
Size 9.2 MB
Tags CPython 3.15 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
fc01c5cc807c6a34df18dc3a11c408e3e7465021b12f70b977dd21510cea1cc7
BLAKE2b-256 checksum
How to use checksums
16d9c8a92a47be35f930dbd15e4a56be3acfedffc684d807726e20b654648b10
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
7c2b0c5a3d7875d132a108fdc276b3e7d2b96741da11a5d64a68c0f3a18a2a0b
BLAKE2b-256 checksum
How to use checksums
5b863c3bc7554fa3472051c5c03d2ba5ba08f3bed945824e4119b47e25539258
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
36cc5e92e566a97929f4108647ae8537711bdcb5d0d37a9d21b25f00d9bdff9a
BLAKE2b-256 checksum
How to use checksums
d2da16e581e3bd11908666c2abe5206d10e9b894e51c7f62d602237e2f349f9c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 10.0 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
0ce9dc0482955b7072b1f78b3838c8697d5b7e1b0852f04e32025d80c3901d24
BLAKE2b-256 checksum
How to use checksums
123f75c2c85dc685690cab0cd9fd9807dc6555a44a1be66def056dde23819357
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp314-cp314t-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
c319f368457ed63876e5606ebc461f1ba9c32547b763f3adfc7686b07b93333a
BLAKE2b-256 checksum
How to use checksums
6d0b0341d0ef474baae48ca3809db4109372112614323cd5b5b943b08a64232f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
94233790de30ee55449fea0aee5155530e2ef24013920ad656eb0fec11112018
BLAKE2b-256 checksum
How to use checksums
cc8fd759746f0bc64879d03f022ded348fcff548854abdb048e6cd2151f0f985
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
ba42251912df81ef7420ddd58e6b739a021d76e14d9751ed65639dec3b23be63
BLAKE2b-256 checksum
How to use checksums
d190fc9fa2048786abbb7b1fafdf8f02fee8ddfeba1f00711654ec74da92ac8d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.14 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
695958129df3b05506c27da71b6426a019f019367d9eee9029386e0a776d0cc5
BLAKE2b-256 checksum
How to use checksums
7f179e45b5945c6bed2cbb0235edb8df0fc6523a9320ad01694a90c204353eed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
e25acda8711c3a12e49f813b696c785e486ce128845189a9b4191cd1a01fac00
BLAKE2b-256 checksum
How to use checksums
76390973a559ca05296932777954d4eed278ef6ea29654aa83ad7a7a328fe389
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp313-cp313-win_amd64.whl
Size 8.9 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
3cca49fb858e40c45da21a345f177e78d6c6360ae42998659bedc74cf78fbb84
BLAKE2b-256 checksum
How to use checksums
2a0b459ef7775072d3e833bee49585a7c4435f1c24d68205f173765de173b438
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
0d6e7863b8f35a7cd5833f767445cae10b97fb66feaf24e05b7e4d0f53e1feda
BLAKE2b-256 checksum
How to use checksums
817c0d80721ca3272b7e7bcc46cf28d2e21fec102cbfc349f27dd8897f91f167
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.13 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
6bb365b676dc598f0ca3f19a6b0efadf72728abd11b9cfdde39731bafaeb09ce
BLAKE2b-256 checksum
How to use checksums
882919c3ae70f543355af61de879b83fdd9405839e2d8cadcd075c4888ea04ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp313-cp313-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4d056521686bf45156329089bc94ae2129899f9ac76544d7bc2a80c806f68667
BLAKE2b-256 checksum
How to use checksums
bad81f0559e60605f3d38f79b302bf8f3cbe5fdd472fb34e1bcb853a1e6b9792
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
6b189ef3add9bd6f8e50d36cc7d9dd6fc2e1d67f3b3360b2a25bc182dbe801e2
BLAKE2b-256 checksum
How to use checksums
d2766886a7aa8cdca1aed6fd1933cf9e42e7c39608610e1958e8b1bd22be2f8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp312-cp312-win_amd64.whl
Size 8.9 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
5c24134b2b491ca1228c63da8b8bb5b150f30deba00c3ef71342e6901a7ac376
BLAKE2b-256 checksum
How to use checksums
21854a53e2face161d0fbf8b21de183ac6e07c327c7b946db129b3f29e6a9d05
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
6f6fb070d8f10a67e9279a0378128e286864aef174f7eda26443dca8bb0f261d
BLAKE2b-256 checksum
How to use checksums
74d299f27c72ef57bfaf59fd895746fd26ace7a46c496ba3a1b83761a66bfbf9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp312-cp312-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b5efbab5f152fd05df7db4c9c5abbef6fdd972c6e3b58b9ffcbae4e7c0c8fe2b
BLAKE2b-256 checksum
How to use checksums
304629cebaeba36bd30bb1e506a887293732b6a4ecc206a21af1926702751034
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
e5b4dd4405027bd0e41ee379c259110c2bf33a05a1866f7f737e7b15039cffa1
BLAKE2b-256 checksum
How to use checksums
4cb072d813afa9ac278d952fadcb3823e2098e1fa54df14faf30c9523cae17de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
5a6ce05ed20a2c1189161e8d439c479ea8dbdeaba7af167e2afe37f539e14ae4
BLAKE2b-256 checksum
How to use checksums
62730c19df1e87c19e848da4f7e7253d1e0cf12402e51500f535020645a05827
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3c54c916619610074fabb5990288da0ddac9c2a552b0a48e2b6ef8b941bb1fcb
BLAKE2b-256 checksum
How to use checksums
ed7e0bbb08eea803f0d73de4f8bd166df0755c10bb68f726ba809090b8c11a7f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp311-cp311-macosx_11_0_arm64.whl
Size 9.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
9c5d23d6eafd1c2f036164f724aa9d2a7d89f8a74e61609991397e4d24e39e03
BLAKE2b-256 checksum
How to use checksums
faba831c4a9e1303e626203cb9c425870cf36527426c96c39502fcf5129c99de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
df76557297b35aa737045235b173ccd47f690afd11e762b746b550f87cfc9286
BLAKE2b-256 checksum
How to use checksums
607c9626ad66bfb82f2eda609707241d39b4ee9252d762e1bcd3c6c529e6a025
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
85e825270603ee9eb6e6c0fb6a575f73ba78864ad3db12a3649dfc8203b13d55
BLAKE2b-256 checksum
How to use checksums
b24151bb2ca370c9e87a34028721706809ecac6e1e8207b23924786b42314024
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 9.9 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
3e9dce917a9f14707821f6bbfe6fff2298bb2ccad1aaa2589be76bd7b4bc060f
BLAKE2b-256 checksum
How to use checksums
343e8ce211ca0063485e09cd5d3d72682939a126197ddb33309c2c51d5b3e729
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

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

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

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 Oct 23, 2026.

Transparency log

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

Download URL emend-0.5.6-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
5bed50ef29b5dce916ff65250ad0d2bf63fa91f61c1d101b875b8e0ec5f404f3
BLAKE2b-256 checksum
How to use checksums
7979f1ac7432fd9669ae7629bfef6983b0e7796b837f8b666895de32f0c3ba12
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Oct 23, 2026.

Transparency log

Security for emend 0.5.6

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.

Full provenance

All 41 files in this release have been uploaded with provenance metadata.

Select from 41 files

Attestation for emend-0.5.6.tar.gz

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 Oct 23, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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