ply
Python Lex & Yacc
Install
ply on PyPI
pip
pip install plyuv
uv add plypoetry
poetry add plyPackage facts
| License | BSD (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | abandoned — 3,101 days since the last release |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: ply-3.11-py2.py3-none-any.whl
About ply
from the package's own PyPI description — quoted content, verbatim
PLY is yet another implementation of lex and yacc for Python. Some notable features include the fact that its implemented entirely in Python and it uses LALR(1) parsing which is efficient and well suited for larger grammars.
PLY provides most of the standard lex/yacc features including support for empty productions, precedence rules, error recovery, and support for ambiguous grammars.
PLY is extremely easy to use and provides very extensive error checking. It is compatible with both Python 2 and Python 3.
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
PLY is a Python implementation of lex and yacc that provides lexical analysis and LALR(1) parsing for building compilers and interpreters. It handles grammar definition, tokenization, and syntax analysis with built-in error recovery and ambiguity support.
Installation is frictionless with no runtime dependencies and a pure-Python wheel distribution. However, the package has been abandoned since 2018-02-15 with no updates for 3101 days, meaning no maintenance, bug fixes, or compatibility improvements.
PLY is licensed under the permissive BSD license, allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and proprietary projects.
Usage
pip install ply==3.11
import ply.lex as lex
import ply.yacc as yacc
# Define tokens and rules, then build lexer/parser
lexer = lex.lex()
parser = yacc.yacc()
Package supports Python 2 and 3 per classifiers but has received no updates since 2018-02-15; compatibility with recent Python versions is unverified.
Verdict: PLY remains a solid, dependency-free choice for building parsers and lexers, with a permissive BSD license and top_1000 popularity. Its abandonment since 2018-02-15 is a significant concern: no security updates, no bug fixes, and no maintenance. Use only if you can maintain a fork or if your grammar requirements are simple and stable.
Needs verification
- Whether PLY has known incompatibilities with Python versions released after 2018-02-15
- Whether any critical bugs or security issues have been reported since abandonment
- Whether the package is actively maintained under a different repository or maintainer
Similar packages
permissive · top 1,000 on PyPI
pycparserpermissive · top 100 on PyPI
pyparsingpermissive · top 1,000 on PyPI
pytokenspermissive · top 1,000 on PyPI
parsopermissive · top 1,000 on PyPI
pytzpermissive · top 100 on PyPI
ipython-pygments-lexerspermissive · top 1,000 on PyPI
tree-sitter-bashpermissive · top 1,000 on PyPI
mdit-py-pluginspermissive · top 1,000 on PyPI
rfc3987-syntaxpermissive · top 1,000 on PyPI