Skip to main content

BPE Tokenizer Editor

PyPI version Python versions License: MIT

A high-performance Python library for editing HuggingFace BPE tokenizer.json files with consistency guarantees. Built with Rust for maximum performance.

Features

  • ✅ Validate merges - Check that all merge results exist in vocabulary
  • ✅ Add tokens - Add new tokens with automatic merge chain creation
  • ✅ Remove tokens - Remove tokens with cascade deletion of dependent merges
  • ✅ Shrink vocab - Remove N longest tokens to reduce vocabulary size
  • ✅ Sync single-chars - Copy all single-character tokens from source tokenizer
  • ✅ Merge tokenizers - Convert source tokens to the target byte format and prioritize their merges
  • ✅ Keep vocab size fixed - Add tokens while automatically removing others to maintain size
  • ✅ Reindex vocab - Make vocabulary IDs sequential by removing gaps
  • 🚀 Rust-powered - Native performance with Python convenience

Installation

pip install bpe-tokenizer-editor

Requirements

  • Python 3.8+
  • No additional dependencies required (Rust code is compiled into the wheel)

Quick Start

from bpe_tokenizer_editor import BPETokenizerEditor

# Load a tokenizer
editor = BPETokenizerEditor("tokenizer.json")

# Check stats
print(f"Vocabulary size: {editor.vocab_size}")
print(f"Number of merges: {editor.merges_count}")

# Validate merges
validation = editor.validate_merges()
print(f"Valid merges: {validation.valid_count}")
print(f"Invalid merges: {validation.invalid_count}")

# Add a new token
result = editor.add_token("merhaba")
print(f"Added: {result.added}, Method: {result.method}")

# Save the modified tokenizer
editor.save("tokenizer_modified.json")

API Reference

Loading and Saving

# Load from file
editor = BPETokenizerEditor("tokenizer.json")

# Load from JSON string
editor = BPETokenizerEditor.from_json(json_string)

# Save to file
editor.save("output.json")

# Export to JSON string
json_str = editor.to_json()

Properties

editor.vocab_size    # Current vocabulary size
editor.merges_count  # Current number of merge rules

Token Operations

# Check if token exists
editor.has_token("hello")  # Returns bool

# Get token ID
editor.get_token_id("hello")  # Returns int or None

# Get token by ID
editor.get_token_by_id(1000)  # Returns str or None

# Get all tokens as dict
vocab = editor.get_vocab()  # Returns Dict[str, int]

# Get all merges
merges = editor.get_merges()  # Returns List[Tuple[str, str]]

# Get single-character tokens
single_chars = editor.get_single_char_tokens()  # Returns List[Tuple[str, int]]

Merging Tokenizers

# The editor is the target tokenizer whose configuration is preserved.
editor = BPETokenizerEditor("target-tokenizer.json")
result = editor.merge_from(
    "source-tokenizer.json",
    max_vocab_size=2**18,
)
editor.save("merged-tokenizer.json")

print(result.representation)       # "ByteLevel (Ġ)" or "space marker (▁)"
print(result.tokens_injected)
print(result.final_vocab_size)     # Includes added/special tokens

merge_from converts source tokens to the target tokenizer's native internal representation, adds any required UTF-8 byte bridges, and ranks source merges before original target merges. Source-specific added/special tokens are not injected.

Statistics

stats = editor.get_stats()
print(f"Vocab size: {stats.vocab_size}")
print(f"Merges: {stats.merges_count}")
print(f"Single chars: {stats.single_char_count}")
print(f"Special tokens: {stats.special_token_count}")
print(f"ID range: {stats.min_token_id} - {stats.max_token_id}")
print(f"Length distribution: {stats.length_distribution}")

Validation

# Validate merges (check if merge results exist in vocab)
result = editor.validate_merges()
print(f"Valid: {result.valid_count}, Invalid: {result.invalid_count}")

for idx, token_a, token_b in result.invalid_merges:
    print(f"  Invalid merge at {idx}: '{token_a}' + '{token_b}'")

# Fix invalid merges (remove them)
removed_count = editor.remove_invalid_merges()
print(f"Removed {removed_count} invalid merges")

Adding Tokens

# Add a single token with automatic merge chain creation
result = editor.add_token("newtoken")
print(f"Added: {result.added}")
print(f"Method: {result.method}")  # 'single_char', 'longest_prefix', or 'char_chain'
print(f"Added merges: {result.added_merges}")

