Skip to main content

SentencePiece Python Wrapper

Python wrapper for SentencePiece. This API supports the encoding, decoding, and training of SentencePiece models.

For a detailed feature and API comparison with Hugging Face Tokenizers and OpenAI's tiktoken, see the Tokenizer Comparison Cheat Sheet.

Installation

For Linux (x86_64/aarch64), macOS, and Windows (x64/arm64) environments, you can use the pip command to install the SentencePiece Python module.

pip install sentencepiece

Basic Usage

The SentencePieceProcessor class provides the primary interface for text tokenization (encoding) and detokenization (decoding).

Core Methods

  • sp.encode(...): Segments input text into token IDs, string pieces, or other formats (like NumPy arrays or Protobuf messages).
  • sp.decode(...): Reconstructs the original text from token IDs or string pieces.

Input Types & Batch Processing

Both methods support polymorphic inputs and can execute in either single or batch mode:

  • Single Input: Pass a single Unicode str or raw bytes (for encoding), or a single list of IDs/pieces or a 1D NumPy array (for decoding).
  • Batch Input: Pass a list of str or bytes (for encoding), or a list of lists of IDs/pieces or a 2D NumPy array (for decoding). Batch operations automatically release the Python GIL and can run in parallel in C++ (see Batch Encoding).

Here is a Python example showing basic usage:

import sentencepiece as spm
import numpy as np

# Load the model
sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

# Encode text to IDs (default return_type is int)
print(sp.encode('This is a test'))
# Output: [284, 47, 11, 4, 15, 400]

# Encode batch of texts to IDs
print(sp.encode(['This is a test', 'Hello world'], return_type=int))
# Output: [[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]]

# Alternative method for encoding to IDs
print(sp.encode_as_ids(['This is a test', 'Hello world']))
# Output: [[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]]

# Encode text to pieces
print(sp.encode('This is a test', return_type=str))
# Output: ['▁This', '▁is', '▁a', '▁', 't', 'est']

# Encode batch of texts to pieces
print(sp.encode(['This is a test', 'Hello world'], return_type=str))
# Output: [['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']]

# Alternative method for encoding to pieces
print(sp.encode_as_pieces(['This is a test', 'Hello world']))
# Output: [['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']]

# Encode text to pieces as bytes
print(sp.encode('This is a test', return_type=bytes))
# Output: [b'\xe2\x96\x81This', b'\xe2\x96\x81is', b'\xe2\x96\x81a', b'\xe2\x96\x81', b't', b'est']

# Encode to NumPy array (zero-copy)
print(sp.encode('This is a test', return_type='numpy'))
# Output: [284  47  11   4  15 400] (NumPy array)

# Encode to offset mapping
print(sp.encode('This is a test', return_type='offset_mapping'))
# Output: {
#   'ids': [284, 47, 11, 4, 15, 400],
#   'pieces': ['▁This', '▁is', '▁a', '▁', 't', 'est'],
#   'offsets': [(0, 4), (4, 7), (7, 9), (9, 10), (10, 11), (11, 14)]
# }

# Encode to Protobuf message
proto = sp.encode('This is a test', return_type='proto')
from google.protobuf import text_format
print(text_format.MessageToString(proto))
# Output:
# text: "This is a test"
# pieces {
#   piece: "▁This"
#   id: 284
#   surface: "This"
#   begin: 0
#   end: 4
# }
# ... (remaining pieces omitted for brevity)

# Alternative method for encoding to Protobuf
proto2 = sp.encode_as_proto('This is a test')
print(proto2 == proto)
# Output: True

# Encode with sampling (for subword regularization)
for _ in range(3):
  print(sp.encode('This is a test', return_type=str, enable_sampling=True, alpha=0.1, nbest_size=-1))
# Output examples:
# ['▁', 'This', '▁', 'is', '▁a', '▁', 't', 'e', 'st']
# ['▁This', '▁is', '▁a', '▁', 'te', 's', 't']
# ['▁This', '▁is', '▁', 'a', '▁', 't', 'e', 'st']

# N-best encoding
print(sp.nbest_encode('This is a test', nbest_size=3, return_type=str))
# Output:
# [['▁This', '▁is', '▁a', '▁', 't', 'est'],
#  ['▁This', '▁is', '▁a', '▁', 'te', 'st'],
#  ['▁This', '▁is', '▁a', '▁', 'te', 's', 't']]

# Decode IDs to text
print(sp.decode([284, 47, 11, 4, 15, 400]))
# Output: This is a test

# Decode batch of IDs to text
print(sp.decode([[284, 47, 11, 4, 15, 400], [151, 88, 21, 887]]))
# Output: ['This is a test', 'Hello world']

# Decode NumPy array
ids_np = np.array([284, 47, 11, 4, 15, 400], dtype=np.int32)
print(sp.decode(ids_np))
# Output: This is a test

# Decode to bytes
print(sp.decode([284, 47, 11, 4, 15, 400], return_type=bytes))
# Output: b'This is a test'

# Decode with offset mapping
print(sp.decode([284, 47, 11, 4, 15, 400], return_type='offset_mapping'))
# Output: {
#   'text': 'This is a test',
#   'ids': [284, 47, 11, 4, 15, 400],
#   'pieces': ['▁This', '▁is', '▁a', '▁', 't', 'est'],
#   'offsets': [(0, 4), (4, 7), (7, 9), (9, 10), (10, 11), (11, 14)]
# }

# Decode to Protobuf
proto_dec = sp.decode([284, 47, 11, 4, 15, 400], return_type='proto')
print(proto_dec.text)
# Output: This is a test

# Decode pieces to text
print(sp.decode(['▁', 'This', '▁', 'is', '▁a', '▁', 't', 'e', 'st']))
# Output: This is a test

# Decode batch of pieces to text
print(sp.decode([['▁This', '▁is', '▁a', '▁', 't', 'est'], ['▁He', 'll', 'o', '▁world']]))
# Output: ['This is a test', 'Hello world']

# Get vocabulary size
print(sp.get_piece_size())
# Output: 1000

# Piece to ID mapping
print(sp.piece_to_id('<s>'))
# Output: 1
print(sp.piece_to_id(['</s>', '\r', '▁']))
# Output: [2, 3, 4]

# ID to piece mapping
print(sp.id_to_piece(2))
# Output: </s>
print(sp.id_to_piece([2, 3, 4]))
# Output: ['</s>', '\r', '▁']

# Dictionary-like access
print(len(sp))
# Output: 1000
print(sp['</s>'])
# Output: 2

# Special token IDs
print('bos=', sp.bos_id())  # Output: bos= 1
print('eos=', sp.eos_id())  # Output: eos= 2
print('unk=', sp.unk_id())  # Output: unk= 0
print('pad=', sp.pad_id())  # Output: pad= -1 (disabled)

# Get the first 5 vocabulary tokens
print([sp.id_to_piece(i) for i in range(5)])
# Output: ['<unk>', '<s>', '</s>', '\r', '▁']

Offset Mapping

If you want to perform direct character-level or byte-level alignment operations (like text highlighting, substring extraction, or mapping tokens back to original text), you can use return_type='offset_mapping'.

This yields a Python dictionary containing the token IDs, string pieces, and offsets (tuples of (start, end)).

Unicode Character Offsets (Default)

By default, using return_type='offset_mapping' returns Unicode character offsets for both encoding and decoding. Slicing Python strings directly using these offsets works out of the box:

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

text = "吾輩は猫である。"

# 1. Encoding text to get offsets in the original text
enc_res = sp.encode(text, return_type='offset_mapping')
print(enc_res['offsets'])  # list[tuple[int, int]] containing Unicode char indices

for piece, (start, end) in zip(enc_res['pieces'], enc_res['offsets']):
  # Note: the first piece might be the dummy prefix (e.g. '▁') which maps to empty surface ''
  original_surface = text[start:end]
  print(f"Piece: {piece} -> Surface in original text: {original_surface}")

# 2. Decoding IDs back to text while retrieving offsets in the reconstructed text
dec_res = sp.decode(enc_res['ids'], return_type='offset_mapping')

print(dec_res['text'])    # "吾輩は猫である。" (the reconstructed text)
print(dec_res['offsets']) # Unicode char indices in `dec_res['text']`

for (start, end), piece in zip(dec_res['offsets'], dec_res['pieces']):
  # Note: piece might contain meta symbols (like '▁'), 
  # but slicing `dec_res['text']` using offsets yields the clean surface text.
  surface = dec_res['text'][start:end]
  print(f"Piece: {piece} -> Surface in reconstructed text: {surface}")

Raw Byte Offsets

You can retrieve byte-level offsets and raw byte pieces (useful for binary protocols, C++ compatibility, or raw byte slicing). Using bytes can also improve performance by bypassing Python's Unicode overhead (see Optimizing Performance).

How it is triggered:

  • Encoding: Defaults to matching the input type (i.e., bytes input triggers byte offsets, str input triggers Unicode offsets). You can explicitly override this by passing the return_bytes parameter in encode():
    • return_bytes=True: Forces raw byte offsets and bytes pieces (even with str input).
    • return_bytes=False: Forces Unicode offsets and str pieces (even with bytes input). Note: The return_bytes parameter in encode() is only allowed when return_type='offset_mapping'.
  • Decoding: Used when you explicitly set return_bytes=True in decode() (only allowed when return_type='offset_mapping').
# 1. Encoding bytes input -> returns raw byte offsets and byte pieces
text_bytes = text.encode('utf-8')
enc_res_bytes = sp.encode(text_bytes, return_type='offset_mapping')

print(enc_res_bytes['offsets']) # Byte indices in `text_bytes`
print(enc_res_bytes['pieces'])  # list[bytes] containing raw byte pieces

# Slicing the raw bytes directly works:
for piece, (start, end) in zip(enc_res_bytes['pieces'], enc_res_bytes['offsets']):
  # Note: the first piece is the dummy prefix (b'\xe2\x96\x81') which maps to empty surface b''
  surface_bytes = text_bytes[start:end]
  print(f"Piece: {piece} -> Surface bytes: {surface_bytes}")

# 2. Decoding to raw byte offsets
dec_res_bytes = sp.decode(enc_res_bytes['ids'], return_type='offset_mapping', return_bytes=True)
print(dec_res_bytes['text'])    # b'\xe5\x90\xbe...' (reconstructed text as bytes)
print(dec_res_bytes['offsets']) # Byte indices in `dec_res_bytes['text']`

for (start, end), piece in zip(dec_res_bytes['offsets'], dec_res_bytes['pieces']):
  # piece is returned as bytes when return_bytes=True
  surface_bytes = dec_res_bytes['text'][start:end]
  print(f"Piece: {piece} -> Surface bytes: {surface_bytes}")

Byte Fallback Behavior

When byte_fallback=True is enabled in the model, unknown characters (e.g., emojis or unsupported scripts) are decomposed into a sequence of raw UTF-8 byte tokens (such as <0xF0>, <0x9F>, etc.).

In this case, the offsets (whether Unicode character offsets or raw byte offsets) are assigned as follows:

  • Intermediate Byte Tokens: The first (N-1) byte tokens in the fallback sequence are assigned a zero-width span pointing to the start of the character (i.e., (start, start)). Slicing the text with these offsets yields an empty string ("" or b"").
  • Final Byte Token: The last byte token in the sequence is assigned the span of the entire character (i.e., (start, start + 1) in Unicode character offsets, or (start, start + byte_length) in raw byte offsets). Slicing the text with these offsets yields the full reconstructed character.

This ensures that the text can still be cleanly sliced and reconstructed without producing invalid Unicode byte sequences during slicing.

Protobuf Output

When encoding text with return_type='proto' (or EncodeAsProto), SentencePiece returns a structured SentencePieceText protobuf message.

Benefits of Protobuf Output:

  • Rich Metadata: Provides highly detailed information for each token, including alignment offsets, scores (log-likelihoods), and whether tokens represent control characters or raw bytes.
  • Language-Agnostic Contract: Because it is a standard serialized protobuf message, it can be passed directly to downstream C++, Go, or Java servers, ensuring consistent deserialization across language boundaries.
  • Format Flexibility: Protobuf messages can be easily converted to other popular structures (such as JSON strings) using standard protobuf utilities without manual parsing.

Each token inside the protobuf message contains begin and end alignment offsets representing raw byte offsets in the UTF-8 encoded representation of the original string.

To slice the original text using these offsets, you must first encode the string to UTF-8 bytes, perform the slice, and then decode it back:

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

text = "吾輩は猫である。"
proto = sp.encode(text, return_type='proto')

# Slice the UTF-8 bytes and decode back to string
text_bytes = text.encode('utf-8')
for piece in proto.pieces:
  surface = text_bytes[piece.begin:piece.end].decode('utf-8')
  print(f"Piece: {piece.piece} -> Surface: {surface}")
  assert surface == piece.surface

# Convert the protobuf message to JSON
from google.protobuf.json_format import MessageToJson
json_str = MessageToJson(proto)
print(json_str)

