The asyncore module is only used by one file in taskflow (https://opendev.org/openstack/taskflow/src/branch/master/taskflow/engines/action_engine/process_executor.py)
And the class in this file is only used when creating a "parallel" taskflow engine (the default is "serial") with a ProcessPool executor.

I didn't find any use of a parallel engine with a ProcessPool executor in codesearch, many projects use the default serial engine, and the projects that use the parallel engine use a ThreadPool executor.
Maybe we could consider removing this process executor class if nobody uses it.


On Tue, Dec 12, 2023 at 10:25 AM Thomas Goirand <zigo@debian.org> wrote:
Hi,

As per this document:
https://docs.python.org/3/whatsnew/3.12.html

 > Removed
 > asynchat and asyncore
 >
 >    These two modules have been removed according to the schedule in
 > PEP 594, having been deprecated in Python 3.6. Use asyncio instead.
 > (Contributed by Nikita Sobolev in gh-96580.)

Therefore, building the taskflow package (and many other packages that
depends on it, like Cinder) fails.

Can someone write a patch to get rid of the use of asyncore? Will using
asincio instead fail because of our use of Eventlet?

Cheers,

Thomas Goirand (zigo)