Skip to main content

Blazingly fast Word Matcher

Project description

Matcher Rust Implementation with PyO3 Binding

A high-performance, multi-functional word matcher implemented in Rust.

Designed to solve AND OR NOT and TEXT VARIATIONS problems in word/word_list matching. For detailed implementation, see the Design Document.

Features

  • Multiple Matching Methods:
    • Simple Word Matching
    • Regex-Based Matching
    • Similarity-Based Matching
  • Text Normalization:
    • Fanjian: Simplify traditional Chinese characters to simplified ones. Example: 蟲艸 -> 虫草
    • Delete: Remove specific characters. Example: *Fu&*iii&^%%*&kkkk -> Fuiiikkkk
    • Normalize: Normalize special characters to identifiable characters. Example: 𝜢𝕰𝕃𝙻𝝧 𝙒ⓞᵣℒ𝒟! -> hello world!
    • PinYin: Convert Chinese characters to Pinyin for fuzzy matching. Example: 西安 -> /xi//an/, matches 洗按 -> /xi//an/, but not -> /xian/
    • PinYinChar: Convert Chinese characters to Pinyin. Example: 西安 -> xian, matches 洗按 and -> xian
  • AND OR NOT Word Matching:
    • Takes into account the number of repetitions of words.
    • Example: hello&world matches hello world and world,hello
    • Example: 无&法&无&天 matches 无无法天 (because is repeated twice), but not 无法天
    • Example: hello~helloo~hhello matches hello but not helloo and hhello
  • Customizable Exemption Lists: Exclude specific words from matching.
  • Efficient Handling of Large Word Lists: Optimized for performance.

Installation

Use pip

pip install matcher_py

Install pre-built binary

Visit the release page to download the pre-built binary.

Usage

The msgspec library is recommended for serializing the matcher configuration due to its performance benefits. You can also use other msgpack serialization libraries like ormsgpack. All relevant types are defined in extension_types.py.

Explanation of the configuration

  • Matcher's configuration is defined by the MatchTableMap = Dict[int, List[MatchTable]] type, the key of MatchTableMap is called match_id, for each match_id, the table_id inside is required to be unique.
  • SimpleMatcher's configuration is defined by the SimpleMatchTableMap = Dict[SimpleMatchType, Dict[int, str]] type, the value Dict[int, str]'s key is called word_id, word_id is required to be globally unique.

MatchTable

  • table_id: The unique ID of the match table.
  • match_table_type: The type of the match table.
  • word_list: The word list of the match table.
  • exemption_simple_match_type: The type of the exemption simple match.
  • exemption_word_list: The exemption word list of the match table.

For each match table, word matching is performed over the word_list, and exemption word matching is performed over the exemption_word_list. If the exemption word matching result is True, the word matching result will be False.

MatchTableType

  • Simple: Supports simple multiple patterns matching with text normalization defined by simple_match_type.
    • We offer transformation methods for text normalization, including Fanjian, Normalize, PinYin ···.
    • It can handle combination patterns and repeated times sensitive matching, delimited by &, such as hello&world&hello will match hellohelloworld and worldhellohello, but not helloworld due to the repeated times of hello.
  • Regex: Supports regex patterns matching.
    • SimilarChar: Supports similar character matching using regex.
      • ["hello,hallo,hollo,hi", "word,world,wrd,🌍", "!,?,~"] will match helloworld!, hollowrd?, hi🌍~ ··· any combinations of the words split by , in the list.
    • Acrostic: Supports acrostic matching using regex (currently only supports Chinese and simple English sentences).
      • ["h,e,l,l,o", "你,好"] will match hope, endures, love, lasts, onward. and 你的笑容温暖, 好心情常伴。.
    • Regex: Supports regex matching.
      • ["h[aeiou]llo", "w[aeiou]rd"] will match hello, world, hillo, wurld ··· any text that matches the regex in the list.
  • Similar: Supports similar text matching based on distance and threshold.
    • Levenshtein: Supports similar text matching based on Levenshtein distance.
    • DamerauLevenshtein: Supports similar text matching based on Damerau-Levenshtein distance.
    • Indel: Supports similar text matching based on Indel distance.
    • Jaro: Supports similar text matching based on Jaro distance.
    • JaroWinkler: Supports similar text matching based on Jaro-Winkler distance.

