pyahocorasick


Namepyahocorasick JSON
Version 2.1.0 PyPI version JSON
download
home_pagehttp://github.com/WojciechMula/pyahocorasick
Summarypyahocorasick 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.
upload_time2024-03-21 13:28:27
maintainerWojciech Muła
docs_urlNone
authorWojciech Muła
requires_python>=3.8
licenseBSD-3-Clause and Public-Domain
keywords aho-corasick trie automaton dictionary
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ========================================================================
                          pyahocorasick
========================================================================


|build-ghactions| |docs|


**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.8 and up.
It works on 64 bits Linux, macOS 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:

- GitHub https://github.com/WojciechMula/pyahocorasick/
- Pypi https://pypi.python.org/pypi/pyahocorasick/
- Conda-Forge https://github.com/conda-forge/pyahocorasick-feedstock/

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:

* FAQ and Who is using pyahocorasick? 
  https://github.com/WojciechMula/pyahocorasick/wiki/FAQ#who-is-using-pyahocorasick


Documentation
=============

The full documentation including the API overview and reference is published on
`readthedocs <http://pyahocorasick.readthedocs.io/>`_.


Overview

With an `Aho-Corasick automaton <http://en.wikipedia.org/wiki/Aho-Corasick%20algorithm>`_
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 <http://en.wikipedia.org/wiki/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.


.. warning::

    When the library is built with unicode support, an Automaton will store 2 or
    4 bytes per letter, depending on your Python installation. When built
    for bytes, only one byte per letter is needed.


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
<https://github.com/WojciechMula/pyahocorasick/issues>`_ to report bugs or ask
questions.


Contributing
============

You can submit contributions through `GitHub pull requests
<https://github.com/WojciechMula/pyahocorasick/pull>`_.

- 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
<https://github.com/pombredanne>`_ 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 and contributors:

* **Andrew Grigorev**
* **Ayan Mahapatra**
* **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 <https://github.com/WojciechMula/pyahocorasick/pull>`_,
reported bugs as `GitHub issues <https://github.com/WojciechMula/pyahocorasick/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 <http://spdx.org/licenses/BSD-3-Clause.html>`_ 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:


* `py_aho_corasick <https://github.com/JanFan/py-aho-corasick>`_ by Jan

 * Written in pure Python.
 * Poor performance.

* `ahocorapy <https://github.com/abusix/ahocorapy>`_ by abusix

 * 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)

* `noaho <https://github.com/JDonner/NoAho>`_ by Jeff Donner

 * Written in C. Does not return overlapping matches.
 * Does not compile on Windows (July 2016).
 * No support for the pickle protocol.

* `acora <https://github.com/scoder/acora>`_ by Stefan Behnel

 * 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.

* `ahocorasick <https://hkn.eecs.berkeley.edu/~dyoo/python/ahocorasick/>`_ by Danny Yoo

 * Written in C.
 * seems unmaintained (last update in 2005).
 * GPL-licensed.


.. |build-ghactions| image:: https://github.com/WojciechMula/pyahocorasick/actions/workflows/test-and-build.yml/badge.svg
   :target: https://github.com/WojciechMula/pyahocorasick/actions/workflows/test-and-build.yml
   :alt: GitHub Action build on test -  Master branch status

.. |docs| image:: https://readthedocs.org/projects/pyahocorasick/badge/?version=latest
   :alt: Documentation Status
   :target: https://pyahocorasick.readthedocs.io/en/latest/

            

