Skip to content

The built-in adapter for Falcon framework does not work with Python 3.11 #757

@seratch

Description

@seratch

As of Nov 2022, the latest version of Falcon framework is not yet compatible with Python 3.11. When you try to run your code built with Falcon, Python 3.11 raises the following TypeError:

_______ ERROR collecting tests/adapter_tests_async/test_async_falcon.py ________
ImportError while importing test module '/home/runner/work/bolt-python/bolt-python/tests/adapter_tests_async/test_async_falcon.py'.
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/importlib/__init__.py:126: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
tests/adapter_tests_async/test_async_falcon.py:11: in <module>
    from slack_bolt.adapter.falcon.async_resource import AsyncSlackAppResource
slack_bolt/adapter/falcon/async_resource.py:5: in <module>
    from falcon.asgi import Request, Response
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/site-packages/falcon/asgi/__init__.py:35: in <module>
    from .app import App
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/site-packages/falcon/asgi/app.py:46: in <module>
    from .response import Response
/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/site-packages/falcon/asgi/response.py:17: in <module>
    from asyncio.coroutines import CoroWrapper  # type: ignore
E   ImportError: cannot import name 'CoroWrapper' from 'asyncio.coroutines' (/opt/hostedtoolcache/Python/3.11.0/x64/lib/python3.11/asyncio/coroutines.py)

There is no workaround until Falcon project releases a new version with the fix on their side.

See also:

Category (place an x in each of the [ ])

  • slack_bolt.App and/or its core components
  • slack_bolt.async_app.AsyncApp and/or its core components
  • Adapters in slack_bolt.adapter
  • Others

Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions