skillfed

ply

Python Lex & Yacc

ply Permissive license BSD Abandoned v3.11 released

Install

ply on PyPI

pip

pip install ply

uv

uv add ply

poetry

poetry add ply

Package 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

Programming Language :: Python :: 2Programming Language :: Python :: 3

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.

Read as markdown · JSON record · Homepage

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
python lex yacc parserlexical analyzer generatorLALR parser pythoncompiler construction toolsgrammar parsing librarytoken lexer yaccsyntax analysis python

Similar packages