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.dev273.tar.gz (65.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.2.dev273-pp39-pypy39_pp73-win_amd64.whl (615.4 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev273-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (990.3 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-pp38-pypy38_pp73-win_amd64.whl (615.3 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev273-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (990.5 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-pp37-pypy37_pp73-win_amd64.whl (615.2 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.2.dev273-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (990.3 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp311-cp311-win_amd64.whl (616.1 kB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp310-cp310-win_amd64.whl (616.4 kB view details)

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp39-cp39-win_amd64.whl (616.7 kB view details)

Uploaded CPython 3.9Windows x86-64

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

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp38-cp38-win_amd64.whl (616.1 kB view details)

Uploaded CPython 3.8Windows x86-64

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

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp37-cp37m-win_amd64.whl (614.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

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

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.2.dev273-cp36-cp36m-win_amd64.whl (614.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

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

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: flashlight-text-0.0.2.dev273.tar.gz
  • Upload date:
  • Size: 65.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.2.dev273.tar.gz
Algorithm Hash digest
SHA256 a36293a145528225287eb5f858858220c7e0fe886cf7ac2fefe51469bcb115f6
MD5 25cd043715552f5510f6aacf86333383
BLAKE2b-256 9ff040f454d9ab6691d1e480745767720502b62ed4f878d2ba324131728fc5cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 c325aecbb4ea075e18f308326e757e40de73d2c14612598577cf5a13a64daa49
MD5 a0559807566370a4673b360e7aac3ffc
BLAKE2b-256 15120f09c6f12d82c3533f142495c723a47f33bce9522a8c1ca516eaf26c78c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e9b939f36494329b2309e9b3684369c770cf6d44951014e2f0ccb0e5206fa82a
MD5 4c8c2773d344e3b4f60df3a6de995bb5
BLAKE2b-256 a4bb6b9a01328d03bb6b98bccf017b663de821aca9d03a9ab063edf78364cf5f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a2a5e66fdfc08303b03b42e039fd8c3959508d5bdffe2055d7459e85acde66ea
MD5 f86a61fcf120d1cd2fe57482a72b3128
BLAKE2b-256 8df08194cd829b23c479b115f68f746f7b78ed92032284ff97d216f56294e3bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 f899539b714f70ca42256eae7ffd2718fc340c6e18f68fc0dbb6018a868cdf07
MD5 6a64ac76b0e9861db22dc1b99ae7e302
BLAKE2b-256 a40c5cc3690d6d2e74a94a1b6fe26735e6ef50e4bc83cece9c9f787ad7477b25

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4496899599f76400e20655e6e310ac783a626b691cf825f099c4d9c26f4d70d
MD5 c2c70d21159dad22bb3bef71d917b4e1
BLAKE2b-256 dab2b7f717f135c6bff9b8b2dc4516778176709a7538302eb4775cae337fca15

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aaa679599a54de4c6ce2a7eb1af5a39c5483980126e598feb1b11caa1f7d453d
MD5 6bb543cfefef75efe0c3850bdffdaa94
BLAKE2b-256 e0b743ffce1256f822574e62998ad0de84e5fac79a8cf1676ed051b077d67284

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 e37e7aa80244b455748803d132280488442863dffc74bef0ca96f880f32fb5a8
MD5 33772af2f06f734e35bca09402113e4b
BLAKE2b-256 252c9ea3c032a2ec2d3fe814ed72f05ba2ee51e9f0b112a11a86f2af73a2e043

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9e81b5553d1ad528946dccf57fb51307dcf47f31c9a4ac4e2cf641f1a50317c4
MD5 52e82ed4731856b1c4f94f51f5821cff
BLAKE2b-256 500a68da9850fd904024b1eb95667ecb96868fa135fd746e91ad2a4c200f2eac

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 464c47dfda5cba3b718f98e4e951bd0e661220865b5e3100c64c2d91136c990d
MD5 983eb19cfe138ad435edc1737d58bbce
BLAKE2b-256 018a068e6dcd9f347785db0cacb16f8e4682a6104e6b0a7674c5143cc3f586cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7c2d53a48979045a8990bc0b54a7ba6e7c5893b6cbec0ec21c1481c8309d7a00
MD5 b859633310a1225e4295e74b9e7878d2
BLAKE2b-256 05ba293b2506eb597fac5de2eff91037484ebfdcd120a7e36029f8ddbd432b9c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5d5cb090811715ecf3fa1942e5f0b050ad8ce8672f9ba7d9cea7fcd38b5185ca
MD5 275e68b2c4b1abad8a410cbc35c0be9a
BLAKE2b-256 b07566c1ace6b16250f74f9476abb1ac3fa421409cd4960c7f9b9d95a32995d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cc803fd73e9d92b5ccfafab121986c57d3a210c0f3d4c61e05683c494d0f41fb
MD5 6470bba15227bd9cbfd25a95d79d6202
BLAKE2b-256 9eb73c907b9ef4b452a6d78fcbcf515dc117f2dee45f5506f483b14fc7bc69dc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cf6725aff0e4bad5ffe6bc6bdd6d35495e1733b6c6e4eac31fa2e01a08b1b8e1
MD5 cb57aa66d87f6d0c8701cb895b7d42b5
BLAKE2b-256 da2166370d067ce4d57b32410aad1df168c1d26b36103991bf759fdab4c6ef74

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 59be4ff3aa4109b21ef00ef85c3df82ee50d34597d2f9aa06b8885fc6012bf88
MD5 6dee16f30055be373a2983632c797516
BLAKE2b-256 b816411eccd0abc3b46fd8989e4488f883786dde61dac7f9944e540379a4bceb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 6b85c726df5f0943ad5ea04230144edce416653c2154146bc7f556bfe1aa22cf
MD5 127fe4c1c9a2018a0bd4034f5094724d
BLAKE2b-256 ddb044dd6dfc7710345d1f85177fa97bf906642220d32497dbb397bf8eb40c9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8ef5ef04ca1242b3d6226b9331bc9c10e6ad0b1d5f4ca972e9c37f71e565e104
MD5 4c444c85e1fdcf2bd47b6db593af0c89
BLAKE2b-256 7db12e9f9ae18174fec1469aa469698a9cbe191238d584046694772336249c72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 442a0f417d5db2e22e358312ea9892d4e67aa0da2d487ddfa3cb0e83f5e93ccf
MD5 b38fd0d7ae03d58fd4c5cd7c617a81ed
BLAKE2b-256 992a8e3cd82aa003b9541cea3756624889f88ece85a0402232e00fc8a8f93695

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 90785ded626e09713dbd6c2dde05e2f3ea03a3416b7f0bfd88a6a0f5c3b335b0
MD5 81e9100cbb847a08ea05561abddc5f45
BLAKE2b-256 4699e86dd8d5d220d7c132586447b656130ef8df40dbd299a15ddc4f897c9886

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 fd58ac13024117039e6f1e6ad68f88de70ffe58ec05eb0ad165e2883af4c82ee
MD5 0fcf9a0b8c3c6ddf747a7f737f70e28f
BLAKE2b-256 e037992a8069b672bb481ed0a7db634eda08a967c9b5b8e49f5aa12c140b9268

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 627fa3ff7fd3229c63aa2c3744abebc9b57ec9f72603d85fe9d55f08f00ddbc1
MD5 18b3be30d73665361f898ebd24592b66
BLAKE2b-256 f87853bc0462b67ba9200e6c2ce102f1735529f8043b19802aa69623427487be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5cbac5f0ac30cfe29d867e79428880fd54c16aaa87e0fb23b10050ffc10be615
MD5 dfcc33eb11d07e49aaa8347e1e3a8a1b
BLAKE2b-256 7315128cc8ef4def913b6c512a70c6d788a891f7a7d6eaaf1c9afed6ccb5ca62

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1fe1314bbd8fc2929c1275f799af47296e94de030bfb3c818d4f7848f4d922f9
MD5 a717e96aaaee588870c13ca65c0830c7
BLAKE2b-256 42499ac917d7f6e9a90df692797f47722141091edc97948b533f37e38db1b059

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2de49c275ecda487b7bddaa4b2a4956b71c2d85c17e6de904976c6f26be5f3bd
MD5 19f170c50ec591db1bab0f2bc3afa4fb
BLAKE2b-256 aa06828d5a14728ff226ee91cd0b8d5609c28ef73e34c01d690938bf1cc30f59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ef3db41ee1dd225d3058c04f72429d5da234310414e1beeb902b9c7e133bf0b9
MD5 5a9ac048ae3cc81c1f8341633383b393
BLAKE2b-256 06811c555b6483b83a766fe4611fd53351551b1f789b1ec87641fc163dfb0bd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c652a624f8dcc2348715f3b133df249a4e6f2b2046fcddef468d94bceab18f65
MD5 7d4a61d10e54b3cad5eb620d984654fe
BLAKE2b-256 2d2cf5da99c99b992de66807cce81a69a223638713a3df3dbabc3f65649b3211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 5b14edcfd4a1ad1a9069bb351dc7234e2796777fd663b2f37caa613cc5a7b626
MD5 dc2db563f080b0f6a34250a7a61961c6
BLAKE2b-256 f3c137d9128ce659a56a9ca213735643ec07082d510ce049ae36974e2603c860

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d23dee8d449cc032e92a91a9f676302b5a31138b6e887965fea7f42a9d070f2d
MD5 c205571329c002a83820ba8653e705b0
BLAKE2b-256 b46115b6d3063d67285581a254a3f769de3e04718af9d55afe751ae89fb51323

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2db0f07e0ce443d492d451190f666bf6aa9cf05111127ac86a15514c98c114f8
MD5 18f5d1612748b9bebd9dd22d9f2ce41d
BLAKE2b-256 3c169adec3abb42b7f8a111cd4a298d63b4acd38a920405c3c0c708edea73d8f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 8f924235ec3fe56fbe1d924dace7dc7622e776da547946f3d6d7a17021340361
MD5 be7a9b6f829c96772704a2995fa4b98d
BLAKE2b-256 cfad249ba49299a13bacf00460813c2462543db0171479541458f8fdeb316051

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 5b427d1f35930fd2b03228f4aa2fe875c9914048855ae51c5b456397cd94b325
MD5 30d04be67f8e83373e3442340936b114
BLAKE2b-256 c4c34b715fb6097c789ae1627841e38d30a28569c39b31032e6a90d59877a6e5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5a5f3e61a0173aeb1ee9b7e0f7b46e57c22bfb7670e10b1ac08b8dda182d9beb
MD5 948f3d52571a44416b0eb51deb3f2377
BLAKE2b-256 f9d67ca7da60a628b3b69b1945c62c0798ab37b401446f927c4444a8be27ed38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b0d3170b7334ed50238458e48b818e84b1f7a66cfc70e0d662ebde85c153af9d
MD5 0e1d8e41bdaa16d616ce6861e2e74e84
BLAKE2b-256 47c432d1f09802c8ff78a74b1b1b4e18d5a947cf6561872f6eab4df235494976

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for flashlight_text-0.0.2.dev273-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd454b02a67b8990835720a5d67f22d5e1cb7bfcbda4915db1ca7221dffd8c7d
MD5 83026701eab053fce909be28477510d8
BLAKE2b-256 0dcbc1f2a48075a2a804e0b5a1be881bab73fd7bb6861cd3a24d50924454aefe

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