summaryrefslogtreecommitdiff
path: root/setup.md
blob: 3b7508c99792bc3f2092747e6b873a02ce4e7a93 (plain)
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
# Maintained, No Package Releases

PLY is maintained software, but no longer produces package releases.
There is no `setup.py` file.  It is not something that you install
with `pip` or a similar tool. PLY is free software which means that
you are free to COPY the necessary code from PLY into your project and
use it in any manner that you wish.

If you'd simply like to play around with PLY in a virtual environment
or install it into your normal Python distribution, use the included
install.py script:

    $ python install.py

Why this policy? PLY is a highly specialized tool for expert-level
programmers who are writing parsers and compilers.  If you are writing
a compiler, there's a good chance that it's part of a substantially
larger project.  Managing complexity and external dependencies (such
as PLY) in such projects is an ongoing challenge.  However, the truth
of the matter is that PLY just isn't that big.  All of the core
functionality is contained in just two files.  PLY has no external
dependencies of its own.  It changes very rarely.  Plus, there are
various customizations that you might want to apply to how it works.
So, all things equal, it's probably better for you to copy it.  This
also protects you in the event that some other project decides to use
PLY in a different way (or from a different version) than that used
in your project.

But what about getting all of the latest improvements and bug fixes?
What improvements? PLY is implementing a 1970s-era parsing algorithm.
It's not cutting edge.  As for bug fixes, you'll know pretty rapidly
if PLY works for your project or not.  If it's working, there's
literally no reason to ever upgrade it. Keep using the version of code
that you copied.  If you think you've found a bug, check back with the
repository to see if it's been fixed. Or submit it as an issue so that
it can be looked at.