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

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 SimpleTable = Dict[ProcessType, 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_process_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 process_type.
    • It can handle combination patterns and repeated times sensitive matching, delimited by & and ~, 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.

ProcessType

  • None: No transformation.
  • Fanjian: Traditional Chinese to simplified Chinese transformation. Based on FANJIAN.
    • 妳好 -> 你好
    • 現⾝ -> 现身
  • Delete: Delete all punctuation, special characters and white spaces. Based on TEXT_DELETE and WHITE_SPACE.
    • hello, world! -> helloworld
    • 《你∷好》 -> 你好
  • Normalize: Normalize all English character variations and number variations to basic characters. Based on 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.

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 ProcessType

print(reduce_text_process(MatchDeleteNormalize, "hello, world!"))
print(text_process(ProcessType.MatchDelete, "hello, world!"))

Matcher Basic Usage

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

import msgspec

from matcher_py import Matcher
from matcher_py.extension_types import MatchTable, MatchTableType, ProcessType, RegexMatchType, SimMatchType

json_encoder = msgspec.json.Encoder()
matcher = Matcher(
    json_encoder.encode({
        1: [
            MatchTable(
                table_id=1,
                match_table_type=MatchTableType.Simple(process_type = ProcessType.MatchFanjianDeleteNormalize),
                word_list=["hello", "world"],
                exemption_process_type=ProcessType.MatchNone,
                exemption_word_list=["word"],
            ),
            MatchTable(
                table_id=2,
                match_table_type=MatchTableType.Regex(
                  process_type = ProcessType.MatchFanjianDeleteNormalize,
                  regex_match_type=RegexMatchType.Regex
                ),
                word_list=["h[aeiou]llo"],
                exemption_process_type=ProcessType.MatchNone,
                exemption_word_list=[],
            )
        ],
        2: [
            MatchTable(
                table_id=3,
                match_table_type=MatchTableType.Similar(
                  process_type = ProcessType.MatchFanjianDeleteNormalize,
                  sim_match_type=SimMatchType.MatchLevenshtein,
                  threshold=0.5
                ),
                word_list=["halxo"],
                exemption_process_type=ProcessType.MatchNone,
                exemption_word_list=[],
            )
        ]
    })
)
# Check if a text matches
assert matcher.is_match("hello")
assert not matcher.is_match("word")
# Perform process as a list
result = matcher.process("hello")
assert result == [{'match_id': 1,
  'table_id': 2,
  'word_id': 0,
  'word': 'h[aeiou]llo',
  'similarity': 1.0},
 {'match_id': 1,
  'table_id': 1,
  'word_id': 0,
  'word': 'hello',
  'similarity': 1.0},
 {'match_id': 2,
  'table_id': 3,
  'word_id': 0,
  'word': 'halxo',
  'similarity': 0.6}]
# Perform word matching as a dict
assert matcher.word_match(r"hello, world")[1] == [{'match_id': 1,
  'table_id': 2,
  'word_id': 0,
  'word': 'h[aeiou]llo',
  'similarity': 1.0},
 {'match_id': 1,
  'table_id': 1,
  'word_id': 0,
  'word': 'hello',
  'similarity': 1.0},
 {'match_id': 1,
  'table_id': 1,
  'word_id': 1,
  'word': 'world',
  'similarity': 1.0}]
# Perform word matching as a string
result = matcher.word_match_as_string("hello")
assert result == """{"2":[{"match_id":2,"table_id":3,"word_id":0,"word":"halxo","similarity":0.6}],"1":[{"match_id":1,"table_id":2,"word_id":0,"word":"h[aeiou]llo","similarity":1.0},{"match_id":1,"table_id":1,"word_id":0,"word":"hello","similarity":1.0}]}"""

Simple Matcher Basic Usage

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

import msgspec

from matcher_py import SimpleMatcher
from matcher_py.extension_types import ProcessType

json_encoder = msgspec.json.Encoder()
simple_matcher = SimpleMatcher(
    json_encoder.encode(
        {
            ProcessType.MatchNone: {
                1: "hello&world",
                2: "word&word~hello"
            },
            ProcessType.MatchDelete: {
                3: "hallo"
            }
        }
    )
)
# Check if a text matches
assert simple_matcher.is_match("hello^&!#*#&!^#*()world")
# Perform simple processing
result = simple_matcher.process("hello,world,word,word,hallo")
assert result == [{'word_id': 1, 'word': 'hello&world'}, {'word_id': 3, 'word': 'hallo'}]

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.5.3.tar.gz (312.1 kB view details)

Uploaded Source

Built Distributions

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

Uploaded CPython 3.12 Windows x86-64

matcher_py-0.5.3-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.5.3-cp312-cp312-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.12 musllinux: musl 1.2+ ARM64

matcher_py-0.5.3-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.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.3-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

matcher_py-0.5.3-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.5.3-cp311-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.11 Windows x86-64

matcher_py-0.5.3-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.5.3-cp311-cp311-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.11 musllinux: musl 1.2+ ARM64

matcher_py-0.5.3-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.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.3-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

matcher_py-0.5.3-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.5.3-cp310-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.10 Windows x86-64

matcher_py-0.5.3-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.5.3-cp310-cp310-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.10 musllinux: musl 1.2+ ARM64

matcher_py-0.5.3-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.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.3-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

matcher_py-0.5.3-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.5.3-cp39-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.9 Windows x86-64

matcher_py-0.5.3-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.5.3-cp39-cp39-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.9 musllinux: musl 1.2+ ARM64

matcher_py-0.5.3-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.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.3-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

matcher_py-0.5.3-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.5.3-cp38-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.8 Windows x86-64

matcher_py-0.5.3-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.5.3-cp38-cp38-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.8 musllinux: musl 1.2+ ARM64

matcher_py-0.5.3-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.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.3-cp38-cp38-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

matcher_py-0.5.3-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.5.3.tar.gz.

File metadata

  • Download URL: matcher_py-0.5.3.tar.gz
  • Upload date:
  • Size: 312.1 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.5.3.tar.gz
Algorithm Hash digest
SHA256 57b7ec692c10dc03088c7fbac51f827cd041cc5694dd2efb35586aae0736cb99
MD5 254df038e75cdd01df12139a79e22753
BLAKE2b-256 5898f1398da573e84256a7d84a7e26924e42e9d99cf27f8c6bd25cc5b8312e9a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 035d7582abc74403aabcaf0e51ea20ed9f4087c211ba4c9e17466ad4dc453c00
MD5 57156c601b27ef946905a93874c2785a
BLAKE2b-256 367e84bc935edb144dba15886cabe7538441b0548b758eaab7b056d8463af797

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 473550098e0c6cb35fc7998fc0302097194b7b0b884559340bcd57a39b9e284c
MD5 b042b6d53810e6abca47d8599debbf5f
BLAKE2b-256 579948c6be0d264ecb93bb5bad7104b82ccd01309dfed0735b7883e4fd85c2c8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 59ea02f0adbe3f3e733f36c01b5305376d3de7f8043a5c085f6d47573dd48f66
MD5 4f956593c91e765837867ca85cfa671a
BLAKE2b-256 bf4dd84d3a330493dadd52ef33f5f31333f6d627a3f1631ec14d473fa37c0f3a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 09537e91e530ffce833acb4505e57e87d405b44a90abb3d73dfe1cb46f8098d2
MD5 5861a1250089c30abd91e5e2cb37704f
BLAKE2b-256 5617be696f077d7321e97ef2d043077ddb3212ee9be7f649fc758316cf538a39

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 866227848eaebad8a221d8c7a0f6b89c40e8e470cda5bcb9f0690793468729fd
MD5 9d03f2c345ff1fe76ba2648cf7f1f03c
BLAKE2b-256 0549fb26cc86341ed4365879de34a1e3bf8b5752090003e4085da9b5bebf2137

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c1b6dee3f5e0217646d659b8bda2af344a0355cd769bddd3611b877e80e81de8
MD5 58e9e6a9db94799508d9f8a313cc1dca
BLAKE2b-256 e0b4329560ea8f140d9c1955026d45ed4ce16ea88f38466ea5ffd98dc884a060

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 5ef0f39e95887482728ec7c7b9602fc16e480caf42474aae9f5b57b24b9f12f3
MD5 d58382c03154f58cae76f2ae41b27469
BLAKE2b-256 c9f20d9b270a045878763e6831c7564642c920e38c920f4ff54e73700c02ca85

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 0ebdca6dc5e0c18bb2a0928d8de7577a8bc166afbd83a31da6d70a16036de622
MD5 d4b4b8506be9afac66927beaf47ccd2c
BLAKE2b-256 ada9a0ca279ac2f1cc0ead4b907bb1af03726b361f72b864781c58bc0ae86cdb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 487a3ecd6bfa3230637decca2e001df59dbb7a66a6162953a7c163f262542721
MD5 aa6a106490277da51a4c57211f285a9d
BLAKE2b-256 4a27e00ea4a23a728392cadfc5a999dc74feb4148fa3dae2ed7e4652ce87250a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c673e437927124342b7b3a3c551f1696e5b51ffb3cdbbce766ac4ae010c35433
MD5 ef0ef4c8d26a58b753e6b53978ef8def
BLAKE2b-256 3d12f677c86897d1b8ee3f56a8a1544ddd7f971e223caa05ef18afc555140a0c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8242e606ed9bab3455bde4ed8a6d144b1cc12d8ef47b7c243b3bea38249eb264
MD5 fd09e0ac35de352b62ea95b88ba53867
BLAKE2b-256 e2fb2270bb83636325dc46f1c1f6f2f26dc8229c0bd037510ef4cf337395be27

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5923df6e18954dcad5fb4af0517ffb10faedc879ddd0ec7c1f66244eb9a2898e
MD5 9f67cff104ab186be563de0c72f34814
BLAKE2b-256 1fc8762b94d79681836b326f57c17278960fcdbdaf2f362a242865e5884d9c76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8baf54ad13c786aea9b2b6867d9142449e5aa6d79c7401324af5496ac6b64c35
MD5 271529908cbb5171031a52e4b9f94f40
BLAKE2b-256 a2d30087cf9b6f5e786b5e7164a5c546a84a35c4ea83664ea2ebc51619a2693d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6d40ad7f6554aac4d697166dc4e0a3347ad2ef1ff51fa99eaa14a81e99183a59
MD5 155bc91a23b8e7388fa401e3278344dc
BLAKE2b-256 2060f1d98056e8efba488914e8cefecf845f6ce01a8dbe964c21865efb7af400

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 1c1b2b7700204d324559cd36446771c5c61679c77384eef2fcb64e3b67fbd757
MD5 799fc1a6dd151f22adc5deeca0bf438a
BLAKE2b-256 42f42be7368d5177b2460fe0b4d4432d4abef8ad93583172ba8dca9d79519bd7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0b5439c5d5af45bc47475f2739b0d028c2edc1b5964a3b9fb25329f5a804ff56
MD5 cf1a5982d6d96c4bc35d892fc5a71029
BLAKE2b-256 542528ef551c4aadea42f98e89a97bdd59a0ace1d4f74d49137044c3f6214530

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 27334f534096d0cd8d75ebed5a5c8c07591256cad77e34a11d82d3914e0bd11c
MD5 d86558c739da13851fcc210e32cc168f
BLAKE2b-256 025181a47298ac3b3a9b8b484a9e57150abf21ce39c48b2be73db904b54f5ef2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1b523b2f95fe51ef14554b0ed7dc762d346fcfd44613ef2db402fb37f2a2eccb
MD5 383d312d7a44d6d4dcf7da306180abd9
BLAKE2b-256 a94a119a1d4767da2fd02b8ce59d8eb759b9bcc7ae7188ecf05184c22670e101

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3a60977e6d18319ba5e86f41ab12a4c4139ccb3dbc3d47ac6101833d00a291b2
MD5 5496d542bdab9f1024cdc9e84479bfd2
BLAKE2b-256 55a72a370e9a328a0f6be92d42a993fadad92025f66742004c4a0cb96defc0b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e25b281f91c75baa94a17a0c0b622d790d3d8c34f592f3a5e5dc570198559f84
MD5 2cf1e93ba00812d0d93aeda911ece7e8
BLAKE2b-256 fa0f48457cc2afabd8a7bb22d90a784cc0ed383cb8cf5c75037e8f14a760e830

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp310-cp310-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 bb2a3ae75f9e2ceafd184733a92942893de5c20e8cb785247720c0e87c2362ce
MD5 7fcdf09397e201364523d2d88eff5882
BLAKE2b-256 c034775d4437a2ca5916609db9744eec24cd26c4040aac5ff90ca7ebb66eb475

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 b49ed98300dbe00da3e123d1a4b7fc13090701bf49316d747386aee0453e3efb
MD5 d3306ec3ef910d24e97ac42d3e7dedcb
BLAKE2b-256 db9fa99711b501da843146411455c977227f439d2fe67189c72eb403b8d9fb90

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 96a2c94e5ee6d534778cb1f1f9422289d40fa6e32ff7efc384857524e1a2cea7
MD5 0db942ce58426f1408e768980574b6e2
BLAKE2b-256 79778bd880aebdd3e5fcc985a4cebb8084274d7eb71484b5914bb887875be1b2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1a0370879ea38531823339c340e6201b000ac0e0a1512416ec76e1294605c375
MD5 fc96ba317187ebebadeb056d9fabaabd
BLAKE2b-256 a1c871cb66979a2bc607927f2225999d824f62d76990a718411470ada7670730

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7330444ebf09ba8f7951d1a92da8d80e3c04f1307e50a259288851da6b36760c
MD5 3e30a60abe65fab0f7cb716607eed8ee
BLAKE2b-256 d1522928ec58859c6ca15dddf2b586c1cd1132c1f75ae70fe6c25e655757b172

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e93ec3e51b8977eda39df70567cd2d244ab16c3ae0f8a3f380e2eaef2df1aed8
MD5 3e91bdfd8155a9a40d9ecaf996538642
BLAKE2b-256 7e9ee49e7400090e6dce9aebda1fdda93f244143725ebf21196e44bd977eaf6c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 cb1de4bd747e6b8767c2245ce2627a11f2a9994a0d559ec69adeed9139bddac7
MD5 07faa3b0135eb20fcb2dbce4a1e94b8e
BLAKE2b-256 b83044b7aa958483c5450752f8fb54c61e2d859c9e8151a2888f31e595bffdbb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp39-cp39-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fe7764051f95e827b0f519f7544d4e1cc0926bc45b4e737ea3186554213723b6
MD5 15ee9970ef75dd692c90748311074cd1
BLAKE2b-256 c1fbf6cea13d536624c1bd41b041b998c4bd68ad1ac4bc6b2de8d2e24383becf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 ca6eac45a1066a8bd31a8601afdfac94760b121921ce7f3f40c866213773c301
MD5 fec070f641c53f47456bcb54843524ed
BLAKE2b-256 17db75e14c3eb685c667b6305605d4818b0df0dcc34759ff49c943deb43f9a68

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7cc5a2882bbefcf369f46981411a409c42d3e5f35ae6e348e424124c1a02e06e
MD5 01bfd46c7b99a1bd9d9bef64d48b2b8a
BLAKE2b-256 7650471dbf42f54dcdb52efc825c676d022dbc7b1cb883266a49951a92c9a538

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 6fadc1c740c422efabc55e4c6c3585eae224dd549ba2e0f468aed3179575fb33
MD5 a99f4c362892a753638dffc8e851c80f
BLAKE2b-256 1f98d02d0fd8328be04b00c19b9518f2d0d69ca2ef498fc07234a5e50b7d2f3d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e52a96be8d51a39320d697a5b9f40f6a0ff45884ebaafad24f08d2e65e9d1e65
MD5 1f820e43112b097db834c565c8ffe577
BLAKE2b-256 5653db4c6035fbfb42d41345ffe6e4de5d607148efbfaa13f4785778bd64dffa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 956a8e278041708841aad4bdcfcbf6efba61b7dff2b6cb20cfc64bf3259d73d0
MD5 23d0f549d58d0e58e7ae57953af6ef05
BLAKE2b-256 e48effc026f6931f2bd4e197db92c1524b0d576e3b19f93dec74b4923b60b312

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5991291979c797188bfcfe055d51861e7cb4777790b65245b0886ca97e28a5d0
MD5 ac331aaa767f7f4f694f8145f495c7a6
BLAKE2b-256 da9ca656b36a40901a8179e798546c812b67ab4f1e13b1cf192b3ff3ff3e5226

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.3-cp38-cp38-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 0b503552ce8cd018cadb8845efb8df19954a6af037f60c57be2254ad58c82b59
MD5 200892af0752f7a47eedac54102000ed
BLAKE2b-256 eff3067605232f51297cf4ad9f356f88d35ae13395d10612e6b9f0547999c3ba

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