Batch Encoding (Across-Document Parallelism)

When processing a large collection of documents or sentences (e.g., training datasets), you can pass a list of strings directly to encode (or a list of lists/numpy arrays to decode).

To speed up batch tokenization, you can specify num_threads=N to parallelize processing across multiple CPU threads. For optimal performance across multiple batch calls, you should create and reuse a ThreadPool.

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

# A large batch of sentences
sentences = ["This is a test sentence."] * 10000

# 1. Basic batch encoding (sequential)
ids_batch = sp.encode(sentences, return_type=int)

# 2. Parallelized batch encoding using multiple threads
# This processes elements of the list in parallel in C++ (releasing the GIL)
ids_batch = sp.encode(sentences, return_type=int, num_threads=4)

# 3. Best practice: Reuse a ThreadPool to avoid thread recreation overhead
pool = spm.ThreadPool(num_threads=4)
for i in range(10):
  # Reuse the same thread pool across multiple calls
  ids_batch = sp.encode(sentences, return_type=int, thread_pool=pool)

Parallel Encoding (Within-Document Parallelism)

When tokenizing a single, very large document (e.g., a whole book or a massive text dump), you can use parallel_encode to split the document and tokenize it in parallel using multiple CPU threads.

This is different from passing a list of sentences to encode(..., num_threads=N), which parallelizes across the sentences in the list. parallel_encode parallelizes within a single string.

To use it efficiently, you should create and reuse a ThreadPool, and specify a chunk_len (in Unicode characters) to define the minimum chunk size processed by each thread.

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

# 1. Create a ThreadPool to reuse threads (prevents thread recreation overhead)
pool = spm.ThreadPool(num_threads=4)

# Load a very large document
with open('large_document.txt', 'r') as f:
  large_text = f.read()

# 2. Tokenize the large text in parallel
# chunk_len=1048576 (1M characters) is recommended to minimize thread scheduling overhead
ids = sp.parallel_encode(large_text, chunk_len=1048576, thread_pool=pool, return_type=int)

Text Normalization

You can normalize text using the normalization rules defined inside the model, or by using a standalone SentencePieceNormalizer with custom configurations.

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file='test/test_model.model')

# Standard normalization (e.g. NFKC and space replacement)
print(sp.normalize("Hello  World."))  # Double space
# Output: ▁Hello▁World.

# Normalization with character-to-byte offset mapping
normalized, offsets = sp.normalize("Hello  World.", with_offsets=True)
print(normalized)
# Output: ▁Hello▁World.
print(offsets)
# Output: [0, 0, 1, 2, 3, 4, 5, 7, 8, 9, 10, 11, 12, 13]
# normalized[i] spans from original byte offsets[i] to offsets[i+1]

You can also use SentencePieceNormalizer to run normalization independently of a model, or with custom parameters:

# Replicate processor's exact normalization behavior:
normalizer = spm.SentencePieceNormalizer(
    model_file='test/test_model.model',
    add_dummy_prefix=True,
    escape_whitespaces=True,
    remove_extra_whitespaces=True
)
print(normalizer.normalize("Hello  World."))
# Output: ▁Hello▁World.

# Initialize from mapping list of tuples (source, target)
norm_map = [
    ('foo', 'bar'),
    ('apple', 'orange'),
]
normalizer = spm.SentencePieceNormalizer(norm_map=norm_map)
print(normalizer.normalize("foo apple"))
# Output: bar orange

# Decompile back to list of tuples
print(normalizer.decompile())
# Output: [('apple', 'orange'), ('foo', 'bar')] (sorted by Unicode code point of source)

Model Training

Training is performed by passing parameters to the SentencePieceTrainer.train() function. See the training options documentation for a full list of supported parameters (which match the command-line flags of spm_train).

import sentencepiece as spm

# Train the model
spm.SentencePieceTrainer.train(
    input='test/botchan.txt',
    model_prefix='m',
    vocab_size=1000,
    user_defined_symbols=['foo', 'bar']
)

Expected output in console (stderr):