# Add multiple tokens
results = editor.add_tokens(["token1", "token2", "token3"])

# Add special token without merge chain
editor.add_token_atomic("<special>")

# Add tokens while keeping vocabulary size fixed
result = editor.add_tokens_keep_size(
    tokens=["new1", "new2", "new3"],
    whitelist=["protected_token"]  # Optional: tokens that should never be removed
)
print(f"Added: {result['tokens_added']}, Removed: {result['tokens_removed']}")

Removing Tokens

# Remove a token and all its dependencies (cascade removal)
result = editor.remove_token("unwanted")
print(f"Root token: {result.root_token}")
print(f"Removed tokens: {result.removed_tokens}")
print(f"Removed merges: {result.removed_merges}")

# Remove multiple tokens
results = editor.remove_tokens(["token1", "token2"])

Shrinking Vocabulary

# Preview what would be removed
tokens_to_remove = editor.find_tokens_to_shrink(count=1000, min_id=50000)
for token, id, length in tokens_to_remove[:10]:
    print(f"  {token} (ID: {id}, length: {length})")

# Actually shrink the vocabulary
result = editor.shrink(count=1000, min_id=50000)
print(f"Initial size: {result.initial_vocab_size}")
print(f"Final size: {result.final_vocab_size}")
print(f"Tokens removed: {result.total_tokens_removed}")
print(f"Merges removed: {result.total_merges_removed}")

Syncing with Another Tokenizer

# Sync single-character tokens from source tokenizer
# (useful for preserving Unicode coverage)
result = editor.sync_single_chars(
    source_path="original_tokenizer.json",
    min_id=50000  # Only remove tokens with ID >= 50000
)
print(f"Chars added: {result['chars_added_count']}")
print(f"Tokens removed: {result['total_tokens_removed']}")

Reindexing Vocabulary

After sync operations or modifications, vocabulary IDs may have gaps (e.g., IDs jump from 73000 to 74000). This creates a sparse vocabulary. Use reindex to make all IDs sequential:

# Check for gaps in vocabulary IDs
has_gaps, total_gaps, min_id, max_id = editor.check_vocab_gaps()
if has_gaps:
    print(f"Found {total_gaps} gaps in ID space (range: {min_id}-{max_id})")

# Reindex to make IDs sequential
result = editor.reindex_vocab()
print(f"Remapped {result.ids_remapped} IDs")
print(f"Removed {result.gaps_removed} gaps")
print(f"New ID range: {result.new_min_id} - {result.new_max_id}")

Note: The sync_single_chars method automatically calls reindex_vocab after completing, so you typically don't need to call it manually after syncing.


## Examples

### Training a Domain-Specific Tokenizer

