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.16, 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.dev275.tar.gz (65.8 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.dev275-pp39-pypy39_pp73-win_amd64.whl (616.6 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev275-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (993.1 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-pp38-pypy38_pp73-win_amd64.whl (616.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev275-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (993.2 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-pp37-pypy37_pp73-win_amd64.whl (616.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev275-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (993.0 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp311-cp311-win_amd64.whl (617.3 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp311-cp311-macosx_10_9_x86_64.whl (993.2 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp310-cp310-win_amd64.whl (617.6 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp310-cp310-macosx_10_9_x86_64.whl (993.3 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp39-cp39-win_amd64.whl (617.9 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp39-cp39-macosx_10_9_x86_64.whl (993.7 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp38-cp38-win_amd64.whl (617.2 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp38-cp38-macosx_10_9_x86_64.whl (993.1 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp37-cp37m-win_amd64.whl (615.8 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp37-cp37m-macosx_10_9_x86_64.whl (987.4 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.2.dev275-cp36-cp36m-win_amd64.whl (615.7 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.2.dev275-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.dev275-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.dev275-cp36-cp36m-macosx_10_9_x86_64.whl (987.5 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: flashlight-text-0.0.2.dev275.tar.gz
  • Upload date:
  • Size: 65.8 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.dev275.tar.gz
Algorithm Hash digest
SHA256 888ce4aefe5ddf2d18dd7391bf207d0c2dfec10760cf0d37d13fc59528ec9240
MD5 0191b86c1f98b6b6a136c47838eac83e
BLAKE2b-256 72786ed02b4196cef0d94820b2b2b1338032f173052f9b8d586c5859df323500

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 035cdbcf3de25cb3aa1e1ea88f265d5f209954f12decaf361afcf68172a69b4f
MD5 b83cc67dbe5614e2a6569a34dfbe6a65
BLAKE2b-256 98709cb798e8240fd3c62163d671f00a5112e3240ad056ea852ff7b86161371c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7900c432aa1f1d906f09cf0af89ff36697c3e18fddece85a2c54c1f49f2af5b8
MD5 6fc694b6c81ab8f40c4ef3c28b43a919
BLAKE2b-256 4489208ef29e141b287a44dfb20bc533e7d2934bd72a3f736c5acfa70f3f1ea3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c15d12cf95a183907cd1d63eb3380f95da89f2280ed02d3be93fe77437eac1be
MD5 662e27bcd9eda2f9d97d7054a1e8da6e
BLAKE2b-256 fad6808cd425fc0dd3e9092f8bcae842bbd56861079f9ccd291a8412e7409aad

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 2b6d1ae70d8a28478b6b87dfd1bf43aa50f44ffaba79961825e1debfe627f8ab
MD5 7c444d5319231e715c67cfe88365b4d7
BLAKE2b-256 e1cb4fb0be810a772f6da571eb2ba5f6d77656f4c6833aa6a0aa80e270570f3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fee8c943ea5d724dc0423dbcf320915f4b102257bd2069b3edadf4966b991b40
MD5 b5b1a9bf23d150675d388d8d570bba7d
BLAKE2b-256 6a01e7627f6488eb35d7c4cfc12f43fc5dc5c33185d538eca60409344f19ce8a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 43e9dcdbdc8fcbcfff11cd14f9b683d41f78930668d7d40e12531f73328e2f6f
MD5 4e5913e8ccc3e62726ae061f5333ffc9
BLAKE2b-256 84f05b692d24e984b265a976f9f322bdcc0f26769b339531f08ae5b0bac2be03

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 58b520e13f8219f8c91f5e53ca7f3a3584d0862d1ff43f39f6f4aa47bc0740c7
MD5 e1669fed66ba0c1fab3a29901ffba59b
BLAKE2b-256 554a9384785923258012d713da58febe4ce2a9d1525502fb3af4fa3b768e19b8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4c3f1503a2c685c62d24f98cf7938828465b7a70bc9d1cd85f2daf4f87982e71
MD5 2a38e112c1a1eaeaf2d1f0b731af15df
BLAKE2b-256 3efcf8bd28bd92b4fc135591567079b01e2398f7ef1c3f0244dd4bb301a6c891

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 27f80fb2f10e81c5747fdfb716d71a4d1a1f5b0408a6ab885eeb4fbb8e0137df
MD5 761a8391e0a9a29c6c59e87084cdb642
BLAKE2b-256 5a3d0bce0dc59b0ce23640b1e2c0da757846196f7a3f66fd71090d858182e5ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 65a865cd9967eeb433eed34888f434cddf225879ae70ede69c7d5ac83877cdd1
MD5 5b520de54c3633da68c5a2f122ab4616
BLAKE2b-256 3b67d22a3b618333a8245aae251c10d2718ad438868c1ab193a6b4633e872396

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 741302f5d6e908696eda2a39e3f819ab44abc90d27875dcbd1af502e6d35fb96
MD5 369eb3c214a7a75480b8eb8c313e3e8f
BLAKE2b-256 3228742870338ef186dbffa53fe799d105e5c3b270e6f3c332a4e3b77593521a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 16f3209e006a5f3550ceaac4e26960a6a1ab4c4aa7d7b0f427a00ef0978ec0bb
MD5 dcdf4ff7a0911ed063ad680b466aef53
BLAKE2b-256 bffca21b4a30ff6de940ccbc216a568aef86e70ac3396611f6dc489ecc046cf0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d71dcf465e133ad15b1ab70f31be8f8cca1c95360918f978aa1713e41640ee1c
MD5 097ad34ed19c226e3429a6aad53bb5ad
BLAKE2b-256 202c2a7d9b965d9d042e052d757f68e14cc74b4e1fa40b6ebafc37b68c85d1e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 dbea60eaeb2437dde4cf9f3d895f94f7bd3a3eb8a9656b35529cd232ac787e82
MD5 f0ef1a2dbebc00f813736a30e6f5917a
BLAKE2b-256 d19886df0f4dfaed21cd4b26112bc7d2b84677ed8c1a5db029a691b4dc8531a3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 05c741ccf9d851a74c9540e73821d93f1ff13a31051f35ee099e69ac71531a30
MD5 f8e5b4cce9d096e90d26173c9e071dfc
BLAKE2b-256 b2348ba040f1e32529ee92f48d236599e62fcd3e86813073c707220ac74f0738

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 befe86c4f3f384e34001953d9a5a4ff57cc298001ea18d6934f6feddea0eb88d
MD5 a8b3b64d19d2ffb4540eb91eba16189c
BLAKE2b-256 98a51fc4ff9d25c6f1cf1e0b2675bcfb8a7de36d05c2ab7c714542194db931f9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e6835e8548cf01878e2dc987929cf4a80525b62846fcfd7f7eb65daf0b396366
MD5 0f6bbb8fd114f7d5417391b39edea3c8
BLAKE2b-256 731c20e9e62c13768bba8e8c32379125a0e06d57ba81333c5076558693e4fa3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a789cb76246d7e52255d5701c45bd5d64509c544c37e28aa24f45d2aed0a9fbb
MD5 1ac3b0622a4befc3274c302ddf7360a1
BLAKE2b-256 70fe2d2ade45c486627ace1d675a0c19bc0a827fc40942df9ad40be70e76ecdd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e30e47e5894fd904b8ba2b03edaf7dcd8962e38ed5b5c935314e9e943eb85500
MD5 f019e0abbb699c686eec8369a6a5fc2a
BLAKE2b-256 bacbdc3b207a0505604491b8926c4602526ae08c5001ba1cd54dac74b34d4f1d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3f4f2ebacb66ab18f576a66b416b8bc7eb2d5096d00730d5287e01e1f3891e4c
MD5 0d5f0f37a4b59009af3148e99f4359dd
BLAKE2b-256 a429cfb421b5b7ee44912116f1d2f912337f11300248bc080e266fb9155555fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0e478023422ef5721cef643f435ba1b6f2096c7267d3ac34d108dfb4115ad225
MD5 7ecfb4b2487d5666cba42a9fb6edc0b4
BLAKE2b-256 2d0a0fe5a6f17e085ad6c384d9bcea67ddf5625517c8240626d85169e4217ed4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b4572b1f20bca40a22773a6d39b72c3fe621d0d1525e8b3816d6b11615766087
MD5 f0b28e37b6b29c39e9a159ae7fc00470
BLAKE2b-256 06d67629bc5b2e6e1bc2eb3ab454b221f73987987659e92b9a649f64b6806718

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 32e22aeff12b616f2013019ea9acab980e961977495acd5a748d8b2e5349b85a
MD5 b9f119b5cf2ee5387fd66290c69e15b5
BLAKE2b-256 f23121ad57bf2c611e7d6796eb7bb5249f679eae6a98f7f63f48f7b76eace329

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 000468c36ed1986cc5fa3e198f3191713c6b12e9ba8365ee12cea32f4a73797c
MD5 674b2afc50d8e9fc20bbf6f466f10d57
BLAKE2b-256 9b07e0dc282798ceabf516436dc8ff5b21bd02a4f113a7c9664b896d78875a37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2aedefe90d5229ce6d4c751fd167c8ad359c566c2a3a05b88197099d52ac0d9d
MD5 aa6ac350d0e9c2d9c36e411e905177c2
BLAKE2b-256 2e87a2d284d34f084c78fdf178248de1ca40fd6b5867b32a9b81b632d7d06d4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3cdec5fddf3932a457204a9c5b5ee3a0db15d7accd3bafc1c45844db24d4909c
MD5 6ec926483ac39fc8558571963851d087
BLAKE2b-256 d80878565149ad960ad16b7cd53d8633d6c9d8a2bb4128ca16eae146decdebac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 91cc9897722341fd8d27ff9941348a93e8da5b4012822d02c9a3d05d43dbb06e
MD5 93c8671b04c4de6d8eb0ea2d49930fba
BLAKE2b-256 12b4a5e92f40746cdaef4e789a36a717655b0be2893a333a78277702b84fe551

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d57ff214ba06ac847222fb0ad3e224bf91ac1e4c181e73ef40b6cc4d8b6ed561
MD5 ce2735425d80c9cf81a300362759616c
BLAKE2b-256 76b37b8f169d2131f03b0c3c8070c5b1aa987bc51f015c4864b089a863c05fd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 585bb9027564d11932ef59a4a35638710e37c861a7bc319616f2ce1535051452
MD5 2a4c9454c80b144914ecfb621f59d251
BLAKE2b-256 243fbdc3c86a3c74830c256cfcd778eb3191b0e930359dc30c8751ea76cd3f7c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 3a4aa07280c7e8d502d0bf01d210259ba6f1263bff9dc6f3f2d21866e8bb24bf
MD5 e74d8ae218faa0fed07974df0e16f274
BLAKE2b-256 a612839cfe420480e10181527322c8efdfcf18b3c6742e7d6c44e966c8c73fd2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e4e1090473f6d876044f801d2cb6fd1c84c78d8877c7bb7c183ebab7aba46834
MD5 66c9cc011b4834ffbd0b156d2a9a10d6
BLAKE2b-256 510630c53c1df2d1546b3aa8d85fd55736771727fcb68bcb43a400d686758cc4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0ca4de62b9a4e8eba30b8228843b5793d89a2789c08dabeeba442071b105f2e4
MD5 fc4a95430873f6c391608545a3b48e84
BLAKE2b-256 a1b914d727b347f0abb8d73db93b29db01553ceecbcd02a1c6c4fad051bfce8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev275-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6aebdf1c1961d480e06d5d6b0443380b5a0787ab9882120619539dc1d7a04b3c
MD5 fd56eece295300c7a9bc9b719e5cbfbf
BLAKE2b-256 8364c091ba55a7d6b9901f8d9d083560a567ae83240537365036ae52dd4dd349

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