Skip to main content

Flashlight Text bindings for Python

Project description

Flashlight Text Python Bindings

Quickstart

Flashlight Text is available on PyPI without KenLM support using:

pip install flashlight-text  # without KenLM support

For now, building from source is required for KenLM support. We'll be adding KenLM support to the PyPI package soon.

Contents

Installation

Dependencies

We require python >= 3.6 with the following packages installed:

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.1.dev270.tar.gz (63.4 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.1.dev270-pp39-pypy39_pp73-win_amd64.whl (517.1 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (574.6 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-win_amd64.whl (517.1 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (574.7 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-win_amd64.whl (517.0 kB view details)

Uploaded PyPyWindows x86-64

flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (574.5 kB view details)

Uploaded PyPymacOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp311-cp311-win_amd64.whl (517.6 kB view details)

Uploaded CPython 3.11Windows x86-64

flashlight_text-0.0.1.dev270-cp311-cp311-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp311-cp311-macosx_10_9_x86_64.whl (574.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp310-cp310-win_amd64.whl (517.7 kB view details)

Uploaded CPython 3.10Windows x86-64

flashlight_text-0.0.1.dev270-cp310-cp310-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (788.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp310-cp310-macosx_10_9_x86_64.whl (574.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp39-cp39-win_amd64.whl (517.8 kB view details)

Uploaded CPython 3.9Windows x86-64

flashlight_text-0.0.1.dev270-cp39-cp39-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (788.5 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp39-cp39-macosx_10_9_x86_64.whl (574.9 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp38-cp38-win_amd64.whl (517.4 kB view details)

Uploaded CPython 3.8Windows x86-64

flashlight_text-0.0.1.dev270-cp38-cp38-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (787.3 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp38-cp38-macosx_10_9_x86_64.whl (574.4 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp37-cp37m-win_amd64.whl (515.7 kB view details)

Uploaded CPython 3.7mWindows x86-64

flashlight_text-0.0.1.dev270-cp37-cp37m-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (799.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp37-cp37m-macosx_10_9_x86_64.whl (568.9 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

flashlight_text-0.0.1.dev270-cp36-cp36m-win_amd64.whl (515.8 kB view details)

Uploaded CPython 3.6mWindows x86-64

flashlight_text-0.0.1.dev270-cp36-cp36m-musllinux_1_1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

flashlight_text-0.0.1.dev270-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (798.2 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.17+ x86-64

flashlight_text-0.0.1.dev270-cp36-cp36m-macosx_10_9_x86_64.whl (569.0 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file flashlight-text-0.0.1.dev270.tar.gz.

File metadata

  • Download URL: flashlight-text-0.0.1.dev270.tar.gz
  • Upload date:
  • Size: 63.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for flashlight-text-0.0.1.dev270.tar.gz
Algorithm Hash digest
SHA256 6bd58f5b320a5e1ad120188ef79fbe550cb0aa7aa6cf506c6736799da195ec26
MD5 596560f5fa6fe6e4342dac1f4e991593
BLAKE2b-256 9281de7a61e30b97807ccdf2c4c46af21e1312fa8c68fb614723c6a48b8eb13a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 f5a6ebad49c7456116c245c0c8819621533a3bc7b3922361dcf8decba3f29a2b
MD5 8688a1da78b03e448e41821a40b3e992
BLAKE2b-256 6b4356ca2309408d891855daad3d80b8350bda423bf5693f762b2f1221545a8f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e4d77e78fa4c914cc6abd70c2fdaa08566bde459ae24e346f9dbee51e94b29e1
MD5 b3c781b7faf824fd4517edb2369bdbe6
BLAKE2b-256 a20948d72bc96bab235b89207363f467490542ea1926bb330e62a444f3d553f4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7532e9300c547133530ddc660bc4aa061e43133fd11c6ad6864707a64594807c
MD5 8300620ed89b52186c16faff3f1b139b
BLAKE2b-256 c15316820f6c863f8c7f9d9de88ed18445ace4a83249ba1c6224ecd9b97411cd

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 fe52191e0cf505c78502d6aee520bb74cf9627c4ebeec2d97643220bcd5ba617
MD5 e3fc7889ba07479863490a9db89d775c
BLAKE2b-256 539f0fdae8d5b9b0ec32febf33331ae962be5b2543db6e661e438554288e3a6a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 18c3f1c3d6349269e73c9cf8fa188bfaed385a74ea117e70d10da95f1bb6d475
MD5 0798e63ae7bf08b541b5a76662bb7f7c
BLAKE2b-256 3b36ef51dcfaa13ede02e6ffbf06dd400d089d2ae6e010ffdd1b7d028e674cbc

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4f768862c1f151dcdfc895a9d54590336b62c9300caee7b2849d05371a36b6a9
MD5 cebc6818880db9f93d1ed09becacd9bc
BLAKE2b-256 27f5f6c7271966881a2f35b159822f0260265a6eb36992072b5a91de21c6e467

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-win_amd64.whl
Algorithm Hash digest
SHA256 649b03cc610f25fca4d44307e9136aaf1f4e7f6708302156897afcaec9f999dc
MD5 8ddc95d5b4258dc4574fc7b18d1c9d2e
BLAKE2b-256 5ae10aca39561d9870d85b2083738b02492555a5386fb57f1fcc94980fa9df4b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 af833229b72e6d98c91c6e84679c68465d790996d1cfdbecfd0264bcc12d93ee
MD5 8e9d92ddae5c6487c7940f44ea2da5e7
BLAKE2b-256 07a7975c84a8d373d87a35ab08a331011af3afe47579e4c1601a3631323b601f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0f1abc78722137a050c3c44e3a3ebdd9383825c0be2bdbb1bc351117d3c60642
MD5 3e4cb81d89f28a24e3ad6124e95eade2
BLAKE2b-256 d5a43cfd992a54b1ce54a53a2adf7d00eebdef26d8300f3edb9f74f14f66b6a1

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7dca50701e9a4ecac1c59e6cbcb49597d50364aca03e775f7514639d0064b0de
MD5 402d3e752d15f592745d9ec72e73bfce
BLAKE2b-256 e4b98565c5e2ded0b1b50842088f48faad67f6cdff4a3136bcd0eee2ece4e20a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3e0891cff5ec3a5eed5f85cc77f5101c335fd025fac0c1103ed390f3b6cf10d8
MD5 9fcb4a5f43bc76e4e251e587209dcc4b
BLAKE2b-256 85e2115ae36cf06700aba421f792a834a6fd54759f6a1cddbe0ffbc97e9b79dc

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3e09451f436aa19ae496077944e813560b63b30d5564360b8940ad508b908c49
MD5 7dcc0a491cf5ce8e4a1b216ee85508cd
BLAKE2b-256 263d0ce4fa3f2a1867cd1489acbb23d0036e999e4e674eaa08d6a56e6abc3219

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e18380410dd75e77dbd606a0ee2f28cdf729e0d46cfebb0e875bcf1ff2fc2c01
MD5 2f31274798d72cfde0a89a1ee50280c3
BLAKE2b-256 cf0e9212f93ff6b82efaafe51a14fee4121dcf1109e00ace56ee34cfa0ecb1a4

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 42f95ded98e73427a148abd91bbd8fe55c6d53263a353053c71d8867e61d3aa8
MD5 1c93f9ee4262d5f1133228912e46f37f
BLAKE2b-256 81091267ff7d8d0c6aea03732700275eb62aa855f42ded3192505a7649a07f30

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d7126ade7b3f7c36fc6660cc12e51aaa604684cba6168ec516a5731143f964b4
MD5 1b85b0fcd44fc969618455441ebdeb7d
BLAKE2b-256 39be6bfac8235613b0bced181544fe9f92d2e890abf64389e8f7f5ea2be5868a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 872aee1d1b7228939a12fdabc34da263cc8ddd141543c765a2641df75a03e453
MD5 72d5e6889a8f2955a2b7dd573a4a39fb
BLAKE2b-256 45f564399da02957c3c49d65fd733d75a0d2c5f23a38688eb78ad585173abbdc

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 5a5433dad08106fc6f2e6e05d8fa20aeac123d3c1b4216ef64056aeda86166ea
MD5 fba7c4ed2113c3dd163b5f9d9909eb57
BLAKE2b-256 9fe9b5e3cda06b3d03d3bc2aef0c38e375067cc41b3cc2bfb7a97e72ea87d99c

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 a332f20cd4dfcbb53d570f62c8a555fc37023221258a95aad7df27b3b5f537cc
MD5 3087a2a23dd338817798fd339fb2b7a5
BLAKE2b-256 e61e3e541f13a2520ee7624c2c139623f475526bb22e1ba39f6371e285e0ae8e

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 665562c235e4fc84f315a7ffd3895ba6dd69f47e4677991b9a3b6a245711d793
MD5 54636c7673390de5f050dffbc27ed6f6
BLAKE2b-256 174283de9dedaff39563f8d85d8b362fc1af9566b26f2469086c4f567c1c9dd8

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bdc3c9483926279ea4332b4ed4bfebdda02cf4ce853774d9eab726e7072f716c
MD5 759187adc6ea84aefde57e9785f034c4
BLAKE2b-256 1a7570da7e7f54c8a9abe83357cd71b08340a52f0214db87ea242aef439212dd

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 4b97e2728b6f2ada2583b1c5266baa88fb35d2801a55c3886731ed00d9a907af
MD5 3d33d2af4c3cae2e174a877d703300bb
BLAKE2b-256 d0f6f8a50684b03481fd5c964bc9caed1a93540bc2eaf5b3810d8b1e3c4095a2

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 263009cc8a547c0321f45e2cf26d2acda7fa8c2c9de882b40f239b4d65868a5b
MD5 2c92f2751e7cd922ef313eac4488c476
BLAKE2b-256 88a7f1ac1a887653b75dd2a3df665190596c2fcfd631930321214cac8467f932

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 bae7c9406cfcfe7121ce1d3782b4bb9329d96fd139e42bbc1295a5aafdadae47
MD5 b867c9412c4404e8f0e9fca80c7f53fb
BLAKE2b-256 675ed8a7156dfd7aa541061b0805f7cc01f13998092b5da596ad999b70930a04

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bb85d49f3644e96bb77bf133094337c7defc63c9b7a06ce0dd0bd735aa2956b0
MD5 fde291a42d7d3dfc2ae8960142c51f13
BLAKE2b-256 926167d8f638b395578045a7896d69a623cd18653ce28fc2e61292b2763c1b66

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 03298d26f50a31314e8f1941970ee2187e379ec11208c20503e5065fb4a5eb9b
MD5 6451c97415878b61198be6df0b085ed4
BLAKE2b-256 6a9976dab98085d8f91f01721cb08e6f880cf204f593304dc35f75cc0fbae25b

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 c8b75801abb027a554e4d6c07586b41f11ac1e4b147668484e78d5e24dbdc483
MD5 a2467acbe41449a7fd5440f31e13b29f
BLAKE2b-256 e2fa5e4420c12571d1ff6eae738b05ddf03940030248c399e5a253c52791366f

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 f8af3bbc378e3713e63e2fdaf48105f7ea3098c95f3151d10b1bf53b7c8e63f5
MD5 e350dcd4d9e7f130f324123caf89876f
BLAKE2b-256 99978a43a5805b94a86ce4a7582bd914bbda12bfcdbe4f29b1814f6819063266

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fc9d8cf7b30fa12edfec24a99f8ea13b4fb0426e5829cef6ffc1a45bb82a90f7
MD5 4628507d11badcf930efa6e84188e17e
BLAKE2b-256 52cc92d9f17bb9c49f4ef73c9b679f8bcde1f6345723372861397e5632edb2f3

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f4e2d5f67a40f245290f3783e17427bbf9f0fc2e514ede3a341ec78674a9982d
MD5 a3c15a417ed7467e5bdfb73aab3c4da3
BLAKE2b-256 ed37df4eadae313768720658e6753e7a81f37104e352a63768edf8bfe599b22a

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 6a62942b547093681ec630614e765062421eed1bbdbb59e75b7c63bb2d4f5fae
MD5 da6eafa20fd90bc06d44614d1cc25020
BLAKE2b-256 7e190c7f6d8e07f38a52b9c5f4d7da6c8d84d580bf3c078fb54ab89e649c0b2c

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 99f55c065bd6ff1db1426430f27d9f52f30362a620adeedc885dcedb7176f054
MD5 9b63d48f497cc4bde9ddb84eeff09e32
BLAKE2b-256 e53924d071c9f31def014c77cb4a7d265d3a4c5de6dd31a700142fc88880a241

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 baae8127567c0af6f960630c97ba216ac356c3d0ba72a48cc588b0f5bebf38aa
MD5 0501e5791d70d73ad71c28766299085a
BLAKE2b-256 83efc7f13c4d0ddd0e0ef2e85cf8970f252e45c0ad3c348b2f50490f5e22130c

See more details on using hashes here.

File details

Details for the file flashlight_text-0.0.1.dev270-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for flashlight_text-0.0.1.dev270-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 06e6e9e8fb9f7dd3eb30109db23c3813f49e7fe8ece5a011070db42da880fb7d
MD5 41a2d727c63e4bd586a67073d9dfb1c9
BLAKE2b-256 0004429073e2d5ca85b4a5a1307d1dbb62820c10298241dc147000d6bb9ec09f

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