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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPyWindows x86-64

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

Uploaded PyPymacOS 11.0+ ARM64

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

Uploaded PyPyWindows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 11.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 11.0+ ARM64

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

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 11.0+ ARM64

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

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.6mWindows x86-64

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

File metadata

  • Download URL: flashlight-text-0.0.3.dev280.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.3.dev280.tar.gz
Algorithm Hash digest
SHA256 793785bb1588c7ef14fa59ece678a4403b1e53cd3a7f3d4bc7cf117c1129d62c
MD5 19c25759114d339cdb9a6f86c192e49b
BLAKE2b-256 a5a0cd5cc1768b8153282c137a5fcf4f09056b0e1084e3abbf647e0fc8137bc8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 251ad8f4e8ddd96bb197e701a97dcb78983d7452fa54d040199a0d8c664300ce
MD5 793495ab5377877e54752321267011c1
BLAKE2b-256 528c0ac0c927b870fa9b3a6dd958c1d97294b317b574eade6ec9fe9cf146b0f6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a9ade29749ace7939b819ce07b200f3fa693435dbe4a7fe8ef7a393a8323966d
MD5 945aa57b3fd438012173e5ca3d26a4fa
BLAKE2b-256 4f48d3b3ec256be16bcec72f817898f2e897c4ba9499ab3495c5555d7c47c857

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8313e7dd5446c7114574daf1f272095cee69ab3c78dbbbdfb0b035001903b85f
MD5 5e78de3130bcfd6da589a59613d372a0
BLAKE2b-256 703bdb6f320fa91569a81b0e73491fc068eb57463033cb4cb1df324633589b38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a3200aba1fc67d238868ccac21b29588f7e0fda4b53b7c78014aec9f37adfa06
MD5 a9d8c13520fb5282bdfb89790bcb2fff
BLAKE2b-256 8308e4583eaa60b14f06d02151108ffb1e194ed15c76df9012c65960c4b8e163

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 909561c50ab581b6eef6ab3249bb830f7da0bbc5294b65565847a564a3326cf4
MD5 ab059be86592a16e74b5eed0673dd772
BLAKE2b-256 ce9057402d1107f6ea5dc52901dd711a67244797817f3263c97894ea2a0d2b16

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b79aefef089870d51c1ebf50a736408665cbbb46d65abb349b66e427b5d7fb61
MD5 74cdf6df300b82e08025fae91c35ec8f
BLAKE2b-256 04a8fa47de9a762fbf87f9672663d0d96b281b8fb0b717ec166854dc4277fafc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 25e3b9507c99fd95dc432b8b05696a6be736f50af33708aa3e8ea74702c86154
MD5 16b6eb0cb64616cdeb9e048cf6c8b1fc
BLAKE2b-256 a74f3e03e9a4091b94e31f27f3599a5fff00f302a616ca52464aceff6537f0af

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 253985f1c161bc50af1aa083ee9f56eb67b5dee04b6c8fd7b0635dab84388c0b
MD5 6f2585d3584d0e2358806830ed0900a8
BLAKE2b-256 1278abef9b58ab4f3919d957b7a858ad95f943404ea623425db25030cc8b28c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 347c105858a957c861bef61f36a6489ee1443530bec14591a91f78c466283a36
MD5 a7ed86665b7e9a23db230e8961afea79
BLAKE2b-256 2693c55a79b98d37006a4a5fe748df4d753d57a278db78d214d9008057bfd965

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0707d6f9bf3d620bb7bffc904f64bec604fae57032e4cb99468531b38197859d
MD5 f29938d559d63e7950e229c0dba25514
BLAKE2b-256 86be5f3016ab0fac39bd9220dbe577245671de9cde8556c049ef10ca0b14cac9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 12daa0cc347cb5ed8487f5d2640c362b7419bec789f8118244013935b81d1ea6
MD5 4ac6801706d6490c34201eda7e6c30ea
BLAKE2b-256 01b03dd8b3780353165b2f6c94539f288ca2f9c7174655774219be99103e6ef4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b32546a005ee61a7b3515165146727606cb03f55544ccc6ec5f8e26694d4ecf1
MD5 a0f76ec7873fa98c25155814df07e13c
BLAKE2b-256 b85ace11a078860caf08df5c988ae8f66bade5b1d1072f447755fa3826a6cd21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c3f9ea75fcbe982e09d7c2bcbd0590f6ca9b94fcf61868edce6a896ff18e1f9f
MD5 7c97e6811b57b3f1d23f257e4776e73b
BLAKE2b-256 1170e55195321cf1842a791e2bf89e9c8c37401847e77aeca62d6495c50460e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 48d192b806baea6a5ea4ed12c1072c26036d1c2363712fa58dbe303df48feadf
MD5 4b5af4a8ce994c99e310eb1be4828229
BLAKE2b-256 b9343ad3be05fde9633291940a68c27104db3dc4de3d35c080f6ed03ff260478

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9d92c41cf83c3b72d61f38246b73560fc771f8b1348ff00c988fa547511710e1
MD5 64d05f606a1125d6da61e20ceb59bb4c
BLAKE2b-256 a6194733d189f396730194bc5f8fe430ce1f1d88b8ef7bf6cedb64bbe17c3acf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 be90b354474743bfbb4deb17eb7281b61ec2815b0c204aac85449aa617894474
MD5 8eb0111449bbfab8e1ffd6eefbcb9a52
BLAKE2b-256 c4ef2d1be1b7ac663c8572b6e5b26b6fb36104f296638a809da15e0b90f0d8fb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 66872a7a4b1d6dd195fe918d83ff362fb45d3cfa83f1f3016efdd2a6868dcecf
MD5 cad8aff0efeb0409ce27bad754780d63
BLAKE2b-256 56ad54c99a5d69be2444cdf7b64bcd021d0de2c38bf994cad990dd32602332eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f21802eed7ad360e917156f7158c7953205a99d16c9bda97e240b0e092283147
MD5 7a5cd8e3817d13886cdfec8ce966794a
BLAKE2b-256 97f53c4a30195c9723ebff6653bdd64f69a1b291411b4c9a6c1c2c5bc04adbf8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4683c39aae7a337cf91d8286bf91d96647d2aa6a7c6ab15fcead92fc93882ea
MD5 4919802b346a9bf1ecda68a727ff2efb
BLAKE2b-256 65eac35c52bbbff70cf417361594ed478a05c3928fe854091c316f1cc5554e07

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a1520389bc8670304fd55572c8f49b652a4693d4fab2ab6ea67305f1cf16d003
MD5 6105cb4a9a22d1a2a25bbd6704c7ad3f
BLAKE2b-256 7067064b576f0d8c5e47d05c511e4027d8678c3d8ceede3d2831778fae700563

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 41646319987b51e74f2e231f3ce38d9321faa2b9afd67331de567e439c7d7d6a
MD5 e966db0f774018a05c7c5023f962b6f6
BLAKE2b-256 7da8ac9f25aa9292a46f1eb3ab2f1f8d4f150ef708d37617ff409c27114f3998

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7838be725d9f22ad8ba558d8cd3349c8bcf4016071c3194b4ddb047a5885f0af
MD5 13e96b95d4116f68230e86b141bcef9e
BLAKE2b-256 5b224ab668a210165391c42d248ade68e871bcc7a2549a002b952ceb83c25346

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 76014c8421b115a8b3328c5d107deba546d004a7baa5b7e4a48e0aee93c0778e
MD5 dc1174b4846a1658681ff243384d3b28
BLAKE2b-256 4c9651d0f2863877c29a0ec6f48cdb07c4c5b336ad3ce012044ba08a91fee83e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 546cd10559bc7462e7cfbff8c4ca37c0b46bcf7afe78d990c2d4dee7658f596e
MD5 e647d4f99508e301782fe7a58e6fbdc1
BLAKE2b-256 75bac432adcffe236f59b28d6bab8e0d2d328cfa737222fd9dfc86e9d5fa22c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37f66d2804737394a5c0171a49051f5f01545d02fd3f7818912768cca6a987f7
MD5 49135fb29180a1fc70a8ea94e5c31d75
BLAKE2b-256 09dcd73b900af9685e925757e55039d6f279ebb8a2acdbb9b671add1be497a9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 08d420ad447e23e1bfb516f223a124b3d2b5c9b32c1b202e3dc29dcc05dead5a
MD5 a8a6a4aada6925654a18a9ab74859666
BLAKE2b-256 0cebfc16f9358a49f555f1018189b835e48f0d12218f59bce34b0e7feed0e9ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 9632388b148c6802401d7fa83b199ee6f695a962e8781ad1d8cd4172bff82b86
MD5 81b55e16178b8ea2943db9ef15a741c8
BLAKE2b-256 7ce0a8e2e864c6635482f479dd60fe4e2f2a3084a92ac5e6646bf70f96a9eb29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2aa95d25ba4451551f78f8c6c2d6f3372574e39c760e6e372cf1dc936c975079
MD5 516a53bbaab5bab75a7e3d8b69d79300
BLAKE2b-256 9f5f454d8e1b6d52bc32c04361e2a21efc27905a62302415f8b1c33e0d309c1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dced0522b4a2b7cfc0efef5368f1be7aee770e79f751cf66a5c445dd983e93fb
MD5 c1a7d34fb48aa09c38d3f7d0a5d8ee71
BLAKE2b-256 a96e47fcff43599e7d48a27f0b8a4c709714affcbe8ce19363d3af2d5c1a75d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b4282fb53758fa9ef57e3282b6045fa3b33c4584b2840dffd63a350e499cd02
MD5 29a85122b21a8bd30fb18f6cf1ce7390
BLAKE2b-256 bdaf1a15f3593982ea9b76523e1de64deb5f9402d703f47369324d1128d6026f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 422268eaeb9d4b09a908be26e667e78b5b456fdfb4a95199162c7649ac639408
MD5 e4f55b449a54fcedf6bb071e49a4fb89
BLAKE2b-256 aa078bf87fd3b28dce0b77b9b3ab122f92dc3bfd8631243955961f377ce5813a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 094211c8f1e963fe77f211175fd32277c148f1503dbe96aca91146ee490bac5c
MD5 9c2494789fdd063383e0593627c79aca
BLAKE2b-256 88f7e2d656dc9d60be38c5df5e0ca9f9797684b0c5f61812bbaa80c7236d1155

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 eb3dc660df17a14dd3601914877c9e3aaf466cf6de7c551a945f301e77cff8d5
MD5 798aef3cae94824b679f6ff7d0947213
BLAKE2b-256 0d8fd0088565b2cab6580729c5427b28cd5891b0032fee91db9c6fead1f3fc61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ff6ec67009af4c2a723c42a9154dc60a997a79ed4338e3a98cddd346b4c3345
MD5 235d3c16bb84116e33aabb6917a27b50
BLAKE2b-256 76d8bcf4246ccda6404c9a54a74b135ca0b9f77ae2ec162df2bb51dbf6e7f4a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 74c6fd9bce9e11e5b2f3111d773f55dddf4fc15aaa589778d1b3c812ee4d99c7
MD5 2c58782aac08fb5fe3c05b503d7e0213
BLAKE2b-256 c2285e21e24ca78e58618ff649667bb77203509f6047efffb9e1d3e7f69dfd18

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 b8a9e3961f85ba77201abfc054a6f7ca221e6320e5edbf68b3820259616e69ea
MD5 db03160dd7337dd2223d2222ef4d69d6
BLAKE2b-256 4f20b08a8b4c506a1840620d380bdf2692e548f08df60104c2ec9c41b737d115

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3e5754fc0fa88ecd405082dc3e5f0ee44dcf13b31b5e9e764bd1769c8d00e721
MD5 ff2c369ec32346aa09f92c7e408daddd
BLAKE2b-256 2ec47dd165045dee2cef68838e24ce93e43dcfb4059c784d8063b09349f2dbed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 573f3507a697903243382eb78ba32a4a076b6dd0b81f4aaf48dc5974f85d1149
MD5 b33f6ff23e027f560b42bd131ac68bbf
BLAKE2b-256 f1377fd79a52494a8a54febb0997fce605d4508a080e56c1e3ff1a83258b3b69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.3.dev280-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 17a9c8b32ac94162694ffcd8843e1d7b4184d9f324549f83fa60f7c686b482bb
MD5 e01b588aa6abcfc788991c11b7fd8bf4
BLAKE2b-256 987f76e98e35c2ff47d93b5b1392a73c8c3ed16518c2b122541c30245c62d24a

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