Skip to main content

Flashlight Text bindings for Python

Project description

Flashlight Text Python Bindings

Quickstart

The Flashlight Text Python package containing beam search decoder and Dictionary components is available on PyPI:

pip install flashlight-text

To enable optional KenLM support in Python with the decoder, KenLM must be installed via pip:

pip install git+https://github.com.kpu/kenlm.git

Contents

Installation

Dependencies

We require python >= 3.6 with the following packages installed:

  • cmake >= 3.16, and make (installable via pip install cmake)
  • KenLM (must be installed pip install git+https://github.com/kpu/kenlm.git)

Build Instructions

Once the dependencies are satisfied, from the project root, use:

pip install .

Using the environment variable USE_KENLM=0 removes the KenLM dependency but precludes using the decoder with a language model unless you write C++/pybind11 bindings for your own language model.

Install in editable mode for development:

pip install -e .

(pypi installation coming soon)

Note: if you encounter errors, you'll probably have to rm -rf build dist before retrying the install.

Python API Documentation

Beam Search Decoder

Bindings for the lexicon and lexicon-free beam search decoders are supported for CTC/ASG models only (no seq2seq model support). Out-of-the-box language model support includes KenLM; users can define custom a language model in Python and use it for decoding; see the documentation below.

To run decoder one first should define options:

    from flashlight.lib.text.decoder import LexiconDecoderOptions, LexiconFreeDecoderOptions

    # for lexicon-based decoder
    options = LexiconDecoderOptions(
        beam_size, # number of top hypothesis to preserve at each decoding step
        token_beam_size, # restrict number of tokens by top am scores (if you have a huge token set)
        beam_threshold, # preserve a hypothesis only if its score is not far away from the current best hypothesis score
        lm_weight, # language model weight for LM score
        word_score, # score for words appearance in the transcription
        unk_score, # score for unknown word appearance in the transcription
        sil_score, # score for silence appearance in the transcription
        log_add, # the way how to combine scores during hypotheses merging (log add operation, max)
        criterion_type # supports only CriterionType.ASG or CriterionType.CTC
    )
    # for lexicon free-based decoder
    options = LexiconFreeDecoderOptions(
        beam_size, # number of top hypothesis to preserve at each decoding step
        token_beam_size, # restrict number of tokens by top am scores (if you have a huge token set)
        beam_threshold, # preserve a hypothesis only if its score is not far away from the current best hypothesis score
        lm_weight, # language model weight for LM score
        sil_score, # score for silence appearance in the transcription
        log_add, # the way how to combine scores during hypotheses merging (log add operation, max)
        criterion_type # supports only CriterionType.ASG or CriterionType.CTC
    )

Now, prepare a tokens dictionary (tokens for which a model returns probability for each frame) and a lexicon (mapping between words and their spellings within a tokens set).

For further details on tokens and lexicon file formats, see the Data Preparation documentation in Flashlight.

from flashlight.lib.text.dictionary import Dictionary, load_words, create_word_dict

tokens_dict = Dictionary("path/tokens.txt")
# for ASG add used repetition symbols, for example
# token_dict.add_entry("1")
# token_dict.add_entry("2")

lexicon = load_words("path/lexicon.txt") # returns LexiconMap
word_dict = create_word_dict(lexicon) # returns Dictionary

To create a KenLM language model, use:

from flashlight.lib.text.decoder import KenLM
lm = KenLM("path/lm.arpa", word_dict) # or "path/lm.bin"

Get the unknown and silence token indices from the token and word dictionaries to pass to the decoder:

sil_idx = token_dict.get_index("|")
unk_idx = word_dict.get_index("<unk>")

Now, define the lexicon Trie to restrict the beam search decoder search:

from flashlight.lib.text.decoder import Trie, SmearingMode
from flashlight.lib.text.dictionary import pack_replabels

trie = Trie(token_dict.index_size(), sil_idx)
start_state = lm.start(False)

def tkn_to_idx(spelling: list, token_dict : Dictionary, maxReps : int = 0):
    result = []
    for token in spelling:
        result.append(token_dict.get_index(token))
    return pack_replabels(result, token_dict, maxReps)


for word, spellings in lexicon.items():
    usr_idx = word_dict.get_index(word)
    _, score = lm.score(start_state, usr_idx)
    for spelling in spellings:
        # convert spelling string into vector of indices
        spelling_idxs = tkn_to_idx(spelling, token_dict, 1)
        trie.insert(spelling_idxs, usr_idx, score)

    trie.smear(SmearingMode.MAX) # propagate word score to each spelling node to have some lm proxy score in each node.

Finally, we can run lexicon-based decoder:

import numpy
from flashlight.lib.text.decoder import LexiconDecoder


blank_idx = token_dict.get_index("#") # for CTC
transitions = numpy.zeros((token_dict.index_size(), token_dict.index_size()) # for ASG fill up with correct values
is_token_lm = False # we use word-level LM
decoder = LexiconDecoder(options, trie, lm, sil_idx, blank_idx, unk_idx, transitions, is_token_lm)
# emissions is numpy.array of emitting model predictions with shape [T, N], where T is time, N is number of tokens
results = decoder.decode(emissions.ctypes.data, T, N)
# results[i].tokens contains tokens sequence (with length T)
# results[i].score contains score of the hypothesis
# results is sorted array with the best hypothesis stored with index=0.

Decoding with your own language model

One can define custom language model in python and use it for beam search decoding.

To store language model state, derive from the LMState base class and define additional data corresponding to each state by creating dict(LMState, info) inside the language model class:

import numpy
from flashlight.lib.text.decoder import LM


class MyPyLM(LM):
    mapping_states = dict() # store simple additional int for each state

    def __init__(self):
        LM.__init__(self)

    def start(self, start_with_nothing):
        state = LMState()
        self.mapping_states[state] = 0
        return state

    def score(self, state : LMState, token_index : int):
        """
        Evaluate language model based on the current lm state and new word
        Parameters:
        -----------
        state: current lm state
        token_index: index of the word
                    (can be lexicon index then you should store inside LM the
                    mapping between indices of lexicon and lm, or lm index of a word)

        Returns:
        --------
        (LMState, float): pair of (new state, score for the current word)
        """
        outstate = state.child(token_index)
        if outstate not in self.mapping_states:
            self.mapping_states[outstate] = self.mapping_states[state] + 1
        return (outstate, -numpy.random.random())

    def finish(self, state: LMState):
        """
        Evaluate eos for language model based on the current lm state

        Returns:
        --------
        (LMState, float): pair of (new state, score for the current word)
        """
        outstate = state.child(-1)
        if outstate not in self.mapping_states:
            self.mapping_states[outstate] = self.mapping_states[state] + 1
        return (outstate, -1)

LMState is a C++ base class for language model state. Its compare method (for comparing one state with another) is used inside the beam search decoder. It also has a LMState child(int index) method which returns a state obtained by following the token with this index from current state.

All LM states are organized as a trie. We use the child method in python to properly create this trie (which will be used inside the decoder to compare states) and can store additional state data in mapping_states.

This language model can be used as follows. Here, we print the state and its additional stored info inside lm.mapping_states:

custom_lm = MyLM()

state = custom_lm.start(True)
print(state, custom_lm.mapping_states[state])

for i in range(5):
    state, score = custom_lm.score(state, i)
    print(state, custom_lm.mapping_states[state], score)

state, score = custom_lm.finish(state)
print(state, custom_lm.mapping_states[state], score)

and for the decoder:

decoder = LexiconDecoder(options, trie, custom_lm, sil_idx, blank_inx, unk_idx, transitions, False)

Tests and Examples

An integration test for Python decoder bindings can be found in bindings/python/test/test_decoder.py. To run, use:

cd bindings/python/test
python3 -m unittest discover -v .

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

flashlight-text-0.0.2.dev274.tar.gz (65.8 kB view details)

Uploaded Source

Built Distributions

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

flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-win_amd64.whl (616.6 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (993.1 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-win_amd64.whl (616.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (993.2 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-win_amd64.whl (616.3 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (992.9 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp311-cp311-win_amd64.whl (617.2 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.2.dev274-cp311-cp311-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp311-cp311-macosx_10_9_x86_64.whl (993.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp310-cp310-win_amd64.whl (617.5 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.2.dev274-cp310-cp310-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp310-cp310-macosx_10_9_x86_64.whl (993.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp39-cp39-win_amd64.whl (617.9 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.2.dev274-cp39-cp39-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp39-cp39-macosx_10_9_x86_64.whl (993.6 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp38-cp38-win_amd64.whl (617.1 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.2.dev274-cp38-cp38-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp38-cp38-macosx_10_9_x86_64.whl (993.1 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp37-cp37m-win_amd64.whl (615.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.2.dev274-cp37-cp37m-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp37-cp37m-macosx_10_9_x86_64.whl (987.4 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.2.dev274-cp36-cp36m-win_amd64.whl (615.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.2.dev274-cp36-cp36m-musllinux_1_1_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

flashlight_text-0.0.2.dev274-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

flashlight_text-0.0.2.dev274-cp36-cp36m-macosx_10_9_x86_64.whl (987.5 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file flashlight-text-0.0.2.dev274.tar.gz.

File metadata

  • Download URL: flashlight-text-0.0.2.dev274.tar.gz
  • Upload date:
  • Size: 65.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.2

File hashes

Hashes for flashlight-text-0.0.2.dev274.tar.gz
Algorithm Hash digest
SHA256 f082984052287f8d535b95046c9579fb66b2c8764f60d13841509047992d153b
MD5 e59b840335798c8cb78e0d900aef457c
BLAKE2b-256 b4e4b1bdeabb02450d285d8b54dd060188e4c55ae48bfc6ff478cde5132966c9

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1b3df4056bcc8675a6cd2380417a1510152669c8e1b468dfd01b858a9807ffd4
MD5 7374e75e423d494c55898ada316e366a
BLAKE2b-256 36398299ddf0989de8a35a717632695eb336dd50dfd276758741e9a7bcf6c073

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b6fa03f4107eca5aabbdf2170c4b7cc62063731bff6e5831612f18260b6225ae
MD5 92bd7d33a2544d2d9a3ee650a78ace1e
BLAKE2b-256 fee1a90d1a95e80a52bef76916113bfb2ec4d7efdebc05ece0c8eeef52edad19

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4ef01440a136a6837abd2f7c143919fb0cbbb899f1f6cdfe9731b5a449a4bd17
MD5 0468885800ab97ca83fc6bdba27df204
BLAKE2b-256 df52372289af8c41227bdd8849d8012b26e2cc4020542e6e2099bed1de721f85

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 11d751e824f72b5f3e9022687b13671e962fc1b4a235827df8e99a2e4a57e478
MD5 66c70bb99d174363eab5a3b0df112bf8
BLAKE2b-256 1d694557c5b0cb9636ae7248d706c6d49b1dec8ee35a9675f8180666e8843317

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b9a96159e858032eb92a45611d95fa8eb6d460c59e5c7be0fbd300d3beeb533
MD5 75722bd6d51219cc7de18ce9c51ee764
BLAKE2b-256 e90e9456fa0d4c2d9feee5df7500def3cb2617e5d90ce84825b852cd32b87521

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 12af976b844b75c9ed06c62a97b41647c51dedff75fdfa8de965890116173f81
MD5 eb805844c1c2e19921ef1325f66cc4e0
BLAKE2b-256 096a1a3468b6fb1c99a9c7efe72a6479f2531457968e30a7be1aad54cf9cd3ba

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ed6bc5e64c722c6231be5ae2dfb495cb15d622f81606a1051ca00744f6ec2264
MD5 0ae19057fe181c62d1bf2ce6c02fb911
BLAKE2b-256 bb0191d0764e5d9bfab7fb4ba9d6c7386d57b8e9ef4df103aa04ded99037bf80

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3ce8506991124536f0a6a150815d0173a14fd0c19456a4ab8f3b66729889a81f
MD5 8dee737621893f6b7cf6c1dd48915c1f
BLAKE2b-256 54c5c33a95e1b2b13fd04f4039d72bddaccb814d64374089ac33b401b4553ccc

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f05884a41df74c7efdd94be6328fcb88f081185bb61df1768bc3b80819cbd124
MD5 5d8e0b60d0930d56db05a4433ef158a7
BLAKE2b-256 ade78a359023eb02e7082a0ef73ecdbd6504d84c95d573b65a007fa71c31015f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 aa9232830eff23f80b2b52e89e8b6d12d7a503076f58222e5806259cedfbdbbd
MD5 1cf49bf8b1595101830eb4ca3392ea04
BLAKE2b-256 4fa01028e2cc55536b141f690f971a3c4e0cf5ad8d9f6ccacb4bb93cda9e366b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ff2edaf61b7a9555665337aca0e86cd5572dca0961526082df76a20551be5d64
MD5 0088588270403c12a5c57c8500766a0a
BLAKE2b-256 2e1c3b1916bd15e7222d8c9fe4653bb829958f04ac71cf66b8eedcefd3e3544e

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9bb728870670f88e4c2b037ac74da7ef17dbcb69a1940c13d654d6bb6a1445a0
MD5 8cdb7b8035d5ef3a80cd3ba605cda456
BLAKE2b-256 f210d982e96cfb938b1a7aab527205a0337876ad14057a9fc014c0500dc1f10b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a5df24635ae4d37dae164bde66d07f76bef8e9edf5e3d42a94eb8a39503f1b61
MD5 dc933b8e408a1c395fde1f3dbe72557f
BLAKE2b-256 a0c450e469f7aac9caf0866d08cfd9cb1432728f4509fa436cffc19158f50de2

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9ab2737de32c393a3d747bf088a5707e02e5a9e82de51b99b2b7f95881a86c14
MD5 7cb0d162cab4a3faa52e28040cc61236
BLAKE2b-256 7ab296084d53596c561981fe86a42c49f51acc191c5efb5e21f177cb50c6c332

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d37a8f95a229970ccc4e32d2d568b258f6d4d4a8d7a929df7f2ef5fddd741ddd
MD5 313640b9eea02f41779992cde5a0f7a3
BLAKE2b-256 784db5b337fa94d78d2d78df2b3a317db7d6848455ec3dd4b6d8eabb349b0beb

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a2c9c17f052d37708b409b5076d2639eab249682b313c0172c7461cc3c00bee2
MD5 e4550b0a6134b666603949ca58edaf64
BLAKE2b-256 2c2793c92684f56139ac9438261a99a386411a5cccbdca25f2eab18ad52d8627

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b362fef376bfa645010d0bd554a7f27309faf589b542a22f122c0fa9da9ff02e
MD5 8311ca4263f841ab810f427e2d7c4686
BLAKE2b-256 d0e2b753e01845f88dee5d3c904d48d1205546cf4fe24de406827c87b319d947

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a3db346a780f05d020402296967317b0e6d313029338484e922ac4e1e8f7ca9f
MD5 908b5cd427caf368dece1349979be542
BLAKE2b-256 0ab5642e7c456c19b15b0870c17e94c16f307da9a5243196b649339b52336731

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 144b66ef10e580308d016b256c2c0e681bdfe29185b63e0b5efb405078dcdbf0
MD5 86e62d38e5bcb92eacef2d7df5f633a6
BLAKE2b-256 8e68669309fdd26e5e2daa16d6fc76d53a9305c6dfbe79c0f4bd5f711dc1a562

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 93154fab1ed81d3a017cbda9146d6c78e595ce1031a4d8e827c9568f2134d263
MD5 8d84f20e62437a7903c743fc0957bf7d
BLAKE2b-256 fcfa2c729445f6f7d17fd882a61b3673799f7cf6f3c2c93ec9d672d297a45edc

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 008a9cf4dc9008ae3a4cf4c1bae0881f54bca3adad756d6c7f9cc6f847d5b6a8
MD5 69e2e24c4aac7e4d7c317065b65e8dc3
BLAKE2b-256 cb38a29b41635c8be41810d638860fee9d705b80ca98b418dbd4eefdcb1ddd38

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 392a0b66432d0444c89358a5cc1596bd6612e133fa0d014cf02e8ede5bd12fad
MD5 3241c820c086b97c30665b9998e8f661
BLAKE2b-256 c6fdfb54bd43f0f468b078f32a629be091e56c217a2798b54c5db1b4b1af9fc2

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2a60bc5a9d09d35eed19ad9ad1ffa3cbc0262c14e10524fcfbb35da3a2e6167a
MD5 9d8cfed8b4943184dd3bfccbe0c5fa7e
BLAKE2b-256 d6f336a322d694ab847439fbef28f096339c4f9b3e20b160dcc8801d6d281773

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d3c10e50b0ae6a47a4c3b284cc209ec42b06bb28f93e02cb52ef7af06aa3fa40
MD5 00f786d23d82dec6f32b0f34384c240c
BLAKE2b-256 452755fd19e0d085c53346072ffa44c8c13a29c7779728683a565c6a69aab0ea

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a32a4fb3710d1f17e7f66bfdb5d90e0ba1a9fcc63a251070548d2baad5aff8d
MD5 265fb8edee6ed0ab67098362012af9db
BLAKE2b-256 d80034cd784d944440aee8227644d322c59bd95d6a16d8537e9399d239ed95ae

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 fd3486a4bf86c225983f4a53cf1e59b82cab83e3b33fd1c8d71d7461884928b8
MD5 a3df5fd22d3e4021034dc1dd4f168dca
BLAKE2b-256 afc09c8c9b8d467e5a72c4238aa6d3e0f2aafdf37adc89a43b025d9b24b2e0a2

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 14b61934d389d3d6876f69807aa6e700971ed869beea29420290a2c33de392d2
MD5 19989ba181fa4fe03bd672cbec779367
BLAKE2b-256 80996c5c9554cfdfab4f836ab935b64fa7282ef6a3e64f905ccb4405d2507688

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af0fb28f7b75b12a00945719a756b15a7606bab1fecf73f87456bc4c4740efdc
MD5 9497d391b34c78ba96d424a93148adaf
BLAKE2b-256 8550c1c35816f6f596d29d35ad2d25f4737862f421dcff718bd40c0b5be2b3a1

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 53f89c6e8d61ad234ae187cf56d6df9a8a979bfd59f0b7515ea2c5161c9c2ce3
MD5 3b7cecd2dd2d876ac3bbe20fab91568f
BLAKE2b-256 6dd2843b2b7cdd8e4a4e91963f4e848a31f6bfff744269f093d4ef08177910e7

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 41c6ad1e2f4cd6f8969c97cdb15eabbb8e1d625e33ee7abebc25a2b84d00defa
MD5 fe9dfd792f6e30fc0e6ce9acdfe060ef
BLAKE2b-256 07184f11d366e2b3a3d9406d1b79deea54ff7304bf4c9874a85f7fadadb5edd0

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a2d6727173371179df5d9122a0692309c3e97a37066856390819f3b3db1782b3
MD5 b73765e9aa715ae3905558230506d323
BLAKE2b-256 90fa07d7785993d592220da081c206dcd2660701f50f8111f604990b173d06af

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fe188ddb8ccdefa7bd3372c0bda71be79d6f0bcda4409d5e8a011fcce8996bc6
MD5 fa3c2f82c3f939c9185b7614a55f48dc
BLAKE2b-256 b0d903c83056c6541413e52d5c2c025bdc91cd789a58a0d4b6d7feab1107c3b4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev274-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev274-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1f4b403cc136f98501ff9f1dee9bf1afda6682f08fac8a79cf58577a1355197c
MD5 6b2eda5f838ab20eefa1d1dc56b03c4d
BLAKE2b-256 502da7200db8977979753af5d1e5c9d7b83add377bad47de808240319c6da710

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