Skip to main content

Fast and customizable text tokenization library with BPE and SentencePiece support

Project description

pyonmttok

pyonmttok is the Python wrapper for OpenNMT/Tokenizer, a fast and customizable text tokenization library with BPE and SentencePiece support.

Installation:

pip install pyonmttok

Requirements:

  • OS: Linux, macOS, Windows
  • Python version: >= 3.6
  • pip version: >= 19.3

Table of contents

  1. Tokenization
  2. Subword learning
  3. Vocabulary
  4. Token API
  5. Utilities

Tokenization

Example

>>> import pyonmtok
>>> tokenizer = pyonmttok.Tokenizer("aggressive", joiner_annotate=True)
>>> tokens = tokenizer("Hello World!")
>>> tokens
['Hello', 'World', '■!']
>>> tokenizer.detokenize(tokens)
'Hello World!'

Interface

Constructor

tokenizer = pyonmttok.Tokenizer(
    mode: str,
    *,
    lang: Optional[str] = None,
    bpe_model_path: Optional[str] = None,
    bpe_dropout: float = 0,
    vocabulary_path: Optional[str] = None,
    vocabulary_threshold: int = 0,
    sp_model_path: Optional[str] = None,
    sp_nbest_size: int = 0,
    sp_alpha: float = 0.1,
    joiner: str = "■",
    joiner_annotate: bool = False,
    joiner_new: bool = False,
    support_prior_joiners: bool = False,
    spacer_annotate: bool = False,
    spacer_new: bool = False,
    case_feature: bool = False,
    case_markup: bool = False,
    soft_case_regions: bool = False,
    no_substitution: bool = False,
    with_separators: bool = False,
    preserve_placeholders: bool = False,
    preserve_segmented_tokens: bool = False,
    segment_case: bool = False,
    segment_numbers: bool = False,
    segment_alphabet_change: bool = False,
    segment_alphabet: Optional[List[str]] = None,
)

# SentencePiece-compatible tokenizer.
tokenizer = pyonmttok.SentencePieceTokenizer(
    model_path: str,
    vocabulary_path: Optional[str] = None,
    vocabulary_threshold: int = 0,
    nbest_size: int = 0,
    alpha: float = 0.1,
)

# Copy constructor.
tokenizer = pyonmttok.Tokenizer(tokenizer: pyonmttok.Tokenizer)

# Return the tokenization options (excluding options related to subword).
tokenizer.options

See the documentation for a description of each tokenization option.

Tokenization

# Tokenize a text.
# When training=False, subword regularization such as BPE dropout is disabled.
tokenizer.__call__(text: str, training: bool = True) -> List[str]

# Tokenize a text and return optional features.
# When as_token_objects=True, the method returns Token objects (see below).
tokenizer.tokenize(
    text: str,
    as_token_objects: bool = False,
    training: bool = True,
) -> Union[Tuple[List[str], Optional[List[List[str]]]], List[pyonmttok.Token]]

# Tokenize a batch of text.
tokenizer.tokenize_batch(
    batch_text: List[str],
    as_token_objects: bool = False,
    training: bool = True,
) -> Union[Tuple[List[List[str]], List[Optional[List[List[str]]]]], List[List[pyonmttok.Token]]]

# Tokenize a file.
tokenizer.tokenize_file(
    input_path: str,
    output_path: str,
    num_threads: int = 1,
    verbose: bool = False,
    training: bool = True,
    tokens_delimiter: str = " ",
)

Detokenization

# The detokenize method converts a list of tokens back to a string.
tokenizer.detokenize(
    tokens: List[str],
    features: Optional[List[List[str]]] = None,
) -> str
tokenizer.detokenize(tokens: List[pyonmttok.Token]) -> str

# The detokenize_with_ranges method also returns a dictionary mapping a token
# index to a range in the detokenized text.
# Set merge_ranges=True to merge consecutive ranges, e.g. subwords of the same
# token in case of subword tokenization.
# Set unicode_ranges=True to return ranges over Unicode characters instead of bytes.
tokenizer.detokenize_with_ranges(
    tokens: Union[List[str], List[pyonmttok.Token]],
    merge_ranges: bool = False,
    unicode_ranges: bool = False,
) -> Tuple[str, Dict[int, Tuple[int, int]]]

# Detokenize a file.
tokenizer.detokenize_file(
    input_path: str,
    output_path: str,
    tokens_delimiter: str = " ",
)

