Skip to main content

Search a string for multiple substrings at once

Project description

ahocorasick_rs: Quickly search for multiple substrings at once

ahocorasick_rs allows you to search for multiple substrings ("patterns") in a given string ("haystack") using variations of the Aho-Corasick algorithm.

In particular, it's implemented as a wrapper of the Rust aho-corasick library, and provides a faster alternative to the pyahocorasick library.

The specific use case is searching for large numbers of patterns (in the thousands) where the Rust library's DFA-based state machine allows for faster matching.

Found any problems or have any questions? File an issue on the GitHub project.

Quickstart

The ahocorasick_rs library allows you to search for multiple strings ("patterns") within a haystack. For example, let's install the library:

$ pip install ahocorasick-rs

Then, we can construct a AhoCorasick object:

>>> import ahocorasick_rs
>>> patterns = ["hello", "world", "fish"]
>>> haystack = "this is my first hello world. hello!"
>>> ac = ahocorasick_rs.AhoCorasick(patterns)

AhoCorasick.find_matches_as_indexes() returns a list of tuples, each tuple being:

  1. The index of the found pattern inside the list of patterns.
  2. The start index of the pattern inside the haystack.
  3. The end index of the pattern inside the haystack.
>>> ac.find_matches_as_indexes(haystack)
[(0, 17, 22), (1, 23, 28), (0, 30, 35)]
>>> patterns[0], patterns[1], patterns[0]
('hello', 'world', 'hello')
>>> haystack[17:22], haystack[23:28], haystack[30:35]
('hello', 'world', 'hello')

find_matches_as_strings() returns a list of found patterns:

>>> ac.find_matches_as_strings(haystack)
['hello', 'world', 'hello']

Additional configuration

Match kind

There are three ways you can configure matching in cases where multiple patterns overlap. For a more in-depth explanation, see the underlying Rust library's documentation of matching.

Assume we have this starting point:

>>> from ahocorasick_rs import AhoCorasick, MatchKind

Standard (the default)

This returns the pattern that matches first, semantically-speaking. This is the default matching pattern.

>>> ac AhoCorasick(["disco", "disc", "discontent"])
>>> ac.find_matches_as_strings("discontent")
['disc']
>>> ac = AhoCorasick(["b", "abcd"])
>>> ac.find_matches_as_strings("abcdef")
['b']

In this case disc will match before disco or discontent.

Similarly, b will match before abcd because it ends earlier in the haystack than abcd does:

>>> ac = AhoCorasick(["b", "abcd"])
>>> ac.find_matches_as_strings("abcdef")
['b']

LeftmostFirst

This returns the leftmost-in-the-haystack matching pattern that appears first in the list of given patterns. That means the order of patterns makes a difference:

>>> ac = AhoCorasick(["disco", "disc"], matchkind=MatchKind.LeftmostFirst)
>>> ac.find_matches_as_strings("discontent")
['disco']
>>> ac = AhoCorasick(["disc", "disco"], matchkind=MatchKind.LeftmostFirst)
['disc']

Here we see abcd matched first, because it starts before b:

>>> ac = AhoCorasick(["b", "abcd"], matchkind=MatchKind.LeftmostFirst)
>>> ac.find_matches_as_strings("abcdef")
['abcd']
LeftmostLongest

This returns the leftmost-in-the-haystack matching pattern that is longest:

>>> ac = AhoCorasick(["disco", "disc", "discontent"], matchkind=MatchKind.LeftmostLongest)
>>> ac.find_matches_as_strings("discontent")
['discontent']

Overlapping matches

You can get all overlapping matches, instead of just one of them, but only if you stick to the default matchkind, MatchKind.Standard:

>>> from ahocorasick_rs import AhoCorasick
>>> patterns = ["winter", "onte", "disco", "discontent"]
>>> ac = AhoCorasick(patterns)
>>> ac.find_matches_as_strings("discontent", overlapping=True)
['disco', 'onte', 'discontent']

Trading memory for speed

If you use find_matches_as_strings(), there are two ways strings can be constructed: from the haystack, or by caching the patterns on the object. The former takes more work, the latter uses more memory if the patterns would otherwise have been garbage-collected. You can control the behavior by using the store_patterns keyword argument to AhoCorasick().

  • AhoCorasick(..., store_patterns=None): The default. Use a heuristic (currently, whether the total of pattern string lengths is less than 4096 characters) to decide whether to store patterns or not.
  • AhoCorasick(..., store_patterns=True): Keep references to the patterns, potentially speeding up find_matches_as_strings() at the cost of using more memory. If this uses large amounts of memory this might actually slow things down due to pressure on the CPU memory cache, and/or the performance benefit might be overwhelmed by the algorithm's search time.
  • AhoCorasick(..., store_patterns=False): Don't keep references to the patterns, saving some memory but potentially slowing down find_matches_as_strings(), especially when there are only a small number of patterns and you are searching a small haystack.

