incubator-heron
incubator-heron copied to clipboard
Replace use of `asyncore` with `asyncio` due to deprecation
According to updated Python lint tools, the asyncore
module is deprecated as of Python 3.6. It will be removed in Python 3.12. This ticket is to track the migration.
Some information about the removal can be found here: https://peps.python.org/pep-0594/ https://docs.python.org/3/library/asyncore.html
Target files are all within the heron/instance/src/python/network/
. Documentation for asyncio
. Based on a very quick look at the code removing the asyncore
will require a complete rewrite of most of the following classes. We will need to get familiar with both libraries before attempting to work on them. It would be best to have someone familiar with both libraries onboard with this change.
-
Heron Client
This class inherits fromasyncore.dispatcher
and overrides a lot of the routines provided in the parent class. The bulk of the work here will be replacing the channel reading methods. -
Gateway Looper
This class appears to be wrapping theasyncore.dispatcher
. It reads off achannel
and then dispatches calls appropriately. This will require a comprehensive rewrite. -
Protocol
This is the main class through which theasyncore.dispatcher
is interfaced with. There should not be too many changes here. -
Tests
A comprehensive rewrite of this will be required.