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 .

Metadata

Release files for flashlight-text 0.0.4.dev297

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.4.dev297
File
flashlight_text-0.0.4.dev297-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.4.dev297-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.4.dev297-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.4.dev297-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.4.dev297-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.4.dev297-cp311-cp311-musllinux_1_1_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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.4.dev297-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
flashlight_text-0.0.4.dev297-cp310-cp310-musllinux_1_1_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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.4.dev297-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
flashlight_text-0.0.4.dev297-cp39-cp39-musllinux_1_1_aarch64.whl CPython 3.9 CPython 3.9 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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.4.dev297-cp39-cp39-macosx_11_0_arm64.whl CPython 3.9 CPython 3.9 macOS 11.0+ ARM64 Details
flashlight_text-0.0.4.dev297-cp38-cp38-musllinux_1_1_aarch64.whl CPython 3.8 CPython 3.8 Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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.4.dev297-cp38-cp38-macosx_11_0_arm64.whl CPython 3.8 CPython 3.8 macOS 11.0+ ARM64 Details
flashlight_text-0.0.4.dev297-cp37-cp37m-musllinux_1_1_aarch64.whl CPython 3.7 CPython 3.7 pymalloc Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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.4.dev297-cp36-cp36m-musllinux_1_1_aarch64.whl CPython 3.6 CPython 3.6 pymalloc Linux musl 1.1+ ARM64 Details
flashlight_text-0.0.4.dev297-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: 26.5 MB

Release files / flashlight_text-0.0.4.dev297-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
c5ce5fe14e24b8265d09186398bfb78222145c9a68ac3aac60e1356de8a0aef1
BLAKE2b-256 checksum
How to use checksums
8a58cea981cfb73f0b7f2602bc12b43ccd52bf515cf72f0022b62b4958958971
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-pp39-pypy39_pp73-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Size 909.9 kB
Tags PyPy 3.9 PyPy 3.9 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
baac5f8f2b11341aa326384bcb29939b3b70ffd7fcc911d50ce2e9b2ec58bf25
BLAKE2b-256 checksum
How to use checksums
428baee0fdcf29d466e90bef25572c75c10f671f674c06d4966cc6cea0f524be
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
57cc552d3a8d3fc5caa71afd944ab49df1a2a4ef08dd0cfcc2a74aa40f0d563f
BLAKE2b-256 checksum
How to use checksums
1b06a4e967d883f7474784f0a52d1dd8666332b5fb3840822eb22189ce0ee8bb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-pp38-pypy38_pp73-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Size 909.9 kB
Tags PyPy 3.8 PyPy 3.8 7.3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
133642268d3d25f2a3084c22d14fdbe692aedf7675d7b42e20304b7ddda7289a
BLAKE2b-256 checksum
How to use checksums
6409484b42bf334cac8242f75081bb69b1095c01b78f012e43b72d004650aba1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
9c17f61dccff86465f8b8653e93ff542bf4ffda5022bb8f6b1548636471e8319
BLAKE2b-256 checksum
How to use checksums
024bbf6d085a20b4cc99b0613ce1c5838aa6c5939e98d965a216d3ee2d45b825
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp311-cp311-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
15e662ca9c3efa98645b81997cf08db54e98b3d51ac13f38909ec3ed139fa805
BLAKE2b-256 checksum
How to use checksums
02f0b05481dc0662fb71ac18a65d89f8000b38e60bab84b52c100fe3d7a22d5a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
0006f4fb03b05aba62ec10a9860f9020d5812b37971fecfdec33d77a92dc843b
BLAKE2b-256 checksum
How to use checksums
0ed47f8b61984aa27706f717084e820ce499d6b8e8c8e84b27c93277f93ce619
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp311-cp311-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-cp311-cp311-macosx_11_0_arm64.whl
Size 910.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
08c02ec5fcae687075992986c7c998ac5d2e44dbdb1bca213c18be4341b6474c
BLAKE2b-256 checksum
How to use checksums
36f6cbf34e03653e91686cc46ddccdf1b59b4fbe308ca12b9548d96a2dce1a6a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp310-cp310-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
729e9c5b8070cbc71817b9d60cb7859544d1c74a320c92a898b0af261402df41
BLAKE2b-256 checksum
How to use checksums
72ab17cdda18dc278ae81dffb19691e5dd61563a2902a587b0ee6f60d6b17150
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
eab353c53cbd2cd0cbb92148ec22007553641e272dc6b96f162424aaaa2c7915
BLAKE2b-256 checksum
How to use checksums
fe4480ed6757c048300139a505d47e08ab4ef3c972ae4fffbf80a2cf8bc78216
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp310-cp310-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-cp310-cp310-macosx_11_0_arm64.whl
Size 910.1 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
4e52173de7272c4b11fdf1d0da8850c635ea04272d460c20bb5707ad66acff2b
BLAKE2b-256 checksum
How to use checksums
34edd81672da25f8de71b88c87a4b4a50a77532682c1093e4cf65e724492f57b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp39-cp39-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
393c1743994ae56dd2f6ac2d90b68ea116e10cb3691ae3ff89d08729abb0a596
BLAKE2b-256 checksum
How to use checksums
59094704875fdf6aa8110a0e2357c155fa61cc7a95d35816cd96559176846350
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
338f650a28f23068d4808b91159e06964bc05cc6ee6619087ad699ee571bb381
BLAKE2b-256 checksum
How to use checksums
fc29cb064175276fb3866f2939ca01d3e1bc4b1b4cc0f4d2d958f1f7290792b3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp39-cp39-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-cp39-cp39-macosx_11_0_arm64.whl
Size 910.4 kB
Tags CPython 3.9 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2257bfc1cf5320d512c6c15ec54171e12bd82c76641dd5d9bd9b6956575e6b2e
BLAKE2b-256 checksum
How to use checksums
d851b03fc5cb7081db102329e4577b0966626f8ed8634052430d1ae6cf8827c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp38-cp38-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
319f141d89c31933049ab374d806a28106f6d7f36e9114f76806aa8ee3a2dcaf
BLAKE2b-256 checksum
How to use checksums
103b45967edf568e51b7116a3e86c3a2c852aaea403ae84184be61662f31aaaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
7acca7a7c674da38dd575afd91b736ea7ff2e7f9edd5cedc6f411c4a34331867
BLAKE2b-256 checksum
How to use checksums
28a3f053eac6a998f7f4e24902b5d0f6061972bfb4dee3a3243f068d62353a64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp38-cp38-macosx_11_0_arm64.whl

