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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymacOS 11.0+ ARM64

flashlight_text-0.0.3.dev285-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.dev285-pp38-pypy38_pp73-win_amd64.whl (578.0 kB view details)

Uploaded PyPyWindows x86-64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPyWindows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.6mWindows x86-64

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

File metadata

  • Download URL: flashlight-text-0.0.3.dev285.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.dev285.tar.gz
Algorithm Hash digest
SHA256 d22886f024adcd98ee451d6b7d0b9979fea14724d6e231a4d4e4890306b70608
MD5 204f913871a54a55a70a21fd6e12c55e
BLAKE2b-256 54c52c7211e52afc4f6647c71c16f87667b78654d970320a23d5ff702be46786

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 db1bee30465a9d3544ff9f3529507b39a3209b2ea009a6fbc1b24583ff99de7e
MD5 7e67b46a63d40d99fa1e55a55b848c33
BLAKE2b-256 6df23bc4f46058ec6c26932d53044dedceefedc3e38e9a6765a9390c32e87ddd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d20fa705c46bddddd1b2f874016e13c96edb8f9d49750d9e5cf053187eee1bf
MD5 6ece565ee54c04d058af8bd694b5be9f
BLAKE2b-256 fcec2990e5935a5b0f2945b5a8817d332b0a98d9c44e3f771ae75cbbc2947f9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e8388f0b4bebe7f62ea2672eefc54dd2a85bdc264433687a1dabf66f3226ec39
MD5 706d384e4b2d13d6b60d15b2a9930155
BLAKE2b-256 2c5e8ee23ff027d7cdaa0173466d78a3749dbe62758b2e108e0246acd2ac00b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 85a4ded6c9c22f3212797fb4e2b1f76f9bd0ba0dbfed618a54168c55465ecad8
MD5 9b33cdfe59e5f4f1aba1aab773ed0762
BLAKE2b-256 2c73a77b0a74b421b4d7a12e4a80465a7a2f03f593969353bbbf5454bc3a376f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 6f5afbeeb490a50a0a5c07589833e959a74b77a4b360e4979ed1afad42bd37a1
MD5 b66e216532228403597db5896ea99a6e
BLAKE2b-256 5678b8f83adcf473c074b89d69667a4ab9b095fa8ad38aa78cb6017345e172cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1f9a15f18d7d55a3b8c2880bebea496d7ba053848a4c3f618dfd2376cedcf536
MD5 3c9cd105abb89aa38a9d0d6ea06c6b8a
BLAKE2b-256 34b4752b3d279f84f1a34da39d320311b6c3b1df0119bb5f5b94ee84a9174d9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1799489ed2828b2e2ffc65ba3470ae3aa2dd1d1a96f9c12dfaf188c153cae24c
MD5 98e290b5a8ad51dbb008f72725595051
BLAKE2b-256 565af111592060bb6cd1cf1efbb9bafdee302551fb99d93b136adf4df0d2d7f1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8fac46d23c5285d180f55c32d0c4caa2b29404a15781d587a13fe68a73e13ce3
MD5 6dab4db8399e40369b6186e137939734
BLAKE2b-256 26c5fd476a9dc697b45f4faccd9f1a2ddae0df4db6da2bbfc3501c0fa97affee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 1a83f447ac3aa788b39aacb3014e6d084d41bde2917143c821f858d85fb47a72
MD5 36ea2e4c4dcd8352808b4edecd900a59
BLAKE2b-256 aa2340474ea10df204245532c3733a466d721701e23f2a1f7e30bdf8449ec6c2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e116e1edc14ea2fabc03d5d855f173affbc63400ffda3fa6f9356ca5d2a3694
MD5 7624ba73bb2fe3b1b69170879ca5c0db
BLAKE2b-256 bccc6c5804557d98046ce478b1f193facbdd01e2b3849e07bf205da005bb692d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4bde238def4e2580401e3bb516111ff31e8355d6f33e4ff77f0bf6aa19cfa092
MD5 e124ce348e4325ba448144930a9ab265
BLAKE2b-256 43edf77f80a8991e52102bd048172f11124ba2536e30dfd8dd03c6c1715b8edf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 36bee37e1f5f6363a35f0c3a7fdcbfc0ab24f1ba66a50ae9e5986cc62041948a
MD5 4ac3d7ae78014c61000fb5a8f61e8658
BLAKE2b-256 a82244395fe0153e6cd063c0a357410cba15992f424d1c0a6c829fa9092c4c76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 a93d26c386f40b9a73a3a0f85a5ca0005f64ba1ee6dc978139c06cae0a7cf246
MD5 3d56d580fbb2c04abd8f2c770eb63a83
BLAKE2b-256 047886de9b66bab942fef31ceb3ef9ad54770b4ffc50729b5581fa219de7cb0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02e1cf7f556ed1482beb3df4089a031b5f5f92e34b3341ccb5748436b2649718
MD5 d5efba8c76ec93b8c3e1cafbdc8b1b68
BLAKE2b-256 50eec9d4b20d46e36d58e444c0533131f1c47e83d25e9b1a159d6c56bdab14af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5ca023ed1b8929887bc1e11c6cacbc3a6b9b49154792a9c2e05955eb39461b77
MD5 a29b3ea97419325f3e8bf6406d9bc06b
BLAKE2b-256 2a9c9f837c10ba455077f37a42518821af3587eb7960a029ce0ab53546448c55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 89c83102c0f90df81f640f8ab39dc1d5854ca2248cf4e1d8b32e8f0a9cbec204
MD5 850d17728912fde396aa381f9cc21332
BLAKE2b-256 fd5a266c3406ca84ca467c73656a0d6594c43936f7464030c17ee0baf3b76fae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 3ffe28d2ddfccd9d0986f859c0eb6179f3d33e7b8399050bd5b1876717e891dc
MD5 c99767a4c86e6cc11f2174f9bc6ced0f
BLAKE2b-256 a3d0f84b30f8aee3f8c72b40b76bb72b60223a16110d48001926026c5741e216

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 13af1510bf65518a8505cf25527244f4c09be6f1c27caebc2719fe3012604b74
MD5 5319633b07fea4e029f753cfee1a135f
BLAKE2b-256 ddba7bc2df27d38e531da200fb72487653f0266cff529087bfee6ed8d0e1dcc7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4af28694b855cf007e431865b62070a5a9f64f4b3e95efdd45f9e518545a58a1
MD5 600129f9dc55ddb989ca2ee37bea50b0
BLAKE2b-256 2568ae14030bcb13710c66c2b95bacccce4d2cb87753f46d31bd526b19e0c1c3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1d3c613a05f2f54a0818f55a751356a4d078a64ef49658773b585abfdb62ce12
MD5 952f5df4cd3860106a2af491f3cbf257
BLAKE2b-256 af2457e476f29c4995c821711246899fdca2af27c71071f76596c8e280d08088

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a6857817a94d64e3088bd102ed4ec0e8b602c4ec740cf742475bd24b1debd3d7
MD5 e2beb1e4d3d9658d098eaf7d2844476d
BLAKE2b-256 3ee8cc3a08585188fd8921a41af1c4938f4431ac9cd5caa8c0f807a3543bf9ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 48e8f50419a9734080c209ec343dcb1f2c2adb0857cba8a0657eba17f0739629
MD5 6eb2400308fe6799fdc1714557cee9f9
BLAKE2b-256 28ea6a854b98be29af43d926c5c28006bbf36452ff93bcfed06e3e44921577cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 384b910dcfadd2e6f0be4b0aca257728d7ed84fc165f3976be68b5ff5b0f77fa
MD5 22556588cc2a6ea4d15b3658655dafda
BLAKE2b-256 eb6c97195f5389f732d76649a0f9ecb49d57469e35b1bf998d669b347e5417f4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0214bb648ccbd1ce36183884dc5c0378821d6d82a6078d04cf33e16768fcaab9
MD5 d07e3f9c32907165df0950d9795d3bea
BLAKE2b-256 11349b2e6e616620ac6a3e974260cd31467788b651762175caafb14d9c221887

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a395b2ad94d8abd5b19d7e27b9745ec7ba2921d408dbd17d6c61e04e3fcc30d7
MD5 69ea71de6e2aa757791e0beeea89b14c
BLAKE2b-256 abf4313d497e88bf97f512ae62b0171bd46fdb16f05a9830c4ca42024d1b896c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1c34bad556646a5c67089a413c1b583674b0add7dcd9e79a6e14cdb6a11b3c37
MD5 74b87c2d7df0f4f371403ac3ac8c1f73
BLAKE2b-256 af60d6eea395d687217838220afcab4bd96efd10bae281adaecd61cecfac9221

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 4fb415c0a4d3a6896120d88596b7bc93cefabd3f6e38b0a07a99ff3ee6c430f3
MD5 c39d82f23cf619460dc7158dad3f908b
BLAKE2b-256 8a10fbe5d2336d3e245ffffe2ba2a36348a2c535cec107beb0688aae87b9e008

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5f3ff6bd5014842d6b06c0580d609664c17986d665ea86c3774e1e603f6ee554
MD5 edcb0244e41ece7c45e636ecf8dc31df
BLAKE2b-256 457c181d6bf24d7cdaaf6b14fd25c0b9943b7a8f803d44a3b435a2d1ec1dd19f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 79c488f2a99385f6e64345eda1646527373ef8ba1bde5f73476875060d96eb2b
MD5 0c7e05ba5f3de1b90d6fb858bbaf1f72
BLAKE2b-256 c5fbf911af229796cf6255140997bae5553b5147903fe3262f2683afa7902f52

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3e16a448089bd5cfec72b22d33bd8a9547879323b770fac70553e463aacf4b45
MD5 289dc73a9daa571dfce65829a85d80d5
BLAKE2b-256 ca4cac610be3043a886f7aa48799afabec9c21d0e31a6486301b055cc323c179

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a07a60bd97e43a9be1a619aa1048b09c877a4559ff89ee129db1295ce69c39c1
MD5 19934073cdd8e844eed1b2054f996e28
BLAKE2b-256 bada3f0e1ba51d2817dc18942403b1f5a846814397c283989f9e99c1a60f4fa7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 53e44fadcfed865c7735c770f157f2f3ab08c4ec46139b03290947abc8310086
MD5 15b085ac69dd599233b85ad936ddbd39
BLAKE2b-256 bd39d140bbb41e6f9f6bc4eff13f8e8426fb141ab7ea09d202eabf2ce66753de

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c4593681ed49ebf81150ba8f45f88c8692f31e1d4685c655eff241174c2f3017
MD5 4387e496808b09307195286fb46141b4
BLAKE2b-256 3614ce94271b2b582c634a76ba5962e8a4d276dac3e83e4f31a7478986b56c26

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f71bd201b70cd176d88a7bac43a4dcbe42a4d6e555e9356545b7654231cf4a44
MD5 0ba87e2c5da20f6a5248ec44ff84c6ad
BLAKE2b-256 a52fcf22c67cfe2fe64d082be613c78ac70f27687dd8ea742dde78d51d7d9878

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f29313c44c5fcc3795a6606aa0e9c07e361381dac25ccf89675ba0fa67a701bd
MD5 502794838264cfa59751f4b3033a5011
BLAKE2b-256 0bfcddde208f6abb8d810faf21f0e4bdda3be4195decfa3c03451fe29a2150c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 803ee796313c0362622ce6008566bce1986a55fa3f4076322ef4e9be57c517d3
MD5 7a4ce1994d0b87b9b2c444b29c0fff82
BLAKE2b-256 72facd580abbde27dbb039236dd395355881d7a7cf4774aeb5db7d723d9bfe57

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 038d17f57a95e6e22b055a89882e84d748ff42771572a58e21ce44e36c4d444d
MD5 3cc08b45ef3a669b292bda8ca5175619
BLAKE2b-256 c42a5c00d0b9a704ba970f1dc3ff77f25dd04d04d65a398a93c51ade5fa9be24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ca028eb600d233a10d03ac16f5517801ce6e2fd9ad74bc2992057f768d4a27ba
MD5 c20989f3ba18d690aa61f1a8b67f7521
BLAKE2b-256 5cb85cfb7f50c7991397ed15194a14be6f3539cec308715a21c0a6e689c058ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev285-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3c63f032dc7bba8d597bb921031c35f60b9316000f33aed4936ef5d9b5cf3381
MD5 64000f50c62e58f66aa44dc0ee860ca5
BLAKE2b-256 c678544d9b91e0914b225154ff406d719d56639ea732f413f0bd08955e912a01

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