Skip to main content

A high-performance matcher designed to solve LOGICAL and TEXT VARIATIONS problems in word matching, implemented in Rust.

Project description

Matcher Rust Implementation with PyO3 Binding

A high-performance matcher designed to solve LOGICAL and TEXT VARIATIONS problems in word matching, implemented in Rust.

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(ProcessType.MatchDeleteNormalize, "hello, world!"))
print(text_process(ProcessType.MatchDelete, "hello, world!"))

Matcher Basic Usage

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

import json

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

matcher = Matcher(
    json.dumps({
        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=[],
            )
        ]
    }).encode()
)
# 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 json

from matcher_py import SimpleMatcher
from matcher_py.extension_types import ProcessType

simple_matcher = SimpleMatcher(
    json.dumps(
        {
            ProcessType.MatchNone: {
                1: "hello&world",
                2: "word&word~hello"
            },
            ProcessType.MatchDelete: {
                3: "hallo"
            }
        }
    ).encode
)
# 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.5.tar.gz (315.3 kB view details)

Uploaded Source

Built Distributions

matcher_py-0.5.5-cp313-none-win_amd64.whl (1.7 MB view details)

Uploaded CPython 3.13 Windows x86-64

matcher_py-0.5.5-cp313-cp313-musllinux_1_2_x86_64.whl (2.0 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ x86-64

matcher_py-0.5.5-cp313-cp313-musllinux_1_2_aarch64.whl (2.0 MB view details)

Uploaded CPython 3.13 musllinux: musl 1.2+ ARM64

matcher_py-0.5.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ x86-64

matcher_py-0.5.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.8 MB view details)

Uploaded CPython 3.13 manylinux: glibc 2.17+ ARM64

matcher_py-0.5.5-cp313-cp313-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.13 macOS 11.0+ ARM64

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

Uploaded CPython 3.12 Windows x86-64

matcher_py-0.5.5-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.5-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.5-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.5-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.5-cp312-cp312-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

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

Uploaded CPython 3.11 Windows x86-64

matcher_py-0.5.5-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.5-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.5-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.5-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.5-cp311-cp311-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

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

Uploaded CPython 3.10 Windows x86-64

matcher_py-0.5.5-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.5-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.5-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.5-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.5-cp310-cp310-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

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

Uploaded CPython 3.9 Windows x86-64

matcher_py-0.5.5-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.5-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.5-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.5-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.5-cp39-cp39-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

Uploaded CPython 3.8 Windows x86-64

