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) -> 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.34.0-cp311-cp311-win_amd64.whl (14.1 MB view details)

Uploaded CPython 3.11Windows x86-64

pyonmttok-1.34.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.34.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.6 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

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

Uploaded CPython 3.10Windows x86-64

pyonmttok-1.34.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.34.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.34.0-cp310-cp310-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

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

Uploaded CPython 3.9Windows x86-64

pyonmttok-1.34.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.34.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.34.0-cp39-cp39-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.9+ x86-64

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

Uploaded CPython 3.8Windows x86-64

pyonmttok-1.34.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.34.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.34.0-cp38-cp38-macosx_11_0_arm64.whl (14.0 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.8macOS 10.9+ x86-64

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

Uploaded CPython 3.7mWindows x86-64

pyonmttok-1.34.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.34.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.34.0-cp37-cp37m-macosx_10_9_x86_64.whl (14.3 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

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

Uploaded CPython 3.6mWindows x86-64

pyonmttok-1.34.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.34.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.34.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.34.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d64ec5ababb54db447835ae0580f690104e162ad1b60760804913cfd3787cf38
MD5 9cc7218e59885160c95faadb5bff65ee
BLAKE2b-256 1cb3e2c3a3e8ff3e06d4bba1f1764efea18314623d647c72ea460c7c764b156d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18f8c2c645e88ccce0c1808796ee0540d94c94f56f8532031bbbde7fc875afd1
MD5 c3e15c09c4d3a0fe6f78463eef18f230
BLAKE2b-256 c74a82c8baf25cbfb28c864eec6effd43b20039d2e2501c33789caf3126ea883

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 418814a008584bbcb69eae398f48a94e1f9c8282b63a1a498abd0e17a78616ae
MD5 5a343dad0bd6bd89b2d9fee27b71b77f
BLAKE2b-256 078f65fe169400c8353d98279818b29469e039b271281809a11e673f814404e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 97b6355418706f2cb58965b281896e77f5511a90d38b89f969f0c43bbd5772bf
MD5 523fbb662e329db2dd74f4e83defd75b
BLAKE2b-256 9989cef57f88be24a26625ac8598aeff62d7bf1f2d44900eac1c564caab9c334

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b15432364a4eedef3c124dc84d9a36b7abcb7200adc8e9773dfc7a36dfbfddab
MD5 45590e7ffe82d349ff92b9a42bf0354e
BLAKE2b-256 e61e45e190d5ac95b954f4a5e53cc781636769f8cea8ae7446c6305b5994cfea

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6917a9382f2db78dd0210c16caf87e78d7861eb8159de18071a5488ee537b2d9
MD5 7921d9dcbc105da57d5000a01f0306a1
BLAKE2b-256 928228138f26c3f12186b34431e64395b1eee7060d1be5b00d3522ee19de56cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a98a50f8c7e9a8a5665a8e175ac48fc0798ff7d7bb95ac8a686e7a2dc7f6cb05
MD5 3ec7b30c2b31b9d75143423e3c270c34
BLAKE2b-256 650c65c4c4b6057008886c29a811798119bd562e8fc53d2692c0a1003e3b8724

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 091c7d2d48bafc6f3feb3e3863a087128663399bd684cb72d2fcf6b398c11c9c
MD5 b2fa348eff7333901a48f81a2e381a92
BLAKE2b-256 cac6f731d204fb9d91645aa6911c2456348701c8896021ac46f1f4e5a0266507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7ad673f1be47be93d81f7ee58edab46e417319ff7048fa3010f3f62f2f2451d3
MD5 08541a29af89c16180338f573a0723b2
BLAKE2b-256 891ff302aadd54e05937b27445087cd611e5595d4595434548527ddde976c738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d141adbdf05c0724b39dccbca2bbcf533e21cc4fc95016628abe440c27de2f49
MD5 273db57d26cb17cc4ef7b60adc6e3a15
BLAKE2b-256 32760e83f9d4ef981dd6fd615550eb3774606331705ec334ed7c6f0dbd3afcff

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 9276be76c7aaa006b35385d3d2a3faf71b59fbd330d87a64d29d698ca442c6bf
MD5 7abf115764c40dae5a89bec26ec61829
BLAKE2b-256 e91fec60d6bf972782c713772a98e256d3a7ee16e8b968489c2183724f6635d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f37189c55df7e608ef4740b480b63cb215414303b23eb822f4c11f3cd975331a
MD5 55044ca469bb447e2c807093d9b65457
BLAKE2b-256 e80bed3c99647ce31598d2ed29c834be46a913f8facc91c3f975f9a3347d8d85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3cfb0eb3766d866a221eb5bac67ee000fce8f4f7fa3b26b9150f3bb528f3ac38
MD5 a95519e475e76fda1563577a14d694cf
BLAKE2b-256 d3ded8c5b18696f38d6da00342279aa72137b3cc4d605f97d6b292dac0bc196d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ae2c48ae4b0af100ffe7e1ef9716152a9176766524b387bac86cec9134fea04c
MD5 f7ed2de900a805c7d7c5a26a777b1820
BLAKE2b-256 5ee2b234dc2fa360161a93f345ee07735166bcbb2b0c02d3aec79b9285efb8ff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 59ff18e51389427a8ee4bab566d371358765da6d722198f48d118b9d87e05f51
MD5 8cdb814b5027fb6fa2c7cbf851e6f2e6
BLAKE2b-256 798954162f148df5b613f4fd3c06d1828ef737fa67a3811274560c95686e25c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 5db25d9da676ab00d96714f506f531e6652cc07eedf2bede2783c862f41f1b66
MD5 1728a11a803ebcf5c497667b6146aa4d
BLAKE2b-256 9a635f278d617c262b858cc3514e96ad769c5ac90988a80a78b3f0d9d0065d9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea299180691ec9ab8ae1bd02102764fde8d2784347a8e4e93a6e2d71d38a39fc
MD5 88c68cd739e13b24dbe397dd52c5e038
BLAKE2b-256 fdc9e2d7118980a295cb88d3cb5aa62301f8540b9f89627a3599990457b1a297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 39fe8b2eba083a62de982fd35e8b319f3a22aafc0d4cc44144f8d2d1e005b515
MD5 41343aea5d9e526a978bfc8126e3cc04
BLAKE2b-256 16b7780d822b2f5d3620716737c505f0184d0807902f7849841e1db6e08670aa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 715f894c06d9496db75b445d04b112758135ac64b70cc27d1c654f350d5d19de
MD5 cfa2198b858a86c8529cd7c4a56a6844
BLAKE2b-256 229fe5370cb075df45ed99211d4534afa090e70bedd20740a604a24118e113f0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f870d0b9fb13b13537b60808ef84eb5fec6ca95de6983be5826fc6c7f2f49064
MD5 eb470ae474afa3f82a52c2bfd070b44c
BLAKE2b-256 af7a7503cfe0a04fedeef9feedc1e25ff03a6fef3a6befe3bcb8725a1aebdea8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c243a47c66cec663d40b1fd47235eaaf5d286796cc6045d2bbc99694941a8b45
MD5 39bc766e45ad1cab791dedc5b92b49c5
BLAKE2b-256 04e7bfa34a4b5cf21193487ea3d05f146ff0cf877b532daa03855c3b69a1291e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e409ee7a34f2d33b192ddf1196509e9303ef8de48835525afd4541d256afe149
MD5 904d9d523cf6008b6cc2aa3c2743d2c2
BLAKE2b-256 4e465e93d8e1188da95233723ec6b3d374b1c9b921f322406da4e95994d8c36b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 00bfb993db7f0d7ca6c996baec4675ab0bf097b5ce49d69ee90ca50ac8fab1c4
MD5 a1fac590788ce0c559dcdae811a0e497
BLAKE2b-256 19b655103cd20b098dfad2aa3bc61e30748dc9a9a2d24c23f07411265e061007

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 423691fa2a073efa29f5649d277909e8913cf5f77319961dc5cf25fc0130ccdf
MD5 9b4cc2572d089fc8908dee7aec4d8093
BLAKE2b-256 01da67a5991b37fc45ca59b45defb122eddb48a18184c1e66da01439360f81c0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pyonmttok-1.34.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.9.14

File hashes

Hashes for pyonmttok-1.34.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 788e8fb34608ddc91840e375e008241dc8bc199b78f159bb1618552fcbed25df
MD5 916e0f331ef12a455b63450b4ff20200
BLAKE2b-256 680926eee37787298a3ea29124703d4ab0e11d149a9216220e8b4dd8729e035c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a4057cdb496f4c8fbf5130f611af3b65685e06ca1e383d722f0dd72c47d6324
MD5 353b643cea1fbb09eb2c972a00130f99
BLAKE2b-256 8705846d390e2cb3bd6c4b6b175dff24a79c5d6c5657c8391319981a0188a8b1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 de8bb1dc99f31e8aab25eaf17ad999c4be232ee895747325be496104ca9ff2a4
MD5 38fc4744e206156bc3e112ae064af0b6
BLAKE2b-256 eaa8127816739448758369e6d591451197d8526397d271f095152d73cc32efbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.34.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 776236573bff43198a8384670d020dff4f1dde31edcac74f0170fa792bd885a2
MD5 91e29532ada40ca484f6c8f0a7cbdbfb
BLAKE2b-256 48014b10215c9fa65a9701c7ce823855e03b7a5457238f15edfa4ca8278e48f6

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