Raw data

            {
    "_id": null,
    "home_page": "http://github.com/WojciechMula/pyahocorasick",
    "name": "pyahocorasick",
    "maintainer": "Wojciech Mu\u0142a",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "wojciech_mula@poczta.onet.pl",
    "keywords": "aho-corasick, trie, automaton, dictionary",
    "author": "Wojciech Mu\u0142a",
    "author_email": "wojciech_mula@poczta.onet.pl",
    "download_url": "https://files.pythonhosted.org/packages/06/2e/075c667c27ecf2c3ed6bf3c62649625cf1e7de7fd349f63b49b794460b71/pyahocorasick-2.1.0.tar.gz",
    "platform": "Linux",
    "description": "========================================================================\n                          pyahocorasick\n========================================================================\n\n\n|build-ghactions| |docs|\n\n\n**pyahocorasick** is a fast and memory efficient library for exact or approximate\nmulti-pattern string search meaning that you can find multiple key strings\noccurrences at once in some input text.  The strings \"index\" can be built ahead\nof time and saved (as a pickle) to disk to reload and reuse later.  The library\nprovides an `ahocorasick` Python module that you can use as a plain dict-like\nTrie or convert a Trie to an automaton for efficient Aho-Corasick search.\n\n**pyahocorasick** is implemented in C and tested on Python 3.8 and up.\nIt works on 64 bits Linux, macOS and Windows.\n\nThe license_ is BSD-3-Clause. Some utilities, such as tests and the pure Python\nautomaton are dedicated to the Public Domain.\n\n\nTestimonials\n=============\n\n`Many thanks for this package. Wasn't sure where to leave a thank you note but\nthis package is absolutely fantastic in our application where we have a library\nof 100k+ CRISPR guides that we have to count in a stream of millions of DNA\nsequencing reads. This package does it faster than the previous C program we\nused for the purpose and helps us stick to just Python code in our pipeline.`\n\nMiika (AstraZeneca Functional Genomics Centre)\nhttps://github.com/WojciechMula/pyahocorasick/issues/145\n\n\nDownload and source code\n========================\n\nYou can fetch **pyahocorasick** from:\n\n- GitHub https://github.com/WojciechMula/pyahocorasick/\n- Pypi https://pypi.python.org/pypi/pyahocorasick/\n- Conda-Forge https://github.com/conda-forge/pyahocorasick-feedstock/\n\nThe **documentation** is published at https://pyahocorasick.readthedocs.io/\n\n\nQuick start\n===========\n\nThis module is written in C. You need a C compiler installed to compile native\nCPython extensions. To install::\n\n    pip install pyahocorasick\n\nThen create an Automaton::\n\n    >>> import ahocorasick\n    >>> automaton = ahocorasick.Automaton()\n\nYou can use the Automaton class as a trie. Add some string keys and their associated\nvalue to this trie. Here we associate a tuple of (insertion index, original string)\nas a value to each key string we add to the trie::\n\n    >>> for idx, key in enumerate('he her hers she'.split()):\n    ...   automaton.add_word(key, (idx, key))\n\nThen check if some string exists in the trie::\n\n    >>> 'he' in automaton\n    True\n    >>> 'HER' in automaton\n    False\n\nAnd play with the ``get()`` dict-like method::\n\n    >>> automaton.get('he')\n    (0, 'he')\n    >>> automaton.get('she')\n    (3, 'she')\n    >>> automaton.get('cat', 'not exists')\n    'not exists'\n    >>> automaton.get('dog')\n    Traceback (most recent call last):\n      File \"<stdin>\", line 1, in <module>\n    KeyError\n\nNow convert the trie to an Aho-Corasick automaton to enable Aho-Corasick search::\n\n    >>> automaton.make_automaton()\n\nThen search all occurrences of the keys (the needles) in an input string (our haystack).\n\nHere we print the results and just check that they are correct. The\n`Automaton.iter()` method return the results as two-tuples of the `end index` where a\ntrie key was found in the input string and the associated `value` for this key. Here\nwe had stored as values a tuple with the original string and its trie insertion\norder::\n\n    >>> for end_index, (insert_order, original_value) in automaton.iter(haystack):\n    ...     start_index = end_index - len(original_value) + 1\n    ...     print((start_index, end_index, (insert_order, original_value)))\n    ...     assert haystack[start_index:start_index + len(original_value)] == original_value\n    ...\n    (1, 2, (0, 'he'))\n    (1, 3, (1, 'her'))\n    (1, 4, (2, 'hers'))\n    (4, 6, (3, 'she'))\n    (5, 6, (0, 'he'))\n\nYou can also create an eventually large automaton ahead of time and `pickle` it to\nre-load later. Here we just pickle to a string. You would typically pickle to a\nfile instead::\n\n    >>> import pickle\n    >>> pickled = pickle.dumps(automaton)\n    >>> B = pickle.loads(pickled)\n    >>> B.get('he')\n    (0, 'he')\n\n\nSee also:\n\n* FAQ and Who is using pyahocorasick? \n  https://github.com/WojciechMula/pyahocorasick/wiki/FAQ#who-is-using-pyahocorasick\n\n\nDocumentation\n=============\n\nThe full documentation including the API overview and reference is published on\n`readthedocs <http://pyahocorasick.readthedocs.io/>`_.\n\n\nOverview\n\nWith an `Aho-Corasick automaton <http://en.wikipedia.org/wiki/Aho-Corasick%20algorithm>`_\nyou can efficiently search all occurrences of multiple strings (the needles) in an\ninput string (the haystack) making a single pass over the input string. With\npyahocorasick you can eventually build large automatons and pickle them to reuse\nthem over and over as an indexed structure for fast multi pattern string matching.\n\nOne of the advantages of an Aho-Corasick automaton is that the typical worst-case\nand best-case **runtimes** are about the same and depends primarily on the size\nof the input string and secondarily on the number of matches returned.  While\nthis may not be the fastest string search algorithm in all cases, it can search\nfor multiple strings at once and its runtime guarantees make it rather unique.\nBecause pyahocorasick is based on a Trie, it stores redundant keys prefixes only\nonce using memory efficiently.\n\nA drawback is that it needs to be constructed and \"finalized\" ahead of time\nbefore you can search strings. In several applications where you search for\nseveral pre-defined \"needles\" in a variable \"haystacks\" this is actually an\nadvantage.\n\n**Aho-Corasick automatons** are commonly used for fast multi-pattern matching\nin intrusion detection systems (such as snort), anti-viruses and many other\napplications that need fast matching against a pre-defined set of string keys.\n\nInternally an Aho-Corasick automaton is typically based on a Trie with extra\ndata for failure links and an implementation of the Aho-Corasick search\nprocedure.\n\nBehind the scenes the **pyahocorasick** Python library implements these two data\nstructures:  a `Trie <http://en.wikipedia.org/wiki/trie>`_ and an Aho-Corasick\nstring matching automaton. Both are exposed through the `Automaton` class.\n\nIn addition to Trie-like and Aho-Corasick methods and data structures,\n**pyahocorasick** also implements dict-like methods: The pyahocorasick\n**Automaton** is a **Trie** a dict-like structure indexed by string keys each\nassociated with a value object. You can use this to retrieve an associated value\nin a time proportional to a string key length.\n\npyahocorasick is available in two flavors:\n\n* a CPython **C-based extension**, compatible with Python 3 only. Use older\n  version 1.4.x for Python 2.7.x and 32 bits support.\n\n* a simpler pure Python module, compatible with Python 2 and 3. This is only\n  available in the source repository (not on Pypi) under the etc/py/ directory\n  and has a slightly different API.\n\n\nUnicode and bytes\n-----------------\n\nThe type of strings accepted and returned by ``Automaton`` methods are either\n**unicode** or **bytes**, depending on a compile time settings (preprocessor\ndefinition of ``AHOCORASICK_UNICODE`` as set in `setup.py`).\n\nThe ``Automaton.unicode`` attributes can tell you how the library was built.\nOn Python 3, unicode is the default.\n\n\n.. warning::\n\n    When the library is built with unicode support, an Automaton will store 2 or\n    4 bytes per letter, depending on your Python installation. When built\n    for bytes, only one byte per letter is needed.\n\n\nBuild and install from PyPi\n===========================\n\nTo install for common operating systems, use pip. Pre-built wheels should be\navailable on Pypi at some point in the future::\n\n    pip install pyahocorasick\n\nTo build from sources you need to have a C compiler installed and configured which\nshould be standard on Linux and easy to get on MacOSX.\n\nTo build from sources, clone the git repository or download and extract the source\narchive.\n\nInstall `pip` (and its `setuptools` companion) and then run (in a `virtualenv` of\ncourse!)::\n\n    pip install .\n\nIf compilation succeeds, the module is ready to use.\n\n\nSupport\n=======\n\nSupport is available through the `GitHub issue tracker\n<https://github.com/WojciechMula/pyahocorasick/issues>`_ to report bugs or ask\nquestions.\n\n\nContributing\n============\n\nYou can submit contributions through `GitHub pull requests\n<https://github.com/WojciechMula/pyahocorasick/pull>`_.\n\n- There is a Makefile with a default target that builds and runs tests.\n- The tests can run with a `pip installe -e .[testing] && pytest -vvs`\n- See also the .github directory for CI tests and workflow\n\n\nAuthors\n=======\n\nThe initial author and maintainer is Wojciech Mu\u0142a. `Philippe Ombredanne\n<https://github.com/pombredanne>`_ is Wojciech's sidekick and helps maintaining,\nand rewrote documentation, setup CI servers and did a some work to make this\nmodule more accessible to end users.\n\nAlphabetic list of authors and contributors:\n\n* **Andrew Grigorev**\n* **Ayan Mahapatra**\n* **Bogdan**\n* **David Woakes**\n* **Edward Betts**\n* **Frankie Robertson**\n* **Frederik Petersen**\n* **gladtosee**\n* **INADA Naoki**\n* **Jan Fan**\n* **Pastafarianist**\n* **Philippe Ombredanne**\n* **Renat Nasyrov**\n* **Sylvain Zimmer**\n* **Xiaopeng Xu**\n\nand many others!\n\nThis library would not be possible without help of many people, who contributed in\nvarious ways.\nThey created `pull requests <https://github.com/WojciechMula/pyahocorasick/pull>`_,\nreported bugs as `GitHub issues <https://github.com/WojciechMula/pyahocorasick/issues>`_\nor via direct messages, proposed fixes, or spent their valuable time on testing.\n\nThank you.\n\n\nLicense\n=======\n\nThis library is licensed under very liberal\n`BSD-3-Clause <http://spdx.org/licenses/BSD-3-Clause.html>`_ license. Some\nportions of the code are dedicated to the public domain such as the pure Python\nautomaton and test code.\n\nFull text of license is available in LICENSE file.\n\n\nOther Aho-Corasick implementations for Python you can consider\n==============================================================\n\nWhile **pyahocorasick** tries to be the finest and fastest Aho Corasick library\nfor Python you may consider these other libraries:\n\n\n* `py_aho_corasick <https://github.com/JanFan/py-aho-corasick>`_ by Jan\n\n * Written in pure Python.\n * Poor performance.\n\n* `ahocorapy <https://github.com/abusix/ahocorapy>`_ by abusix\n\n * Written in pure Python.\n * Better performance than py-aho-corasick.\n * Using pypy, ahocorapy's search performance is only slightly worse than pyahocorasick's.\n * Performs additional suffix shortcutting (more setup overhead, less search overhead for suffix lookups).\n * Includes visualization tool for resulting automaton (using pygraphviz).\n * MIT-licensed, 100% test coverage, tested on all major python versions (+ pypy)\n\n* `noaho <https://github.com/JDonner/NoAho>`_ by Jeff Donner\n\n * Written in C. Does not return overlapping matches.\n * Does not compile on Windows (July 2016).\n * No support for the pickle protocol.\n\n* `acora <https://github.com/scoder/acora>`_ by Stefan Behnel\n\n * Written in Cython.\n * Large automaton may take a long time to build (July 2016)\n * No support for a dict-like protocol to associate a value to a string key.\n\n* `ahocorasick <https://hkn.eecs.berkeley.edu/~dyoo/python/ahocorasick/>`_ by Danny Yoo\n\n * Written in C.\n * seems unmaintained (last update in 2005).\n * GPL-licensed.\n\n\n.. |build-ghactions| image:: https://github.com/WojciechMula/pyahocorasick/actions/workflows/test-and-build.yml/badge.svg\n   :target: https://github.com/WojciechMula/pyahocorasick/actions/workflows/test-and-build.yml\n   :alt: GitHub Action build on test -  Master branch status\n\n.. |docs| image:: https://readthedocs.org/projects/pyahocorasick/badge/?version=latest\n   :alt: Documentation Status\n   :target: https://pyahocorasick.readthedocs.io/en/latest/\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause and Public-Domain",
    "summary": "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.",
    "version": "2.1.0",
    "project_urls": {
        "Homepage": "http://github.com/WojciechMula/pyahocorasick"
    },
    "split_keywords": [
        "aho-corasick",
        " trie",
        " automaton",
        " dictionary"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9daf2fb0293772fa3d216d50d5ed022918fd875b35beb17b1f0646b5054a04aa",
                "md5": "13253057ad873fae23de119f20db7063",
                "sha256": "8c46288044c4f71392efb4f5da0cb8abd160787a8b027afc85079e9c3d7551eb"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "13253057ad873fae23de119f20db7063",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 63633,
            "upload_time": "2024-03-21T13:27:31",
            "upload_time_iso_8601": "2024-03-21T13:27:31.288016Z",
            "url": "https://files.pythonhosted.org/packages/9d/af/2fb0293772fa3d216d50d5ed022918fd875b35beb17b1f0646b5054a04aa/pyahocorasick-2.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7d088de0e86c552889740f618133e129044ab42a53b6c6301f2fc18db679fbd",
                "md5": "f7571371ba597473c6314bc4f45f4bf3",
                "sha256": "1f15529c83b8c6e0548d7d3c5631fefa23fba5190e67be49d6c9e24a6358ff9c"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "f7571371ba597473c6314bc4f45f4bf3",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 37923,
            "upload_time": "2024-03-21T13:27:33",
            "upload_time_iso_8601": "2024-03-21T13:27:33.914680Z",
            "url": "https://files.pythonhosted.org/packages/a7/d0/88de0e86c552889740f618133e129044ab42a53b6c6301f2fc18db679fbd/pyahocorasick-2.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4d2261283c423676443dd2f96cf6b886b26f21db3c869ae73432bf00d128bec0",
                "md5": "257a69c32441e5806619185f0f5ddc19",
                "sha256": "581e3d85043f1797543796f021e8d7d48c18e594529b72d86f70ea78abc88fff"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "has_sig": false,
            "md5_digest": "257a69c32441e5806619185f0f5ddc19",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 110715,
            "upload_time": "2024-03-21T13:27:36",
            "upload_time_iso_8601": "2024-03-21T13:27:36.225997Z",
            "url": "https://files.pythonhosted.org/packages/4d/22/61283c423676443dd2f96cf6b886b26f21db3c869ae73432bf00d128bec0/pyahocorasick-2.1.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bf276e74ed6731d14b2b6fce146155997bd14bc6d803f43a7ae5397ac931fc3c",
                "md5": "8eebcb632056c67b4c9ff5a9c70f4dfb",
                "sha256": "c860ad9cb59e56c31aed8a5d1ee9d83a0151277b09198d027ffce213697716ed"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "8eebcb632056c67b4c9ff5a9c70f4dfb",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 109782,
            "upload_time": "2024-03-21T13:27:37",
            "upload_time_iso_8601": "2024-03-21T13:27:37.867465Z",
            "url": "https://files.pythonhosted.org/packages/bf/27/6e74ed6731d14b2b6fce146155997bd14bc6d803f43a7ae5397ac931fc3c/pyahocorasick-2.1.0-cp310-cp310-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "44667abc274d852af6750bd7165d5fcf88997ffe0178c6c35f9a46f3e3761868",
                "md5": "1f26be59b8f486750326e1655115ada1",
                "sha256": "4f8eba88fce34a1d8020638a4a8732c6241a5d85fe12be8669b7495d99d36b6a"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "1f26be59b8f486750326e1655115ada1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": ">=3.8",
            "size": 39284,
            "upload_time": "2024-03-21T13:27:40",
            "upload_time_iso_8601": "2024-03-21T13:27:40.263504Z",
            "url": "https://files.pythonhosted.org/packages/44/66/7abc274d852af6750bd7165d5fcf88997ffe0178c6c35f9a46f3e3761868/pyahocorasick-2.1.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f28be6baa0246d3126d509d56f55f8f8be7b9cd914d8f87d1277f25d9af55351",
                "md5": "755df378e7151c8ead38b8f52671660b",
                "sha256": "d6e0da0a8fc78c694778dced537c1bfb8b2f178ec92a82d81539d2e35a15cba0"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "755df378e7151c8ead38b8f52671660b",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 63668,
            "upload_time": "2024-03-21T13:27:42",
            "upload_time_iso_8601": "2024-03-21T13:27:42.157617Z",
            "url": "https://files.pythonhosted.org/packages/f2/8b/e6baa0246d3126d509d56f55f8f8be7b9cd914d8f87d1277f25d9af55351/pyahocorasick-2.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "96014e4c5e3ff80eeafee2d3f510a71558e1317a13893360dd2c68276bb7514a",
                "md5": "7cf708d8ad55df791cabf9b2cc3a1fa5",
                "sha256": "658d55e51c7588a5dba57de674241a16a3c94bf57f3bfd70022c4d7defe2b0f4"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7cf708d8ad55df791cabf9b2cc3a1fa5",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 37951,
            "upload_time": "2024-03-21T13:27:44",
            "upload_time_iso_8601": "2024-03-21T13:27:44.127959Z",
            "url": "https://files.pythonhosted.org/packages/96/01/4e4c5e3ff80eeafee2d3f510a71558e1317a13893360dd2c68276bb7514a/pyahocorasick-2.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "313217ab57fe5abcf09d2f1ceb502143447be00658761d167118441e19a2b2c6",
                "md5": "864165509244257afb2944873f3ae15c",
                "sha256": "a9f2728ac77bab807ba65c6ef41be30358ef0c9bb6960c9fe070d43f7024cb91"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "864165509244257afb2944873f3ae15c",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 118265,
            "upload_time": "2024-03-21T13:27:46",
            "upload_time_iso_8601": "2024-03-21T13:27:46.456140Z",
            "url": "https://files.pythonhosted.org/packages/31/32/17ab57fe5abcf09d2f1ceb502143447be00658761d167118441e19a2b2c6/pyahocorasick-2.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c1dee33f32ceceafdd440c62a454f2d506b1119226d37135aa31940683d422c4",
                "md5": "a0e05b033b43c59158d7c9813b2c4369",
                "sha256": "a58c44c407a45155dc7a3253274b5fd78ab00b579bd5685059610867cdb37142"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a0e05b033b43c59158d7c9813b2c4369",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 113627,
            "upload_time": "2024-03-21T13:27:48",
            "upload_time_iso_8601": "2024-03-21T13:27:48.804324Z",
            "url": "https://files.pythonhosted.org/packages/c1/de/e33f32ceceafdd440c62a454f2d506b1119226d37135aa31940683d422c4/pyahocorasick-2.1.0-cp311-cp311-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3676d83c60ec7a202cbfeffaa9649d0fee6ddcb974622e411b86211ff3572549",
                "md5": "206dc76e169d43ebbf44630befb48eff",
                "sha256": "d8254d6333df5eb400ed3ec8b24da9e3f5da8e28b94a71392391703a7aac568d"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "206dc76e169d43ebbf44630befb48eff",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.8",
            "size": 39303,
            "upload_time": "2024-03-21T13:27:51",
            "upload_time_iso_8601": "2024-03-21T13:27:51.220551Z",
            "url": "https://files.pythonhosted.org/packages/36/76/d83c60ec7a202cbfeffaa9649d0fee6ddcb974622e411b86211ff3572549/pyahocorasick-2.1.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b3c1380f6fa3ad55eb66104e9eab608e3bedb84df9f951fb31373238446cd711",
                "md5": "c0672ad37a450cdcaabec902789d4dbd",
                "sha256": "82b0d20e82cc282fd29324e8df93809cebbffb345055214ce4b7873698df02c8"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp312-cp312-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "c0672ad37a450cdcaabec902789d4dbd",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 63857,
            "upload_time": "2024-03-21T13:27:53",
            "upload_time_iso_8601": "2024-03-21T13:27:53.916561Z",
            "url": "https://files.pythonhosted.org/packages/b3/c1/380f6fa3ad55eb66104e9eab608e3bedb84df9f951fb31373238446cd711/pyahocorasick-2.1.0-cp312-cp312-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bb8e2d398e29e5db80c7187b0fcd955289381c4cc16cba5115809d655333af16",
                "md5": "bc5e7fba8515e6e4d24492a5f1afe162",
                "sha256": "6dedb9fed92705b742d6aa3d87abb1ec999f57310ef32b962f65f4e42182fe0a"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bc5e7fba8515e6e4d24492a5f1afe162",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 38082,
            "upload_time": "2024-03-21T13:27:56",
            "upload_time_iso_8601": "2024-03-21T13:27:56.291464Z",
            "url": "https://files.pythonhosted.org/packages/bb/8e/2d398e29e5db80c7187b0fcd955289381c4cc16cba5115809d655333af16/pyahocorasick-2.1.0-cp312-cp312-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "007f1b0e2760d89926f2a4c51f74f21d7681b3543c689818e2de9325f763b8ba",
                "md5": "c906085955ee7b5f6b52fe6abbb3a93f",
                "sha256": "f209796e7d354734781dd883c333596e482c70136fa76a4cb169f383e6c40bca"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c906085955ee7b5f6b52fe6abbb3a93f",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 119421,
            "upload_time": "2024-03-21T13:27:58",
            "upload_time_iso_8601": "2024-03-21T13:27:58.319462Z",
            "url": "https://files.pythonhosted.org/packages/00/7f/1b0e2760d89926f2a4c51f74f21d7681b3543c689818e2de9325f763b8ba/pyahocorasick-2.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a6b3b486f5aa43a0e00e1bd6387fd3754b175a00f3a8cb5b4009e5433bb564ca",
                "md5": "3f4cb9495b80217a5d6c15ed20594997",
                "sha256": "8337af64c649223cff548c7204dda823e83622d63e5449bc51ae069efb2f240f"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3f4cb9495b80217a5d6c15ed20594997",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 113873,
            "upload_time": "2024-03-21T13:28:01",
            "upload_time_iso_8601": "2024-03-21T13:28:01.478235Z",
            "url": "https://files.pythonhosted.org/packages/a6/b3/b486f5aa43a0e00e1bd6387fd3754b175a00f3a8cb5b4009e5433bb564ca/pyahocorasick-2.1.0-cp312-cp312-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8f028dceb0a63dbbc7c102eb0bd27504336ecb27164155c35d27a9943f2ce0dd",
                "md5": "61a4ee99862a327ab577125089a9509e",
                "sha256": "5ebe0d1e15afb782477e3d0aa1dce28ab9dad1200211fb785b9c1cc1208e6f04"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "61a4ee99862a327ab577125089a9509e",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.8",
            "size": 39373,
            "upload_time": "2024-03-21T13:28:03",
            "upload_time_iso_8601": "2024-03-21T13:28:03.081056Z",
            "url": "https://files.pythonhosted.org/packages/8f/02/8dceb0a63dbbc7c102eb0bd27504336ecb27164155c35d27a9943f2ce0dd/pyahocorasick-2.1.0-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3afa56f4d5121b2d8e491a7c1a063d235b76c933c690cf67ed00743e109fc106",
                "md5": "a65540d962a2639b553029b0a8a6fc0b",
                "sha256": "7454ba5fa528958ca9a1bc3143f8e980bd7817ea481f46495e6ffa89675ab93b"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "a65540d962a2639b553029b0a8a6fc0b",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 63657,
            "upload_time": "2024-03-21T13:28:05",
            "upload_time_iso_8601": "2024-03-21T13:28:05.227157Z",
            "url": "https://files.pythonhosted.org/packages/3a/fa/56f4d5121b2d8e491a7c1a063d235b76c933c690cf67ed00743e109fc106/pyahocorasick-2.1.0-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c8512bd342ab7bdc9bf72171920968ab1da77b115bfa49bd33b6007ab7fbb458",
                "md5": "ff79332da5548ffc329f1b3bfcad050a",
                "sha256": "3795ac922d21fbfea40a6b3a330762e8b38ce8ba511b1eb15bf9eeb9303b2662"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ff79332da5548ffc329f1b3bfcad050a",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 37929,
            "upload_time": "2024-03-21T13:28:06",
            "upload_time_iso_8601": "2024-03-21T13:28:06.794449Z",
            "url": "https://files.pythonhosted.org/packages/c8/51/2bd342ab7bdc9bf72171920968ab1da77b115bfa49bd33b6007ab7fbb458/pyahocorasick-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "380e9feb94becb2dc62e081ad8c6850199c23329775043896cdbcf15b9d3787d",
                "md5": "b824c795f7f8e2a9c0689de32bdfc322",
                "sha256": "8e92150849a3c13da37e37ca6374fa55960fd5c845029eca02d9b5846b26fe48"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b824c795f7f8e2a9c0689de32bdfc322",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 104399,
            "upload_time": "2024-03-21T13:28:09",
            "upload_time_iso_8601": "2024-03-21T13:28:09.463832Z",
            "url": "https://files.pythonhosted.org/packages/38/0e/9feb94becb2dc62e081ad8c6850199c23329775043896cdbcf15b9d3787d/pyahocorasick-2.1.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "699aa5f60ec1a412cad010c66a849f111fb236eb4084160d4234e11f76956441",
                "md5": "3012e0dfe6fe8d9a056e6c87381b7c11",
                "sha256": "23b183600e2087f16f6c5e6185d61525ad74335f2a5b693dd6d66bba2f6a4b05"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3012e0dfe6fe8d9a056e6c87381b7c11",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 110153,
            "upload_time": "2024-03-21T13:28:11",
            "upload_time_iso_8601": "2024-03-21T13:28:11.519793Z",
            "url": "https://files.pythonhosted.org/packages/69/9a/a5f60ec1a412cad010c66a849f111fb236eb4084160d4234e11f76956441/pyahocorasick-2.1.0-cp38-cp38-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "fd9d36a030056ce45ce7db08f0259c9112f455a26dc79b3bde99279dcc9eb77a",
                "md5": "255e79fe669dff3c421c1be06b3cc489",
                "sha256": "7034b26e145518610651339b8701568a3533a3114b00cf55f22bca80bff58e6d"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "255e79fe669dff3c421c1be06b3cc489",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.8",
            "size": 39316,
            "upload_time": "2024-03-21T13:28:13",
            "upload_time_iso_8601": "2024-03-21T13:28:13.819478Z",
            "url": "https://files.pythonhosted.org/packages/fd/9d/36a030056ce45ce7db08f0259c9112f455a26dc79b3bde99279dcc9eb77a/pyahocorasick-2.1.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1b71b91cdf790051c1d2f029216b3b03939a59612feeb0cbef885631c841e047",
                "md5": "c5b81dc4263c8f5367cfff92ab5aaa16",
                "sha256": "36491675a13fe4181a6b3bccfc9032a1a5d03bd3b0a151c06f8865c16ba44b42"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "c5b81dc4263c8f5367cfff92ab5aaa16",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 63655,
            "upload_time": "2024-03-21T13:28:18",
            "upload_time_iso_8601": "2024-03-21T13:28:18.280194Z",
            "url": "https://files.pythonhosted.org/packages/1b/71/b91cdf790051c1d2f029216b3b03939a59612feeb0cbef885631c841e047/pyahocorasick-2.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3efb5968cdd9b256d10147013cfd06678abf4c0d4fea0bcfade787c7d48216c5",
                "md5": "2ce97dcffd78d0502ac4513d5a538884",
                "sha256": "895ab1ff5384ee5325c74cbacafc419e534f1f110b9fb3c544cc56832ecce082"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "2ce97dcffd78d0502ac4513d5a538884",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 37933,
            "upload_time": "2024-03-21T13:28:20",
            "upload_time_iso_8601": "2024-03-21T13:28:20.063354Z",
            "url": "https://files.pythonhosted.org/packages/3e/fb/5968cdd9b256d10147013cfd06678abf4c0d4fea0bcfade787c7d48216c5/pyahocorasick-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c79c99c553a75e5c15becb5301d68cead6a927b20b191ee26b8e45447d75d87",
                "md5": "7184ea37c744f418c0a933c736196cd7",
                "sha256": "bf4a4b19ac37e9a7087646b8bcc306acd7a91649355d59b866b756068e35d018"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "7184ea37c744f418c0a933c736196cd7",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 103116,
            "upload_time": "2024-03-21T13:28:22",
            "upload_time_iso_8601": "2024-03-21T13:28:22.334919Z",
            "url": "https://files.pythonhosted.org/packages/9c/79/c99c553a75e5c15becb5301d68cead6a927b20b191ee26b8e45447d75d87/pyahocorasick-2.1.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d51905fb878cf5064391da4cfaadda72afebb3cff0b56a2b008513083b60e17",
                "md5": "a7db29c8c92c4dc4aaa35f441b1acf91",
                "sha256": "f44f96496aa773fc5bf302ddf968dd6b920fab34522f944392af8bde13cbe805"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a7db29c8c92c4dc4aaa35f441b1acf91",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 109228,
            "upload_time": "2024-03-21T13:28:23",
            "upload_time_iso_8601": "2024-03-21T13:28:23.979927Z",
            "url": "https://files.pythonhosted.org/packages/5d/51/905fb878cf5064391da4cfaadda72afebb3cff0b56a2b008513083b60e17/pyahocorasick-2.1.0-cp39-cp39-musllinux_1_1_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "357e8771875e666fffeda9e00850ef9678c3957b4e0cff01186296abf9ee04fd",
                "md5": "6fa26cfe2d9027a7bc79c3ee3d6b660a",
                "sha256": "05b7c2ef52da247efec6fb5a011113b7e943e961e22aaaf757cb9c15083440c9"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6fa26cfe2d9027a7bc79c3ee3d6b660a",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.8",
            "size": 39313,
            "upload_time": "2024-03-21T13:28:25",
            "upload_time_iso_8601": "2024-03-21T13:28:25.597431Z",
            "url": "https://files.pythonhosted.org/packages/35/7e/8771875e666fffeda9e00850ef9678c3957b4e0cff01186296abf9ee04fd/pyahocorasick-2.1.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "062e075c667c27ecf2c3ed6bf3c62649625cf1e7de7fd349f63b49b794460b71",
                "md5": "4c4e820880e359b3cf86bb63a67f00f5",
                "sha256": "4df4845c1149e9fa4aa33f0f0aa35f5a42957a43a3d6e447c9b44e679e2672ea"
            },
            "downloads": -1,
            "filename": "pyahocorasick-2.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4c4e820880e359b3cf86bb63a67f00f5",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 103259,
            "upload_time": "2024-03-21T13:28:27",
            "upload_time_iso_8601": "2024-03-21T13:28:27.198561Z",
            "url": "https://files.pythonhosted.org/packages/06/2e/075c667c27ecf2c3ed6bf3c62649625cf1e7de7fd349f63b49b794460b71/pyahocorasick-2.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-21 13:28:27",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "WojciechMula",
    "github_project": "pyahocorasick",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "pyahocorasick"
}
        
Elapsed time: 3.93310s