forked from WojciechMula/pyahocorasick
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
105 lines (90 loc) · 2.89 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- coding: utf-8 -*-
"""
Aho-Corasick string search algorithm.
Author : Wojciech Muła, [email protected]
WWW : http://0x80.pl
License : BSD-3-Clause (see LICENSE)
"""
try:
from setuptools import setup, Extension
except ImportError:
from distutils.core import setup, Extension
from sys import version_info as python_version
def get_long_description():
"""
Strip the content index from the long description.
"""
import codecs
with codecs.open('README.rst', encoding='UTF-8') as f:
readme = [line for line in f if not line.startswith('.. contents::')]
return ''.join(readme)
if python_version.major not in [2, 3]:
raise ValueError('Python %s is not supported' % python_version)
if python_version.major == 3:
macros = [
# when defined unicode strings are supported
('AHOCORASICK_UNICODE', ''),
]
else:
# On Python 2, unicode strings are not supported (yet).
macros = []
module = Extension(
'ahocorasick',
sources=[
'pyahocorasick.c'
],
define_macros=macros,
depends=[
'common.h',
'Automaton.c',
'Automaton.h',
'Automaton_pickle.c',
'AutomatonItemsIter.c',
'AutomatonItemsIter.h',
'AutomatonSearchIter.c',
'AutomatonSearchIter.h',
'trie.c',
'trie.h',
'slist.c',
'utils.c',
'trienode.c',
'trienode.h',
'msinttypes/stdint.h',
],
)
setup(
name='pyahocorasick',
version='1.1.8.dev1',
ext_modules=[module],
description=(
'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 strings 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. Implemented in C and tested '
'on Python 2.7 and 3.4+. Works on Linux, Mac and Windows. BSD-3-clause license.'
),
author='Wojciech Muła',
author_email='[email protected]',
maintainer='Wojciech Muła',
maintainer_email='[email protected]',
url='http://github.com/WojciechMula/pyahocorasick',
platforms=['Linux', 'MacOSX', 'Windows'],
license=' BSD-3-Clause and Public-Domain',
long_description=get_long_description(),
keywords=[
'aho-corasick',
'trie',
'automaton',
'dictionary',
],
classifiers=[
'Development Status :: 5 - Production/Stable',
'License :: OSI Approved :: BSD License',
'Programming Language :: C',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 3',
'Topic :: Software Development :: Libraries',
'Topic :: Text Editors :: Text Processing',
],
)