SimpleMatchType

  • None: No transformation.
  • Fanjian: Traditional Chinese to simplified Chinese transformation. Based on FANJIAN.
    • 妳好 -> 你好
    • 現⾝ -> 现身
  • Delete: Delete all punctuation, special characters and white spaces.
    • hello, world! -> helloworld
    • 《你∷好》 -> 你好
  • Normalize: Normalize all English character variations and number variations to basic characters. Based on SYMBOL_NORM, NORM and NUM_NORM.
    • ℋЀ⒈㈠Õ -> he11o
    • ⒈Ƨ㊂ -> 123
  • PinYin: Convert all unicode Chinese characters to pinyin with boundaries. Based on PINYIN.
    • 你好 -> ␀ni␀␀hao␀
    • 西安 -> ␀xi␀␀an␀
  • PinYinChar: Convert all unicode Chinese characters to pinyin without boundaries. Based on PINYIN.
    • 你好 -> nihao
    • 西安 -> xian

You can combine these transformations as needed. Pre-defined combinations like DeleteNormalize and FanjianDeleteNormalize are provided for convenience.

Avoid combining PinYin and PinYinChar due to that PinYin is a more limited version of PinYinChar, in some cases like xian, can be treat as two words xi and an, or only one word xian.

Delete is technologically a combination of TextDelete and WordDelete, we implement different delete methods for text and word. 'Cause we believe CN_SPECIAL and EN_SPECIAL are parts of the word, but not for text. For text_process and reduce_text_process functions, users should use TextDelete instead of WordDelete.

  • WordDelete: Delete all patterns in WHITE_SPACE.
  • TextDelete: Delete all patterns in TEXT_DELETE.

Text Process Usage

Here’s an example of how to use the reduce_text_process and text_process functions:

from matcher_py import reduce_text_process, text_process
from matcher_py.extension_types import SimpleMatchType

print(reduce_text_process(SimpleMatchType.MatchTextDelete | SimpleMatchType.MatchNormalize, "hello, world!"))
print(text_process(SimpleMatchType.MatchTextDelete, "hello, world!"))

Matcher Basic Usage

Here’s an example of how to use the Matcher:

import msgspec
import numpy as np
from matcher_py import Matcher
from matcher_py.extension_types import MatchTable, MatchTableType, SimpleMatchType

msgpack_encoder = msgspec.msgpack.Encoder()
matcher = Matcher(
    msgpack_encoder.encode({
        1: [
            MatchTable(
                table_id=1,
                match_table_type=MatchTableType.Simple(simple_match_type = SimpleMatchType.MatchFanjianDeleteNormalize),
                word_list=["hello", "world"],
                exemption_simple_match_type=SimpleMatchType.MatchNone,
                exemption_word_list=["word"],
            )
        ]
    })
)
# Check if a text matches
assert matcher.is_match("hello")
assert not matcher.is_match("hello, word")
# Perform word matching as a dict
assert matcher.word_match(r"hello, world")[1]
# Perform word matching as a string
result = matcher.word_match_as_string("hello")
assert result == """{1:[{\"match_id\":1,\"table_id\":1,\"word\":\"hello\"}]"}"""
# Perform batch processing as a dict using a list
text_list = ["hello", "world", "hello,word"]
batch_results = matcher.batch_word_match(text_list)
print(batch_results)
# Perform batch processing as a string using a list
text_list = ["hello", "world", "hello,word"]
batch_results = matcher.batch_word_match_as_string(text_list)
print(batch_results)
# Perform batch processing as a dict using a numpy array
text_array = np.array(["hello", "world", "hello,word"], dtype=np.dtype("object"))
numpy_results = matcher.numpy_word_match(text_array)
print(numpy_results)
# Perform batch processing as a string using a numpy array
text_array = np.array(["hello", "world", "hello,word"], dtype=np.dtype("object"))
numpy_results = matcher.numpy_word_match_as_string(text_array)
print(numpy_results)

Simple Matcher Basic Usage

Here’s an example of how to use the SimpleMatcher:

import msgspec
import numpy as np
from matcher_py import SimpleMatcher
from matcher_py.extension_types import SimpleMatchType

msgpack_encoder = msgspec.msgpack.Encoder()
simple_matcher = SimpleMatcher(
    msgpack_encoder.encode({SimpleMatchType.MatchNone: {1: "example"}})
)
# Check if a text matches
assert simple_matcher.is_match("example")
# Perform simple processing
results = simple_matcher.simple_process("example")
print(results)
# Perform batch processing using a list
text_list = ["example", "test", "example test"]
batch_results = simple_matcher.batch_simple_process(text_list)
print(batch_results)
# Perform batch processing using a NumPy array
text_array = np.array(["example", "test", "example test"], dtype=np.dtype("object"))
numpy_results = simple_matcher.numpy_simple_process(text_array)
print(numpy_results)

Contributing

Contributions to matcher_py are welcome! If you find a bug or have a feature request, please open an issue on the GitHub repository. If you would like to contribute code, please fork the repository and submit a pull request.

License

matcher_py is licensed under the MIT OR Apache-2.0 license.

More Information

For more details, visit the GitHub repository.

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

matcher_py-0.4.4.tar.gz (347.5 kB view details)

Uploaded Source

Built Distributions

matcher_py-0.4.4-cp312-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.12 Windows x86-64

matcher_py-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ x86-64

matcher_py-0.4.4-cp312-cp312-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

matcher_py-0.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ x86-64

matcher_py-0.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

matcher_py-0.4.4-cp312-cp312-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

matcher_py-0.4.4-cp312-cp312-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.12 macOS 10.12+ x86-64

matcher_py-0.4.4-cp311-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11 Windows x86-64

matcher_py-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ x86-64

matcher_py-0.4.4-cp311-cp311-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

matcher_py-0.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

matcher_py-0.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

matcher_py-0.4.4-cp311-cp311-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

matcher_py-0.4.4-cp311-cp311-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.11 macOS 10.12+ x86-64

matcher_py-0.4.4-cp310-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

matcher_py-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ x86-64

matcher_py-0.4.4-cp310-cp310-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

matcher_py-0.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

matcher_py-0.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

matcher_py-0.4.4-cp310-cp310-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

matcher_py-0.4.4-cp310-cp310-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.10 macOS 10.12+ x86-64

matcher_py-0.4.4-cp39-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9 Windows x86-64

matcher_py-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ x86-64

matcher_py-0.4.4-cp39-cp39-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

matcher_py-0.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

matcher_py-0.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

matcher_py-0.4.4-cp39-cp39-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

matcher_py-0.4.4-cp39-cp39-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.9 macOS 10.12+ x86-64

matcher_py-0.4.4-cp38-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

matcher_py-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ x86-64

