pyasyncore

Make asyncore available for Python 3.12 onwards


License
PSF-2.0
Install
pip install pyasyncore==1.0.4

Documentation

No Maintenance Intended

Purpose

This package contains the asyncore module as found in Python versions prior to 3.12. It is provided so that existing code relying on import asyncore is able to continue being used without significant refactoring.

The module's source code is taken directly from the Python standard library[1]. The specific version of asyncore that is provided is the last update before the addition of deprecation/removal warnings at import time, and is essentially equivalent to the version bundled with Python 3.9 (which was the last time the module was meaningfully updated).

Please note that new projects should prefer asyncio.

Installation

This version of asyncore is intended for Python 3.12 or later. Install the module using pip:

python -m pip install pyasyncore

The module can be installed for earlier Python versions, but it will have no effect, and the standard library version of asyncore will be used in its place.

Note that installing pyasyncore will not remove deprecation warnings in Python versions 3.10 and 3.11. Instead, use the warnings package:

import warnings
with warnings.catch_warnings():
    warnings.simplefilter('ignore', DeprecationWarning)
    import asyncore

Usage

The module is imported in exactly the same way as the standard library component it replaces:

import asyncore

Note that the PyPI module is named pyasyncore because creating modules with the same name as those provided by the standard library is not permitted.

For guidance about using the asyncore module, see the official documentation.

Testing

The previous standard library tests have also been replicated into this module. Run them using:

python -m unittest

Maintenance

Due to the fact that this previously built-in module is no-longer supported by the Python core development team, no further maintenance of the asyncore code is intended. This project is only intended to be updated to make changes or improvements to the module packaging.

License

Python Software Foundation License Version 2

Footnotes

1. Verify this if needed via: diff <(curl --location https://github.com/python/cpython/raw/c4d45ee670c09d4f6da709df072ec80cb7dfad22/Lib/asyncore.py) <(curl --location https://github.com/simonrob/pyasyncore/raw/master/asyncore/__init__.py)