Subword learning

Example

The Python wrapper supports BPE and SentencePiece subword learning through a common interface:

1. Create the subword learner with the tokenization you want to apply, e.g.:

# BPE is trained and applied on the tokenization output before joiner (or spacer) annotations.
tokenizer = pyonmttok.Tokenizer("aggressive", joiner_annotate=True, segment_numbers=True)
learner = pyonmttok.BPELearner(tokenizer=tokenizer, symbols=32000)

# SentencePiece can learn from raw sentences so a tokenizer in not required.
learner = pyonmttok.SentencePieceLearner(vocab_size=32000, character_coverage=0.98)

2. Feed some raw data:

# Feed detokenized sentences:
learner.ingest("Hello world!")
learner.ingest("How are you?")

# or detokenized text files:
learner.ingest_file("/data/train1.en")
learner.ingest_file("/data/train2.en")

3. Start the learning process:

tokenizer = learner.learn("/data/model-32k")

The returned tokenizer instance can be used to apply subword tokenization on new data.

Interface

# See https://github.com/rsennrich/subword-nmt/blob/master/subword_nmt/learn_bpe.py
# for argument documentation.
learner = pyonmttok.BPELearner(
    tokenizer: Optional[pyonmttok.Tokenizer] = None,  # Defaults to tokenization mode "space".
    symbols: int = 10000,
    min_frequency: int = 2,
    total_symbols: bool = False,
)

# See https://github.com/google/sentencepiece/blob/master/src/spm_train_main.cc
# for available training options.
learner = pyonmttok.SentencePieceLearner(
    tokenizer: Optional[pyonmttok.Tokenizer] = None,  # Defaults to tokenization mode "none".
    keep_vocab: bool = False,  # Keep the generated vocabulary (model_path will act like model_prefix in spm_train)
    **training_options,
)

learner.ingest(text: str)
learner.ingest_file(path: str)
learner.ingest_token(token: Union[str, pyonmttok.Token])

learner.learn(model_path: str, verbose: bool = False) -> pyonmttok.Tokenizer

Vocabulary

Example

tokenizer = pyonmttok.Tokenizer("aggressive", joiner_annotate=True)

with open("train.txt") as train_file:
    vocab = pyonmttok.build_vocab_from_lines(
        train_file,
        tokenizer=tokenizer,
        maximum_size=32000,
        special_tokens=["<blank>", "<unk>", "<s>", "</s>"],
    )

with open("vocab.txt", "w") as vocab_file:
    for token in vocab.ids_to_tokens:
        vocab_file.write("%s\n" % token)

Interface

# Special tokens are added with ids 0, 1, etc., and are never removed by a resize.
vocab = pyonmttok.Vocab(special_tokens: Optional[List[str]] = None)

# Read-only properties.
vocab.tokens_to_ids -> Dict[str, int]
vocab.ids_to_tokens -> List[str]
vocab.counters -> List[int]

# Get or set the ID returned for out-of-vocabulary tokens.
# By default, it is the ID of the token <unk> if present in the vocabulary, len(vocab) otherwise.
vocab.default_id -> int

vocab.lookup_token(token: str) -> int
vocab.lookup_index(index: int) -> str

# Calls lookup_token on a batch of tokens.
vocab.__call__(tokens: List[str]) -> List[int]

vocab.__len__() -> int                  # Implements: len(vocab)
vocab.__contains__(token: str) -> bool  # Implements: "hello" in vocab
vocab.__getitem__(token: str) -> int    # Implements: vocab["hello"]

# Add tokens to the vocabulary after tokenization.
# If a tokenizer is not set, the text is split on spaces.
vocab.add_from_text(text: str, tokenizer: Optional[pyonmttok.Tokenizer] = None) -> None
vocab.add_from_file(path: str, tokenizer: Optional[pyonmttok.Tokenizer] = None) -> None
vocab.add_token(token: str, count: int = 1) -> None

vocab.resize(maximum_size: int = 0, minimum_frequency: int = 1) -> None


# Build a vocabulary from an iterator of lines.
# If a tokenizer is not set, the lines are split on spaces.
pyonmttok.build_vocab_from_lines(
    lines: Iterable[str],
    tokenizer: Optional[pyonmttok.Tokenizer] = None,
    maximum_size: int = 0,
    minimum_frequency: int = 1,
    special_tokens: Optional[List[str]] = None,
) -> pyonmttok.Vocab

