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
|
[build-system]
requires = ["setuptools>=80", "setuptools-scm>=9.2.2"]
build-backend = "setuptools.build_meta"
[project]
name = "lark"
authors = [{name = "Erez Shinan", email = "erezshin@gmail.com"}]
license = {text = "MIT"}
description = "a modern parsing library"
keywords = ["Earley", "LALR", "parser", "parsing", "ast"]
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",
]
requires-python = ">=3.8"
dependencies = []
dynamic = ["version"]
[project.readme]
text = """
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.2, only Python versions 3.8 and up are supported."""
content-type = "text/markdown"
[project.urls]
Homepage = "https://github.com/lark-parser/lark"
Download = "https://github.com/lark-parser/lark/tarball/master"
[project.entry-points.pyinstaller40]
hook-dirs = "lark.__pyinstaller:get_hook_dirs"
[project.optional-dependencies]
regex = ["regex"]
nearley = ["js2py"]
atomic_cache = ["atomicwrites"]
interegular = ["interegular>=0.3.1,<0.4.0"]
[tool.setuptools]
packages = [
"lark",
"lark.parsers",
"lark.tools",
"lark.grammars",
"lark.__pyinstaller",
]
include-package-data = true
[tool.setuptools.package-data]
"*" = ["*.lark"]
lark = ["py.typed"]
[tool.setuptools.dynamic]
version = {attr = "lark.__version__"}
[tool.mypy]
files = "lark"
python_version = "3.8"
show_error_codes = true
enable_error_code = ["ignore-without-code", "unused-ignore"]
exclude = [
"^lark/__pyinstaller",
]
# You can disable imports or control per-module/file settings here
[[tool.mypy.overrides]]
module = [ "js2py" ]
ignore_missing_imports = true
[tool.coverage.report]
exclude_lines = [
"pragma: no cover",
"if TYPE_CHECKING:"
]
[tool.pyright]
include = ["lark"]
[tool.pytest.ini_options]
minversion = 6.0
addopts = "-ra -q"
testpaths =[
"tests"
]
python_files = "__main__.py"
|