Skip to main content

A library to match and compare strings.

Project description

stringmatch

PyPI PyPI - Python Version Downloads Build Documentation Status codecov Code style: black

stringmatch is a small, lightweight string matching library written in Python, based on the Levenshtein distance, among other algorithms.
Inspired by libraries like seatgeek/thefuzz, which did not quite fit my needs. This library offers improved usability, extensibility and performance.

Table of Contents

Key Features

This library matches compares and strings to each other based mainly on, among others, the Levenshtein distance.
What makes stringmatch special compared to other libraries with similar functions:

  • 💨 Lightweight, straightforward and easy to use
  • ⚡ High speed - at least ~12x faster than thefuzz and up to 70x
  • 🧰 Allows for highly customisable searches, that yield better results
  • 📚 Lots of utility functions to make your life easier
  • 📝 Statically typed with mypy, compiled with mypyc
  • 🌍 Handles special unicode characters, like emojis or characters from other languages, like ジャパニーズ

Requirements

  • Python 3.10 or later.
  • The packages in requirements.txt, pip will handle these for you.

Installation

Install the latest stable version with pip:

pip install -U stringmatch

Or install the newest version via git (Might be unstable or unfinished):

pip install -U git+https://github.com/atomflunder/stringmatch

Basic Usage

Below are some basic examples on how to use this library.
For a more detailed explanation head over to the Documentation.
For examples on how to use this library, head over to the examples directory.

Matching

The match functions allow you to compare 2 strings and check if they are "similar enough" to each other, or get the best match(es) from a list of strings:

from stringmatch import Match

match = Match()

# Checks if the strings are similar:
match.match("stringmatch", "strngmach")         # returns True
match.match("stringmatch", "something else")    # returns False

# Returns the best match(es) found in the list:
searches = ["stringmat", "strinma", "strings", "mtch", "whatever", "s"]
match.get_best_match("stringmatch", searches)   # returns "stringmat"
match.get_best_matches("stringmatch", searches) # returns ["stringmat", "strinma"]

Ratios

The "ratio of similarity" describes how similar the strings are to each other. It ranges from 100 being an exact match to 0 being something completely different.
You can get the ratio between strings like this:

from stringmatch import Ratio

ratio = Ratio()

# Getting the ratio between the two strings:
ratio.ratio("stringmatch", "stringmatch")           # returns 100
ratio.ratio("stringmatch", "strngmach")             # returns 90
ratio.ratio("stringmatch", "eh")                    # returns 15

# Getting the ratio between the first string and the list of strings at once:
searches = ["stringmatch", "strngmach", "eh"]
ratio.ratio_list("stringmatch", searches)           # returns [100, 90, 15]

# Searching for partial ratios with substrings:
ratio.partial_ratio("a string", "a string longer")  # returns 80

Matching & Ratios

You can also get both the match and the ratio together in a tuple using these functions:

from stringmatch import Match

match = Match()

match.match_with_ratio("stringmatch", "strngmach")    # returns (True, 90)

searches = ["test", "nope", "tset"]
match.get_best_match_with_ratio("test", searches)     # returns ("test", 100)
match.get_best_matches_with_ratio("test", searches)   # returns [("test", 100), ("tset", 75)]

Distances

Instead of the ratio, you can also get the Levenshtein distance between strings directly. The bigger the distance, the more different the strings:

from stringmatch import Distance

distance = Distance()

distance.distance("kitten", "sitting")      # returns 3

searches = ["sitting", "kitten"]
distance.distance_list("kitten", searches)  # returns [3, 0]

Strings

This is primarily meant for internal usage, but you can also use this library to modify strings:

from stringmatch import Strings

strings = Strings()

strings.latinise("Héllö, world!")               # returns "Hello, world!"
strings.remove_punctuation("wh'at;, ever")      # returns "what ever"
strings.alphanumeric("Héllö, world!")           # returns "Hll world"
strings.ignore_case("test test!", lower=False)  # returns "TEST TEST!"

