Skip to main content

A Python refactoring CLI tool with structured edits and pattern transforms

Project description

emend

A Python refactoring CLI tool built on LibCST, with AST-based commands for handling nested functions and closures.

Built on two complementary systems:

  • Structured Edits - Precise changes to symbol metadata using selectors like file.py::func[params][0]
  • Pattern Transforms - Code-pattern search and replace with capture variables like print($X)logger.info($X)

Installation

Using uv (recommended)

uv tool install emend

Using pip

pip install emend

Verify the installation:

emend --help

Usage

emend <command> [options]

Workflow

  1. Preview changes: Run with --dry-run (default) to see what will change
  2. Review the diff output
  3. Apply changes: Re-run with --apply
  4. Format code: Run formatters (black/ruff/isort) - emend may not preserve exact formatting
  5. Verify: Run tests/type checks

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: IDENTIFIER ("." 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: /[^:]+/
IDENTIFIER: /[a-zA-Z_][a-zA-Z0-9_]*/
INT: /\d+/
PSEUDO_CLASS: /:KEYWORD_ONLY|:POSITIONAL_ONLY|:POSITIONAL_OR_KEYWORD/

Commands

Search & Read

search - Unified search with auto-detection

  • Pattern mode: emend search 'print($X)' file.py
  • Lookup mode: emend search file.py::func
  • Summary mode: emend search file.py (list symbols)
  • Filters: --kind, --name, --returns, --depth, --has-param, --output, --where, --imported-from, --scope-local
  • Output formats: code, location, selector, summary, metadata, json, count, summary::flat, code::dedent
  • Also available as: query, show, get, lookup, find for intuitive workflows

Edit & Transform

edit - Modify or remove existing symbol components

  • Replace: emend edit file.py::func[returns] "int" --apply
  • Insert: emend edit file.py::func[params] "new_param" --before ctx --apply
  • Remove: emend edit file.py::func[params][old_param] --rm --apply
  • Wildcards: emend edit 'file.py::*[decorators]' "@dataclass" --apply

add - Insert new items into list components (alternative to edit)

  • emend add file.py::func[params] "timeout: int = 30" --apply
  • emend add "file.py::func[params]:KEYWORD_ONLY" "debug: bool" --apply

replace - Replace pattern matches with pattern-based substitution

  • emend replace 'print($X)' 'logger.info($X)' file.py --apply
  • Scope constraints: --in, --inside, --not-inside, --where

Symbol Management

refs - Find all references to a symbol across the project

  • emend refs models.py::User
  • Filters: --writes-only, --reads-only, --calls-only
  • Output: --output json, --output location

rename - Rename a symbol or module across the project

  • Symbol: emend rename models.py::User --to Account --apply
  • Module: emend rename models.py --to accounts.py --apply
  • Filters: --docs, --no-hierarchy, --unsure

move - Move a symbol or module with automatic import updates

  • Symbol: emend move utils.py::parse_date helpers/dates.py --apply
  • Module: emend move utils.py helpers/utils.py --apply

copy-to - Copy a symbol to another file

  • emend copy-to workflow.py::Builder._build.helper tasks.py --dedent --apply

Utilities

batch - Apply multiple refactoring operations from YAML/JSON file

  • emend batch rules.json --apply

lint - Lint files using pattern rules from .emend/patterns.yaml

  • emend lint src/
  • emend lint src/ --fix --apply to auto-fix issues

graph - Generate a call graph for functions in a file

  • emend graph src/module.py --format plain
  • Formats: plain, json, dot

Examples

Search & Read Examples

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

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

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

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

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

Edit Examples

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

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

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

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

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

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

Pattern Transform Examples

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

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

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

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

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

Symbol Management Examples

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

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

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

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

# List symbols using search
emend search 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
emend find 'print($X)' src/ --inside 'async def'
emend find 'await $X' src/ --not-inside '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.

Development

Installing from Source

Clone the repository and install for development:

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

# Using make (creates virtual environment)
make venv

# Or manually:
python3 -m venv .venv
.venv/bin/pip install -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 entry point, argument parsing
│   ├── transform.py          # Transform primitives (get/set/add/remove/find/replace)
│   ├── 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
│   └── grammars/
│       ├── selector.lark     # Extended selector grammar
│       └── pattern.lark      # Pattern grammar
├── tests/test_emend/         # Test suite
├── Makefile
└── pyproject.toml

License

MPL 2.0

Project details


Download files

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

Source Distribution

emend-0.1.0.tar.gz (169.0 kB view details)

Uploaded Source

Built Distributions

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

emend-0.1.0-py3-none-any.whl (80.1 kB view details)

Uploaded Python 3

emend-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (704.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

emend-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (667.9 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64

emend-0.1.0-cp312-cp312-win_amd64.whl (504.1 kB view details)

Uploaded CPython 3.12Windows x86-64

emend-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (705.4 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

emend-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64

emend-0.1.0-cp312-cp312-macosx_11_0_arm64.whl (618.9 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

emend-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl (630.8 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

emend-0.1.0-cp311-cp311-win_amd64.whl (505.1 kB view details)

Uploaded CPython 3.11Windows x86-64

emend-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (705.9 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

emend-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

emend-0.1.0-cp311-cp311-macosx_11_0_arm64.whl (621.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

emend-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl (632.1 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

emend-0.1.0-cp310-cp310-win_amd64.whl (505.0 kB view details)

Uploaded CPython 3.10Windows x86-64

emend-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (705.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

emend-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (668.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

emend-0.1.0-cp310-cp310-macosx_11_0_arm64.whl (621.1 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

emend-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl (632.7 kB view details)

Uploaded CPython 3.10macOS 10.12+ x86-64

File details

Details for the file emend-0.1.0.tar.gz.

File metadata

  • Download URL: emend-0.1.0.tar.gz
  • Upload date:
  • Size: 169.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emend-0.1.0.tar.gz
Algorithm Hash digest
SHA256 1835b5da7ac856c1d973a9d731c910349095bd6445bb4ee934b099c7eb9c14aa
MD5 99665a80b471456d2e2d605c74eba031
BLAKE2b-256 7a4f41e49dfa9cd4f767abed256f193b0d11d8dc871c31d8e9749ed1f592258f

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0.tar.gz:

Publisher: publish.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: emend-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 80.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emend-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 535f8e320729d43ce3529fc1fb929bf322ebf1882b1fffd43187aea2c3a23394
MD5 d3a4f036a6b8339f107c51e50ddb332d
BLAKE2b-256 096f87b8cfd0b96a31ec17dcc1a1c420df40fc4b0dbfb92132968a204f4acbad

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-py3-none-any.whl:

Publisher: publish.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09b5a3b16820629fd502eada2a9b5a83c9346e34b37d34a9215e8fd3fd544c3d
MD5 9fafd99f5475d37e6b70d3312b0c08ec
BLAKE2b-256 cd634b901eeb4e9c5a2ac74981d872347b82b38567cf9973020ece9da3f57be5

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d05d74ce80e972b7a462077387b954245a4722d158b770f675798eafdf76ee7b
MD5 83f337bd22eb8b73d2683fee5ad722ef
BLAKE2b-256 4cef54890222c9ad6ed1d78553f2fa4d779473aa5bd6a1f0165abeb2395c46bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: emend-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 504.1 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emend-0.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 945a528f8ef57e0e629e954a6439693b09544a4e6c715536edda7c41371221b2
MD5 42a3cbba1c35f9f87f85372ba78fc69d
BLAKE2b-256 f504ef6b2852b5f7d42a9e719be5e5908caf0e0b5e85524a975a9d3b7f6750e8

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32333635ffd61bf9aaa1790e439dd9dad19b45f24aa71a8e29f28f5c472a4b07
MD5 3011a27ff6e0bb4c6bb46b0c6c378cfe
BLAKE2b-256 36b008cdcf00d64d8a8091dcdf65803c2f3ec90f3db5e6fe99a17aa077ad54f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 33c5fd3ae1287c0e7c832d37bd0ea4d24635ff40845eaaae2f803f9d042c8310
MD5 35d3d6f801779639a00179dc2f446e92
BLAKE2b-256 b2848b3234ed30ab22f59b9570d2cf1107bba38b0f6e82fbcfe1bd206e9be69f

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 44746c43230b5b0a42c6782bf60bef4bce8bae34f7a9908844eac2e6b3221a43
MD5 70b32f6874c37c2fb1b430efb5d0d1e3
BLAKE2b-256 bf8aaeb4c759385edcd0c06d4a6c351942e8cb17e4dbf82d3d54259d9b707195

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8e1c457e450d85e9a5f6857b0dcc05b331a2367edb311fa8a3f3f7628bb0ed99
MD5 6b68e529a3e924bb7816ffcc258294e0
BLAKE2b-256 10a4cead737ced996fd1cdf794fdde0cc8c5fe6b2381942f04fbcd48b687cb8d

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp312-cp312-macosx_10_12_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: emend-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 505.1 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emend-0.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6e700c83f9aa73ce3a288ef62feee85700b781c3ad3d9ba3ae35dec4210559e9
MD5 b7752110592aeb1d0827ec73fb5ec0e6
BLAKE2b-256 364ea5726621f2186aa9109e417748d0848566376b3b3f93ed0a173c20d98da3

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 41f3d50be9e51c997a3fc782b8e8a00750e4a0dc10bc6613a50619df76ff869e
MD5 7dc26de51a6648dcdd28aa06ada0d4db
BLAKE2b-256 9dd6a6ede7cc76fc12b9cdd4a3dad0f47586ab2b947eed6025f862c0989adfdd

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2ec87e2b44942822ca561081042b4180c54a08e261eaf1e4df67d322a0090878
MD5 122d71f9fd531f25fe8186170a419220
BLAKE2b-256 0016bb6de50801c6588fb997a056574ee5247a84f035c6cf04dad67224d07537

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4106ee6ea827aa0d63ed0e4e0163d44fb40e68fa5e42d5b2fc9c6c8d155734db
MD5 7e79656160382044153b4ee65668f20c
BLAKE2b-256 aa601bc4a1ebc4dae57a94f5e6f3209c77f561c7ad2ae5e01631feba72c4de21

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 587b4a3442c315c197653dd3a62909b8ee017c6ac45b2780679752fededd862a
MD5 06b7d52897d4e3ac4dc25c709a1d4fb5
BLAKE2b-256 46787759c20c13dcf1c085dcbb5c38f46b8fc9aab2a58b12689d6fc158390187

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp311-cp311-macosx_10_12_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: emend-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 505.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emend-0.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9f5be9124159486dea5cda1800baabfb5462709c4ce2901fc7addd3c384741ef
MD5 fce4db4ba9cdce3a7ba8ba135cc327dc
BLAKE2b-256 50a9821785903e210baedbee72106d197114a4d00af1c0fd64c705e2d573d61a

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4749fe603a0a9b25627f2aab2ba4c075641313ab43c46ebb5556c9528686c26
MD5 8b69541d74c91c3a24d0871e446a4d69
BLAKE2b-256 291b391133acc553fb6b59b84bee6c064f00cca012199bb8db71256954c3e62d

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5e70cca9390334e56b168ef73a6a014c4f28107885d5c7579f186fca4b52267e
MD5 a05819c80720fb868ad7196a7a7d4c4a
BLAKE2b-256 f5f16247f1b022b12d7597892dbb071e73a9b3ecefc3b3be8853e5310ee5e912

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4cbb2454d189bb65936b60ef3f3f5f7e91b73f93a92b8330cfa9eb4c4e278797
MD5 959cdf79317cfdaf52ed1928f3101fa6
BLAKE2b-256 ad62d1612de3a5d86ef2daa85244e34a32ff5a3cbf13e56fb343cccfc6a6a5a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

File details

Details for the file emend-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for emend-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f161780c97dca0d3f56e366c0586c8d360f525430335d6a856409be18ab77bfe
MD5 725800e6e96c3aabce64b63e7bc3145d
BLAKE2b-256 3b5d39d8640199d01b0da748229af9f097d42b0a72e6a645394c6ec6f92ab684

See more details on using hashes here.

Provenance

The following attestation bundles were made for emend-0.1.0-cp310-cp310-macosx_10_12_x86_64.whl:

Publisher: wheels.yml on lucaswiman/emend

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

Supported by

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