Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

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 .

Release files for flashlight-text 0.0.8.dev313

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for flashlight-text 0.0.8.dev313
File
flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.10 PyPy 3.10 7.3 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-macosx_11_0_arm64.whl PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.9 PyPy 3.9 7.3 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-macosx_11_0_arm64.whl PyPy 3.9 PyPy 3.9 7.3 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.8 PyPy 3.8 7.3 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-macosx_11_0_arm64.whl PyPy 3.8 PyPy 3.8 7.3 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.7 PyPy 3.7 7.3 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp312-cp312-musllinux_1_1_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-cp311-cp311-musllinux_1_1_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-cp310-cp310-musllinux_1_1_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-cp39-cp39-musllinux_1_1_aarch64.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-cp38-cp38-musllinux_1_1_aarch64.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
flashlight_text-0.0.8.dev313-cp37-cp37m-musllinux_1_1_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64 Details
flashlight_text-0.0.8.dev313-cp36-cp36m-musllinux_1_1_aarch64.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.8.dev313-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ ARM64 Details

Total release size: 32.4 MB

Release files / flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.10 PyPy 3.10 7.3
SHA-256 checksum
How to use checksums
a7245a52169bdf90127a520d45d82a1622b11f8c45e2cee492f4f52da436a287
BLAKE2b-256 checksum
How to use checksums
e0bc5b468f7e9e8790563790b50dfc2990d570195efb3806ff2747bb9c94778f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Size 910.7 kB
Tags PyPy 3.10 PyPy 3.10 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
887cb2ddc7d77090e76d3b92916a09e916a425204d7060924e29dc21de620959
BLAKE2b-256 checksum
How to use checksums
a48903d2bcf98721806d3cca41afdd3ebb19e23b61251d6e81ce61a9e599670e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.9 PyPy 3.9 7.3
SHA-256 checksum
How to use checksums
19a0441c91b7ee352550bebc4ddae75b93544561c9f0516a282515c6c4642fbb
BLAKE2b-256 checksum
How to use checksums
020d2a65d0bea2e942c6716c4a5b7c40b710bc481a944977d184c6fd676cce71
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Size 910.7 kB
Tags PyPy 3.9 PyPy 3.9 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b00b0e1656bbc36b60a0f0e5fbe4f4f73be628185e5ad6bbe1dae826c53bd93f
BLAKE2b-256 checksum
How to use checksums
68b9c22d5d7bb02c99a6ffe6306cbc870c50e44dc10e42f89ec4001aa4f4e2ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.8 PyPy 3.8 7.3
SHA-256 checksum
How to use checksums
e6c9091248794629556a1b495dddbe9ddf1dcf86ea4d9384cc1d7f519e76f492
BLAKE2b-256 checksum
How to use checksums
4cc462213ec11b5747f85025c7bcbf5c8a7dfc18550a8e172b2e57c1f36c89de
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Size 910.7 kB
Tags PyPy 3.8 PyPy 3.8 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e7973c069be2e9e35075436a094b74297b2e6e115695b312c49a68850330e1e7
BLAKE2b-256 checksum
How to use checksums
ebbb2cf5397c4d0475b2f1ad051dd968be36ea7fe7d5665f94c39c94b6b006d8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.7 PyPy 3.7 7.3
SHA-256 checksum
How to use checksums
098c1698e3229cb48d188946bac03776cee5e0fb6ca4bc26574a904e54914d55
BLAKE2b-256 checksum
How to use checksums
9813a9ea33777d1496a41ab8a3c08f4d48705324a257bb217b08359872a62e44
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp312-cp312-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp312-cp312-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.12 Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
d902310a12490ed97a2f9e1b09ed264f310538eebc52941f1a63dd113b0f2619
BLAKE2b-256 checksum
How to use checksums
ef779b16ee833abcc2cab094febdd7968269f16cdbaf6f9b8ad4c72d7ee4b6e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags CPython 3.12 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
4c774d6f768c54c379df2e2897abf9b4c33be624259e7aaf1ec81a9ed5f11a62
BLAKE2b-256 checksum
How to use checksums
9be5ba2b4fa10317318deb1e2e8a570304ee7947af548ea19e1ed46afefbbbd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp312-cp312-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-cp312-cp312-macosx_11_0_arm64.whl
Size 914.1 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
0c5c1d60a919d16789e899e1750363dec8efa13eba6c01f927f661db61685092
BLAKE2b-256 checksum
How to use checksums
b9854cfe524550784726701f559dc6bc64b7e29888c339cc3650d0734c82d708
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp311-cp311-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp311-cp311-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.11 Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
4889ec0f86553b4b8e879cf749052a5086ee3b8beae8fa13a3834e47577f6a4f
BLAKE2b-256 checksum
How to use checksums
8513e8463d23403ed0dad055fbb56dfa8a46409f52c9a6cc7af223041da98fdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags CPython 3.11 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
8633dda13bfba2f73d11d96a307b1b41edd085432227ce9901175893584e6a61
BLAKE2b-256 checksum
How to use checksums
832a719a22fcf33d94f9268bca123225fa4b1c299a4ec88b0dc2a80f16c835ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp311-cp311-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-cp311-cp311-macosx_11_0_arm64.whl
Size 910.9 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec01cd4fac5ead13ebe4d654a5802cd614059c985002f03b8bd083e8426f39b3
BLAKE2b-256 checksum
How to use checksums
7616362cbc0f88e6620d0cff8cde8ba01a09e89dc7bf02c2193c2a453a7a07af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp310-cp310-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp310-cp310-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
f3a6293ec97c6b93195ca2db50108f4e493533692ac7df383d6a12f86bdc4af7
BLAKE2b-256 checksum
How to use checksums
632b1080a0ab23ca3778fd79bb3012a4157a8b515d5279442d6834f084d586b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
7dce9ebc85895defb1dbbfaffea98aa084d5aa35e2605945bdca92be79a8cf03
BLAKE2b-256 checksum
How to use checksums
2934ced462ef2a04efafc0096a3eab9e0cc5e401c46881d8b08b5ac03283862c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp310-cp310-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-cp310-cp310-macosx_11_0_arm64.whl
Size 911.0 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
93dfed651168e5113296d20f3d8a04d9b971993e8032afe1a87b97ef737b3c5a
BLAKE2b-256 checksum
How to use checksums
fb6d164cc6eba10b95f50a895600da2e68eb520e19d32e941733b8721438b490
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp39-cp39-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp39-cp39-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.9 Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
5a4246e70b50735a9ce24277edf746bf448bb3226609b244a94acb78f9b30109
BLAKE2b-256 checksum
How to use checksums
615e07104f12af9b15b29661e3fba0f1513167948a3bfc0db3be2c2d7d34ac5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags CPython 3.9 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
032ca8a515ea7fb26817fd04102ad18c702ebab73206ed00f06bc17c5d8c6dd1
BLAKE2b-256 checksum
How to use checksums
03c61a9c6aca72bcd604858bb24d82c844fb39b1e5fd18bdd3f924762fc1206f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp39-cp39-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-cp39-cp39-macosx_11_0_arm64.whl
Size 911.2 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5b1b42011f00bbb592426ed97529c3cb53a8106fc71955732551683adb887dec
BLAKE2b-256 checksum
How to use checksums
75ca16fc23036a17203850ff63cfe5583d4cdf68952bcb4f223a7a084ff230b8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp38-cp38-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp38-cp38-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.8 Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
341aa2cc29086ffcd2b7315b24318d72f30f052f66c65fd385202a37acf69f25
BLAKE2b-256 checksum
How to use checksums
f08598be5dad28f5d58fc49964faa601676112cb84a3929c5e42964232b6a080
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.2 MB
Tags CPython 3.8 Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
03347fb3b58e3ac3a2b5f190fec02e6a7b0acd2395ad7837ac6f0fba28ffe4d2
BLAKE2b-256 checksum
How to use checksums
572073ce65e95da7d2164c9eb665c90c9c46d162006add155a4f745c18d70bfa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp38-cp38-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.8.dev313-cp38-cp38-macosx_11_0_arm64.whl
Size 910.5 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b2820c8bcf7ec4492036563bda870536cac505d16d105086efd92788119e9abb
BLAKE2b-256 checksum
How to use checksums
c39f51235983fe70950a2fdc85718731d4fc8141dce75da59c26bc06f09031fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp37-cp37m-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp37-cp37m-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
6bbb36360c95ef2c7dd783814240635693e8092844ca2a86751f9c46ef079b49
BLAKE2b-256 checksum
How to use checksums
211b3167b207164a83c465fbdbd88c9d04996a26d7a5c77e8e0f4b6069a9155f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.7 CPython 3.7 pymalloc Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
dc17c6055943cd107809a98124389661521301d6febda0bdc236608a01ae3b4e
BLAKE2b-256 checksum
How to use checksums
06d33ec9be043a7a0d609a93169f28b32c690851b1562e0b8388504a02b1d503
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp36-cp36m-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp36-cp36m-musllinux_1_1_aarch64.whl
Size 1.6 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux musl 1.1+ ARM64
SHA-256 checksum
How to use checksums
a0de330ce3a17f86738333cb352d26ef87db352c0c930da1d4d2f7d34322bbd8
BLAKE2b-256 checksum
How to use checksums
582d1ae74d281da0159a5364143a4c991ddc261565d526486bf44f22081d3245
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release files / flashlight_text-0.0.8.dev313-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.8.dev313-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.3 MB
Tags CPython 3.6 CPython 3.6 pymalloc Linux glibc 2.17+ ARM64
SHA-256 checksum
How to use checksums
d31fd9abd4206360ffbaf3c8a75926463b6219ad066cd76ac8afb5b7fbb17087
BLAKE2b-256 checksum
How to use checksums
6f5d90ed968f27312b27045722afc14835ea30de308b9d0f6eb585f0128f044e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.13.0

Release history Release notifications | RSS feed

This release

0.0.8.dev313 This release

26 release files

0.0.7

67 release files

0.0.6

67 release files

0.0.5

62 release files

0.0.2

40 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page