Algorithm implementations: trading construction speed, memory, and performance

You can choose the type of underlying automaton to use, with different performance tradeoffs.

The underlying Rust library supports four choices, which are exposed:

  • None uses a heuristic to choose the "best" Aho-Corasick implementation for the given patterns.
  • Implementation.NoncontiguousNFA: A noncontiguous NFA is the fastest to be built, has moderate memory usage and is typically the slowest to execute a search.
  • Implementation.ContiguousNFA: A contiguous NFA is a little slower to build than a noncontiguous NFA, has excellent memory usage and is typically a little slower than a DFA for a search.
  • Implementation.DFA: A DFA is very slow to build, uses exorbitant amounts of memory, but will typically execute searches the fastest.

The default choice is Implementation.DFA since expensive setup compensated by fast batch operations is the standard Python tradeoff.

>>> from ahocorasick_rs import AhoCorasick, Implementation
>>> ac = AhoCorasick(["disco", "disc"], implementation=Implementation.NoncontiguousNFA)

Implementation details

  • Matching releases the GIL, to enable concurrency.
  • Not all features from the underlying library are exposed; if you would like additional features, please file an issue or submit a PR.

Benchmarks

As with any benchmark, real-world results will differ based on your particular situation. If performance is important to your application, measure the alternatives yourself!

Longer strings and many patterns

This benchmark matches ~4,000 patterns against lines of text that are ~700 characters long. Each line matches either zero (90%) or one pattern (10%).

Higher is better; ahocorasick_rs is much faster in both cases.

find_matches_as_strings or equivalent Operations per second
ahocorasick_rs longest matching 436,000
pyahocorasick longest matching 65,000
ahocorasick_rs overlapping matching 329,000
pyahocorasick overlapping matching 76,000

Shorter strings and few patterns

This benchmarks matches ~10 patterns against lines of text that are ~70 characters long. Each line matches ~5 patterns.

Higher is better; again, ahocorasick_rs is faster for both, though with a smaller margin.

find_matches_as_strings or equivalent Operations per second
ahocorasick_rs longest matching 1,930,000
pyahocorasick longest matching 1,120,000
ahocorasick_rs overlapping matching 1,250,000
pyahocorasick overlapping matching 880,000

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

ahocorasick_rs-0.14.0.tar.gz (65.3 kB view details)

Uploaded Source

Built Distributions

ahocorasick_rs-0.14.0-cp311-none-win_amd64.whl (239.1 kB view details)

Uploaded CPython 3.11 Windows x86-64

ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (639.4 kB view details)

Uploaded CPython 3.11 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (667.8 kB view details)

Uploaded CPython 3.11 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_7_x86_64.whl (360.3 kB view details)

Uploaded CPython 3.11 macOS 10.7+ x86-64

ahocorasick_rs-0.14.0-cp310-none-win_amd64.whl (239.1 kB view details)

