irmen / Pyro4

Pyro 4.x - Python remote objects
http://pyro4.readthedocs.io/
MIT License
715 stars 83 forks source link

Replace deprecated threading aliases #245

Closed hugovk closed 2 years ago

hugovk commented 2 years ago

threading.currentThread was deprecated in Python 3.10 (October 2021).

Replace with threading.current_thread, added in Python 2.6 (October 2008).

Similarly for: getName() and setDaemon().

irmen commented 2 years ago

I don't really develop Pyro4 anymore so I'm considering what to do with this. It's not a security fix which is the only thing I considered changing on Pyro4.

New development and current/future compatibility aspects are to be found in Pyro5. I suggest upgrading regardless.

hugovk commented 2 years ago

I'm not actually using Pyro4, rather trying to help the community be ready for Python 3.12. :+1:

It's totally fine if Pyro4 is no longer developed (except for very important bug fixes), and to tell people to use Pyro5 instead.

As it stands, Pyro4 won't work on Python 3.12 when it comes out next year, there'll be an AttributeError or something. So you could use that hard break to encourage people to upgrade :)

If so, maybe something to add to the README.

Otherwise if you want Pyro4 to run on 3.12, perhaps this is also a very important bug fix?

irmen commented 2 years ago

I'm not sure yet how to proceed with this. Thanks for the PR regardless.

pieleric commented 2 years ago

@irmen , just as a "data point" about the Pyro4 user base, we use (a fork of) Pyro4 here. It has features that are not in Pyro5 and that we use (multi-threading handling, support for the pickle format). So we will be happy to have Pyro4 still not automatically break when we happen to bump the Python version.

irmen commented 2 years ago

Thanks @pieleric I understand that Pyro4 is still in use at certain places. But I also cannot support it indefinitely. I mean Python 3.13 may introduce yet more incompatibilities etc etc. I'll think about it.

(unrelated: you mention "multi-threaded handling" but Pyro5 also has this, what do you mean here?)

irmen commented 2 years ago

fwiw, https://github.com/irmen/Pyro5/commit/4baec8f1d08f36980ad3e577ff4d46c3401e8b00 here's a fix for some of these deprecations in Pyro5 (example code - the lib itself is fine)

irmen commented 2 years ago

Right, another incompatibility surfaced in the Pyro serialization mechanism and the Serpent serializer, due to a change made in Python 3.11. I think I won't be fixing that as well for Pyro4.

This basically means that Python 3.10 now looks to be the end of the line for Pyro4.

irmen commented 2 years ago

Decided not to proceed with this. Upgrade to Pyro5 to stay compatible with future Python releases, or find another way (fork + custom patches perhaps) to maintain compatibility yourself in Pyro4 if really needed.