Download URL flashlight_text-0.0.4.dev297-cp38-cp38-macosx_11_0_arm64.whl
Size 909.6 kB
Tags CPython 3.8 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
eaaaf90dbaf5a6b8d924ec96f4745bc74a56b6adb35eb3528249a9d12c30f874
BLAKE2b-256 checksum
How to use checksums
eb5de203866ebb3a24250ac1264246b92ad65d0fa1a7413ff044676c4e462a85
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp37-cp37m-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
3cf44710c4ea7e21c059df398a9f47d8d7bf0cb5349311352679a5d6171c64df
BLAKE2b-256 checksum
How to use checksums
ed5feb23733e21c87333d212cbcc694fa4a748feea9e698b993ce504f896e081
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
5506b25400965b1d75a6e2c998da2979e9755e7cec9fadfd4044c44d5c28b139
BLAKE2b-256 checksum
How to use checksums
f701ed740b3123f1b44d862d15b47cc4330240d46a9bb9c6078a6831a924e385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp36-cp36m-musllinux_1_1_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
a0cbc5f3f8501fb85dd60ba34e3a094986057252e266aa53a2e1692eefaee7f4
BLAKE2b-256 checksum
How to use checksums
f4c6aa70488f39ad441eed57b81d85de6b90b8b44663bd72624f633a6154f21a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release files / flashlight_text-0.0.4.dev297-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL flashlight_text-0.0.4.dev297-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
aefdb0f6e5b6609202023820b1689b516c21e50ce55d85bbbd31caafbd8e239b
BLAKE2b-256 checksum
How to use checksums
ce80162f81b842bd405d387094c2a9bbabaf49b4440c7f9b085fc45e682ddf29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.2

Release history Release notifications | RSS feed

0.0.7

67 release files

0.0.6

67 release files

0.0.5

62 release files

This release

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