Skip to main content

A library for fast keyword extraction and replacement in strings.

Project description

BlitzText

BlitzText is a high-performance library for efficient keyword extraction and replacement in strings. It is based on the FlashText and Aho-Corasick algorithm. There are both Rust and Python implementations. Main difference form Aho-Corasick is that BlitzText only matches the longest pattern in a greedy manner.

Table of Contents

Installation

Rust

Add this to your Cargo.toml:

[dependencies]
blitztext = "0.1.0"

or

cargo add blitztext

Python

Install the library using pip:

pip install blitztext

Usage

Rust Usage

use blitztext::KeywordProcessor;

fn main() {
    let mut processor = KeywordProcessor::new();
    processor.add_keyword("rust", Some("Rust Lang"));
    processor.add_keyword("programming", Some("Coding"));

    let text = "I love rust programming";
    let matches = processor.extract_keywords(text, None);
    
    for m in matches {
        println!("Found '{}' at [{}, {}]", m.keyword, m.start, m.end);
    }

    let replaced = processor.replace_keywords(text, None);
    println!("Replaced text: {}", replaced);
    // Output: "I love Rust Lang Coding"
}

Python Usage

from blitztext import KeywordProcessor

processor = KeywordProcessor()
processor.add_keyword("rust", "Rust Lang")
processor.add_keyword("programming", "Coding")

text = "I love rust programming"
matches = processor.extract_keywords(text)

for m in matches:
    print(f"Found '{m.keyword}' at [{m.start}, {m.end}]")

replaced = processor.replace_keywords(text)
// Output: "I love Rust Lang Coding"

print(f"Replaced text: {replaced}")

Features

1. Parallel Processing

For processing multiple texts in parallel:

// Rust
let texts = vec!["Text 1", "Text 2", "Text 3"];
let results = processor.parallel_extract_keywords_from_texts(&texts, None);
# Python
texts = ["Text 1", "Text 2", "Text 3"]
results = processor.parallel_extract_keywords_from_texts(texts)

2. Fuzzy Matching

Both Rust and Python implementations support fuzzy matching:

// Rust
let matches = processor.extract_keywords(text, Some(0.8));
# Python
matches = processor.extract_keywords(text, threshold=0.8)

3. Case Sensitivity

You can enable case-sensitive matching:

// Rust
let mut processor = KeywordProcessor::with_options(true, false);
processor.add_keyword("Rust", Some("Rust Lang"));
let matches = processor.extract_keywords("I love Rust and rust", None);
// Only "Rust" will be matched, not "rust"
# Python
processor = KeywordProcessor(case_sensitive=True)
processor.add_keyword("Rust", "Rust Lang")
matches = processor.extract_keywords("I love Rust and rust")
# Only "Rust" will be matched, not "rust"

4. Overlapping Matches

Enable overlapping matches:

// Rust
let mut processor = KeywordProcessor::with_options(false, true);
processor.add_keyword("word", None);
processor.add_keyword("sword", None);
let matches = processor.extract_keywords("I have a sword", None);
// "word" will be matched
# Python
processor = KeywordProcessor(allow_overlaps=True)
processor.add_keyword("word")
matches = processor.extract_keywords("I have a sword")
# "word" will be matched

5. Custom Non-Word Boundaries

This library uses the concept of non-word boundaries to determine where words begin and end. By default, alphanumeric characters and underscores are considered part of a word. You can customize this behavior to fit your specific needs.

Understanding Non-Word Boundaries

  • Characters defined as non-word boundaries are considered part of a word.
  • Characters not defined as non-word boundaries are treated as word separators.

Example

// Rust
let mut processor = KeywordProcessor::new();

processor.add_keyword("rust", None);
processor.add_keyword("programming", Some("coding"));

let text = "I-love-rust-programming-and-1coding2";

// Default behavior: '-' is a word separator
let matches = processor.extract_keywords(text, None);
assert_eq!(matches.len(), 2);
// Matches: "rust" and "coding"

// Add '-' as a non-word boundary
processor.add_non_word_boundary('-');

// Now '-' is considered part of words
let matches = processor.extract_keywords(text, None);
assert_eq!(matches.len(), 0);
// No matches, because "rust" and "programming" are now part of larger "words"
# Python
processor = KeywordProcessor()

processor.add_keyword("rust")
processor.add_keyword("programming", "coding")

text = "I-love-rust-programming-and-1coding2"

# Default behavior: '-' is a word separator
matches = processor.extract_keywords(text)
assert len(matches) == 2
# Matches: "rust" and "coding"

# Add '-' as a non-word boundary
processor.add_non_word_boundary('-')

