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: Optional[List[str]] = None,
    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,
    allow_isolated_marks: 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)

# Checks if the language code is valid.
pyonmttok.is_valid_language(lang: str).

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

Uploaded CPython 3.11Windows x86-64

pyonmttok-1.37.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp311-cp311-macosx_11_0_arm64.whl (14.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

pyonmttok-1.37.0-cp311-cp311-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

pyonmttok-1.37.0-cp310-cp310-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.10Windows x86-64

pyonmttok-1.37.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp310-cp310-macosx_11_0_arm64.whl (14.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

pyonmttok-1.37.0-cp310-cp310-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

pyonmttok-1.37.0-cp39-cp39-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.9Windows x86-64

pyonmttok-1.37.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp39-cp39-macosx_11_0_arm64.whl (14.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

pyonmttok-1.37.0-cp39-cp39-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pyonmttok-1.37.0-cp38-cp38-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.8Windows x86-64

pyonmttok-1.37.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.0 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (16.9 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp38-cp38-macosx_11_0_arm64.whl (14.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

pyonmttok-1.37.0-cp38-cp38-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

pyonmttok-1.37.0-cp37-cp37m-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.7mWindows x86-64

pyonmttok-1.37.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.1 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp37-cp37m-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

pyonmttok-1.37.0-cp36-cp36m-win_amd64.whl (14.4 MB view details)

Uploaded CPython 3.6mWindows x86-64

pyonmttok-1.37.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.2 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

pyonmttok-1.37.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (17.1 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ ARM64

pyonmttok-1.37.0-cp36-cp36m-macosx_10_9_x86_64.whl (14.6 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2a064aa12dd15140a45375bf388a14d57f5cf35aa51df37b723192aa08cb87ef
MD5 e0081c97a059e2436f3ce5710a72b65e
BLAKE2b-256 bcea825b8071efbb42decb4eac1768c82362a0cd835fd1c13a320a7c29b06770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 25de1cbee522fc67732737947e6431216ef3bceac9938e86e23b0c1e5d956dee
MD5 2580d537497dbfb0f42a5a6aceadb5f3
BLAKE2b-256 2dedfdee7da641b31a2a41a23709619dddbd0414e0057b1279d88edf45707361

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5791abf8d9f706b742417cd738654ae4b6ffc6afbdc5e48c99f88aa5dea6bd8f
MD5 da8bb5a740aa487e9a42604600b552e5
BLAKE2b-256 4f4b28a9d53a25eb6d9d4c40879cc0eaaa7a691e5a2b1427650e7ec638f817f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5467b1d24ac986c2d121ff5b1a0e77a1c1907dc85b9636e6e9352787599be2fd
MD5 1b9972549ce3bae95676f0dd9a2aa882
BLAKE2b-256 50edc7166b5fc2958e7493f61ba6d17fb749fff7bfae61e0672591c78b3400b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1977fd6c487ddc773b35b0e0808dcb121c3d00062fd9331494076de605b011d8
MD5 bd86b1c5f861698e090ccae2e4d308e9
BLAKE2b-256 10f17f29c3ba77409c9fb745754a28e62c6dfff9f8ad14c3ef52c18111eedd92

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 08df1bb832a5860e3e3368f170f9558861f67430a12af429e1a5b0d39b3d758c
MD5 28cd27c5cfe0899b23ac18ad5fd7b75f
BLAKE2b-256 998eea1a21c934112e026ba685718358e4292e0997cdd7c6d20d942d51653bf5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 59707eb9e3660150c14c94f7314c6f2953e596163276483fdebc97422bf4ceb6
MD5 2734c3360fa40fd359a083c9502fa861
BLAKE2b-256 3eb7518a9b84d3a9d6e0c34b95c7b44ba34432764c875c404d27c49dd6de92ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d533f0b323f3ed0a676668597951aab2dc81b095ab5d1adb37b21c69cfcab225
MD5 4b9c6e126e67f4cbb2f6387547faa04c
BLAKE2b-256 a701f95242e210957d57dff76704e2fc8247166818843817d91d3374d004e78c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 dc094442297078f98661d5c979d0560692fb9b356a0fc5b299e04a067a276257
MD5 59ccae4ea61680944dcec8d0ab2491fe
BLAKE2b-256 c8b99ec3d6d0ecd41e12be38eadbd500a62e0e601b8e5dbb369459f96e8d3624

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 53068ad4e0c4a5bf84515838d11396d9d47838c54afc0c2b7cc48885cb5f397e
MD5 c85b216a82f9c1090eec41d8697e683b
BLAKE2b-256 8bce2d81063aad507f7e395b571e4a9bdf336234dc2fab10169faaa94aa8cf21

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 55b98eeed586928fec1542ec30f788f61b6ca24f92311a35c0b51a61151678ac
MD5 57690009e624868116e8f4ac29fde864
BLAKE2b-256 6f6da1e2c0269367d1b0b90dbd5601ddf4f509e741846afb2299f867c9eb77a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 877d9f9e758975e5855fe6fc7cf22b6d10f1dd93bd80c434a6890120a720aeb2
MD5 10952e8693f03290bc9fc2bd19274dd0
BLAKE2b-256 f4cafa21ccac5a46c1a8e75186f7a522c2caf5a94e675f4601b3170ed3fc3e68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40927dc686cbfae61e31b9832aefc21ea47b6a6fb45bda7760740a2032e55f46
MD5 8ca2142d592880c495996a5cb3d8c7e1
BLAKE2b-256 b60a6c618c70cdfe7dbb26b9e173b0ec59251d4363abf0f5db59301097ed2ed0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bf409db72966efff356ac4e04fd1e84e72fb3b886d036e762641bb66bfebbce6
MD5 0236d788269575ca99a0eccfe4c35754
BLAKE2b-256 e81e43b3b64e39d3a56f6e50fef35f2794b002a603259a2320159503c1cc114e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 481f1779d6d908bb31307c227f99ba7f350c141d2845bb3476d0e0664baaf29f
MD5 ae1703511b9954c3c0d7cc228ae49fad
BLAKE2b-256 76014e70ec9b8425923c5b3fa07a70eeda794a22c86667f09cd49ada7c9ba11f

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 dcc891d52a0d1d3b1048e67585ee061c26f0ec47bd85e422f6af1fa01b9c8fd7
MD5 b982deff0ad905ea1b4537fc6d1ba2cc
BLAKE2b-256 a870f05a4e0229d684bb73ad59d045bda621d608d9acde05b64a5410130b04c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b769a6de77fdee5cfd49e074c53caba653fe93f77352a723030a593e190f0b25
MD5 633058522d503b62209d7529b83b322b
BLAKE2b-256 5f65392d44dbd9f35ab34e244fc8f8e344aae564213309e68f3dda3ce19e094d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 64b5183d799c6e5e1da3123816b0d19e6110af1e9c93d7fa57d12922d4f97dee
MD5 9eb43e5744b97ed6cd0fe01cf3b11ad2
BLAKE2b-256 a160dcd52b2a22fb2fdbac89e275aee949ba95afcd4fbb7fe13f5f8d8cfe5956

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 10df004e7506f0614bd433f4843fa42fbad1efa50eea2f1040b9af58b72d38fa
MD5 2b4cb24a6083fc09a6e622889fb8bbfc
BLAKE2b-256 5f9cf8fe34380cbbd3968a0e46e24a702a1c248aa1f067386782cacba3432883

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5b1b5c917a757750f65e6e8940a049dd4409e67a3ffc0045c5364a288dff560d
MD5 d952ca5ab23953e5a0f3b6316ead2cae
BLAKE2b-256 a7e4071f8ae4646ff92cdf783fcfd7f3547d7ab604af3104bf338c939ed8907b

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 70f510d7588125c4be9416e5127388970aa903a3148015fd418192fd12ea2fa5
MD5 5f20881cabef58df23015f8aa020f148
BLAKE2b-256 eab0c0c35d7d9e095ffeccabb8890b9676440a5a0947ae7ebe594fec06890b96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09dcd46e17dae67aeb46210d87a440170415478522996b9c152315a3cd1c5d75
MD5 54fa8cca81311c876d53a3f83c0e7769
BLAKE2b-256 5d4b2042a2a6663a9dd50ac5561ef84752bab8f9a2ac696ae69e583050374042

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c419eacc4da0f5a67832a23bc10e058d8e4b1b79594cbb786a6fc4225b3987fd
MD5 92ac0bbf4bc32db7a2865fa11631fb51
BLAKE2b-256 029ea42b22c6981b2b1220489f96a1258c60a221b9520f5f06f4862b84e2c3e7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b5147bff3a9a2dc51efd861a49f4b7725fe2e88f9b0fa7bfccbdfd1eb9ee70c9
MD5 ffd340df50e8738614d60b7f2713cbb5
BLAKE2b-256 7e02ad54d6f606b1ad7baee7377f5d6b4eea3117836173a22539929dc49b4b7e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for pyonmttok-1.37.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 43c2a5882c47bc7617c7f9c50710f89c06ee2706299865ed8a7ba9694b794c53
MD5 3ce638d16ffd85afa100c89b42ba8fe5
BLAKE2b-256 98a0be9fed9cd07b507fa59c2094cf913611c6743257684b5e039c158442a6b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e7229538cdf2e6701f77689aed2d79243d769c27c04056b382bccfc1eea9ce34
MD5 08db8810cf1f7dabaa7454e1b80e93d9
BLAKE2b-256 23f04e6d9f877cf6c89cb75722d9bce38cc5b669e69c13da4c2e2cbb2e439ef3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e770594e5aafde4d5db01208704da6550544307ab8e8e0a46b99b6c2ffd43bc6
MD5 8f9f5d8b307b8fe92067a7fbeb187461
BLAKE2b-256 25d2ece2126ecd7ddd4faa1a78a2e36fbb7552fc676dfbae714a439dca7dcf48

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pyonmttok-1.37.0-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 444f612d885b7eccc9e2046222cb29236c76c350425e9a10f0c09a69f76c83a7
MD5 dadf332a908b15c49f7276ebe6178177
BLAKE2b-256 74978e24a82514399fd866214209ea4298cc3df0a774c8bfd2266d4b842e95a9

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