sentencepiece_trainer.cc(73) LOG(INFO) Starts training with :
trainer_spec {
  input: test/botchan.txt
  .. snip
unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=1 size=1188 obj=10.2839 num_tokens=32182 num_tokens/piece=27.0892
unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=0 size=1100 obj=10.4269 num_tokens=33001 num_tokens/piece=30.0009
unigram_model_trainer.cc(500) LOG(INFO) EM sub_iter=1 size=1100 obj=10.4069 num_tokens=33002 num_tokens/piece=30.0018
trainer_interface.cc(595) LOG(INFO) Saving model: m.model
trainer_interface.cc(619) LOG(INFO) Saving vocabs: m.vocab

Training with a Custom Normalizer

You can pass a pre-configured SentencePieceNormalizer instance to the trainer. This ensures the exact same normalization rules are packaged with the trained model.

# 1. Create and configure a normalizer
norm_map = [('foo', 'bar')]
normalizer = spm.SentencePieceNormalizer(norm_map=norm_map, add_dummy_prefix=False, escape_whitespaces=True)

# 2. Train using the normalizer instance
spm.SentencePieceTrainer.train(
    input='test/botchan.txt',
    model_prefix='m',
    vocab_size=1000,
    normalizer=normalizer
)

You can also extend pre-defined normalization rules (like 'nfkc') by decompiling them, appending your custom rules, and loading them back:

# 1. Load pre-defined NFKC rules
base_normalizer = spm.SentencePieceNormalizer(rule_name='nfkc')

# 2. Decompile to get the base mapping list of tuples
norm_map = base_normalizer.decompile()

# 3. Add custom rules to the mapping list
norm_map.append(('foo', 'bar'))
norm_map.append(('apple', 'orange'))

# 4. Create a new normalizer with the extended mapping
# Note: we set escape_whitespaces=True as required by the trainer
extended_normalizer = spm.SentencePieceNormalizer(norm_map=norm_map, add_dummy_prefix=False, escape_whitespaces=True)

# 5. Train using the extended normalizer
spm.SentencePieceTrainer.train(
    input='test/botchan.txt',
    model_prefix='m',
    vocab_size=1000,
    normalizer=extended_normalizer
)

Training without a Local Filesystem

The SentencePiece trainer can accept any iterable object to feed training sentences. You can also pass a file-like object (any object with a write() method) to write the output model to arbitrary devices/buffers. These features are useful for running SentencePiece in environments that have limited access to the local file system (e.g., Google Colab).

import urllib.request
import io
import sentencepiece as spm

# Loads model from URL as iterator and stores the model to BytesIO.
model = io.BytesIO()
with urllib.request.urlopen(
    'https://raw.githubusercontent.com/google/sentencepiece/master/data/botchan.txt'
) as response:
  spm.SentencePieceTrainer.train(
      sentence_iterator=response, model_writer=model, vocab_size=1000)

# Serialize the model as file.
# with open('out.model', 'wb') as f:
#   f.write(model.getvalue())

# Directly load the model from serialized model.
sp = spm.SentencePieceProcessor(model_proto=model.getvalue())
print(sp.encode('this is test'))

Optimizing Performance: str vs bytes (Encode & Decode)

For maximum throughput (e.g., when processing large datasets or files), you can use Python bytes for both encoding and decoding to bypass Python's Unicode conversion overhead.

Why it is faster:

  • Zero-Copy Encoding: When you pass bytes to the encoder (e.g., read directly via open(..., 'rb')), the wrapper extracts the memory pointer zero-copy to construct std::string_view directly. If you pass str, Python must cache/convert it to UTF-8, and when reading from files, Python first decodes the file bytes to str only for the wrapper to re-encode them.
  • Fast Decoding (No UTF-8 Validation): By default, the decoder converts the reconstructed C++ UTF-8 string into a Python str, which requires validating and decoding bytes to Unicode characters in Python. Specifying return_type=bytes directly returns a Python bytes object, bypassing this validation.

Using bytes instead of str yields ~1.14x speedup on encoding and ~1.21x speedup on decoding (benchmarked on a 30MB Japanese text dataset with 300k lines). Additionally, reading files directly as raw bytes (open(..., 'rb')) bypasses Python's native UTF-8 file decoder entirely, yielding further substantial I/O savings.

Example Pipeline:

import sentencepiece as spm

sp = spm.SentencePieceProcessor(model_file="test.model")

# 1. Optimal Encoding: Read and pass raw bytes
with open("large_file.txt", "rb") as f:
  lines_bytes = f.read().splitlines()
ids = sp.encode(lines_bytes, return_type=int)

# 2. Optimal Decoding: Reconstruct directly to bytes
decoded_lines_bytes = sp.decode(ids, return_type=bytes)
with open("decoded_output.txt", "wb") as f:
  f.write(b"\n".join(decoded_lines_bytes) + b"\n")

Model Modification

Modifying an existing SentencePiece model (e.g., adding/removing tokens, editing token scores) in memory is not officially supported. The SentencePieceProcessor class is designed strictly as a read-only inference engine.

However, since the .model file is a serialized Protocol Buffer, you can load and manipulate it in Python using the standard sentencepiece_model_pb2 definitions included with the package:

from sentencepiece import sentencepiece_model_pb2 as model_pb2
import sentencepiece as spm

# 1. Read the binary model file as a Protobuf message
model_proto = model_pb2.ModelProto()
with open("old.model", "rb") as f:
  model_proto.ParseFromString(f.read())

# 2. Modify vocabulary tokens or scores (at your own risk)
new_piece = model_proto.pieces.add()
new_piece.piece = "<my_special_token>"

# Score meaning depends on the model type:
# - Unigram: Log-probability of the piece (usually negative float). Used to optimize segmentation.
# - BPE: Merge priority. Typically set to 0.0 for high priority, or negative values for lower priority.
new_piece.score = 0.0

# Piece types: NORMAL (1), UNKNOWN (2), CONTROL (3), USER_DEFINED (4), UNUSED (5), BYTE (6)
new_piece.type = model_pb2.ModelProto.SentencePiece.Type.CONTROL

# 3. Load the modified model directly from memory
sp = spm.SentencePieceProcessor(model_proto=model_proto.SerializeToString())

# 4. (Optional) Export/Inspect the modified ModelProto as JSON
from google.protobuf.json_format import MessageToJson
json_model = MessageToJson(model_proto)

# 5. Save the modified model back to a file
with open("new.model", "wb") as f:
  f.write(model_proto.SerializeToString())

# 6. Load the new model from the file
sp2 = spm.SentencePieceProcessor(model_file="new.model")

Free-Threading Support

Experimental support for no-GIL/Free-Threading has been introduced in v0.2.1. For more details, please refer to this page. This operates similarly to how NumPy handles it.

The C++ library's const and static methods (such as encode(), decode(), and train()) are thread-safe and designed to work in a free-threaded (NoGIL) environment. However, non-const methods like load() are not thread-safe and can cause data races; ensure you implement appropriate locks when calling them from multiple threads.

While this limitation might be removed in the future, please note that it's not a simple fix, as it would require additional shared locks in C++.

Building from Source

Before building SentencePiece from source on Linux, ensure that the following dependencies are installed.

sudo apt update
sudo apt install -y cmake pkg-config build-essential

To build and install the Python wrapper from source, use the following commands to build and install the wheel package.

git clone https://github.com/google/sentencepiece.git
cd sentencepiece
mkdir build
cd build
cmake .. -DSPM_ENABLE_SHARED=OFF -DCMAKE_INSTALL_PREFIX=./root -DSPM_DISABLE_EMBEDDED_DATA=ON
make install
cd ../python
pip install build
python -m build --wheel
pip install dist/sentencepiece*.whl

If you don't have write permission to the global site-packages directory or don't want to install into it, you can use the --user flag:

pip install --user dist/sentencepiece*.whl

To build and install the Python wrapper from source on Windows using Visual Studio, first ensure you have PowerShell 7 (pwsh.exe) installed (which can be installed via winget install --id Microsoft.Powershell --source winget). Then, open a "Developer PowerShell for VS 2022" window and run the following commands:

git clone https://github.com/google/sentencepiece.git
cd sentencepiece
mkdir build
cd build
cmake .. -DSPM_ENABLE_SHARED=OFF -DCMAKE_INSTALL_PREFIX=".\root" -DSPM_DISABLE_EMBEDDED_DATA=ON
cmake --build . --config Release --target install
cd ../python
pip install build
python -m build --wheel
Get-ChildItem .\dist\sentencepiece*.whl | ForEach-Object { pip install $_.FullName }

Migration Notes (New pybind11 API)

Since v0.2.2, the SentencePiece Python wrapper has been migrated from SWIG to pybind11, introducing optimized NumPy support and robust Free-Threading (NoGIL) execution.

This migration introduces a few changes to standard usage and output formats:

1. BOS/EOS Behavior for USER_DEFINED Symbols

Historically, SentencePieceProcessor::bos_id() and eos_id() returned -1 if the corresponding tokens were defined as USER_DEFINED rather than CONTROL. However, the C++ Encode method with extra options (e.g. bos) still prepended the token, while the Python wrapper encode(..., add_bos=True) would prepend -1 or crash.

To resolve this inconsistency:

  • Behavior Alignment: The behavior has been aligned to strictly respect the CONTROL token type requirement.
  • Strict Verification & Errors: If the BOS/EOS tokens are defined as USER_DEFINED (which are essentially treated the same as NORMAL tokens, with no clear distinction in this context) or any type other than CONTROL (or if they are completely missing), trying to add them during encoding will now result in an error:
    • In C++, SetEncodeExtraOptions("bos") or SetEncodeExtraOptions("eos") will fail (return an error).
    • In Python, passing add_bos=True or add_eos=True to encode() will raise a ValueError (instead of silently ignoring it, prepending -1, or crashing).

2. Unified return_type Parameter

The previous parameter out_type has been renamed to return_type to better describe what the functions yield.

  • Backward Compatibility: The name out_type remains supported as a deprecated keyword argument alias. Passing out_type=int will work exactly as before, mapping internally to return_type=int. Specifying both return_type and out_type at the same time is invalid and will raise a ValueError.

3. Removal of immutable_proto

The custom C++ wrapper classes (ImmutableSentencePieceText, ImmutableNBestSentencePieceText) have been removed.

  • Using return_type='immutable_proto' (or out_type='immutable_proto') or helper methods like EncodeAsImmutableProto will now raise a ValueError.
  • Use return_type='proto' or EncodeAsProto instead.

4. New Classmethod Factories

To align with pythonic best practices and avoid overloaded constructor argument logic, SentencePieceProcessor now exposes clean classmethod factories to initialize processors:

  • SentencePieceProcessor.from_file(model_file, **kwargs): Creates and loads a processor from a file path.
  • SentencePieceProcessor.from_proto(model_proto, **kwargs): Creates and loads a processor directly from serialized model bytes in memory.
# 1. Loading from file
sp = spm.SentencePieceProcessor.from_file("m.model", return_type=str)

# 2. Loading from in-memory bytes
sp = spm.SentencePieceProcessor.from_proto(model_bytes, return_type=str)

Further Documentation

For more detailed information on SentencePiece concepts, options, and advanced configurations, please refer to the core documentation:

Metadata

Release files for sentencepiece 0.2.2

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

Source distribution (sdist)

Source distribution for sentencepiece 0.2.2
File Size Uploaded
sentencepiece-0.2.2.tar.gz 8.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for sentencepiece 0.2.2
File
sentencepiece-0.2.2-cp314-cp314t-win_arm64.whl CPython 3.14 CPython 3.14 free-threading Windows ARM64 Details
sentencepiece-0.2.2-cp314-cp314t-win_amd64.whl CPython 3.14 CPython 3.14 free-threading Windows x86-64 Details
sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
sentencepiece-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64 Details
sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp314-cp314-win_arm64.whl CPython 3.14 CPython 3.14 Windows ARM64 Details
sentencepiece-0.2.2-cp314-cp314-win_amd64.whl CPython 3.14 CPython 3.14 Windows x86-64 Details
sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
sentencepiece-0.2.2-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl CPython 3.14 CPython 3.14 macOS 10.15+ x86-64 Details
sentencepiece-0.2.2-cp314-cp314-macosx_10_15_universal2.whl CPython 3.14 CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp313-cp313t-win_arm64.whl CPython 3.13 CPython 3.13 free-threading Windows ARM64 Details
sentencepiece-0.2.2-cp313-cp313t-win_amd64.whl CPython 3.13 CPython 3.13 free-threading Windows x86-64 Details
sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 free-threading Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
sentencepiece-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 free-threading macOS 10.13+ x86-64 Details
sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 free-threading macOS 10.13+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp313-cp313-win_arm64.whl CPython 3.13 CPython 3.13 Windows ARM64 Details
sentencepiece-0.2.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
sentencepiece-0.2.2-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
sentencepiece-0.2.2-cp313-cp313-macosx_10_13_universal2.whl CPython 3.13 CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp312-cp312-win_arm64.whl CPython 3.12 CPython 3.12 Windows ARM64 Details
sentencepiece-0.2.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
sentencepiece-0.2.2-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
sentencepiece-0.2.2-cp312-cp312-macosx_10_13_universal2.whl CPython 3.12 CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp311-cp311-win_arm64.whl CPython 3.11 CPython 3.11 Windows ARM64 Details
sentencepiece-0.2.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
sentencepiece-0.2.2-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
sentencepiece-0.2.2-cp311-cp311-macosx_10_9_universal2.whl CPython 3.11 CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp310-cp310-win_arm64.whl CPython 3.10 CPython 3.10 Windows ARM64 Details
sentencepiece-0.2.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
sentencepiece-0.2.2-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details
sentencepiece-0.2.2-cp310-cp310-macosx_10_9_universal2.whl CPython 3.10 CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) Details
sentencepiece-0.2.2-cp39-cp39-win_arm64.whl CPython 3.9 CPython 3.9 Windows ARM64 Details
sentencepiece-0.2.2-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
sentencepiece-0.2.2-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
sentencepiece-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl CPython 3.9 CPython 3.9 macOS 10.9+ x86-64 Details
sentencepiece-0.2.2-cp39-cp39-macosx_10_9_universal2.whl CPython 3.9 CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) Details

