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.3.dev284.tar.gz (59.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.3.dev284-pp39-pypy39_pp73-win_amd64.whl (578.1 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_11_0_arm64.whl (909.7 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-win_amd64.whl (578.0 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_11_0_arm64.whl (909.7 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-win_amd64.whl (577.3 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (1.0 MB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.3.dev284-cp311-cp311-win_amd64.whl (579.8 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-cp311-cp311-macosx_11_0_arm64.whl (909.9 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-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.3.dev284-cp310-cp310-win_amd64.whl (579.5 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-cp310-cp310-macosx_11_0_arm64.whl (909.9 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-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.3.dev284-cp39-cp39-win_amd64.whl (579.7 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-cp39-cp39-macosx_11_0_arm64.whl (910.1 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-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.3.dev284-cp38-cp38-win_amd64.whl (579.2 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-cp38-cp38-macosx_11_0_arm64.whl (909.5 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

flashlight_text-0.0.3.dev284-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.3.dev284-cp37-cp37m-win_amd64.whl (578.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-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.3.dev284-cp36-cp36m-win_amd64.whl (578.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.3.dev284-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.3.dev284-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.3.dev284-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.3.dev284.tar.gz.

File metadata

  • Download URL: flashlight-text-0.0.3.dev284.tar.gz
  • Upload date:
  • Size: 59.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.3.dev284.tar.gz
Algorithm Hash digest
SHA256 a1bcfb2a55bd61b485982f81a02f9e986781da0db7861e62ef6b9c3ca6b7b1f3
MD5 8a1e88cf83e672f30b3cd0fd8327d378
BLAKE2b-256 2665ba9731c72180fb39d3664fd8d75d82376c8343d9de9d9ea66668ff2bd8a4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 3b3e8e0fc4165eda9852701cd459b1fa1a2c668abfb22857ac9ee73808d7a3ae
MD5 4404102ca8152295ab3441ef3e8a245f
BLAKE2b-256 6b0592755936c9fabce8711f32b12a3321cfecf94f0887eef9cb45f92653fb57

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fb2b03709fe4904877bf1febeebb90beb962189049c9564edc53c5b4eb5775f5
MD5 0d4c0bb6503d1597ed49e82dc2377005
BLAKE2b-256 ceba129657694672b7ed580bd974a753b72ba5c46be57b834672766ee8f72f2a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 95a06631b58f62ab41012e440eae82fee91f7d7265af3ee52735001cd67bd1a4
MD5 1902b9caa4287c8cfba4952082074b38
BLAKE2b-256 29438ac3976dba793074cb8dfa70916c8a33d8f7b34921b396a9260d80ed16d2

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 21542307099dc2c2068aeb646caf404e165865656fadcb16f799b6e771350b75
MD5 23e4c5344e6e22c03eaa66f75efbbcb0
BLAKE2b-256 345bff627556161571dd014d491015dc1032134cf31c78164199dc1d2ec7b6b0

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 24754de3958cb61a06a8b0521cd960ba8fdd680850784dc3a41974987ef7e6f5
MD5 83d3a9ed7f1df6dacade28e7e17cd9ac
BLAKE2b-256 30402a54035f4d9c906be4c9411c5038e3c918d42f139b7af01f0ebb667ad398

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 36be614956a1c8eb8c0eca7fa75cd25d1a4d8f4ba3e1e7587afc25dccbb56d53
MD5 7e70a14777fabfc5ff00cb49d2607e13
BLAKE2b-256 25c3315412870efb211bf07d8809026b8951fa51a26eb10f72a01f49680e71a6

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 711c1bc494d3e7257fc79c738409040eee231013b0b86e42f1c62f87a2cdb901
MD5 57dfcfa47bbdbbfaa15dff59fcc09a21
BLAKE2b-256 4255ed07808d1b0952a65d0081f0dedc48a9320e1fca2d1bbef92d945e3c42b0

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 92b0d75e41151b91367a4a34c946e0f97fcc4729207830a66a3661fb992f894a
MD5 ef69b8db60cf0493667efebef2ae8322
BLAKE2b-256 289f6b2d776d332b01dce677a7d589d80b089085470015582a69b3746eb15743

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 215c00cad5733104866a64adbb048ba40cf23a1d31da9c96fa191b41bea16cb4
MD5 a99c4fb727cf3cebd7d78906ea3db0ee
BLAKE2b-256 373bc0d6ca3f1e81b6646fafc54de7b9b303092506dd5328882722b251e11cc1

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b8a75b3ff7e1727e09651aefdee34fd62365948d02c086b5393c2973793735e4
MD5 461c4125637cc48de76200e1293da380
BLAKE2b-256 9ff972e1a91164ae6f34b5af1d8710b05d4a4dc8722e4bbfaaf04fcada5a42b4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 dcfb7b14be04a85c184a9223ad3d973a6ac52229c742277b67c3b9506a1afb71
MD5 478db7b067e9ef1da242269d809a9023
BLAKE2b-256 592efb78cf38a67b9a8b5ef7049f7fd216556f3f8787839dd8be7837923fbf1b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e969d4f984fd1e9583ff940cec6588709e9f31cca5329eee280b63089e394446
MD5 43bafae852ba60c17590d7df7f12f925
BLAKE2b-256 b2b2550b0677e95131016fe5ccac0cb7ec4ebe4391cb6d6c5a232d7671d8d4e7

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 00811e6c65031bd357d0a503200a49b4821eb77c1fcc2e721bef1c7c59ae506f
MD5 dbdfa5f5981afb088a337b97a66c3e04
BLAKE2b-256 6c620609498c2a1bcb63868a68466d90e73d1c7c76d59ec1944a6afb5f3dc402

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e62bf55f973bbeae12301099d1439bc416022b6501827c35b9ee05bcbd8b5d8f
MD5 e6649f0336b0da72b8a97eca8b4fcbf5
BLAKE2b-256 1675a77c439acc32024551dfea76f68a23692574253d361c78348b9efeb3fb21

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3613e0fcba29d00cdc99366f6adf78bdbe7e3cf7c17a5aaa69490d5164789111
MD5 93235e0be98384a58ab4c28063e33102
BLAKE2b-256 8de87b816b80da0aa226cbde6232b7c7a3cac65d179399e9b2e993d231a5661b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8edf5ddea1155cbe930cb7790c122f3a2c31fa78cbfaddf74844617249363c36
MD5 57cb038f63d2bd453f6ea61612bb6034
BLAKE2b-256 0dd558bccbf03e51e4f7d557f65efb1fc78757fbaf4f465344ec2c49145e69ee

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e6eb63eeadbd0ca4767a80f5ca889fe2fd5cb7abda99c790ea904f3c4b10194e
MD5 f62d2841c2c20b90b3973cc2fbcd9510
BLAKE2b-256 1d0e0089b64f6f5d044b31aec338398cb4de1e5c26a5d678e81232fad37fc2c3

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 7a7c700ac1d144c12fa82f4a09f794dae16e30049567799d798378886718054c
MD5 6dd3ba2274d27788ea247b0b6eb54277
BLAKE2b-256 baa1cc579df39ee0b2ac132a6fc508daaf02851f8fee59691319fa06ecc81268

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 34ac5cea09431dfc2f8d3c4b00f103668e12f5c3468073e81eb1ba21184b121d
MD5 76b9cd93a79b91ce34c68a50951c0eaf
BLAKE2b-256 4d5518195beb6190745d3fb75a6c9670b396ec4d14556e7493823b17ef489373

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6562e5f6beb66954efd126c40606d0772a6b2fde2223987eb39fb37a88c5e367
MD5 4d626b87425e6e767d5f3ba9435a2cf0
BLAKE2b-256 2c2251ed6bf25059df5083c57a53c07e8775b707da5a2a736d25d7d706a2e541

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8410534805f269f94584be820ab3b2da92d981b4735f363260791d2cec232993
MD5 73d1256deb1c191a5c89d0baa9aba8c4
BLAKE2b-256 3844a132ad78739dcf17e0e80ec4fcf70e60eb3e2895fe6ed9b7a5c28e21ac3f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5d637982352d3dcc1e6104441846dc13d8c64c7e902aab0d21835d9d142d1bae
MD5 d38eb150a66a5c7940d930d7f3953f24
BLAKE2b-256 30d2a668a391a26896daee9d5faefc4c0c67dd8f7845d73f457587216f9f208a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 ec15ec9da1713a7d5cbca54ef45f128ccd9e08a16eba1ad082e702e70141f0da
MD5 866a8a5f82db9e2c48390559207ea413
BLAKE2b-256 acab123dcdac5735bae3a0dc6004d5058327bf9f5f545008b5eb27ca6f07a31a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b37350892a771bb6b63bb3c0636a728083085341596a054ced9ba618751e1bac
MD5 e84bd2f671ce1d68347d62bbd130de04
BLAKE2b-256 005f7b3c4880d0a8ce1815b095127eed6ddd2433ee61cf3083e3736b46158dab

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3643cfe14f0c70fd6f2e9798b66bfb2a52dbb4a9c39941e452ac059793cc7e29
MD5 15c88778cfbb737ceb9aaa22e03ee792
BLAKE2b-256 e708f35b834542b0edd256d7ab15789fef3eef603cf25903a11d1feb4ae7385a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 022ec2bbaca7a5c5ded0163ec88d21661959d5c8a062206854ec40d7809c1dfe
MD5 e42c9ab8830998ee6deeef67e8ed084b
BLAKE2b-256 e213e42565997af7d2c28345c7fb854f739bbef80f59a64a5ca1343a3ebb9379

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 83cf03d81aabb484d8ee7cf9776c8e16c1a786b5a78112b58eae09c561b6e670
MD5 41b68d8e3201a4ac3f53a6c43bc0811f
BLAKE2b-256 6a0408e523ebfdd9f9671856fcf83cf54cfcde3da02db66dee961924013da5ff

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2e5b7d131429710413ef5dbe0202c9a6a4a8e4d5dee51facc8d68d34177d0d6f
MD5 e17455e3b790985975de9c03eca980f6
BLAKE2b-256 60d840f40f9f3d6aebeed4d84e76e89bcd83d6061e4a3b76e976a49f8c409a05

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 45119dc7d319dcd02d0603015d4c1650b97505d2ec46e0ad692a56e19ddc1673
MD5 d04aec3e977e7cdc5f456456dcb85d5e
BLAKE2b-256 240e72cdf586d924e37a2c04072bb43d58c4b115c0c18cde6cbfb9e55b61478e

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1a345d7ce13ca3a98bc2214b77cb2f560752b8ab7a8637fe3053c0cb11ea9aa5
MD5 4d459db4f4bd0bcdd3644bda1109661d
BLAKE2b-256 d6147ee88ea9e243812e7e6a93db78ae4cee7d0f3fb54505bc7c75d74664bb23

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d2b58555d92cb25641e00d30b5062136ffee61fe43b9d96f88ba881ad0522c90
MD5 e5e28c5bd226ed4fd0c297196c57aee6
BLAKE2b-256 7f701c3147ef31852bc49ab1eb6714da449d475cb3a24997420630e4efa552d7

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 9357c9c85a1a35a610f38f7e03172f5913b587baeb8d0ba34ea6160842dda6d0
MD5 dfac0b67d3151a49a334a74ccf08d9df
BLAKE2b-256 c0bd7fd6a13d3d0fcc736d9e1b459c8b343ef93e5f3eb315137cece014207b7e

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5f381b07de2e78cfcee1e227dce5bf14a74897abdc4bea05c4fe1554bd8829e9
MD5 3604a668c09db2bb328fd4904e76feff
BLAKE2b-256 7e775246b01fc04a09f22b68da33f76c88127da8edd16919926963442012518f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7441c4902d49b1a7ee0f824be2a58382fbea374a8cc3ee668cc098c520c2d2b0
MD5 0460284f5e2372a8d51cd1c1019dd911
BLAKE2b-256 adee33a68741eef34b741082d03e05b6ccbc44f21fd60b7371e5c0bbb4bf94be

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a2616290c465f5b997168e3731c2294dc5c31f2e855a6bcd7ed993933fe5ed4b
MD5 38b6ea0f8965d0a394ea86c4d432a44c
BLAKE2b-256 84cac83ac10c6f1c58b00dd13e53044eac9d0c13ee7b6f6ecd0e963c64bf306d

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 5ebaae81e24e790b6a11871dfba64b5ca68d817d06cd4f9f8b63bb3fa628feff
MD5 49cbd6c693f47c0f9e6f43cfa808cdf0
BLAKE2b-256 7e16daaa0bc6dad2b114eba26a4c2ab4a282e21df2e2096c135b4568cc47eae8

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 73cda82bc7f05ec7c13aa5868fccd58a5215ef9264474c4fe260ebb7f5a6ddbe
MD5 12a07e551a8973b90793ae12f718d982
BLAKE2b-256 bc6fe811db3132b46088662de2ce2e73bf00a0d1ae0b2b9dc3460efb86f9a709

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ddb0c6d2ab945bc06d59a09ad7dfe4de1b739ebfb539cb86b3934fbaf42c61b6
MD5 84e5e0cbf10785d679ba274af23f269a
BLAKE2b-256 5d8b465177e04f00d24c450678288b2f57c0331107fe8e8e481752dc789c1dfb

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.3.dev284-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev284-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2d227b8eed824699026f52e4197c186813823f4426b92b11f310af8a26fda713
MD5 7091cc20b012deda996b1dcdc7479a96
BLAKE2b-256 a193989e020322cf86b1a2e39bb3b64af781f7dd507c8e9b8a073b9e4be35de8

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