```python
from bpe_tokenizer_editor import BPETokenizerEditor

# After training your custom tokenizer, validate and fix it
editor = BPETokenizerEditor("my_custom_tokenizer.json")

# Check for problems
validation = editor.validate_merges()
if validation.invalid_count > 0:
    print(f"Found {validation.invalid_count} invalid merges, fixing...")
    editor.remove_invalid_merges()

# Sync Unicode characters from original tokenizer
result = editor.sync_single_chars(
    source_path="original_tokenizer.json",
    min_id=50000
)
print(f"Added {result['chars_added_count']} missing characters")

# Add domain-specific tokens
domain_tokens = ["merhaba", "dünya", "Türkiye"]
for token in domain_tokens:
    result = editor.add_token(token)
    if result.added:
        print(f"Added '{token}' using {result.method} method")

# Save the result
editor.save("my_final_tokenizer.json")

Reducing Vocabulary Size

from bpe_tokenizer_editor import BPETokenizerEditor

editor = BPETokenizerEditor("large_tokenizer.json")
print(f"Original size: {editor.vocab_size}")

# Preview what will be removed
preview = editor.find_tokens_to_shrink(count=10000, min_id=50000)
print(f"Will remove {len(preview)} tokens")
print("First 5 tokens to be removed:")
for token, id, length in preview[:5]:
    print(f"  '{token}' (length={length}, id={id})")

# Perform the shrink
result = editor.shrink(count=10000, min_id=50000)
print(f"New size: {editor.vocab_size}")
print(f"Total tokens removed (including cascade): {result.total_tokens_removed}")

editor.save("smaller_tokenizer.json")

Adding Tokens with Fixed Vocabulary Size

from bpe_tokenizer_editor import BPETokenizerEditor

editor = BPETokenizerEditor("tokenizer.json")
original_size = editor.vocab_size

# Add new tokens while keeping the same vocabulary size
result = editor.add_tokens_keep_size(
    tokens=["custom1", "custom2", "custom3"],
    whitelist=["<pad>", "<eos>", "<bos>"]  # Never remove these
)

print(f"Tokens added: {result['tokens_added']}")
print(f"Tokens removed to maintain size: {result['tokens_removed']}")
print(f"Final vocab size: {editor.vocab_size}")  # Should equal original_size

editor.save("tokenizer_with_custom_tokens.json")

Performance

The library is written in Rust and compiled to native code, providing excellent performance:

Operation Time (256K vocab)
Load tokenizer ~50ms
Validate merges ~100ms
Get stats ~50ms
Shrink 1000 tokens 2-5s
Sync 18K chars 30-60s

Building from Source

If you want to build the package from source:

# Install maturin
pip install maturin

# Build and install in development mode
maturin develop --features python

# Build wheel for distribution
maturin build --release --features python

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see LICENSE file for details.

Metadata

Release files for bpe-tokenizer-editor 0.2.0

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

Source distribution (sdist)

Source distribution for bpe-tokenizer-editor 0.2.0
File Size Uploaded Provenance
bpe_tokenizer_editor-0.2.0.tar.gz 49.0 kB Without provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for bpe-tokenizer-editor 0.2.0
File
bpe_tokenizer_editor-0.2.0-cp38-abi3-win_arm64.whl CPython 3.8 abi3 Windows ARM64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-win_amd64.whl CPython 3.8 abi3 Windows x86-64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-win32.whl CPython 3.8 abi3 Windows x86-32 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl CPython 3.8 abi3 Linux musl 1.2+ x86-64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_i686.whl CPython 3.8 abi3 Linux musl 1.2+ x86-32 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_armv7l.whl CPython 3.8 abi3 Linux musl 1.2+ ARMv7l Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl CPython 3.8 abi3 Linux musl 1.2+ ARM64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.8 abi3 Linux glibc 2.17+ IBM System/390x Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.8 abi3 Linux glibc 2.17+ PowerPC 64-le Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.8 abi3 Linux glibc 2.17+ x86-32 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.8 abi3 Linux glibc 2.17+ ARMv7l Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 abi3 Linux glibc 2.17+ ARM64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_11_0_arm64.whl CPython 3.8 abi3 macOS 11.0+ ARM64 Details
bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl CPython 3.8 abi3 macOS 10.12+ x86-64 Details

Total release size: 8.8 MB

Release files / bpe_tokenizer_editor-0.2.0.tar.gz

Download URL bpe_tokenizer_editor-0.2.0.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
acc37d2ef7c271a6f0ad6cbb203267d8e5d77dcbeabbb61f54977fe656ebfa97
BLAKE2b-256 checksum
How to use checksums
ed27892c535c636af362b1ca31a656ae5d44e30fb4cccdc597d520a554c3b2e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-win_arm64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-win_arm64.whl
Size 429.7 kB
Tags CPython 3.8 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
618ec2d85ad311cc4dfc031c6a45006204486ab6c856651024bb1d6523425a4c
BLAKE2b-256 checksum
How to use checksums
23a8032e5d55afac9b4439a81dbe5a3a994dd66a8928b0f830c766177fe672d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-win_amd64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-win_amd64.whl
Size 457.9 kB
Tags CPython 3.8 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
883e6a67b43b0a0d7ec0c71c3c90ec3cf1e7bfa7ea6d1ffdcf7489526fc35c57
BLAKE2b-256 checksum
How to use checksums
31d90d3df754bbfe5376b9ca34caff4e75969042b5ef1d73596ce13301a3decb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-win32.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-win32.whl
Size 426.8 kB
Tags CPython 3.8 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
010fb1fc0da6a041048290473bf12c4db003daf3c38b04caa27bdcef7a27a074
BLAKE2b-256 checksum
How to use checksums
bbe084c850bcc6c8b21520fc2da627035eea0cb5aebc357cdbc98be788ea0981
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_x86_64.whl
Size 758.0 kB
Tags CPython 3.8 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
18c9373b1f1da2b34c676a73820ac5f953ab9f51dc41e509b20589435df6bab4
BLAKE2b-256 checksum
How to use checksums
d59096e9f9a1b38f1e05381b4580348057a0142021b6a7ad464c4751ce328623
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_i686.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_i686.whl
Size 787.3 kB
Tags CPython 3.8 Linux musl 1.2+ x86-32 abi3
SHA-256 checksum
How to use checksums
c67a74b58cdc9cff8963aa6cf6de4964f11a86cd1d6ab24587c2ab4fb10ead21
BLAKE2b-256 checksum
How to use checksums
0e7d53e2ec035920c107f4542a4ab91cf2b484527729c2cd177da36f7b64d616
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_armv7l.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_armv7l.whl
Size 793.0 kB
Tags CPython 3.8 Linux musl 1.2+ ARMv7l abi3
SHA-256 checksum
How to use checksums
67435bc83450b64d811186223086af5e57eeba71fae0934dfd1055797c57b4b3
BLAKE2b-256 checksum
How to use checksums
d83fd53d5fbcb0514f41fe73f414cb25af0b90256edec231adb05a6c6f7e9efc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-musllinux_1_2_aarch64.whl
Size 689.2 kB
Tags CPython 3.8 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
aecc55a34a8a29b2f8dd9794f0ad6a5c29e4ea58611e2fa48cab32e6d9504738
BLAKE2b-256 checksum
How to use checksums
2fbe1da66c63bee47268e7f8396f36ed9492babf7148e97cfe6b1c69d748039d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 559.4 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
f38b4ab52b352a077ac3a70af8c09c5727fd0428f06e8871bdb1be6e131b9fd9
BLAKE2b-256 checksum
How to use checksums
6cbddbba2ae97083c1f69b73e5fc2e08d8fb1bceb8ec0df7ba1e00c0ba9a07c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 584.8 kB
Tags CPython 3.8 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
fd181fd01b703e5acc8cb7a2551c017866f5d242d8b883a701525ea643923517
BLAKE2b-256 checksum
How to use checksums
cd2049539f1546c94610775eb7032044fb7f006635c809be0c261f888f8a4880
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 677.9 kB
Tags CPython 3.8 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
02ed9cc449acb9b10ae0af98ee96fee34a5cd3c5a04a33595716bd43f888b0f9
BLAKE2b-256 checksum
How to use checksums
947fe80d2425d97664890166e2547da5861e621e26e3ab201074e172dc07dee7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Size 585.3 kB
Tags CPython 3.8 Linux glibc 2.17+ x86-32 abi3
SHA-256 checksum
How to use checksums
df0421f4db99098d33182d000ef8c692bda45f2f1b98ae129abfbf676cd0a0c9
BLAKE2b-256 checksum
How to use checksums
f08a0e7214872199ec8156647fa4e40cd69e8e2c39c4a7106e46a5cad52f0a6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 515.7 kB
Tags CPython 3.8 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
ea6b8021bcb76ee92016ff476451d8c527a0c4b2c136abd0ce2523466bbaae18
BLAKE2b-256 checksum
How to use checksums
d8ea329cfbc9d4b7002c60ce790af744bdcb63c4baef8f21fc03274f612bce2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 512.4 kB
Tags CPython 3.8 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
d31ffd16e49f96e87de7535ca49cdc9ba1fa7f130c367f8ec694f7e7ab8e7c70
BLAKE2b-256 checksum
How to use checksums
80d75b0c3d8e07926abb4dfd8032dca226358ab31da37ab16111b40b2f976be8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_11_0_arm64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_11_0_arm64.whl
Size 490.7 kB
Tags CPython 3.8 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a3b9ff3e075f1bd331ec7965f625f797089010fdb772da66926e7a9dd4f09b01
BLAKE2b-256 checksum
How to use checksums
14e08268d40c7b7f466f99478656b04b12e22a57b9dc7469948e1858c319eb2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl

Download URL bpe_tokenizer_editor-0.2.0-cp38-abi3-macosx_10_12_x86_64.whl
Size 516.6 kB
Tags CPython 3.8 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
9759367b615aae44428f4d1fd9f6718d80c31ea610ccb80e2023ad5daff4dea3
BLAKE2b-256 checksum
How to use checksums
5b49f8ed171739e73538c93ecda7445426cc40e9900ec29d4efac7417979e537
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for bpe-tokenizer-editor 0.2.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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