# Build a vocabulary from an iterator of tokens.
pyonmttok.build_vocab_from_tokens(
    tokens: Iterable[str],
    maximum_size: int = 0,
    minimum_frequency: int = 1,
    special_tokens: Optional[List[str]] = None,
) -> pyonmttok.Vocab

Token API

The Token API allows to tokenize text into pyonmttok.Token objects. This API can be useful to apply some logics at the token level but still retain enough information to write the tokenization on disk or detokenize.

Example

>>> tokenizer = pyonmttok.Tokenizer("aggressive", joiner_annotate=True)
>>> tokens = tokenizer.tokenize("Hello World!", as_token_objects=True)
>>> tokens
[Token('Hello'), Token('World'), Token('!', join_left=True)]
>>> tokens[-1].surface
'!'
>>> tokenizer.serialize_tokens(tokens)[0]
['Hello', 'World', '■!']
>>> tokens[-1].surface = '.'
>>> tokenizer.serialize_tokens(tokens)[0]
['Hello', 'World', '■.']
>>> tokenizer.detokenize(tokens)
'Hello World.'

Interface

The pyonmttok.Token class has the following attributes:

  • surface: a string, the token value
  • type: a pyonmttok.TokenType value, the type of the token
  • join_left: a boolean, whether the token should be joined to the token on the left or not
  • join_right: a boolean, whether the token should be joined to the token on the right or not
  • preserve: a boolean, whether joiners and spacers can be attached to this token or not
  • features: a list of string, the features attached to the token
  • spacer: a boolean, whether the token is prefixed by a SentencePiece spacer or not (only set when using SentencePiece)
  • casing: a pyonmttok.Casing value, the casing of the token (only set when tokenizing with case_feature or case_markup)

The pyonmttok.TokenType enumeration is used to identify tokens that were split by a subword tokenization. The enumeration has the following values:

  • TokenType.WORD
  • TokenType.LEADING_SUBWORD
  • TokenType.TRAILING_SUBWORD

The pyonmttok.Casing enumeration is used to identify the original casing of a token that was lowercased by the case_feature or case_markup tokenization options. The enumeration has the following values:

  • Casing.LOWERCASE
  • Casing.UPPERCASE
  • Casing.MIXED
  • Casing.CAPITALIZED
  • Casing.NONE

The Tokenizer instances provide methods to serialize or deserialize Token objects:

# Serialize Token objects to strings that can be saved on disk.
tokenizer.serialize_tokens(
    tokens: List[pyonmttok.Token],
) -> Tuple[List[str], Optional[List[List[str]]]]

# Deserialize strings into Token objects.
tokenizer.deserialize_tokens(
    tokens: List[str],
    features: Optional[List[List[str]]] = None,
) -> List[pyonmttok.Token]

Utilities

Interface

# Returns True if the string has the placeholder format.
pyonmttok.is_placeholder(token: str)

