Skip to main content

Flashlight Text bindings for Python

Project description

Flashlight Text Python Bindings

Quickstart

Flashlight Text is available on PyPI without KenLM support using:

pip install flashlight-text  # without KenLM support

For now, building from source is required for KenLM support. We'll be adding KenLM support to the PyPI package soon.

Contents

Installation

Dependencies

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

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.dev272.tar.gz (65.5 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.dev272-pp39-pypy39_pp73-win_amd64.whl (615.3 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev272-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (990.3 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-pp38-pypy38_pp73-win_amd64.whl (615.2 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev272-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (990.4 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-pp37-pypy37_pp73-win_amd64.whl (615.2 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev272-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (990.3 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp311-cp311-win_amd64.whl (616.1 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp311-cp311-macosx_10_9_x86_64.whl (990.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp310-cp310-win_amd64.whl (616.4 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp310-cp310-macosx_10_9_x86_64.whl (990.6 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp39-cp39-win_amd64.whl (616.7 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp39-cp39-macosx_10_9_x86_64.whl (990.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp38-cp38-win_amd64.whl (616.0 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp38-cp38-macosx_10_9_x86_64.whl (990.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp37-cp37m-win_amd64.whl (614.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp37-cp37m-macosx_10_9_x86_64.whl (984.6 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.2.dev272-cp36-cp36m-win_amd64.whl (614.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.2.dev272-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.dev272-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.dev272-cp36-cp36m-macosx_10_9_x86_64.whl (984.8 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: flashlight-text-0.0.2.dev272.tar.gz
  • Upload date:
  • Size: 65.5 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.dev272.tar.gz
Algorithm Hash digest
SHA256 4efa9c51fe24c0a4da9263d939129e1972be437d88de168e5e5f893f7a8232f2
MD5 cbcb245301d28849f6ef4d9381121100
BLAKE2b-256 c881a7b6cca02387021c58128d659b960c7a4829bd0d986bfd3acddcff322a33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c2edf4b77602e5a2f7cac18c48f59a911e24556c129f1ac5c6b197c991dcf0ba
MD5 2b3054420b6e02d7b196c8cef1242edf
BLAKE2b-256 dacda8f6ba095cfc9fb4b129b24ff6ac282a07663208ddc14f3e416fa8c2d48e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a76db02bcbc1fc119960bf8199d9479554d4bb02dcf27a9ce5043c7b3a8eb1fe
MD5 122257b40800fc3e338caf7e777a5108
BLAKE2b-256 847b257aa2a925e0b654b8f8d0c86bc22410ac81eeed8d2b1cdd57adab4cf147

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4fb463543cc774b74ed296e2851eef6dfdd7b95a84b479f82b41cc3eede5321b
MD5 8fe020be873beda02ec28b02e809795a
BLAKE2b-256 174bbb515753bb067d009dc6ae63f61ff9b7d22531de6594d00d541809a18dda

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 f4c37a179e8aab3c94da752faf9437ab1b18cf9529710c55312120cd0ac4c43d
MD5 e0ae05825701fe0ee15799d0029689fd
BLAKE2b-256 4eaade2147c07fcfe8449d938d6c57261cd1ead41f12e05cef951bd847be1b44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b358ee29ea3eb9c22a2ab2ee58f6421f6aed7386a05a751cb0b08e087fee2f85
MD5 f5cc08a186bd2b77546f8196cf4ad247
BLAKE2b-256 9252f521ed1e1fd5b3af6c1604cb992f73c01b1cd4178814712b786ba4c46e3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 51ecceed4acec66ba0cf6144d98fbc942bef987135bf0554cd07ee8686ed5617
MD5 6481fe724c3c0b37e842ead07dd6a1eb
BLAKE2b-256 e5139d44bfabf9bd228e3d3a87e894f6111df7178de27ece1ee4ff44d7b751d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 22e81f728597f0f366585c29f05002676d88c6212bf95e562b98aa90af39e219
MD5 46c4a8042a87b114a4db3e7c4321ce3a
BLAKE2b-256 15729c6d14d4f8364c1efaa6a3184a6f84e5aad4a4368fd0ca29f630fe5a3d16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ebb0c9a87151b0605ef2270391677e58fcd65a73504455b7ba67e4ad35f73efa
MD5 8ea63ebec63f20b59dd3e7a3d624eed8
BLAKE2b-256 4cca1e67ccd61464d4eb56ee98843ee73461c564b8bc9be3cc8baace1fdf4252

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9aa97db5d1f542a13367075613b4d30dc05ca1262666d1a11a74c8a176a0cc56
MD5 08be82d8ca34ef56997c5e2972d981ee
BLAKE2b-256 732c07d1b74a6f5e6fcebcf86ed0b002e4b9f49c0549aabb954aec439de0c843

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 3b572dcf226b3b116e0b2b03399b5ebeb2081ea393e3dbb20e6c43b44125329e
MD5 5bbb4b39d4c59f602bbe07ed754d47cf
BLAKE2b-256 e5d10485b31fa84769a0a64238f01b3ec9e7e3db3a02cab688cea596c1608f4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 06f8b8da1f5b105122263230beee8cb82a37a0dc63c57065376f5df8d061ee81
MD5 7eff4efa3517b0ccdf5f935e25ae1660
BLAKE2b-256 830e533649fefd0a527dc3ddccc59d1da3132f20ea7cfe6365a6daeb08cfc077

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 72af16f0dca823258fd5ff848f1186512bc5a25b9cfce23720c09026321ec85c
MD5 b37dbdd1a94ed82be53e69690fc43978
BLAKE2b-256 af9541401cac4061e321f395e480ca6fd26b17350fa9782abc148743f478a0ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 33b73c102da546448ce431b6939de2ffb3e2d6fc264ace4525fcafdc2ca15fe6
MD5 cf6e93b1ebea9415a8411862fb88d8dc
BLAKE2b-256 0cde6a13ae9e85563a117cb1b28a8c1dfa985a57c6811d039717f377970bff7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e8493ddc8222919d07433b00f9b8a20874f218f2a9aceb0b361be096fdbf3b28
MD5 90adc7abbd0e8ed77424d76806827b30
BLAKE2b-256 fa0f07420f38100f0a38e847f0b55760448f7f66c339a67634781901fdb63299

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5bc12db64cbd01ccb1e7b356042b7b0945314b299c03faf162f4d0a08af5e2ec
MD5 9acf782f274b04212efa566a70ace1ee
BLAKE2b-256 8d3657592ad03482bf012fa2d0c8c588d53162a517294e668d652d7605f7d2ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 661bed449b2dae5994855b1dca01bcec5a902a4ced68e8f3a1b6bb8def60e49f
MD5 5018a58409258ee9f0c1acc4aa315fb6
BLAKE2b-256 f5786ba405e6322095633f3982d98d6e981559ed2770d0c674180d513ac11ff1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4928df810ae83e786740cdfeeb770c82560a49daf36fdc79bcd2e35a5b9bf5b4
MD5 3399bfd046ed7fb5576205c2c5df4cfd
BLAKE2b-256 912a3f52626dd64416b3cde9535af2ae9292f7eeb9164de72ad2dc9676c03f31

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 0d333d8f48bca8e3df2d55a222abb550491800a86615c1c41f52a10ace7e509d
MD5 2505770f13cb2847c5605749a2d8dfab
BLAKE2b-256 fd1969af931f0dd84cc65a5c3bb2ad0a609ce0e8437594a2bf0f46d38ab9f414

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2d1cacb4d80e12b896ad9133410e5474da6c5ff30ef7ac4266bd3e906218f172
MD5 d40a20e3a6ba3cc66434861c0e195be7
BLAKE2b-256 425eed427d91d19949af57078c5a8ec909d4b80d096ffbfa2b20bfa1ec02e245

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 345951261f1d69d2fad9dca05c4a4911886362dc260f4fe2c1ba5ee992b7be09
MD5 5bac9097fec64436429d986aec11d089
BLAKE2b-256 127b7fad834ab707dd34b9ed0ac6e3f16c2a1c277d0d2216fd7800c89964da4d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5214c9922fece751489cc5481b5d1dd3265ff8c64ecc21b0bdfd477dd2c19120
MD5 ced59ecbef8b61125766ae3aa733a1b2
BLAKE2b-256 918a37b02d33816f0599449dfd9d4504a6728afd456f498a3db2bfda943d205f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a1712bf17010377d8b5ec097fff0bcc6c47de87bca76e70521b74cc1094e29e0
MD5 0b9494d585038e1dcf6cf1be273ce7f8
BLAKE2b-256 f764df1eb555fb06a9646e4191cd415b260b5594b8f858684fad830bacc766dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 db4e4351198bfe560f380836936f3e74ec12880029b73703bb7b03658de92d11
MD5 46b960e70377bd8f1b617e5d06d02e49
BLAKE2b-256 1c88fc9aec4bb261557a8ae0995c4dcfc8d93a6dcaefc6fc9813c090cfc2bfee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ba5ecae2da34704c84a64630849418454e8b611a2ee236530bca8187150f625
MD5 94c92c215ec522c6eeb3e9ed3a6a110a
BLAKE2b-256 1dea386e5e98bb35512b6eef097bd2f26b180a48433af13c2cce7c9112cc1226

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7f9b5570f3f5e8357630f7d3aa60d72fd1be4ac870f0e14ee6825af93a22e530
MD5 b896f73893ae147fa9b932fe85351e64
BLAKE2b-256 7b29495104af69444e4f5d1142feed249177c5045437aee4989009d18fd267d3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 1b3619469c79e2f91fe28d77a6ac128074a502a4954d875ba1d4b11dea3b69f9
MD5 7b3a7f6fd2061a1715a085dc6bcd18e5
BLAKE2b-256 8e073b92de7e955eb5ab4f3583d5b1845859d52d02f6bb410cd0a3a6666ea0ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 b099f83e17965eb2cb0ea6339425d09e3f265f6b5eb3800000a37bd63db91318
MD5 1e7903881998e76d9f3257ee6109a012
BLAKE2b-256 b526f803a33113d1abcb1f8a004f7294bfb24ce9a2d2628db92b2a6e5d453bdc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0a85a7c74887c2b67e426a2ea6c88ae3860c9df7cff930c310084b9026f1fbe8
MD5 fbeb4c5768c247d2244e013927b33daa
BLAKE2b-256 98d0fec51c1dba1ca320897bedd9eb02dc21faea65092fc69eb7888d7399dde3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f767a47a525892bc534218675082863040947d350b5de823856c23ff19a514fc
MD5 58b8301690405513203e5b476daaf681
BLAKE2b-256 8dff30782a5dc6c0e6406eef8518626402fda7b65fb9b487da188db0b0c99ab7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 ff9f7618c7b36a6028003c262317e27b397b7ac563891408a1ba1c63edc44cc9
MD5 1bfcced2fde2e6540164b53eb8813211
BLAKE2b-256 2b923cca67839b704c3de0d666f330b248ec554d593412bf811ea2489d11b881

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 940faa3d40a1e3b2412108edf8e463c2edbb2de5332016f2f010ee5a29f440d2
MD5 710d6a197dafecb490f106cac2a5fd52
BLAKE2b-256 bc974f6657f153dffa3859b153f31ca420fe67058de93838e691232222752165

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b7f1b1f4f9e74b97fefcc47919db780ee60f65a18db97731cdd653dc999ba689
MD5 af9a2c51cbb7794289205b624117af97
BLAKE2b-256 994cd13626942b323ec80fc718ebe1c5fed075f532ad2197ad24c783516c2bc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev272-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cd507a7ebdfe66dc90d4a8e995afb2d68a1111442125c9f52a02edeaabed6f1c
MD5 14f7e539dcdf0d2b939d282628951900
BLAKE2b-256 36b05dcd1d9109939e0c5102d32106d6e22ef4a4343398e3b5a558fa510635bd

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