matcher_py-0.5.5-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.5-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.5-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.5-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.5-cp38-cp38-macosx_11_0_arm64.whl (1.6 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for matcher_py-0.5.5.tar.gz
Algorithm Hash digest
SHA256 4361ff14d69f56e73e88bb312096a0dabde70b4b5f382d4cd047d3c98c5d277d
MD5 723880354f6e8c6162238e5318f0ba91
BLAKE2b-256 200a59271697c3372e904a4e924437ff03b6eba482bc33033f42cd59c06378a5

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-none-win_amd64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-none-win_amd64.whl
Algorithm Hash digest
SHA256 595005749b14870a71452da605fb06fa650dfe51372b51947e6658b8f973dad7
MD5 a3b8f5e50fc0304b55908021acfe2ab3
BLAKE2b-256 29b63b18f5034705c6d68de209798454a57302addeccf3fc5e4f82ae27826328

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a3dc4aa0386e2a79b5ad5f151ad850060ef93e3d6e2d7799f085b6478c716ec3
MD5 191d3fccaee6d1a3ef2d4237150f1cf9
BLAKE2b-256 be6729a492fe289694b45d7ae32df286c22fd6930928f7bb2e54729232a68ec5

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d954c9c01cc9e04f7eaf23365eb666d57cc34a1847d7a406919323fe888e65d3
MD5 432a6026498a45525880fd2f946aa2a8
BLAKE2b-256 ff018a9662ae91dc7137e1cf4000d57a3ac07c67b0a5f644f6f7dfbc52c20d85

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e2768861ea2c9d6de6156f04cb4b8e619e0922e430d155620a268757f68b9818
MD5 430f1aab3c159648b836d268e8f81a50
BLAKE2b-256 1faaf35dfccf27fc8fb64cf3b44791a66d15838a7cf153a29a514c0bb5bf2544

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 f769ee0cbce6df78c3235dbc7ce57173e68204069dda182a3d7ca8f2128d8886
MD5 c1dc1dd87dc4eb8a71d338c10a1538f1
BLAKE2b-256 b7c6b4073600f2bb5292d2f748f102a0e5b4828058a73677acfc0dd37ed6aff7

See more details on using hashes here.

File details

Details for the file matcher_py-0.5.5-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8cf8a011c3e102ebf420441d4ffe41f940618c659a11645bee04803802e7b715
MD5 9b24ddce449962f17eed53746219473a
BLAKE2b-256 e1f991f11c4286d60da00512c64011043cfd926dc9bb1ca78a8fd0fb78808e63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-none-win_amd64.whl
Algorithm Hash digest
SHA256 0847c37f7a45249cdaf586b5f9aa55784f2e3295a4be58802ee8c91ef4b039e9
MD5 d002db2012b80da7fdbd08a2c6e42d2d
BLAKE2b-256 6312f317f76149bd87a2feef94138fefb5ff8dead25a3a593f95ac2b09968436

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 02b5ed46fb5b767caf1f6ecf53fe35031cf78933c221019e5e864a1aa6291b10
MD5 52870d072b5dc9f10cec3c78d6e9f6d4
BLAKE2b-256 2ec6612f143b6f60cf013ae277873021a6035af73d9052f513015b6d87ef09e2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e60ecd77013c3cc6893dfb27e4090dea3c199e86d6c5a63ede45e256bc48b3e8
MD5 69238e362bb2309354c4128e5805d883
BLAKE2b-256 789eaf9c0ea6af9a869d59874ae082c7236a9ca2e7bf79312b5f84368f73d659

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 914cfd2c3bb889779abc9b996e5cb9d469f7fdd00752b166111b8e4dea364772
MD5 08509172340d274ec887a08c6d7bc0d4
BLAKE2b-256 399f35e15740461dd56b2594ab0862ee6e2722e737a73bcb78aa08141ddbe74f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 01f22c4e35211f285248cb1f3f7751e5ae8b56d7bc19b8971fa981c0250136e1
MD5 09c3d403ce500b17bf5b3bbf2099a940
BLAKE2b-256 64aa552891d89a4c7429ca1a5d14eca62e8b12e611e3d72249aba2424ce54a6b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a74670c3e1d934953f9116498081a940db23aa58e0b559be2ab64bf1f79b4857
MD5 4bc8149da39e4db9a891643ede470a58
BLAKE2b-256 6ffdb8e095ecaee3a93bce377742632b1e62231ccebdded3af3fa68b38eb7646

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 8a666ef66a69ddaee86a01c11c85c9013e82015da65f0bd6b72a1fd339ff61d9
MD5 1c1ca95377cb10450eec129915ca0fac
BLAKE2b-256 4a67139a1b35e35775dc1592f479d3bae145d84efc2abcd1dcb34018ff57fbbd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 041b078755a3afafef556f45dc49aef91bf21b8297307325aef0345141b7233e
MD5 a12355db0b997a1b9130c0f321f031b5
BLAKE2b-256 cb33de32bd7ac29467163a013f98f39eb24e33e16893ef821b10a13fae4eb8cb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 57c4e40cf093cce3ea8502ad8f24d1899c6abc457a216241f9c0a54acb45298d
MD5 eec82282683737c412a5ee18aa2b82b1
BLAKE2b-256 34a3c5879add056b752ef1577dd5aa465fb3d4e47ebfd37820c7d481adbf3efc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d9cb77803cca58f6bb36619d0f2506910ca6df814b54c29c3e0c2067bb86c0b
MD5 d3ead668d1fd2bb95c85e772fbc70c27
BLAKE2b-256 82bac0a2bce8b598ef22fe893d47fe9c7c5bcc2025270b58f3bb86f43c2bb3f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 55d4763c046efef21fc883e4b318035614c181059f0e16265f79588b8e9be18a
MD5 959eadb3e0af45592c414ddba4cdde89
BLAKE2b-256 10740abbe890474bebbebacb8899189a7eee71ee76069188b81c125f15574734

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 12dbbd3257ca7e9f9dfe7f78de0abf03ce72bf983ca7359401264cd76a8e9916
MD5 baa39e69152d934745df62f71a2d3a3d
BLAKE2b-256 019f697bf8e1965591be2e4923b6e13911d516aafce7551707125cd2eb584875

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 4cc2b9660ce82f97382c4e22272871ce9cce0fe7464e84c4585d0b4ab7efbdf0
MD5 7146dd46573638e8474d90fe8fe6b0a2
BLAKE2b-256 1723cbed410f352476f69f596a180c98a61d832bb008aba2d395b55c82dab230

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 0bb3df4ef8bf78245d6feb829d35fabbe38cbc52d96de148711640dded4d4094
MD5 e8ce13042b05a0daa866b01859ee4b94
BLAKE2b-256 f9d13e21f980720dd1931ff2e3a6c7f916838c38e504c37b72e931cd21624055

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 f41e51e4506c5d04d2f03e3378c5963b477064fd339fbbcb22de54863e9078ad
MD5 83b03a2a70694bbf915a73974038a6d0
BLAKE2b-256 ab3a944edceb74f31ec374302048ef2c71668b35e04b6732d8fa7b707e9b9a72

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 73b96e546d0b5416aa912e38d3b3b8be7c9ff81f1ba7c5c02bf62eb95bb090c6
MD5 c50e9a57de36f75f870268da75b0d700
BLAKE2b-256 c01e10603884cc5451237c1697f125bbc30bba5becdb3d587ff6be4065992d80

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 758c4afe3fc32e77f6f8431867c4f5dfc397d5339eb89b4446d4ea0a070b7e3a
MD5 13f68942c132208ee5287bcb20af720b
BLAKE2b-256 4c7d56a77fa9f2aed3365bf8eb73e7ef65af6e4f7b3ff4ebf63a3c40a8657553

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3694d32819219740c71ebdaa9e0929d46fe95fa1d71df326addab081ccb953a7
MD5 4bdb98351a643105a654872b7c89988c
BLAKE2b-256 a93da48bd57361429df9d0612fe49fb0a44baaa7aa8a7f20bdb34e5fcd2c7725

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 a772966c0c713a2057379fa5e1c95b4aedd9e5f0edd5dd0ac4780cf5039baa96
MD5 862a7c1c29faee5b63865fc06b9af6cd
BLAKE2b-256 4ed4d26f8852d98d775390840476f2e3b239784cf5541bdeb60da093e8d18568

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 e3652a0dd05622c9c8b2e078d844105d1d96a94df0fbe3a608650d66ffc46143
MD5 a9ecf6e45119164a824c1209d06d83ba
BLAKE2b-256 df6e6f7f3a5c19a2c046887f37f23d50f620d07b7558793c851258a6a77604ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc3e65e541889f332ba63d4e75ee076ef21949e447cd80e5417ca74d50124f80
MD5 e8a3c4c167c029ef81e2eaa849558c87
BLAKE2b-256 e172cf6621acc71ca4bdd6e7154fb20623d111cee536b458fab685babaf46d4f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bcd75f7f2261f4c204e0311a183dfd275a5822b4d2de67aa38a7e8de4499d846
MD5 4076319dd7cb0378e6f05de2a33073f8
BLAKE2b-256 e859ded731d90e4afa2f8d5a1da88f258ac9e79f0df06c464f7345e1c3d3c23a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0dc2abc67b2c07434243e0e8f57b910335b8ee9679a91a2bac5c472f80514d7a
MD5 4216605766982fef0d90b87f27dab3a6
BLAKE2b-256 43673bac565161806bce37e04f1463940b08459066c0f250dd5c6376dae88368

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3f6e986f07fbee83a80772b3a578bc9dbd27c7e0644a0eb1b2a1be5b1407f118
MD5 d9ddcbc06e811220b888f34a6a7e172b
BLAKE2b-256 a0c356f516b16a0fa7a07515df88ab19b623b01acaa0b77fb994de538b3fcf4b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 bd2c250790501b21fa78fc4e90dc31e929b89b34d066313aad2ac59a3ffaf2e4
MD5 61a1e9a2f32a450bb626f27975a5d6e5
BLAKE2b-256 2f7c47012697d9b3c61441369756a1f510e4c16058a6b7ebbfef1c79290183ca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 2eba8874b19fd8666c3e88fa4c0d5065ffbfb820aec586060ef639edfd84422c
MD5 35c5c90ba139e4505fa3d5e70a275694
BLAKE2b-256 126fabac7072e6349622de7fe65b03aee48717e4e6aaac2fdac79f1b2856bdba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 e1f21fda46c7d7304e26e10f3f67de7f11ff3e6900cbb34b3d96d973d05a9c7a
MD5 c0702f51487aa2a38899b67190208163
BLAKE2b-256 3274dbb33faf346519fad2f43774e5970c6dea5c97c1b3905e11bb7c7eefbc28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 67781b4bc8fd3eef2dd08bd2da34fc81a92023e3f6f28b7a78413ed3e6d4a550
MD5 d5eea14dc3050f7ec49ef60b0bc563e8
BLAKE2b-256 2b40e39bf74fdff7732bdc40b8b51e85500a05a0ed592afddc2f125f9bba45f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c0c3b5e4e148e96e09b106ca57d820de5aa02486eb0f4bd30bb2ab3482f36f8a
MD5 176aaf803230feec65d70efd22e60e62
BLAKE2b-256 136ad0dd8e744c1b792ce15204f874358b6363f1a881a8551e2252bbcc1c2f29

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for matcher_py-0.5.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 67ddfe21c2826e67a97a534e276ec786299605e45a4c6f89ceb971817c14108f
MD5 77d4eb2c67bee05913b031347d24e92b
BLAKE2b-256 f9000942364a24c14b749e7917e16d9f89ba07253ffd79e453bc43d2aecee525

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