Advanced Usage

Keyword Arguments

There are some optional arguments available for a few functions.

score

Type Default Description Available for:
Integer 70 The score cutoff for matching. If the score is below the threshold it will not get returned. All functions from the Match() class.
# Example:

from stringmatch import Match

match = Match()

match.match("stringmatch", "strngmach", score=95)    # returns False
match.match("stringmatch", "strngmach", score=70)    # returns True

limit

Type Default Description Available for:
Integer 5 The limit of how many matches to return. If you want to return every match set this to 0 or None. get_best_matches(), get_best_matches_with_ratio()
# Example:

from stringmatch import Match

match = Match()

searches = ["limit 5", "limit 4", "limit 3", "limit 2", "limit 1", "limit 0", "something else"]

# returns ["limit 5", "limit 4"]
match.get_best_matches("limit 5", searches, limit=2)

# returns ["limit 5"]
match.get_best_matches("limit 5", searches, limit=1)

# returns ["limit 5", "limit 4", "limit 3", "limit 2", "limit 1", "limit 0"]
match.get_best_matches("limit 5", searches, limit=None)

Class Keyword Arguments

You can also pass in on or more of these optional arguments when initialising the Match() and Ratio() classes to customize your search even further.
Of course you can use multiple of these keyword arguments at once, to customise the search to do exactly what you intend to do.

scorer

Type Default Description
BaseScorer LevenshteinScorer Different scoring algorithms to use. The available options are: LevenshteinScorer, JaroScorer, JaroWinklerScorer.

Click on the links above for detailed information about these, but speaking generally the Jaro Scorer will be the fastest, focussing on the characters the strings have in common.
The Jaro-Winkler Scorer slightly modified the Jaro Scorer to prioritise characters at the start of the string.
The Levenshtein Scorer will, most likely, produce the best results, focussing on the number of edits needed to get from one string to the other.

# Example:

from stringmatch import Match, LevenshteinScorer, JaroWinklerScorer

lev_matcher = Match(scorer=LevenshteinScorer)
lev_matcher.match_with_ratio("test", "th test") # returns (True, 73)

jw_matcher = Match(scorer=JaroWinklerScorer)
jw_matcher.match_with_ratio("test", "th test")  # returns (False, 60)

latinise

Type Default Description
Boolean False Replaces special unicode characters with their latin alphabet equivalents. Examples: Ǽ -> AE, ノース -> nosu
# Example:

from stringmatch import Match

lat_match = Match(latinise=True)
lat_match.match("séärçh", "search") # returns True

def_match = Match(latinise=False)
def_match.match("séärçh", "search") # returns False

ignore_case

Type Default Description
Boolean True If you want to ignore case sensitivity while searching.
# Example:

from stringmatch import Match

def_match = Match(ignore_case=True)
def_match.match("test", "TEST")   # returns True

case_match = Match(ignore_case=False)
case_match.match("test", "TEST")  # returns False

remove_punctuation

Type Default Description
Boolean False Removes commonly used punctuation symbols from the strings, like .,;:!? and so on.
# Example:

from stringmatch import Match

punc_match = Match(remove_punctuation=True)
punc_match.match("test,---....", "test")  # returns True

def_match = Match(remove_punctuation=False)
def_match.match("test,---....", "test")   # returns False

alphanumeric

Type Default Description
Boolean False Removes every character that is not a number or in the latin alphabet, a more extreme version of remove_punctuation.
# Example:

from stringmatch import Match

let_match = Match(alphanumeric=True)
let_match.match("»»ᅳtestᅳ►", "test")  # returns True

def_match = Match(alphanumeric=False)
def_match.match("»»ᅳtestᅳ►", "test")  # returns False

include_partial

Type Default Description
Boolean False If set to true, also searches for partial substring matches. This may lead to more desirable results but is a bit slower. This will return a score of 65-95 depending on how far apart the sizes of the strings are to ensure only identical matches provide a score of 100. It will start matching at a length of 2, or 1 if it is the first letter of the string.
# Example:

