blessed
blessed copied to clipboard
Drop Python 3.4 support
Hi, it is nearly impossible nowadays to install Python 3.4 as it requires openssl1.0, which is very difficult (if not impossible, all solutions from previous years seem to have stopped working) to install as it has been replaced by openssl1.1. Python 3.4 is also EOL for quite some time now. Maybe it is time to remove support?
Download counts for the last 45 days
python_version | download_count |
---|---|
3.7 | 815,720 |
3.8 | 382,366 |
3.6 | 186,227 |
3.9 | 88,979 |
3.10 | 25,073 |
2.7 | 22,184 |
3.5 | 11,901 |
3.4 | 436 |
3.11 | 9 |
Total | 1,532,895 |
Chances are good a lot of those 436 downloads are test runs. I wish that number was lower, but I don't have a problem dropping 3.4. That said, it's not a priority because it's not breaking anything and both @jquast and I are pretty busy these days. I had been thinking I'd deal with it when we can't test it or it blocks something.
Taking a quick look at the code there is a little exception cleanup we can do in Terminal.kbhit(), but it's not a performance hit for other versions. That would be the only code change that's 3.4 specific. Otherwise it's just metadata.
Not specific to 3.4, but related to versions, we can clean up some old version references in the docs and the version check in __init__.py
Also related, we have some cases where we use hasattr() on the standard library but don't have a comment for why. We should probably add comments. That said, they seem to be *nix/windows differences or for redirected streams and not version specific.
A main problem is that since 3.4 is so difficult to install (which is probably why it's so much lower than the other versions), it's hard to run a full test suite on blessed on your own machine, which is why I just didn't bother.
I don't bother to run tests with older python versions locally, either, I just (ab)use CI to do it on my behalf. We will certainly drop older versions when the download numbers are very low and/or we can't support it in CI.
Dropped 3.4 in https://github.com/jquast/blessed/commit/ffc90134a08f175e1dc07c6f5e94c019cedde759 3 downloads for 3.4 in the last month.
However, it doesn't take out the code I mentioned above. We can probably drop it though since 2.7 doesn't have InterruptedError
and 3.5+ doesn't raise it.
https://github.com/jquast/blessed/blob/167c34e5268cacb4501418e71e9b926b80dfe077/blessed/terminal.py#L1293-L1314