Package: python3-phply
Version: 1.2.6-1
Severity: important
X-Debbugs-Cc: stu...@debian.org

Dear Maintainer,

phply/parsetab.py differs between Python 3.12 and Python 3.13 - a
no-change rebuild of the package with both interpreters as supported
Python versions (as they currently are), therefore generates a package
with both:

 ./usr/lib/python3.13/dist-packages/phply/parsetab.py
 ./usr/lib/python3/dist-packages/phply/parsetab.py

As a related issue, phply's performance is terrible when the Debian
package is run under Python 3.13, because it needs to regenerate
parsetab.py repeatedly (but of course fails to save it because the
location is readonly). This was observed in the test suite of
translate-toolkit, where:
- phply-using tests run in ~0.3s when run under Python 3.12
- the tests run in ~0.3s when run under Python 3.13 where parsetab.py is 
writable
- the tests take ~70s under Python 3.13 where parsetab.py is readonly
  (because the parsetab.py in the package is for Python 3.12 not 3.13)
- moving /usr/lib/python3.13/dist-packages/phply/parsetab.py to
  /usr/lib/python3/dist-packages/phply/parsetab.py lets Python 3.13 run
  quickly while making Python 3.12 run slowly instead.

There appears to be 3 steps to solving this:
- Rebuilding the package with only the default interpreter would be a
  quick work-around for Debian.
- Making parsetab.py version-agnostic would be a better long-term approach.
- Changing phply so that it doesn't use site-packages as a cache would
  stylistically better.

regards
Stuart

Reply via email to