matcher_py-0.4.4-cp38-cp38-musllinux_1_2_aarch64.whl (2.1 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

matcher_py-0.4.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

matcher_py-0.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.9 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

matcher_py-0.4.4-cp38-cp38-macosx_11_0_arm64.whl (1.7 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

matcher_py-0.4.4-cp38-cp38-macosx_10_12_x86_64.whl (1.7 MB view details)

Uploaded CPython 3.8 macOS 10.12+ x86-64

File details

Details for the file matcher_py-0.4.4.tar.gz.

File metadata

  • Download URL: matcher_py-0.4.4.tar.gz
  • Upload date:
  • Size: 347.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.4

File hashes

Hashes for matcher_py-0.4.4.tar.gz
Algorithm Hash digest
SHA256 c99ab50f8ac23f509d281c65e7b7f742ebaa378f0dccbe3769186910f399ae2d
MD5 0e28fc006d527133d597cd1b6470e811
BLAKE2b-256 7f492ee5018b6b0fe993f1ac939c0e7f4c3946c0102b7f685f1bf9ec79fad955

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 df021d08b15f590ad0b11bdf8af1dec121273f8e2462c90626f8f218baa65f91
MD5 7c9a94741c9793dc21c73331535198c1
BLAKE2b-256 7e9bc48733d190a4e4aafa98b31b18f21968609e267f6024084a5c25ef84ca5a

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 5deb6938c396cba71f13dc2aa355aa996621037b1030a7fa0f989709ea683b1d
MD5 4d533055c5087950384e1eed5c9e8725
BLAKE2b-256 46015cb8aa936ccfa13f151af8dd26a022fb9c2773906db295d6922c39427e89

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 0d83c569800f2e911c279774ac143f87abefdbe04046e756da4b7effd0790e56
MD5 c136e992bf2f053b1e1de7acee31e8a4
BLAKE2b-256 3f7e41508f0f3b65813e874752b13a76458e727c2050b646a2454a7124828ca5

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1767f45c53df5c139a2afa23d99c1c906426c7862dbabf53e49e572b41dd7671
MD5 23953c98cd31b306698ae7a2edcda62c
BLAKE2b-256 c4ab02121d6ecd7b69b0476653b8af4aa0d490474c6042d7395f5534b3fc82db

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 abe87d2ed18d6cdb0ee86313d901de1d206bf8e40d1ce5fd5727968785a87154
MD5 0838d105f63e097374d488b36dfbc413
BLAKE2b-256 a55df71975c7b18436cace22e511b1f6c0a98231825f60e36f6353d3b31ce72e

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 096433bda90e7b1284142b599ad7b33f8d537e5671e288359d266a78d39c566d
MD5 dd67942edd459a58158bce6239410f56
BLAKE2b-256 c45dc84191821d1b25eb4ae0d23c81cfe8f59658449f123744dc755e265c9ade

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 24edfc281a01960c933c6735a0b4d1daeaeb87590f12463abca66a2fbcf2265f
MD5 76ad93028ecfa55417280e71ee52b2e1
BLAKE2b-256 5835f79bcb42bc62c39f9eea5e7e97807547bb415bee2e387ba03e5738537bf3

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 4dfbbf7f94b7f9bcf51562ef066cde9751f903fa45a9bbc58e5fb87b356cd359
MD5 45115d02c28a1958086c101f4e6dd1ae
BLAKE2b-256 426fe1a9b785d2e0bc25edf10df47ea22b78f34a9f5497d3c308654c3dccc1c8

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8440d996c8608961e6c7fe1c6625114250c7b824dcf0d83eee9b34fccff57370
MD5 84ab4132d34be25efb41aeebff0afa02
BLAKE2b-256 aaed367e7209bccaec01676744bd9254b52448097342d4f22faab1241b58575f

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cd80862d7db646cbc3529e7798bbd359d743bc8ca4fad9f06ab5adee32338bc5
MD5 a0423015235ac0719e5b9c04cf42ef9f
BLAKE2b-256 0e92a69458aae9d616487a517377051087ccce455beb90faaa8daacb59afd5b4

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 059bef6ea8664f498fb2ab76064a1899e8ec6cc1c610b4d478335e2453fb32cc
MD5 41ba7df7daf3d8ff04113e83484e698d
BLAKE2b-256 4541b4f89fa388aad05cd2f347051e400bbf13b067a10fc479b723d2b83992cd

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f76374c0241a9532557d9d3b7ecd14e2c1f629ac7f798188a2725a341fb4f7ef
MD5 8191643a94f46ae158875780bee7401c
BLAKE2b-256 45a36a7c2bdd08e512e055cd7405c4b2626b4ad0a8b2ee0246b132ec9ba693eb

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 71c0d4799a551abb557ce424804e5546e7d14d7411ea5f2f8db3e60a22e3f514
MD5 bfb7b940d145795b1a370d8072ce5e93
BLAKE2b-256 7e880fdd0b6fcd4d347d32dabbc01a89b6a77aacc8ac2a75124c3354c6242b13

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 ee4209ad19b06a98dbbedac9506bc0260f67e11dde636ab3c4557a450fcff4f3
MD5 1803554dbe2017f5d47580277b5a83a7
BLAKE2b-256 4d72c52bcc3e46a3f3860eed9ba11529b8780016a9cf469700bce53fea0f1c4a

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 1d39607b1c12f207ee50c499a51ce3d2091defe444ae54faeb7bd3b9820a3ef0
MD5 e62ae5e51ae83becede960c034732fdd
BLAKE2b-256 a8cdd2c6b44452c03d680741ef046abacceb8e857b85c8e375dabdc90fdd6279

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0915bf4d63bdedfae4b0d920a5cf98f088e5b2e0f8814a6d4a6e5d7d6aed31a6
MD5 07524a00dd00ca4df581a9f58ad54119
BLAKE2b-256 8dbf036ab3415de68a65f48e2ee76d14bbb5f0cc9acd2b7c3cab43bd60932494

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 ace75ad0620106447732504f523bc50888e149194542d612455fdd393ff8d41d
MD5 48188bb07e8bdd4d773ee311594896a8
BLAKE2b-256 72cd17d8183b2a61ccc779b0ef2188c1f1b30c7d2af4b65e74a75e5007f083ba

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7f1199717a9cfd99103e809e55b882e8abb9933065e8111fad34a1274ff131a9
MD5 34147359486390c12a9dc6e54a09fab8
BLAKE2b-256 706a0bc77277fa12a2df9694a1a819e8ad7664050c8629c903b3e96b42c20c3c

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a466703edb8cf7f9d52cf5baf9452bfb32f08153458116e757e0d9434b5e9314
MD5 2ff507011dedaf456e4dd1ab5b32daf4
BLAKE2b-256 fafa7cbaa468bf0943f695052be90405ec2a7ffe70e1cbd2b7194f550558bdf3

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 532ae962a7d63548322c0216c7609f8d853ca74be9421bd6feb729dc262fdc2c
MD5 74f4d1e66d495d58e9c33fd50bca2195
BLAKE2b-256 816a1349cee9c2b28d66165e29630589806d402de94b5584861cfd130e938f48

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp310-cp310-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bebc79c0bea91759278943b588604cdf73cf66a5e34d5bb6b2ee91f339b065e7
MD5 4dd27762c67ff84ea515ac61754c696a
BLAKE2b-256 ad9edd8e67eca4eeb327440a5e68c1dadefb636960adc3a2fd67c08cc9befbc8

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 d8abcb68f2fc2e68e235e433286ab887da8e0968fa6e2a33df78c6c8c49dd17f
MD5 88125849bc27de0fe7cedc02b218f6a1
BLAKE2b-256 84e125dfc0246070f8b469b96954666e6e3d0d0e07c90c88d90b52f35514597c

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 070f5886f041769bd36b24b5a108478602d6649723768846ede393229d51be90
MD5 16e6fa7a4e50ad328b3e6d09d1dcd342
BLAKE2b-256 537f7d431889f71feff05782958a2b26d8b3826be154047507d9b074ad88112e

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 5900e9f8d327e238b60320d0c585b61862180208b6422a26260723c77b1cb9c6
MD5 ed4f6a18d322aac16147c9ebad608d7c
BLAKE2b-256 3405a7a1432a3d878575e1085332d23d850ff102866d3f510d870a6d00074658

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b07eab80364030a8267c138109df01320472a9cdcf3bf82d95e475dd7f2b1c21
MD5 66c85c52bed4fec566c484e7012f4262
BLAKE2b-256 b05b16b7aafa4daadb674b18024a464d2afd806cb1e1f2f4ec1e455d43dd3b1c

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b40ab1326ceffb34c1ce4b07733d251bdcc7eb5ac0bb51fb136b26457dda9bd3
MD5 493036182e0dfef4b8707e87f7077a5f
BLAKE2b-256 425a3ee13eb831f037614a09703dbbb9496595094f07c9edb7737d17563ca5b4

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 be84876d3250149c525f5a603bf133c15852038381e7660ce14538264a98505c
MD5 bc3dbb9b295732d0b1df03456121bec4
BLAKE2b-256 d7570cb5d1682a795f070b35dbaa027356dad4feafccd9474568b9ee8954ca5c

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp39-cp39-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dec85f186c10c6ec466aa87dc8ef831e350c7b5c181365d38391c225a2cc14a0
MD5 a060ae9bf1b7253fae5e30358bc2f036
BLAKE2b-256 281c73d8bab819c3c586c1af91f10c6e56b14d5dc3f4ca23bd4636722c9e6135

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 64cc8cf812429ad60efe37a191c63ad44837f87a6b1ebb8b866f36f84d3e89f6
MD5 6454f180d1b763f0374b40d07f7b59e6
BLAKE2b-256 1ff95f0ca63ff27131c04f863ba37fd7807147b9d4b62194c9c1aa631c08cb24

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 85295fd6133ad87ba60f2bbda6e4a7d703fbc1eaa68a6632d2a2d24798437cd3
MD5 6e6b877b0e73e4e83d8b711fb773dd8d
BLAKE2b-256 56a4b10ea1e7f401b390c0aef10668b1c864e09931610fe899907f4bc04821f7

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 4d18244d9b23854f872f8128338b0f4a8dd70112e14951ee8c3d3c7c84be02dd
MD5 13134a2415c041f66fd490766daee33a
BLAKE2b-256 bc58a2fd638b8c8bb58b79a9086fd10eabdd1c149dde7c673ee1410fdfe24d7f

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b236e2c98d28df0314e28449eef659e39785ba08463c5cd7281e127c99a9d7b1
MD5 95c9e86405b2c187da9309a3f8adb8db
BLAKE2b-256 0ab44d90da91ecc3545948b977a4e16d385997ef8e6b64e235748b2932245f3e

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e79f4cdc7a79dd271ec224a274f93ef6393755481cb8786b5c17de46a40ae7bd
MD5 2b68f87ba480f10aad38c8ed33cae824
BLAKE2b-256 7e80667e8834ab9056f1be6387e746a7caa252d0362b57832c664fe72d72b704

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b9324b672e32bd0769f0e3ffb6f2e1da8525a9396e86014546f82869350155ca
MD5 bfd017cbc60ff14b77347309f412d725
BLAKE2b-256 49234244d2308f1757f585f0d19272dd8b75172b1e12847fb8d15b9655416a8f

See more details on using hashes here.

File details

Details for the file matcher_py-0.4.4-cp38-cp38-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.4.4-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0d9dba93c0052b403dfeca969723b3092af7d9575ba3f3f5078fd3c9b09187e1
MD5 b6f7ade7abd368ca20e25df41051105a
BLAKE2b-256 a993554cda030511953ce992ac0d7aab2a9498eb0dffb975f7bf87912c322b7b

See more details on using hashes here.

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