Skip to main content

pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search. With the ``ahocorasick.Automaton`` class, you can find multiple key string occurrences at once in some input text. You can use it as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search. And pickle to disk for easy reuse of large automatons. Implemented in C and tested on Python 3.6+. Works on Linux, macOS and Windows. BSD-3-Cause license.

Project description

Appveyor Windows Master branch tests status GitHub Action build on test -  Master branch status Documentation Status

pyahocorasick is a fast and memory efficient library for exact or approximate multi-pattern string search meaning that you can find multiple key strings occurrences at once in some input text. The strings “index” can be built ahead of time and saved (as a pickle) to disk to reload and reuse later. The library provides an ahocorasick Python module that you can use as a plain dict-like Trie or convert a Trie to an automaton for efficient Aho-Corasick search.

pyahocorasick is implemented in C and tested on Python 3.6 and up. It works on 64 bits Linux, maOS and Windows.

The license is BSD-3-Clause. Some utilities, such as tests and the pure Python automaton are dedicated to the Public Domain.

Testimonials

Many thanks for this package. Wasn’t sure where to leave a thank you note but this package is absolutely fantastic in our application where we have a library of 100k+ CRISPR guides that we have to count in a stream of millions of DNA sequencing reads. This package does it faster than the previous C program we used for the purpose and helps us stick to just Python code in our pipeline.

Miika (AstraZeneca Functional Genomics Centre) https://github.com/WojciechMula/pyahocorasick/issues/145

Download and source code

You can fetch pyahocorasick from:

The documentation is published at https://pyahocorasick.readthedocs.io/

Quick start

This module is written in C. You need a C compiler installed to compile native CPython extensions. To install:

pip install pyahocorasick

Then create an Automaton:

>>> import ahocorasick
>>> automaton = ahocorasick.Automaton()

You can use the Automaton class as a trie. Add some string keys and their associated value to this trie. Here we associate a tuple of (insertion index, original string) as a value to each key string we add to the trie:

>>> for idx, key in enumerate('he her hers she'.split()):
...   automaton.add_word(key, (idx, key))

Then check if some string exists in the trie:

>>> 'he' in automaton
True
>>> 'HER' in automaton
False

And play with the get() dict-like method:

>>> automaton.get('he')
(0, 'he')
>>> automaton.get('she')
(3, 'she')
>>> automaton.get('cat', 'not exists')
'not exists'
>>> automaton.get('dog')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError

Now convert the trie to an Aho-Corasick automaton to enable Aho-Corasick search:

>>> automaton.make_automaton()

Then search all occurrences of the keys (the needles) in an input string (our haystack).

Here we print the results and just check that they are correct. The Automaton.iter() method return the results as two-tuples of the end index where a trie key was found in the input string and the associated value for this key. Here we had stored as values a tuple with the original string and its trie insertion order:

>>> for end_index, (insert_order, original_value) in automaton.iter(haystack):
...     start_index = end_index - len(original_value) + 1
...     print((start_index, end_index, (insert_order, original_value)))
...     assert haystack[start_index:start_index + len(original_value)] == original_value
...
(1, 2, (0, 'he'))
(1, 3, (1, 'her'))
(1, 4, (2, 'hers'))
(4, 6, (3, 'she'))
(5, 6, (0, 'he'))

You can also create an eventually large automaton ahead of time and pickle it to re-load later. Here we just pickle to a string. You would typically pickle to a file instead:

>>> import pickle
>>> pickled = pickle.dumps(automaton)
>>> B = pickle.loads(pickled)
>>> B.get('he')
(0, 'he')

See also:

Documentation

The full documentation including the API overview and reference is published on readthedocs.

Overview

With an Aho-Corasick automaton you can efficiently search all occurrences of multiple strings (the needles) in an input string (the haystack) making a single pass over the input string. With pyahocorasick you can eventually build large automatons and pickle them to reuse them over and over as an indexed structure for fast multi pattern string matching.

One of the advantages of an Aho-Corasick automaton is that the typical worst-case and best-case runtimes are about the same and depends primarily on the size of the input string and secondarily on the number of matches returned. While this may not be the fastest string search algorithm in all cases, it can search for multiple strings at once and its runtime guarantees make it rather unique. Because pyahocorasick is based on a Trie, it stores redundant keys prefixes only once using memory efficiently.

A drawback is that it needs to be constructed and “finalized” ahead of time before you can search strings. In several applications where you search for several pre-defined “needles” in a variable “haystacks” this is actually an advantage.

Aho-Corasick automatons are commonly used for fast multi-pattern matching in intrusion detection systems (such as snort), anti-viruses and many other applications that need fast matching against a pre-defined set of string keys.