# Sets the random seed for reproducible tokenization.
pyonmttok.set_random_seed(seed: int)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyonmttok-1.35.0-cp311-cp311-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp311-cp311-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyonmttok-1.35.0-cp311-cp311-macosx_10_9_x86_64.whl (14.4 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyonmttok-1.35.0-cp310-cp310-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.10Windows x86-64

pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp310-cp310-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyonmttok-1.35.0-cp310-cp310-macosx_10_9_x86_64.whl (14.4 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pyonmttok-1.35.0-cp39-cp39-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.9Windows x86-64

pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp39-cp39-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyonmttok-1.35.0-cp39-cp39-macosx_10_9_x86_64.whl (14.4 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pyonmttok-1.35.0-cp38-cp38-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.8Windows x86-64

pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.7 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp38-cp38-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pyonmttok-1.35.0-cp38-cp38-macosx_10_9_x86_64.whl (14.4 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

pyonmttok-1.35.0-cp37-cp37m-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.7mWindows x86-64

pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.8 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp37-cp37m-macosx_10_9_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

pyonmttok-1.35.0-cp36-cp36m-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.6mWindows x86-64

pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.9 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.8 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

pyonmttok-1.35.0-cp36-cp36m-macosx_10_9_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file pyonmttok-1.35.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 fcf7da10b9e798d9d8962dc744e9c8a23c3039eceba30bbb7225f23e18d1e342
MD5 7208db67050b4970caa18b32ab1b55c6
BLAKE2b-256 efe9f24bedea78f9d71ecce5b3e2a37a56d7c97027cbd87bbddfd5afc379a748

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 32c6b8a4aba514dfa7ff839129e0909885c9f8d4a5ce3d39fc16b9041ad64c38
MD5 355036a2ea07b3c97a0bb7fb344055dd
BLAKE2b-256 91b18f197c80feae8ad226f214b4cea8d1d127e4c7a384f5ff31ebc19af533e2

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c58935357255ea49742019e3277e3b363c91cfe5a9115ba3590ffb3f33e9c64a
MD5 38da23e6ea049db821fb899e683a875f
BLAKE2b-256 e049485631c2e833cd56c9eed6400f308a25c46803e9409eae8ad395f5112d03

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6e0fc532e45ffc3970cdefe5bffe7b713a12513cdbb799fadd89a5aff97ef0e6
MD5 370e80934dc53a10b73f397c961c7dd0
BLAKE2b-256 fd4a52f83bbbc654c7513cc6b4fa21916ffdf567d274305986fbaed86b250e5c

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c0ef60a577b2339ea0379663f6e8e3ac5f504e588f5565e112c44d184c622012
MD5 d65f66e1fc6e482bf0052fd0ff68212d
BLAKE2b-256 c2b6cea04873e36b51313a56c47c5f7fdcbbb7084c9cff7a96388ac519c86800

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 c49cd171d77ddaa7854f725ab1f89fea99bf6b85496bf2fdca4dd8f9b7f665fe
MD5 ef3564088b6fff56a2dfa2aa3142741b
BLAKE2b-256 df390dbb3952e3dc2ccfea72dfda854eceeee181dd10f64bdaaa61dc0e70ea47

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 24ed1bb25212043a7fe03da10845272ee0fe3cd1fb44140bb0b5e424e46aa2fc
MD5 072f71f88a175bc0a811177292fc17e6
BLAKE2b-256 a3ce295d4c64e7f1f00c8944c4e610ebd8439e81bf93faea78ca974c0d58513e

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 4fa6cb70e4f2db1415f70dabb4fe654568f018787a39329951f3b13dccb6c5ca
MD5 b4359e3089be7e40c55ebb0baad4dab4
BLAKE2b-256 c6c9b4e1f4f861e40b84970b7e657b6aa0251aa2c8a8dea3b5dcef54ca7733d1

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c5b716da4d22b4226b1b981513fc62231a5b3d6b74261bd44a1299c7e35ff8c2
MD5 11035a146147e4c04f12284997124a31
BLAKE2b-256 510f2e886767195b273015cc6349b243917dde7f36d748347bbedd82de45e0f2

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a85cb6bddd504d2195222a5c57c3be831c51934d5d4504b7b8c60b23e85e5711
MD5 38b2e63941902a976f05d2036464d4d3
BLAKE2b-256 46ef5838d47f6c67fa5fa18124ad894df2d2ae0b922aabc8896ef1e2b57a408f

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 254d49d31f11d3d9adeb0cd49cd6d24fd2a8534222a273d416ba3578f0712a73
MD5 c5e0d0260d35d1dc1a31cd77b14c1609
BLAKE2b-256 badeba6d92676b21ff9b62eef4b63298a35b4b84a7c5761e9cac350132e70834

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 29a7648ff8cdf277d134fa8299580db9ae83ab151d14841d242019b98a5006a1
MD5 8469183919840bca7f3d6fa6d81ddee1
BLAKE2b-256 216b8a90bbca4e517b702bf9e42c1f009825580fa2f528dc4e96e4ae6860c2fc

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35391c6137a2139cc8f21d7f79e90e6428ad256408effbf960b75585b9dfa7a1
MD5 cd363b18d0d39b0244be4d16e7afdf56
BLAKE2b-256 e8c145995849fd6d64453c004a6df932f58a8c9a4182e9d0dadfe59e3b4670e2

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b157fe07d652f5bb933dec573b0dbc1ae4d68c260ba382afc30b70bae7917c23
MD5 dc00d2e353b457702eabbbb57c96a1f3
BLAKE2b-256 eb3ee1ece1aa3713e4d19b0470c38caf6804a48837b7fccef8b58e4642e5c9d8

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 16d4523af97fdb42ff0c9987f90a9b6008fd27aec3486c3a772d692bd3513401
MD5 45ffffad957aadec4197a8a46bb986b0
BLAKE2b-256 8ad1c88466ebb48ebae588664720dd5ffe11b3031507255ff478b5bc9da473ad

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 71b3a11405bff3a6373abe712ec92f8eaf3b717ee0865d9129d8acb095936119
MD5 375ec6365de941d568d469b51ea6222c
BLAKE2b-256 55dddc891e2849f980e55fbdf44a296871025136819f426f166ff29478a2d873

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bed7c9a638c6795c352ed4c5a27c4cc71d7234d6f3dfa2b03991aff8b6e5c2f6
MD5 2fa760895f693f0a5d3f9eb966e5c599
BLAKE2b-256 ac31d589b07cacd1cb94fe6585638e671a9c1c21415e875d16c75bdee3a100c8

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7063322f802068955a087271283c9732d846890512db79c9bae1cd2c4951f591
MD5 6126706ffed83522e36ca5110031936f
BLAKE2b-256 58b10febcf03fad31a09a085e98b593fedcaeb47f65f7835ee625f9d77969ac5

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 64f909e68ec0d77a59b92ebaac13f363f909b963fca760695242dc18373bcfe3
MD5 687bdd0abf0514dd8950f1dead6b07fe
BLAKE2b-256 f59e82d7e53d1e6223a00b84fd06c8fd2aa3b315a11e05f17150995d37127183

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c3bf056022c4323d32556088ad5df29e02eb9767ccdcab31b73879dbdfe05fc
MD5 ef41c8e4629b4019aa803aaacbc30596
BLAKE2b-256 54169d425bd6f4c43cf4f97ed6b99007e0f8f682ab5d5ecea8d65c6cffe7979d

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 888f4612558c566fd260d1d2ad812a0d08dbf31282205ddb73cd40e811c0647d
MD5 340745fb1e160acf0e60e6b522ad70c8
BLAKE2b-256 2545329e908a350c77159df7966cf543af8c8425352fdb6f02d18a117e20defa

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 320395b777151a8b659fa5e66860aeafaca389d9ad4ddd51bc262f992dde4c8b
MD5 306dbe51d28f2a1d677efc222c7e9ead
BLAKE2b-256 0ad66c4fa8413bfbd1f627b87121d264f1994f349e701af440fe157de93b3954

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d084879c88e2e902f338d047406e71071e86be79abdfbc9477a4bbf46d61d0d2
MD5 8c2909a94400ca9b52414738e0123613
BLAKE2b-256 b00f614432e9f5eee2ddd97ba222cadd88332a551106dfd9575cf741873c48f0

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d4e6dcb9adc3e845ff8bf1a4fe529f5f1e4907e646f60328f43142da82378246
MD5 f863e6576c1d09e74ac373b44cb3409f
BLAKE2b-256 b20967e442ef74e826b137d685459241909e0a2c60eeb5f92704001d9a2083ab

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.35.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 14.1 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.0

File hashes

Hashes for pyonmttok-1.35.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ba2e522161207a91d62c16bb131b8f9c144dfd255a2300bcae9f2e7115c5af4b
MD5 abbd6a337a80a9d17db0da9d23a755b0
BLAKE2b-256 da281be0a3304cd4f94c87306815ecfed9df4ec419f7ef30dab3461960aac8ba

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7a1160251efecff233140a00548456229e5b546a76ab33b80e4da15f37ad7b7f
MD5 021dde544f329f3397d57e0b771030bf
BLAKE2b-256 235954e165b03bb790a3febf764c671ca747b5e0853634bea4f43cbe11eaf990

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5cfb433f6b19109135de51f863c3964fe07218c23180c15e776dfe3ce6872598
MD5 03ef817f28dcfdadd32bba1747b51a76
BLAKE2b-256 33a4541f949e1d5a38bd4507e36027a0da3293a2b4ec3eedc90d498291410545

See more details on using hashes here.

File details

Details for the file pyonmttok-1.35.0-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyonmttok-1.35.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f6be0fd338e3868532fdc8d2136aada128ecc73598784338a4c5924069b4ed60
MD5 891968f733e78d01c20e535dbd3d8040
BLAKE2b-256 4bc939633c3985a5d6bb70f30010e06f101e8016fa39c32ff7177478114967f9

See more details on using hashes here.

Supported by

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