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.dev277.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.dev277-pp39-pypy39_pp73-win_amd64.whl (578.1 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev277-pp39-pypy39_pp73-macosx_11_0_arm64.whl (894.5 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.2.dev277-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.dev277-pp38-pypy38_pp73-win_amd64.whl (577.9 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev277-pp38-pypy38_pp73-macosx_11_0_arm64.whl (894.5 kB view details)

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.2.dev277-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.dev277-pp37-pypy37_pp73-win_amd64.whl (577.3 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev277-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.dev277-cp311-cp311-win_amd64.whl (579.8 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

flashlight_text-0.0.2.dev277-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.dev277-cp310-cp310-win_amd64.whl (579.4 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

flashlight_text-0.0.2.dev277-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.dev277-cp39-cp39-win_amd64.whl (579.7 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

flashlight_text-0.0.2.dev277-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.dev277-cp38-cp38-win_amd64.whl (579.2 kB view details)

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.2.dev277-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.dev277-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.dev277-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.dev277.tar.gz.

File metadata

  • Download URL: flashlight-text-0.0.2.dev277.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.dev277.tar.gz
Algorithm Hash digest
SHA256 45a5752bc4e70dfc9f465a92ccbd6c2a5b730d00fa8e8a6a0b294b4079bbd16f
MD5 94e56e26ab9e1f273fad7ef8e39d6edd
BLAKE2b-256 f149483d548e8ccd7ce26999bbe118a3c69eeb970d1b31a1e75e529a3aca303e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 bb545f7fb6618b94333f85dc29ba94cf77c63bd339bea2d4e1834ed43dd42482
MD5 e65a1676209156fb13538495c822f26c
BLAKE2b-256 1743cfab5b5b14cfc9d2413b414af6230c9f679a638f77820b94e3059548c7ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5680443dd02fe7ca12c4615f41981c7f10d186e8655a138812f4aa220383573a
MD5 3e20fb8298e2881db3b8bb3a4ce3ca9d
BLAKE2b-256 2c88c699f1f6b28bbf31974868a626d06fb78f837b27f1001eb4da7cca5a2223

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 49ae197e5f8713bcc30ac523c6b1d41c878302a50b8aef304cb360b730a4c257
MD5 4f67eb3f6dc7463994543ced9ee80b03
BLAKE2b-256 85adb6a5fafc8f886250cc1f8c0334df37ef0c19a60f712057bbba851366f707

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 704912e1ecc3359de78f54af08189af7403d6564ed21b97d9947139b17100a7f
MD5 7d9acb310b740abb53f2ff3dd0442478
BLAKE2b-256 1555bf637b575222fe447d960c6dbdc7febc42b3316d2d4df8522eb922d790db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 40797df18b6644e7b7a916d5f7f02eb32a240f874cb28ed01ed00ed9cb0d043b
MD5 4fb051f48fceb8ce7d1fd5cb6b2cf5ba
BLAKE2b-256 db9109ae6665c50897df8278651743c709a177c0840dc80e9e2fc2549e8f742e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e26cfd73b520a13d7dd32c2bdc0eed73f50518d3c482fe3f36c52c64f354f768
MD5 63abea90e05d019f6b9f844f59a0e499
BLAKE2b-256 c89c5d9bae189891bbafc9bbae5c51a0f21f3971668b6ef1d987f42bbc061dd0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cc6236aad0f0252e0edfaaa4cacbf0868c0f10a16f8ce84b95657eac5f50e9b5
MD5 39ffd47cb18e037cffa0cf899e0b4721
BLAKE2b-256 17c83163cd7cc9d408bcdaaea01ad0fe4ae0d353873b9a2f06908e4dfaa88141

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aaf4c6c95aa0c5c3bb4f3b204c42c240872409a0f48c6ad3f89ce15df21d7e0e
MD5 c8702c8411437fd13653e679f1622e01
BLAKE2b-256 21ddb0c8d915c42457316e0f5471c2f3812593859fdc74e8246552d5bccff11e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 752d8108c1189cd9b43016aef68ad8ec1cff7cefcb947db83f087a6e739f51e1
MD5 092054f4bccb613b05c573f963ad0280
BLAKE2b-256 4546a9bfc4de18a26dea0bd57bd37535266cb283ebfe96abfd3f8456ac35a5c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48f0d14d0df4c5c0066176de087aecf8411de6f62eba638362f87c2c3b8bdd54
MD5 81b12c6e9808b5c5f63b25aacf842293
BLAKE2b-256 3d98019d5faeafd3a6cc4ac6692eb17b155c9239835fe01baab64acf8746ed9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1f25e645ccc008e8e881b0900baa0b5d83a25b060107c55417fd06380ca30003
MD5 cd8aab7a74044df801045571bb2462d1
BLAKE2b-256 63df6488ec0a380b03df2489836cc78252b00f25e4cc85d4784a75d6fb1577a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 eb02aa1b77ac336e60befa43723c3a81aec1d580e0fcd72003c37c87a453df67
MD5 6700b926d5030019d7e22831fad66cdb
BLAKE2b-256 de342d0f3d0b1d8ce516016af7b3987a9cbeaab3bae1a6ab42ab242c62c3715d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a4a949be070a22ba3ac1c8dda1a5a6b0c9f2c256a9c20e65e38a8ed9e24680de
MD5 4681538c8d015687d6daa219f6683b2f
BLAKE2b-256 fd936af3fc9f0d6c1fb06aabebd2900d7b99a93e133121a346ab9f0c2dce559c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d6ff552106d684effc3943798751dc246979fd1fad01d0a3187c0711fbd9c88c
MD5 307ece25f93364f13e2e242d6c289f94
BLAKE2b-256 be895187769116ca15c2a3f482bf256a034eee31c42538b13e9ffa1c41d54866

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fb81167f7a02e9beb7ebb6fc9f673f35f88ee05c97c0162da2a148503f53d78a
MD5 7c339db238c1f7492b4fae9e5d413f21
BLAKE2b-256 005992dda35ed8b4197291a20ea8d0c60d3c5d331d0d1e5605637f3ff4e88522

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 51c84345ebe41b44ed6bdf3012ce91194a8af8ae0d83148046bd4e965d00c413
MD5 d08a0b514f0989d0f00b00ec284b58ba
BLAKE2b-256 c4036586ac773baddd73ceafc4b3252e5f25dbea9b516ec501403c7914c56dd1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fd9fb27679f37f54879772171d2739e329a8926f7a704130f30106557dfc776d
MD5 5c25267884a1590a0100d513e16e2444
BLAKE2b-256 23b85b3a3ad4451aaa8096e71555e1d8b68db86803df82a782d27a64594620c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 605822389e79f7ab7e7d8ab742aee1d5ed2376c85d9de4798a54bed693c35f4c
MD5 9f58c4d5f38fcbbafce0d0e900bfbaef
BLAKE2b-256 fbc98d5a40c1e5e595c4803e4e72b039416429504ffb256fafd1f156d7b91f74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b11f4ae5806c77753e6545cc01d92f3928a126543d8fd14c2112469cc69c1c10
MD5 242ba262b8c5c67c98b837a10fc03d8a
BLAKE2b-256 1441308abbf504e6de334120470814115493aa9d3fef284b69e9e6cf945e9715

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f91e736ca3fd673b4c860d797078bcc78486b46c2de3fb1fd9ee9698f964ad52
MD5 76bf3601cd3204e0b3f1ac46090c8a8f
BLAKE2b-256 8ec9e96f13d148224d3a8a828fbc423957aef2c298fd1c2386cc667a29080ec6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 40e0e16349ed89d6e142ad73b5279c04750f13c1c1fa95bf046bb0eb2094f242
MD5 37c6dd45855a128b03a33807516dc249
BLAKE2b-256 a75bd8ef570ad08b7a387177e023b1e02eedebca72dbf24f194ce12a1a3b8aff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 b02c026d14a6987aa93db0ab2b18d93b8b5078be7a0fd9482f00886b2abf4576
MD5 2424f3b7316e2ef1f887ba817d3187d8
BLAKE2b-256 f0e7f287fda46244121c832a25dcddfc0bba807b4639af647f87350a9c0eb9de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f87cdac0494ea95ee24b5286f0cef9950d0ee1879c0003e73defe31479fbc5eb
MD5 0137a1be2cd5f42cf80f6c32bb3f50c6
BLAKE2b-256 aca80c2177c1f0be7c74cd337b5d51f799c6229870a46cb003108c7c398f84db

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 063bfa01a5623d5c292f8a4152f462bccd4292bda7db3909579ac1a20d61151e
MD5 ab82ba4138edbfeb4f4980ea8dbbea5d
BLAKE2b-256 d361e6caf9b934df59e2758389a2073c593c25fb4d61252f5a6157b97b9d6c70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a47cc71647cbbb38e0fe66a5ade91de173f94d855a99bdd79e0dcbdba2082a1f
MD5 248a9703aea9a751757493d1747d8d39
BLAKE2b-256 4d675f6cbf2b1b3ff689014afc15fc437ff3bd8aa2e269b11357c29ff50c36ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 81f949049083e7a74f8825987f81b88cbd2d308400464c25d6c19a88c6a1e31c
MD5 923e92180a01874775decbb01815cd2d
BLAKE2b-256 26bb6d088931d1dc4e934abedd52eb22d9392b1c8dd6fb6a24edea103ca449dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a442701dfeacd338c8ba78e40be485bc5e2834b3f2e4e909adff85ad78fe92d6
MD5 819f929061cf77c68f42c33c162de5b7
BLAKE2b-256 522d3273b46d79b0fe47428154ff4be6ca918eadb51d78c61d136519c595fc8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4b81c0f1b675f1befad35d97eef739eaba9a0725b24f36704df8d089c4f1a2e0
MD5 24e7ebd0a99ab570c59a2bbcf4a6b812
BLAKE2b-256 e6dd95cce70128c61be7ece25d8b21a9be4e4d450f3fb26c80774b1ef151b770

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c87fa09e4d766e099096cac8bb2f3dbf07dbcb10cf2b63af7684f224a7d47981
MD5 f3c6282cb31c0a8f710d87c4892a8b32
BLAKE2b-256 f3585d4998eb234186a012a226b2fc80c9b725d839d2c0f8b98f881eac48ec5d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f9958851cbb9b9d6e5d0c0b307f42e2bad3381634d2a7136c5815cd373df6c3a
MD5 f0235736f4724790ce965a7d5ae5a7b0
BLAKE2b-256 8adb166d6055796766579f6d918457a36e13ed9ec5f71f870c43e7ce6787eaed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c449bc0b112c99329e17e3cf084d7ec14846374b07cf18b3b76662a0c12c4ec5
MD5 5245a45045f35e0d714ae687bdb1e9e9
BLAKE2b-256 d1cf5d2a8099c77ae00c0808192dbfe7f486d46d56948bca21eb799cc911c41a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 cdeeddcb23fbe18ad4ae49a717582d047ae7c87f0077c72c42dd29f6666b309f
MD5 2b40d50074d0ce11485fe2134c49e1c1
BLAKE2b-256 ab8be3f934c85e7ff35d10721a11d1777db0ab46fcfdb1e1cdf93e325321a473

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 01ed5029d3aeab4b8be4fbd0ca4f652646f50fb7fb66d4732547550ab21fa476
MD5 0a7cdae7c00aa694ecff6f78c54f50e8
BLAKE2b-256 d4b11a0615f50ab200472f0f312739de374b91351efbc4579fcc627766262987

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a3c8574bbccb845db2462a1541019e87a41f64abcc1602da94707e4954928676
MD5 01617f37cb4f9bd25d028222e3407793
BLAKE2b-256 3dd109aa820490b215ee83ab06ca166e3f608f3f8f138390e8e566b87c6ef072

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 904c6d1b98b9a381a58cbaf92e77e3d61e30f8ad982d7ddd9b44334ce57d8954
MD5 8f6de4e77dfeb5c8f329a432670af71d
BLAKE2b-256 70f941f116f977ebc8720a3191f93bbbfc71dc6c0eff6a35c05ca674e357da9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 22b3f301026937d94e6b5a6e36ed78e0a66dd27e0eae2d34f8726924edaa6e88
MD5 7df29dd50cdd880c3a6c824596ca2d81
BLAKE2b-256 2267282750c95e88301e5f52a5f893824839fd916a132f3a9d016f1b8f6a3bb7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c387fac315878cc1f05a361bc1fd0598d32d4c65fdda914627c84a96c1d4ed1f
MD5 75d13f849cf35acbc101b2714f746c4e
BLAKE2b-256 9d723b35db3bd19f0f2f3f4f0418b3e49ceab5650351d731db3fb411cfd47f83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 806423902285cd7cb1febe817dfb84004233a439349deb2ba35b87bb8bbe1997
MD5 ecbbc7e23c65d09c95353e74c63cb995
BLAKE2b-256 58015e9679cac19d7a1077ef74b2e92da60c94571664f434061fe589037f8fb5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev277-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f94acee8112fddfcae5c9eecccdd03c1cb0a8b98e4b71677318898ad65e37e48
MD5 8c4201bf131040654b5391335c23418a
BLAKE2b-256 bbb8a3979ba8b94744f57cf4b27cab9e935dd05666aff6f3d6d6c713796f20c9

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