from stringmatch import Match

part_match = Match(include_partial=True)
# returns (True, 65)
part_match.match_with_ratio("A string", "A string thats like really really long", score=60)

def_match = Match(include_partial=False)
# returns (False, 35)
def_match.match_with_ratio("A string", "A string thats like really really long", score=60)

Your Own Scorer

If you are unhappy with the scoring algorithms provided, you can of course construct your own scorer class. Make sure it inherits from BaseScorer and has a score() method that takes 2 strings and returns a float between 0 and 100.

# Example:

from stringmatch import BaseScorer, Match

class MyOwnScorer(BaseScorer):
    def score(self, string1: str, string2: str) -> float:
        # Highly advanced technology
        return 100

my_matcher = Match(scorer=MyOwnScorer)
my_matcher.match_with_ratio("anything", "whatever") # returns (True, 100)

Contributing

Contributions to this library are always appreciated! If you have any sort of feedback, or are interested in contributing, head on over to the Contributing Guidelines.
Additionally, if you like this library, leaving a star and spreading the word would be appreciated a lot!
Thanks in advance for taking the time to do so.

Links

Packages used:

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

stringmatch-0.14.8.tar.gz (18.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

stringmatch-0.14.8-cp314-cp314-win_amd64.whl (89.2 kB view details)

Uploaded CPython 3.14Windows x86-64

stringmatch-0.14.8-cp314-cp314-win32.whl (81.8 kB view details)

Uploaded CPython 3.14Windows x86

stringmatch-0.14.8-cp314-cp314-musllinux_1_2_x86_64.whl (191.8 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ x86-64

stringmatch-0.14.8-cp314-cp314-musllinux_1_2_aarch64.whl (191.6 kB view details)

Uploaded CPython 3.14musllinux: musl 1.2+ ARM64

stringmatch-0.14.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (188.9 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringmatch-0.14.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (188.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

stringmatch-0.14.8-cp314-cp314-macosx_11_0_arm64.whl (107.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

stringmatch-0.14.8-cp314-cp314-macosx_10_15_x86_64.whl (108.0 kB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

stringmatch-0.14.8-cp313-cp313-win_amd64.whl (88.7 kB view details)

Uploaded CPython 3.13Windows x86-64

stringmatch-0.14.8-cp313-cp313-win32.whl (81.4 kB view details)

Uploaded CPython 3.13Windows x86

stringmatch-0.14.8-cp313-cp313-musllinux_1_2_x86_64.whl (189.7 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

stringmatch-0.14.8-cp313-cp313-musllinux_1_2_aarch64.whl (191.4 kB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

stringmatch-0.14.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (189.8 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringmatch-0.14.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (188.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

stringmatch-0.14.8-cp313-cp313-macosx_11_0_arm64.whl (107.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

stringmatch-0.14.8-cp313-cp313-macosx_10_13_x86_64.whl (108.0 kB view details)

Uploaded CPython 3.13macOS 10.13+ x86-64

stringmatch-0.14.8-cp312-cp312-win_amd64.whl (88.7 kB view details)

Uploaded CPython 3.12Windows x86-64

stringmatch-0.14.8-cp312-cp312-win32.whl (81.6 kB view details)

Uploaded CPython 3.12Windows x86

stringmatch-0.14.8-cp312-cp312-musllinux_1_2_x86_64.whl (191.6 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

stringmatch-0.14.8-cp312-cp312-musllinux_1_2_aarch64.whl (192.8 kB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

stringmatch-0.14.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (191.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringmatch-0.14.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (189.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

stringmatch-0.14.8-cp312-cp312-macosx_11_0_arm64.whl (107.5 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

stringmatch-0.14.8-cp312-cp312-macosx_10_13_x86_64.whl (108.1 kB view details)

Uploaded CPython 3.12macOS 10.13+ x86-64

stringmatch-0.14.8-cp311-cp311-win_amd64.whl (88.7 kB view details)

Uploaded CPython 3.11Windows x86-64

stringmatch-0.14.8-cp311-cp311-win32.whl (81.2 kB view details)

Uploaded CPython 3.11Windows x86

stringmatch-0.14.8-cp311-cp311-musllinux_1_2_x86_64.whl (189.8 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

stringmatch-0.14.8-cp311-cp311-musllinux_1_2_aarch64.whl (189.9 kB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

stringmatch-0.14.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (186.4 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringmatch-0.14.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (186.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

stringmatch-0.14.8-cp311-cp311-macosx_11_0_arm64.whl (107.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

stringmatch-0.14.8-cp311-cp311-macosx_10_9_x86_64.whl (106.9 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

stringmatch-0.14.8-cp310-cp310-win_amd64.whl (88.8 kB view details)

Uploaded CPython 3.10Windows x86-64

stringmatch-0.14.8-cp310-cp310-win32.whl (81.4 kB view details)

Uploaded CPython 3.10Windows x86

stringmatch-0.14.8-cp310-cp310-musllinux_1_2_x86_64.whl (187.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

stringmatch-0.14.8-cp310-cp310-musllinux_1_2_aarch64.whl (188.2 kB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

stringmatch-0.14.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (184.5 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

stringmatch-0.14.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl (185.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ ARM64manylinux: glibc 2.28+ ARM64

stringmatch-0.14.8-cp310-cp310-macosx_11_0_arm64.whl (107.8 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

stringmatch-0.14.8-cp310-cp310-macosx_10_9_x86_64.whl (107.7 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

File details

Details for the file stringmatch-0.14.8.tar.gz.

File metadata

  • Download URL: stringmatch-0.14.8.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8.tar.gz
Algorithm Hash digest
SHA256 4002c3e1f00da9020a0477fb10300707b511531f137cb989b9739c4c1a278693
MD5 80df31985f32d9c503d32dc473cff1ca
BLAKE2b-256 e0489a4b5696e7dfd248f717c3ec07726fed1f0954350b5ff254e8e9bacb878a

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 78881c49a2ce24e3c08bdbae7dffaca21c01dcb915847400d3f330b798fda1b2
MD5 d6ce515d5c3a3ba8d0a1c8e83a73b181
BLAKE2b-256 6d8e50875d0491f5cc422010c8bcfd4b46e0635497468d00974f25110cc14964

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-win32.whl.

File metadata

  • Download URL: stringmatch-0.14.8-cp314-cp314-win32.whl
  • Upload date:
  • Size: 81.8 kB
  • Tags: CPython 3.14, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-win32.whl
Algorithm Hash digest
SHA256 99bab0552d336b5341f2db00d957742f83ead31c6abfa8599345c2a3c25553a9
MD5 1f6f15437684a7850867c1b6c42b3dcd
BLAKE2b-256 1862f1c6db6bf4ddcc646460d5e47ba25d7b18aaae7759d6690ffa45b8e7c5b2

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 b460335b5795ab50c84a92e60a8a534b8952b5c8cbc7e1152494320781cdb469
MD5 211b21d667d6bce0255cb8fcd8660775
BLAKE2b-256 d452f786aa61d20b86d5df99a02240b14c35f2ed8bc24fc6ea67b51e4944970a

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 37f0e34aa3e2b8f248d9977738af9dea1bde8447ed8de463f7bf23468780fc07
MD5 274e82208eaf2514554a276019183c4b
BLAKE2b-256 96c920459691e1d7280218093b61dd814c1bdbcb596fb048e396772fdf2f7959

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 115fce1ea849bca174d0e154dce21a73f52d55e8d075ce22844ac30035db68dc
MD5 4bd3c43ae76fe62b78c0c3c446ca2640
BLAKE2b-256 033dc5e91a6dec54a631cc9f5647a2b9560e61794fb9d85fb4043731a9bb86d6

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0bdcda3be0940c363173df2962ebc65c388b032c0fd4b33435f1677de99c4935
MD5 8bcc823ac5f49ba3283f7640c70563bb
BLAKE2b-256 78fd2b92ea9fef29ebff499345aacecd6ef5504f4092c6b96c2e8a3c48ab3d5f

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 917f3bfb7ba1fee2f22abfa583cebe65e73ed04c06cf66f1c4796198fb0b662b
MD5 fe2282771e8e0f72f92215a7059c63af
BLAKE2b-256 ca45f7ddb3c8750116b618855c361e42b2df8bb9b94bf1cde0b4edc5c23b5a25

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7b10b83a425d0e5def3f4475e9e4f22455b32e2ccd5ed44a42c38d81603eeb06
MD5 42bf74c4b0458f5364fbd2af9537831d
BLAKE2b-256 7560c99f8c4a76583cf66ffd1d658d0e97d6524a0aafe42ac92e272fef509742

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d76589a3882b3fbf73e4c5e1d13c2daf6bde218a7bcd1387699d0c7f6eb9c10a
MD5 593fdeacc902a3b17efe8bfac4b19dd8
BLAKE2b-256 d7dcb7c7e3932dd7be117a6c9ae0e11f79f53cea285df3446bbe48449bf129c9

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-win32.whl.

File metadata

  • Download URL: stringmatch-0.14.8-cp313-cp313-win32.whl
  • Upload date:
  • Size: 81.4 kB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 00628487c61b2aba9c762fdfd0593356db31bc438d60a2924681a1482e479957
MD5 f1f5981b74eb4c9fc9de18f63ffc4358
BLAKE2b-256 a7e7b9791b90c7fbcf7396556a85be9ffe3ad26c3dafa62b3cbe62d7958ef4de

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 a5294d796a8ee88a4deaa1d7c05aec2cdc4b6476791e96bfb4488cabdfb4cee2
MD5 3b731cd979f640e65e2790f9f0cda6c8
BLAKE2b-256 da19e7b785eda56c4b81710b18706991bfefc74b1a36d362ef2b15605cd55dcf

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 559e0665af578a6f359d56208aeb3699e1048f2107b7a4a232f80ad86bc4dd11
MD5 747ec119be210b5a6c12db3dda80bd84
BLAKE2b-256 9fcf546d3b67e6541f4f8a3ae37a4b2e25f0187839fc6d00b377923df234caca

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6bca5ba05ad0af9c007693e222242615860407aba52294e2031d4c1ad03a41e3
MD5 2c1daffa03242783371c9e6d91b9fd73
BLAKE2b-256 7d790924bad64a5697ff6903b52cb054e78891364bff281fcb262d8db299d90b

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2d316adc9331adae034faccc99423481e2a687e91c8252d02acb720d511be9e9
MD5 d5b09dbeb3fa580b572cce47b852d3c1
BLAKE2b-256 a2f7d8bb02716fcca42806e3aceaa2c0f0bd2a196ca8e333f82129f5cb01fbb3

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b960d8250eed9c8aef421ae533a292908afba69185e700a1318a5ffd9632f1cc
MD5 7597ac24134f8107b41093fd3a9aebec
BLAKE2b-256 1888d25fb7318e65594e36b7150ecf32388333f21b50e02ae9a32b5e5c464571

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp313-cp313-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp313-cp313-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 d1e0db69da1988fee3e781b6ceb6b8e6c332a66d45ad56d7dbf3eeaabfbaad1e
MD5 8ba8c8449be2a0af99ee01904d278d5e
BLAKE2b-256 117bdf99742e91429a8710e2056c620f99704e16503c09f033530469f0c6a00c

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f2ba4cef533d0bd5a31faae207c31729ac878f89a95f169b384889a2027331b2
MD5 fcc2a080267876efad0be0001dbaabe6
BLAKE2b-256 fd7a1a8b5e8f00c81e5b37b02c0385c675b8f5f6cb13251da71ccc5c27c931b8

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-win32.whl.

File metadata

  • Download URL: stringmatch-0.14.8-cp312-cp312-win32.whl
  • Upload date:
  • Size: 81.6 kB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 fe3725ecafcd425bf3ab208edbd2c4194e331acac83302c73f4830f8e6f4fb30
MD5 310c8fa0aaaa6d89b110f0612d8e5cf0
BLAKE2b-256 ed898cd7323c11dbb1b7c69666cb9781dbbaf037ce4b1f9d5d502a96e76826c4

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 deaf79c52a6913f858ad8217a7cbe483eea928f0e39ebde32bbe85ede11c45b3
MD5 0e07dc5fda41b141307f3844ac870d21
BLAKE2b-256 8c096c77a55bc0c142e71572e023600b256321700f91a929002cd2a6e27e2073

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 c4f22aade6f2f64b6b4d2de78813c7af37264a7eaeac8eccfbb2286ebfd10098
MD5 e14a4e7f23de82c9c1abd72fcde24916
BLAKE2b-256 0a721d468491f5309234ba3bb7be664f70d7705bfb50d76e1cc5213d1d2ecdc3

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 02ddca3d842ec5cef7c880ef81d8a4267437b7b6fbde88a21c0af54cfa4b6ab6
MD5 0776cb1cbfefd11bdcab6ddfd50bbfca
BLAKE2b-256 7c4a79a86fbe4450734962f357822a697435f4cfa249d82c6bd29c2f2093cd38

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2abce8c65e5e87ffce242964994d84f46b343742c95a4fa687576f12636f03c5
MD5 3d090de030e9ba5633db7654d95e01c9
BLAKE2b-256 bd9ea743919ba4c7a10a36d3c51d8a1647ee05c35c87576caf491a9cc1d377b1

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 59366cac959ca532b4ff5c58b0cf7bdf4ced0b9d9b71b517a175b56d88256b05
MD5 f08f7929d5ebe335b2c73a41771894da
BLAKE2b-256 5b182a05b7cc476f3a53cbc7b4f85dc430d0d0947ec981893f571f6829b27c65

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp312-cp312-macosx_10_13_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp312-cp312-macosx_10_13_x86_64.whl
Algorithm Hash digest
SHA256 b8b689b800b12397520462472a97e8df7215b1b15bcb4b869c9cee138df2f9ed
MD5 1ee2e08af66a0b2150d83597b837dbc0
BLAKE2b-256 b8389b5e121a71593e45d3156ff0d895ddaa0ac8409b85dd2c36b398406c1354

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2e84eb3772337541470f082992179a9fc640acb96145111605e4cb01b8d1f52e
MD5 6739f4793be86958a7592c8900138abf
BLAKE2b-256 8d33ee42d7476695d915249b62c68f2aaa95c21fcf691875b0ce327715311202

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-win32.whl.

File metadata

  • Download URL: stringmatch-0.14.8-cp311-cp311-win32.whl
  • Upload date:
  • Size: 81.2 kB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 c27fecc483923ac3bba7cc09e001e88170fad45977e76664e3144d139d9f42c5
MD5 a5124dfab895018d1ef35841a87a8486
BLAKE2b-256 88eeb234f4fe2bfaddb28df2daf3639b02d5a4e4c4e4fc666e0fae464512bacc

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 1a170e8cf1ec3c79701f5e6a30a64e67a3a55f2219d39f8a3a00ebc9a163e217
MD5 659a1d8ff5c56bd4ce54eb54a1598852
BLAKE2b-256 8231ec48e68d9e94b34f693d50b6e17d09a525bba8620b418f26871fa18da566

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 cbe5c6e8f5358deb10928e8f8c42668c7bab11ccd114454918ed4b3631dd8b8f
MD5 6fd489dd0f9c449cba4afff4c997438f
BLAKE2b-256 c87c438a0eb7714388b588bd3941ec0fcd31831af3c2336752f212c4cbaa7240

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc86ee7d2ca54ad61dac01c5017836a1976294dad986abf7c302e758f9954603
MD5 08f37bb3740ff616223ed208084c01e2
BLAKE2b-256 c2540829debb9b8681d5b53c7004ea8a153f9f63d2a62b128961dc94d4a6af05

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 124abaa5f78ad3f099d864f218357616c3177fd09423b9b03589fe2957a9bcc1
MD5 3c8cfd3be83776454781a0a74e276db1
BLAKE2b-256 07211ba8bb70ace0fd35e7074cf5d87fbd8fff4cfae652148d4f93ef5a92dbed

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 eb948df4135c84d198750c6d069f1cc2e7178c641b2db532c5ee899b0517f791
MD5 7396335f0fe0925c5682bdf65223dfc8
BLAKE2b-256 0fb87309ab71bfaea5eb1513a35a1dd8aefda5e408e493c78fef81fbca79bd48

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e8855201b456c84e07b6a663ff9d62463e00cfa34ac0ad44467b39e826ba1ac4
MD5 cf4074c02c09204c5e0d9f63d1cb36d9
BLAKE2b-256 075148cea86b66ce4b2ece1bfaba9f0cfd65d790a5e31bf4c76928ecc5ed8d7c

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fdfe1d79998b949c91dd4afb25e46b3f59db638d6580e1ec2db31a40ade60fd7
MD5 e36868794bd6dc1cbb5f03cb576e8f65
BLAKE2b-256 9b28b9c19f777210ca1ebdb4008c4a85a620427ca10037f885dd0013326a9f64

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-win32.whl.

File metadata

  • Download URL: stringmatch-0.14.8-cp310-cp310-win32.whl
  • Upload date:
  • Size: 81.4 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 7b02a21e23ca120e6e6122ad81b63f7dbfb7aad7ffda2f54a6df7e7a66143b6e
MD5 b03c4fa899955ced3998e7497abac653
BLAKE2b-256 38bafc858a1273d6c0770053f526b60a0973a0312cc4e7125cdc909b5484e2f4

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 6a42a2beda739c7cc840c542702750041e1c6984d79a24f91cdde1ee0b1c778b
MD5 d2bbfb52c89a21e4c9cb52c943259384
BLAKE2b-256 c5ecc53f333a21ca711bc86904ed24f34e96bc78d1bc756edad2a9cc8e0748d6

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b45828de40f5c97843a8aead50db0f67ee9d890bae11bf4eb8a8bb9f4135cb22
MD5 846ec7087f0d4a44064ac13cdad786c3
BLAKE2b-256 19bf6a64d6c839e86352ce2ee8dc438602fe32e5261ccce2b13b00db894f3eb4

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 54ee4e89fc188658d09d3ab96bc9cdde213372fdb5eee49acac7a54a29c7721d
MD5 47654bbb66dd1fcb8cab2f4b5c72d74c
BLAKE2b-256 d1597443adc92be784b1d6f77e5caee403be572ed364bd1642619762d5b1b1d7

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 0bc99b43429a7e2a34edd89ff4ab4617c22dd129a59e2ed105d1058f9cc6d483
MD5 bc66175177d178db87c396c0df65748a
BLAKE2b-256 8654c0be06b5d77bfe1234155bf7521c3868cadb91d09d4c3887c40ac2df9320

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a8accbdbc72d038422b8e4fcacf9223f4fa334a6ec03615ebae869555fe9a752
MD5 2b219bd84144fb490e5a86b33e59475d
BLAKE2b-256 5091a21ea2e4eb2144ffad6ea02e84aef92d2a9e665d18fc2e17d1ab8cdbeb75

See more details on using hashes here.

File details

Details for the file stringmatch-0.14.8-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for stringmatch-0.14.8-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 77d10e64a68d96b1154f865f4e7832f4c6ee49115d34b25a7087a02d29ad7c41
MD5 810905c0d6e6e52e625cc56fc5b17e89
BLAKE2b-256 94d92c3d5ef698c31579e729dc1ba173defc6a1883ab68ce610197b5b1b76a45

See more details on using hashes here.

Supported by

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