Total release size: 89.9 MB

Release files / sentencepiece-0.2.2.tar.gz

Download URL sentencepiece-0.2.2.tar.gz
Size 8.2 MB
Tags Source
SHA-256 checksum
How to use checksums
3d2b5e824b5622038dc7b490897efe05ebbbb9e7350fc142f3ecc8789ef9bdf6
BLAKE2b-256 checksum
How to use checksums
cc33ea3cb3839607eb175da835244a798f797f478c5ddf0e8ecdf57ea85a4c70
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-win_arm64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-win_arm64.whl
Size 1.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
fa9f5ef0e2a82233dd0b8b32ea3f5710e0c44afbc07ed3620219f32601e56090
BLAKE2b-256 checksum
How to use checksums
49a170007fef3f818c688de4a730f98024a671599ab67f20270f8efb03d69dcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-win_amd64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-win_amd64.whl
Size 1.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
046b15ea22d8042e2e173561d464ec3b64a9c2081324df70ebce7bf7ebb3e497
BLAKE2b-256 checksum
How to use checksums
da057d7780fa63f4b8c1821953b916e25f89ae8f14d4da6ba91e10f6d06dc2b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3f5851441ab1ef8634963a5100b733a8bbeefe623e0c5c005b1f1f3880e574cf
BLAKE2b-256 checksum
How to use checksums
26315dd6882ebe899f741a5cfe40ff56c6efc06bc26ee287abdb723b671f409c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
df88b0c34f2fa909d322f7b06b1398e1e81af4b2f42a7b8e3556f928b25d1811
BLAKE2b-256 checksum
How to use checksums
784a2288f60e7283583ec0a0f16e72f9c8e68557d7e7a4b585d2cda4f9f47e64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fc14c1585139fa6b68775e616a6b90cf622ebf219f9558c0aeaf5d253ee6c9b
BLAKE2b-256 checksum
How to use checksums
7852ffe402b13bce1889228a98dc6cd86ae8afac1112362236be3468be784441
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_x86_64.whl
Size 1.5 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
3fd9ce2ab4460c713cfdeb4aca693ca6732a11538e05fb332d5af42e3d7fde25
BLAKE2b-256 checksum
How to use checksums
9842fb678e472c554ef086be6375d20060ca610a2c4218854d4c091001fc6f91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_universal2.whl

