Oven logo

Oven

Published

Make asyncore available for Python 3.12 onwards

pip install pyasyncore

Package Downloads

Weekly DownloadsMonthly Downloads

Project URLs

Requires Python

Dependencies

    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)