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.18, 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.dev276.tar.gz (60.1 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.dev276-pp39-pypy39_pp73-win_amd64.whl (579.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-win_amd64.whl (579.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-pp37-pypy37_pp73-win_amd64.whl (579.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev276-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp311-cp311-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp311-cp311-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-cp311-cp311-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp310-cp310-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp310-cp310-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-cp310-cp310-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp39-cp39-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp39-cp39-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-cp39-cp39-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp38-cp38-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp38-cp38-macosx_11_0_arm64.whl (894.6 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

flashlight_text-0.0.2.dev276-cp38-cp38-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp37-cp37m-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp37-cp37m-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.2.dev276-cp36-cp36m-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.2.dev276-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.dev276-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.dev276-cp36-cp36m-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: flashlight-text-0.0.2.dev276.tar.gz
  • Upload date:
  • Size: 60.1 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.dev276.tar.gz
Algorithm Hash digest
SHA256 40a92aa2854c45c10c6504195cd9bd5bc001a3ae1ca8d5348eef3efc0a385e5d
MD5 43ae124b571d9d861bdb63dabe1c584a
BLAKE2b-256 01d3feded50ca270f01f7bd5b4eeab053f5b914bb52ee125f7e2f5ed65be21bd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 7e7505138d430d92d6f32e7645cdd2288ab09c91ee24ec027e2b530866535279
MD5 14c01eafa33649aec718b3eaa63b562d
BLAKE2b-256 8a67214e767cbece4cbd45ec5af5104a8093fadc7c7d6aa33d71564bf2bd1994

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b5ae841a85a39887c31333a4d4a060b322dcd55da2dd92ba7531dcb77242f566
MD5 e6639cc67e2b753f9ee99b6988a46490
BLAKE2b-256 4b7561297ebbddb8bb1fd269940543485bef1274d624d65a4d43391c48f7e0ea

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2d88b2236fcc7316871542e90315bb6d12def64b82052042b20b8e14a21d4b29
MD5 df48f5be770ccf153bf638be2e77e48d
BLAKE2b-256 ce66fc00738ff339fed769a969e344ce7f8c1fb6b58c5465e4281275274413e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 13243e6aedaa15b38965de41b50b1a723cab44dde5778596b35550b1b80f802e
MD5 bce50805047c66bc758188ec7c682739
BLAKE2b-256 b3eefe86d3d0cacc9263d9d7e797cfc4afc2f28560cced3bd7541123cfc30643

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 ddb218c9a88d6d1d00d7812a382e3827fb18782531d3439d4feb97c626f44b60
MD5 d720d8a76daafc126d954a1a5abad255
BLAKE2b-256 ea3607c86f0e24dbc4aef0056289945f90b779b9d47e4b9dc52c481725ba06cc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 528af2e494156975551f9fef7d6643981caae0d11d71b9daba8d40583d7ba194
MD5 d3987df898afe3161738ad8e9f9873f6
BLAKE2b-256 c0dfebf770e0b1d9f5a15095e6c96aec93150a098da3d5a41a0db31be51b78f4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0f2ddbbbd579f78f8678362870a5e4d88d66ddd70b49929f664787444eb777b1
MD5 944297235bea7acd49ba8efac49f37f0
BLAKE2b-256 7a741f4206f7d441fcd63a73df82808aff78aaf830166b40446a1668220b100e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 21b8f547d8e010c046aaac59f1308744b513ea7bf4819a36833376c74eb483d0
MD5 818f9c06a431771bac63012bc6a2cc20
BLAKE2b-256 c6d766b10e9ae753e38653a4e15c481d975ce1eaf588666e8e914f9d2ad72f9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 195380bbd657ce0e3b9100b6cef4d9d933f0f38de50c306e87c0dc1278def1f7
MD5 61f40d43ff31fef72ee0dfa888826c23
BLAKE2b-256 209292f44f451478af25fc007f6afadd53aaddcee45d3cf1503b257bc49efff8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b31defb5028d25b82f05dff6ba75c6e3e8ad59ebb2437ef5cf6de66795214e01
MD5 7140ffe7f1e30497ace2e13c7383bfdd
BLAKE2b-256 3bd83eab6ccfec957bc0160e32cefefaf52cb4d36e79c8680982313685bc0c7d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3876b27f8a2a0eabc9a0aefe878ff9fae79333361674553cccb2f53a9ff181f4
MD5 02c7720b64ac03e4494814d2328e8457
BLAKE2b-256 04cc4024edae244f44df28bc3c53177aa9cce06c8f79ee4fc25d4b4fc944bdb2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 09885810714dc1241bfae62e6a636272a320ae6c381ae30953e7e46ed24663a8
MD5 db7d43f2d41b3a7ea93b5925be52da42
BLAKE2b-256 371f97b52e02cc6bf3a1cbd0b914df411a034799a0daa09223e4642c7e437b81

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3c46a15ba1a87221e1ba6a27db07b7ba3fe05b03afedf2f3cc013fc2a20f0998
MD5 ea1d8dc58737160dcaaabcceb3d867c1
BLAKE2b-256 bee084ed2763bd2eb5d5b8249df0824d05804a593f0dee537465f807374a7d33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 be50f0b761ba3456a120c40643cf27ed03ce126c130a4d41bae9221ebac36b1e
MD5 d837ebf7cb4cf32d30cb987ccf84f117
BLAKE2b-256 005690af82588a1dff51cf75827e230041e553c0a1a16cff5c370d425e53539e

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da0ba656a3af81148291939a3e70cec2d508dcba6097a8be984b2b5a96a68678
MD5 fcb1306d5040ca6649f7e294d41b10dd
BLAKE2b-256 f404bc0f703e9380b9b0388c55e892c9d6712655207fff472903bc825ef05075

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ceb092cd819f907f1b9e73be2897bebc93ee4da1506ecea9b1859644113a0e2f
MD5 6a16cdacbf1cd323461f802f37086dac
BLAKE2b-256 5c20f1dd5e1ae9b7855e097746604018e23d3952d5b33622efbfd2995b7c1d3b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a6ad558e1b42f2e223d5d4f621cf98f853dfe2d9736fbca3c2ac884db6f96543
MD5 7e9503a4ad3d590457fcba44f74c3231
BLAKE2b-256 14c28cb7d2d29978ced01d1b68e8d44958a88ab3ce4874e4120643e098d990e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ca72449d4a693c432c21e0d434f0e09dc55aa186869cec25bd1526f3baea3960
MD5 44687fff59f3220e3da3b8ff0470b125
BLAKE2b-256 fa56177259a2468336a0a7cd0d2df5da051db974a981ba98c0be7601fafbed02

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e847c68a5471a160b0e269d6a7c02f6d08de33657bbba2cf87890cab94706a9
MD5 0bf8a87b341d31bdda391d890527b2f4
BLAKE2b-256 43c58fe912bb0213213e28c45edf91c73785cbd12734e1a7a2c4dc0d5913fba5

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 098ee881affccc7024ad1632ceb7faa88ed6f57184604db73d3af94f956c25f0
MD5 8e330453a7eefaf704c1b47d84795650
BLAKE2b-256 1a1b8c59c72058b1fa92c3afa12abd3fcc6eb0d23f4039a6bee046061f0a3887

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2c76e591ee4092d7f964c1c9400b919fc5d058867d3abf95e9fe230a33eec7eb
MD5 a71be37ae9cd2a97c0430200b25fb458
BLAKE2b-256 49426fa7131568d9ad2347ec256f347fba1592f01b2b644ecf1744165f16bab9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 25f01fc47d12428760aed7c4ae9ce39afedc80a6f9aafe52a9ab9ea921fd15dd
MD5 11ef81c43c80724782f1e90a3f842d3f
BLAKE2b-256 7ee3af3aa918a3a433a20417b0717b3b62dac8e49e1af3514e9cd03a783f7037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bc6a062aeafac25debe346e72deb9c1d9220aa89708a22eec4fd665d2a15d474
MD5 15d09aa45876b8a93bc7d2bb1e36ebe1
BLAKE2b-256 cdaa7bf4f5e4ba412bb049b5bc6de728b01037144465f2a64b5b24bae590de35

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c074b7a33362b69bdad5fa3c8d0c1164be78921ec0b982ec792f59accd4750e6
MD5 d5b0285c515961b0d9f1d39804125a21
BLAKE2b-256 7c2b6ad2f6644953e605ad4a438864b8448445e1cd6c9b2614290823b9109d32

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26af7cd9b6915127e844ef50b258efd5efc3092366a33277b15b1967cccd3b21
MD5 3005931352bf7d4bbe1829970e05d01f
BLAKE2b-256 a3134417bc0fb63b1c2a0d42313354938875ff7a1ed3f4acf2c5dab3f58a5b04

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3785d7c74df7c8d53a95e48957e9b9156d715e9813b9fd3192651fb633db525a
MD5 98949a7b6383eae28722fedc3747bed1
BLAKE2b-256 8e667da3b4d6558f57d929ef037337076ac2482193a8b825c2358b664c64297f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 648aa4652a3987456b62a59f3df9cb64141245c5f85a3b7478397ebe04261252
MD5 ed36bb2ff5ca1c15de7ccd3eeac9236c
BLAKE2b-256 0b4c1510b826a512dff96d615b8d43ae6547c83a32d52f996c2499f351a86f55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4fe463517f858574132289f8c1769ee4dd1a771a08d33a029ad9ef6833ac6b6f
MD5 9e252f8841eb6004e4a556c395fa6532
BLAKE2b-256 059a68113589bb837312db9797de93d8d87877a10f8ee2bf7fabd89343a73211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2919c266ab49ecf970cfc6678e5748cf7ab93f1604d25b60cd0c749e1a020815
MD5 a241aa95067866881263d34fdaed08a0
BLAKE2b-256 dacd8a82b2f691c1999c2d74312105e5013fe5e3f73e94da857808ea15e07f73

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.2.dev276-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 853f901e378d178d99bff81f2b4fa648bebc2a9d4b1d6614850d450ffab382e1
MD5 37dcbe1539db5b20ef05402bc80ea149
BLAKE2b-256 4d6615452f3069c621b762d4d4b2efb5cb6e7d43209a0f395919882519082191

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e96ee058a2781c02a1c4090cf7a11fe41991527ced2ecc6a97551e6d211c0da7
MD5 0daa5876b8d0f91899abd2f923c581b6
BLAKE2b-256 5f7a961440af8a2c4f98f857f6e44c77234e3532da3602c23fc45afb7e5ec9c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 d47b1e858eefe86f67bc53c39912f8ef253f6b8741e465272389455968040305
MD5 7f4b7d61668d8b04130cf6a0a29e2d5f
BLAKE2b-256 94d558608f15485bd6a6eb7e39fbaef469f646d5b31cc234433b4626c34b54c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 37d1194653dd1bfc60811b15b358e47e61e9530f5bf664636f5863f7780854fa
MD5 fdb465af453b2c3c49969b9a41ce7f83
BLAKE2b-256 bbcff5df932ba1e3edb1fde6382af29965e6684ed552add5cd368e479ff930b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 98c53b5d8be8450d7a14c7189ed4011b6b863dbf0130150332039d0638014eda
MD5 bef3583c51716946419a8400e522328d
BLAKE2b-256 3bdc61258da36e0d314ed3a8976b98069020d99bf65afd7a38a391e01ea2c0e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 600ca2b3e755bf9369679521dbbbe744b58732503d5ac6ce02c744f13c691f9b
MD5 77a800fc0f315ed4107eb6a29ac51345
BLAKE2b-256 f57b493831fc0b63acc3e7d563eed0624666dabfe7dc4d638bad8f59ff25fc61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 751b1339fdefbf9b5a8e91dfde453a332ecc495223bb76a22bdb7c83848c3f31
MD5 c22a956f1efee92e90ed2e92991ba3c2
BLAKE2b-256 e9ed8ed17e89f57fe0f7177f13daf4e55be886a1fef8cf5f21b65afd7ea6211b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8276f83de174110c63b76fc953db989e5d4d4473ec8fdf9fc69fa6c2a52a46f0
MD5 d224b46ae94ce1dd38b4d002ed5d22ea
BLAKE2b-256 f13473a70cc1a4485a178f9cf4669f592bbeb6766f9c02b5cba6d8f230abb6ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff342bda8cafbeebca6e60a8b39fe6c7ca698d93031c05aa818764ae2d31bd59
MD5 96568ee9a1167e2270b40cfa58deac47
BLAKE2b-256 e9fc92ba38bbe2a4a01f126d55d4adab67378e79144645f7035b51cb7e154143

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev276-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 15df4cbd9e509a140a3c4bb1c1e58a367fc1aa58b70ae901869a2846c617d828
MD5 54d2bdc1ab417f0ef43a6429b0385ee7
BLAKE2b-256 fc9c170f109acb6544a80ef8b95fa17735e68de71370adb8eaa0ed5a9a561018

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