Download URL sentencepiece-0.2.2-cp314-cp314t-macosx_10_15_universal2.whl
Size 2.2 MB
Tags CPython 3.14 CPython 3.14 free-threading macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
d254c98ca6387655400b3959c33c83efd807f5edeb608e3aca45800ceaa77151
BLAKE2b-256 checksum
How to use checksums
84c47afe8c2315b76e46818851a057e50a378a0382aa00b970a1fa444181b6f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-win_arm64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-win_arm64.whl
Size 1.3 MB
Tags CPython 3.14 Windows ARM64
SHA-256 checksum
How to use checksums
65d84ec36888de4a848eee5f910e67fbc79b064685ef1e10a502e14520ead9c9
BLAKE2b-256 checksum
How to use checksums
d3eb22f89b6542aba400b0007cf0b1697cc3f99be8fb682fdb4c05eec450e33f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-win_amd64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-win_amd64.whl
Size 1.4 MB
Tags CPython 3.14 Windows x86-64
SHA-256 checksum
How to use checksums
63250cfab8b80a1ef82a614eb2b3cadfec2c405f870cedc139d08e2f063eb708
BLAKE2b-256 checksum
How to use checksums
33fe4906f12c458274edd96387e4baaad7c6f064a2b7c11a1cc2401c8a7bd483
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8d44b20234905ff022b7d535f79d1f823ad7670c9851cc4f03cdc34787cdb3ab
BLAKE2b-256 checksum
How to use checksums
24b3718847349da7b25c8220ed86d85b89080af94740b2d87a59198104ae5c51
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.14 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
1402d8ee36f0d851cea8eee4dbb85fea14643b7503cf4d00d102eec0fe3ca719
BLAKE2b-256 checksum
How to use checksums
10ca1b6c251321901cbf8a2d2e48b8b70eb82a449011b766af52a228d0a90b6b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
79bac5a251f23a7341e28fda9ce0d5319edf45328239ce037c0682936f137906
BLAKE2b-256 checksum
How to use checksums
d118823954c9c90e74eba09fb96752dc37a5555df00d69866cb9406d1725dc7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl

Download URL sentencepiece-0.2.2-cp314-cp314-macosx_10_15_x86_64.whl
Size 1.4 MB
Tags CPython 3.14 macOS 10.15+ x86-64
SHA-256 checksum
How to use checksums
46ba07b543add034de0ff47ac5f907e9a06682f91d85121a972764628933be6b
BLAKE2b-256 checksum
How to use checksums
520a095d183b453b2a2e20b016829029c58eca90adc1c9911113e5d26fff45ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp314-cp314-macosx_10_15_universal2.whl

Download URL sentencepiece-0.2.2-cp314-cp314-macosx_10_15_universal2.whl
Size 2.2 MB
Tags CPython 3.14 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
c62bd361cec1f5b556eb8210264ecfff37486cd990c3386cc00310f26c54090a
BLAKE2b-256 checksum
How to use checksums
0b7ef5df63edb6bcb46c1343cfa5d9192d73a4eb61af2e800d9402efff387523
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-win_arm64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-win_arm64.whl
Size 1.2 MB
Tags CPython 3.13 CPython 3.13 free-threading Windows ARM64
SHA-256 checksum
How to use checksums
4f0603267cd15b92b68c2c0e852a441507614b70dc7773659baa6b8c214a91fd
BLAKE2b-256 checksum
How to use checksums
41157e74c8533848866ff560b29f7d8719921b76c4ec7149592d6d28e0deee75
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-win_amd64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-win_amd64.whl
Size 1.3 MB
Tags CPython 3.13 CPython 3.13 free-threading Windows x86-64
SHA-256 checksum
How to use checksums
89625fb43765cccaa1443b9adb61f283e5fe4cb1536728205d06bada730caa53
BLAKE2b-256 checksum
How to use checksums
0fbc9eedddcec1fd57bc70200fa3ebf792d18fa63527a5369581cd416c81f97f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
59d6588712101ccfcae9b03692be3aaae1514c2078666d7b05f15ba3a702e41b
BLAKE2b-256 checksum
How to use checksums
3e1a4c6b39d03f5ba8439509adbd5a23c9538088a3cb679e7a47b911e8442bc6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.13 CPython 3.13 free-threading Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3ec27c152a1f1b24bc9168b55a5880f3c16e2334e697da6f55a1046a22405a3d
BLAKE2b-256 checksum
How to use checksums
0fafc30ee2a9f99d51db9844acaa8fa0b611a97c2fa7116646fa43db3300b187
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-macosx_11_0_arm64.whl
Size 1.4 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
3ab3f1ae98970b5590e2209341522718900ba19bcc2c207ffaa6bd417ad960c5
BLAKE2b-256 checksum
How to use checksums
595a16d51d05360be4cee3ebfe4837c184054c4eed16cabaeb3b039524e9a000
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_x86_64.whl
Size 1.5 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d795c4ac689a57f9d4ba2288126ec7901d389ad5827d2f8b8533c883974fe563
BLAKE2b-256 checksum
How to use checksums
8d4e3ff12cebe6d31662d9ceeabfb282de20bd0d6098fa282b4a3b8305abc7e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_universal2.whl