# Now '-' is considered part of words
matches = processor.extract_keywords(text)
assert len(matches) == 0
# No matches, because "rust" and "programming" are now part of larger "words"

Setting a whole new set of non-word boundaries

// Rust
processor.set_non_word_boundaries(&['-', '_', '@']);
# Python
processor.set_non_word_boundaries(['-', '_', '@'])

Performance


BlitzText is designed for high performance, making it suitable for processing large volumes of text. Benchmark details here.

Mult-threaded performance:

Contributing


Contributions are welcome! Please feel free to submit a Pull Request.

Issues

If you encounter any problems, please file an issue along with a detailed description.

License


This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blitztext-0.1.1.tar.gz (755.3 kB view hashes)

Uploaded Source

Built Distributions

blitztext-0.1.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (509.0 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

blitztext-0.1.1-pp310-pypy310_pp73-musllinux_1_2_i686.whl (528.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

blitztext-0.1.1-pp310-pypy310_pp73-musllinux_1_2_armv7l.whl (617.9 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (525.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (338.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (449.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (373.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (356.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-pp310-pypy310_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (352.4 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

blitztext-0.1.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (509.8 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

blitztext-0.1.1-pp39-pypy39_pp73-musllinux_1_2_i686.whl (529.6 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

blitztext-0.1.1-pp39-pypy39_pp73-musllinux_1_2_armv7l.whl (618.7 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (526.5 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (339.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (449.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (374.7 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (356.9 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (348.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-pp39-pypy39_pp73-manylinux_2_12_i686.manylinux2010_i686.whl (353.0 kB view hashes)

Uploaded PyPy manylinux: glibc 2.12+ i686

blitztext-0.1.1-pp38-pypy38_pp73-musllinux_1_2_x86_64.whl (510.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

blitztext-0.1.1-pp38-pypy38_pp73-musllinux_1_2_i686.whl (529.9 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

blitztext-0.1.1-pp38-pypy38_pp73-musllinux_1_2_armv7l.whl (619.2 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-pp38-pypy38_pp73-musllinux_1_2_aarch64.whl (526.7 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

blitztext-0.1.1-pp38-pypy38_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (450.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

blitztext-0.1.1-pp38-pypy38_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (375.1 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-pp38-pypy38_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (357.5 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (348.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-pp37-pypy37_pp73-musllinux_1_2_x86_64.whl (511.3 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ x86-64

blitztext-0.1.1-pp37-pypy37_pp73-musllinux_1_2_i686.whl (531.7 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ i686

blitztext-0.1.1-pp37-pypy37_pp73-musllinux_1_2_armv7l.whl (621.1 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-pp37-pypy37_pp73-musllinux_1_2_aarch64.whl (529.0 kB view hashes)

Uploaded PyPy musllinux: musl 1.2+ ARM64

blitztext-0.1.1-pp37-pypy37_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl (452.8 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ s390x

blitztext-0.1.1-pp37-pypy37_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (376.2 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-pp37-pypy37_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (359.3 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (350.6 kB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp312-none-win_amd64.whl (211.4 kB view hashes)

Uploaded CPython 3.12 Windows x86-64

blitztext-0.1.1-cp312-none-win32.whl (201.0 kB view hashes)

Uploaded CPython 3.12 Windows x86

blitztext-0.1.1-cp312-cp312-musllinux_1_2_x86_64.whl (508.3 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp312-cp312-musllinux_1_2_i686.whl (528.2 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ i686

blitztext-0.1.1-cp312-cp312-musllinux_1_2_armv7l.whl (617.4 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp312-cp312-musllinux_1_2_aarch64.whl (523.4 kB view hashes)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.3 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl (452.2 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (372.0 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (355.7 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (346.0 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.whl (351.1 kB view hashes)

Uploaded CPython 3.12 manylinux: glibc 2.12+ i686

blitztext-0.1.1-cp312-cp312-macosx_11_0_arm64.whl (300.4 kB view hashes)

Uploaded CPython 3.12 macOS 11.0+ ARM64

blitztext-0.1.1-cp312-cp312-macosx_10_12_x86_64.whl (307.6 kB view hashes)

Uploaded CPython 3.12 macOS 10.12+ x86-64

blitztext-0.1.1-cp311-none-win_amd64.whl (210.5 kB view hashes)

Uploaded CPython 3.11 Windows x86-64

blitztext-0.1.1-cp311-none-win32.whl (201.3 kB view hashes)

Uploaded CPython 3.11 Windows x86

blitztext-0.1.1-cp311-cp311-musllinux_1_2_x86_64.whl (508.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp311-cp311-musllinux_1_2_i686.whl (528.3 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ i686

blitztext-0.1.1-cp311-cp311-musllinux_1_2_armv7l.whl (617.0 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp311-cp311-musllinux_1_2_aarch64.whl (524.1 kB view hashes)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.1 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl (446.6 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (372.2 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (355.3 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (346.5 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.whl (351.9 kB view hashes)

Uploaded CPython 3.11 manylinux: glibc 2.12+ i686

blitztext-0.1.1-cp311-cp311-macosx_11_0_arm64.whl (301.5 kB view hashes)

Uploaded CPython 3.11 macOS 11.0+ ARM64

blitztext-0.1.1-cp311-cp311-macosx_10_12_x86_64.whl (308.3 kB view hashes)

Uploaded CPython 3.11 macOS 10.12+ x86-64

blitztext-0.1.1-cp310-none-win_amd64.whl (210.5 kB view hashes)

Uploaded CPython 3.10 Windows x86-64

blitztext-0.1.1-cp310-none-win32.whl (201.3 kB view hashes)

Uploaded CPython 3.10 Windows x86

blitztext-0.1.1-cp310-cp310-musllinux_1_2_x86_64.whl (508.1 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp310-cp310-musllinux_1_2_i686.whl (528.3 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ i686

blitztext-0.1.1-cp310-cp310-musllinux_1_2_armv7l.whl (616.8 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp310-cp310-musllinux_1_2_aarch64.whl (524.4 kB view hashes)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.1 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (372.3 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (355.2 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (346.7 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.whl (352.0 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.12+ i686

blitztext-0.1.1-cp310-cp310-macosx_11_0_arm64.whl (300.9 kB view hashes)

Uploaded CPython 3.10 macOS 11.0+ ARM64

blitztext-0.1.1-cp39-none-win_amd64.whl (210.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

blitztext-0.1.1-cp39-none-win32.whl (201.5 kB view hashes)

Uploaded CPython 3.9 Windows x86

blitztext-0.1.1-cp39-cp39-musllinux_1_2_x86_64.whl (508.6 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp39-cp39-musllinux_1_2_i686.whl (528.8 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ i686

blitztext-0.1.1-cp39-cp39-musllinux_1_2_armv7l.whl (617.7 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp39-cp39-musllinux_1_2_aarch64.whl (525.0 kB view hashes)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (372.8 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (356.0 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.4 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl (352.6 kB view hashes)

Uploaded CPython 3.9 manylinux: glibc 2.12+ i686

blitztext-0.1.1-cp39-cp39-macosx_11_0_arm64.whl (301.4 kB view hashes)

Uploaded CPython 3.9 macOS 11.0+ ARM64

blitztext-0.1.1-cp38-none-win_amd64.whl (211.0 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

blitztext-0.1.1-cp38-none-win32.whl (201.7 kB view hashes)

Uploaded CPython 3.8 Windows x86

blitztext-0.1.1-cp38-cp38-musllinux_1_2_x86_64.whl (508.8 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp38-cp38-musllinux_1_2_i686.whl (528.9 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ i686

blitztext-0.1.1-cp38-cp38-musllinux_1_2_armv7l.whl (617.9 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp38-cp38-musllinux_1_2_aarch64.whl (525.5 kB view hashes)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.8 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl (447.5 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (372.9 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (356.1 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.6 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl (352.7 kB view hashes)

Uploaded CPython 3.8 manylinux: glibc 2.12+ i686

blitztext-0.1.1-cp37-none-win_amd64.whl (211.1 kB view hashes)

Uploaded CPython 3.7 Windows x86-64

blitztext-0.1.1-cp37-none-win32.whl (201.7 kB view hashes)

Uploaded CPython 3.7 Windows x86

blitztext-0.1.1-cp37-cp37m-musllinux_1_2_x86_64.whl (508.7 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ x86-64

blitztext-0.1.1-cp37-cp37m-musllinux_1_2_i686.whl (528.9 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ i686

blitztext-0.1.1-cp37-cp37m-musllinux_1_2_armv7l.whl (618.2 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARMv7l

blitztext-0.1.1-cp37-cp37m-musllinux_1_2_aarch64.whl (525.3 kB view hashes)

Uploaded CPython 3.7m musllinux: musl 1.2+ ARM64

blitztext-0.1.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (337.8 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64

blitztext-0.1.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl (448.1 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ s390x

blitztext-0.1.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (373.6 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ppc64le

blitztext-0.1.1-cp37-cp37m-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (356.5 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARMv7l

blitztext-0.1.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (347.6 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

blitztext-0.1.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl (352.6 kB view hashes)

Uploaded CPython 3.7m manylinux: glibc 2.12+ i686

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page