Uploaded CPython 3.10 Windows x86-64

ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (639.4 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (667.8 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_7_x86_64.whl (360.3 kB view details)

Uploaded CPython 3.10 macOS 10.7+ x86-64

ahocorasick_rs-0.14.0-cp39-none-win_amd64.whl (239.5 kB view details)

Uploaded CPython 3.9 Windows x86-64

ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (639.7 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl (668.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64) macOS 10.9+ x86-64 macOS 11.0+ ARM64

ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_7_x86_64.whl (360.8 kB view details)

Uploaded CPython 3.9 macOS 10.7+ x86-64

ahocorasick_rs-0.14.0-cp38-none-win_amd64.whl (239.8 kB view details)

Uploaded CPython 3.8 Windows x86-64

ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (678.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64

ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (640.1 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.14.0-cp38-cp38-macosx_10_7_x86_64.whl (361.6 kB view details)

Uploaded CPython 3.8 macOS 10.7+ x86-64

ahocorasick_rs-0.14.0-cp37-none-win_amd64.whl (239.8 kB view details)

Uploaded CPython 3.7 Windows x86-64

ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (678.1 kB view details)

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

ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (640.1 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ ARM64

ahocorasick_rs-0.14.0-cp37-cp37m-macosx_10_7_x86_64.whl (361.8 kB view details)

Uploaded CPython 3.7m macOS 10.7+ x86-64

File details

Details for the file ahocorasick_rs-0.14.0.tar.gz.

File metadata

  • Download URL: ahocorasick_rs-0.14.0.tar.gz
  • Upload date:
  • Size: 65.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/0.14.17

File hashes

Hashes for ahocorasick_rs-0.14.0.tar.gz
Algorithm Hash digest
SHA256 faa1bb2e8e490d616842ab8e5588933528f61f22143f89833e83aded97c144c9
MD5 c14bb19d76fb30b31783a55809d9dec0
BLAKE2b-256 003ba44d5ff4347bffa859f92a5cc7137e49658cf1c5d37c3b69e5413c135023

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp311-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp311-none-win_amd64.whl
Algorithm Hash digest
SHA256 de5f69647c964d2f3fe53fdd31ea8bd21ec71dfe479648eecc0887cf61fe7c15
MD5 57ffe61317f4b8b1b6c06fb519525162
BLAKE2b-256 6aa5da2c222b9975ec37e60ae1ba691d5a5cfb5e5d60051186600b304da59d33

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31c26e50bc7948b31fdcad775d0a6c7265b7be07aadc2218eade7c5d88af49c0
MD5 3a8b0b12b28e910504138b33e58b595c
BLAKE2b-256 f7907b581a6f5f1b62708ba02d0d07c75a967a86d9448dc0d2a8d4a89ea57036

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9b9430eed94f247d6c74aab2827779ccf183dcb37395ec5a3d4d0a05bda8361c
MD5 273804d488de97953637f2de0e70f316
BLAKE2b-256 7f8eff1b16ece07a63d2cce5db3a30c0beb69dfbfa955f8770b0284c4be27850

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 064262d92bc34ce595ce3cdf3063f888e1055d76e819b50b829b10a5653db294
MD5 e5ede7d507584ad65828dd2a44d80ff6
BLAKE2b-256 642d21711cd06c9949e914f2bc9e6561085a1174db0ab96cc7452334dd40938c

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp311-cp311-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 ef65a67a1a4b7ab8ea37e4a3feea5cce675a72738149600f9deeeb44d9067135
MD5 d35844d8d7726bc49de6c4e21ad32a76
BLAKE2b-256 b1563cb72d516ad008ebae2c190c63bb054ad29f1c66f77debaa7e15a805a30a

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp310-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp310-none-win_amd64.whl
Algorithm Hash digest
SHA256 60caa1f8177df8e35de417acfbe52fbc322889df30bb00042e33cf17b192334b
MD5 31b434ea521a83074b6cc280f9923f1e
BLAKE2b-256 1d7f328ef756428b061e25088acbd1a9e71622f456a6d76883b88af098011ba9

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b1622339cdca382e28b1d3b84cf9c39f75e8e73c4a43deb3e3c74a1cea475b2f
MD5 58b49715c651bbe459cdadf6ee21e139
BLAKE2b-256 750cc6859cb9eb00d9c99a31ccee5cc73334f005e1c95577ebf908b4b4d12dd7

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 cadca2085a528bb012d7ebac7e92acc58fdbacfd494b7ee8009c21736dd1b962
MD5 363f06d3fef6579887926eee97ca77d4
BLAKE2b-256 be993494e319c7fa167f293320c76d549aca74df312aac8a2eb3c00fee5f738b

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b8d3ee0fbea6528edb8944023928a00c04216f544b6dc543d0072900a25d8843
MD5 4293bea00e7b3cda1e6f9d3db65262b7
BLAKE2b-256 da3e7774d4d40f2806fd07f0e3202f11a5d73efcc4ca59a1696a7951cd13fa3a

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp310-cp310-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 41c7c360a761df2a457b9ed0433349e4cb950a5576a772c4dca2274b93dd49d6
MD5 d1543c1ee503fdcac1fe43fa72226187
BLAKE2b-256 676ff94dbb860272c4068cc68f78e977cd9c184b00b02af3f4a6821bd1f3e9d3

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp39-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp39-none-win_amd64.whl
Algorithm Hash digest
SHA256 53984e2e28089240062f79982d1eee25ab51b9654debdf73647789554756fcf3
MD5 2c92527f04a0124937855605c7642b0b
BLAKE2b-256 d36631e22edd7d5bbce53529884f91ba88fb32c3e4b7f437ae08f8b55ad5801f

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 666ae002ce623570aa5029f213cc2b20384f480d7d015bcbeab4efd26287b8ff
MD5 0c5701ef6c2cad6575715e43ef75ba0e
BLAKE2b-256 f89472a4cdeb6c93900f233cac96cb6133a826812529f0479c46974ccd6fc7bd

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0db9d766d46d3766aac960bf3fb24dd10d4e89f5c1f3e631cf3e968e697971cc
MD5 3569cf0bcb6e6b8546c42c946c42770f
BLAKE2b-256 67123143a04d19e8c51662b4d474e4a0c38547a4fe76d02d14fd075bfa13a50b

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 3eb8f5f27fed96fe05c4c9efcb850e2559600879a1d9e86ca56ccac9b29db63d
MD5 c9809ec3181ae65a5f0e497b323c5cf7
BLAKE2b-256 54385acf235ca8d3e8f759039d043f7b6493c510a7d0a3e3b6e45509cbf7348b

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp39-cp39-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 0a2c4cc510402a17661d878c30d2728c2cc7bcdd600d76ea42fa7c72517a443f
MD5 bdb5a4d49a02fabc35fe816d5dc14f5e
BLAKE2b-256 1e527c18a09638367c425a3fceac1fd0cd0de076939c5ed445826b0f2f3c2317

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp38-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp38-none-win_amd64.whl
Algorithm Hash digest
SHA256 5ef8e8bd9468236a6f8697b5c5fa9d882b40e445a2f40c80aa2e5a2ef04eacd8
MD5 39c4e931bc998aa41b7c76864125289a
BLAKE2b-256 a3844af3d12bc22c8c6906030840151ff1defa7ded849a3770e01f7b543826ce

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9da10f981b225c70a57d87091178b5aaba8c2e67aaef00b2f83ca8ff822fd0ba
MD5 ed943cd60ac9f22749360836671eaabf
BLAKE2b-256 b4d4341f3aeb0f3244214d063d0dec423565f899bb9bd5ed444ae6e5ad35fa79

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0fbb8f16edd63eb9c24b2bb7207670ed9060d554cdc12a97d5183848c35489bf
MD5 114727f3c2612eb6e505e23eb20c221e
BLAKE2b-256 33c7b98b5828fd268d77050db12bb80d8f01bf9c0e99d8d79a290ac0fd26c486

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp38-cp38-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp38-cp38-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 08e55012cf234e71d3204bc4322bc9ddfc4d13dc6f51d4bf33796461ef4be847
MD5 c971803ed0cdb48d1e4bdcdfae43bc6e
BLAKE2b-256 04fa3614adb5a79860a1e895a409a85be9ac758a0e0758a0bae5c1e557afd03b

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp37-none-win_amd64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp37-none-win_amd64.whl
Algorithm Hash digest
SHA256 48a3b737376a1e38a44f5e61b1a329d9739e8f925a4636283bdc385cba47a60e
MD5 64cf1631217ea51cdfb23d618e39bd0a
BLAKE2b-256 f957e7ab283fdb24df9ba826daf6905165a8628f46af764614338df8b09655e1

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7036f5e41699d0acab9e2009306ab7b9552fc696e7828a5c2049cd4f41481277
MD5 5505b7015f4b4d5543e5c1c16a3f7f30
BLAKE2b-256 ab05e36ed7d4a53a1a30ad03e10e5f277e634b4ba4c3aff796032cfd177c85f7

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 a297baa508b72651027735767668fb95a95910f7ad98d63f0014d3b731a144e9
MD5 2dc9c82185319caa2d769d483c739607
BLAKE2b-256 ddabdf04137f9c4bb17c8cd7720bab7244d430e3b69fb924eddb14efd5a7d57a

See more details on using hashes here.

Provenance

File details

Details for the file ahocorasick_rs-0.14.0-cp37-cp37m-macosx_10_7_x86_64.whl.

File metadata

File hashes

Hashes for ahocorasick_rs-0.14.0-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 a75d24fa47bc971caf2d04fda1fcfe88fe25b88feac86c2f6390347375a39aa8
MD5 8dd6ace584e828af1db98014e1fbff7b
BLAKE2b-256 cfa4038940cff607aa4def77b1311cd010a8341fa0401af00e405027aba20efd

See more details on using hashes here.

Provenance

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