Download URL sentencepiece-0.2.2-cp313-cp313t-macosx_10_13_universal2.whl
Size 2.2 MB
Tags CPython 3.13 CPython 3.13 free-threading macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
72b7825b331b1b7e7c45be2e674b3e3c65af608fa376bad2d851b20aaf0cdc78
BLAKE2b-256 checksum
How to use checksums
589cdfc82846460e7a712310f5613f23d8b553cabb4e2e648663c11d8382af56
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-win_arm64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-win_arm64.whl
Size 1.2 MB
Tags CPython 3.13 Windows ARM64
SHA-256 checksum
How to use checksums
b23fe17779834d3c27aaf2edac9486d04cca1a7deb8f5facda35150ac6263a91
BLAKE2b-256 checksum
How to use checksums
17ee2bb594da6fd95e32f29057f1aa7fa996701b8980090923c2d8711fdc0a24
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-win_amd64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-win_amd64.whl
Size 1.2 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
74f0ee601047c0c12a783088b51be4e6214a62ecd9e02278c477433cd16e0ed9
BLAKE2b-256 checksum
How to use checksums
09fad2d6369257fd2f0de616b1c7110b73fab409ef61b14f1b9e0010ed325914
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
64b656f025355cf8c51abe9fbe3848540756c6d7ca5e6791b1afa664bc24c7cb
BLAKE2b-256 checksum
How to use checksums
59b4a0356fa04d6a14337a6e0e443556785a0422c53ec58baae6b9568120eb0f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8eed98514bffe5ecac37f493f91869c351fbb05629328bfdbc08502c6c094dc0
BLAKE2b-256 checksum
How to use checksums
324f31c1073314ad94466bca37d29581761d70110237ee3d46b0efece59a8c1e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
201a8e0f55501a76e08dbf2c54bc45f4642b379271e89c667d517bfbc2191f2a
BLAKE2b-256 checksum
How to use checksums
34dbf9ea1a6844b4fa5dfe2312095cd866a1f724cd0905054ab9d5991778ba50
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl

Download URL sentencepiece-0.2.2-cp313-cp313-macosx_10_13_x86_64.whl
Size 1.4 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
fd523c4992041faa5c2b3cde62253d11a96c30d73a34afe48a486e8e2254cd1c
BLAKE2b-256 checksum
How to use checksums
caf372ebc4acb10a06bcf7503fbc6091c8f5db68300f6aac4356c09e6c76e0e1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp313-cp313-macosx_10_13_universal2.whl

Download URL sentencepiece-0.2.2-cp313-cp313-macosx_10_13_universal2.whl
Size 2.2 MB
Tags CPython 3.13 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
77c3ce990b23441e5ecfa5bce181fd6f408b564aeb6d7e1d1e7de9c5612501c8
BLAKE2b-256 checksum
How to use checksums
b9a3b3b05095c174d6e80d37d5ddc2f57c2c56237333e7bbd6079cf3243c2a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-win_arm64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-win_arm64.whl
Size 1.2 MB
Tags CPython 3.12 Windows ARM64
SHA-256 checksum
How to use checksums
76ff5814db72e7462dece042d7593cdf102b8ec82c2b1cc201a2add34ee3050d
BLAKE2b-256 checksum
How to use checksums
e20a70efbe861ca182d7d4b6e1a20f58e043400848fa9f2915229f082e221648
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-win_amd64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-win_amd64.whl
Size 1.2 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
7c6e7bf684dc12145bfa685d3060beaea55139134ba848289bee514ed42e7383
BLAKE2b-256 checksum
How to use checksums
8d11753fca2e6b109be3ab7867abf357dfe48677fe726ae5a5363d0b54ca9450
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
c8a168b040bc61681293f79a949b5d911c8e25086f4260285b8d97ab5f1195da
BLAKE2b-256 checksum
How to use checksums
b62d37e3da037318a70066ded0d51bc2a7f35491ae6338dd993d5eb1503fc3b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
cbce24284f51f71d10a42b7b9c964dcb9048b28f1c8e5db40bcbcb6f428cba6a
BLAKE2b-256 checksum
How to use checksums
1990cd798935668cff71d309d8ff10385844ecf216b1fe454f1993ed8bf2cb91
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
38111ed1f79268f399c505028023d5eaaf0ab4e5eafceb709468b0d3323e7838
BLAKE2b-256 checksum
How to use checksums
bd44caa9cab5f261a019e2808bc5046152775dc57352ba9cbae7525e9e7a1ed4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-macosx_10_13_x86_64.whl

Download URL sentencepiece-0.2.2-cp312-cp312-macosx_10_13_x86_64.whl
Size 1.4 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
f7c06c751c19d923435a54bff4f7e66e728fad160e8da28254f133abc9725820
BLAKE2b-256 checksum
How to use checksums
85d1912f14fd5eae168aba726ffb6a9a2dc1c71fe7676c53da6f5c442b886d4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp312-cp312-macosx_10_13_universal2.whl

Download URL sentencepiece-0.2.2-cp312-cp312-macosx_10_13_universal2.whl
Size 2.2 MB
Tags CPython 3.12 macOS 10.13+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
1edb10e520e4bddf74d85b0f5ae74cc2d60c2b448885080bfb618bc2b3a49f6b
BLAKE2b-256 checksum
How to use checksums
b8137a562289c8d5b49ebdf3f9c1e8ab67cf14a8743b1d90c8f406bfdec36b72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-win_arm64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-win_arm64.whl
Size 1.2 MB
Tags CPython 3.11 Windows ARM64
SHA-256 checksum
How to use checksums
252908153eeec06c3ca3a32077e64a49d572e3d89881475b4e0f02d99d9fcc7c
BLAKE2b-256 checksum
How to use checksums
96c95d781d4ef1124564a45c98b9ff25d531c10cdf568ec6314a2d1946f9251c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-win_amd64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-win_amd64.whl
Size 1.2 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
70d4ca6f4d06df7f0ccab6fe4f49c8a712c8c8b6847b4f0af9a0e1dbb0e0337e
BLAKE2b-256 checksum
How to use checksums
ab629e2569867e3dcff7ad6d89642a9615b9801b5cd698abe7df3b490361f66e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1416b92f2f010333786fe6306ed2631121d5ea492219b0841e967b6765e64107
BLAKE2b-256 checksum
How to use checksums
065f9117bf854aef817ad0d0ee9310eed0308a7e529e7eaf2e80ad9cd281ef82
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0e2aae42960392d6dcb9a72d8e1e65a97294c965071b43c7b3429a42f350250e
BLAKE2b-256 checksum
How to use checksums
f33a7839048997c7bc0c34c57526f539f835e20c7a57dc2a99f99579b11cdbef
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
443ac618c7a2a1377cf5c82581fbb849591d14e656d5e5a3e4682d4e36a34e4e
BLAKE2b-256 checksum
How to use checksums
2a923a6ea4a2c6dd9e7062698a5a33534ca0e20844883338ae9c6b9c122c1a9f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl

Download URL sentencepiece-0.2.2-cp311-cp311-macosx_10_9_x86_64.whl
Size 1.4 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
6dd76f3e5c8b2eb8a3a3efee787bbf5b9a66e52a048fe09cab85eca33fec6790
BLAKE2b-256 checksum
How to use checksums
96f21ee0ccb772d71e822f625d6cb5f0ea825835e877f28a9ef299a1291df19e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp311-cp311-macosx_10_9_universal2.whl

Download URL sentencepiece-0.2.2-cp311-cp311-macosx_10_9_universal2.whl
Size 2.2 MB
Tags CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
69e9dc8078e128286ed3b975e37c837ba96e215a50c3ef9f3f8b7ab9e5a832a0
BLAKE2b-256 checksum
How to use checksums
2031f23a2efaa0210b883574001b88fa64e499f798f0848a0b610fb9b384d162
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-win_arm64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-win_arm64.whl
Size 1.2 MB
Tags CPython 3.10 Windows ARM64
SHA-256 checksum
How to use checksums
524e2a85c028a0d2f9935191fa751e5ef9d9bcc39616f70ab14b28d0369c9936
BLAKE2b-256 checksum
How to use checksums
1f557da03b35582a4eb276f99051109f3e3e8f176835b6d6837422e4c3a013dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-win_amd64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-win_amd64.whl
Size 1.2 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
1120e0791540615e650b2e9bea835bf38a7362455d8ab62dee7968219c2d79a0
BLAKE2b-256 checksum
How to use checksums
2683c3547715c29b7e4c84a180a240267f7685dde6f9b981396f16b95405ec9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
44284adc6fbe9d5bdd480541431a3d93f674fa44736714d3ad4bcee8283ace7d
BLAKE2b-256 checksum
How to use checksums
e479dd1836df32971d4eb14ff5cb4a8b3fe4419adbeada8e81d09dc53c5c0ef0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c798f0b327bac10dc95cdac77b9a197ab2bd7dd1e60ebd7586a12d918d4be711
BLAKE2b-256 checksum
How to use checksums
90d5a69a8cc896e7de3fe2061b08c2f33e28656f243bed8af6a2df9f5d8c3124
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8f1f61592e7cabd45d49ce8cc0ef42ca655c091e037153754fb3fa59725b5914
BLAKE2b-256 checksum
How to use checksums
1b393d43a75dd5a22503ca5074d0d37707cabb2e4a71b4bc6e6c61be3643cc7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl

Download URL sentencepiece-0.2.2-cp310-cp310-macosx_10_9_x86_64.whl
Size 1.4 MB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
8b2db2056c97224e122054fd794543cde5d24b7cae28424f6e3eb79bbe08e42b
BLAKE2b-256 checksum
How to use checksums
365a2a1d84c87dc075d4f8cf1a2470a95399e59834e219ffb5f4285533e750d0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp310-cp310-macosx_10_9_universal2.whl

Download URL sentencepiece-0.2.2-cp310-cp310-macosx_10_9_universal2.whl
Size 2.2 MB
Tags CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
bc7b0b1da20f856bfac5f84b2673fe534b167e41980b27442ca8f78c2b7eb77e
BLAKE2b-256 checksum
How to use checksums
711be6c69e4c2026ed575d68dda2847a404468ca7b5fa684bb0b19f71d82d29d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-win_arm64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-win_arm64.whl
Size 1.2 MB
Tags CPython 3.9 Windows ARM64
SHA-256 checksum
How to use checksums
cd810878180a52950e5a61f25ada5248a453bbdbafe474f89514135fbc1f633d
BLAKE2b-256 checksum
How to use checksums
50ac6475fb278bd4b3fca72f5ac1e31696a1bb4ead654d4b29ac1a219d7c30ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-win_amd64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-win_amd64.whl
Size 1.2 MB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
caad9566e2ef0e5640d36032c69b0edc7ac6028277b93d93815898804fac450c
BLAKE2b-256 checksum
How to use checksums
9832d6348e2ccaa27f747cbb6763050fe8fa023e74e0935e77466041dd38d619
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 1.4 MB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
eb8da9d9a9b418422c21a07fd19b9d9228692b7a7468a45eec6b11642d3c808b
BLAKE2b-256 checksum
How to use checksums
b07603a877d65162256080759374c0c839c81a908198ef28af8d56c7dc5634da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 1.3 MB
Tags CPython 3.9 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
741b4b367140e9b5c36b5a14c72179f2c946d991ea9a7c031a2a1ee6ad097b99
BLAKE2b-256 checksum
How to use checksums
06a3964225dec91fb1b954a4113f8fe4b5ea2d9e78d6c32887adb7cc716b2060
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-macosx_11_0_arm64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-macosx_11_0_arm64.whl
Size 1.3 MB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
54a83df9260a89c1734256e620fe1f1a6bfedd7547139d4dc1384efac11a3a85
BLAKE2b-256 checksum
How to use checksums
14e9788ccb894875f8acd36f3364a457cc86c2569fc2504ca1776d3fd76bc9ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl

Download URL sentencepiece-0.2.2-cp39-cp39-macosx_10_9_x86_64.whl
Size 1.4 MB
Tags CPython 3.9 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
c76c9b3324efd79029eeb0fd2ced1964bdbeca7d45e030b46fa3ef3cf74f8032
BLAKE2b-256 checksum
How to use checksums
67bca08a94dd1f08f816b0d7e584fce2ab77882a6c59a92fde41b6b60813f381
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release files / sentencepiece-0.2.2-cp39-cp39-macosx_10_9_universal2.whl

Download URL sentencepiece-0.2.2-cp39-cp39-macosx_10_9_universal2.whl
Size 2.2 MB
Tags CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
16c84ddef8d3084a8af37208acd365b08092ca089080f1a71fbfdd911adda9b3
BLAKE2b-256 checksum
How to use checksums
f50995048273ed9bb39af024da36bf53aa4e0d215b2d5eb7f5858de8280356da
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.14

Release history Release notifications | RSS feed

This release

0.2.2 This release

57 release files

0.2.1

65 release files

0.2.0

53 release files

0.1.8

23 release files

0.1.7

23 release files

0.1.6

23 release files

0.1.5

23 release files

0.1.4

23 release files

0.1.3

13 release files

0.1.2

13 release files

0.1.1

13 release files

0.1.0

11 release files

0.0.9

11 release files

0.0.7

13 release files

0.0.6

13 release files

0.0.4

7 release files

0.0.3

7 release files

0.0.2

7 release files

0.0.0

1 release file

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