forked from lark-parser/lark
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
75 lines (63 loc) · 2.24 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
try:
import regex as re
except ImportError:
import re
from setuptools import find_packages, setup
__version__ ,= re.findall('__version__: str = "(.*)"', open('lark/__init__.py').read())
setup(
name = "lark",
version = __version__,
packages = ['lark', 'lark.parsers', 'lark.tools', 'lark.grammars', 'lark.__pyinstaller'],
requires = [],
install_requires = [],
extras_require = {
"regex": ["regex"],
"nearley": ["js2py"],
"atomic_cache": ["atomicwrites"],
},
package_data = {'': ['*.md', '*.lark'], 'lark': ['py.typed']},
test_suite = 'tests.__main__',
# metadata for upload to PyPI
author = "Erez Shinan",
author_email = "[email protected]",
description = "a modern parsing library",
license = "MIT",
keywords = "Earley LALR parser parsing ast",
url = "https://github.com/lark-parser/lark",
download_url = "https://github.com/lark-parser/lark/tarball/master",
long_description='''
Lark is a modern general-purpose parsing library for Python.
With Lark, you can parse any context-free grammar, efficiently, with very little code.
Main Features:
- Builds a parse-tree (AST) automagically, based on the structure of the grammar
- Earley parser
- Can parse all context-free grammars
- Full support for ambiguous grammars
- LALR(1) parser
- Fast and light, competitive with PLY
- Can generate a stand-alone parser
- CYK parser, for highly ambiguous grammars
- EBNF grammar
- Unicode fully supported
- Automatic line & column tracking
- Standard library of terminals (strings, numbers, names, etc.)
- Import grammars from Nearley.js
- Extensive test suite
- And much more!
Since version 1.0, only Python versions 3.6 and up are supported.
''',
classifiers=[
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Developers",
"Programming Language :: Python :: 3",
"Topic :: Software Development :: Libraries :: Python Modules",
"Topic :: Text Processing :: General",
"Topic :: Text Processing :: Linguistic",
"License :: OSI Approved :: MIT License",
],
entry_points = {
'pyinstaller40': [
'hook-dirs = lark.__pyinstaller:get_hook_dirs'
]
},
)