Internally an Aho-Corasick automaton is typically based on a Trie with extra data for failure links and an implementation of the Aho-Corasick search procedure.

Behind the scenes the pyahocorasick Python library implements these two data structures: a Trie and an Aho-Corasick string matching automaton. Both are exposed through the Automaton class.

In addition to Trie-like and Aho-Corasick methods and data structures, pyahocorasick also implements dict-like methods: The pyahocorasick Automaton is a Trie a dict-like structure indexed by string keys each associated with a value object. You can use this to retrieve an associated value in a time proportional to a string key length.

pyahocorasick is available in two flavors:

  • a CPython C-based extension, compatible with Python 3 only. Use older version 1.4.x for Python 2.7.x and 32 bits support.

  • a simpler pure Python module, compatible with Python 2 and 3. This is only available in the source repository (not on Pypi) under the etc/py/ directory and has a slightly different API.

Unicode and bytes

The type of strings accepted and returned by Automaton methods are either unicode or bytes, depending on a compile time settings (preprocessor definition of AHOCORASICK_UNICODE as set in setup.py).

The Automaton.unicode attributes can tell you how the library was built. On Python 3, unicode is the default.

Build and install from PyPi

To install for common operating systems, use pip. Pre-built wheels should be available on Pypi at some point in the future:

pip install pyahocorasick

To build from sources you need to have a C compiler installed and configured which should be standard on Linux and easy to get on MacOSX.

To build from sources, clone the git repository or download and extract the source archive.

Install pip (and its setuptools companion) and then run (in a virtualenv of course!):

pip install .

If compilation succeeds, the module is ready to use.

Support

Support is available through the GitHub issue tracker to report bugs or ask questions.

Contributing

You can submit contributions through GitHub pull requests.

  • There is a Makefile with a default target that builds and runs tests.

  • The tests can run with a pip installe -e .[testing] && pytest -vvs

  • See also the .github directory for CI tests and workflow

Authors

The initial author and maintainer is Wojciech Muła. Philippe Ombredanne is Wojciech’s sidekick and helps maintaining, and rewrote documentation, setup CI servers and did a some work to make this module more accessible to end users.

Alphabetic list of authors:

  • Andrew Grigorev

  • Bogdan

  • David Woakes

  • Edward Betts

  • Frankie Robertson

  • Frederik Petersen

  • gladtosee

  • INADA Naoki

  • Jan Fan

  • Pastafarianist

  • Philippe Ombredanne

  • Renat Nasyrov

  • Sylvain Zimmer

  • Xiaopeng Xu

and many others!

This library would not be possible without help of many people, who contributed in various ways. They created pull requests, reported bugs as GitHub issues or via direct messages, proposed fixes, or spent their valuable time on testing.

Thank you.

License

This library is licensed under very liberal BSD-3-Clause license. Some portions of the code are dedicated to the public domain such as the pure Python automaton and test code.

Full text of license is available in LICENSE file.

Other Aho-Corasick implementations for Python you can consider

While pyahocorasick tries to be the finest and fastest Aho Corasick library for Python you may consider these other libraries:

  • Written in pure Python.

  • Poor performance.

  • Written in pure Python.

  • Better performance than py-aho-corasick.

  • Using pypy, ahocorapy’s search performance is only slightly worse than pyahocorasick’s.

  • Performs additional suffix shortcutting (more setup overhead, less search overhead for suffix lookups).

  • Includes visualization tool for resulting automaton (using pygraphviz).

  • MIT-licensed, 100% test coverage, tested on all major python versions (+ pypy)

  • Written in C. Does not return overlapping matches.

  • Does not compile on Windows (July 2016).

  • No support for the pickle protocol.

  • Written in Cython.

  • Large automaton may take a long time to build (July 2016)

  • No support for a dict-like protocol to associate a value to a string key.

  • Written in C.

  • seems unmaintained (last update in 2005).

  • GPL-licensed.

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

pyahocorasick-2.0.0b1.tar.gz (99.2 kB view details)

Uploaded Source

Built Distributions

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

pyahocorasick-2.0.0b1-cp310-cp310-win_amd64.whl (44.6 kB view details)

Uploaded CPython 3.10Windows x86-64

pyahocorasick-2.0.0b1-cp310-cp310-musllinux_1_1_x86_64.whl (109.8 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

pyahocorasick-2.0.0b1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl (110.8 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.12+ x86-64manylinux: glibc 2.5+ x86-64

pyahocorasick-2.0.0b1-cp310-cp310-macosx_10_9_universal2.whl (63.4 kB view details)

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

pyahocorasick-2.0.0b1-cp39-cp39-win_amd64.whl (44.6 kB view details)

Uploaded CPython 3.9Windows x86-64

pyahocorasick-2.0.0b1-cp39-cp39-musllinux_1_1_x86_64.whl (109.2 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

pyahocorasick-2.0.0b1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl (103.2 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.5+ x86-64

pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl (37.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_universal2.whl (63.4 kB view details)

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

pyahocorasick-2.0.0b1-cp38-cp38-win_amd64.whl (44.6 kB view details)

Uploaded CPython 3.8Windows x86-64

pyahocorasick-2.0.0b1-cp38-cp38-musllinux_1_1_x86_64.whl (110.2 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

pyahocorasick-2.0.0b1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (104.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.5+ x86-64

pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_x86_64.whl (37.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_universal2.whl (63.4 kB view details)

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

pyahocorasick-2.0.0b1-cp37-cp37m-win_amd64.whl (44.5 kB view details)

Uploaded CPython 3.7mWindows x86-64

pyahocorasick-2.0.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl (107.7 kB view details)

Uploaded CPython 3.7mmusllinux: musl 1.1+ x86-64

pyahocorasick-2.0.0b1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (101.8 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.5+ x86-64

pyahocorasick-2.0.0b1-cp37-cp37m-macosx_10_9_x86_64.whl (37.6 kB view details)

Uploaded CPython 3.7mmacOS 10.9+ x86-64

pyahocorasick-2.0.0b1-cp36-cp36m-win_amd64.whl (44.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

pyahocorasick-2.0.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl (106.8 kB view details)

Uploaded CPython 3.6mmusllinux: musl 1.1+ x86-64

pyahocorasick-2.0.0b1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (101.8 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.5+ x86-64

pyahocorasick-2.0.0b1-cp36-cp36m-macosx_10_9_x86_64.whl (37.6 kB view details)

Uploaded CPython 3.6mmacOS 10.9+ x86-64

File details

Details for the file pyahocorasick-2.0.0b1.tar.gz.

File metadata

  • Download URL: pyahocorasick-2.0.0b1.tar.gz
  • Upload date:
  • Size: 99.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.10

File hashes

Hashes for pyahocorasick-2.0.0b1.tar.gz
Algorithm Hash digest
SHA256 ad05dc912d2a59a13b47dc60e1c4d7ebce7a2de85b8f5a0986398f50cb65eedc
MD5 000818ca4e04e5732e1003210c7ce20d
BLAKE2b-256 06d7dd5b3adb4fec7df42db31c33fbe045cc7cf18816c37f0b51c39c3d2461d4

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f7c7a84998c2cf4e182d5ac155116bb9426a241f76df30acf7c8dde786ee556a
MD5 07d6d549c2008a594bbd9147d3dbfeb4
BLAKE2b-256 070be25d3293ee8d68e82c9bdde1ddab9b24c4faf546b45d47bfff24a6e54577

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 cf4ed52f900125bab5281a66ecf39aada157dac6f81b7c39fc84e1b1f2d999c6
MD5 d20fa241bd3d2010f79cc699204366cf
BLAKE2b-256 2ae295b762a5beabe5e02ed0ecc121a6f9020b42c88d9760c0958f4590d79b0f

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9f889bcba19a8ddb37453094310866805448bbe177a1fb35b390148ef3605605
MD5 9ee385f415515f945cd8575a22189de5
BLAKE2b-256 8a83a2cfd92a4316594ea8129f469c25660570a65806e487ba6d90520906f74f

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5c2674b5e039405c9ede0cd0439a8ffa3734bec8b5f80cca24b0e219e1b4883b
MD5 c49c665ccc73f84c026e0bfcc425e990
BLAKE2b-256 ce908d122e58c3a7e809e09a9432a0543c25312782e782406d6a74d229e75437

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 7f55a518c9e008cb8bf780d37aa5bd47afad6475815e6524aea0d4b8d8a48e74
MD5 0c53320b9a45b2d9c3b5599772a51965
BLAKE2b-256 a629c63dc974ae74acb4c4e3e3de796075ea31f3fd364d97ec114138dc3ac9f2

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 900121555378724b2ff211d70973e5bb3d022f7e015d293eb68bf098b86b0827
MD5 c534ba6359e9579b71e3002281a5dadc
BLAKE2b-256 6412e9e7a9095388dc82b223621a008a6a7e5f8ac93017ede3f3beb7a3a56cbe

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 329a2d20915f8df629fc669330222dee1744080337837c8f1b7bffeaee156ec5
MD5 0d589f2aadd50cb70550514914401563
BLAKE2b-256 97a3e3c1b7772d68f53d6820ad59f2d33f484d96f86f813002e21919c58bfb16

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 47c4a98041f0784b3e249db4ad0f2edc7b073f4368365d695716d042540e791b
MD5 d57236f4fdbbe9760c39ab0daec2ea97
BLAKE2b-256 35cc2c58c1c9ad86f4b38be5e0c1d833d11f86cbe6e4819df6c59902ab5999b8

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 383ecf55e40507123018313f0e4916a4253a3dc0f5ff546b3968f9cf6094bf85
MD5 1ccfd30b2dcb1ce969b9d48700e2288b
BLAKE2b-256 a9931283c08355ddf3fe00b9716b5ce54d734cea231cf9638dfaef37d068c79c

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 40f0fb84414670d238379eed358aa550602025848eaf769a730a99165075a29f
MD5 216e449171cd6989671770a39e23fe38
BLAKE2b-256 eb573dd3a9e0035bdf764b3473ddc672c7b9a3cd7298d6a9e9768c5de6b45958

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 83d6938d9c2479e035063c010b7736e546fb1885081108856124d158a2ae25fb
MD5 6bd8f29e88d0b876a778412546febc23
BLAKE2b-256 cfd9d4bde807ce2a93057b042de3e9a4fdcff571be3f3618ae2095114215571d

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 154b975c2d97510d8e47d4b75a9592499555cb29c98bf2aa90ba744e306407a8
MD5 c6b6007f34b27f072fb6637a42043824
BLAKE2b-256 b93198b01b0b3cda2975e6c1b2a22bc89949a7a087f546ec5fc9bc6e2aa6df63

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 683ad8fbbbd36d179c15ff01494490cd0e84d068078d23493a34f41a5cbcbf82
MD5 f34b956aad21782130b55619a7956390
BLAKE2b-256 fad1d309fe4fcae691b334f19b565e1237dcc23b0aed5a9892597b6daeaa68be

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 e2076df42bb2104a0e367839f7792c913b8950017e2419405dac33b76979b31b
MD5 9aa77760b4e01152a389b47d9e2cc7c9
BLAKE2b-256 6de14b4f645dca06e0e0762ac41150f1a93130cd80b1c17cd0438c5be7faada0

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp37-cp37m-win_amd64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 0052005b780170c20c23f46ff76ce0a2565700fab7118f2c1e335e5199ac5574
MD5 4bf378738830e1360f1d9f8640283a41
BLAKE2b-256 a6f2a559cb94beffd0879d9676dda2e9138471dc118ef07858536859aa6ec062

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 4aeb89e97f59ec8dab4be1961ebc8cf5bf53e74d0b342a4927fade87970a0d8e
MD5 c009c589e503a572e87793c1ecea72c9
BLAKE2b-256 a3ce76326b3133faf0a497a37c41595ed6f2a29c1f094a311725feae36688fca

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 19eb32fb34cacf8fc1a0772c6b945cb1b4fd976230e9e37c3522cc113ee03d7d
MD5 803b8bceea67e1a0781dde0a01c39d17
BLAKE2b-256 2273af510617c562b0722729abd094d6774855b2349d7b9650b4cf4245859371

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1ec65a4ce2f57fa8a8d3479e4d88adb2cadec505554dd75d4b10e37bc91271a5
MD5 2ffbccfeecf85ade48b5724dfaf57c58
BLAKE2b-256 64bc5193f95ff2c25c4647a6d849ff742eb176129a1b930bea4e85d7bf875ae6

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp36-cp36m-win_amd64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 b361cbd922bfe8f267269be7b6952913fb1f238014ceb1e31e80e9d9eb7b92a5
MD5 c965a1ac0f6fbced74f27b79db31ae8c
BLAKE2b-256 7c00ef5fe829b24af1f65681406b959e0690adecd57102d4483163aebcfab477

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 042d3183cf14207e7838a8d340ef3e80bd37993e0f09c100fa855ffadc29d5cf
MD5 48f4be0615f78f785831d368deaf5d4e
BLAKE2b-256 891f5edef8c75e97fba5d91f13f6223a3e9fef90c41bbecfbb28a309795cab41

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 fd5dd1b6de66d446eb7484cbd48f3dcf4df47caf253f9781f1abe79e87b91dd1
MD5 42b2b65d44f39eed03c7f02251b5cb08
BLAKE2b-256 029c5fa2dec363bca41b04339c02066d09a156001b69e0089e274c4e01c117da

See more details on using hashes here.

File details

Details for the file pyahocorasick-2.0.0b1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for pyahocorasick-2.0.0b1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 32726d5729f85c29460972e7980cd5b518dc736b4bc4505ba146eba4141ba43b
MD5 b320949e13846c88b67ced22b148693a
BLAKE2b-256 0e9447d56853f0692a1d4b9083558552f4f407321ae5b993b4ebcda6846472b1

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